~ubuntu-branches/ubuntu/oneiric/ghostscript/oneiric

« back to all changes in this revision

Viewing changes to imdi/imdi_k.c

  • Committer: Bazaar Package Importer
  • Author(s): Till Kamppeter
  • Date: 2011-07-15 16:49:55 UTC
  • mfrom: (1.1.23 upstream)
  • Revision ID: james.westby@ubuntu.com-20110715164955-uga6qibao6kez05c
Tags: 9.04~dfsg~20110715-0ubuntu1
* New upstream release
   - GIT snapshot from Jult, 12 2011.
* debian/patches/020110406~a54df2d.patch,
  debian/patches/020110408~0791cc8.patch,
  debian/patches/020110408~507cbee.patch,
  debian/patches/020110411~4509a49.patch,
  debian/patches/020110412~78bb9a6.patch,
  debian/patches/020110418~a05ab8a.patch,
  debian/patches/020110420~20b6c78.patch,
  debian/patches/020110420~4ddefa2.patch: Removed upstream patches.
* debian/rules: Generate ABI version number (variable "abi") correctly,
  cutting off repackaging and pre-release parts.
* debian/rules: Added ./lcms2/ directory to DEB_UPSTREAM_REPACKAGE_EXCLUDES.
* debian/copyright: Added lcms2/* to the list of excluded files.
* debian/symbols.common: Updated for new upstream source. Applied patch
  which dpkg-gensymbols generated for debian/libgs9.symbols to this file.

Show diffs side-by-side

added added

removed removed

Lines of Context:
6
6
 
7
7
/* see the Licence.txt file for licencing details.*/
8
8
 
9
 
 
10
9
/*
11
10
   Interpolation kernel specs:
12
11
 
84
83
void **inp,             /* pointer to input pointers */
85
84
unsigned int npix       /* Number of pixels to process */
86
85
) {
87
 
        imdi_imp *p = (imdi_imp *)(s->impl);
88
 
        unsigned char *ip0 = (unsigned char *)inp[0];
89
 
        unsigned char *op0 = (unsigned char *)outp[0];
90
 
        unsigned char *ep = ip0 + npix * 1 ;
91
 
        pointer it0 = (pointer)p->in_tables[0];
92
 
        pointer ot0 = (pointer)p->out_tables[0];
93
 
        pointer sw_base = (pointer)p->sw_table;
94
 
        pointer im_base = (pointer)p->im_table;
95
 
        
96
 
        for(;ip0 < ep; ip0 += 1, op0 += 1) {
97
 
                unsigned int ova0;      /* Output value partial accumulator */
98
 
                {
99
 
                        pointer swp;
100
 
                        pointer imp;
101
 
                        {
102
 
                                unsigned int ti;        /* Simplex+Interpolation index variable */
103
 
                                
104
 
                                ti  = IT_IT(it0, ip0[0]);
105
 
                                
106
 
                                imp = im_base + IM_O(ti >> 0);          /* Extract interp. index and comp. entry */
107
 
                                swp = sw_base + SW_O(ti & 0x0); /* Extract simplex index and comp. entry */
108
 
                        }
109
 
                        {
110
 
                                unsigned int vowr;      /* Vertex offset/weight value */
111
 
                                unsigned int vof;       /* Vertex offset value */
112
 
                                unsigned int vwe;       /* Vertex weighting */
113
 
                                
114
 
                                vowr = SX_WO(swp, 0);   /* Read vertex offset+weighting values */
115
 
                                vof = (vowr & 0x7f);    /* Extract offset value */
116
 
                                vwe = (vowr >> 7);      /* Extract weighting value */
117
 
                                ova0  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
118
 
                                vowr = SX_WO(swp, 1);   /* Read vertex offset+weighting values */
119
 
                                vof = (vowr & 0x7f);    /* Extract offset value */
120
 
                                vwe = (vowr >> 7);      /* Extract weighting value */
121
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
122
 
                        }
123
 
                }
124
 
                {
125
 
                        unsigned int oti;       /* Vertex offset value */
126
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
127
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
128
 
                }
129
 
        }
 
86
        imdi_imp *p = (imdi_imp *)(s->impl);
 
87
        unsigned char *ip0 = (unsigned char *)inp[0];
 
88
        unsigned char *op0 = (unsigned char *)outp[0];
 
89
        unsigned char *ep = ip0 + npix * 1 ;
 
90
        pointer it0 = (pointer)p->in_tables[0];
 
91
        pointer ot0 = (pointer)p->out_tables[0];
 
92
        pointer sw_base = (pointer)p->sw_table;
 
93
        pointer im_base = (pointer)p->im_table;
 
94
 
 
95
        for(;ip0 < ep; ip0 += 1, op0 += 1) {
 
96
                unsigned int ova0;      /* Output value partial accumulator */
 
97
                {
 
98
                        pointer swp;
 
99
                        pointer imp;
 
100
                        {
 
101
                                unsigned int ti;        /* Simplex+Interpolation index variable */
 
102
 
 
103
                                ti  = IT_IT(it0, ip0[0]);
 
104
 
 
105
                                imp = im_base + IM_O(ti >> 0);          /* Extract interp. index and comp. entry */
 
106
                                swp = sw_base + SW_O(ti & 0x0); /* Extract simplex index and comp. entry */
 
107
                        }
 
108
                        {
 
109
                                unsigned int vowr;      /* Vertex offset/weight value */
 
110
                                unsigned int vof;       /* Vertex offset value */
 
111
                                unsigned int vwe;       /* Vertex weighting */
 
112
 
 
113
                                vowr = SX_WO(swp, 0);   /* Read vertex offset+weighting values */
 
114
                                vof = (vowr & 0x7f);    /* Extract offset value */
 
115
                                vwe = (vowr >> 7);      /* Extract weighting value */
 
116
                                ova0  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
117
                                vowr = SX_WO(swp, 1);   /* Read vertex offset+weighting values */
 
118
                                vof = (vowr & 0x7f);    /* Extract offset value */
 
119
                                vwe = (vowr >> 7);      /* Extract weighting value */
 
120
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
121
                        }
 
122
                }
 
123
                {
 
124
                        unsigned int oti;       /* Vertex offset value */
 
125
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
126
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
127
                }
 
128
        }
130
129
}
131
130
#undef IT_IT
132
131
#undef SW_O
139
138
imdi_k1_gen(
140
139
genspec *g                      /* structure to be initialised */
141
140
) {
142
 
        static unsigned char data[] = {
143
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
144
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
145
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
146
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
147
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
148
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
149
 
                0x00, 0x00, 0x00, 0x00, 0x80, 0xdb, 0x83, 0xbf, 
150
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
151
 
                0x06, 0x00, 0x00, 0x00, 0xc0, 0xa6, 0xdc, 0xb7, 
152
 
                0xff, 0xff, 0x0f, 0x00, 0x51, 0x00, 0x00, 0x00, 
153
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
154
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
155
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
156
 
                0x8d, 0xb7, 0xf3, 0xb7, 0xc3, 0xd1, 0xf2, 0xb7, 
157
 
                0x38, 0x18, 0xf4, 0xb7, 0xc4, 0x1f, 0xf4, 0xb7, 
158
 
                0xa0, 0xdc, 0x83, 0xbf, 0x08, 0x00, 0x00, 0x00, 
159
 
                0x4b, 0xa5, 0xf3, 0xb7, 0x34, 0x80, 0x04, 0x08, 
160
 
                0x07, 0x00, 0x00, 0x00, 0x28, 0xd9, 0x83, 0xbf, 
161
 
                0x03, 0x00, 0x00, 0x00, 0xae, 0xd9, 0x83, 0xbf, 
162
 
                0x00, 0xe4, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 
163
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
164
 
                0x07, 0x00, 0x00, 0x00, 0x34, 0x80, 0x04, 0x08, 
165
 
                0xd0, 0x85, 0x04, 0x08, 0x4c, 0x69, 0x6e, 0x75, 
166
 
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
167
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
168
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
169
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
170
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
171
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
172
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
173
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79, 0x72, 
174
 
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 
175
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
176
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
177
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
178
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
179
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
180
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
181
 
                0xff, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
182
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
183
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
184
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
185
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
186
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
187
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
188
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
189
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
190
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
191
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
192
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
193
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
194
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x31, 0x5f, 0x31, 0x5f, 
195
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
196
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
197
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
198
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
199
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
200
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
201
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
202
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
203
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
204
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
205
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
206
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
207
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x00, 
208
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
209
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
210
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
211
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
212
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
213
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
214
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
215
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
216
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
217
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
218
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
219
 
                0x00, 0xf0, 0x04, 0x08 
220
 
        };      /* Structure image */
221
 
        
222
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
141
        static unsigned char data[] = {
 
142
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
143
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
144
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
145
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
146
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
147
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
148
                0x00, 0x00, 0x00, 0x00, 0x80, 0xdb, 0x83, 0xbf,
 
149
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
150
                0x06, 0x00, 0x00, 0x00, 0xc0, 0xa6, 0xdc, 0xb7,
 
151
                0xff, 0xff, 0x0f, 0x00, 0x51, 0x00, 0x00, 0x00,
 
152
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
153
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
154
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
155
                0x8d, 0xb7, 0xf3, 0xb7, 0xc3, 0xd1, 0xf2, 0xb7,
 
156
                0x38, 0x18, 0xf4, 0xb7, 0xc4, 0x1f, 0xf4, 0xb7,
 
157
                0xa0, 0xdc, 0x83, 0xbf, 0x08, 0x00, 0x00, 0x00,
 
158
                0x4b, 0xa5, 0xf3, 0xb7, 0x34, 0x80, 0x04, 0x08,
 
159
                0x07, 0x00, 0x00, 0x00, 0x28, 0xd9, 0x83, 0xbf,
 
160
                0x03, 0x00, 0x00, 0x00, 0xae, 0xd9, 0x83, 0xbf,
 
161
                0x00, 0xe4, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00,
 
162
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
163
                0x07, 0x00, 0x00, 0x00, 0x34, 0x80, 0x04, 0x08,
 
164
                0xd0, 0x85, 0x04, 0x08, 0x4c, 0x69, 0x6e, 0x75,
 
165
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
166
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
167
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
168
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
169
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
170
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
171
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
172
                0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79, 0x72,
 
173
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00,
 
174
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
175
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
176
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
177
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
178
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
179
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
180
                0xff, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
181
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
182
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
183
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
184
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
185
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
186
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
187
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
188
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
189
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
190
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
191
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
192
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
193
                0x2c, 0xf3, 0xdc, 0xb7, 0x31, 0x5f, 0x31, 0x5f,
 
194
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
195
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
196
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
197
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
198
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
199
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
200
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
201
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
202
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
203
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
204
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
205
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
206
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x00,
 
207
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
208
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
209
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
210
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
211
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
212
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
213
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
214
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
215
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
216
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
217
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
218
                0x00, 0xf0, 0x04, 0x08
 
219
        };      /* Structure image */
 
220
 
 
221
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
223
222
}
224
223
 
225
224
static void
226
225
imdi_k1_tab(
227
226
tabspec *t                      /* structure to be initialised */
228
227
) {
229
 
        static unsigned char data[] = {
230
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
231
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
232
 
                0x00, 0x00, 0x00, 0x00, 0x2c, 0xf3, 0xdc, 0xb7, 
233
 
                0x08, 0xad, 0xf2, 0xb7, 0xf8, 0xac, 0xf2, 0xb7, 
234
 
                0x46, 0x83, 0x04, 0x08, 0x50, 0xd5, 0x83, 0xbf, 
235
 
                0x60, 0x80, 0xf3, 0xb7, 0x46, 0x83, 0x04, 0x08, 
236
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
237
 
                0x08, 0x00, 0x00, 0x00, 0xac, 0x53, 0xdd, 0xb7, 
238
 
                0xa4, 0xd5, 0x83, 0xbf, 0x00, 0x00, 0x00, 0x00, 
239
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
240
 
                0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
241
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
242
 
                0x09, 0x00, 0x00, 0x00, 0x08, 0x06, 0x00, 0x00, 
243
 
                0x4e, 0xcb, 0xdd, 0xb7, 0x07, 0x00, 0x00, 0x00, 
244
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x04, 0x00, 0x00, 0x00, 
245
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
246
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
247
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
248
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
249
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
250
 
                0x00, 0x00, 0x00, 0x00, 0xa1, 0xd4, 0xe2, 0xb7, 
251
 
                0xf4, 0xd5, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
252
 
                0xff, 0xff, 0xff, 0x31, 0x00, 0x00, 0x00, 0x00, 
253
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
254
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
255
 
                0xa0, 0xd6, 0x83, 0xbf, 0x8b, 0x22, 0xe2, 0xb7, 
256
 
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08, 
257
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
258
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
259
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
260
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
261
 
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
262
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
263
 
        };      /* Structure image */
264
 
        
265
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
228
        static unsigned char data[] = {
 
229
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
230
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
231
                0x00, 0x00, 0x00, 0x00, 0x2c, 0xf3, 0xdc, 0xb7,
 
232
                0x08, 0xad, 0xf2, 0xb7, 0xf8, 0xac, 0xf2, 0xb7,
 
233
                0x46, 0x83, 0x04, 0x08, 0x50, 0xd5, 0x83, 0xbf,
 
234
                0x60, 0x80, 0xf3, 0xb7, 0x46, 0x83, 0x04, 0x08,
 
235
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
236
                0x08, 0x00, 0x00, 0x00, 0xac, 0x53, 0xdd, 0xb7,
 
237
                0xa4, 0xd5, 0x83, 0xbf, 0x00, 0x00, 0x00, 0x00,
 
238
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
239
                0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
240
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
241
                0x09, 0x00, 0x00, 0x00, 0x08, 0x06, 0x00, 0x00,
 
242
                0x4e, 0xcb, 0xdd, 0xb7, 0x07, 0x00, 0x00, 0x00,
 
243
                0x2c, 0xf3, 0xdc, 0xb7, 0x04, 0x00, 0x00, 0x00,
 
244
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
245
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
246
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
247
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
248
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
249
                0x00, 0x00, 0x00, 0x00, 0xa1, 0xd4, 0xe2, 0xb7,
 
250
                0xf4, 0xd5, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
251
                0xff, 0xff, 0xff, 0x31, 0x00, 0x00, 0x00, 0x00,
 
252
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
253
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
254
                0xa0, 0xd6, 0x83, 0xbf, 0x8b, 0x22, 0xe2, 0xb7,
 
255
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08,
 
256
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
257
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
258
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
259
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
260
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
261
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
262
        };      /* Structure image */
 
263
 
 
264
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
266
265
}
267
266
 
268
 
 
269
 
 
270
 
 
271
 
 
272
 
 
273
267
/* Integer Multi-Dimensional Interpolation */
274
268
/* Interpolation Kernel Code */
275
269
/* Generated by cgen */
278
272
 
279
273
/* see the Licence.txt file for licencing details.*/
280
274
 
281
 
 
282
275
/*
283
276
   Interpolation kernel specs:
284
277
 
363
356
void **inp,             /* pointer to input pointers */
364
357
unsigned int npix       /* Number of pixels to process */
365
358
) {
366
 
        imdi_imp *p = (imdi_imp *)(s->impl);
367
 
        unsigned char *ip0 = (unsigned char *)inp[0];
368
 
        unsigned char *op0 = (unsigned char *)outp[0];
369
 
        unsigned char *ep = ip0 + npix * 3 ;
370
 
        pointer it0 = (pointer)p->in_tables[0];
371
 
        pointer it1 = (pointer)p->in_tables[1];
372
 
        pointer it2 = (pointer)p->in_tables[2];
373
 
        pointer ot0 = (pointer)p->out_tables[0];
374
 
        pointer sw_base = (pointer)p->sw_table;
375
 
        pointer im_base = (pointer)p->im_table;
376
 
        
377
 
        for(;ip0 < ep; ip0 += 3, op0 += 1) {
378
 
                unsigned int ova0;      /* Output value partial accumulator */
379
 
                {
380
 
                        pointer swp;
381
 
                        pointer imp;
382
 
                        {
383
 
                                unsigned int ti;        /* Simplex+Interpolation index variable */
384
 
                                
385
 
                                ti  = IT_IT(it0, ip0[0]);
386
 
                                ti += IT_IT(it1, ip0[1]);
387
 
                                ti += IT_IT(it2, ip0[2]);
388
 
                                
389
 
                                imp = im_base + IM_O(ti >> 12);         /* Extract interp. index and comp. entry */
390
 
                                swp = sw_base + SW_O(ti & 0xfff);       /* Extract simplex index and comp. entry */
391
 
                        }
392
 
                        {
393
 
                                unsigned int vof;       /* Vertex offset value */
394
 
                                unsigned int vwe;       /* Vertex weighting */
395
 
                                
396
 
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
397
 
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
398
 
                                ova0  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
399
 
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
400
 
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
401
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
402
 
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
403
 
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
404
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
405
 
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
406
 
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
407
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
408
 
                        }
409
 
                }
410
 
                {
411
 
                        unsigned int oti;       /* Vertex offset value */
412
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
413
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
414
 
                }
415
 
        }
 
359
        imdi_imp *p = (imdi_imp *)(s->impl);
 
360
        unsigned char *ip0 = (unsigned char *)inp[0];
 
361
        unsigned char *op0 = (unsigned char *)outp[0];
 
362
        unsigned char *ep = ip0 + npix * 3 ;
 
363
        pointer it0 = (pointer)p->in_tables[0];
 
364
        pointer it1 = (pointer)p->in_tables[1];
 
365
        pointer it2 = (pointer)p->in_tables[2];
 
366
        pointer ot0 = (pointer)p->out_tables[0];
 
367
        pointer sw_base = (pointer)p->sw_table;
 
368
        pointer im_base = (pointer)p->im_table;
 
369
 
 
370
        for(;ip0 < ep; ip0 += 3, op0 += 1) {
 
371
                unsigned int ova0;      /* Output value partial accumulator */
 
372
                {
 
373
                        pointer swp;
 
374
                        pointer imp;
 
375
                        {
 
376
                                unsigned int ti;        /* Simplex+Interpolation index variable */
 
377
 
 
378
                                ti  = IT_IT(it0, ip0[0]);
 
379
                                ti += IT_IT(it1, ip0[1]);
 
380
                                ti += IT_IT(it2, ip0[2]);
 
381
 
 
382
                                imp = im_base + IM_O(ti >> 12);         /* Extract interp. index and comp. entry */
 
383
                                swp = sw_base + SW_O(ti & 0xfff);       /* Extract simplex index and comp. entry */
 
384
                        }
 
385
                        {
 
386
                                unsigned int vof;       /* Vertex offset value */
 
387
                                unsigned int vwe;       /* Vertex weighting */
 
388
 
 
389
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
 
390
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
 
391
                                ova0  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
392
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
 
393
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
 
394
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
395
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
 
396
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
 
397
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
398
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
 
399
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
 
400
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
401
                        }
 
402
                }
 
403
                {
 
404
                        unsigned int oti;       /* Vertex offset value */
 
405
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
406
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
407
                }
 
408
        }
416
409
}
417
410
#undef IT_IT
418
411
#undef SW_O
426
419
imdi_k2_gen(
427
420
genspec *g                      /* structure to be initialised */
428
421
) {
429
 
        static unsigned char data[] = {
430
 
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
431
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
432
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
433
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
434
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
435
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
436
 
                0x00, 0x00, 0x00, 0x00, 0x80, 0xdb, 0x83, 0xbf, 
437
 
                0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
438
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
439
 
                0xff, 0xff, 0x0f, 0x00, 0x51, 0x00, 0x00, 0x00, 
440
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
441
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
442
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
443
 
                0x8d, 0xb7, 0xf3, 0xb7, 0xc3, 0xd1, 0xf2, 0xb7, 
444
 
                0x38, 0x18, 0xf4, 0xb7, 0xc4, 0x1f, 0xf4, 0xb7, 
445
 
                0xa0, 0xdc, 0x83, 0xbf, 0x08, 0x00, 0x00, 0x00, 
446
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
447
 
                0x07, 0x00, 0x00, 0x00, 0x28, 0xd9, 0x83, 0xbf, 
448
 
                0x03, 0x00, 0x00, 0x00, 0xae, 0xd9, 0x83, 0xbf, 
449
 
                0x00, 0xe4, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 
450
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
451
 
                0x07, 0x00, 0x00, 0x00, 0x34, 0x80, 0x04, 0x08, 
452
 
                0xd0, 0x85, 0x04, 0x08, 0x4c, 0x69, 0x6e, 0x75, 
453
 
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
454
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
455
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
456
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
457
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
458
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
459
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
460
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79, 0x72, 
461
 
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 
462
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
463
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
464
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
465
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
466
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
467
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
468
 
                0x65, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
469
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
470
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
471
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
472
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
473
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
474
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
475
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
476
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
477
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
478
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
479
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
480
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
481
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x33, 0x5f, 0x31, 0x5f, 
482
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
483
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
484
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
485
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
486
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
487
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
488
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
489
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
490
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
491
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
492
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
493
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
494
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x32, 0x00, 
495
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
496
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
497
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
498
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
499
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
500
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
501
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
502
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
503
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
504
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
505
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
506
 
                0x00, 0xf0, 0x04, 0x08 
507
 
        };      /* Structure image */
508
 
        
509
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
422
        static unsigned char data[] = {
 
423
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
424
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
425
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
426
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
427
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
428
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
429
                0x00, 0x00, 0x00, 0x00, 0x80, 0xdb, 0x83, 0xbf,
 
430
                0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
431
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
432
                0xff, 0xff, 0x0f, 0x00, 0x51, 0x00, 0x00, 0x00,
 
433
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
434
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
435
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
436
                0x8d, 0xb7, 0xf3, 0xb7, 0xc3, 0xd1, 0xf2, 0xb7,
 
437
                0x38, 0x18, 0xf4, 0xb7, 0xc4, 0x1f, 0xf4, 0xb7,
 
438
                0xa0, 0xdc, 0x83, 0xbf, 0x08, 0x00, 0x00, 0x00,
 
439
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
440
                0x07, 0x00, 0x00, 0x00, 0x28, 0xd9, 0x83, 0xbf,
 
441
                0x03, 0x00, 0x00, 0x00, 0xae, 0xd9, 0x83, 0xbf,
 
442
                0x00, 0xe4, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00,
 
443
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
444
                0x07, 0x00, 0x00, 0x00, 0x34, 0x80, 0x04, 0x08,
 
445
                0xd0, 0x85, 0x04, 0x08, 0x4c, 0x69, 0x6e, 0x75,
 
446
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
447
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
448
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
449
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
450
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
451
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
452
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
453
                0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79, 0x72,
 
454
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00,
 
455
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
456
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
457
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
458
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
459
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
460
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
461
                0x65, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
462
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
463
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
464
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
465
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
466
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
467
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
468
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
469
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
470
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
471
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
472
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
473
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
474
                0x2c, 0xf3, 0xdc, 0xb7, 0x33, 0x5f, 0x31, 0x5f,
 
475
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
476
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
477
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
478
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
479
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
480
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
481
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
482
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
483
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
484
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
485
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
486
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
487
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x32, 0x00,
 
488
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
489
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
490
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
491
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
492
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
493
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
494
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
495
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
496
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
497
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
498
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
499
                0x00, 0xf0, 0x04, 0x08
 
500
        };      /* Structure image */
 
501
 
 
502
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
510
503
}
511
504
 
512
505
static void
513
506
imdi_k2_tab(
514
507
tabspec *t                      /* structure to be initialised */
515
508
) {
516
 
        static unsigned char data[] = {
517
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
518
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
519
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
520
 
                0x02, 0x00, 0x00, 0x00, 0xf8, 0xac, 0xf2, 0xb7, 
521
 
                0x46, 0x83, 0x04, 0x08, 0x50, 0xd5, 0x83, 0xbf, 
522
 
                0x60, 0x80, 0xf3, 0xb7, 0x46, 0x83, 0x04, 0x08, 
523
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
524
 
                0x14, 0x00, 0x00, 0x00, 0xac, 0x53, 0xdd, 0xb7, 
525
 
                0xa4, 0xd5, 0x83, 0xbf, 0x0c, 0x00, 0x00, 0x00, 
526
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
527
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
528
 
                0x04, 0x00, 0x00, 0x00, 0xf8, 0xac, 0xf2, 0xb7, 
529
 
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
530
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
531
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
532
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
533
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
534
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
535
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
536
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
537
 
                0x00, 0x00, 0x00, 0x00, 0xa1, 0xd4, 0xe2, 0xb7, 
538
 
                0xf4, 0xd5, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
539
 
                0xff, 0xff, 0xff, 0x31, 0x00, 0x00, 0x00, 0x00, 
540
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
541
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
542
 
                0xa0, 0xd6, 0x83, 0xbf, 0x8b, 0x22, 0xe2, 0xb7, 
543
 
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08, 
544
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
545
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
546
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
547
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
548
 
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
549
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
550
 
        };      /* Structure image */
551
 
        
552
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
509
        static unsigned char data[] = {
 
510
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
511
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
512
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
513
                0x02, 0x00, 0x00, 0x00, 0xf8, 0xac, 0xf2, 0xb7,
 
514
                0x46, 0x83, 0x04, 0x08, 0x50, 0xd5, 0x83, 0xbf,
 
515
                0x60, 0x80, 0xf3, 0xb7, 0x46, 0x83, 0x04, 0x08,
 
516
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
517
                0x14, 0x00, 0x00, 0x00, 0xac, 0x53, 0xdd, 0xb7,
 
518
                0xa4, 0xd5, 0x83, 0xbf, 0x0c, 0x00, 0x00, 0x00,
 
519
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
520
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
521
                0x04, 0x00, 0x00, 0x00, 0xf8, 0xac, 0xf2, 0xb7,
 
522
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
523
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
524
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
525
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
526
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
527
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
528
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
529
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
530
                0x00, 0x00, 0x00, 0x00, 0xa1, 0xd4, 0xe2, 0xb7,
 
531
                0xf4, 0xd5, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
532
                0xff, 0xff, 0xff, 0x31, 0x00, 0x00, 0x00, 0x00,
 
533
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
534
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
535
                0xa0, 0xd6, 0x83, 0xbf, 0x8b, 0x22, 0xe2, 0xb7,
 
536
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08,
 
537
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
538
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
539
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
540
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
541
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
542
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
543
        };      /* Structure image */
 
544
 
 
545
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
553
546
}
554
547
 
555
 
 
556
 
 
557
 
 
558
 
 
559
 
 
560
548
/* Integer Multi-Dimensional Interpolation */
561
549
/* Interpolation Kernel Code */
562
550
/* Generated by cgen */
565
553
 
566
554
/* see the Licence.txt file for licencing details.*/
567
555
 
568
 
 
569
556
/*
570
557
   Interpolation kernel specs:
571
558
 
655
642
void **inp,             /* pointer to input pointers */
656
643
unsigned int npix       /* Number of pixels to process */
657
644
) {
658
 
        imdi_imp *p = (imdi_imp *)(s->impl);
659
 
        unsigned char *ip0 = (unsigned char *)inp[0];
660
 
        unsigned char *op0 = (unsigned char *)outp[0];
661
 
        unsigned char *ep = ip0 + npix * 4 ;
662
 
        pointer it0 = (pointer)p->in_tables[0];
663
 
        pointer it1 = (pointer)p->in_tables[1];
664
 
        pointer it2 = (pointer)p->in_tables[2];
665
 
        pointer it3 = (pointer)p->in_tables[3];
666
 
        pointer ot0 = (pointer)p->out_tables[0];
667
 
        pointer sw_base = (pointer)p->sw_table;
668
 
        pointer im_base = (pointer)p->im_table;
669
 
        
670
 
        for(;ip0 < ep; ip0 += 4, op0 += 1) {
671
 
                unsigned int ova0;      /* Output value partial accumulator */
672
 
                {
673
 
                        pointer swp;
674
 
                        pointer imp;
675
 
                        {
676
 
                                unsigned int ti_s;      /* Simplex index variable */
677
 
                                unsigned int ti_i;      /* Interpolation index variable */
678
 
                                
679
 
                                ti_i  = IT_IX(it0, ip0[0]);
680
 
                                ti_s  = IT_SX(it0, ip0[0]);
681
 
                                ti_i += IT_IX(it1, ip0[1]);
682
 
                                ti_s += IT_SX(it1, ip0[1]);
683
 
                                ti_i += IT_IX(it2, ip0[2]);
684
 
                                ti_s += IT_SX(it2, ip0[2]);
685
 
                                ti_i += IT_IX(it3, ip0[3]);
686
 
                                ti_s += IT_SX(it3, ip0[3]);
687
 
                                
688
 
                                swp = sw_base + SW_O(ti_s);             /* Compute simplex table entry pointer */
689
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
690
 
                        }
691
 
                        {
692
 
                                unsigned int vof;       /* Vertex offset value */
693
 
                                unsigned int vwe;       /* Vertex weighting */
694
 
                                
695
 
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
696
 
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
697
 
                                ova0  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
698
 
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
699
 
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
700
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
701
 
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
702
 
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
703
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
704
 
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
705
 
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
706
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
707
 
                                vof = SX_VO(swp, 4);    /* Read vertex offset value */
708
 
                                vwe = SX_WE(swp, 4);    /* Read vertex weighting value */
709
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
710
 
                        }
711
 
                }
712
 
                {
713
 
                        unsigned int oti;       /* Vertex offset value */
714
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
715
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
716
 
                }
717
 
        }
 
645
        imdi_imp *p = (imdi_imp *)(s->impl);
 
646
        unsigned char *ip0 = (unsigned char *)inp[0];
 
647
        unsigned char *op0 = (unsigned char *)outp[0];
 
648
        unsigned char *ep = ip0 + npix * 4 ;
 
649
        pointer it0 = (pointer)p->in_tables[0];
 
650
        pointer it1 = (pointer)p->in_tables[1];
 
651
        pointer it2 = (pointer)p->in_tables[2];
 
652
        pointer it3 = (pointer)p->in_tables[3];
 
653
        pointer ot0 = (pointer)p->out_tables[0];
 
654
        pointer sw_base = (pointer)p->sw_table;
 
655
        pointer im_base = (pointer)p->im_table;
 
656
 
 
657
        for(;ip0 < ep; ip0 += 4, op0 += 1) {
 
658
                unsigned int ova0;      /* Output value partial accumulator */
 
659
                {
 
660
                        pointer swp;
 
661
                        pointer imp;
 
662
                        {
 
663
                                unsigned int ti_s;      /* Simplex index variable */
 
664
                                unsigned int ti_i;      /* Interpolation index variable */
 
665
 
 
666
                                ti_i  = IT_IX(it0, ip0[0]);
 
667
                                ti_s  = IT_SX(it0, ip0[0]);
 
668
                                ti_i += IT_IX(it1, ip0[1]);
 
669
                                ti_s += IT_SX(it1, ip0[1]);
 
670
                                ti_i += IT_IX(it2, ip0[2]);
 
671
                                ti_s += IT_SX(it2, ip0[2]);
 
672
                                ti_i += IT_IX(it3, ip0[3]);
 
673
                                ti_s += IT_SX(it3, ip0[3]);
 
674
 
 
675
                                swp = sw_base + SW_O(ti_s);             /* Compute simplex table entry pointer */
 
676
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
677
                        }
 
678
                        {
 
679
                                unsigned int vof;       /* Vertex offset value */
 
680
                                unsigned int vwe;       /* Vertex weighting */
 
681
 
 
682
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
 
683
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
 
684
                                ova0  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
685
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
 
686
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
 
687
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
688
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
 
689
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
 
690
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
691
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
 
692
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
 
693
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
694
                                vof = SX_VO(swp, 4);    /* Read vertex offset value */
 
695
                                vwe = SX_WE(swp, 4);    /* Read vertex weighting value */
 
696
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
697
                        }
 
698
                }
 
699
                {
 
700
                        unsigned int oti;       /* Vertex offset value */
 
701
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
702
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
703
                }
 
704
        }
718
705
}
719
706
#undef IT_IX
720
707
#undef IT_SX
729
716
imdi_k3_gen(
730
717
genspec *g                      /* structure to be initialised */
731
718
) {
732
 
        static unsigned char data[] = {
733
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
734
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
735
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
736
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
737
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
738
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
739
 
                0x00, 0x00, 0x00, 0x00, 0x80, 0xdb, 0x83, 0xbf, 
740
 
                0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
741
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
742
 
                0x04, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 
743
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
744
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
745
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
746
 
                0x00, 0x00, 0x00, 0x00, 0xc3, 0xd1, 0xf2, 0xb7, 
747
 
                0x38, 0x18, 0xf4, 0xb7, 0xc4, 0x1f, 0xf4, 0xb7, 
748
 
                0xa0, 0xdc, 0x83, 0xbf, 0x08, 0x00, 0x00, 0x00, 
749
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
750
 
                0x08, 0x00, 0x00, 0x00, 0x28, 0xd9, 0x83, 0xbf, 
751
 
                0x03, 0x00, 0x00, 0x00, 0xae, 0xd9, 0x83, 0xbf, 
752
 
                0x00, 0xe4, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 
753
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
754
 
                0x07, 0x00, 0x00, 0x00, 0x34, 0x80, 0x04, 0x08, 
755
 
                0xd0, 0x85, 0x04, 0x08, 0x4c, 0x69, 0x6e, 0x75, 
756
 
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
757
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
758
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
759
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
760
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
761
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
762
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
763
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79, 0x72, 
764
 
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 
765
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
766
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
767
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
768
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
769
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
770
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
771
 
                0x27, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 
772
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
773
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
774
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
775
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
776
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
777
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
778
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
779
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
780
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
781
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
782
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
783
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
784
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x34, 0x5f, 0x31, 0x5f, 
785
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
786
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
787
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
788
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
789
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
790
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
791
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
792
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
793
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
794
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
795
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
796
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
797
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x33, 0x00, 
798
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
799
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
800
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
801
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
802
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
803
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
804
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
805
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
806
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
807
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
808
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
809
 
                0x00, 0xf0, 0x04, 0x08 
810
 
        };      /* Structure image */
811
 
        
812
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
719
        static unsigned char data[] = {
 
720
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
721
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
722
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
723
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
724
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
725
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
726
                0x00, 0x00, 0x00, 0x00, 0x80, 0xdb, 0x83, 0xbf,
 
727
                0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
728
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
729
                0x04, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00,
 
730
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
731
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
732
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
733
                0x00, 0x00, 0x00, 0x00, 0xc3, 0xd1, 0xf2, 0xb7,
 
734
                0x38, 0x18, 0xf4, 0xb7, 0xc4, 0x1f, 0xf4, 0xb7,
 
735
                0xa0, 0xdc, 0x83, 0xbf, 0x08, 0x00, 0x00, 0x00,
 
736
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
737
                0x08, 0x00, 0x00, 0x00, 0x28, 0xd9, 0x83, 0xbf,
 
738
                0x03, 0x00, 0x00, 0x00, 0xae, 0xd9, 0x83, 0xbf,
 
739
                0x00, 0xe4, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00,
 
740
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
741
                0x07, 0x00, 0x00, 0x00, 0x34, 0x80, 0x04, 0x08,
 
742
                0xd0, 0x85, 0x04, 0x08, 0x4c, 0x69, 0x6e, 0x75,
 
743
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
744
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
745
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
746
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
747
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
748
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
749
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
750
                0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79, 0x72,
 
751
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00,
 
752
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
753
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
754
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
755
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
756
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
757
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
758
                0x27, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00,
 
759
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
760
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
761
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
762
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
763
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
764
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
765
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
766
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
767
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
768
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
769
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
770
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
771
                0x2c, 0xf3, 0xdc, 0xb7, 0x34, 0x5f, 0x31, 0x5f,
 
772
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
773
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
774
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
775
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
776
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
777
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
778
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
779
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
780
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
781
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
782
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
783
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
784
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x33, 0x00,
 
785
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
786
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
787
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
788
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
789
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
790
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
791
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
792
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
793
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
794
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
795
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
796
                0x00, 0xf0, 0x04, 0x08
 
797
        };      /* Structure image */
 
798
 
 
799
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
813
800
}
814
801
 
815
802
static void
816
803
imdi_k3_tab(
817
804
tabspec *t                      /* structure to be initialised */
818
805
) {
819
 
        static unsigned char data[] = {
820
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
821
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
822
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
823
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
824
 
                0x46, 0x83, 0x04, 0x08, 0x50, 0xd5, 0x83, 0xbf, 
825
 
                0x60, 0x80, 0xf3, 0xb7, 0x46, 0x83, 0x04, 0x08, 
826
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
827
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
828
 
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
829
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
830
 
                0x14, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
831
 
                0x04, 0x00, 0x00, 0x00, 0xf8, 0xac, 0xf2, 0xb7, 
832
 
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
833
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
834
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
835
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
836
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
837
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
838
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
839
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
840
 
                0x00, 0x00, 0x00, 0x00, 0xa1, 0xd4, 0xe2, 0xb7, 
841
 
                0xf4, 0xd5, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
842
 
                0xff, 0xff, 0xff, 0x31, 0x00, 0x00, 0x00, 0x00, 
843
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
844
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
845
 
                0xa0, 0xd6, 0x83, 0xbf, 0x8b, 0x22, 0xe2, 0xb7, 
846
 
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08, 
847
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
848
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
849
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
850
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
851
 
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
852
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
853
 
        };      /* Structure image */
854
 
        
855
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
806
        static unsigned char data[] = {
 
807
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
808
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
809
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
810
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
811
                0x46, 0x83, 0x04, 0x08, 0x50, 0xd5, 0x83, 0xbf,
 
812
                0x60, 0x80, 0xf3, 0xb7, 0x46, 0x83, 0x04, 0x08,
 
813
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
814
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
815
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
816
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
817
                0x14, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
818
                0x04, 0x00, 0x00, 0x00, 0xf8, 0xac, 0xf2, 0xb7,
 
819
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
820
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
821
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
822
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
823
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
824
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
825
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
826
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
827
                0x00, 0x00, 0x00, 0x00, 0xa1, 0xd4, 0xe2, 0xb7,
 
828
                0xf4, 0xd5, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
829
                0xff, 0xff, 0xff, 0x31, 0x00, 0x00, 0x00, 0x00,
 
830
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
831
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
832
                0xa0, 0xd6, 0x83, 0xbf, 0x8b, 0x22, 0xe2, 0xb7,
 
833
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08,
 
834
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
835
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
836
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
837
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
838
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
839
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
840
        };      /* Structure image */
 
841
 
 
842
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
856
843
}
857
844
 
858
 
 
859
 
 
860
 
 
861
 
 
862
 
 
863
845
/* Integer Multi-Dimensional Interpolation */
864
846
/* Interpolation Kernel Code */
865
847
/* Generated by cgen */
868
850
 
869
851
/* see the Licence.txt file for licencing details.*/
870
852
 
871
 
 
872
853
/*
873
854
   Interpolation kernel specs:
874
855
 
953
934
void **inp,             /* pointer to input pointers */
954
935
unsigned int npix       /* Number of pixels to process */
955
936
) {
956
 
        imdi_imp *p = (imdi_imp *)(s->impl);
957
 
        unsigned char *ip0 = (unsigned char *)inp[0];
958
 
        unsigned char *op0 = (unsigned char *)outp[0];
959
 
        unsigned char *ep = ip0 + npix * 5 ;
960
 
        pointer it0 = (pointer)p->in_tables[0];
961
 
        pointer it1 = (pointer)p->in_tables[1];
962
 
        pointer it2 = (pointer)p->in_tables[2];
963
 
        pointer it3 = (pointer)p->in_tables[3];
964
 
        pointer it4 = (pointer)p->in_tables[4];
965
 
        pointer ot0 = (pointer)p->out_tables[0];
966
 
        pointer im_base = (pointer)p->im_table;
967
 
        
968
 
        for(;ip0 < ep; ip0 += 5, op0 += 1) {
969
 
                unsigned int ova0;      /* Output value partial accumulator */
970
 
                {
971
 
                        pointer imp;
972
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
973
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
974
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
975
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
976
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
977
 
                        {
978
 
                                unsigned int ti_i;      /* Interpolation index variable */
979
 
                                
980
 
                                ti_i  = IT_IX(it0, ip0[0]);
981
 
                                wo0   = IT_WO(it0, ip0[0]);
982
 
                                ti_i += IT_IX(it1, ip0[1]);
983
 
                                wo1   = IT_WO(it1, ip0[1]);
984
 
                                ti_i += IT_IX(it2, ip0[2]);
985
 
                                wo2   = IT_WO(it2, ip0[2]);
986
 
                                ti_i += IT_IX(it3, ip0[3]);
987
 
                                wo3   = IT_WO(it3, ip0[3]);
988
 
                                ti_i += IT_IX(it4, ip0[4]);
989
 
                                wo4   = IT_WO(it4, ip0[4]);
990
 
                                
991
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
992
 
                                
993
 
                                /* Sort weighting values and vertex offset values */
994
 
                                CEX(wo0, wo1);
995
 
                                CEX(wo0, wo2);
996
 
                                CEX(wo0, wo3);
997
 
                                CEX(wo0, wo4);
998
 
                                CEX(wo1, wo2);
999
 
                                CEX(wo1, wo3);
1000
 
                                CEX(wo1, wo4);
1001
 
                                CEX(wo2, wo3);
1002
 
                                CEX(wo2, wo4);
1003
 
                                CEX(wo3, wo4);
1004
 
                        }
1005
 
                        {
1006
 
                                unsigned int nvof;      /* Next vertex offset value */
1007
 
                                unsigned int vof;       /* Vertex offset value */
1008
 
                                unsigned int vwe;       /* Vertex weighting */
1009
 
                                
1010
 
                                vof = 0;                                /* First vertex offset is 0 */
1011
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
1012
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
1013
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
1014
 
                                ova0  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
1015
 
                                vof += nvof;                    /* Move to next vertex */
1016
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
1017
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
1018
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
1019
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
1020
 
                                vof += nvof;                    /* Move to next vertex */
1021
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
1022
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
1023
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
1024
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
1025
 
                                vof += nvof;                    /* Move to next vertex */
1026
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
1027
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
1028
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
1029
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
1030
 
                                vof += nvof;                    /* Move to next vertex */
1031
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
1032
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
1033
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
1034
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
1035
 
                                vof += nvof;                    /* Move to next vertex */
1036
 
                                vwe = wo4;                              /* Baricentric weighting */
1037
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
1038
 
                        }
1039
 
                }
1040
 
                {
1041
 
                        unsigned int oti;       /* Vertex offset value */
1042
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
1043
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
1044
 
                }
1045
 
        }
 
937
        imdi_imp *p = (imdi_imp *)(s->impl);
 
938
        unsigned char *ip0 = (unsigned char *)inp[0];
 
939
        unsigned char *op0 = (unsigned char *)outp[0];
 
940
        unsigned char *ep = ip0 + npix * 5 ;
 
941
        pointer it0 = (pointer)p->in_tables[0];
 
942
        pointer it1 = (pointer)p->in_tables[1];
 
943
        pointer it2 = (pointer)p->in_tables[2];
 
944
        pointer it3 = (pointer)p->in_tables[3];
 
945
        pointer it4 = (pointer)p->in_tables[4];
 
946
        pointer ot0 = (pointer)p->out_tables[0];
 
947
        pointer im_base = (pointer)p->im_table;
 
948
 
 
949
        for(;ip0 < ep; ip0 += 5, op0 += 1) {
 
950
                unsigned int ova0;      /* Output value partial accumulator */
 
951
                {
 
952
                        pointer imp;
 
953
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
954
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
955
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
956
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
957
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
958
                        {
 
959
                                unsigned int ti_i;      /* Interpolation index variable */
 
960
 
 
961
                                ti_i  = IT_IX(it0, ip0[0]);
 
962
                                wo0   = IT_WO(it0, ip0[0]);
 
963
                                ti_i += IT_IX(it1, ip0[1]);
 
964
                                wo1   = IT_WO(it1, ip0[1]);
 
965
                                ti_i += IT_IX(it2, ip0[2]);
 
966
                                wo2   = IT_WO(it2, ip0[2]);
 
967
                                ti_i += IT_IX(it3, ip0[3]);
 
968
                                wo3   = IT_WO(it3, ip0[3]);
 
969
                                ti_i += IT_IX(it4, ip0[4]);
 
970
                                wo4   = IT_WO(it4, ip0[4]);
 
971
 
 
972
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
973
 
 
974
                                /* Sort weighting values and vertex offset values */
 
975
                                CEX(wo0, wo1);
 
976
                                CEX(wo0, wo2);
 
977
                                CEX(wo0, wo3);
 
978
                                CEX(wo0, wo4);
 
979
                                CEX(wo1, wo2);
 
980
                                CEX(wo1, wo3);
 
981
                                CEX(wo1, wo4);
 
982
                                CEX(wo2, wo3);
 
983
                                CEX(wo2, wo4);
 
984
                                CEX(wo3, wo4);
 
985
                        }
 
986
                        {
 
987
                                unsigned int nvof;      /* Next vertex offset value */
 
988
                                unsigned int vof;       /* Vertex offset value */
 
989
                                unsigned int vwe;       /* Vertex weighting */
 
990
 
 
991
                                vof = 0;                                /* First vertex offset is 0 */
 
992
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
993
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
994
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
995
                                ova0  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
996
                                vof += nvof;                    /* Move to next vertex */
 
997
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
998
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
999
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
1000
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
1001
                                vof += nvof;                    /* Move to next vertex */
 
1002
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
1003
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
1004
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
1005
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
1006
                                vof += nvof;                    /* Move to next vertex */
 
1007
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
1008
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
1009
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
1010
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
1011
                                vof += nvof;                    /* Move to next vertex */
 
1012
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
1013
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
1014
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
1015
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
1016
                                vof += nvof;                    /* Move to next vertex */
 
1017
                                vwe = wo4;                              /* Baricentric weighting */
 
1018
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
1019
                        }
 
1020
                }
 
1021
                {
 
1022
                        unsigned int oti;       /* Vertex offset value */
 
1023
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
1024
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
1025
                }
 
1026
        }
1046
1027
}
1047
1028
#undef IT_WO
1048
1029
#undef IT_IX
1055
1036
imdi_k4_gen(
1056
1037
genspec *g                      /* structure to be initialised */
1057
1038
) {
1058
 
        static unsigned char data[] = {
1059
 
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
1060
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
1061
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1062
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
1063
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
1064
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
1065
 
                0x00, 0x00, 0x00, 0x00, 0x80, 0xdb, 0x83, 0xbf, 
1066
 
                0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
1067
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
1068
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
1069
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1070
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1071
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1072
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1073
 
                0x38, 0x18, 0xf4, 0xb7, 0xc4, 0x1f, 0xf4, 0xb7, 
1074
 
                0xa0, 0xdc, 0x83, 0xbf, 0x08, 0x00, 0x00, 0x00, 
1075
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
1076
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
1077
 
                0x03, 0x00, 0x00, 0x00, 0xae, 0xd9, 0x83, 0xbf, 
1078
 
                0x00, 0xe4, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 
1079
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
1080
 
                0x07, 0x00, 0x00, 0x00, 0x34, 0x80, 0x04, 0x08, 
1081
 
                0xd0, 0x85, 0x04, 0x08, 0x4c, 0x69, 0x6e, 0x75, 
1082
 
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1083
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
1084
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1085
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1086
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1087
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1088
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1089
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79, 0x72, 
1090
 
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 
1091
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
1092
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1093
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1094
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1095
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
1096
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
1097
 
                0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1098
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
1099
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
1100
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
1101
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
1102
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
1103
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
1104
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
1105
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
1106
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
1107
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1108
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
1109
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
1110
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x35, 0x5f, 0x31, 0x5f, 
1111
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
1112
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
1113
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
1114
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
1115
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
1116
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
1117
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
1118
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1119
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1120
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1121
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1122
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
1123
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x34, 0x00, 
1124
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1125
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1126
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
1127
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
1128
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
1129
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
1130
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
1131
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
1132
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
1133
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
1134
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
1135
 
                0x00, 0xf0, 0x04, 0x08 
1136
 
        };      /* Structure image */
1137
 
        
1138
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
1039
        static unsigned char data[] = {
 
1040
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
1041
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
1042
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1043
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
1044
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
1045
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
1046
                0x00, 0x00, 0x00, 0x00, 0x80, 0xdb, 0x83, 0xbf,
 
1047
                0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
1048
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
1049
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
1050
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1051
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1052
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1053
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1054
                0x38, 0x18, 0xf4, 0xb7, 0xc4, 0x1f, 0xf4, 0xb7,
 
1055
                0xa0, 0xdc, 0x83, 0xbf, 0x08, 0x00, 0x00, 0x00,
 
1056
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
1057
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
1058
                0x03, 0x00, 0x00, 0x00, 0xae, 0xd9, 0x83, 0xbf,
 
1059
                0x00, 0xe4, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00,
 
1060
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
1061
                0x07, 0x00, 0x00, 0x00, 0x34, 0x80, 0x04, 0x08,
 
1062
                0xd0, 0x85, 0x04, 0x08, 0x4c, 0x69, 0x6e, 0x75,
 
1063
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1064
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
1065
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1066
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1067
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1068
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1069
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1070
                0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79, 0x72,
 
1071
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1072
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
1073
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1074
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1075
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1076
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
1077
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
1078
                0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1079
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
1080
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
1081
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
1082
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
1083
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
1084
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
1085
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
1086
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
1087
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
1088
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1089
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
1090
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
1091
                0x2c, 0xf3, 0xdc, 0xb7, 0x35, 0x5f, 0x31, 0x5f,
 
1092
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
1093
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
1094
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
1095
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
1096
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
1097
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
1098
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
1099
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1100
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1101
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1102
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1103
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
1104
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x34, 0x00,
 
1105
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1106
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1107
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
1108
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
1109
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
1110
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
1111
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
1112
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
1113
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
1114
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
1115
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
1116
                0x00, 0xf0, 0x04, 0x08
 
1117
        };      /* Structure image */
 
1118
 
 
1119
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
1139
1120
}
1140
1121
 
1141
1122
static void
1142
1123
imdi_k4_tab(
1143
1124
tabspec *t                      /* structure to be initialised */
1144
1125
) {
1145
 
        static unsigned char data[] = {
1146
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
1147
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
1148
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
1149
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
1150
 
                0x04, 0x00, 0x00, 0x00, 0x50, 0xd5, 0x83, 0xbf, 
1151
 
                0x60, 0x80, 0xf3, 0xb7, 0x46, 0x83, 0x04, 0x08, 
1152
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
1153
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
1154
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
1155
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1156
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
1157
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
1158
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
1159
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
1160
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
1161
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
1162
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
1163
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1164
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
1165
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
1166
 
                0x00, 0x00, 0x00, 0x00, 0xa1, 0xd4, 0xe2, 0xb7, 
1167
 
                0xf4, 0xd5, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
1168
 
                0xff, 0xff, 0xff, 0x31, 0x00, 0x00, 0x00, 0x00, 
1169
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
1170
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1171
 
                0xa0, 0xd6, 0x83, 0xbf, 0x8b, 0x22, 0xe2, 0xb7, 
1172
 
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08, 
1173
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
1174
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
1175
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
1176
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
1177
 
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
1178
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
1179
 
        };      /* Structure image */
1180
 
        
1181
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
1126
        static unsigned char data[] = {
 
1127
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
1128
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
1129
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
1130
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
1131
                0x04, 0x00, 0x00, 0x00, 0x50, 0xd5, 0x83, 0xbf,
 
1132
                0x60, 0x80, 0xf3, 0xb7, 0x46, 0x83, 0x04, 0x08,
 
1133
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
1134
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
1135
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
1136
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1137
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
1138
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
1139
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
1140
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
1141
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
1142
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
1143
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
1144
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1145
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
1146
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
1147
                0x00, 0x00, 0x00, 0x00, 0xa1, 0xd4, 0xe2, 0xb7,
 
1148
                0xf4, 0xd5, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
1149
                0xff, 0xff, 0xff, 0x31, 0x00, 0x00, 0x00, 0x00,
 
1150
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
1151
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1152
                0xa0, 0xd6, 0x83, 0xbf, 0x8b, 0x22, 0xe2, 0xb7,
 
1153
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08,
 
1154
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
1155
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
1156
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
1157
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
1158
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
1159
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
1160
        };      /* Structure image */
 
1161
 
 
1162
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
1182
1163
}
1183
1164
 
1184
 
 
1185
 
 
1186
 
 
1187
 
 
1188
 
 
1189
1165
/* Integer Multi-Dimensional Interpolation */
1190
1166
/* Interpolation Kernel Code */
1191
1167
/* Generated by cgen */
1194
1170
 
1195
1171
/* see the Licence.txt file for licencing details.*/
1196
1172
 
1197
 
 
1198
1173
/*
1199
1174
   Interpolation kernel specs:
1200
1175
 
1281
1256
void **inp,             /* pointer to input pointers */
1282
1257
unsigned int npix       /* Number of pixels to process */
1283
1258
) {
1284
 
        imdi_imp *p = (imdi_imp *)(s->impl);
1285
 
        unsigned char *ip0 = (unsigned char *)inp[0];
1286
 
        unsigned char *op0 = (unsigned char *)outp[0];
1287
 
        unsigned char *ep = ip0 + npix * 6 ;
1288
 
        pointer it0 = (pointer)p->in_tables[0];
1289
 
        pointer it1 = (pointer)p->in_tables[1];
1290
 
        pointer it2 = (pointer)p->in_tables[2];
1291
 
        pointer it3 = (pointer)p->in_tables[3];
1292
 
        pointer it4 = (pointer)p->in_tables[4];
1293
 
        pointer it5 = (pointer)p->in_tables[5];
1294
 
        pointer ot0 = (pointer)p->out_tables[0];
1295
 
        pointer im_base = (pointer)p->im_table;
1296
 
        
1297
 
        for(;ip0 < ep; ip0 += 6, op0 += 1) {
1298
 
                unsigned int ova0;      /* Output value partial accumulator */
1299
 
                {
1300
 
                        pointer imp;
1301
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
1302
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
1303
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
1304
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
1305
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
1306
 
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
1307
 
                        {
1308
 
                                unsigned int ti_i;      /* Interpolation index variable */
1309
 
                                
1310
 
                                ti_i  = IT_IX(it0, ip0[0]);
1311
 
                                wo0   = IT_WO(it0, ip0[0]);
1312
 
                                ti_i += IT_IX(it1, ip0[1]);
1313
 
                                wo1   = IT_WO(it1, ip0[1]);
1314
 
                                ti_i += IT_IX(it2, ip0[2]);
1315
 
                                wo2   = IT_WO(it2, ip0[2]);
1316
 
                                ti_i += IT_IX(it3, ip0[3]);
1317
 
                                wo3   = IT_WO(it3, ip0[3]);
1318
 
                                ti_i += IT_IX(it4, ip0[4]);
1319
 
                                wo4   = IT_WO(it4, ip0[4]);
1320
 
                                ti_i += IT_IX(it5, ip0[5]);
1321
 
                                wo5   = IT_WO(it5, ip0[5]);
1322
 
                                
1323
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
1324
 
                                
1325
 
                                /* Sort weighting values and vertex offset values */
1326
 
                                CEX(wo0, wo1);
1327
 
                                CEX(wo0, wo2);
1328
 
                                CEX(wo0, wo3);
1329
 
                                CEX(wo0, wo4);
1330
 
                                CEX(wo0, wo5);
1331
 
                                CEX(wo1, wo2);
1332
 
                                CEX(wo1, wo3);
1333
 
                                CEX(wo1, wo4);
1334
 
                                CEX(wo1, wo5);
1335
 
                                CEX(wo2, wo3);
1336
 
                                CEX(wo2, wo4);
1337
 
                                CEX(wo2, wo5);
1338
 
                                CEX(wo3, wo4);
1339
 
                                CEX(wo3, wo5);
1340
 
                                CEX(wo4, wo5);
1341
 
                        }
1342
 
                        {
1343
 
                                unsigned int nvof;      /* Next vertex offset value */
1344
 
                                unsigned int vof;       /* Vertex offset value */
1345
 
                                unsigned int vwe;       /* Vertex weighting */
1346
 
                                
1347
 
                                vof = 0;                                /* First vertex offset is 0 */
1348
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
1349
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
1350
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
1351
 
                                ova0  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
1352
 
                                vof += nvof;                    /* Move to next vertex */
1353
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
1354
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
1355
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
1356
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
1357
 
                                vof += nvof;                    /* Move to next vertex */
1358
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
1359
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
1360
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
1361
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
1362
 
                                vof += nvof;                    /* Move to next vertex */
1363
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
1364
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
1365
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
1366
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
1367
 
                                vof += nvof;                    /* Move to next vertex */
1368
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
1369
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
1370
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
1371
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
1372
 
                                vof += nvof;                    /* Move to next vertex */
1373
 
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
1374
 
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
1375
 
                                vwe = wo4 - wo5;                /* Baricentric weighting */
1376
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
1377
 
                                vof += nvof;                    /* Move to next vertex */
1378
 
                                vwe = wo5;                              /* Baricentric weighting */
1379
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
1380
 
                        }
1381
 
                }
1382
 
                {
1383
 
                        unsigned int oti;       /* Vertex offset value */
1384
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
1385
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
1386
 
                }
1387
 
        }
 
1259
        imdi_imp *p = (imdi_imp *)(s->impl);
 
1260
        unsigned char *ip0 = (unsigned char *)inp[0];
 
1261
        unsigned char *op0 = (unsigned char *)outp[0];
 
1262
        unsigned char *ep = ip0 + npix * 6 ;
 
1263
        pointer it0 = (pointer)p->in_tables[0];
 
1264
        pointer it1 = (pointer)p->in_tables[1];
 
1265
        pointer it2 = (pointer)p->in_tables[2];
 
1266
        pointer it3 = (pointer)p->in_tables[3];
 
1267
        pointer it4 = (pointer)p->in_tables[4];
 
1268
        pointer it5 = (pointer)p->in_tables[5];
 
1269
        pointer ot0 = (pointer)p->out_tables[0];
 
1270
        pointer im_base = (pointer)p->im_table;
 
1271
 
 
1272
        for(;ip0 < ep; ip0 += 6, op0 += 1) {
 
1273
                unsigned int ova0;      /* Output value partial accumulator */
 
1274
                {
 
1275
                        pointer imp;
 
1276
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
1277
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
1278
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
1279
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
1280
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
1281
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
 
1282
                        {
 
1283
                                unsigned int ti_i;      /* Interpolation index variable */
 
1284
 
 
1285
                                ti_i  = IT_IX(it0, ip0[0]);
 
1286
                                wo0   = IT_WO(it0, ip0[0]);
 
1287
                                ti_i += IT_IX(it1, ip0[1]);
 
1288
                                wo1   = IT_WO(it1, ip0[1]);
 
1289
                                ti_i += IT_IX(it2, ip0[2]);
 
1290
                                wo2   = IT_WO(it2, ip0[2]);
 
1291
                                ti_i += IT_IX(it3, ip0[3]);
 
1292
                                wo3   = IT_WO(it3, ip0[3]);
 
1293
                                ti_i += IT_IX(it4, ip0[4]);
 
1294
                                wo4   = IT_WO(it4, ip0[4]);
 
1295
                                ti_i += IT_IX(it5, ip0[5]);
 
1296
                                wo5   = IT_WO(it5, ip0[5]);
 
1297
 
 
1298
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
1299
 
 
1300
                                /* Sort weighting values and vertex offset values */
 
1301
                                CEX(wo0, wo1);
 
1302
                                CEX(wo0, wo2);
 
1303
                                CEX(wo0, wo3);
 
1304
                                CEX(wo0, wo4);
 
1305
                                CEX(wo0, wo5);
 
1306
                                CEX(wo1, wo2);
 
1307
                                CEX(wo1, wo3);
 
1308
                                CEX(wo1, wo4);
 
1309
                                CEX(wo1, wo5);
 
1310
                                CEX(wo2, wo3);
 
1311
                                CEX(wo2, wo4);
 
1312
                                CEX(wo2, wo5);
 
1313
                                CEX(wo3, wo4);
 
1314
                                CEX(wo3, wo5);
 
1315
                                CEX(wo4, wo5);
 
1316
                        }
 
1317
                        {
 
1318
                                unsigned int nvof;      /* Next vertex offset value */
 
1319
                                unsigned int vof;       /* Vertex offset value */
 
1320
                                unsigned int vwe;       /* Vertex weighting */
 
1321
 
 
1322
                                vof = 0;                                /* First vertex offset is 0 */
 
1323
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
1324
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
1325
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
1326
                                ova0  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
1327
                                vof += nvof;                    /* Move to next vertex */
 
1328
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
1329
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
1330
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
1331
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
1332
                                vof += nvof;                    /* Move to next vertex */
 
1333
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
1334
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
1335
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
1336
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
1337
                                vof += nvof;                    /* Move to next vertex */
 
1338
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
1339
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
1340
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
1341
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
1342
                                vof += nvof;                    /* Move to next vertex */
 
1343
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
1344
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
1345
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
1346
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
1347
                                vof += nvof;                    /* Move to next vertex */
 
1348
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
 
1349
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
 
1350
                                vwe = wo4 - wo5;                /* Baricentric weighting */
 
1351
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
1352
                                vof += nvof;                    /* Move to next vertex */
 
1353
                                vwe = wo5;                              /* Baricentric weighting */
 
1354
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
1355
                        }
 
1356
                }
 
1357
                {
 
1358
                        unsigned int oti;       /* Vertex offset value */
 
1359
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
1360
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
1361
                }
 
1362
        }
1388
1363
}
1389
1364
#undef IT_WO
1390
1365
#undef IT_IX
1397
1372
imdi_k5_gen(
1398
1373
genspec *g                      /* structure to be initialised */
1399
1374
) {
1400
 
        static unsigned char data[] = {
1401
 
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
1402
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
1403
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1404
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
1405
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
1406
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
1407
 
                0x08, 0x00, 0x00, 0x00, 0x80, 0xdb, 0x83, 0xbf, 
1408
 
                0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
1409
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
1410
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
1411
 
                0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1412
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1413
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1414
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1415
 
                0x00, 0x00, 0x00, 0x00, 0xc4, 0x1f, 0xf4, 0xb7, 
1416
 
                0xa0, 0xdc, 0x83, 0xbf, 0x08, 0x00, 0x00, 0x00, 
1417
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
1418
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
1419
 
                0x08, 0x00, 0x00, 0x00, 0xae, 0xd9, 0x83, 0xbf, 
1420
 
                0x00, 0xe4, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 
1421
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
1422
 
                0x07, 0x00, 0x00, 0x00, 0x34, 0x80, 0x04, 0x08, 
1423
 
                0xd0, 0x85, 0x04, 0x08, 0x4c, 0x69, 0x6e, 0x75, 
1424
 
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1425
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
1426
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1427
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1428
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1429
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1430
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1431
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79, 0x72, 
1432
 
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 
1433
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
1434
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1435
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1436
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1437
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
1438
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
1439
 
                0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1440
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
1441
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
1442
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
1443
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
1444
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
1445
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
1446
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
1447
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
1448
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
1449
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1450
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
1451
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
1452
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x36, 0x5f, 0x31, 0x5f, 
1453
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
1454
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
1455
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
1456
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
1457
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
1458
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
1459
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
1460
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1461
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1462
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1463
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1464
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
1465
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x35, 0x00, 
1466
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1467
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1468
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
1469
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
1470
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
1471
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
1472
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
1473
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
1474
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
1475
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
1476
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
1477
 
                0x00, 0xf0, 0x04, 0x08 
1478
 
        };      /* Structure image */
1479
 
        
1480
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
1375
        static unsigned char data[] = {
 
1376
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
1377
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
1378
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1379
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
1380
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
1381
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
1382
                0x08, 0x00, 0x00, 0x00, 0x80, 0xdb, 0x83, 0xbf,
 
1383
                0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
1384
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
1385
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
1386
                0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1387
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1388
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1389
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1390
                0x00, 0x00, 0x00, 0x00, 0xc4, 0x1f, 0xf4, 0xb7,
 
1391
                0xa0, 0xdc, 0x83, 0xbf, 0x08, 0x00, 0x00, 0x00,
 
1392
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
1393
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
1394
                0x08, 0x00, 0x00, 0x00, 0xae, 0xd9, 0x83, 0xbf,
 
1395
                0x00, 0xe4, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00,
 
1396
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
1397
                0x07, 0x00, 0x00, 0x00, 0x34, 0x80, 0x04, 0x08,
 
1398
                0xd0, 0x85, 0x04, 0x08, 0x4c, 0x69, 0x6e, 0x75,
 
1399
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1400
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
1401
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1402
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1403
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1404
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1405
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1406
                0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79, 0x72,
 
1407
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1408
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
1409
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1410
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1411
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1412
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
1413
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
1414
                0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1415
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
1416
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
1417
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
1418
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
1419
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
1420
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
1421
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
1422
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
1423
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
1424
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1425
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
1426
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
1427
                0x2c, 0xf3, 0xdc, 0xb7, 0x36, 0x5f, 0x31, 0x5f,
 
1428
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
1429
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
1430
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
1431
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
1432
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
1433
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
1434
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
1435
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1436
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1437
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1438
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1439
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
1440
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x35, 0x00,
 
1441
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1442
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1443
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
1444
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
1445
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
1446
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
1447
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
1448
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
1449
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
1450
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
1451
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
1452
                0x00, 0xf0, 0x04, 0x08
 
1453
        };      /* Structure image */
 
1454
 
 
1455
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
1481
1456
}
1482
1457
 
1483
1458
static void
1484
1459
imdi_k5_tab(
1485
1460
tabspec *t                      /* structure to be initialised */
1486
1461
) {
1487
 
        static unsigned char data[] = {
1488
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
1489
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
1490
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
1491
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
1492
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
1493
 
                0x60, 0x80, 0xf3, 0xb7, 0x46, 0x83, 0x04, 0x08, 
1494
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
1495
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
1496
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
1497
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1498
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
1499
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
1500
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
1501
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
1502
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
1503
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
1504
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
1505
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1506
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
1507
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
1508
 
                0x00, 0x00, 0x00, 0x00, 0xa1, 0xd4, 0xe2, 0xb7, 
1509
 
                0xf4, 0xd5, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
1510
 
                0xff, 0xff, 0xff, 0x31, 0x00, 0x00, 0x00, 0x00, 
1511
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
1512
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1513
 
                0xa0, 0xd6, 0x83, 0xbf, 0x8b, 0x22, 0xe2, 0xb7, 
1514
 
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08, 
1515
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
1516
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
1517
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
1518
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
1519
 
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
1520
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
1521
 
        };      /* Structure image */
1522
 
        
1523
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
1462
        static unsigned char data[] = {
 
1463
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
1464
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
1465
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
1466
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
1467
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
1468
                0x60, 0x80, 0xf3, 0xb7, 0x46, 0x83, 0x04, 0x08,
 
1469
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
1470
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
1471
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
1472
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1473
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
1474
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
1475
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
1476
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
1477
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
1478
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
1479
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
1480
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1481
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
1482
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
1483
                0x00, 0x00, 0x00, 0x00, 0xa1, 0xd4, 0xe2, 0xb7,
 
1484
                0xf4, 0xd5, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
1485
                0xff, 0xff, 0xff, 0x31, 0x00, 0x00, 0x00, 0x00,
 
1486
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
1487
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1488
                0xa0, 0xd6, 0x83, 0xbf, 0x8b, 0x22, 0xe2, 0xb7,
 
1489
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08,
 
1490
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
1491
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
1492
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
1493
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
1494
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
1495
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
1496
        };      /* Structure image */
 
1497
 
 
1498
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
1524
1499
}
1525
1500
 
1526
 
 
1527
 
 
1528
 
 
1529
 
 
1530
 
 
1531
1501
/* Integer Multi-Dimensional Interpolation */
1532
1502
/* Interpolation Kernel Code */
1533
1503
/* Generated by cgen */
1536
1506
 
1537
1507
/* see the Licence.txt file for licencing details.*/
1538
1508
 
1539
 
 
1540
1509
/*
1541
1510
   Interpolation kernel specs:
1542
1511
 
1625
1594
void **inp,             /* pointer to input pointers */
1626
1595
unsigned int npix       /* Number of pixels to process */
1627
1596
) {
1628
 
        imdi_imp *p = (imdi_imp *)(s->impl);
1629
 
        unsigned char *ip0 = (unsigned char *)inp[0];
1630
 
        unsigned char *op0 = (unsigned char *)outp[0];
1631
 
        unsigned char *ep = ip0 + npix * 7 ;
1632
 
        pointer it0 = (pointer)p->in_tables[0];
1633
 
        pointer it1 = (pointer)p->in_tables[1];
1634
 
        pointer it2 = (pointer)p->in_tables[2];
1635
 
        pointer it3 = (pointer)p->in_tables[3];
1636
 
        pointer it4 = (pointer)p->in_tables[4];
1637
 
        pointer it5 = (pointer)p->in_tables[5];
1638
 
        pointer it6 = (pointer)p->in_tables[6];
1639
 
        pointer ot0 = (pointer)p->out_tables[0];
1640
 
        pointer im_base = (pointer)p->im_table;
1641
 
        
1642
 
        for(;ip0 < ep; ip0 += 7, op0 += 1) {
1643
 
                unsigned int ova0;      /* Output value partial accumulator */
1644
 
                {
1645
 
                        pointer imp;
1646
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
1647
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
1648
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
1649
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
1650
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
1651
 
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
1652
 
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
1653
 
                        {
1654
 
                                unsigned int ti_i;      /* Interpolation index variable */
1655
 
                                
1656
 
                                ti_i  = IT_IX(it0, ip0[0]);
1657
 
                                wo0   = IT_WO(it0, ip0[0]);
1658
 
                                ti_i += IT_IX(it1, ip0[1]);
1659
 
                                wo1   = IT_WO(it1, ip0[1]);
1660
 
                                ti_i += IT_IX(it2, ip0[2]);
1661
 
                                wo2   = IT_WO(it2, ip0[2]);
1662
 
                                ti_i += IT_IX(it3, ip0[3]);
1663
 
                                wo3   = IT_WO(it3, ip0[3]);
1664
 
                                ti_i += IT_IX(it4, ip0[4]);
1665
 
                                wo4   = IT_WO(it4, ip0[4]);
1666
 
                                ti_i += IT_IX(it5, ip0[5]);
1667
 
                                wo5   = IT_WO(it5, ip0[5]);
1668
 
                                ti_i += IT_IX(it6, ip0[6]);
1669
 
                                wo6   = IT_WO(it6, ip0[6]);
1670
 
                                
1671
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
1672
 
                                
1673
 
                                /* Sort weighting values and vertex offset values */
1674
 
                                CEX(wo0, wo1);
1675
 
                                CEX(wo0, wo2);
1676
 
                                CEX(wo0, wo3);
1677
 
                                CEX(wo0, wo4);
1678
 
                                CEX(wo0, wo5);
1679
 
                                CEX(wo0, wo6);
1680
 
                                CEX(wo1, wo2);
1681
 
                                CEX(wo1, wo3);
1682
 
                                CEX(wo1, wo4);
1683
 
                                CEX(wo1, wo5);
1684
 
                                CEX(wo1, wo6);
1685
 
                                CEX(wo2, wo3);
1686
 
                                CEX(wo2, wo4);
1687
 
                                CEX(wo2, wo5);
1688
 
                                CEX(wo2, wo6);
1689
 
                                CEX(wo3, wo4);
1690
 
                                CEX(wo3, wo5);
1691
 
                                CEX(wo3, wo6);
1692
 
                                CEX(wo4, wo5);
1693
 
                                CEX(wo4, wo6);
1694
 
                                CEX(wo5, wo6);
1695
 
                        }
1696
 
                        {
1697
 
                                unsigned int nvof;      /* Next vertex offset value */
1698
 
                                unsigned int vof;       /* Vertex offset value */
1699
 
                                unsigned int vwe;       /* Vertex weighting */
1700
 
                                
1701
 
                                vof = 0;                                /* First vertex offset is 0 */
1702
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
1703
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
1704
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
1705
 
                                ova0  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
1706
 
                                vof += nvof;                    /* Move to next vertex */
1707
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
1708
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
1709
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
1710
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
1711
 
                                vof += nvof;                    /* Move to next vertex */
1712
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
1713
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
1714
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
1715
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
1716
 
                                vof += nvof;                    /* Move to next vertex */
1717
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
1718
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
1719
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
1720
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
1721
 
                                vof += nvof;                    /* Move to next vertex */
1722
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
1723
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
1724
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
1725
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
1726
 
                                vof += nvof;                    /* Move to next vertex */
1727
 
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
1728
 
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
1729
 
                                vwe = wo4 - wo5;                /* Baricentric weighting */
1730
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
1731
 
                                vof += nvof;                    /* Move to next vertex */
1732
 
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
1733
 
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
1734
 
                                vwe = wo5 - wo6;                /* Baricentric weighting */
1735
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
1736
 
                                vof += nvof;                    /* Move to next vertex */
1737
 
                                vwe = wo6;                              /* Baricentric weighting */
1738
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
1739
 
                        }
1740
 
                }
1741
 
                {
1742
 
                        unsigned int oti;       /* Vertex offset value */
1743
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
1744
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
1745
 
                }
1746
 
        }
 
1597
        imdi_imp *p = (imdi_imp *)(s->impl);
 
1598
        unsigned char *ip0 = (unsigned char *)inp[0];
 
1599
        unsigned char *op0 = (unsigned char *)outp[0];
 
1600
        unsigned char *ep = ip0 + npix * 7 ;
 
1601
        pointer it0 = (pointer)p->in_tables[0];
 
1602
        pointer it1 = (pointer)p->in_tables[1];
 
1603
        pointer it2 = (pointer)p->in_tables[2];
 
1604
        pointer it3 = (pointer)p->in_tables[3];
 
1605
        pointer it4 = (pointer)p->in_tables[4];
 
1606
        pointer it5 = (pointer)p->in_tables[5];
 
1607
        pointer it6 = (pointer)p->in_tables[6];
 
1608
        pointer ot0 = (pointer)p->out_tables[0];
 
1609
        pointer im_base = (pointer)p->im_table;
 
1610
 
 
1611
        for(;ip0 < ep; ip0 += 7, op0 += 1) {
 
1612
                unsigned int ova0;      /* Output value partial accumulator */
 
1613
                {
 
1614
                        pointer imp;
 
1615
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
1616
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
1617
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
1618
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
1619
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
1620
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
 
1621
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
 
1622
                        {
 
1623
                                unsigned int ti_i;      /* Interpolation index variable */
 
1624
 
 
1625
                                ti_i  = IT_IX(it0, ip0[0]);
 
1626
                                wo0   = IT_WO(it0, ip0[0]);
 
1627
                                ti_i += IT_IX(it1, ip0[1]);
 
1628
                                wo1   = IT_WO(it1, ip0[1]);
 
1629
                                ti_i += IT_IX(it2, ip0[2]);
 
1630
                                wo2   = IT_WO(it2, ip0[2]);
 
1631
                                ti_i += IT_IX(it3, ip0[3]);
 
1632
                                wo3   = IT_WO(it3, ip0[3]);
 
1633
                                ti_i += IT_IX(it4, ip0[4]);
 
1634
                                wo4   = IT_WO(it4, ip0[4]);
 
1635
                                ti_i += IT_IX(it5, ip0[5]);
 
1636
                                wo5   = IT_WO(it5, ip0[5]);
 
1637
                                ti_i += IT_IX(it6, ip0[6]);
 
1638
                                wo6   = IT_WO(it6, ip0[6]);
 
1639
 
 
1640
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
1641
 
 
1642
                                /* Sort weighting values and vertex offset values */
 
1643
                                CEX(wo0, wo1);
 
1644
                                CEX(wo0, wo2);
 
1645
                                CEX(wo0, wo3);
 
1646
                                CEX(wo0, wo4);
 
1647
                                CEX(wo0, wo5);
 
1648
                                CEX(wo0, wo6);
 
1649
                                CEX(wo1, wo2);
 
1650
                                CEX(wo1, wo3);
 
1651
                                CEX(wo1, wo4);
 
1652
                                CEX(wo1, wo5);
 
1653
                                CEX(wo1, wo6);
 
1654
                                CEX(wo2, wo3);
 
1655
                                CEX(wo2, wo4);
 
1656
                                CEX(wo2, wo5);
 
1657
                                CEX(wo2, wo6);
 
1658
                                CEX(wo3, wo4);
 
1659
                                CEX(wo3, wo5);
 
1660
                                CEX(wo3, wo6);
 
1661
                                CEX(wo4, wo5);
 
1662
                                CEX(wo4, wo6);
 
1663
                                CEX(wo5, wo6);
 
1664
                        }
 
1665
                        {
 
1666
                                unsigned int nvof;      /* Next vertex offset value */
 
1667
                                unsigned int vof;       /* Vertex offset value */
 
1668
                                unsigned int vwe;       /* Vertex weighting */
 
1669
 
 
1670
                                vof = 0;                                /* First vertex offset is 0 */
 
1671
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
1672
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
1673
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
1674
                                ova0  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
1675
                                vof += nvof;                    /* Move to next vertex */
 
1676
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
1677
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
1678
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
1679
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
1680
                                vof += nvof;                    /* Move to next vertex */
 
1681
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
1682
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
1683
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
1684
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
1685
                                vof += nvof;                    /* Move to next vertex */
 
1686
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
1687
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
1688
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
1689
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
1690
                                vof += nvof;                    /* Move to next vertex */
 
1691
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
1692
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
1693
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
1694
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
1695
                                vof += nvof;                    /* Move to next vertex */
 
1696
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
 
1697
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
 
1698
                                vwe = wo4 - wo5;                /* Baricentric weighting */
 
1699
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
1700
                                vof += nvof;                    /* Move to next vertex */
 
1701
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
 
1702
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
 
1703
                                vwe = wo5 - wo6;                /* Baricentric weighting */
 
1704
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
1705
                                vof += nvof;                    /* Move to next vertex */
 
1706
                                vwe = wo6;                              /* Baricentric weighting */
 
1707
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
1708
                        }
 
1709
                }
 
1710
                {
 
1711
                        unsigned int oti;       /* Vertex offset value */
 
1712
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
1713
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
1714
                }
 
1715
        }
1747
1716
}
1748
1717
#undef IT_WO
1749
1718
#undef IT_IX
1756
1725
imdi_k6_gen(
1757
1726
genspec *g                      /* structure to be initialised */
1758
1727
) {
1759
 
        static unsigned char data[] = {
1760
 
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
1761
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
1762
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1763
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
1764
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
1765
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
1766
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
1767
 
                0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
1768
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
1769
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
1770
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
1771
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1772
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1773
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1774
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1775
 
                0xa0, 0xdc, 0x83, 0xbf, 0x08, 0x00, 0x00, 0x00, 
1776
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
1777
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
1778
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
1779
 
                0x00, 0xe4, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 
1780
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
1781
 
                0x07, 0x00, 0x00, 0x00, 0x34, 0x80, 0x04, 0x08, 
1782
 
                0xd0, 0x85, 0x04, 0x08, 0x4c, 0x69, 0x6e, 0x75, 
1783
 
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1784
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
1785
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1786
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1787
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1788
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1789
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1790
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79, 0x72, 
1791
 
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 
1792
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
1793
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1794
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1795
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1796
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
1797
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
1798
 
                0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1799
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
1800
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
1801
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
1802
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
1803
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
1804
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
1805
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
1806
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
1807
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
1808
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1809
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
1810
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
1811
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x37, 0x5f, 0x31, 0x5f, 
1812
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
1813
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
1814
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
1815
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
1816
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
1817
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
1818
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
1819
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1820
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1821
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1822
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1823
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
1824
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x36, 0x00, 
1825
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1826
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1827
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
1828
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
1829
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
1830
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
1831
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
1832
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
1833
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
1834
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
1835
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
1836
 
                0x00, 0xf0, 0x04, 0x08 
1837
 
        };      /* Structure image */
1838
 
        
1839
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
1728
        static unsigned char data[] = {
 
1729
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
1730
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
1731
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1732
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
1733
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
1734
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
1735
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
1736
                0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
1737
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
1738
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
1739
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
1740
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1741
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1742
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1743
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1744
                0xa0, 0xdc, 0x83, 0xbf, 0x08, 0x00, 0x00, 0x00,
 
1745
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
1746
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
1747
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
1748
                0x00, 0xe4, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00,
 
1749
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
1750
                0x07, 0x00, 0x00, 0x00, 0x34, 0x80, 0x04, 0x08,
 
1751
                0xd0, 0x85, 0x04, 0x08, 0x4c, 0x69, 0x6e, 0x75,
 
1752
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1753
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
1754
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1755
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1756
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1757
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1758
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1759
                0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79, 0x72,
 
1760
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1761
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
1762
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1763
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1764
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1765
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
1766
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
1767
                0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1768
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
1769
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
1770
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
1771
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
1772
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
1773
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
1774
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
1775
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
1776
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
1777
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1778
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
1779
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
1780
                0x2c, 0xf3, 0xdc, 0xb7, 0x37, 0x5f, 0x31, 0x5f,
 
1781
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
1782
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
1783
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
1784
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
1785
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
1786
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
1787
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
1788
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1789
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1790
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1791
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1792
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
1793
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x36, 0x00,
 
1794
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1795
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1796
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
1797
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
1798
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
1799
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
1800
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
1801
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
1802
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
1803
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
1804
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
1805
                0x00, 0xf0, 0x04, 0x08
 
1806
        };      /* Structure image */
 
1807
 
 
1808
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
1840
1809
}
1841
1810
 
1842
1811
static void
1843
1812
imdi_k6_tab(
1844
1813
tabspec *t                      /* structure to be initialised */
1845
1814
) {
1846
 
        static unsigned char data[] = {
1847
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
1848
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
1849
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
1850
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
1851
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
1852
 
                0x06, 0x00, 0x00, 0x00, 0x46, 0x83, 0x04, 0x08, 
1853
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
1854
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
1855
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
1856
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1857
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
1858
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
1859
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
1860
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
1861
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
1862
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
1863
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
1864
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1865
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
1866
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
1867
 
                0x00, 0x00, 0x00, 0x00, 0xa1, 0xd4, 0xe2, 0xb7, 
1868
 
                0xf4, 0xd5, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
1869
 
                0xff, 0xff, 0xff, 0x31, 0x00, 0x00, 0x00, 0x00, 
1870
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
1871
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
1872
 
                0xa0, 0xd6, 0x83, 0xbf, 0x8b, 0x22, 0xe2, 0xb7, 
1873
 
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08, 
1874
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
1875
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
1876
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
1877
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
1878
 
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
1879
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
1880
 
        };      /* Structure image */
1881
 
        
1882
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
1815
        static unsigned char data[] = {
 
1816
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
1817
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
1818
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
1819
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
1820
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
1821
                0x06, 0x00, 0x00, 0x00, 0x46, 0x83, 0x04, 0x08,
 
1822
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
1823
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
1824
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
1825
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1826
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
1827
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
1828
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
1829
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
1830
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
1831
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
1832
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
1833
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1834
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
1835
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
1836
                0x00, 0x00, 0x00, 0x00, 0xa1, 0xd4, 0xe2, 0xb7,
 
1837
                0xf4, 0xd5, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
1838
                0xff, 0xff, 0xff, 0x31, 0x00, 0x00, 0x00, 0x00,
 
1839
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
1840
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
1841
                0xa0, 0xd6, 0x83, 0xbf, 0x8b, 0x22, 0xe2, 0xb7,
 
1842
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08,
 
1843
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
1844
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
1845
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
1846
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
1847
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
1848
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
1849
        };      /* Structure image */
 
1850
 
 
1851
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
1883
1852
}
1884
1853
 
1885
 
 
1886
 
 
1887
 
 
1888
 
 
1889
 
 
1890
1854
/* Integer Multi-Dimensional Interpolation */
1891
1855
/* Interpolation Kernel Code */
1892
1856
/* Generated by cgen */
1895
1859
 
1896
1860
/* see the Licence.txt file for licencing details.*/
1897
1861
 
1898
 
 
1899
1862
/*
1900
1863
   Interpolation kernel specs:
1901
1864
 
1986
1949
void **inp,             /* pointer to input pointers */
1987
1950
unsigned int npix       /* Number of pixels to process */
1988
1951
) {
1989
 
        imdi_imp *p = (imdi_imp *)(s->impl);
1990
 
        unsigned char *ip0 = (unsigned char *)inp[0];
1991
 
        unsigned char *op0 = (unsigned char *)outp[0];
1992
 
        unsigned char *ep = ip0 + npix * 8 ;
1993
 
        pointer it0 = (pointer)p->in_tables[0];
1994
 
        pointer it1 = (pointer)p->in_tables[1];
1995
 
        pointer it2 = (pointer)p->in_tables[2];
1996
 
        pointer it3 = (pointer)p->in_tables[3];
1997
 
        pointer it4 = (pointer)p->in_tables[4];
1998
 
        pointer it5 = (pointer)p->in_tables[5];
1999
 
        pointer it6 = (pointer)p->in_tables[6];
2000
 
        pointer it7 = (pointer)p->in_tables[7];
2001
 
        pointer ot0 = (pointer)p->out_tables[0];
2002
 
        pointer im_base = (pointer)p->im_table;
2003
 
        
2004
 
        for(;ip0 < ep; ip0 += 8, op0 += 1) {
2005
 
                unsigned int ova0;      /* Output value partial accumulator */
2006
 
                {
2007
 
                        pointer imp;
2008
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
2009
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
2010
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
2011
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
2012
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
2013
 
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
2014
 
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
2015
 
                        unsigned int wo7;       /* Weighting value and vertex offset variable */
2016
 
                        {
2017
 
                                unsigned int ti_i;      /* Interpolation index variable */
2018
 
                                
2019
 
                                ti_i  = IT_IX(it0, ip0[0]);
2020
 
                                wo0   = IT_WO(it0, ip0[0]);
2021
 
                                ti_i += IT_IX(it1, ip0[1]);
2022
 
                                wo1   = IT_WO(it1, ip0[1]);
2023
 
                                ti_i += IT_IX(it2, ip0[2]);
2024
 
                                wo2   = IT_WO(it2, ip0[2]);
2025
 
                                ti_i += IT_IX(it3, ip0[3]);
2026
 
                                wo3   = IT_WO(it3, ip0[3]);
2027
 
                                ti_i += IT_IX(it4, ip0[4]);
2028
 
                                wo4   = IT_WO(it4, ip0[4]);
2029
 
                                ti_i += IT_IX(it5, ip0[5]);
2030
 
                                wo5   = IT_WO(it5, ip0[5]);
2031
 
                                ti_i += IT_IX(it6, ip0[6]);
2032
 
                                wo6   = IT_WO(it6, ip0[6]);
2033
 
                                ti_i += IT_IX(it7, ip0[7]);
2034
 
                                wo7   = IT_WO(it7, ip0[7]);
2035
 
                                
2036
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
2037
 
                                
2038
 
                                /* Sort weighting values and vertex offset values */
2039
 
                                CEX(wo0, wo1);
2040
 
                                CEX(wo0, wo2);
2041
 
                                CEX(wo0, wo3);
2042
 
                                CEX(wo0, wo4);
2043
 
                                CEX(wo0, wo5);
2044
 
                                CEX(wo0, wo6);
2045
 
                                CEX(wo0, wo7);
2046
 
                                CEX(wo1, wo2);
2047
 
                                CEX(wo1, wo3);
2048
 
                                CEX(wo1, wo4);
2049
 
                                CEX(wo1, wo5);
2050
 
                                CEX(wo1, wo6);
2051
 
                                CEX(wo1, wo7);
2052
 
                                CEX(wo2, wo3);
2053
 
                                CEX(wo2, wo4);
2054
 
                                CEX(wo2, wo5);
2055
 
                                CEX(wo2, wo6);
2056
 
                                CEX(wo2, wo7);
2057
 
                                CEX(wo3, wo4);
2058
 
                                CEX(wo3, wo5);
2059
 
                                CEX(wo3, wo6);
2060
 
                                CEX(wo3, wo7);
2061
 
                                CEX(wo4, wo5);
2062
 
                                CEX(wo4, wo6);
2063
 
                                CEX(wo4, wo7);
2064
 
                                CEX(wo5, wo6);
2065
 
                                CEX(wo5, wo7);
2066
 
                                CEX(wo6, wo7);
2067
 
                        }
2068
 
                        {
2069
 
                                unsigned int nvof;      /* Next vertex offset value */
2070
 
                                unsigned int vof;       /* Vertex offset value */
2071
 
                                unsigned int vwe;       /* Vertex weighting */
2072
 
                                
2073
 
                                vof = 0;                                /* First vertex offset is 0 */
2074
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
2075
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
2076
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
2077
 
                                ova0  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
2078
 
                                vof += nvof;                    /* Move to next vertex */
2079
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
2080
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
2081
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
2082
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
2083
 
                                vof += nvof;                    /* Move to next vertex */
2084
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
2085
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
2086
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
2087
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
2088
 
                                vof += nvof;                    /* Move to next vertex */
2089
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
2090
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
2091
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
2092
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
2093
 
                                vof += nvof;                    /* Move to next vertex */
2094
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
2095
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
2096
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
2097
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
2098
 
                                vof += nvof;                    /* Move to next vertex */
2099
 
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
2100
 
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
2101
 
                                vwe = wo4 - wo5;                /* Baricentric weighting */
2102
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
2103
 
                                vof += nvof;                    /* Move to next vertex */
2104
 
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
2105
 
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
2106
 
                                vwe = wo5 - wo6;                /* Baricentric weighting */
2107
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
2108
 
                                vof += nvof;                    /* Move to next vertex */
2109
 
                                nvof = (wo7 & 0x7fffff);        /* Extract offset value */
2110
 
                                wo7 = (wo7 >> 23);              /* Extract weighting value */
2111
 
                                vwe = wo6 - wo7;                /* Baricentric weighting */
2112
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
2113
 
                                vof += nvof;                    /* Move to next vertex */
2114
 
                                vwe = wo7;                              /* Baricentric weighting */
2115
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
2116
 
                        }
2117
 
                }
2118
 
                {
2119
 
                        unsigned int oti;       /* Vertex offset value */
2120
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
2121
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
2122
 
                }
2123
 
        }
 
1952
        imdi_imp *p = (imdi_imp *)(s->impl);
 
1953
        unsigned char *ip0 = (unsigned char *)inp[0];
 
1954
        unsigned char *op0 = (unsigned char *)outp[0];
 
1955
        unsigned char *ep = ip0 + npix * 8 ;
 
1956
        pointer it0 = (pointer)p->in_tables[0];
 
1957
        pointer it1 = (pointer)p->in_tables[1];
 
1958
        pointer it2 = (pointer)p->in_tables[2];
 
1959
        pointer it3 = (pointer)p->in_tables[3];
 
1960
        pointer it4 = (pointer)p->in_tables[4];
 
1961
        pointer it5 = (pointer)p->in_tables[5];
 
1962
        pointer it6 = (pointer)p->in_tables[6];
 
1963
        pointer it7 = (pointer)p->in_tables[7];
 
1964
        pointer ot0 = (pointer)p->out_tables[0];
 
1965
        pointer im_base = (pointer)p->im_table;
 
1966
 
 
1967
        for(;ip0 < ep; ip0 += 8, op0 += 1) {
 
1968
                unsigned int ova0;      /* Output value partial accumulator */
 
1969
                {
 
1970
                        pointer imp;
 
1971
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
1972
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
1973
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
1974
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
1975
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
1976
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
 
1977
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
 
1978
                        unsigned int wo7;       /* Weighting value and vertex offset variable */
 
1979
                        {
 
1980
                                unsigned int ti_i;      /* Interpolation index variable */
 
1981
 
 
1982
                                ti_i  = IT_IX(it0, ip0[0]);
 
1983
                                wo0   = IT_WO(it0, ip0[0]);
 
1984
                                ti_i += IT_IX(it1, ip0[1]);
 
1985
                                wo1   = IT_WO(it1, ip0[1]);
 
1986
                                ti_i += IT_IX(it2, ip0[2]);
 
1987
                                wo2   = IT_WO(it2, ip0[2]);
 
1988
                                ti_i += IT_IX(it3, ip0[3]);
 
1989
                                wo3   = IT_WO(it3, ip0[3]);
 
1990
                                ti_i += IT_IX(it4, ip0[4]);
 
1991
                                wo4   = IT_WO(it4, ip0[4]);
 
1992
                                ti_i += IT_IX(it5, ip0[5]);
 
1993
                                wo5   = IT_WO(it5, ip0[5]);
 
1994
                                ti_i += IT_IX(it6, ip0[6]);
 
1995
                                wo6   = IT_WO(it6, ip0[6]);
 
1996
                                ti_i += IT_IX(it7, ip0[7]);
 
1997
                                wo7   = IT_WO(it7, ip0[7]);
 
1998
 
 
1999
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
2000
 
 
2001
                                /* Sort weighting values and vertex offset values */
 
2002
                                CEX(wo0, wo1);
 
2003
                                CEX(wo0, wo2);
 
2004
                                CEX(wo0, wo3);
 
2005
                                CEX(wo0, wo4);
 
2006
                                CEX(wo0, wo5);
 
2007
                                CEX(wo0, wo6);
 
2008
                                CEX(wo0, wo7);
 
2009
                                CEX(wo1, wo2);
 
2010
                                CEX(wo1, wo3);
 
2011
                                CEX(wo1, wo4);
 
2012
                                CEX(wo1, wo5);
 
2013
                                CEX(wo1, wo6);
 
2014
                                CEX(wo1, wo7);
 
2015
                                CEX(wo2, wo3);
 
2016
                                CEX(wo2, wo4);
 
2017
                                CEX(wo2, wo5);
 
2018
                                CEX(wo2, wo6);
 
2019
                                CEX(wo2, wo7);
 
2020
                                CEX(wo3, wo4);
 
2021
                                CEX(wo3, wo5);
 
2022
                                CEX(wo3, wo6);
 
2023
                                CEX(wo3, wo7);
 
2024
                                CEX(wo4, wo5);
 
2025
                                CEX(wo4, wo6);
 
2026
                                CEX(wo4, wo7);
 
2027
                                CEX(wo5, wo6);
 
2028
                                CEX(wo5, wo7);
 
2029
                                CEX(wo6, wo7);
 
2030
                        }
 
2031
                        {
 
2032
                                unsigned int nvof;      /* Next vertex offset value */
 
2033
                                unsigned int vof;       /* Vertex offset value */
 
2034
                                unsigned int vwe;       /* Vertex weighting */
 
2035
 
 
2036
                                vof = 0;                                /* First vertex offset is 0 */
 
2037
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
2038
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
2039
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
2040
                                ova0  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
2041
                                vof += nvof;                    /* Move to next vertex */
 
2042
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
2043
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
2044
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
2045
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
2046
                                vof += nvof;                    /* Move to next vertex */
 
2047
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
2048
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
2049
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
2050
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
2051
                                vof += nvof;                    /* Move to next vertex */
 
2052
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
2053
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
2054
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
2055
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
2056
                                vof += nvof;                    /* Move to next vertex */
 
2057
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
2058
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
2059
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
2060
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
2061
                                vof += nvof;                    /* Move to next vertex */
 
2062
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
 
2063
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
 
2064
                                vwe = wo4 - wo5;                /* Baricentric weighting */
 
2065
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
2066
                                vof += nvof;                    /* Move to next vertex */
 
2067
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
 
2068
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
 
2069
                                vwe = wo5 - wo6;                /* Baricentric weighting */
 
2070
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
2071
                                vof += nvof;                    /* Move to next vertex */
 
2072
                                nvof = (wo7 & 0x7fffff);        /* Extract offset value */
 
2073
                                wo7 = (wo7 >> 23);              /* Extract weighting value */
 
2074
                                vwe = wo6 - wo7;                /* Baricentric weighting */
 
2075
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
2076
                                vof += nvof;                    /* Move to next vertex */
 
2077
                                vwe = wo7;                              /* Baricentric weighting */
 
2078
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
2079
                        }
 
2080
                }
 
2081
                {
 
2082
                        unsigned int oti;       /* Vertex offset value */
 
2083
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
2084
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
2085
                }
 
2086
        }
2124
2087
}
2125
2088
#undef IT_WO
2126
2089
#undef IT_IX
2133
2096
imdi_k7_gen(
2134
2097
genspec *g                      /* structure to be initialised */
2135
2098
) {
2136
 
        static unsigned char data[] = {
2137
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2138
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
2139
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2140
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2141
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2142
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2143
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2144
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2145
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2146
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2147
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2148
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2149
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2150
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2151
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2152
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2153
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2154
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2155
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2156
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
2157
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2158
 
                0x07, 0x00, 0x00, 0x00, 0x34, 0x80, 0x04, 0x08, 
2159
 
                0xd0, 0x85, 0x04, 0x08, 0x4c, 0x69, 0x6e, 0x75, 
2160
 
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2161
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
2162
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2163
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2164
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2165
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2166
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2167
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79, 0x72, 
2168
 
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 
2169
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2170
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2171
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2172
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2173
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
2174
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
2175
 
                0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2176
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
2177
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
2178
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
2179
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
2180
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
2181
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
2182
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
2183
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
2184
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
2185
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2186
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
2187
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
2188
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x38, 0x5f, 0x31, 0x5f, 
2189
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
2190
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
2191
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
2192
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
2193
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
2194
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
2195
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
2196
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2197
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2198
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2199
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2200
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
2201
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x37, 0x00, 
2202
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2203
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2204
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
2205
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
2206
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
2207
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
2208
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
2209
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
2210
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
2211
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
2212
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
2213
 
                0x00, 0xf0, 0x04, 0x08 
2214
 
        };      /* Structure image */
2215
 
        
2216
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
2099
        static unsigned char data[] = {
 
2100
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2101
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
2102
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2103
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2104
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2105
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2106
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2107
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2108
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2109
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2110
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2111
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2112
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2113
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2114
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2115
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2116
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2117
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2118
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2119
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
2120
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2121
                0x07, 0x00, 0x00, 0x00, 0x34, 0x80, 0x04, 0x08,
 
2122
                0xd0, 0x85, 0x04, 0x08, 0x4c, 0x69, 0x6e, 0x75,
 
2123
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2124
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
2125
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2126
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2127
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2128
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2129
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2130
                0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79, 0x72,
 
2131
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2132
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2133
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2134
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2135
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2136
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
2137
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
2138
                0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2139
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
2140
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
2141
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
2142
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
2143
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
2144
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
2145
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
2146
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
2147
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
2148
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2149
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
2150
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
2151
                0x2c, 0xf3, 0xdc, 0xb7, 0x38, 0x5f, 0x31, 0x5f,
 
2152
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
2153
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
2154
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
2155
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
2156
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
2157
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
2158
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
2159
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2160
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2161
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2162
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2163
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
2164
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x37, 0x00,
 
2165
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2166
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2167
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
2168
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
2169
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
2170
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
2171
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
2172
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
2173
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
2174
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
2175
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
2176
                0x00, 0xf0, 0x04, 0x08
 
2177
        };      /* Structure image */
 
2178
 
 
2179
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
2217
2180
}
2218
2181
 
2219
2182
static void
2220
2183
imdi_k7_tab(
2221
2184
tabspec *t                      /* structure to be initialised */
2222
2185
) {
2223
 
        static unsigned char data[] = {
2224
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
2225
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
2226
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
2227
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
2228
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
2229
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
2230
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2231
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
2232
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
2233
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2234
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
2235
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
2236
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
2237
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
2238
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
2239
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
2240
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
2241
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2242
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
2243
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
2244
 
                0x00, 0x00, 0x00, 0x00, 0xa1, 0xd4, 0xe2, 0xb7, 
2245
 
                0xf4, 0xd5, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
2246
 
                0xff, 0xff, 0xff, 0x31, 0x00, 0x00, 0x00, 0x00, 
2247
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
2248
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2249
 
                0xa0, 0xd6, 0x83, 0xbf, 0x8b, 0x22, 0xe2, 0xb7, 
2250
 
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08, 
2251
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
2252
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2253
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
2254
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
2255
 
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
2256
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
2257
 
        };      /* Structure image */
2258
 
        
2259
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
2186
        static unsigned char data[] = {
 
2187
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
2188
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
2189
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
2190
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
2191
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
2192
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
2193
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2194
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
2195
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
2196
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2197
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
2198
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
2199
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
2200
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
2201
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
2202
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
2203
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
2204
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2205
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
2206
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
2207
                0x00, 0x00, 0x00, 0x00, 0xa1, 0xd4, 0xe2, 0xb7,
 
2208
                0xf4, 0xd5, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
2209
                0xff, 0xff, 0xff, 0x31, 0x00, 0x00, 0x00, 0x00,
 
2210
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
2211
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2212
                0xa0, 0xd6, 0x83, 0xbf, 0x8b, 0x22, 0xe2, 0xb7,
 
2213
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08,
 
2214
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
2215
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2216
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
2217
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
2218
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
2219
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
2220
        };      /* Structure image */
 
2221
 
 
2222
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
2260
2223
}
2261
2224
 
2262
 
 
2263
 
 
2264
 
 
2265
 
 
2266
 
 
2267
2225
/* Integer Multi-Dimensional Interpolation */
2268
2226
/* Interpolation Kernel Code */
2269
2227
/* Generated by cgen */
2272
2230
 
2273
2231
/* see the Licence.txt file for licencing details.*/
2274
2232
 
2275
 
 
2276
2233
/*
2277
2234
   Interpolation kernel specs:
2278
2235
 
2355
2312
void **inp,             /* pointer to input pointers */
2356
2313
unsigned int npix       /* Number of pixels to process */
2357
2314
) {
2358
 
        imdi_imp *p = (imdi_imp *)(s->impl);
2359
 
        unsigned char *ip0 = (unsigned char *)inp[0];
2360
 
        unsigned char *op0 = (unsigned char *)outp[0];
2361
 
        unsigned char *ep = ip0 + npix * 1 ;
2362
 
        pointer it0 = (pointer)p->in_tables[0];
2363
 
        pointer ot0 = (pointer)p->out_tables[0];
2364
 
        pointer ot1 = (pointer)p->out_tables[1];
2365
 
        pointer ot2 = (pointer)p->out_tables[2];
2366
 
        pointer sw_base = (pointer)p->sw_table;
2367
 
        pointer im_base = (pointer)p->im_table;
2368
 
        
2369
 
        for(;ip0 < ep; ip0 += 1, op0 += 3) {
2370
 
                unsigned int ova0;      /* Output value accumulator */
2371
 
                unsigned int ova1;      /* Output value partial accumulator */
2372
 
                {
2373
 
                        pointer swp;
2374
 
                        pointer imp;
2375
 
                        {
2376
 
                                unsigned int ti;        /* Simplex+Interpolation index variable */
2377
 
                                
2378
 
                                ti  = IT_IT(it0, ip0[0]);
2379
 
                                
2380
 
                                imp = im_base + IM_O(ti >> 0);          /* Extract interp. index and comp. entry */
2381
 
                                swp = sw_base + SW_O(ti & 0x0); /* Extract simplex index and comp. entry */
2382
 
                        }
2383
 
                        {
2384
 
                                unsigned int vowr;      /* Vertex offset/weight value */
2385
 
                                unsigned int vof;       /* Vertex offset value */
2386
 
                                unsigned int vwe;       /* Vertex weighting */
2387
 
                                
2388
 
                                vowr = SX_WO(swp, 0);   /* Read vertex offset+weighting values */
2389
 
                                vof = (vowr & 0x7f);    /* Extract offset value */
2390
 
                                vwe = (vowr >> 7);      /* Extract weighting value */
2391
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
2392
 
                                ova1  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
2393
 
                                vowr = SX_WO(swp, 1);   /* Read vertex offset+weighting values */
2394
 
                                vof = (vowr & 0x7f);    /* Extract offset value */
2395
 
                                vwe = (vowr >> 7);      /* Extract weighting value */
2396
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
2397
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
2398
 
                        }
2399
 
                }
2400
 
                {
2401
 
                        unsigned int oti;       /* Vertex offset value */
2402
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
2403
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
2404
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
2405
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
2406
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
2407
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
2408
 
                }
2409
 
        }
 
2315
        imdi_imp *p = (imdi_imp *)(s->impl);
 
2316
        unsigned char *ip0 = (unsigned char *)inp[0];
 
2317
        unsigned char *op0 = (unsigned char *)outp[0];
 
2318
        unsigned char *ep = ip0 + npix * 1 ;
 
2319
        pointer it0 = (pointer)p->in_tables[0];
 
2320
        pointer ot0 = (pointer)p->out_tables[0];
 
2321
        pointer ot1 = (pointer)p->out_tables[1];
 
2322
        pointer ot2 = (pointer)p->out_tables[2];
 
2323
        pointer sw_base = (pointer)p->sw_table;
 
2324
        pointer im_base = (pointer)p->im_table;
 
2325
 
 
2326
        for(;ip0 < ep; ip0 += 1, op0 += 3) {
 
2327
                unsigned int ova0;      /* Output value accumulator */
 
2328
                unsigned int ova1;      /* Output value partial accumulator */
 
2329
                {
 
2330
                        pointer swp;
 
2331
                        pointer imp;
 
2332
                        {
 
2333
                                unsigned int ti;        /* Simplex+Interpolation index variable */
 
2334
 
 
2335
                                ti  = IT_IT(it0, ip0[0]);
 
2336
 
 
2337
                                imp = im_base + IM_O(ti >> 0);          /* Extract interp. index and comp. entry */
 
2338
                                swp = sw_base + SW_O(ti & 0x0); /* Extract simplex index and comp. entry */
 
2339
                        }
 
2340
                        {
 
2341
                                unsigned int vowr;      /* Vertex offset/weight value */
 
2342
                                unsigned int vof;       /* Vertex offset value */
 
2343
                                unsigned int vwe;       /* Vertex weighting */
 
2344
 
 
2345
                                vowr = SX_WO(swp, 0);   /* Read vertex offset+weighting values */
 
2346
                                vof = (vowr & 0x7f);    /* Extract offset value */
 
2347
                                vwe = (vowr >> 7);      /* Extract weighting value */
 
2348
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
2349
                                ova1  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
2350
                                vowr = SX_WO(swp, 1);   /* Read vertex offset+weighting values */
 
2351
                                vof = (vowr & 0x7f);    /* Extract offset value */
 
2352
                                vwe = (vowr >> 7);      /* Extract weighting value */
 
2353
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
2354
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
2355
                        }
 
2356
                }
 
2357
                {
 
2358
                        unsigned int oti;       /* Vertex offset value */
 
2359
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
2360
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
2361
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
2362
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
2363
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
2364
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
2365
                }
 
2366
        }
2410
2367
}
2411
2368
#undef IT_IT
2412
2369
#undef SW_O
2420
2377
imdi_k8_gen(
2421
2378
genspec *g                      /* structure to be initialised */
2422
2379
) {
2423
 
        static unsigned char data[] = {
2424
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
2425
 
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
2426
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2427
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2428
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2429
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2430
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2431
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
2432
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2433
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2434
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2435
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2436
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2437
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2438
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2439
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2440
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2441
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2442
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2443
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
2444
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2445
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2446
 
                0xd0, 0x85, 0x04, 0x08, 0x4c, 0x69, 0x6e, 0x75, 
2447
 
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2448
 
                0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
2449
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
2450
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2451
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2452
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2453
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2454
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79, 0x72, 
2455
 
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 
2456
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2457
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2458
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2459
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2460
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
2461
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
2462
 
                0xff, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
2463
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
2464
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
2465
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
2466
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
2467
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
2468
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
2469
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
2470
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
2471
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
2472
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2473
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
2474
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
2475
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x31, 0x5f, 0x33, 0x5f, 
2476
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
2477
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
2478
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
2479
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
2480
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
2481
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
2482
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
2483
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2484
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2485
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2486
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2487
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
2488
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x38, 0x00, 
2489
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2490
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2491
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
2492
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
2493
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
2494
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
2495
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
2496
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
2497
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
2498
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
2499
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
2500
 
                0x00, 0xf0, 0x04, 0x08 
2501
 
        };      /* Structure image */
2502
 
        
2503
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
2380
        static unsigned char data[] = {
 
2381
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
2382
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
2383
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2384
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2385
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2386
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2387
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2388
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
2389
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2390
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2391
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2392
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2393
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2394
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2395
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2396
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2397
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2398
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2399
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2400
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
2401
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2402
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2403
                0xd0, 0x85, 0x04, 0x08, 0x4c, 0x69, 0x6e, 0x75,
 
2404
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2405
                0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
2406
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
2407
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2408
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2409
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2410
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2411
                0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79, 0x72,
 
2412
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2413
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2414
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2415
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2416
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2417
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
2418
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
2419
                0xff, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
2420
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
2421
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
2422
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
2423
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
2424
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
2425
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
2426
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
2427
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
2428
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
2429
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2430
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
2431
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
2432
                0x2c, 0xf3, 0xdc, 0xb7, 0x31, 0x5f, 0x33, 0x5f,
 
2433
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
2434
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
2435
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
2436
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
2437
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
2438
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
2439
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
2440
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2441
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2442
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2443
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2444
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
2445
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x38, 0x00,
 
2446
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2447
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2448
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
2449
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
2450
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
2451
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
2452
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
2453
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
2454
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
2455
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
2456
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
2457
                0x00, 0xf0, 0x04, 0x08
 
2458
        };      /* Structure image */
 
2459
 
 
2460
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
2504
2461
}
2505
2462
 
2506
2463
static void
2507
2464
imdi_k8_tab(
2508
2465
tabspec *t                      /* structure to be initialised */
2509
2466
) {
2510
 
        static unsigned char data[] = {
2511
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2512
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
2513
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
2514
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
2515
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
2516
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
2517
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
2518
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
2519
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2520
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2521
 
                0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
2522
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2523
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
2524
 
                0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
2525
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
2526
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
2527
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2528
 
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
2529
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
2530
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
2531
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
2532
 
                0x02, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
2533
 
                0xff, 0xff, 0xff, 0x33, 0x00, 0x00, 0x00, 0x00, 
2534
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
2535
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2536
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2537
 
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08, 
2538
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
2539
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2540
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2541
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
2542
 
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
2543
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
2544
 
        };      /* Structure image */
2545
 
        
2546
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
2467
        static unsigned char data[] = {
 
2468
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2469
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
2470
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
2471
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
2472
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
2473
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
2474
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
2475
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
2476
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2477
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2478
                0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
2479
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2480
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
2481
                0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
2482
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
2483
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
2484
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2485
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
2486
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
2487
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
2488
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
2489
                0x02, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
2490
                0xff, 0xff, 0xff, 0x33, 0x00, 0x00, 0x00, 0x00,
 
2491
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
2492
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2493
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2494
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08,
 
2495
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
2496
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2497
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2498
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
2499
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
2500
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
2501
        };      /* Structure image */
 
2502
 
 
2503
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
2547
2504
}
2548
2505
 
2549
 
 
2550
 
 
2551
 
 
2552
 
 
2553
 
 
2554
2506
/* Integer Multi-Dimensional Interpolation */
2555
2507
/* Interpolation Kernel Code */
2556
2508
/* Generated by cgen */
2559
2511
 
2560
2512
/* see the Licence.txt file for licencing details.*/
2561
2513
 
2562
 
 
2563
2514
/*
2564
2515
   Interpolation kernel specs:
2565
2516
 
2649
2600
void **inp,             /* pointer to input pointers */
2650
2601
unsigned int npix       /* Number of pixels to process */
2651
2602
) {
2652
 
        imdi_imp *p = (imdi_imp *)(s->impl);
2653
 
        unsigned char *ip0 = (unsigned char *)inp[0];
2654
 
        unsigned char *op0 = (unsigned char *)outp[0];
2655
 
        unsigned char *ep = ip0 + npix * 3 ;
2656
 
        pointer it0 = (pointer)p->in_tables[0];
2657
 
        pointer it1 = (pointer)p->in_tables[1];
2658
 
        pointer it2 = (pointer)p->in_tables[2];
2659
 
        pointer ot0 = (pointer)p->out_tables[0];
2660
 
        pointer ot1 = (pointer)p->out_tables[1];
2661
 
        pointer ot2 = (pointer)p->out_tables[2];
2662
 
        pointer sw_base = (pointer)p->sw_table;
2663
 
        pointer im_base = (pointer)p->im_table;
2664
 
        
2665
 
        for(;ip0 < ep; ip0 += 3, op0 += 3) {
2666
 
                unsigned int ova0;      /* Output value accumulator */
2667
 
                unsigned int ova1;      /* Output value partial accumulator */
2668
 
                {
2669
 
                        pointer swp;
2670
 
                        pointer imp;
2671
 
                        {
2672
 
                                unsigned int ti;        /* Simplex+Interpolation index variable */
2673
 
                                
2674
 
                                ti  = IT_IT(it0, ip0[0]);
2675
 
                                ti += IT_IT(it1, ip0[1]);
2676
 
                                ti += IT_IT(it2, ip0[2]);
2677
 
                                
2678
 
                                imp = im_base + IM_O(ti >> 12);         /* Extract interp. index and comp. entry */
2679
 
                                swp = sw_base + SW_O(ti & 0xfff);       /* Extract simplex index and comp. entry */
2680
 
                        }
2681
 
                        {
2682
 
                                unsigned int vof;       /* Vertex offset value */
2683
 
                                unsigned int vwe;       /* Vertex weighting */
2684
 
                                
2685
 
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
2686
 
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
2687
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
2688
 
                                ova1  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
2689
 
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
2690
 
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
2691
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
2692
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
2693
 
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
2694
 
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
2695
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
2696
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
2697
 
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
2698
 
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
2699
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
2700
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
2701
 
                        }
2702
 
                }
2703
 
                {
2704
 
                        unsigned int oti;       /* Vertex offset value */
2705
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
2706
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
2707
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
2708
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
2709
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
2710
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
2711
 
                }
2712
 
        }
 
2603
        imdi_imp *p = (imdi_imp *)(s->impl);
 
2604
        unsigned char *ip0 = (unsigned char *)inp[0];
 
2605
        unsigned char *op0 = (unsigned char *)outp[0];
 
2606
        unsigned char *ep = ip0 + npix * 3 ;
 
2607
        pointer it0 = (pointer)p->in_tables[0];
 
2608
        pointer it1 = (pointer)p->in_tables[1];
 
2609
        pointer it2 = (pointer)p->in_tables[2];
 
2610
        pointer ot0 = (pointer)p->out_tables[0];
 
2611
        pointer ot1 = (pointer)p->out_tables[1];
 
2612
        pointer ot2 = (pointer)p->out_tables[2];
 
2613
        pointer sw_base = (pointer)p->sw_table;
 
2614
        pointer im_base = (pointer)p->im_table;
 
2615
 
 
2616
        for(;ip0 < ep; ip0 += 3, op0 += 3) {
 
2617
                unsigned int ova0;      /* Output value accumulator */
 
2618
                unsigned int ova1;      /* Output value partial accumulator */
 
2619
                {
 
2620
                        pointer swp;
 
2621
                        pointer imp;
 
2622
                        {
 
2623
                                unsigned int ti;        /* Simplex+Interpolation index variable */
 
2624
 
 
2625
                                ti  = IT_IT(it0, ip0[0]);
 
2626
                                ti += IT_IT(it1, ip0[1]);
 
2627
                                ti += IT_IT(it2, ip0[2]);
 
2628
 
 
2629
                                imp = im_base + IM_O(ti >> 12);         /* Extract interp. index and comp. entry */
 
2630
                                swp = sw_base + SW_O(ti & 0xfff);       /* Extract simplex index and comp. entry */
 
2631
                        }
 
2632
                        {
 
2633
                                unsigned int vof;       /* Vertex offset value */
 
2634
                                unsigned int vwe;       /* Vertex weighting */
 
2635
 
 
2636
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
 
2637
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
 
2638
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
2639
                                ova1  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
2640
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
 
2641
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
 
2642
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
2643
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
2644
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
 
2645
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
 
2646
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
2647
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
2648
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
 
2649
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
 
2650
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
2651
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
2652
                        }
 
2653
                }
 
2654
                {
 
2655
                        unsigned int oti;       /* Vertex offset value */
 
2656
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
2657
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
2658
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
2659
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
2660
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
2661
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
2662
                }
 
2663
        }
2713
2664
}
2714
2665
#undef IT_IT
2715
2666
#undef SW_O
2724
2675
imdi_k9_gen(
2725
2676
genspec *g                      /* structure to be initialised */
2726
2677
) {
2727
 
        static unsigned char data[] = {
2728
 
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
2729
 
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
2730
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2731
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2732
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2733
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2734
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2735
 
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
2736
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
2737
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2738
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2739
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2740
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2741
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2742
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2743
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2744
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2745
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2746
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2747
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
2748
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2749
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2750
 
                0xd0, 0x85, 0x04, 0x08, 0x4c, 0x69, 0x6e, 0x75, 
2751
 
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2752
 
                0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
2753
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
2754
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2755
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2756
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2757
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2758
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79, 0x72, 
2759
 
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 
2760
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2761
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2762
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2763
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2764
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
2765
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
2766
 
                0x65, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
2767
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
2768
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
2769
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
2770
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
2771
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
2772
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
2773
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
2774
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
2775
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
2776
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2777
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
2778
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
2779
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x33, 0x5f, 0x33, 0x5f, 
2780
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
2781
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
2782
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
2783
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
2784
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
2785
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
2786
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
2787
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2788
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2789
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2790
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2791
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
2792
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x39, 0x00, 
2793
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2794
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2795
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
2796
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
2797
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
2798
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
2799
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
2800
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
2801
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
2802
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
2803
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
2804
 
                0x00, 0xf0, 0x04, 0x08 
2805
 
        };      /* Structure image */
2806
 
        
2807
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
2678
        static unsigned char data[] = {
 
2679
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
2680
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
2681
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2682
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2683
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2684
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2685
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2686
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
2687
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
2688
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2689
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2690
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2691
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2692
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2693
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2694
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2695
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2696
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2697
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2698
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
2699
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2700
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2701
                0xd0, 0x85, 0x04, 0x08, 0x4c, 0x69, 0x6e, 0x75,
 
2702
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2703
                0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
2704
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
2705
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2706
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2707
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2708
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2709
                0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79, 0x72,
 
2710
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2711
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2712
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2713
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2714
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2715
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
2716
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
2717
                0x65, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
2718
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
2719
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
2720
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
2721
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
2722
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
2723
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
2724
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
2725
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
2726
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
2727
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2728
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
2729
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
2730
                0x2c, 0xf3, 0xdc, 0xb7, 0x33, 0x5f, 0x33, 0x5f,
 
2731
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
2732
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
2733
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
2734
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
2735
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
2736
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
2737
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
2738
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2739
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2740
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2741
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2742
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
2743
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x39, 0x00,
 
2744
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2745
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2746
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
2747
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
2748
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
2749
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
2750
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
2751
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
2752
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
2753
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
2754
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
2755
                0x00, 0xf0, 0x04, 0x08
 
2756
        };      /* Structure image */
 
2757
 
 
2758
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
2808
2759
}
2809
2760
 
2810
2761
static void
2811
2762
imdi_k9_tab(
2812
2763
tabspec *t                      /* structure to be initialised */
2813
2764
) {
2814
 
        static unsigned char data[] = {
2815
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2816
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
2817
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
2818
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
2819
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
2820
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
2821
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
2822
 
                0x14, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
2823
 
                0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 
2824
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2825
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
2826
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2827
 
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
2828
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
2829
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
2830
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
2831
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2832
 
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
2833
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
2834
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
2835
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
2836
 
                0x02, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
2837
 
                0xff, 0xff, 0xff, 0x33, 0x00, 0x00, 0x00, 0x00, 
2838
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
2839
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2840
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
2841
 
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08, 
2842
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
2843
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2844
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
2845
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
2846
 
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
2847
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
2848
 
        };      /* Structure image */
2849
 
        
2850
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
2765
        static unsigned char data[] = {
 
2766
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2767
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
2768
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
2769
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
2770
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
2771
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
2772
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
2773
                0x14, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
2774
                0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
 
2775
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2776
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
2777
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2778
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
2779
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
2780
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
2781
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
2782
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2783
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
2784
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
2785
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
2786
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
2787
                0x02, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
2788
                0xff, 0xff, 0xff, 0x33, 0x00, 0x00, 0x00, 0x00,
 
2789
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
2790
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2791
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2792
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08,
 
2793
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
2794
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2795
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2796
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
2797
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
2798
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
2799
        };      /* Structure image */
 
2800
 
 
2801
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
2851
2802
}
2852
2803
 
2853
 
 
2854
 
 
2855
 
 
2856
 
 
2857
 
 
2858
2804
/* Integer Multi-Dimensional Interpolation */
2859
2805
/* Interpolation Kernel Code */
2860
2806
/* Generated by cgen */
2863
2809
 
2864
2810
/* see the Licence.txt file for licencing details.*/
2865
2811
 
2866
 
 
2867
2812
/*
2868
2813
   Interpolation kernel specs:
2869
2814
 
2958
2903
void **inp,             /* pointer to input pointers */
2959
2904
unsigned int npix       /* Number of pixels to process */
2960
2905
) {
2961
 
        imdi_imp *p = (imdi_imp *)(s->impl);
2962
 
        unsigned char *ip0 = (unsigned char *)inp[0];
2963
 
        unsigned char *op0 = (unsigned char *)outp[0];
2964
 
        unsigned char *ep = ip0 + npix * 4 ;
2965
 
        pointer it0 = (pointer)p->in_tables[0];
2966
 
        pointer it1 = (pointer)p->in_tables[1];
2967
 
        pointer it2 = (pointer)p->in_tables[2];
2968
 
        pointer it3 = (pointer)p->in_tables[3];
2969
 
        pointer ot0 = (pointer)p->out_tables[0];
2970
 
        pointer ot1 = (pointer)p->out_tables[1];
2971
 
        pointer ot2 = (pointer)p->out_tables[2];
2972
 
        pointer sw_base = (pointer)p->sw_table;
2973
 
        pointer im_base = (pointer)p->im_table;
2974
 
        
2975
 
        for(;ip0 < ep; ip0 += 4, op0 += 3) {
2976
 
                unsigned int ova0;      /* Output value accumulator */
2977
 
                unsigned int ova1;      /* Output value partial accumulator */
2978
 
                {
2979
 
                        pointer swp;
2980
 
                        pointer imp;
2981
 
                        {
2982
 
                                unsigned int ti_s;      /* Simplex index variable */
2983
 
                                unsigned int ti_i;      /* Interpolation index variable */
2984
 
                                
2985
 
                                ti_i  = IT_IX(it0, ip0[0]);
2986
 
                                ti_s  = IT_SX(it0, ip0[0]);
2987
 
                                ti_i += IT_IX(it1, ip0[1]);
2988
 
                                ti_s += IT_SX(it1, ip0[1]);
2989
 
                                ti_i += IT_IX(it2, ip0[2]);
2990
 
                                ti_s += IT_SX(it2, ip0[2]);
2991
 
                                ti_i += IT_IX(it3, ip0[3]);
2992
 
                                ti_s += IT_SX(it3, ip0[3]);
2993
 
                                
2994
 
                                swp = sw_base + SW_O(ti_s);             /* Compute simplex table entry pointer */
2995
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
2996
 
                        }
2997
 
                        {
2998
 
                                unsigned int vof;       /* Vertex offset value */
2999
 
                                unsigned int vwe;       /* Vertex weighting */
3000
 
                                
3001
 
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
3002
 
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
3003
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
3004
 
                                ova1  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
3005
 
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
3006
 
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
3007
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
3008
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
3009
 
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
3010
 
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
3011
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
3012
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
3013
 
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
3014
 
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
3015
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
3016
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
3017
 
                                vof = SX_VO(swp, 4);    /* Read vertex offset value */
3018
 
                                vwe = SX_WE(swp, 4);    /* Read vertex weighting value */
3019
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
3020
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
3021
 
                        }
3022
 
                }
3023
 
                {
3024
 
                        unsigned int oti;       /* Vertex offset value */
3025
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
3026
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
3027
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
3028
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
3029
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
3030
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
3031
 
                }
3032
 
        }
 
2906
        imdi_imp *p = (imdi_imp *)(s->impl);
 
2907
        unsigned char *ip0 = (unsigned char *)inp[0];
 
2908
        unsigned char *op0 = (unsigned char *)outp[0];
 
2909
        unsigned char *ep = ip0 + npix * 4 ;
 
2910
        pointer it0 = (pointer)p->in_tables[0];
 
2911
        pointer it1 = (pointer)p->in_tables[1];
 
2912
        pointer it2 = (pointer)p->in_tables[2];
 
2913
        pointer it3 = (pointer)p->in_tables[3];
 
2914
        pointer ot0 = (pointer)p->out_tables[0];
 
2915
        pointer ot1 = (pointer)p->out_tables[1];
 
2916
        pointer ot2 = (pointer)p->out_tables[2];
 
2917
        pointer sw_base = (pointer)p->sw_table;
 
2918
        pointer im_base = (pointer)p->im_table;
 
2919
 
 
2920
        for(;ip0 < ep; ip0 += 4, op0 += 3) {
 
2921
                unsigned int ova0;      /* Output value accumulator */
 
2922
                unsigned int ova1;      /* Output value partial accumulator */
 
2923
                {
 
2924
                        pointer swp;
 
2925
                        pointer imp;
 
2926
                        {
 
2927
                                unsigned int ti_s;      /* Simplex index variable */
 
2928
                                unsigned int ti_i;      /* Interpolation index variable */
 
2929
 
 
2930
                                ti_i  = IT_IX(it0, ip0[0]);
 
2931
                                ti_s  = IT_SX(it0, ip0[0]);
 
2932
                                ti_i += IT_IX(it1, ip0[1]);
 
2933
                                ti_s += IT_SX(it1, ip0[1]);
 
2934
                                ti_i += IT_IX(it2, ip0[2]);
 
2935
                                ti_s += IT_SX(it2, ip0[2]);
 
2936
                                ti_i += IT_IX(it3, ip0[3]);
 
2937
                                ti_s += IT_SX(it3, ip0[3]);
 
2938
 
 
2939
                                swp = sw_base + SW_O(ti_s);             /* Compute simplex table entry pointer */
 
2940
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
2941
                        }
 
2942
                        {
 
2943
                                unsigned int vof;       /* Vertex offset value */
 
2944
                                unsigned int vwe;       /* Vertex weighting */
 
2945
 
 
2946
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
 
2947
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
 
2948
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
2949
                                ova1  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
2950
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
 
2951
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
 
2952
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
2953
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
2954
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
 
2955
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
 
2956
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
2957
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
2958
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
 
2959
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
 
2960
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
2961
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
2962
                                vof = SX_VO(swp, 4);    /* Read vertex offset value */
 
2963
                                vwe = SX_WE(swp, 4);    /* Read vertex weighting value */
 
2964
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
2965
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
2966
                        }
 
2967
                }
 
2968
                {
 
2969
                        unsigned int oti;       /* Vertex offset value */
 
2970
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
2971
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
2972
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
2973
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
2974
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
2975
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
2976
                }
 
2977
        }
3033
2978
}
3034
2979
#undef IT_IX
3035
2980
#undef IT_SX
3045
2990
imdi_k10_gen(
3046
2991
genspec *g                      /* structure to be initialised */
3047
2992
) {
3048
 
        static unsigned char data[] = {
3049
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
3050
 
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
3051
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3052
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3053
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3054
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3055
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3056
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
3057
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
3058
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3059
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3060
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3061
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3062
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3063
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3064
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3065
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3066
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3067
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3068
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
3069
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3070
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3071
 
                0xd0, 0x85, 0x04, 0x08, 0x4c, 0x69, 0x6e, 0x75, 
3072
 
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3073
 
                0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
3074
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
3075
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3076
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3077
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3078
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3079
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79, 0x72, 
3080
 
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 
3081
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3082
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3083
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3084
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3085
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
3086
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
3087
 
                0x27, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 
3088
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
3089
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
3090
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
3091
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
3092
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
3093
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
3094
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
3095
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
3096
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
3097
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3098
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
3099
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
3100
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x34, 0x5f, 0x33, 0x5f, 
3101
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
3102
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
3103
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
3104
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
3105
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
3106
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
3107
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
3108
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3109
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3110
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3111
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3112
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
3113
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x30, 
3114
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3115
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3116
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
3117
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
3118
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
3119
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
3120
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
3121
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
3122
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
3123
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
3124
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
3125
 
                0x00, 0xf0, 0x04, 0x08 
3126
 
        };      /* Structure image */
3127
 
        
3128
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
2993
        static unsigned char data[] = {
 
2994
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
2995
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
2996
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
2997
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2998
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
2999
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3000
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3001
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
3002
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
3003
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3004
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3005
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3006
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3007
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3008
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3009
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3010
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3011
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3012
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3013
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
3014
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3015
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3016
                0xd0, 0x85, 0x04, 0x08, 0x4c, 0x69, 0x6e, 0x75,
 
3017
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3018
                0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
3019
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
3020
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3021
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3022
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3023
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3024
                0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79, 0x72,
 
3025
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3026
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3027
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3028
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3029
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3030
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
3031
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
3032
                0x27, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00,
 
3033
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
3034
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
3035
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
3036
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
3037
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
3038
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
3039
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
3040
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
3041
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
3042
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3043
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
3044
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
3045
                0x2c, 0xf3, 0xdc, 0xb7, 0x34, 0x5f, 0x33, 0x5f,
 
3046
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
3047
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
3048
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
3049
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
3050
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
3051
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
3052
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
3053
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3054
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3055
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3056
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3057
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
3058
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x30,
 
3059
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3060
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3061
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
3062
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
3063
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
3064
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
3065
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
3066
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
3067
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
3068
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
3069
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
3070
                0x00, 0xf0, 0x04, 0x08
 
3071
        };      /* Structure image */
 
3072
 
 
3073
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
3129
3074
}
3130
3075
 
3131
3076
static void
3132
3077
imdi_k10_tab(
3133
3078
tabspec *t                      /* structure to be initialised */
3134
3079
) {
3135
 
        static unsigned char data[] = {
3136
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
3137
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
3138
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
3139
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
3140
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
3141
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
3142
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3143
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
3144
 
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
3145
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3146
 
                0x14, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
3147
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3148
 
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
3149
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
3150
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
3151
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
3152
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3153
 
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
3154
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
3155
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
3156
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
3157
 
                0x02, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
3158
 
                0xff, 0xff, 0xff, 0x33, 0x00, 0x00, 0x00, 0x00, 
3159
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
3160
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3161
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3162
 
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08, 
3163
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
3164
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3165
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3166
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
3167
 
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
3168
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
3169
 
        };      /* Structure image */
3170
 
        
3171
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
3080
        static unsigned char data[] = {
 
3081
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
3082
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
3083
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
3084
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
3085
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
3086
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
3087
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3088
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
3089
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
3090
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3091
                0x14, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
3092
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3093
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
3094
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
3095
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
3096
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
3097
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3098
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
3099
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
3100
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
3101
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
3102
                0x02, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
3103
                0xff, 0xff, 0xff, 0x33, 0x00, 0x00, 0x00, 0x00,
 
3104
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
3105
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3106
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3107
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08,
 
3108
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
3109
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3110
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3111
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
3112
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
3113
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
3114
        };      /* Structure image */
 
3115
 
 
3116
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
3172
3117
}
3173
3118
 
3174
 
 
3175
 
 
3176
 
 
3177
 
 
3178
 
 
3179
3119
/* Integer Multi-Dimensional Interpolation */
3180
3120
/* Interpolation Kernel Code */
3181
3121
/* Generated by cgen */
3184
3124
 
3185
3125
/* see the Licence.txt file for licencing details.*/
3186
3126
 
3187
 
 
3188
3127
/*
3189
3128
   Interpolation kernel specs:
3190
3129
 
3274
3213
void **inp,             /* pointer to input pointers */
3275
3214
unsigned int npix       /* Number of pixels to process */
3276
3215
) {
3277
 
        imdi_imp *p = (imdi_imp *)(s->impl);
3278
 
        unsigned char *ip0 = (unsigned char *)inp[0];
3279
 
        unsigned char *op0 = (unsigned char *)outp[0];
3280
 
        unsigned char *ep = ip0 + npix * 5 ;
3281
 
        pointer it0 = (pointer)p->in_tables[0];
3282
 
        pointer it1 = (pointer)p->in_tables[1];
3283
 
        pointer it2 = (pointer)p->in_tables[2];
3284
 
        pointer it3 = (pointer)p->in_tables[3];
3285
 
        pointer it4 = (pointer)p->in_tables[4];
3286
 
        pointer ot0 = (pointer)p->out_tables[0];
3287
 
        pointer ot1 = (pointer)p->out_tables[1];
3288
 
        pointer ot2 = (pointer)p->out_tables[2];
3289
 
        pointer im_base = (pointer)p->im_table;
3290
 
        
3291
 
        for(;ip0 < ep; ip0 += 5, op0 += 3) {
3292
 
                unsigned int ova0;      /* Output value accumulator */
3293
 
                unsigned int ova1;      /* Output value partial accumulator */
3294
 
                {
3295
 
                        pointer imp;
3296
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
3297
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
3298
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
3299
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
3300
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
3301
 
                        {
3302
 
                                unsigned int ti_i;      /* Interpolation index variable */
3303
 
                                
3304
 
                                ti_i  = IT_IX(it0, ip0[0]);
3305
 
                                wo0   = IT_WO(it0, ip0[0]);
3306
 
                                ti_i += IT_IX(it1, ip0[1]);
3307
 
                                wo1   = IT_WO(it1, ip0[1]);
3308
 
                                ti_i += IT_IX(it2, ip0[2]);
3309
 
                                wo2   = IT_WO(it2, ip0[2]);
3310
 
                                ti_i += IT_IX(it3, ip0[3]);
3311
 
                                wo3   = IT_WO(it3, ip0[3]);
3312
 
                                ti_i += IT_IX(it4, ip0[4]);
3313
 
                                wo4   = IT_WO(it4, ip0[4]);
3314
 
                                
3315
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
3316
 
                                
3317
 
                                /* Sort weighting values and vertex offset values */
3318
 
                                CEX(wo0, wo1);
3319
 
                                CEX(wo0, wo2);
3320
 
                                CEX(wo0, wo3);
3321
 
                                CEX(wo0, wo4);
3322
 
                                CEX(wo1, wo2);
3323
 
                                CEX(wo1, wo3);
3324
 
                                CEX(wo1, wo4);
3325
 
                                CEX(wo2, wo3);
3326
 
                                CEX(wo2, wo4);
3327
 
                                CEX(wo3, wo4);
3328
 
                        }
3329
 
                        {
3330
 
                                unsigned int nvof;      /* Next vertex offset value */
3331
 
                                unsigned int vof;       /* Vertex offset value */
3332
 
                                unsigned int vwe;       /* Vertex weighting */
3333
 
                                
3334
 
                                vof = 0;                                /* First vertex offset is 0 */
3335
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
3336
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
3337
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
3338
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
3339
 
                                ova1  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
3340
 
                                vof += nvof;                    /* Move to next vertex */
3341
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
3342
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
3343
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
3344
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
3345
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
3346
 
                                vof += nvof;                    /* Move to next vertex */
3347
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
3348
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
3349
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
3350
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
3351
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
3352
 
                                vof += nvof;                    /* Move to next vertex */
3353
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
3354
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
3355
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
3356
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
3357
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
3358
 
                                vof += nvof;                    /* Move to next vertex */
3359
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
3360
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
3361
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
3362
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
3363
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
3364
 
                                vof += nvof;                    /* Move to next vertex */
3365
 
                                vwe = wo4;                              /* Baricentric weighting */
3366
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
3367
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
3368
 
                        }
3369
 
                }
3370
 
                {
3371
 
                        unsigned int oti;       /* Vertex offset value */
3372
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
3373
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
3374
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
3375
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
3376
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
3377
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
3378
 
                }
3379
 
        }
 
3216
        imdi_imp *p = (imdi_imp *)(s->impl);
 
3217
        unsigned char *ip0 = (unsigned char *)inp[0];
 
3218
        unsigned char *op0 = (unsigned char *)outp[0];
 
3219
        unsigned char *ep = ip0 + npix * 5 ;
 
3220
        pointer it0 = (pointer)p->in_tables[0];
 
3221
        pointer it1 = (pointer)p->in_tables[1];
 
3222
        pointer it2 = (pointer)p->in_tables[2];
 
3223
        pointer it3 = (pointer)p->in_tables[3];
 
3224
        pointer it4 = (pointer)p->in_tables[4];
 
3225
        pointer ot0 = (pointer)p->out_tables[0];
 
3226
        pointer ot1 = (pointer)p->out_tables[1];
 
3227
        pointer ot2 = (pointer)p->out_tables[2];
 
3228
        pointer im_base = (pointer)p->im_table;
 
3229
 
 
3230
        for(;ip0 < ep; ip0 += 5, op0 += 3) {
 
3231
                unsigned int ova0;      /* Output value accumulator */
 
3232
                unsigned int ova1;      /* Output value partial accumulator */
 
3233
                {
 
3234
                        pointer imp;
 
3235
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
3236
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
3237
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
3238
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
3239
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
3240
                        {
 
3241
                                unsigned int ti_i;      /* Interpolation index variable */
 
3242
 
 
3243
                                ti_i  = IT_IX(it0, ip0[0]);
 
3244
                                wo0   = IT_WO(it0, ip0[0]);
 
3245
                                ti_i += IT_IX(it1, ip0[1]);
 
3246
                                wo1   = IT_WO(it1, ip0[1]);
 
3247
                                ti_i += IT_IX(it2, ip0[2]);
 
3248
                                wo2   = IT_WO(it2, ip0[2]);
 
3249
                                ti_i += IT_IX(it3, ip0[3]);
 
3250
                                wo3   = IT_WO(it3, ip0[3]);
 
3251
                                ti_i += IT_IX(it4, ip0[4]);
 
3252
                                wo4   = IT_WO(it4, ip0[4]);
 
3253
 
 
3254
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
3255
 
 
3256
                                /* Sort weighting values and vertex offset values */
 
3257
                                CEX(wo0, wo1);
 
3258
                                CEX(wo0, wo2);
 
3259
                                CEX(wo0, wo3);
 
3260
                                CEX(wo0, wo4);
 
3261
                                CEX(wo1, wo2);
 
3262
                                CEX(wo1, wo3);
 
3263
                                CEX(wo1, wo4);
 
3264
                                CEX(wo2, wo3);
 
3265
                                CEX(wo2, wo4);
 
3266
                                CEX(wo3, wo4);
 
3267
                        }
 
3268
                        {
 
3269
                                unsigned int nvof;      /* Next vertex offset value */
 
3270
                                unsigned int vof;       /* Vertex offset value */
 
3271
                                unsigned int vwe;       /* Vertex weighting */
 
3272
 
 
3273
                                vof = 0;                                /* First vertex offset is 0 */
 
3274
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
3275
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
3276
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
3277
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
3278
                                ova1  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
3279
                                vof += nvof;                    /* Move to next vertex */
 
3280
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
3281
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
3282
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
3283
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
3284
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
3285
                                vof += nvof;                    /* Move to next vertex */
 
3286
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
3287
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
3288
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
3289
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
3290
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
3291
                                vof += nvof;                    /* Move to next vertex */
 
3292
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
3293
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
3294
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
3295
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
3296
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
3297
                                vof += nvof;                    /* Move to next vertex */
 
3298
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
3299
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
3300
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
3301
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
3302
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
3303
                                vof += nvof;                    /* Move to next vertex */
 
3304
                                vwe = wo4;                              /* Baricentric weighting */
 
3305
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
3306
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
3307
                        }
 
3308
                }
 
3309
                {
 
3310
                        unsigned int oti;       /* Vertex offset value */
 
3311
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
3312
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
3313
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
3314
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
3315
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
3316
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
3317
                }
 
3318
        }
3380
3319
}
3381
3320
#undef IT_WO
3382
3321
#undef IT_IX
3390
3329
imdi_k11_gen(
3391
3330
genspec *g                      /* structure to be initialised */
3392
3331
) {
3393
 
        static unsigned char data[] = {
3394
 
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
3395
 
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
3396
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3397
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3398
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3399
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3400
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3401
 
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
3402
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
3403
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
3404
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3405
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3406
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3407
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3408
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3409
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3410
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3411
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3412
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3413
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
3414
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3415
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3416
 
                0xd0, 0x85, 0x04, 0x08, 0x4c, 0x69, 0x6e, 0x75, 
3417
 
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3418
 
                0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
3419
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
3420
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3421
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3422
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3423
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3424
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79, 0x72, 
3425
 
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 
3426
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3427
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3428
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3429
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3430
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
3431
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
3432
 
                0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3433
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
3434
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
3435
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
3436
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
3437
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
3438
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
3439
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
3440
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
3441
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
3442
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3443
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
3444
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
3445
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x35, 0x5f, 0x33, 0x5f, 
3446
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
3447
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
3448
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
3449
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
3450
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
3451
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
3452
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
3453
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3454
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3455
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3456
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3457
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
3458
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x31, 
3459
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3460
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3461
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
3462
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
3463
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
3464
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
3465
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
3466
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
3467
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
3468
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
3469
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
3470
 
                0x00, 0xf0, 0x04, 0x08 
3471
 
        };      /* Structure image */
3472
 
        
3473
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
3332
        static unsigned char data[] = {
 
3333
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
3334
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
3335
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3336
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3337
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3338
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3339
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3340
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
3341
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
3342
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
3343
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3344
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3345
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3346
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3347
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3348
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3349
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3350
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3351
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3352
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
3353
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3354
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3355
                0xd0, 0x85, 0x04, 0x08, 0x4c, 0x69, 0x6e, 0x75,
 
3356
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3357
                0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
3358
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
3359
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3360
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3361
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3362
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3363
                0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79, 0x72,
 
3364
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3365
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3366
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3367
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3368
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3369
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
3370
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
3371
                0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3372
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
3373
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
3374
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
3375
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
3376
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
3377
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
3378
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
3379
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
3380
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
3381
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3382
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
3383
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
3384
                0x2c, 0xf3, 0xdc, 0xb7, 0x35, 0x5f, 0x33, 0x5f,
 
3385
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
3386
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
3387
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
3388
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
3389
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
3390
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
3391
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
3392
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3393
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3394
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3395
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3396
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
3397
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x31,
 
3398
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3399
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3400
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
3401
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
3402
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
3403
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
3404
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
3405
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
3406
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
3407
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
3408
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
3409
                0x00, 0xf0, 0x04, 0x08
 
3410
        };      /* Structure image */
 
3411
 
 
3412
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
3474
3413
}
3475
3414
 
3476
3415
static void
3477
3416
imdi_k11_tab(
3478
3417
tabspec *t                      /* structure to be initialised */
3479
3418
) {
3480
 
        static unsigned char data[] = {
3481
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
3482
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
3483
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
3484
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
3485
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
3486
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
3487
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3488
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
3489
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
3490
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3491
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
3492
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
3493
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
3494
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
3495
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
3496
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
3497
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3498
 
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
3499
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
3500
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
3501
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
3502
 
                0x02, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
3503
 
                0xff, 0xff, 0xff, 0x33, 0x00, 0x00, 0x00, 0x00, 
3504
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
3505
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3506
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3507
 
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08, 
3508
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
3509
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3510
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3511
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
3512
 
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
3513
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
3514
 
        };      /* Structure image */
3515
 
        
3516
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
3419
        static unsigned char data[] = {
 
3420
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
3421
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
3422
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
3423
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
3424
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
3425
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
3426
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3427
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
3428
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
3429
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3430
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
3431
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
3432
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
3433
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
3434
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
3435
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
3436
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3437
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
3438
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
3439
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
3440
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
3441
                0x02, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
3442
                0xff, 0xff, 0xff, 0x33, 0x00, 0x00, 0x00, 0x00,
 
3443
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
3444
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3445
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3446
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08,
 
3447
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
3448
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3449
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3450
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
3451
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
3452
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
3453
        };      /* Structure image */
 
3454
 
 
3455
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
3517
3456
}
3518
3457
 
3519
 
 
3520
 
 
3521
 
 
3522
 
 
3523
 
 
3524
3458
/* Integer Multi-Dimensional Interpolation */
3525
3459
/* Interpolation Kernel Code */
3526
3460
/* Generated by cgen */
3529
3463
 
3530
3464
/* see the Licence.txt file for licencing details.*/
3531
3465
 
3532
 
 
3533
3466
/*
3534
3467
   Interpolation kernel specs:
3535
3468
 
3621
3554
void **inp,             /* pointer to input pointers */
3622
3555
unsigned int npix       /* Number of pixels to process */
3623
3556
) {
3624
 
        imdi_imp *p = (imdi_imp *)(s->impl);
3625
 
        unsigned char *ip0 = (unsigned char *)inp[0];
3626
 
        unsigned char *op0 = (unsigned char *)outp[0];
3627
 
        unsigned char *ep = ip0 + npix * 6 ;
3628
 
        pointer it0 = (pointer)p->in_tables[0];
3629
 
        pointer it1 = (pointer)p->in_tables[1];
3630
 
        pointer it2 = (pointer)p->in_tables[2];
3631
 
        pointer it3 = (pointer)p->in_tables[3];
3632
 
        pointer it4 = (pointer)p->in_tables[4];
3633
 
        pointer it5 = (pointer)p->in_tables[5];
3634
 
        pointer ot0 = (pointer)p->out_tables[0];
3635
 
        pointer ot1 = (pointer)p->out_tables[1];
3636
 
        pointer ot2 = (pointer)p->out_tables[2];
3637
 
        pointer im_base = (pointer)p->im_table;
3638
 
        
3639
 
        for(;ip0 < ep; ip0 += 6, op0 += 3) {
3640
 
                unsigned int ova0;      /* Output value accumulator */
3641
 
                unsigned int ova1;      /* Output value partial accumulator */
3642
 
                {
3643
 
                        pointer imp;
3644
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
3645
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
3646
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
3647
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
3648
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
3649
 
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
3650
 
                        {
3651
 
                                unsigned int ti_i;      /* Interpolation index variable */
3652
 
                                
3653
 
                                ti_i  = IT_IX(it0, ip0[0]);
3654
 
                                wo0   = IT_WO(it0, ip0[0]);
3655
 
                                ti_i += IT_IX(it1, ip0[1]);
3656
 
                                wo1   = IT_WO(it1, ip0[1]);
3657
 
                                ti_i += IT_IX(it2, ip0[2]);
3658
 
                                wo2   = IT_WO(it2, ip0[2]);
3659
 
                                ti_i += IT_IX(it3, ip0[3]);
3660
 
                                wo3   = IT_WO(it3, ip0[3]);
3661
 
                                ti_i += IT_IX(it4, ip0[4]);
3662
 
                                wo4   = IT_WO(it4, ip0[4]);
3663
 
                                ti_i += IT_IX(it5, ip0[5]);
3664
 
                                wo5   = IT_WO(it5, ip0[5]);
3665
 
                                
3666
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
3667
 
                                
3668
 
                                /* Sort weighting values and vertex offset values */
3669
 
                                CEX(wo0, wo1);
3670
 
                                CEX(wo0, wo2);
3671
 
                                CEX(wo0, wo3);
3672
 
                                CEX(wo0, wo4);
3673
 
                                CEX(wo0, wo5);
3674
 
                                CEX(wo1, wo2);
3675
 
                                CEX(wo1, wo3);
3676
 
                                CEX(wo1, wo4);
3677
 
                                CEX(wo1, wo5);
3678
 
                                CEX(wo2, wo3);
3679
 
                                CEX(wo2, wo4);
3680
 
                                CEX(wo2, wo5);
3681
 
                                CEX(wo3, wo4);
3682
 
                                CEX(wo3, wo5);
3683
 
                                CEX(wo4, wo5);
3684
 
                        }
3685
 
                        {
3686
 
                                unsigned int nvof;      /* Next vertex offset value */
3687
 
                                unsigned int vof;       /* Vertex offset value */
3688
 
                                unsigned int vwe;       /* Vertex weighting */
3689
 
                                
3690
 
                                vof = 0;                                /* First vertex offset is 0 */
3691
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
3692
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
3693
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
3694
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
3695
 
                                ova1  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
3696
 
                                vof += nvof;                    /* Move to next vertex */
3697
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
3698
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
3699
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
3700
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
3701
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
3702
 
                                vof += nvof;                    /* Move to next vertex */
3703
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
3704
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
3705
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
3706
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
3707
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
3708
 
                                vof += nvof;                    /* Move to next vertex */
3709
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
3710
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
3711
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
3712
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
3713
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
3714
 
                                vof += nvof;                    /* Move to next vertex */
3715
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
3716
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
3717
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
3718
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
3719
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
3720
 
                                vof += nvof;                    /* Move to next vertex */
3721
 
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
3722
 
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
3723
 
                                vwe = wo4 - wo5;                /* Baricentric weighting */
3724
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
3725
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
3726
 
                                vof += nvof;                    /* Move to next vertex */
3727
 
                                vwe = wo5;                              /* Baricentric weighting */
3728
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
3729
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
3730
 
                        }
3731
 
                }
3732
 
                {
3733
 
                        unsigned int oti;       /* Vertex offset value */
3734
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
3735
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
3736
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
3737
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
3738
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
3739
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
3740
 
                }
3741
 
        }
 
3557
        imdi_imp *p = (imdi_imp *)(s->impl);
 
3558
        unsigned char *ip0 = (unsigned char *)inp[0];
 
3559
        unsigned char *op0 = (unsigned char *)outp[0];
 
3560
        unsigned char *ep = ip0 + npix * 6 ;
 
3561
        pointer it0 = (pointer)p->in_tables[0];
 
3562
        pointer it1 = (pointer)p->in_tables[1];
 
3563
        pointer it2 = (pointer)p->in_tables[2];
 
3564
        pointer it3 = (pointer)p->in_tables[3];
 
3565
        pointer it4 = (pointer)p->in_tables[4];
 
3566
        pointer it5 = (pointer)p->in_tables[5];
 
3567
        pointer ot0 = (pointer)p->out_tables[0];
 
3568
        pointer ot1 = (pointer)p->out_tables[1];
 
3569
        pointer ot2 = (pointer)p->out_tables[2];
 
3570
        pointer im_base = (pointer)p->im_table;
 
3571
 
 
3572
        for(;ip0 < ep; ip0 += 6, op0 += 3) {
 
3573
                unsigned int ova0;      /* Output value accumulator */
 
3574
                unsigned int ova1;      /* Output value partial accumulator */
 
3575
                {
 
3576
                        pointer imp;
 
3577
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
3578
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
3579
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
3580
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
3581
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
3582
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
 
3583
                        {
 
3584
                                unsigned int ti_i;      /* Interpolation index variable */
 
3585
 
 
3586
                                ti_i  = IT_IX(it0, ip0[0]);
 
3587
                                wo0   = IT_WO(it0, ip0[0]);
 
3588
                                ti_i += IT_IX(it1, ip0[1]);
 
3589
                                wo1   = IT_WO(it1, ip0[1]);
 
3590
                                ti_i += IT_IX(it2, ip0[2]);
 
3591
                                wo2   = IT_WO(it2, ip0[2]);
 
3592
                                ti_i += IT_IX(it3, ip0[3]);
 
3593
                                wo3   = IT_WO(it3, ip0[3]);
 
3594
                                ti_i += IT_IX(it4, ip0[4]);
 
3595
                                wo4   = IT_WO(it4, ip0[4]);
 
3596
                                ti_i += IT_IX(it5, ip0[5]);
 
3597
                                wo5   = IT_WO(it5, ip0[5]);
 
3598
 
 
3599
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
3600
 
 
3601
                                /* Sort weighting values and vertex offset values */
 
3602
                                CEX(wo0, wo1);
 
3603
                                CEX(wo0, wo2);
 
3604
                                CEX(wo0, wo3);
 
3605
                                CEX(wo0, wo4);
 
3606
                                CEX(wo0, wo5);
 
3607
                                CEX(wo1, wo2);
 
3608
                                CEX(wo1, wo3);
 
3609
                                CEX(wo1, wo4);
 
3610
                                CEX(wo1, wo5);
 
3611
                                CEX(wo2, wo3);
 
3612
                                CEX(wo2, wo4);
 
3613
                                CEX(wo2, wo5);
 
3614
                                CEX(wo3, wo4);
 
3615
                                CEX(wo3, wo5);
 
3616
                                CEX(wo4, wo5);
 
3617
                        }
 
3618
                        {
 
3619
                                unsigned int nvof;      /* Next vertex offset value */
 
3620
                                unsigned int vof;       /* Vertex offset value */
 
3621
                                unsigned int vwe;       /* Vertex weighting */
 
3622
 
 
3623
                                vof = 0;                                /* First vertex offset is 0 */
 
3624
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
3625
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
3626
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
3627
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
3628
                                ova1  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
3629
                                vof += nvof;                    /* Move to next vertex */
 
3630
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
3631
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
3632
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
3633
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
3634
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
3635
                                vof += nvof;                    /* Move to next vertex */
 
3636
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
3637
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
3638
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
3639
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
3640
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
3641
                                vof += nvof;                    /* Move to next vertex */
 
3642
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
3643
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
3644
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
3645
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
3646
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
3647
                                vof += nvof;                    /* Move to next vertex */
 
3648
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
3649
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
3650
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
3651
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
3652
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
3653
                                vof += nvof;                    /* Move to next vertex */
 
3654
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
 
3655
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
 
3656
                                vwe = wo4 - wo5;                /* Baricentric weighting */
 
3657
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
3658
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
3659
                                vof += nvof;                    /* Move to next vertex */
 
3660
                                vwe = wo5;                              /* Baricentric weighting */
 
3661
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
3662
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
3663
                        }
 
3664
                }
 
3665
                {
 
3666
                        unsigned int oti;       /* Vertex offset value */
 
3667
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
3668
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
3669
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
3670
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
3671
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
3672
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
3673
                }
 
3674
        }
3742
3675
}
3743
3676
#undef IT_WO
3744
3677
#undef IT_IX
3752
3685
imdi_k12_gen(
3753
3686
genspec *g                      /* structure to be initialised */
3754
3687
) {
3755
 
        static unsigned char data[] = {
3756
 
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
3757
 
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
3758
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3759
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3760
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3761
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3762
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3763
 
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
3764
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
3765
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
3766
 
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3767
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3768
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3769
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3770
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3771
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3772
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3773
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3774
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3775
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
3776
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3777
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3778
 
                0xd0, 0x85, 0x04, 0x08, 0x4c, 0x69, 0x6e, 0x75, 
3779
 
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3780
 
                0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
3781
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
3782
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3783
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3784
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3785
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3786
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79, 0x72, 
3787
 
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 
3788
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3789
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3790
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3791
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3792
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
3793
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
3794
 
                0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3795
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
3796
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
3797
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
3798
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
3799
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
3800
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
3801
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
3802
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
3803
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
3804
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3805
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
3806
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
3807
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x36, 0x5f, 0x33, 0x5f, 
3808
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
3809
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
3810
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
3811
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
3812
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
3813
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
3814
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
3815
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3816
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3817
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3818
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3819
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
3820
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x32, 
3821
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3822
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3823
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
3824
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
3825
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
3826
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
3827
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
3828
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
3829
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
3830
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
3831
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
3832
 
                0x00, 0xf0, 0x04, 0x08 
3833
 
        };      /* Structure image */
3834
 
        
3835
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
3688
        static unsigned char data[] = {
 
3689
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
3690
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
3691
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3692
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3693
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3694
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3695
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3696
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
3697
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
3698
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
3699
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3700
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3701
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3702
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3703
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3704
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3705
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3706
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3707
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3708
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
3709
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3710
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3711
                0xd0, 0x85, 0x04, 0x08, 0x4c, 0x69, 0x6e, 0x75,
 
3712
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3713
                0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
3714
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
3715
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3716
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3717
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3718
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3719
                0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79, 0x72,
 
3720
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3721
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3722
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3723
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3724
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3725
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
3726
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
3727
                0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3728
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
3729
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
3730
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
3731
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
3732
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
3733
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
3734
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
3735
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
3736
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
3737
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3738
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
3739
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
3740
                0x2c, 0xf3, 0xdc, 0xb7, 0x36, 0x5f, 0x33, 0x5f,
 
3741
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
3742
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
3743
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
3744
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
3745
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
3746
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
3747
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
3748
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3749
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3750
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3751
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3752
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
3753
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x32,
 
3754
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3755
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3756
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
3757
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
3758
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
3759
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
3760
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
3761
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
3762
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
3763
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
3764
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
3765
                0x00, 0xf0, 0x04, 0x08
 
3766
        };      /* Structure image */
 
3767
 
 
3768
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
3836
3769
}
3837
3770
 
3838
3771
static void
3839
3772
imdi_k12_tab(
3840
3773
tabspec *t                      /* structure to be initialised */
3841
3774
) {
3842
 
        static unsigned char data[] = {
3843
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
3844
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
3845
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
3846
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
3847
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
3848
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
3849
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3850
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
3851
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
3852
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3853
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
3854
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
3855
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
3856
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
3857
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
3858
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
3859
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3860
 
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
3861
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
3862
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
3863
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
3864
 
                0x02, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
3865
 
                0xff, 0xff, 0xff, 0x33, 0x00, 0x00, 0x00, 0x00, 
3866
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
3867
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3868
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
3869
 
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08, 
3870
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
3871
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3872
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
3873
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
3874
 
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
3875
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
3876
 
        };      /* Structure image */
3877
 
        
3878
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
3775
        static unsigned char data[] = {
 
3776
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
3777
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
3778
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
3779
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
3780
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
3781
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
3782
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3783
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
3784
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
3785
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3786
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
3787
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
3788
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
3789
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
3790
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
3791
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
3792
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3793
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
3794
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
3795
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
3796
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
3797
                0x02, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
3798
                0xff, 0xff, 0xff, 0x33, 0x00, 0x00, 0x00, 0x00,
 
3799
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
3800
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3801
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
3802
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08,
 
3803
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
3804
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3805
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
3806
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
3807
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
3808
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
3809
        };      /* Structure image */
 
3810
 
 
3811
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
3879
3812
}
3880
3813
 
3881
 
 
3882
 
 
3883
 
 
3884
 
 
3885
 
 
3886
3814
/* Integer Multi-Dimensional Interpolation */
3887
3815
/* Interpolation Kernel Code */
3888
3816
/* Generated by cgen */
3891
3819
 
3892
3820
/* see the Licence.txt file for licencing details.*/
3893
3821
 
3894
 
 
3895
3822
/*
3896
3823
   Interpolation kernel specs:
3897
3824
 
3985
3912
void **inp,             /* pointer to input pointers */
3986
3913
unsigned int npix       /* Number of pixels to process */
3987
3914
) {
3988
 
        imdi_imp *p = (imdi_imp *)(s->impl);
3989
 
        unsigned char *ip0 = (unsigned char *)inp[0];
3990
 
        unsigned char *op0 = (unsigned char *)outp[0];
3991
 
        unsigned char *ep = ip0 + npix * 7 ;
3992
 
        pointer it0 = (pointer)p->in_tables[0];
3993
 
        pointer it1 = (pointer)p->in_tables[1];
3994
 
        pointer it2 = (pointer)p->in_tables[2];
3995
 
        pointer it3 = (pointer)p->in_tables[3];
3996
 
        pointer it4 = (pointer)p->in_tables[4];
3997
 
        pointer it5 = (pointer)p->in_tables[5];
3998
 
        pointer it6 = (pointer)p->in_tables[6];
3999
 
        pointer ot0 = (pointer)p->out_tables[0];
4000
 
        pointer ot1 = (pointer)p->out_tables[1];
4001
 
        pointer ot2 = (pointer)p->out_tables[2];
4002
 
        pointer im_base = (pointer)p->im_table;
4003
 
        
4004
 
        for(;ip0 < ep; ip0 += 7, op0 += 3) {
4005
 
                unsigned int ova0;      /* Output value accumulator */
4006
 
                unsigned int ova1;      /* Output value partial accumulator */
4007
 
                {
4008
 
                        pointer imp;
4009
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
4010
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
4011
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
4012
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
4013
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
4014
 
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
4015
 
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
4016
 
                        {
4017
 
                                unsigned int ti_i;      /* Interpolation index variable */
4018
 
                                
4019
 
                                ti_i  = IT_IX(it0, ip0[0]);
4020
 
                                wo0   = IT_WO(it0, ip0[0]);
4021
 
                                ti_i += IT_IX(it1, ip0[1]);
4022
 
                                wo1   = IT_WO(it1, ip0[1]);
4023
 
                                ti_i += IT_IX(it2, ip0[2]);
4024
 
                                wo2   = IT_WO(it2, ip0[2]);
4025
 
                                ti_i += IT_IX(it3, ip0[3]);
4026
 
                                wo3   = IT_WO(it3, ip0[3]);
4027
 
                                ti_i += IT_IX(it4, ip0[4]);
4028
 
                                wo4   = IT_WO(it4, ip0[4]);
4029
 
                                ti_i += IT_IX(it5, ip0[5]);
4030
 
                                wo5   = IT_WO(it5, ip0[5]);
4031
 
                                ti_i += IT_IX(it6, ip0[6]);
4032
 
                                wo6   = IT_WO(it6, ip0[6]);
4033
 
                                
4034
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
4035
 
                                
4036
 
                                /* Sort weighting values and vertex offset values */
4037
 
                                CEX(wo0, wo1);
4038
 
                                CEX(wo0, wo2);
4039
 
                                CEX(wo0, wo3);
4040
 
                                CEX(wo0, wo4);
4041
 
                                CEX(wo0, wo5);
4042
 
                                CEX(wo0, wo6);
4043
 
                                CEX(wo1, wo2);
4044
 
                                CEX(wo1, wo3);
4045
 
                                CEX(wo1, wo4);
4046
 
                                CEX(wo1, wo5);
4047
 
                                CEX(wo1, wo6);
4048
 
                                CEX(wo2, wo3);
4049
 
                                CEX(wo2, wo4);
4050
 
                                CEX(wo2, wo5);
4051
 
                                CEX(wo2, wo6);
4052
 
                                CEX(wo3, wo4);
4053
 
                                CEX(wo3, wo5);
4054
 
                                CEX(wo3, wo6);
4055
 
                                CEX(wo4, wo5);
4056
 
                                CEX(wo4, wo6);
4057
 
                                CEX(wo5, wo6);
4058
 
                        }
4059
 
                        {
4060
 
                                unsigned int nvof;      /* Next vertex offset value */
4061
 
                                unsigned int vof;       /* Vertex offset value */
4062
 
                                unsigned int vwe;       /* Vertex weighting */
4063
 
                                
4064
 
                                vof = 0;                                /* First vertex offset is 0 */
4065
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
4066
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
4067
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
4068
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
4069
 
                                ova1  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
4070
 
                                vof += nvof;                    /* Move to next vertex */
4071
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
4072
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
4073
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
4074
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
4075
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
4076
 
                                vof += nvof;                    /* Move to next vertex */
4077
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
4078
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
4079
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
4080
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
4081
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
4082
 
                                vof += nvof;                    /* Move to next vertex */
4083
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
4084
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
4085
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
4086
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
4087
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
4088
 
                                vof += nvof;                    /* Move to next vertex */
4089
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
4090
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
4091
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
4092
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
4093
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
4094
 
                                vof += nvof;                    /* Move to next vertex */
4095
 
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
4096
 
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
4097
 
                                vwe = wo4 - wo5;                /* Baricentric weighting */
4098
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
4099
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
4100
 
                                vof += nvof;                    /* Move to next vertex */
4101
 
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
4102
 
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
4103
 
                                vwe = wo5 - wo6;                /* Baricentric weighting */
4104
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
4105
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
4106
 
                                vof += nvof;                    /* Move to next vertex */
4107
 
                                vwe = wo6;                              /* Baricentric weighting */
4108
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
4109
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
4110
 
                        }
4111
 
                }
4112
 
                {
4113
 
                        unsigned int oti;       /* Vertex offset value */
4114
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
4115
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
4116
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
4117
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
4118
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
4119
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
4120
 
                }
4121
 
        }
 
3915
        imdi_imp *p = (imdi_imp *)(s->impl);
 
3916
        unsigned char *ip0 = (unsigned char *)inp[0];
 
3917
        unsigned char *op0 = (unsigned char *)outp[0];
 
3918
        unsigned char *ep = ip0 + npix * 7 ;
 
3919
        pointer it0 = (pointer)p->in_tables[0];
 
3920
        pointer it1 = (pointer)p->in_tables[1];
 
3921
        pointer it2 = (pointer)p->in_tables[2];
 
3922
        pointer it3 = (pointer)p->in_tables[3];
 
3923
        pointer it4 = (pointer)p->in_tables[4];
 
3924
        pointer it5 = (pointer)p->in_tables[5];
 
3925
        pointer it6 = (pointer)p->in_tables[6];
 
3926
        pointer ot0 = (pointer)p->out_tables[0];
 
3927
        pointer ot1 = (pointer)p->out_tables[1];
 
3928
        pointer ot2 = (pointer)p->out_tables[2];
 
3929
        pointer im_base = (pointer)p->im_table;
 
3930
 
 
3931
        for(;ip0 < ep; ip0 += 7, op0 += 3) {
 
3932
                unsigned int ova0;      /* Output value accumulator */
 
3933
                unsigned int ova1;      /* Output value partial accumulator */
 
3934
                {
 
3935
                        pointer imp;
 
3936
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
3937
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
3938
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
3939
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
3940
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
3941
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
 
3942
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
 
3943
                        {
 
3944
                                unsigned int ti_i;      /* Interpolation index variable */
 
3945
 
 
3946
                                ti_i  = IT_IX(it0, ip0[0]);
 
3947
                                wo0   = IT_WO(it0, ip0[0]);
 
3948
                                ti_i += IT_IX(it1, ip0[1]);
 
3949
                                wo1   = IT_WO(it1, ip0[1]);
 
3950
                                ti_i += IT_IX(it2, ip0[2]);
 
3951
                                wo2   = IT_WO(it2, ip0[2]);
 
3952
                                ti_i += IT_IX(it3, ip0[3]);
 
3953
                                wo3   = IT_WO(it3, ip0[3]);
 
3954
                                ti_i += IT_IX(it4, ip0[4]);
 
3955
                                wo4   = IT_WO(it4, ip0[4]);
 
3956
                                ti_i += IT_IX(it5, ip0[5]);
 
3957
                                wo5   = IT_WO(it5, ip0[5]);
 
3958
                                ti_i += IT_IX(it6, ip0[6]);
 
3959
                                wo6   = IT_WO(it6, ip0[6]);
 
3960
 
 
3961
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
3962
 
 
3963
                                /* Sort weighting values and vertex offset values */
 
3964
                                CEX(wo0, wo1);
 
3965
                                CEX(wo0, wo2);
 
3966
                                CEX(wo0, wo3);
 
3967
                                CEX(wo0, wo4);
 
3968
                                CEX(wo0, wo5);
 
3969
                                CEX(wo0, wo6);
 
3970
                                CEX(wo1, wo2);
 
3971
                                CEX(wo1, wo3);
 
3972
                                CEX(wo1, wo4);
 
3973
                                CEX(wo1, wo5);
 
3974
                                CEX(wo1, wo6);
 
3975
                                CEX(wo2, wo3);
 
3976
                                CEX(wo2, wo4);
 
3977
                                CEX(wo2, wo5);
 
3978
                                CEX(wo2, wo6);
 
3979
                                CEX(wo3, wo4);
 
3980
                                CEX(wo3, wo5);
 
3981
                                CEX(wo3, wo6);
 
3982
                                CEX(wo4, wo5);
 
3983
                                CEX(wo4, wo6);
 
3984
                                CEX(wo5, wo6);
 
3985
                        }
 
3986
                        {
 
3987
                                unsigned int nvof;      /* Next vertex offset value */
 
3988
                                unsigned int vof;       /* Vertex offset value */
 
3989
                                unsigned int vwe;       /* Vertex weighting */
 
3990
 
 
3991
                                vof = 0;                                /* First vertex offset is 0 */
 
3992
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
3993
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
3994
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
3995
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
3996
                                ova1  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
3997
                                vof += nvof;                    /* Move to next vertex */
 
3998
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
3999
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
4000
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
4001
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
4002
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
4003
                                vof += nvof;                    /* Move to next vertex */
 
4004
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
4005
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
4006
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
4007
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
4008
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
4009
                                vof += nvof;                    /* Move to next vertex */
 
4010
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
4011
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
4012
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
4013
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
4014
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
4015
                                vof += nvof;                    /* Move to next vertex */
 
4016
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
4017
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
4018
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
4019
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
4020
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
4021
                                vof += nvof;                    /* Move to next vertex */
 
4022
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
 
4023
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
 
4024
                                vwe = wo4 - wo5;                /* Baricentric weighting */
 
4025
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
4026
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
4027
                                vof += nvof;                    /* Move to next vertex */
 
4028
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
 
4029
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
 
4030
                                vwe = wo5 - wo6;                /* Baricentric weighting */
 
4031
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
4032
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
4033
                                vof += nvof;                    /* Move to next vertex */
 
4034
                                vwe = wo6;                              /* Baricentric weighting */
 
4035
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
4036
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
4037
                        }
 
4038
                }
 
4039
                {
 
4040
                        unsigned int oti;       /* Vertex offset value */
 
4041
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
4042
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
4043
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
4044
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
4045
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
4046
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
4047
                }
 
4048
        }
4122
4049
}
4123
4050
#undef IT_WO
4124
4051
#undef IT_IX
4132
4059
imdi_k13_gen(
4133
4060
genspec *g                      /* structure to be initialised */
4134
4061
) {
4135
 
        static unsigned char data[] = {
4136
 
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
4137
 
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
4138
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4139
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4140
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4141
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4142
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4143
 
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
4144
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
4145
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
4146
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
4147
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4148
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4149
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4150
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4151
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4152
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4153
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4154
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4155
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
4156
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4157
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4158
 
                0xd0, 0x85, 0x04, 0x08, 0x4c, 0x69, 0x6e, 0x75, 
4159
 
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4160
 
                0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
4161
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
4162
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4163
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4164
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4165
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4166
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79, 0x72, 
4167
 
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 
4168
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4169
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4170
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4171
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4172
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
4173
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
4174
 
                0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4175
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
4176
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
4177
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
4178
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
4179
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
4180
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
4181
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
4182
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
4183
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
4184
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4185
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
4186
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
4187
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x37, 0x5f, 0x33, 0x5f, 
4188
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
4189
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
4190
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
4191
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
4192
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
4193
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
4194
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
4195
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4196
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4197
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4198
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4199
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
4200
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x33, 
4201
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4202
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4203
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
4204
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
4205
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
4206
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
4207
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
4208
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
4209
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
4210
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
4211
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
4212
 
                0x00, 0xf0, 0x04, 0x08 
4213
 
        };      /* Structure image */
4214
 
        
4215
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
4062
        static unsigned char data[] = {
 
4063
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
4064
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
4065
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4066
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4067
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4068
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4069
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4070
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
4071
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
4072
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
4073
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
4074
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4075
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4076
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4077
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4078
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4079
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4080
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4081
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4082
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
4083
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4084
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4085
                0xd0, 0x85, 0x04, 0x08, 0x4c, 0x69, 0x6e, 0x75,
 
4086
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4087
                0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
4088
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
4089
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4090
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4091
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4092
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4093
                0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79, 0x72,
 
4094
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4095
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4096
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4097
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4098
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4099
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
4100
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
4101
                0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4102
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
4103
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
4104
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
4105
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
4106
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
4107
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
4108
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
4109
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
4110
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
4111
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4112
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
4113
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
4114
                0x2c, 0xf3, 0xdc, 0xb7, 0x37, 0x5f, 0x33, 0x5f,
 
4115
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
4116
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
4117
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
4118
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
4119
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
4120
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
4121
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
4122
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4123
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4124
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4125
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4126
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
4127
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x33,
 
4128
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4129
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4130
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
4131
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
4132
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
4133
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
4134
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
4135
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
4136
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
4137
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
4138
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
4139
                0x00, 0xf0, 0x04, 0x08
 
4140
        };      /* Structure image */
 
4141
 
 
4142
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
4216
4143
}
4217
4144
 
4218
4145
static void
4219
4146
imdi_k13_tab(
4220
4147
tabspec *t                      /* structure to be initialised */
4221
4148
) {
4222
 
        static unsigned char data[] = {
4223
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
4224
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
4225
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
4226
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
4227
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
4228
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
4229
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4230
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
4231
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
4232
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4233
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
4234
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
4235
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
4236
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
4237
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
4238
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
4239
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4240
 
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
4241
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
4242
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
4243
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
4244
 
                0x02, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
4245
 
                0xff, 0xff, 0xff, 0x33, 0x00, 0x00, 0x00, 0x00, 
4246
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
4247
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4248
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4249
 
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08, 
4250
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
4251
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4252
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4253
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
4254
 
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
4255
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
4256
 
        };      /* Structure image */
4257
 
        
4258
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
4149
        static unsigned char data[] = {
 
4150
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
4151
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
4152
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
4153
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
4154
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
4155
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
4156
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4157
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
4158
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
4159
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4160
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
4161
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
4162
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
4163
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
4164
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
4165
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
4166
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4167
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
4168
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
4169
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
4170
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
4171
                0x02, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
4172
                0xff, 0xff, 0xff, 0x33, 0x00, 0x00, 0x00, 0x00,
 
4173
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
4174
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4175
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4176
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08,
 
4177
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
4178
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4179
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4180
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
4181
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
4182
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
4183
        };      /* Structure image */
 
4184
 
 
4185
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
4259
4186
}
4260
4187
 
4261
 
 
4262
 
 
4263
 
 
4264
 
 
4265
 
 
4266
4188
/* Integer Multi-Dimensional Interpolation */
4267
4189
/* Interpolation Kernel Code */
4268
4190
/* Generated by cgen */
4271
4193
 
4272
4194
/* see the Licence.txt file for licencing details.*/
4273
4195
 
4274
 
 
4275
4196
/*
4276
4197
   Interpolation kernel specs:
4277
4198
 
4367
4288
void **inp,             /* pointer to input pointers */
4368
4289
unsigned int npix       /* Number of pixels to process */
4369
4290
) {
4370
 
        imdi_imp *p = (imdi_imp *)(s->impl);
4371
 
        unsigned char *ip0 = (unsigned char *)inp[0];
4372
 
        unsigned char *op0 = (unsigned char *)outp[0];
4373
 
        unsigned char *ep = ip0 + npix * 8 ;
4374
 
        pointer it0 = (pointer)p->in_tables[0];
4375
 
        pointer it1 = (pointer)p->in_tables[1];
4376
 
        pointer it2 = (pointer)p->in_tables[2];
4377
 
        pointer it3 = (pointer)p->in_tables[3];
4378
 
        pointer it4 = (pointer)p->in_tables[4];
4379
 
        pointer it5 = (pointer)p->in_tables[5];
4380
 
        pointer it6 = (pointer)p->in_tables[6];
4381
 
        pointer it7 = (pointer)p->in_tables[7];
4382
 
        pointer ot0 = (pointer)p->out_tables[0];
4383
 
        pointer ot1 = (pointer)p->out_tables[1];
4384
 
        pointer ot2 = (pointer)p->out_tables[2];
4385
 
        pointer im_base = (pointer)p->im_table;
4386
 
        
4387
 
        for(;ip0 < ep; ip0 += 8, op0 += 3) {
4388
 
                unsigned int ova0;      /* Output value accumulator */
4389
 
                unsigned int ova1;      /* Output value partial accumulator */
4390
 
                {
4391
 
                        pointer imp;
4392
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
4393
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
4394
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
4395
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
4396
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
4397
 
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
4398
 
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
4399
 
                        unsigned int wo7;       /* Weighting value and vertex offset variable */
4400
 
                        {
4401
 
                                unsigned int ti_i;      /* Interpolation index variable */
4402
 
                                
4403
 
                                ti_i  = IT_IX(it0, ip0[0]);
4404
 
                                wo0   = IT_WO(it0, ip0[0]);
4405
 
                                ti_i += IT_IX(it1, ip0[1]);
4406
 
                                wo1   = IT_WO(it1, ip0[1]);
4407
 
                                ti_i += IT_IX(it2, ip0[2]);
4408
 
                                wo2   = IT_WO(it2, ip0[2]);
4409
 
                                ti_i += IT_IX(it3, ip0[3]);
4410
 
                                wo3   = IT_WO(it3, ip0[3]);
4411
 
                                ti_i += IT_IX(it4, ip0[4]);
4412
 
                                wo4   = IT_WO(it4, ip0[4]);
4413
 
                                ti_i += IT_IX(it5, ip0[5]);
4414
 
                                wo5   = IT_WO(it5, ip0[5]);
4415
 
                                ti_i += IT_IX(it6, ip0[6]);
4416
 
                                wo6   = IT_WO(it6, ip0[6]);
4417
 
                                ti_i += IT_IX(it7, ip0[7]);
4418
 
                                wo7   = IT_WO(it7, ip0[7]);
4419
 
                                
4420
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
4421
 
                                
4422
 
                                /* Sort weighting values and vertex offset values */
4423
 
                                CEX(wo0, wo1);
4424
 
                                CEX(wo0, wo2);
4425
 
                                CEX(wo0, wo3);
4426
 
                                CEX(wo0, wo4);
4427
 
                                CEX(wo0, wo5);
4428
 
                                CEX(wo0, wo6);
4429
 
                                CEX(wo0, wo7);
4430
 
                                CEX(wo1, wo2);
4431
 
                                CEX(wo1, wo3);
4432
 
                                CEX(wo1, wo4);
4433
 
                                CEX(wo1, wo5);
4434
 
                                CEX(wo1, wo6);
4435
 
                                CEX(wo1, wo7);
4436
 
                                CEX(wo2, wo3);
4437
 
                                CEX(wo2, wo4);
4438
 
                                CEX(wo2, wo5);
4439
 
                                CEX(wo2, wo6);
4440
 
                                CEX(wo2, wo7);
4441
 
                                CEX(wo3, wo4);
4442
 
                                CEX(wo3, wo5);
4443
 
                                CEX(wo3, wo6);
4444
 
                                CEX(wo3, wo7);
4445
 
                                CEX(wo4, wo5);
4446
 
                                CEX(wo4, wo6);
4447
 
                                CEX(wo4, wo7);
4448
 
                                CEX(wo5, wo6);
4449
 
                                CEX(wo5, wo7);
4450
 
                                CEX(wo6, wo7);
4451
 
                        }
4452
 
                        {
4453
 
                                unsigned int nvof;      /* Next vertex offset value */
4454
 
                                unsigned int vof;       /* Vertex offset value */
4455
 
                                unsigned int vwe;       /* Vertex weighting */
4456
 
                                
4457
 
                                vof = 0;                                /* First vertex offset is 0 */
4458
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
4459
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
4460
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
4461
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
4462
 
                                ova1  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
4463
 
                                vof += nvof;                    /* Move to next vertex */
4464
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
4465
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
4466
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
4467
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
4468
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
4469
 
                                vof += nvof;                    /* Move to next vertex */
4470
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
4471
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
4472
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
4473
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
4474
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
4475
 
                                vof += nvof;                    /* Move to next vertex */
4476
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
4477
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
4478
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
4479
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
4480
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
4481
 
                                vof += nvof;                    /* Move to next vertex */
4482
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
4483
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
4484
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
4485
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
4486
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
4487
 
                                vof += nvof;                    /* Move to next vertex */
4488
 
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
4489
 
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
4490
 
                                vwe = wo4 - wo5;                /* Baricentric weighting */
4491
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
4492
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
4493
 
                                vof += nvof;                    /* Move to next vertex */
4494
 
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
4495
 
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
4496
 
                                vwe = wo5 - wo6;                /* Baricentric weighting */
4497
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
4498
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
4499
 
                                vof += nvof;                    /* Move to next vertex */
4500
 
                                nvof = (wo7 & 0x7fffff);        /* Extract offset value */
4501
 
                                wo7 = (wo7 >> 23);              /* Extract weighting value */
4502
 
                                vwe = wo6 - wo7;                /* Baricentric weighting */
4503
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
4504
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
4505
 
                                vof += nvof;                    /* Move to next vertex */
4506
 
                                vwe = wo7;                              /* Baricentric weighting */
4507
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
4508
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
4509
 
                        }
4510
 
                }
4511
 
                {
4512
 
                        unsigned int oti;       /* Vertex offset value */
4513
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
4514
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
4515
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
4516
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
4517
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
4518
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
4519
 
                }
4520
 
        }
 
4291
        imdi_imp *p = (imdi_imp *)(s->impl);
 
4292
        unsigned char *ip0 = (unsigned char *)inp[0];
 
4293
        unsigned char *op0 = (unsigned char *)outp[0];
 
4294
        unsigned char *ep = ip0 + npix * 8 ;
 
4295
        pointer it0 = (pointer)p->in_tables[0];
 
4296
        pointer it1 = (pointer)p->in_tables[1];
 
4297
        pointer it2 = (pointer)p->in_tables[2];
 
4298
        pointer it3 = (pointer)p->in_tables[3];
 
4299
        pointer it4 = (pointer)p->in_tables[4];
 
4300
        pointer it5 = (pointer)p->in_tables[5];
 
4301
        pointer it6 = (pointer)p->in_tables[6];
 
4302
        pointer it7 = (pointer)p->in_tables[7];
 
4303
        pointer ot0 = (pointer)p->out_tables[0];
 
4304
        pointer ot1 = (pointer)p->out_tables[1];
 
4305
        pointer ot2 = (pointer)p->out_tables[2];
 
4306
        pointer im_base = (pointer)p->im_table;
 
4307
 
 
4308
        for(;ip0 < ep; ip0 += 8, op0 += 3) {
 
4309
                unsigned int ova0;      /* Output value accumulator */
 
4310
                unsigned int ova1;      /* Output value partial accumulator */
 
4311
                {
 
4312
                        pointer imp;
 
4313
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
4314
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
4315
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
4316
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
4317
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
4318
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
 
4319
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
 
4320
                        unsigned int wo7;       /* Weighting value and vertex offset variable */
 
4321
                        {
 
4322
                                unsigned int ti_i;      /* Interpolation index variable */
 
4323
 
 
4324
                                ti_i  = IT_IX(it0, ip0[0]);
 
4325
                                wo0   = IT_WO(it0, ip0[0]);
 
4326
                                ti_i += IT_IX(it1, ip0[1]);
 
4327
                                wo1   = IT_WO(it1, ip0[1]);
 
4328
                                ti_i += IT_IX(it2, ip0[2]);
 
4329
                                wo2   = IT_WO(it2, ip0[2]);
 
4330
                                ti_i += IT_IX(it3, ip0[3]);
 
4331
                                wo3   = IT_WO(it3, ip0[3]);
 
4332
                                ti_i += IT_IX(it4, ip0[4]);
 
4333
                                wo4   = IT_WO(it4, ip0[4]);
 
4334
                                ti_i += IT_IX(it5, ip0[5]);
 
4335
                                wo5   = IT_WO(it5, ip0[5]);
 
4336
                                ti_i += IT_IX(it6, ip0[6]);
 
4337
                                wo6   = IT_WO(it6, ip0[6]);
 
4338
                                ti_i += IT_IX(it7, ip0[7]);
 
4339
                                wo7   = IT_WO(it7, ip0[7]);
 
4340
 
 
4341
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
4342
 
 
4343
                                /* Sort weighting values and vertex offset values */
 
4344
                                CEX(wo0, wo1);
 
4345
                                CEX(wo0, wo2);
 
4346
                                CEX(wo0, wo3);
 
4347
                                CEX(wo0, wo4);
 
4348
                                CEX(wo0, wo5);
 
4349
                                CEX(wo0, wo6);
 
4350
                                CEX(wo0, wo7);
 
4351
                                CEX(wo1, wo2);
 
4352
                                CEX(wo1, wo3);
 
4353
                                CEX(wo1, wo4);
 
4354
                                CEX(wo1, wo5);
 
4355
                                CEX(wo1, wo6);
 
4356
                                CEX(wo1, wo7);
 
4357
                                CEX(wo2, wo3);
 
4358
                                CEX(wo2, wo4);
 
4359
                                CEX(wo2, wo5);
 
4360
                                CEX(wo2, wo6);
 
4361
                                CEX(wo2, wo7);
 
4362
                                CEX(wo3, wo4);
 
4363
                                CEX(wo3, wo5);
 
4364
                                CEX(wo3, wo6);
 
4365
                                CEX(wo3, wo7);
 
4366
                                CEX(wo4, wo5);
 
4367
                                CEX(wo4, wo6);
 
4368
                                CEX(wo4, wo7);
 
4369
                                CEX(wo5, wo6);
 
4370
                                CEX(wo5, wo7);
 
4371
                                CEX(wo6, wo7);
 
4372
                        }
 
4373
                        {
 
4374
                                unsigned int nvof;      /* Next vertex offset value */
 
4375
                                unsigned int vof;       /* Vertex offset value */
 
4376
                                unsigned int vwe;       /* Vertex weighting */
 
4377
 
 
4378
                                vof = 0;                                /* First vertex offset is 0 */
 
4379
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
4380
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
4381
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
4382
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
4383
                                ova1  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
4384
                                vof += nvof;                    /* Move to next vertex */
 
4385
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
4386
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
4387
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
4388
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
4389
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
4390
                                vof += nvof;                    /* Move to next vertex */
 
4391
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
4392
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
4393
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
4394
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
4395
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
4396
                                vof += nvof;                    /* Move to next vertex */
 
4397
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
4398
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
4399
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
4400
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
4401
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
4402
                                vof += nvof;                    /* Move to next vertex */
 
4403
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
4404
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
4405
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
4406
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
4407
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
4408
                                vof += nvof;                    /* Move to next vertex */
 
4409
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
 
4410
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
 
4411
                                vwe = wo4 - wo5;                /* Baricentric weighting */
 
4412
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
4413
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
4414
                                vof += nvof;                    /* Move to next vertex */
 
4415
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
 
4416
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
 
4417
                                vwe = wo5 - wo6;                /* Baricentric weighting */
 
4418
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
4419
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
4420
                                vof += nvof;                    /* Move to next vertex */
 
4421
                                nvof = (wo7 & 0x7fffff);        /* Extract offset value */
 
4422
                                wo7 = (wo7 >> 23);              /* Extract weighting value */
 
4423
                                vwe = wo6 - wo7;                /* Baricentric weighting */
 
4424
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
4425
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
4426
                                vof += nvof;                    /* Move to next vertex */
 
4427
                                vwe = wo7;                              /* Baricentric weighting */
 
4428
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
4429
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
4430
                        }
 
4431
                }
 
4432
                {
 
4433
                        unsigned int oti;       /* Vertex offset value */
 
4434
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
4435
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
4436
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
4437
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
4438
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
4439
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
4440
                }
 
4441
        }
4521
4442
}
4522
4443
#undef IT_WO
4523
4444
#undef IT_IX
4531
4452
imdi_k14_gen(
4532
4453
genspec *g                      /* structure to be initialised */
4533
4454
) {
4534
 
        static unsigned char data[] = {
4535
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4536
 
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
4537
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4538
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4539
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4540
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4541
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4542
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4543
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4544
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4545
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4546
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4547
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4548
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4549
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4550
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4551
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4552
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4553
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4554
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
4555
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4556
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4557
 
                0xd0, 0x85, 0x04, 0x08, 0x4c, 0x69, 0x6e, 0x75, 
4558
 
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4559
 
                0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
4560
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
4561
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4562
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4563
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4564
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4565
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79, 0x72, 
4566
 
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 
4567
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4568
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4569
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4570
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4571
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
4572
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
4573
 
                0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4574
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
4575
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
4576
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
4577
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
4578
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
4579
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
4580
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
4581
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
4582
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
4583
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4584
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
4585
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
4586
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x38, 0x5f, 0x33, 0x5f, 
4587
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
4588
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
4589
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
4590
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
4591
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
4592
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
4593
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
4594
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4595
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4596
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4597
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4598
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
4599
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x34, 
4600
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4601
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4602
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
4603
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
4604
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
4605
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
4606
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
4607
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
4608
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
4609
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
4610
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
4611
 
                0x00, 0xf0, 0x04, 0x08 
4612
 
        };      /* Structure image */
4613
 
        
4614
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
4455
        static unsigned char data[] = {
 
4456
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4457
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
4458
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4459
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4460
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4461
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4462
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4463
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4464
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4465
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4466
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4467
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4468
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4469
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4470
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4471
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4472
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4473
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4474
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4475
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
4476
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4477
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4478
                0xd0, 0x85, 0x04, 0x08, 0x4c, 0x69, 0x6e, 0x75,
 
4479
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4480
                0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
4481
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
4482
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4483
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4484
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4485
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4486
                0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79, 0x72,
 
4487
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4488
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4489
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4490
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4491
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4492
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
4493
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
4494
                0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4495
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
4496
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
4497
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
4498
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
4499
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
4500
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
4501
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
4502
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
4503
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
4504
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4505
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
4506
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
4507
                0x2c, 0xf3, 0xdc, 0xb7, 0x38, 0x5f, 0x33, 0x5f,
 
4508
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
4509
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
4510
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
4511
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
4512
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
4513
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
4514
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
4515
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4516
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4517
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4518
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4519
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
4520
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x34,
 
4521
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4522
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4523
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
4524
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
4525
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
4526
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
4527
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
4528
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
4529
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
4530
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
4531
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
4532
                0x00, 0xf0, 0x04, 0x08
 
4533
        };      /* Structure image */
 
4534
 
 
4535
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
4615
4536
}
4616
4537
 
4617
4538
static void
4618
4539
imdi_k14_tab(
4619
4540
tabspec *t                      /* structure to be initialised */
4620
4541
) {
4621
 
        static unsigned char data[] = {
4622
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
4623
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
4624
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
4625
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
4626
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
4627
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
4628
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4629
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
4630
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
4631
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4632
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
4633
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
4634
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
4635
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
4636
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
4637
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
4638
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4639
 
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
4640
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
4641
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
4642
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
4643
 
                0x02, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
4644
 
                0xff, 0xff, 0xff, 0x33, 0x00, 0x00, 0x00, 0x00, 
4645
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
4646
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4647
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4648
 
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08, 
4649
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
4650
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4651
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4652
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
4653
 
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
4654
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
4655
 
        };      /* Structure image */
4656
 
        
4657
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
4542
        static unsigned char data[] = {
 
4543
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
4544
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
4545
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
4546
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
4547
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
4548
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
4549
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4550
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
4551
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
4552
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4553
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
4554
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
4555
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
4556
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
4557
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
4558
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
4559
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4560
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
4561
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
4562
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
4563
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
4564
                0x02, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
4565
                0xff, 0xff, 0xff, 0x33, 0x00, 0x00, 0x00, 0x00,
 
4566
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
4567
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4568
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4569
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08,
 
4570
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
4571
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4572
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4573
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
4574
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
4575
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
4576
        };      /* Structure image */
 
4577
 
 
4578
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
4658
4579
}
4659
4580
 
4660
 
 
4661
 
 
4662
 
 
4663
 
 
4664
 
 
4665
4581
/* Integer Multi-Dimensional Interpolation */
4666
4582
/* Interpolation Kernel Code */
4667
4583
/* Generated by cgen */
4670
4586
 
4671
4587
/* see the Licence.txt file for licencing details.*/
4672
4588
 
4673
 
 
4674
4589
/*
4675
4590
   Interpolation kernel specs:
4676
4591
 
4754
4669
void **inp,             /* pointer to input pointers */
4755
4670
unsigned int npix       /* Number of pixels to process */
4756
4671
) {
4757
 
        imdi_imp *p = (imdi_imp *)(s->impl);
4758
 
        unsigned char *ip0 = (unsigned char *)inp[0];
4759
 
        unsigned char *op0 = (unsigned char *)outp[0];
4760
 
        unsigned char *ep = ip0 + npix * 1 ;
4761
 
        pointer it0 = (pointer)p->in_tables[0];
4762
 
        pointer ot0 = (pointer)p->out_tables[0];
4763
 
        pointer ot1 = (pointer)p->out_tables[1];
4764
 
        pointer ot2 = (pointer)p->out_tables[2];
4765
 
        pointer ot3 = (pointer)p->out_tables[3];
4766
 
        pointer sw_base = (pointer)p->sw_table;
4767
 
        pointer im_base = (pointer)p->im_table;
4768
 
        
4769
 
        for(;ip0 < ep; ip0 += 1, op0 += 4) {
4770
 
                unsigned int ova0;      /* Output value accumulator */
4771
 
                unsigned int ova1;      /* Output value accumulator */
4772
 
                {
4773
 
                        pointer swp;
4774
 
                        pointer imp;
4775
 
                        {
4776
 
                                unsigned int ti;        /* Simplex+Interpolation index variable */
4777
 
                                
4778
 
                                ti  = IT_IT(it0, ip0[0]);
4779
 
                                
4780
 
                                imp = im_base + IM_O(ti >> 0);          /* Extract interp. index and comp. entry */
4781
 
                                swp = sw_base + SW_O(ti & 0x0); /* Extract simplex index and comp. entry */
4782
 
                        }
4783
 
                        {
4784
 
                                unsigned int vowr;      /* Vertex offset/weight value */
4785
 
                                unsigned int vof;       /* Vertex offset value */
4786
 
                                unsigned int vwe;       /* Vertex weighting */
4787
 
                                
4788
 
                                vowr = SX_WO(swp, 0);   /* Read vertex offset+weighting values */
4789
 
                                vof = (vowr & 0x7f);    /* Extract offset value */
4790
 
                                vwe = (vowr >> 7);      /* Extract weighting value */
4791
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
4792
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
4793
 
                                vowr = SX_WO(swp, 1);   /* Read vertex offset+weighting values */
4794
 
                                vof = (vowr & 0x7f);    /* Extract offset value */
4795
 
                                vwe = (vowr >> 7);      /* Extract weighting value */
4796
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
4797
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
4798
 
                        }
4799
 
                }
4800
 
                {
4801
 
                        unsigned int oti;       /* Vertex offset value */
4802
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
4803
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
4804
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
4805
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
4806
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
4807
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
4808
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
4809
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
4810
 
                }
4811
 
        }
 
4672
        imdi_imp *p = (imdi_imp *)(s->impl);
 
4673
        unsigned char *ip0 = (unsigned char *)inp[0];
 
4674
        unsigned char *op0 = (unsigned char *)outp[0];
 
4675
        unsigned char *ep = ip0 + npix * 1 ;
 
4676
        pointer it0 = (pointer)p->in_tables[0];
 
4677
        pointer ot0 = (pointer)p->out_tables[0];
 
4678
        pointer ot1 = (pointer)p->out_tables[1];
 
4679
        pointer ot2 = (pointer)p->out_tables[2];
 
4680
        pointer ot3 = (pointer)p->out_tables[3];
 
4681
        pointer sw_base = (pointer)p->sw_table;
 
4682
        pointer im_base = (pointer)p->im_table;
 
4683
 
 
4684
        for(;ip0 < ep; ip0 += 1, op0 += 4) {
 
4685
                unsigned int ova0;      /* Output value accumulator */
 
4686
                unsigned int ova1;      /* Output value accumulator */
 
4687
                {
 
4688
                        pointer swp;
 
4689
                        pointer imp;
 
4690
                        {
 
4691
                                unsigned int ti;        /* Simplex+Interpolation index variable */
 
4692
 
 
4693
                                ti  = IT_IT(it0, ip0[0]);
 
4694
 
 
4695
                                imp = im_base + IM_O(ti >> 0);          /* Extract interp. index and comp. entry */
 
4696
                                swp = sw_base + SW_O(ti & 0x0); /* Extract simplex index and comp. entry */
 
4697
                        }
 
4698
                        {
 
4699
                                unsigned int vowr;      /* Vertex offset/weight value */
 
4700
                                unsigned int vof;       /* Vertex offset value */
 
4701
                                unsigned int vwe;       /* Vertex weighting */
 
4702
 
 
4703
                                vowr = SX_WO(swp, 0);   /* Read vertex offset+weighting values */
 
4704
                                vof = (vowr & 0x7f);    /* Extract offset value */
 
4705
                                vwe = (vowr >> 7);      /* Extract weighting value */
 
4706
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
4707
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
4708
                                vowr = SX_WO(swp, 1);   /* Read vertex offset+weighting values */
 
4709
                                vof = (vowr & 0x7f);    /* Extract offset value */
 
4710
                                vwe = (vowr >> 7);      /* Extract weighting value */
 
4711
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
4712
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
4713
                        }
 
4714
                }
 
4715
                {
 
4716
                        unsigned int oti;       /* Vertex offset value */
 
4717
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
4718
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
4719
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
4720
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
4721
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
4722
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
4723
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
4724
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
4725
                }
 
4726
        }
4812
4727
}
4813
4728
#undef IT_IT
4814
4729
#undef SW_O
4821
4736
imdi_k15_gen(
4822
4737
genspec *g                      /* structure to be initialised */
4823
4738
) {
4824
 
        static unsigned char data[] = {
4825
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
4826
 
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
4827
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4828
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4829
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4830
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4831
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4832
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
4833
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4834
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4835
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4836
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4837
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4838
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4839
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4840
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4841
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4842
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4843
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4844
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
4845
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4846
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4847
 
                0x08, 0x00, 0x00, 0x00, 0x4c, 0x69, 0x6e, 0x75, 
4848
 
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4849
 
                0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
4850
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
4851
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4852
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4853
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4854
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4855
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79, 0x72, 
4856
 
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 
4857
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4858
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4859
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4860
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4861
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
4862
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
4863
 
                0xff, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
4864
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
4865
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
4866
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
4867
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
4868
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
4869
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
4870
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
4871
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
4872
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
4873
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4874
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
4875
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
4876
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x31, 0x5f, 0x34, 0x5f, 
4877
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
4878
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
4879
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
4880
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
4881
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
4882
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
4883
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
4884
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4885
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4886
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4887
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4888
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
4889
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x35, 
4890
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4891
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4892
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
4893
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
4894
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
4895
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
4896
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
4897
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
4898
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
4899
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
4900
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
4901
 
                0x00, 0xf0, 0x04, 0x08 
4902
 
        };      /* Structure image */
4903
 
        
4904
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
4739
        static unsigned char data[] = {
 
4740
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
4741
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
4742
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4743
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4744
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4745
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4746
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4747
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
4748
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4749
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4750
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4751
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4752
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4753
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4754
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4755
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4756
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4757
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4758
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4759
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
4760
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4761
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4762
                0x08, 0x00, 0x00, 0x00, 0x4c, 0x69, 0x6e, 0x75,
 
4763
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4764
                0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
4765
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
4766
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4767
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4768
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4769
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4770
                0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79, 0x72,
 
4771
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4772
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4773
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4774
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4775
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4776
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
4777
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
4778
                0xff, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
4779
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
4780
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
4781
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
4782
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
4783
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
4784
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
4785
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
4786
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
4787
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
4788
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4789
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
4790
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
4791
                0x2c, 0xf3, 0xdc, 0xb7, 0x31, 0x5f, 0x34, 0x5f,
 
4792
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
4793
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
4794
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
4795
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
4796
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
4797
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
4798
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
4799
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4800
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4801
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4802
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4803
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
4804
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x35,
 
4805
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4806
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4807
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
4808
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
4809
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
4810
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
4811
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
4812
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
4813
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
4814
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
4815
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
4816
                0x00, 0xf0, 0x04, 0x08
 
4817
        };      /* Structure image */
 
4818
 
 
4819
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
4905
4820
}
4906
4821
 
4907
4822
static void
4908
4823
imdi_k15_tab(
4909
4824
tabspec *t                      /* structure to be initialised */
4910
4825
) {
4911
 
        static unsigned char data[] = {
4912
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4913
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
4914
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
4915
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
4916
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
4917
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
4918
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
4919
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
4920
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4921
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4922
 
                0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
4923
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4924
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
4925
 
                0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
4926
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
4927
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
4928
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4929
 
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
4930
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4931
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4932
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
4933
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
4934
 
                0xff, 0xff, 0xff, 0x34, 0x00, 0x00, 0x00, 0x00, 
4935
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
4936
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4937
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
4938
 
                0x00, 0x00, 0x00, 0x00, 0x52, 0xca, 0x04, 0x08, 
4939
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
4940
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4941
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
4942
 
                0x08, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
4943
 
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
4944
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
4945
 
        };      /* Structure image */
4946
 
        
4947
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
4826
        static unsigned char data[] = {
 
4827
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4828
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
4829
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
4830
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
4831
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
4832
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
4833
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
4834
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
4835
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4836
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4837
                0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
4838
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4839
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
4840
                0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
4841
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
4842
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
4843
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4844
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
4845
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4846
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4847
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
4848
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
4849
                0xff, 0xff, 0xff, 0x34, 0x00, 0x00, 0x00, 0x00,
 
4850
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
4851
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4852
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
4853
                0x00, 0x00, 0x00, 0x00, 0x52, 0xca, 0x04, 0x08,
 
4854
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
4855
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4856
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
4857
                0x08, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
4858
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
4859
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
4860
        };      /* Structure image */
 
4861
 
 
4862
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
4948
4863
}
4949
4864
 
4950
 
 
4951
 
 
4952
 
 
4953
 
 
4954
 
 
4955
4865
/* Integer Multi-Dimensional Interpolation */
4956
4866
/* Interpolation Kernel Code */
4957
4867
/* Generated by cgen */
4960
4870
 
4961
4871
/* see the Licence.txt file for licencing details.*/
4962
4872
 
4963
 
 
4964
4873
/*
4965
4874
   Interpolation kernel specs:
4966
4875
 
5051
4960
void **inp,             /* pointer to input pointers */
5052
4961
unsigned int npix       /* Number of pixels to process */
5053
4962
) {
5054
 
        imdi_imp *p = (imdi_imp *)(s->impl);
5055
 
        unsigned char *ip0 = (unsigned char *)inp[0];
5056
 
        unsigned char *op0 = (unsigned char *)outp[0];
5057
 
        unsigned char *ep = ip0 + npix * 3 ;
5058
 
        pointer it0 = (pointer)p->in_tables[0];
5059
 
        pointer it1 = (pointer)p->in_tables[1];
5060
 
        pointer it2 = (pointer)p->in_tables[2];
5061
 
        pointer ot0 = (pointer)p->out_tables[0];
5062
 
        pointer ot1 = (pointer)p->out_tables[1];
5063
 
        pointer ot2 = (pointer)p->out_tables[2];
5064
 
        pointer ot3 = (pointer)p->out_tables[3];
5065
 
        pointer sw_base = (pointer)p->sw_table;
5066
 
        pointer im_base = (pointer)p->im_table;
5067
 
        
5068
 
        for(;ip0 < ep; ip0 += 3, op0 += 4) {
5069
 
                unsigned int ova0;      /* Output value accumulator */
5070
 
                unsigned int ova1;      /* Output value accumulator */
5071
 
                {
5072
 
                        pointer swp;
5073
 
                        pointer imp;
5074
 
                        {
5075
 
                                unsigned int ti;        /* Simplex+Interpolation index variable */
5076
 
                                
5077
 
                                ti  = IT_IT(it0, ip0[0]);
5078
 
                                ti += IT_IT(it1, ip0[1]);
5079
 
                                ti += IT_IT(it2, ip0[2]);
5080
 
                                
5081
 
                                imp = im_base + IM_O(ti >> 12);         /* Extract interp. index and comp. entry */
5082
 
                                swp = sw_base + SW_O(ti & 0xfff);       /* Extract simplex index and comp. entry */
5083
 
                        }
5084
 
                        {
5085
 
                                unsigned int vof;       /* Vertex offset value */
5086
 
                                unsigned int vwe;       /* Vertex weighting */
5087
 
                                
5088
 
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
5089
 
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
5090
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
5091
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
5092
 
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
5093
 
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
5094
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
5095
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
5096
 
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
5097
 
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
5098
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
5099
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
5100
 
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
5101
 
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
5102
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
5103
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
5104
 
                        }
5105
 
                }
5106
 
                {
5107
 
                        unsigned int oti;       /* Vertex offset value */
5108
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
5109
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
5110
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
5111
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
5112
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
5113
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
5114
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
5115
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
5116
 
                }
5117
 
        }
 
4963
        imdi_imp *p = (imdi_imp *)(s->impl);
 
4964
        unsigned char *ip0 = (unsigned char *)inp[0];
 
4965
        unsigned char *op0 = (unsigned char *)outp[0];
 
4966
        unsigned char *ep = ip0 + npix * 3 ;
 
4967
        pointer it0 = (pointer)p->in_tables[0];
 
4968
        pointer it1 = (pointer)p->in_tables[1];
 
4969
        pointer it2 = (pointer)p->in_tables[2];
 
4970
        pointer ot0 = (pointer)p->out_tables[0];
 
4971
        pointer ot1 = (pointer)p->out_tables[1];
 
4972
        pointer ot2 = (pointer)p->out_tables[2];
 
4973
        pointer ot3 = (pointer)p->out_tables[3];
 
4974
        pointer sw_base = (pointer)p->sw_table;
 
4975
        pointer im_base = (pointer)p->im_table;
 
4976
 
 
4977
        for(;ip0 < ep; ip0 += 3, op0 += 4) {
 
4978
                unsigned int ova0;      /* Output value accumulator */
 
4979
                unsigned int ova1;      /* Output value accumulator */
 
4980
                {
 
4981
                        pointer swp;
 
4982
                        pointer imp;
 
4983
                        {
 
4984
                                unsigned int ti;        /* Simplex+Interpolation index variable */
 
4985
 
 
4986
                                ti  = IT_IT(it0, ip0[0]);
 
4987
                                ti += IT_IT(it1, ip0[1]);
 
4988
                                ti += IT_IT(it2, ip0[2]);
 
4989
 
 
4990
                                imp = im_base + IM_O(ti >> 12);         /* Extract interp. index and comp. entry */
 
4991
                                swp = sw_base + SW_O(ti & 0xfff);       /* Extract simplex index and comp. entry */
 
4992
                        }
 
4993
                        {
 
4994
                                unsigned int vof;       /* Vertex offset value */
 
4995
                                unsigned int vwe;       /* Vertex weighting */
 
4996
 
 
4997
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
 
4998
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
 
4999
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
5000
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
5001
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
 
5002
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
 
5003
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
5004
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
5005
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
 
5006
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
 
5007
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
5008
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
5009
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
 
5010
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
 
5011
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
5012
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
5013
                        }
 
5014
                }
 
5015
                {
 
5016
                        unsigned int oti;       /* Vertex offset value */
 
5017
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
5018
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
5019
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
5020
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
5021
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
5022
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
5023
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
5024
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
5025
                }
 
5026
        }
5118
5027
}
5119
5028
#undef IT_IT
5120
5029
#undef SW_O
5128
5037
imdi_k16_gen(
5129
5038
genspec *g                      /* structure to be initialised */
5130
5039
) {
5131
 
        static unsigned char data[] = {
5132
 
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
5133
 
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
5134
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5135
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5136
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5137
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5138
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5139
 
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
5140
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
5141
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5142
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5143
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5144
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5145
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5146
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5147
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5148
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5149
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5150
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5151
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
5152
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5153
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5154
 
                0x08, 0x00, 0x00, 0x00, 0x4c, 0x69, 0x6e, 0x75, 
5155
 
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5156
 
                0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
5157
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
5158
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5159
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5160
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5161
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5162
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79, 0x72, 
5163
 
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 
5164
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5165
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5166
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5167
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5168
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
5169
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
5170
 
                0x65, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
5171
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
5172
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
5173
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
5174
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
5175
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
5176
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
5177
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
5178
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
5179
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
5180
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5181
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
5182
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
5183
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x33, 0x5f, 0x34, 0x5f, 
5184
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
5185
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
5186
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
5187
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
5188
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
5189
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
5190
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
5191
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5192
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5193
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5194
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5195
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
5196
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x36, 
5197
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5198
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5199
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
5200
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
5201
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
5202
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
5203
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
5204
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
5205
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
5206
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
5207
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
5208
 
                0x00, 0xf0, 0x04, 0x08 
5209
 
        };      /* Structure image */
5210
 
        
5211
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
5040
        static unsigned char data[] = {
 
5041
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
5042
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
5043
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5044
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5045
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5046
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5047
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5048
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
5049
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
5050
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5051
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5052
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5053
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5054
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5055
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5056
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5057
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5058
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5059
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5060
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
5061
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5062
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5063
                0x08, 0x00, 0x00, 0x00, 0x4c, 0x69, 0x6e, 0x75,
 
5064
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5065
                0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
5066
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
5067
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5068
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5069
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5070
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5071
                0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79, 0x72,
 
5072
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5073
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5074
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5075
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5076
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5077
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
5078
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
5079
                0x65, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
5080
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
5081
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
5082
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
5083
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
5084
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
5085
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
5086
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
5087
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
5088
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
5089
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5090
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
5091
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
5092
                0x2c, 0xf3, 0xdc, 0xb7, 0x33, 0x5f, 0x34, 0x5f,
 
5093
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
5094
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
5095
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
5096
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
5097
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
5098
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
5099
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
5100
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5101
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5102
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5103
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5104
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
5105
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x36,
 
5106
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5107
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5108
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
5109
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
5110
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
5111
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
5112
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
5113
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
5114
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
5115
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
5116
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
5117
                0x00, 0xf0, 0x04, 0x08
 
5118
        };      /* Structure image */
 
5119
 
 
5120
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
5212
5121
}
5213
5122
 
5214
5123
static void
5215
5124
imdi_k16_tab(
5216
5125
tabspec *t                      /* structure to be initialised */
5217
5126
) {
5218
 
        static unsigned char data[] = {
5219
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5220
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
5221
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
5222
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
5223
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
5224
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
5225
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
5226
 
                0x14, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
5227
 
                0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 
5228
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5229
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
5230
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5231
 
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
5232
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
5233
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
5234
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
5235
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5236
 
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
5237
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5238
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5239
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
5240
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
5241
 
                0xff, 0xff, 0xff, 0x34, 0x00, 0x00, 0x00, 0x00, 
5242
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
5243
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5244
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5245
 
                0x00, 0x00, 0x00, 0x00, 0x52, 0xca, 0x04, 0x08, 
5246
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
5247
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5248
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5249
 
                0x08, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
5250
 
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
5251
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
5252
 
        };      /* Structure image */
5253
 
        
5254
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
5127
        static unsigned char data[] = {
 
5128
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5129
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
5130
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
5131
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
5132
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
5133
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
5134
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
5135
                0x14, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
5136
                0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
 
5137
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5138
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
5139
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5140
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
5141
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
5142
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
5143
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
5144
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5145
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
5146
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5147
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5148
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
5149
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
5150
                0xff, 0xff, 0xff, 0x34, 0x00, 0x00, 0x00, 0x00,
 
5151
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
5152
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5153
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5154
                0x00, 0x00, 0x00, 0x00, 0x52, 0xca, 0x04, 0x08,
 
5155
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
5156
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5157
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5158
                0x08, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
5159
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
5160
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
5161
        };      /* Structure image */
 
5162
 
 
5163
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
5255
5164
}
5256
5165
 
5257
 
 
5258
 
 
5259
 
 
5260
 
 
5261
 
 
5262
5166
/* Integer Multi-Dimensional Interpolation */
5263
5167
/* Interpolation Kernel Code */
5264
5168
/* Generated by cgen */
5267
5171
 
5268
5172
/* see the Licence.txt file for licencing details.*/
5269
5173
 
5270
 
 
5271
5174
/*
5272
5175
   Interpolation kernel specs:
5273
5176
 
5363
5266
void **inp,             /* pointer to input pointers */
5364
5267
unsigned int npix       /* Number of pixels to process */
5365
5268
) {
5366
 
        imdi_imp *p = (imdi_imp *)(s->impl);
5367
 
        unsigned char *ip0 = (unsigned char *)inp[0];
5368
 
        unsigned char *op0 = (unsigned char *)outp[0];
5369
 
        unsigned char *ep = ip0 + npix * 4 ;
5370
 
        pointer it0 = (pointer)p->in_tables[0];
5371
 
        pointer it1 = (pointer)p->in_tables[1];
5372
 
        pointer it2 = (pointer)p->in_tables[2];
5373
 
        pointer it3 = (pointer)p->in_tables[3];
5374
 
        pointer ot0 = (pointer)p->out_tables[0];
5375
 
        pointer ot1 = (pointer)p->out_tables[1];
5376
 
        pointer ot2 = (pointer)p->out_tables[2];
5377
 
        pointer ot3 = (pointer)p->out_tables[3];
5378
 
        pointer sw_base = (pointer)p->sw_table;
5379
 
        pointer im_base = (pointer)p->im_table;
5380
 
        
5381
 
        for(;ip0 < ep; ip0 += 4, op0 += 4) {
5382
 
                unsigned int ova0;      /* Output value accumulator */
5383
 
                unsigned int ova1;      /* Output value accumulator */
5384
 
                {
5385
 
                        pointer swp;
5386
 
                        pointer imp;
5387
 
                        {
5388
 
                                unsigned int ti_s;      /* Simplex index variable */
5389
 
                                unsigned int ti_i;      /* Interpolation index variable */
5390
 
                                
5391
 
                                ti_i  = IT_IX(it0, ip0[0]);
5392
 
                                ti_s  = IT_SX(it0, ip0[0]);
5393
 
                                ti_i += IT_IX(it1, ip0[1]);
5394
 
                                ti_s += IT_SX(it1, ip0[1]);
5395
 
                                ti_i += IT_IX(it2, ip0[2]);
5396
 
                                ti_s += IT_SX(it2, ip0[2]);
5397
 
                                ti_i += IT_IX(it3, ip0[3]);
5398
 
                                ti_s += IT_SX(it3, ip0[3]);
5399
 
                                
5400
 
                                swp = sw_base + SW_O(ti_s);             /* Compute simplex table entry pointer */
5401
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
5402
 
                        }
5403
 
                        {
5404
 
                                unsigned int vof;       /* Vertex offset value */
5405
 
                                unsigned int vwe;       /* Vertex weighting */
5406
 
                                
5407
 
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
5408
 
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
5409
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
5410
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
5411
 
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
5412
 
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
5413
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
5414
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
5415
 
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
5416
 
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
5417
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
5418
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
5419
 
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
5420
 
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
5421
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
5422
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
5423
 
                                vof = SX_VO(swp, 4);    /* Read vertex offset value */
5424
 
                                vwe = SX_WE(swp, 4);    /* Read vertex weighting value */
5425
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
5426
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
5427
 
                        }
5428
 
                }
5429
 
                {
5430
 
                        unsigned int oti;       /* Vertex offset value */
5431
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
5432
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
5433
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
5434
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
5435
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
5436
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
5437
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
5438
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
5439
 
                }
5440
 
        }
 
5269
        imdi_imp *p = (imdi_imp *)(s->impl);
 
5270
        unsigned char *ip0 = (unsigned char *)inp[0];
 
5271
        unsigned char *op0 = (unsigned char *)outp[0];
 
5272
        unsigned char *ep = ip0 + npix * 4 ;
 
5273
        pointer it0 = (pointer)p->in_tables[0];
 
5274
        pointer it1 = (pointer)p->in_tables[1];
 
5275
        pointer it2 = (pointer)p->in_tables[2];
 
5276
        pointer it3 = (pointer)p->in_tables[3];
 
5277
        pointer ot0 = (pointer)p->out_tables[0];
 
5278
        pointer ot1 = (pointer)p->out_tables[1];
 
5279
        pointer ot2 = (pointer)p->out_tables[2];
 
5280
        pointer ot3 = (pointer)p->out_tables[3];
 
5281
        pointer sw_base = (pointer)p->sw_table;
 
5282
        pointer im_base = (pointer)p->im_table;
 
5283
 
 
5284
        for(;ip0 < ep; ip0 += 4, op0 += 4) {
 
5285
                unsigned int ova0;      /* Output value accumulator */
 
5286
                unsigned int ova1;      /* Output value accumulator */
 
5287
                {
 
5288
                        pointer swp;
 
5289
                        pointer imp;
 
5290
                        {
 
5291
                                unsigned int ti_s;      /* Simplex index variable */
 
5292
                                unsigned int ti_i;      /* Interpolation index variable */
 
5293
 
 
5294
                                ti_i  = IT_IX(it0, ip0[0]);
 
5295
                                ti_s  = IT_SX(it0, ip0[0]);
 
5296
                                ti_i += IT_IX(it1, ip0[1]);
 
5297
                                ti_s += IT_SX(it1, ip0[1]);
 
5298
                                ti_i += IT_IX(it2, ip0[2]);
 
5299
                                ti_s += IT_SX(it2, ip0[2]);
 
5300
                                ti_i += IT_IX(it3, ip0[3]);
 
5301
                                ti_s += IT_SX(it3, ip0[3]);
 
5302
 
 
5303
                                swp = sw_base + SW_O(ti_s);             /* Compute simplex table entry pointer */
 
5304
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
5305
                        }
 
5306
                        {
 
5307
                                unsigned int vof;       /* Vertex offset value */
 
5308
                                unsigned int vwe;       /* Vertex weighting */
 
5309
 
 
5310
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
 
5311
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
 
5312
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
5313
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
5314
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
 
5315
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
 
5316
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
5317
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
5318
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
 
5319
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
 
5320
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
5321
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
5322
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
 
5323
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
 
5324
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
5325
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
5326
                                vof = SX_VO(swp, 4);    /* Read vertex offset value */
 
5327
                                vwe = SX_WE(swp, 4);    /* Read vertex weighting value */
 
5328
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
5329
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
5330
                        }
 
5331
                }
 
5332
                {
 
5333
                        unsigned int oti;       /* Vertex offset value */
 
5334
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
5335
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
5336
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
5337
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
5338
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
5339
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
5340
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
5341
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
5342
                }
 
5343
        }
5441
5344
}
5442
5345
#undef IT_IX
5443
5346
#undef IT_SX
5452
5355
imdi_k17_gen(
5453
5356
genspec *g                      /* structure to be initialised */
5454
5357
) {
5455
 
        static unsigned char data[] = {
5456
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
5457
 
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
5458
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5459
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5460
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5461
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5462
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5463
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
5464
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
5465
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5466
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5467
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5468
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5469
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5470
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5471
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5472
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5473
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5474
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5475
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
5476
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5477
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5478
 
                0x08, 0x00, 0x00, 0x00, 0x4c, 0x69, 0x6e, 0x75, 
5479
 
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5480
 
                0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
5481
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
5482
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5483
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5484
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5485
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5486
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79, 0x72, 
5487
 
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 
5488
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5489
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5490
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5491
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5492
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
5493
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
5494
 
                0x27, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 
5495
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
5496
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
5497
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
5498
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
5499
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
5500
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
5501
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
5502
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
5503
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
5504
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5505
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
5506
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
5507
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x34, 0x5f, 0x34, 0x5f, 
5508
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
5509
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
5510
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
5511
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
5512
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
5513
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
5514
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
5515
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5516
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5517
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5518
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5519
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
5520
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x37, 
5521
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5522
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5523
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
5524
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
5525
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
5526
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
5527
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
5528
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
5529
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
5530
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
5531
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
5532
 
                0x00, 0xf0, 0x04, 0x08 
5533
 
        };      /* Structure image */
5534
 
        
5535
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
5358
        static unsigned char data[] = {
 
5359
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
5360
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
5361
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5362
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5363
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5364
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5365
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5366
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
5367
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
5368
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5369
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5370
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5371
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5372
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5373
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5374
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5375
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5376
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5377
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5378
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
5379
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5380
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5381
                0x08, 0x00, 0x00, 0x00, 0x4c, 0x69, 0x6e, 0x75,
 
5382
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5383
                0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
5384
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
5385
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5386
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5387
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5388
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5389
                0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79, 0x72,
 
5390
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5391
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5392
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5393
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5394
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5395
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
5396
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
5397
                0x27, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00,
 
5398
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
5399
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
5400
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
5401
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
5402
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
5403
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
5404
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
5405
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
5406
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
5407
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5408
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
5409
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
5410
                0x2c, 0xf3, 0xdc, 0xb7, 0x34, 0x5f, 0x34, 0x5f,
 
5411
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
5412
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
5413
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
5414
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
5415
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
5416
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
5417
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
5418
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5419
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5420
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5421
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5422
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
5423
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x37,
 
5424
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5425
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5426
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
5427
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
5428
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
5429
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
5430
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
5431
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
5432
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
5433
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
5434
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
5435
                0x00, 0xf0, 0x04, 0x08
 
5436
        };      /* Structure image */
 
5437
 
 
5438
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
5536
5439
}
5537
5440
 
5538
5441
static void
5539
5442
imdi_k17_tab(
5540
5443
tabspec *t                      /* structure to be initialised */
5541
5444
) {
5542
 
        static unsigned char data[] = {
5543
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
5544
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
5545
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
5546
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
5547
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
5548
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
5549
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5550
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
5551
 
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
5552
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5553
 
                0x14, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
5554
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5555
 
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
5556
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
5557
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
5558
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
5559
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5560
 
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
5561
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5562
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5563
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
5564
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
5565
 
                0xff, 0xff, 0xff, 0x34, 0x00, 0x00, 0x00, 0x00, 
5566
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
5567
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5568
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5569
 
                0x00, 0x00, 0x00, 0x00, 0x52, 0xca, 0x04, 0x08, 
5570
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
5571
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5572
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5573
 
                0x08, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
5574
 
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
5575
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
5576
 
        };      /* Structure image */
5577
 
        
5578
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
5445
        static unsigned char data[] = {
 
5446
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
5447
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
5448
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
5449
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
5450
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
5451
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
5452
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5453
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
5454
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
5455
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5456
                0x14, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
5457
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5458
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
5459
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
5460
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
5461
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
5462
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5463
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
5464
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5465
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5466
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
5467
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
5468
                0xff, 0xff, 0xff, 0x34, 0x00, 0x00, 0x00, 0x00,
 
5469
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
5470
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5471
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5472
                0x00, 0x00, 0x00, 0x00, 0x52, 0xca, 0x04, 0x08,
 
5473
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
5474
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5475
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5476
                0x08, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
5477
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
5478
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
5479
        };      /* Structure image */
 
5480
 
 
5481
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
5579
5482
}
5580
5483
 
5581
 
 
5582
 
 
5583
 
 
5584
 
 
5585
 
 
5586
5484
/* Integer Multi-Dimensional Interpolation */
5587
5485
/* Interpolation Kernel Code */
5588
5486
/* Generated by cgen */
5591
5489
 
5592
5490
/* see the Licence.txt file for licencing details.*/
5593
5491
 
5594
 
 
5595
5492
/*
5596
5493
   Interpolation kernel specs:
5597
5494
 
5682
5579
void **inp,             /* pointer to input pointers */
5683
5580
unsigned int npix       /* Number of pixels to process */
5684
5581
) {
5685
 
        imdi_imp *p = (imdi_imp *)(s->impl);
5686
 
        unsigned char *ip0 = (unsigned char *)inp[0];
5687
 
        unsigned char *op0 = (unsigned char *)outp[0];
5688
 
        unsigned char *ep = ip0 + npix * 5 ;
5689
 
        pointer it0 = (pointer)p->in_tables[0];
5690
 
        pointer it1 = (pointer)p->in_tables[1];
5691
 
        pointer it2 = (pointer)p->in_tables[2];
5692
 
        pointer it3 = (pointer)p->in_tables[3];
5693
 
        pointer it4 = (pointer)p->in_tables[4];
5694
 
        pointer ot0 = (pointer)p->out_tables[0];
5695
 
        pointer ot1 = (pointer)p->out_tables[1];
5696
 
        pointer ot2 = (pointer)p->out_tables[2];
5697
 
        pointer ot3 = (pointer)p->out_tables[3];
5698
 
        pointer im_base = (pointer)p->im_table;
5699
 
        
5700
 
        for(;ip0 < ep; ip0 += 5, op0 += 4) {
5701
 
                unsigned int ova0;      /* Output value accumulator */
5702
 
                unsigned int ova1;      /* Output value accumulator */
5703
 
                {
5704
 
                        pointer imp;
5705
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
5706
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
5707
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
5708
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
5709
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
5710
 
                        {
5711
 
                                unsigned int ti_i;      /* Interpolation index variable */
5712
 
                                
5713
 
                                ti_i  = IT_IX(it0, ip0[0]);
5714
 
                                wo0   = IT_WO(it0, ip0[0]);
5715
 
                                ti_i += IT_IX(it1, ip0[1]);
5716
 
                                wo1   = IT_WO(it1, ip0[1]);
5717
 
                                ti_i += IT_IX(it2, ip0[2]);
5718
 
                                wo2   = IT_WO(it2, ip0[2]);
5719
 
                                ti_i += IT_IX(it3, ip0[3]);
5720
 
                                wo3   = IT_WO(it3, ip0[3]);
5721
 
                                ti_i += IT_IX(it4, ip0[4]);
5722
 
                                wo4   = IT_WO(it4, ip0[4]);
5723
 
                                
5724
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
5725
 
                                
5726
 
                                /* Sort weighting values and vertex offset values */
5727
 
                                CEX(wo0, wo1);
5728
 
                                CEX(wo0, wo2);
5729
 
                                CEX(wo0, wo3);
5730
 
                                CEX(wo0, wo4);
5731
 
                                CEX(wo1, wo2);
5732
 
                                CEX(wo1, wo3);
5733
 
                                CEX(wo1, wo4);
5734
 
                                CEX(wo2, wo3);
5735
 
                                CEX(wo2, wo4);
5736
 
                                CEX(wo3, wo4);
5737
 
                        }
5738
 
                        {
5739
 
                                unsigned int nvof;      /* Next vertex offset value */
5740
 
                                unsigned int vof;       /* Vertex offset value */
5741
 
                                unsigned int vwe;       /* Vertex weighting */
5742
 
                                
5743
 
                                vof = 0;                                /* First vertex offset is 0 */
5744
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
5745
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
5746
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
5747
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
5748
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
5749
 
                                vof += nvof;                    /* Move to next vertex */
5750
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
5751
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
5752
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
5753
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
5754
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
5755
 
                                vof += nvof;                    /* Move to next vertex */
5756
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
5757
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
5758
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
5759
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
5760
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
5761
 
                                vof += nvof;                    /* Move to next vertex */
5762
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
5763
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
5764
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
5765
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
5766
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
5767
 
                                vof += nvof;                    /* Move to next vertex */
5768
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
5769
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
5770
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
5771
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
5772
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
5773
 
                                vof += nvof;                    /* Move to next vertex */
5774
 
                                vwe = wo4;                              /* Baricentric weighting */
5775
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
5776
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
5777
 
                        }
5778
 
                }
5779
 
                {
5780
 
                        unsigned int oti;       /* Vertex offset value */
5781
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
5782
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
5783
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
5784
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
5785
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
5786
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
5787
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
5788
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
5789
 
                }
5790
 
        }
 
5582
        imdi_imp *p = (imdi_imp *)(s->impl);
 
5583
        unsigned char *ip0 = (unsigned char *)inp[0];
 
5584
        unsigned char *op0 = (unsigned char *)outp[0];
 
5585
        unsigned char *ep = ip0 + npix * 5 ;
 
5586
        pointer it0 = (pointer)p->in_tables[0];
 
5587
        pointer it1 = (pointer)p->in_tables[1];
 
5588
        pointer it2 = (pointer)p->in_tables[2];
 
5589
        pointer it3 = (pointer)p->in_tables[3];
 
5590
        pointer it4 = (pointer)p->in_tables[4];
 
5591
        pointer ot0 = (pointer)p->out_tables[0];
 
5592
        pointer ot1 = (pointer)p->out_tables[1];
 
5593
        pointer ot2 = (pointer)p->out_tables[2];
 
5594
        pointer ot3 = (pointer)p->out_tables[3];
 
5595
        pointer im_base = (pointer)p->im_table;
 
5596
 
 
5597
        for(;ip0 < ep; ip0 += 5, op0 += 4) {
 
5598
                unsigned int ova0;      /* Output value accumulator */
 
5599
                unsigned int ova1;      /* Output value accumulator */
 
5600
                {
 
5601
                        pointer imp;
 
5602
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
5603
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
5604
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
5605
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
5606
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
5607
                        {
 
5608
                                unsigned int ti_i;      /* Interpolation index variable */
 
5609
 
 
5610
                                ti_i  = IT_IX(it0, ip0[0]);
 
5611
                                wo0   = IT_WO(it0, ip0[0]);
 
5612
                                ti_i += IT_IX(it1, ip0[1]);
 
5613
                                wo1   = IT_WO(it1, ip0[1]);
 
5614
                                ti_i += IT_IX(it2, ip0[2]);
 
5615
                                wo2   = IT_WO(it2, ip0[2]);
 
5616
                                ti_i += IT_IX(it3, ip0[3]);
 
5617
                                wo3   = IT_WO(it3, ip0[3]);
 
5618
                                ti_i += IT_IX(it4, ip0[4]);
 
5619
                                wo4   = IT_WO(it4, ip0[4]);
 
5620
 
 
5621
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
5622
 
 
5623
                                /* Sort weighting values and vertex offset values */
 
5624
                                CEX(wo0, wo1);
 
5625
                                CEX(wo0, wo2);
 
5626
                                CEX(wo0, wo3);
 
5627
                                CEX(wo0, wo4);
 
5628
                                CEX(wo1, wo2);
 
5629
                                CEX(wo1, wo3);
 
5630
                                CEX(wo1, wo4);
 
5631
                                CEX(wo2, wo3);
 
5632
                                CEX(wo2, wo4);
 
5633
                                CEX(wo3, wo4);
 
5634
                        }
 
5635
                        {
 
5636
                                unsigned int nvof;      /* Next vertex offset value */
 
5637
                                unsigned int vof;       /* Vertex offset value */
 
5638
                                unsigned int vwe;       /* Vertex weighting */
 
5639
 
 
5640
                                vof = 0;                                /* First vertex offset is 0 */
 
5641
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
5642
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
5643
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
5644
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
5645
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
5646
                                vof += nvof;                    /* Move to next vertex */
 
5647
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
5648
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
5649
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
5650
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
5651
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
5652
                                vof += nvof;                    /* Move to next vertex */
 
5653
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
5654
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
5655
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
5656
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
5657
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
5658
                                vof += nvof;                    /* Move to next vertex */
 
5659
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
5660
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
5661
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
5662
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
5663
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
5664
                                vof += nvof;                    /* Move to next vertex */
 
5665
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
5666
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
5667
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
5668
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
5669
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
5670
                                vof += nvof;                    /* Move to next vertex */
 
5671
                                vwe = wo4;                              /* Baricentric weighting */
 
5672
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
5673
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
5674
                        }
 
5675
                }
 
5676
                {
 
5677
                        unsigned int oti;       /* Vertex offset value */
 
5678
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
5679
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
5680
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
5681
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
5682
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
5683
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
5684
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
5685
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
5686
                }
 
5687
        }
5791
5688
}
5792
5689
#undef IT_WO
5793
5690
#undef IT_IX
5800
5697
imdi_k18_gen(
5801
5698
genspec *g                      /* structure to be initialised */
5802
5699
) {
5803
 
        static unsigned char data[] = {
5804
 
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
5805
 
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
5806
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5807
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5808
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5809
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5810
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5811
 
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
5812
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
5813
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
5814
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5815
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5816
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5817
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5818
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5819
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5820
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5821
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5822
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5823
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
5824
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5825
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5826
 
                0x08, 0x00, 0x00, 0x00, 0x4c, 0x69, 0x6e, 0x75, 
5827
 
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5828
 
                0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
5829
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
5830
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5831
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5832
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5833
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5834
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79, 0x72, 
5835
 
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 
5836
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5837
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5838
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5839
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5840
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
5841
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
5842
 
                0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5843
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
5844
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
5845
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
5846
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
5847
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
5848
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
5849
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
5850
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
5851
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
5852
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5853
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
5854
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
5855
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x35, 0x5f, 0x34, 0x5f, 
5856
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
5857
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
5858
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
5859
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
5860
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
5861
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
5862
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
5863
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5864
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5865
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5866
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5867
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
5868
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x38, 
5869
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5870
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5871
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
5872
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
5873
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
5874
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
5875
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
5876
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
5877
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
5878
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
5879
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
5880
 
                0x00, 0xf0, 0x04, 0x08 
5881
 
        };      /* Structure image */
5882
 
        
5883
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
5700
        static unsigned char data[] = {
 
5701
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
5702
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
5703
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5704
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5705
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5706
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5707
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5708
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
5709
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
5710
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
5711
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5712
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5713
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5714
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5715
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5716
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5717
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5718
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5719
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5720
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
5721
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5722
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5723
                0x08, 0x00, 0x00, 0x00, 0x4c, 0x69, 0x6e, 0x75,
 
5724
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5725
                0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
5726
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
5727
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5728
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5729
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5730
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5731
                0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79, 0x72,
 
5732
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5733
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5734
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5735
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5736
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5737
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
5738
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
5739
                0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5740
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
5741
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
5742
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
5743
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
5744
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
5745
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
5746
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
5747
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
5748
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
5749
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5750
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
5751
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
5752
                0x2c, 0xf3, 0xdc, 0xb7, 0x35, 0x5f, 0x34, 0x5f,
 
5753
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
5754
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
5755
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
5756
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
5757
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
5758
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
5759
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
5760
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5761
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5762
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5763
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5764
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
5765
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x38,
 
5766
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5767
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5768
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
5769
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
5770
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
5771
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
5772
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
5773
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
5774
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
5775
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
5776
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
5777
                0x00, 0xf0, 0x04, 0x08
 
5778
        };      /* Structure image */
 
5779
 
 
5780
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
5884
5781
}
5885
5782
 
5886
5783
static void
5887
5784
imdi_k18_tab(
5888
5785
tabspec *t                      /* structure to be initialised */
5889
5786
) {
5890
 
        static unsigned char data[] = {
5891
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
5892
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
5893
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
5894
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
5895
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
5896
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
5897
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5898
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
5899
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
5900
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5901
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
5902
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
5903
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
5904
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
5905
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
5906
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
5907
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5908
 
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
5909
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5910
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5911
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
5912
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
5913
 
                0xff, 0xff, 0xff, 0x34, 0x00, 0x00, 0x00, 0x00, 
5914
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
5915
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5916
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
5917
 
                0x00, 0x00, 0x00, 0x00, 0x52, 0xca, 0x04, 0x08, 
5918
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
5919
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5920
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
5921
 
                0x08, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
5922
 
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
5923
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
5924
 
        };      /* Structure image */
5925
 
        
5926
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
5787
        static unsigned char data[] = {
 
5788
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
5789
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
5790
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
5791
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
5792
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
5793
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
5794
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5795
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
5796
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
5797
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5798
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
5799
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
5800
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
5801
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
5802
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
5803
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
5804
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5805
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
5806
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5807
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5808
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
5809
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
5810
                0xff, 0xff, 0xff, 0x34, 0x00, 0x00, 0x00, 0x00,
 
5811
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
5812
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5813
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
5814
                0x00, 0x00, 0x00, 0x00, 0x52, 0xca, 0x04, 0x08,
 
5815
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
5816
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5817
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
5818
                0x08, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
5819
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
5820
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
5821
        };      /* Structure image */
 
5822
 
 
5823
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
5927
5824
}
5928
5825
 
5929
 
 
5930
 
 
5931
 
 
5932
 
 
5933
 
 
5934
5826
/* Integer Multi-Dimensional Interpolation */
5935
5827
/* Interpolation Kernel Code */
5936
5828
/* Generated by cgen */
5939
5831
 
5940
5832
/* see the Licence.txt file for licencing details.*/
5941
5833
 
5942
 
 
5943
5834
/*
5944
5835
   Interpolation kernel specs:
5945
5836
 
6032
5923
void **inp,             /* pointer to input pointers */
6033
5924
unsigned int npix       /* Number of pixels to process */
6034
5925
) {
6035
 
        imdi_imp *p = (imdi_imp *)(s->impl);
6036
 
        unsigned char *ip0 = (unsigned char *)inp[0];
6037
 
        unsigned char *op0 = (unsigned char *)outp[0];
6038
 
        unsigned char *ep = ip0 + npix * 6 ;
6039
 
        pointer it0 = (pointer)p->in_tables[0];
6040
 
        pointer it1 = (pointer)p->in_tables[1];
6041
 
        pointer it2 = (pointer)p->in_tables[2];
6042
 
        pointer it3 = (pointer)p->in_tables[3];
6043
 
        pointer it4 = (pointer)p->in_tables[4];
6044
 
        pointer it5 = (pointer)p->in_tables[5];
6045
 
        pointer ot0 = (pointer)p->out_tables[0];
6046
 
        pointer ot1 = (pointer)p->out_tables[1];
6047
 
        pointer ot2 = (pointer)p->out_tables[2];
6048
 
        pointer ot3 = (pointer)p->out_tables[3];
6049
 
        pointer im_base = (pointer)p->im_table;
6050
 
        
6051
 
        for(;ip0 < ep; ip0 += 6, op0 += 4) {
6052
 
                unsigned int ova0;      /* Output value accumulator */
6053
 
                unsigned int ova1;      /* Output value accumulator */
6054
 
                {
6055
 
                        pointer imp;
6056
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
6057
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
6058
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
6059
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
6060
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
6061
 
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
6062
 
                        {
6063
 
                                unsigned int ti_i;      /* Interpolation index variable */
6064
 
                                
6065
 
                                ti_i  = IT_IX(it0, ip0[0]);
6066
 
                                wo0   = IT_WO(it0, ip0[0]);
6067
 
                                ti_i += IT_IX(it1, ip0[1]);
6068
 
                                wo1   = IT_WO(it1, ip0[1]);
6069
 
                                ti_i += IT_IX(it2, ip0[2]);
6070
 
                                wo2   = IT_WO(it2, ip0[2]);
6071
 
                                ti_i += IT_IX(it3, ip0[3]);
6072
 
                                wo3   = IT_WO(it3, ip0[3]);
6073
 
                                ti_i += IT_IX(it4, ip0[4]);
6074
 
                                wo4   = IT_WO(it4, ip0[4]);
6075
 
                                ti_i += IT_IX(it5, ip0[5]);
6076
 
                                wo5   = IT_WO(it5, ip0[5]);
6077
 
                                
6078
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
6079
 
                                
6080
 
                                /* Sort weighting values and vertex offset values */
6081
 
                                CEX(wo0, wo1);
6082
 
                                CEX(wo0, wo2);
6083
 
                                CEX(wo0, wo3);
6084
 
                                CEX(wo0, wo4);
6085
 
                                CEX(wo0, wo5);
6086
 
                                CEX(wo1, wo2);
6087
 
                                CEX(wo1, wo3);
6088
 
                                CEX(wo1, wo4);
6089
 
                                CEX(wo1, wo5);
6090
 
                                CEX(wo2, wo3);
6091
 
                                CEX(wo2, wo4);
6092
 
                                CEX(wo2, wo5);
6093
 
                                CEX(wo3, wo4);
6094
 
                                CEX(wo3, wo5);
6095
 
                                CEX(wo4, wo5);
6096
 
                        }
6097
 
                        {
6098
 
                                unsigned int nvof;      /* Next vertex offset value */
6099
 
                                unsigned int vof;       /* Vertex offset value */
6100
 
                                unsigned int vwe;       /* Vertex weighting */
6101
 
                                
6102
 
                                vof = 0;                                /* First vertex offset is 0 */
6103
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
6104
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
6105
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
6106
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
6107
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
6108
 
                                vof += nvof;                    /* Move to next vertex */
6109
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
6110
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
6111
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
6112
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
6113
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
6114
 
                                vof += nvof;                    /* Move to next vertex */
6115
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
6116
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
6117
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
6118
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
6119
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
6120
 
                                vof += nvof;                    /* Move to next vertex */
6121
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
6122
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
6123
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
6124
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
6125
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
6126
 
                                vof += nvof;                    /* Move to next vertex */
6127
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
6128
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
6129
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
6130
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
6131
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
6132
 
                                vof += nvof;                    /* Move to next vertex */
6133
 
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
6134
 
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
6135
 
                                vwe = wo4 - wo5;                /* Baricentric weighting */
6136
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
6137
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
6138
 
                                vof += nvof;                    /* Move to next vertex */
6139
 
                                vwe = wo5;                              /* Baricentric weighting */
6140
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
6141
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
6142
 
                        }
6143
 
                }
6144
 
                {
6145
 
                        unsigned int oti;       /* Vertex offset value */
6146
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
6147
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
6148
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
6149
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
6150
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
6151
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
6152
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
6153
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
6154
 
                }
6155
 
        }
 
5926
        imdi_imp *p = (imdi_imp *)(s->impl);
 
5927
        unsigned char *ip0 = (unsigned char *)inp[0];
 
5928
        unsigned char *op0 = (unsigned char *)outp[0];
 
5929
        unsigned char *ep = ip0 + npix * 6 ;
 
5930
        pointer it0 = (pointer)p->in_tables[0];
 
5931
        pointer it1 = (pointer)p->in_tables[1];
 
5932
        pointer it2 = (pointer)p->in_tables[2];
 
5933
        pointer it3 = (pointer)p->in_tables[3];
 
5934
        pointer it4 = (pointer)p->in_tables[4];
 
5935
        pointer it5 = (pointer)p->in_tables[5];
 
5936
        pointer ot0 = (pointer)p->out_tables[0];
 
5937
        pointer ot1 = (pointer)p->out_tables[1];
 
5938
        pointer ot2 = (pointer)p->out_tables[2];
 
5939
        pointer ot3 = (pointer)p->out_tables[3];
 
5940
        pointer im_base = (pointer)p->im_table;
 
5941
 
 
5942
        for(;ip0 < ep; ip0 += 6, op0 += 4) {
 
5943
                unsigned int ova0;      /* Output value accumulator */
 
5944
                unsigned int ova1;      /* Output value accumulator */
 
5945
                {
 
5946
                        pointer imp;
 
5947
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
5948
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
5949
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
5950
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
5951
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
5952
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
 
5953
                        {
 
5954
                                unsigned int ti_i;      /* Interpolation index variable */
 
5955
 
 
5956
                                ti_i  = IT_IX(it0, ip0[0]);
 
5957
                                wo0   = IT_WO(it0, ip0[0]);
 
5958
                                ti_i += IT_IX(it1, ip0[1]);
 
5959
                                wo1   = IT_WO(it1, ip0[1]);
 
5960
                                ti_i += IT_IX(it2, ip0[2]);
 
5961
                                wo2   = IT_WO(it2, ip0[2]);
 
5962
                                ti_i += IT_IX(it3, ip0[3]);
 
5963
                                wo3   = IT_WO(it3, ip0[3]);
 
5964
                                ti_i += IT_IX(it4, ip0[4]);
 
5965
                                wo4   = IT_WO(it4, ip0[4]);
 
5966
                                ti_i += IT_IX(it5, ip0[5]);
 
5967
                                wo5   = IT_WO(it5, ip0[5]);
 
5968
 
 
5969
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
5970
 
 
5971
                                /* Sort weighting values and vertex offset values */
 
5972
                                CEX(wo0, wo1);
 
5973
                                CEX(wo0, wo2);
 
5974
                                CEX(wo0, wo3);
 
5975
                                CEX(wo0, wo4);
 
5976
                                CEX(wo0, wo5);
 
5977
                                CEX(wo1, wo2);
 
5978
                                CEX(wo1, wo3);
 
5979
                                CEX(wo1, wo4);
 
5980
                                CEX(wo1, wo5);
 
5981
                                CEX(wo2, wo3);
 
5982
                                CEX(wo2, wo4);
 
5983
                                CEX(wo2, wo5);
 
5984
                                CEX(wo3, wo4);
 
5985
                                CEX(wo3, wo5);
 
5986
                                CEX(wo4, wo5);
 
5987
                        }
 
5988
                        {
 
5989
                                unsigned int nvof;      /* Next vertex offset value */
 
5990
                                unsigned int vof;       /* Vertex offset value */
 
5991
                                unsigned int vwe;       /* Vertex weighting */
 
5992
 
 
5993
                                vof = 0;                                /* First vertex offset is 0 */
 
5994
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
5995
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
5996
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
5997
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
5998
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
5999
                                vof += nvof;                    /* Move to next vertex */
 
6000
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
6001
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
6002
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
6003
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
6004
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
6005
                                vof += nvof;                    /* Move to next vertex */
 
6006
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
6007
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
6008
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
6009
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
6010
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
6011
                                vof += nvof;                    /* Move to next vertex */
 
6012
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
6013
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
6014
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
6015
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
6016
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
6017
                                vof += nvof;                    /* Move to next vertex */
 
6018
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
6019
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
6020
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
6021
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
6022
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
6023
                                vof += nvof;                    /* Move to next vertex */
 
6024
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
 
6025
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
 
6026
                                vwe = wo4 - wo5;                /* Baricentric weighting */
 
6027
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
6028
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
6029
                                vof += nvof;                    /* Move to next vertex */
 
6030
                                vwe = wo5;                              /* Baricentric weighting */
 
6031
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
6032
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
6033
                        }
 
6034
                }
 
6035
                {
 
6036
                        unsigned int oti;       /* Vertex offset value */
 
6037
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
6038
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
6039
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
6040
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
6041
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
6042
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
6043
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
6044
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
6045
                }
 
6046
        }
6156
6047
}
6157
6048
#undef IT_WO
6158
6049
#undef IT_IX
6165
6056
imdi_k19_gen(
6166
6057
genspec *g                      /* structure to be initialised */
6167
6058
) {
6168
 
        static unsigned char data[] = {
6169
 
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
6170
 
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
6171
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6172
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6173
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6174
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6175
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6176
 
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
6177
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
6178
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
6179
 
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6180
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6181
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6182
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6183
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6184
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6185
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6186
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6187
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6188
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
6189
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6190
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6191
 
                0x08, 0x00, 0x00, 0x00, 0x4c, 0x69, 0x6e, 0x75, 
6192
 
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6193
 
                0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
6194
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
6195
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6196
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6197
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6198
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6199
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79, 0x72, 
6200
 
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 
6201
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6202
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6203
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6204
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6205
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
6206
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
6207
 
                0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6208
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
6209
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
6210
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
6211
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
6212
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
6213
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
6214
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
6215
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
6216
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
6217
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6218
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
6219
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
6220
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x36, 0x5f, 0x34, 0x5f, 
6221
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
6222
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
6223
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
6224
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
6225
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
6226
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
6227
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
6228
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6229
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6230
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6231
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6232
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
6233
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x39, 
6234
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6235
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6236
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
6237
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
6238
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
6239
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
6240
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
6241
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
6242
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
6243
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
6244
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
6245
 
                0x00, 0xf0, 0x04, 0x08 
6246
 
        };      /* Structure image */
6247
 
        
6248
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
6059
        static unsigned char data[] = {
 
6060
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
6061
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
6062
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6063
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6064
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6065
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6066
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6067
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
6068
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
6069
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
6070
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6071
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6072
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6073
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6074
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6075
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6076
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6077
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6078
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6079
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
6080
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6081
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6082
                0x08, 0x00, 0x00, 0x00, 0x4c, 0x69, 0x6e, 0x75,
 
6083
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6084
                0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
6085
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
6086
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6087
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6088
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6089
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6090
                0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79, 0x72,
 
6091
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6092
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6093
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6094
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6095
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6096
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
6097
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
6098
                0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6099
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
6100
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
6101
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
6102
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
6103
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
6104
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
6105
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
6106
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
6107
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
6108
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6109
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
6110
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
6111
                0x2c, 0xf3, 0xdc, 0xb7, 0x36, 0x5f, 0x34, 0x5f,
 
6112
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
6113
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
6114
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
6115
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
6116
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
6117
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
6118
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
6119
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6120
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6121
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6122
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6123
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
6124
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x39,
 
6125
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6126
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6127
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
6128
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
6129
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
6130
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
6131
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
6132
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
6133
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
6134
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
6135
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
6136
                0x00, 0xf0, 0x04, 0x08
 
6137
        };      /* Structure image */
 
6138
 
 
6139
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
6249
6140
}
6250
6141
 
6251
6142
static void
6252
6143
imdi_k19_tab(
6253
6144
tabspec *t                      /* structure to be initialised */
6254
6145
) {
6255
 
        static unsigned char data[] = {
6256
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
6257
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
6258
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
6259
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
6260
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
6261
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
6262
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6263
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
6264
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
6265
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6266
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
6267
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
6268
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
6269
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
6270
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
6271
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
6272
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6273
 
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
6274
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6275
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6276
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
6277
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
6278
 
                0xff, 0xff, 0xff, 0x34, 0x00, 0x00, 0x00, 0x00, 
6279
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
6280
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6281
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6282
 
                0x00, 0x00, 0x00, 0x00, 0x52, 0xca, 0x04, 0x08, 
6283
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
6284
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6285
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6286
 
                0x08, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
6287
 
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
6288
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
6289
 
        };      /* Structure image */
6290
 
        
6291
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
6146
        static unsigned char data[] = {
 
6147
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
6148
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
6149
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
6150
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
6151
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
6152
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
6153
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6154
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
6155
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
6156
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6157
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
6158
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
6159
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
6160
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
6161
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
6162
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
6163
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6164
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
6165
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6166
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6167
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
6168
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
6169
                0xff, 0xff, 0xff, 0x34, 0x00, 0x00, 0x00, 0x00,
 
6170
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
6171
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6172
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6173
                0x00, 0x00, 0x00, 0x00, 0x52, 0xca, 0x04, 0x08,
 
6174
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
6175
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6176
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6177
                0x08, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
6178
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
6179
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
6180
        };      /* Structure image */
 
6181
 
 
6182
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
6292
6183
}
6293
6184
 
6294
 
 
6295
 
 
6296
 
 
6297
 
 
6298
 
 
6299
6185
/* Integer Multi-Dimensional Interpolation */
6300
6186
/* Interpolation Kernel Code */
6301
6187
/* Generated by cgen */
6304
6190
 
6305
6191
/* see the Licence.txt file for licencing details.*/
6306
6192
 
6307
 
 
6308
6193
/*
6309
6194
   Interpolation kernel specs:
6310
6195
 
6399
6284
void **inp,             /* pointer to input pointers */
6400
6285
unsigned int npix       /* Number of pixels to process */
6401
6286
) {
6402
 
        imdi_imp *p = (imdi_imp *)(s->impl);
6403
 
        unsigned char *ip0 = (unsigned char *)inp[0];
6404
 
        unsigned char *op0 = (unsigned char *)outp[0];
6405
 
        unsigned char *ep = ip0 + npix * 7 ;
6406
 
        pointer it0 = (pointer)p->in_tables[0];
6407
 
        pointer it1 = (pointer)p->in_tables[1];
6408
 
        pointer it2 = (pointer)p->in_tables[2];
6409
 
        pointer it3 = (pointer)p->in_tables[3];
6410
 
        pointer it4 = (pointer)p->in_tables[4];
6411
 
        pointer it5 = (pointer)p->in_tables[5];
6412
 
        pointer it6 = (pointer)p->in_tables[6];
6413
 
        pointer ot0 = (pointer)p->out_tables[0];
6414
 
        pointer ot1 = (pointer)p->out_tables[1];
6415
 
        pointer ot2 = (pointer)p->out_tables[2];
6416
 
        pointer ot3 = (pointer)p->out_tables[3];
6417
 
        pointer im_base = (pointer)p->im_table;
6418
 
        
6419
 
        for(;ip0 < ep; ip0 += 7, op0 += 4) {
6420
 
                unsigned int ova0;      /* Output value accumulator */
6421
 
                unsigned int ova1;      /* Output value accumulator */
6422
 
                {
6423
 
                        pointer imp;
6424
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
6425
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
6426
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
6427
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
6428
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
6429
 
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
6430
 
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
6431
 
                        {
6432
 
                                unsigned int ti_i;      /* Interpolation index variable */
6433
 
                                
6434
 
                                ti_i  = IT_IX(it0, ip0[0]);
6435
 
                                wo0   = IT_WO(it0, ip0[0]);
6436
 
                                ti_i += IT_IX(it1, ip0[1]);
6437
 
                                wo1   = IT_WO(it1, ip0[1]);
6438
 
                                ti_i += IT_IX(it2, ip0[2]);
6439
 
                                wo2   = IT_WO(it2, ip0[2]);
6440
 
                                ti_i += IT_IX(it3, ip0[3]);
6441
 
                                wo3   = IT_WO(it3, ip0[3]);
6442
 
                                ti_i += IT_IX(it4, ip0[4]);
6443
 
                                wo4   = IT_WO(it4, ip0[4]);
6444
 
                                ti_i += IT_IX(it5, ip0[5]);
6445
 
                                wo5   = IT_WO(it5, ip0[5]);
6446
 
                                ti_i += IT_IX(it6, ip0[6]);
6447
 
                                wo6   = IT_WO(it6, ip0[6]);
6448
 
                                
6449
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
6450
 
                                
6451
 
                                /* Sort weighting values and vertex offset values */
6452
 
                                CEX(wo0, wo1);
6453
 
                                CEX(wo0, wo2);
6454
 
                                CEX(wo0, wo3);
6455
 
                                CEX(wo0, wo4);
6456
 
                                CEX(wo0, wo5);
6457
 
                                CEX(wo0, wo6);
6458
 
                                CEX(wo1, wo2);
6459
 
                                CEX(wo1, wo3);
6460
 
                                CEX(wo1, wo4);
6461
 
                                CEX(wo1, wo5);
6462
 
                                CEX(wo1, wo6);
6463
 
                                CEX(wo2, wo3);
6464
 
                                CEX(wo2, wo4);
6465
 
                                CEX(wo2, wo5);
6466
 
                                CEX(wo2, wo6);
6467
 
                                CEX(wo3, wo4);
6468
 
                                CEX(wo3, wo5);
6469
 
                                CEX(wo3, wo6);
6470
 
                                CEX(wo4, wo5);
6471
 
                                CEX(wo4, wo6);
6472
 
                                CEX(wo5, wo6);
6473
 
                        }
6474
 
                        {
6475
 
                                unsigned int nvof;      /* Next vertex offset value */
6476
 
                                unsigned int vof;       /* Vertex offset value */
6477
 
                                unsigned int vwe;       /* Vertex weighting */
6478
 
                                
6479
 
                                vof = 0;                                /* First vertex offset is 0 */
6480
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
6481
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
6482
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
6483
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
6484
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
6485
 
                                vof += nvof;                    /* Move to next vertex */
6486
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
6487
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
6488
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
6489
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
6490
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
6491
 
                                vof += nvof;                    /* Move to next vertex */
6492
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
6493
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
6494
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
6495
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
6496
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
6497
 
                                vof += nvof;                    /* Move to next vertex */
6498
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
6499
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
6500
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
6501
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
6502
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
6503
 
                                vof += nvof;                    /* Move to next vertex */
6504
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
6505
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
6506
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
6507
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
6508
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
6509
 
                                vof += nvof;                    /* Move to next vertex */
6510
 
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
6511
 
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
6512
 
                                vwe = wo4 - wo5;                /* Baricentric weighting */
6513
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
6514
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
6515
 
                                vof += nvof;                    /* Move to next vertex */
6516
 
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
6517
 
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
6518
 
                                vwe = wo5 - wo6;                /* Baricentric weighting */
6519
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
6520
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
6521
 
                                vof += nvof;                    /* Move to next vertex */
6522
 
                                vwe = wo6;                              /* Baricentric weighting */
6523
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
6524
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
6525
 
                        }
6526
 
                }
6527
 
                {
6528
 
                        unsigned int oti;       /* Vertex offset value */
6529
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
6530
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
6531
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
6532
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
6533
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
6534
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
6535
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
6536
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
6537
 
                }
6538
 
        }
 
6287
        imdi_imp *p = (imdi_imp *)(s->impl);
 
6288
        unsigned char *ip0 = (unsigned char *)inp[0];
 
6289
        unsigned char *op0 = (unsigned char *)outp[0];
 
6290
        unsigned char *ep = ip0 + npix * 7 ;
 
6291
        pointer it0 = (pointer)p->in_tables[0];
 
6292
        pointer it1 = (pointer)p->in_tables[1];
 
6293
        pointer it2 = (pointer)p->in_tables[2];
 
6294
        pointer it3 = (pointer)p->in_tables[3];
 
6295
        pointer it4 = (pointer)p->in_tables[4];
 
6296
        pointer it5 = (pointer)p->in_tables[5];
 
6297
        pointer it6 = (pointer)p->in_tables[6];
 
6298
        pointer ot0 = (pointer)p->out_tables[0];
 
6299
        pointer ot1 = (pointer)p->out_tables[1];
 
6300
        pointer ot2 = (pointer)p->out_tables[2];
 
6301
        pointer ot3 = (pointer)p->out_tables[3];
 
6302
        pointer im_base = (pointer)p->im_table;
 
6303
 
 
6304
        for(;ip0 < ep; ip0 += 7, op0 += 4) {
 
6305
                unsigned int ova0;      /* Output value accumulator */
 
6306
                unsigned int ova1;      /* Output value accumulator */
 
6307
                {
 
6308
                        pointer imp;
 
6309
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
6310
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
6311
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
6312
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
6313
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
6314
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
 
6315
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
 
6316
                        {
 
6317
                                unsigned int ti_i;      /* Interpolation index variable */
 
6318
 
 
6319
                                ti_i  = IT_IX(it0, ip0[0]);
 
6320
                                wo0   = IT_WO(it0, ip0[0]);
 
6321
                                ti_i += IT_IX(it1, ip0[1]);
 
6322
                                wo1   = IT_WO(it1, ip0[1]);
 
6323
                                ti_i += IT_IX(it2, ip0[2]);
 
6324
                                wo2   = IT_WO(it2, ip0[2]);
 
6325
                                ti_i += IT_IX(it3, ip0[3]);
 
6326
                                wo3   = IT_WO(it3, ip0[3]);
 
6327
                                ti_i += IT_IX(it4, ip0[4]);
 
6328
                                wo4   = IT_WO(it4, ip0[4]);
 
6329
                                ti_i += IT_IX(it5, ip0[5]);
 
6330
                                wo5   = IT_WO(it5, ip0[5]);
 
6331
                                ti_i += IT_IX(it6, ip0[6]);
 
6332
                                wo6   = IT_WO(it6, ip0[6]);
 
6333
 
 
6334
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
6335
 
 
6336
                                /* Sort weighting values and vertex offset values */
 
6337
                                CEX(wo0, wo1);
 
6338
                                CEX(wo0, wo2);
 
6339
                                CEX(wo0, wo3);
 
6340
                                CEX(wo0, wo4);
 
6341
                                CEX(wo0, wo5);
 
6342
                                CEX(wo0, wo6);
 
6343
                                CEX(wo1, wo2);
 
6344
                                CEX(wo1, wo3);
 
6345
                                CEX(wo1, wo4);
 
6346
                                CEX(wo1, wo5);
 
6347
                                CEX(wo1, wo6);
 
6348
                                CEX(wo2, wo3);
 
6349
                                CEX(wo2, wo4);
 
6350
                                CEX(wo2, wo5);
 
6351
                                CEX(wo2, wo6);
 
6352
                                CEX(wo3, wo4);
 
6353
                                CEX(wo3, wo5);
 
6354
                                CEX(wo3, wo6);
 
6355
                                CEX(wo4, wo5);
 
6356
                                CEX(wo4, wo6);
 
6357
                                CEX(wo5, wo6);
 
6358
                        }
 
6359
                        {
 
6360
                                unsigned int nvof;      /* Next vertex offset value */
 
6361
                                unsigned int vof;       /* Vertex offset value */
 
6362
                                unsigned int vwe;       /* Vertex weighting */
 
6363
 
 
6364
                                vof = 0;                                /* First vertex offset is 0 */
 
6365
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
6366
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
6367
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
6368
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
6369
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
6370
                                vof += nvof;                    /* Move to next vertex */
 
6371
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
6372
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
6373
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
6374
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
6375
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
6376
                                vof += nvof;                    /* Move to next vertex */
 
6377
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
6378
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
6379
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
6380
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
6381
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
6382
                                vof += nvof;                    /* Move to next vertex */
 
6383
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
6384
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
6385
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
6386
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
6387
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
6388
                                vof += nvof;                    /* Move to next vertex */
 
6389
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
6390
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
6391
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
6392
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
6393
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
6394
                                vof += nvof;                    /* Move to next vertex */
 
6395
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
 
6396
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
 
6397
                                vwe = wo4 - wo5;                /* Baricentric weighting */
 
6398
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
6399
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
6400
                                vof += nvof;                    /* Move to next vertex */
 
6401
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
 
6402
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
 
6403
                                vwe = wo5 - wo6;                /* Baricentric weighting */
 
6404
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
6405
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
6406
                                vof += nvof;                    /* Move to next vertex */
 
6407
                                vwe = wo6;                              /* Baricentric weighting */
 
6408
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
6409
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
6410
                        }
 
6411
                }
 
6412
                {
 
6413
                        unsigned int oti;       /* Vertex offset value */
 
6414
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
6415
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
6416
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
6417
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
6418
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
6419
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
6420
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
6421
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
6422
                }
 
6423
        }
6539
6424
}
6540
6425
#undef IT_WO
6541
6426
#undef IT_IX
6548
6433
imdi_k20_gen(
6549
6434
genspec *g                      /* structure to be initialised */
6550
6435
) {
6551
 
        static unsigned char data[] = {
6552
 
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
6553
 
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
6554
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6555
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6556
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6557
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6558
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6559
 
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
6560
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
6561
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
6562
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
6563
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6564
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6565
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6566
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6567
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6568
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6569
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6570
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6571
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
6572
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6573
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6574
 
                0x08, 0x00, 0x00, 0x00, 0x4c, 0x69, 0x6e, 0x75, 
6575
 
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6576
 
                0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
6577
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
6578
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6579
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6580
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6581
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6582
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79, 0x72, 
6583
 
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 
6584
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6585
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6586
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6587
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6588
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
6589
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
6590
 
                0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6591
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
6592
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
6593
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
6594
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
6595
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
6596
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
6597
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
6598
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
6599
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
6600
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6601
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
6602
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
6603
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x37, 0x5f, 0x34, 0x5f, 
6604
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
6605
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
6606
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
6607
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
6608
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
6609
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
6610
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
6611
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6612
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6613
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6614
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6615
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
6616
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x32, 0x30, 
6617
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6618
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6619
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
6620
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
6621
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
6622
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
6623
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
6624
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
6625
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
6626
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
6627
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
6628
 
                0x00, 0xf0, 0x04, 0x08 
6629
 
        };      /* Structure image */
6630
 
        
6631
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
6436
        static unsigned char data[] = {
 
6437
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
6438
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
6439
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6440
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6441
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6442
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6443
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6444
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
6445
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
6446
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
6447
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
6448
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6449
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6450
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6451
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6452
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6453
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6454
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6455
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6456
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
6457
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6458
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6459
                0x08, 0x00, 0x00, 0x00, 0x4c, 0x69, 0x6e, 0x75,
 
6460
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6461
                0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
6462
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
6463
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6464
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6465
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6466
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6467
                0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79, 0x72,
 
6468
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6469
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6470
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6471
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6472
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6473
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
6474
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
6475
                0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6476
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
6477
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
6478
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
6479
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
6480
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
6481
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
6482
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
6483
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
6484
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
6485
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6486
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
6487
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
6488
                0x2c, 0xf3, 0xdc, 0xb7, 0x37, 0x5f, 0x34, 0x5f,
 
6489
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
6490
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
6491
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
6492
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
6493
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
6494
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
6495
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
6496
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6497
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6498
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6499
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6500
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
6501
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x32, 0x30,
 
6502
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6503
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6504
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
6505
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
6506
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
6507
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
6508
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
6509
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
6510
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
6511
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
6512
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
6513
                0x00, 0xf0, 0x04, 0x08
 
6514
        };      /* Structure image */
 
6515
 
 
6516
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
6632
6517
}
6633
6518
 
6634
6519
static void
6635
6520
imdi_k20_tab(
6636
6521
tabspec *t                      /* structure to be initialised */
6637
6522
) {
6638
 
        static unsigned char data[] = {
6639
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
6640
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
6641
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
6642
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
6643
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
6644
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
6645
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6646
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
6647
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
6648
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6649
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
6650
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
6651
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
6652
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
6653
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
6654
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
6655
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6656
 
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
6657
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6658
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6659
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
6660
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
6661
 
                0xff, 0xff, 0xff, 0x34, 0x00, 0x00, 0x00, 0x00, 
6662
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
6663
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6664
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6665
 
                0x00, 0x00, 0x00, 0x00, 0x52, 0xca, 0x04, 0x08, 
6666
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
6667
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6668
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6669
 
                0x08, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
6670
 
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
6671
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
6672
 
        };      /* Structure image */
6673
 
        
6674
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
6523
        static unsigned char data[] = {
 
6524
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
6525
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
6526
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
6527
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
6528
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
6529
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
6530
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6531
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
6532
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
6533
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6534
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
6535
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
6536
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
6537
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
6538
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
6539
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
6540
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6541
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
6542
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6543
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6544
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
6545
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
6546
                0xff, 0xff, 0xff, 0x34, 0x00, 0x00, 0x00, 0x00,
 
6547
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
6548
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6549
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6550
                0x00, 0x00, 0x00, 0x00, 0x52, 0xca, 0x04, 0x08,
 
6551
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
6552
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6553
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6554
                0x08, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
6555
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
6556
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
6557
        };      /* Structure image */
 
6558
 
 
6559
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
6675
6560
}
6676
6561
 
6677
 
 
6678
 
 
6679
 
 
6680
 
 
6681
 
 
6682
6562
/* Integer Multi-Dimensional Interpolation */
6683
6563
/* Interpolation Kernel Code */
6684
6564
/* Generated by cgen */
6687
6567
 
6688
6568
/* see the Licence.txt file for licencing details.*/
6689
6569
 
6690
 
 
6691
6570
/*
6692
6571
   Interpolation kernel specs:
6693
6572
 
6784
6663
void **inp,             /* pointer to input pointers */
6785
6664
unsigned int npix       /* Number of pixels to process */
6786
6665
) {
6787
 
        imdi_imp *p = (imdi_imp *)(s->impl);
6788
 
        unsigned char *ip0 = (unsigned char *)inp[0];
6789
 
        unsigned char *op0 = (unsigned char *)outp[0];
6790
 
        unsigned char *ep = ip0 + npix * 8 ;
6791
 
        pointer it0 = (pointer)p->in_tables[0];
6792
 
        pointer it1 = (pointer)p->in_tables[1];
6793
 
        pointer it2 = (pointer)p->in_tables[2];
6794
 
        pointer it3 = (pointer)p->in_tables[3];
6795
 
        pointer it4 = (pointer)p->in_tables[4];
6796
 
        pointer it5 = (pointer)p->in_tables[5];
6797
 
        pointer it6 = (pointer)p->in_tables[6];
6798
 
        pointer it7 = (pointer)p->in_tables[7];
6799
 
        pointer ot0 = (pointer)p->out_tables[0];
6800
 
        pointer ot1 = (pointer)p->out_tables[1];
6801
 
        pointer ot2 = (pointer)p->out_tables[2];
6802
 
        pointer ot3 = (pointer)p->out_tables[3];
6803
 
        pointer im_base = (pointer)p->im_table;
6804
 
        
6805
 
        for(;ip0 < ep; ip0 += 8, op0 += 4) {
6806
 
                unsigned int ova0;      /* Output value accumulator */
6807
 
                unsigned int ova1;      /* Output value accumulator */
6808
 
                {
6809
 
                        pointer imp;
6810
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
6811
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
6812
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
6813
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
6814
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
6815
 
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
6816
 
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
6817
 
                        unsigned int wo7;       /* Weighting value and vertex offset variable */
6818
 
                        {
6819
 
                                unsigned int ti_i;      /* Interpolation index variable */
6820
 
                                
6821
 
                                ti_i  = IT_IX(it0, ip0[0]);
6822
 
                                wo0   = IT_WO(it0, ip0[0]);
6823
 
                                ti_i += IT_IX(it1, ip0[1]);
6824
 
                                wo1   = IT_WO(it1, ip0[1]);
6825
 
                                ti_i += IT_IX(it2, ip0[2]);
6826
 
                                wo2   = IT_WO(it2, ip0[2]);
6827
 
                                ti_i += IT_IX(it3, ip0[3]);
6828
 
                                wo3   = IT_WO(it3, ip0[3]);
6829
 
                                ti_i += IT_IX(it4, ip0[4]);
6830
 
                                wo4   = IT_WO(it4, ip0[4]);
6831
 
                                ti_i += IT_IX(it5, ip0[5]);
6832
 
                                wo5   = IT_WO(it5, ip0[5]);
6833
 
                                ti_i += IT_IX(it6, ip0[6]);
6834
 
                                wo6   = IT_WO(it6, ip0[6]);
6835
 
                                ti_i += IT_IX(it7, ip0[7]);
6836
 
                                wo7   = IT_WO(it7, ip0[7]);
6837
 
                                
6838
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
6839
 
                                
6840
 
                                /* Sort weighting values and vertex offset values */
6841
 
                                CEX(wo0, wo1);
6842
 
                                CEX(wo0, wo2);
6843
 
                                CEX(wo0, wo3);
6844
 
                                CEX(wo0, wo4);
6845
 
                                CEX(wo0, wo5);
6846
 
                                CEX(wo0, wo6);
6847
 
                                CEX(wo0, wo7);
6848
 
                                CEX(wo1, wo2);
6849
 
                                CEX(wo1, wo3);
6850
 
                                CEX(wo1, wo4);
6851
 
                                CEX(wo1, wo5);
6852
 
                                CEX(wo1, wo6);
6853
 
                                CEX(wo1, wo7);
6854
 
                                CEX(wo2, wo3);
6855
 
                                CEX(wo2, wo4);
6856
 
                                CEX(wo2, wo5);
6857
 
                                CEX(wo2, wo6);
6858
 
                                CEX(wo2, wo7);
6859
 
                                CEX(wo3, wo4);
6860
 
                                CEX(wo3, wo5);
6861
 
                                CEX(wo3, wo6);
6862
 
                                CEX(wo3, wo7);
6863
 
                                CEX(wo4, wo5);
6864
 
                                CEX(wo4, wo6);
6865
 
                                CEX(wo4, wo7);
6866
 
                                CEX(wo5, wo6);
6867
 
                                CEX(wo5, wo7);
6868
 
                                CEX(wo6, wo7);
6869
 
                        }
6870
 
                        {
6871
 
                                unsigned int nvof;      /* Next vertex offset value */
6872
 
                                unsigned int vof;       /* Vertex offset value */
6873
 
                                unsigned int vwe;       /* Vertex weighting */
6874
 
                                
6875
 
                                vof = 0;                                /* First vertex offset is 0 */
6876
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
6877
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
6878
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
6879
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
6880
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
6881
 
                                vof += nvof;                    /* Move to next vertex */
6882
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
6883
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
6884
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
6885
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
6886
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
6887
 
                                vof += nvof;                    /* Move to next vertex */
6888
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
6889
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
6890
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
6891
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
6892
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
6893
 
                                vof += nvof;                    /* Move to next vertex */
6894
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
6895
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
6896
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
6897
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
6898
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
6899
 
                                vof += nvof;                    /* Move to next vertex */
6900
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
6901
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
6902
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
6903
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
6904
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
6905
 
                                vof += nvof;                    /* Move to next vertex */
6906
 
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
6907
 
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
6908
 
                                vwe = wo4 - wo5;                /* Baricentric weighting */
6909
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
6910
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
6911
 
                                vof += nvof;                    /* Move to next vertex */
6912
 
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
6913
 
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
6914
 
                                vwe = wo5 - wo6;                /* Baricentric weighting */
6915
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
6916
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
6917
 
                                vof += nvof;                    /* Move to next vertex */
6918
 
                                nvof = (wo7 & 0x7fffff);        /* Extract offset value */
6919
 
                                wo7 = (wo7 >> 23);              /* Extract weighting value */
6920
 
                                vwe = wo6 - wo7;                /* Baricentric weighting */
6921
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
6922
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
6923
 
                                vof += nvof;                    /* Move to next vertex */
6924
 
                                vwe = wo7;                              /* Baricentric weighting */
6925
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
6926
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
6927
 
                        }
6928
 
                }
6929
 
                {
6930
 
                        unsigned int oti;       /* Vertex offset value */
6931
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
6932
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
6933
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
6934
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
6935
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
6936
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
6937
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
6938
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
6939
 
                }
6940
 
        }
 
6666
        imdi_imp *p = (imdi_imp *)(s->impl);
 
6667
        unsigned char *ip0 = (unsigned char *)inp[0];
 
6668
        unsigned char *op0 = (unsigned char *)outp[0];
 
6669
        unsigned char *ep = ip0 + npix * 8 ;
 
6670
        pointer it0 = (pointer)p->in_tables[0];
 
6671
        pointer it1 = (pointer)p->in_tables[1];
 
6672
        pointer it2 = (pointer)p->in_tables[2];
 
6673
        pointer it3 = (pointer)p->in_tables[3];
 
6674
        pointer it4 = (pointer)p->in_tables[4];
 
6675
        pointer it5 = (pointer)p->in_tables[5];
 
6676
        pointer it6 = (pointer)p->in_tables[6];
 
6677
        pointer it7 = (pointer)p->in_tables[7];
 
6678
        pointer ot0 = (pointer)p->out_tables[0];
 
6679
        pointer ot1 = (pointer)p->out_tables[1];
 
6680
        pointer ot2 = (pointer)p->out_tables[2];
 
6681
        pointer ot3 = (pointer)p->out_tables[3];
 
6682
        pointer im_base = (pointer)p->im_table;
 
6683
 
 
6684
        for(;ip0 < ep; ip0 += 8, op0 += 4) {
 
6685
                unsigned int ova0;      /* Output value accumulator */
 
6686
                unsigned int ova1;      /* Output value accumulator */
 
6687
                {
 
6688
                        pointer imp;
 
6689
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
6690
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
6691
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
6692
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
6693
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
6694
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
 
6695
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
 
6696
                        unsigned int wo7;       /* Weighting value and vertex offset variable */
 
6697
                        {
 
6698
                                unsigned int ti_i;      /* Interpolation index variable */
 
6699
 
 
6700
                                ti_i  = IT_IX(it0, ip0[0]);
 
6701
                                wo0   = IT_WO(it0, ip0[0]);
 
6702
                                ti_i += IT_IX(it1, ip0[1]);
 
6703
                                wo1   = IT_WO(it1, ip0[1]);
 
6704
                                ti_i += IT_IX(it2, ip0[2]);
 
6705
                                wo2   = IT_WO(it2, ip0[2]);
 
6706
                                ti_i += IT_IX(it3, ip0[3]);
 
6707
                                wo3   = IT_WO(it3, ip0[3]);
 
6708
                                ti_i += IT_IX(it4, ip0[4]);
 
6709
                                wo4   = IT_WO(it4, ip0[4]);
 
6710
                                ti_i += IT_IX(it5, ip0[5]);
 
6711
                                wo5   = IT_WO(it5, ip0[5]);
 
6712
                                ti_i += IT_IX(it6, ip0[6]);
 
6713
                                wo6   = IT_WO(it6, ip0[6]);
 
6714
                                ti_i += IT_IX(it7, ip0[7]);
 
6715
                                wo7   = IT_WO(it7, ip0[7]);
 
6716
 
 
6717
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
6718
 
 
6719
                                /* Sort weighting values and vertex offset values */
 
6720
                                CEX(wo0, wo1);
 
6721
                                CEX(wo0, wo2);
 
6722
                                CEX(wo0, wo3);
 
6723
                                CEX(wo0, wo4);
 
6724
                                CEX(wo0, wo5);
 
6725
                                CEX(wo0, wo6);
 
6726
                                CEX(wo0, wo7);
 
6727
                                CEX(wo1, wo2);
 
6728
                                CEX(wo1, wo3);
 
6729
                                CEX(wo1, wo4);
 
6730
                                CEX(wo1, wo5);
 
6731
                                CEX(wo1, wo6);
 
6732
                                CEX(wo1, wo7);
 
6733
                                CEX(wo2, wo3);
 
6734
                                CEX(wo2, wo4);
 
6735
                                CEX(wo2, wo5);
 
6736
                                CEX(wo2, wo6);
 
6737
                                CEX(wo2, wo7);
 
6738
                                CEX(wo3, wo4);
 
6739
                                CEX(wo3, wo5);
 
6740
                                CEX(wo3, wo6);
 
6741
                                CEX(wo3, wo7);
 
6742
                                CEX(wo4, wo5);
 
6743
                                CEX(wo4, wo6);
 
6744
                                CEX(wo4, wo7);
 
6745
                                CEX(wo5, wo6);
 
6746
                                CEX(wo5, wo7);
 
6747
                                CEX(wo6, wo7);
 
6748
                        }
 
6749
                        {
 
6750
                                unsigned int nvof;      /* Next vertex offset value */
 
6751
                                unsigned int vof;       /* Vertex offset value */
 
6752
                                unsigned int vwe;       /* Vertex weighting */
 
6753
 
 
6754
                                vof = 0;                                /* First vertex offset is 0 */
 
6755
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
6756
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
6757
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
6758
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
6759
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
6760
                                vof += nvof;                    /* Move to next vertex */
 
6761
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
6762
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
6763
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
6764
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
6765
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
6766
                                vof += nvof;                    /* Move to next vertex */
 
6767
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
6768
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
6769
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
6770
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
6771
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
6772
                                vof += nvof;                    /* Move to next vertex */
 
6773
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
6774
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
6775
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
6776
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
6777
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
6778
                                vof += nvof;                    /* Move to next vertex */
 
6779
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
6780
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
6781
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
6782
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
6783
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
6784
                                vof += nvof;                    /* Move to next vertex */
 
6785
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
 
6786
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
 
6787
                                vwe = wo4 - wo5;                /* Baricentric weighting */
 
6788
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
6789
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
6790
                                vof += nvof;                    /* Move to next vertex */
 
6791
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
 
6792
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
 
6793
                                vwe = wo5 - wo6;                /* Baricentric weighting */
 
6794
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
6795
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
6796
                                vof += nvof;                    /* Move to next vertex */
 
6797
                                nvof = (wo7 & 0x7fffff);        /* Extract offset value */
 
6798
                                wo7 = (wo7 >> 23);              /* Extract weighting value */
 
6799
                                vwe = wo6 - wo7;                /* Baricentric weighting */
 
6800
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
6801
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
6802
                                vof += nvof;                    /* Move to next vertex */
 
6803
                                vwe = wo7;                              /* Baricentric weighting */
 
6804
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
6805
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
6806
                        }
 
6807
                }
 
6808
                {
 
6809
                        unsigned int oti;       /* Vertex offset value */
 
6810
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
6811
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
6812
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
6813
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
6814
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
6815
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
6816
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
6817
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
6818
                }
 
6819
        }
6941
6820
}
6942
6821
#undef IT_WO
6943
6822
#undef IT_IX
6950
6829
imdi_k21_gen(
6951
6830
genspec *g                      /* structure to be initialised */
6952
6831
) {
6953
 
        static unsigned char data[] = {
6954
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6955
 
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
6956
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6957
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6958
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6959
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6960
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6961
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6962
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6963
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6964
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6965
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6966
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6967
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6968
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6969
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6970
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6971
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6972
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6973
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
6974
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6975
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6976
 
                0x08, 0x00, 0x00, 0x00, 0x4c, 0x69, 0x6e, 0x75, 
6977
 
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6978
 
                0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
6979
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
6980
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6981
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6982
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6983
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6984
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79, 0x72, 
6985
 
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 
6986
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6987
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
6988
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6989
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6990
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
6991
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
6992
 
                0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
6993
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
6994
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
6995
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
6996
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
6997
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
6998
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
6999
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
7000
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
7001
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
7002
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7003
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
7004
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
7005
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x38, 0x5f, 0x34, 0x5f, 
7006
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
7007
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
7008
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
7009
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
7010
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
7011
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
7012
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
7013
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7014
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7015
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7016
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7017
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
7018
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x32, 0x31, 
7019
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7020
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7021
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
7022
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
7023
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
7024
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
7025
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
7026
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
7027
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
7028
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
7029
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
7030
 
                0x00, 0xf0, 0x04, 0x08 
7031
 
        };      /* Structure image */
7032
 
        
7033
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
6832
        static unsigned char data[] = {
 
6833
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6834
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
6835
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6836
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6837
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6838
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6839
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6840
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6841
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6842
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6843
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6844
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6845
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6846
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6847
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6848
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6849
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6850
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6851
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6852
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
6853
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6854
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6855
                0x08, 0x00, 0x00, 0x00, 0x4c, 0x69, 0x6e, 0x75,
 
6856
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6857
                0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
6858
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
6859
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6860
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6861
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6862
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6863
                0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x79, 0x72,
 
6864
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6865
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6866
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6867
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6868
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6869
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
6870
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
6871
                0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6872
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
6873
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
6874
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
6875
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
6876
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
6877
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
6878
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
6879
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
6880
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
6881
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6882
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
6883
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
6884
                0x2c, 0xf3, 0xdc, 0xb7, 0x38, 0x5f, 0x34, 0x5f,
 
6885
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
6886
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
6887
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
6888
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
6889
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
6890
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
6891
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
6892
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6893
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6894
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6895
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6896
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
6897
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x32, 0x31,
 
6898
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6899
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6900
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
6901
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
6902
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
6903
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
6904
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
6905
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
6906
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
6907
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
6908
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
6909
                0x00, 0xf0, 0x04, 0x08
 
6910
        };      /* Structure image */
 
6911
 
 
6912
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
7034
6913
}
7035
6914
 
7036
6915
static void
7037
6916
imdi_k21_tab(
7038
6917
tabspec *t                      /* structure to be initialised */
7039
6918
) {
7040
 
        static unsigned char data[] = {
7041
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
7042
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
7043
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
7044
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
7045
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
7046
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
7047
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7048
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
7049
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
7050
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7051
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
7052
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
7053
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
7054
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
7055
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
7056
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
7057
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7058
 
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
7059
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7060
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7061
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
7062
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
7063
 
                0xff, 0xff, 0xff, 0x34, 0x00, 0x00, 0x00, 0x00, 
7064
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
7065
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7066
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7067
 
                0x00, 0x00, 0x00, 0x00, 0x52, 0xca, 0x04, 0x08, 
7068
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
7069
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7070
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7071
 
                0x08, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
7072
 
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
7073
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
7074
 
        };      /* Structure image */
7075
 
        
7076
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
6919
        static unsigned char data[] = {
 
6920
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
6921
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
6922
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
6923
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
6924
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
6925
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
6926
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6927
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
6928
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
6929
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6930
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
6931
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
6932
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
6933
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
6934
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
6935
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
6936
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6937
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
6938
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6939
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6940
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
6941
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
6942
                0xff, 0xff, 0xff, 0x34, 0x00, 0x00, 0x00, 0x00,
 
6943
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
6944
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6945
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
6946
                0x00, 0x00, 0x00, 0x00, 0x52, 0xca, 0x04, 0x08,
 
6947
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
6948
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6949
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
6950
                0x08, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
6951
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
6952
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
6953
        };      /* Structure image */
 
6954
 
 
6955
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
7077
6956
}
7078
6957
 
7079
 
 
7080
 
 
7081
 
 
7082
 
 
7083
 
 
7084
6958
/* Integer Multi-Dimensional Interpolation */
7085
6959
/* Interpolation Kernel Code */
7086
6960
/* Generated by cgen */
7089
6963
 
7090
6964
/* see the Licence.txt file for licencing details.*/
7091
6965
 
7092
 
 
7093
6966
/*
7094
6967
   Interpolation kernel specs:
7095
6968
 
7176
7049
void **inp,             /* pointer to input pointers */
7177
7050
unsigned int npix       /* Number of pixels to process */
7178
7051
) {
7179
 
        imdi_imp *p = (imdi_imp *)(s->impl);
7180
 
        unsigned char *ip0 = (unsigned char *)inp[0];
7181
 
        unsigned char *op0 = (unsigned char *)outp[0];
7182
 
        unsigned char *ep = ip0 + npix * 1 ;
7183
 
        pointer it0 = (pointer)p->in_tables[0];
7184
 
        pointer ot0 = (pointer)p->out_tables[0];
7185
 
        pointer ot1 = (pointer)p->out_tables[1];
7186
 
        pointer ot2 = (pointer)p->out_tables[2];
7187
 
        pointer ot3 = (pointer)p->out_tables[3];
7188
 
        pointer ot4 = (pointer)p->out_tables[4];
7189
 
        pointer sw_base = (pointer)p->sw_table;
7190
 
        pointer im_base = (pointer)p->im_table;
7191
 
        
7192
 
        for(;ip0 < ep; ip0 += 1, op0 += 5) {
7193
 
                unsigned int ova0;      /* Output value accumulator */
7194
 
                unsigned int ova1;      /* Output value accumulator */
7195
 
                unsigned int ova2;      /* Output value partial accumulator */
7196
 
                {
7197
 
                        pointer swp;
7198
 
                        pointer imp;
7199
 
                        {
7200
 
                                unsigned int ti;        /* Simplex+Interpolation index variable */
7201
 
                                
7202
 
                                ti  = IT_IT(it0, ip0[0]);
7203
 
                                
7204
 
                                imp = im_base + IM_O(ti >> 0);          /* Extract interp. index and comp. entry */
7205
 
                                swp = sw_base + SW_O(ti & 0x0); /* Extract simplex index and comp. entry */
7206
 
                        }
7207
 
                        {
7208
 
                                unsigned int vowr;      /* Vertex offset/weight value */
7209
 
                                unsigned int vof;       /* Vertex offset value */
7210
 
                                unsigned int vwe;       /* Vertex weighting */
7211
 
                                
7212
 
                                vowr = SX_WO(swp, 0);   /* Read vertex offset+weighting values */
7213
 
                                vof = (vowr & 0x7f);    /* Extract offset value */
7214
 
                                vwe = (vowr >> 7);      /* Extract weighting value */
7215
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
7216
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
7217
 
                                ova2  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
7218
 
                                vowr = SX_WO(swp, 1);   /* Read vertex offset+weighting values */
7219
 
                                vof = (vowr & 0x7f);    /* Extract offset value */
7220
 
                                vwe = (vowr >> 7);      /* Extract weighting value */
7221
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
7222
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
7223
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
7224
 
                        }
7225
 
                }
7226
 
                {
7227
 
                        unsigned int oti;       /* Vertex offset value */
7228
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
7229
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
7230
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
7231
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
7232
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
7233
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
7234
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
7235
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
7236
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
7237
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
7238
 
                }
7239
 
        }
 
7052
        imdi_imp *p = (imdi_imp *)(s->impl);
 
7053
        unsigned char *ip0 = (unsigned char *)inp[0];
 
7054
        unsigned char *op0 = (unsigned char *)outp[0];
 
7055
        unsigned char *ep = ip0 + npix * 1 ;
 
7056
        pointer it0 = (pointer)p->in_tables[0];
 
7057
        pointer ot0 = (pointer)p->out_tables[0];
 
7058
        pointer ot1 = (pointer)p->out_tables[1];
 
7059
        pointer ot2 = (pointer)p->out_tables[2];
 
7060
        pointer ot3 = (pointer)p->out_tables[3];
 
7061
        pointer ot4 = (pointer)p->out_tables[4];
 
7062
        pointer sw_base = (pointer)p->sw_table;
 
7063
        pointer im_base = (pointer)p->im_table;
 
7064
 
 
7065
        for(;ip0 < ep; ip0 += 1, op0 += 5) {
 
7066
                unsigned int ova0;      /* Output value accumulator */
 
7067
                unsigned int ova1;      /* Output value accumulator */
 
7068
                unsigned int ova2;      /* Output value partial accumulator */
 
7069
                {
 
7070
                        pointer swp;
 
7071
                        pointer imp;
 
7072
                        {
 
7073
                                unsigned int ti;        /* Simplex+Interpolation index variable */
 
7074
 
 
7075
                                ti  = IT_IT(it0, ip0[0]);
 
7076
 
 
7077
                                imp = im_base + IM_O(ti >> 0);          /* Extract interp. index and comp. entry */
 
7078
                                swp = sw_base + SW_O(ti & 0x0); /* Extract simplex index and comp. entry */
 
7079
                        }
 
7080
                        {
 
7081
                                unsigned int vowr;      /* Vertex offset/weight value */
 
7082
                                unsigned int vof;       /* Vertex offset value */
 
7083
                                unsigned int vwe;       /* Vertex weighting */
 
7084
 
 
7085
                                vowr = SX_WO(swp, 0);   /* Read vertex offset+weighting values */
 
7086
                                vof = (vowr & 0x7f);    /* Extract offset value */
 
7087
                                vwe = (vowr >> 7);      /* Extract weighting value */
 
7088
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
7089
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
7090
                                ova2  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
7091
                                vowr = SX_WO(swp, 1);   /* Read vertex offset+weighting values */
 
7092
                                vof = (vowr & 0x7f);    /* Extract offset value */
 
7093
                                vwe = (vowr >> 7);      /* Extract weighting value */
 
7094
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
7095
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
7096
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
7097
                        }
 
7098
                }
 
7099
                {
 
7100
                        unsigned int oti;       /* Vertex offset value */
 
7101
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
7102
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
7103
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
7104
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
7105
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
7106
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
7107
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
7108
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
7109
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
7110
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
7111
                }
 
7112
        }
7240
7113
}
7241
7114
#undef IT_IT
7242
7115
#undef SW_O
7250
7123
imdi_k22_gen(
7251
7124
genspec *g                      /* structure to be initialised */
7252
7125
) {
7253
 
        static unsigned char data[] = {
7254
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
7255
 
                0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
7256
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7257
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7258
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7259
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7260
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7261
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
7262
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7263
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7264
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7265
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7266
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7267
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7268
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7269
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7270
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7271
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7272
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7273
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
7274
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7275
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7276
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7277
 
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7278
 
                0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
7279
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
7280
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
7281
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7282
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7283
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7284
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7285
 
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 
7286
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7287
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7288
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7289
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7290
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
7291
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
7292
 
                0xff, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
7293
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
7294
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
7295
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
7296
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
7297
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
7298
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
7299
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
7300
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
7301
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
7302
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7303
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
7304
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
7305
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x31, 0x5f, 0x35, 0x5f, 
7306
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
7307
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
7308
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
7309
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
7310
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
7311
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
7312
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
7313
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7314
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7315
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7316
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7317
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
7318
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x32, 0x32, 
7319
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7320
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7321
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
7322
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
7323
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
7324
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
7325
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
7326
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
7327
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
7328
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
7329
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
7330
 
                0x00, 0xf0, 0x04, 0x08 
7331
 
        };      /* Structure image */
7332
 
        
7333
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
7126
        static unsigned char data[] = {
 
7127
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
7128
                0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
7129
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7130
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7131
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7132
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7133
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7134
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
7135
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7136
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7137
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7138
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7139
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7140
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7141
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7142
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7143
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7144
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7145
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7146
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
7147
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7148
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7149
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7150
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7151
                0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
7152
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
7153
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
7154
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7155
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7156
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7157
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7158
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7159
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7160
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7161
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7162
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7163
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
7164
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
7165
                0xff, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
7166
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
7167
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
7168
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
7169
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
7170
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
7171
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
7172
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
7173
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
7174
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
7175
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7176
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
7177
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
7178
                0x2c, 0xf3, 0xdc, 0xb7, 0x31, 0x5f, 0x35, 0x5f,
 
7179
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
7180
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
7181
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
7182
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
7183
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
7184
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
7185
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
7186
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7187
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7188
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7189
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7190
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
7191
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x32, 0x32,
 
7192
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7193
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7194
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
7195
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
7196
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
7197
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
7198
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
7199
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
7200
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
7201
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
7202
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
7203
                0x00, 0xf0, 0x04, 0x08
 
7204
        };      /* Structure image */
 
7205
 
 
7206
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
7334
7207
}
7335
7208
 
7336
7209
static void
7337
7210
imdi_k22_tab(
7338
7211
tabspec *t                      /* structure to be initialised */
7339
7212
) {
7340
 
        static unsigned char data[] = {
7341
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7342
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
7343
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
7344
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
7345
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
7346
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
7347
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
7348
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
7349
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7350
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7351
 
                0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
7352
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7353
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
7354
 
                0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
7355
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
7356
 
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
7357
 
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
7358
 
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
7359
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
7360
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
7361
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
7362
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
7363
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7364
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
7365
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7366
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7367
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7368
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
7369
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7370
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7371
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7372
 
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
7373
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
7374
 
        };      /* Structure image */
7375
 
        
7376
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
7213
        static unsigned char data[] = {
 
7214
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7215
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
7216
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
7217
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
7218
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
7219
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
7220
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
7221
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
7222
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7223
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7224
                0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
7225
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7226
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
7227
                0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
7228
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
7229
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
7230
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
7231
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
7232
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
7233
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
7234
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
7235
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
7236
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7237
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
7238
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7239
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7240
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7241
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
7242
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7243
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7244
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7245
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
7246
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
7247
        };      /* Structure image */
 
7248
 
 
7249
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
7377
7250
}
7378
7251
 
7379
 
 
7380
 
 
7381
 
 
7382
 
 
7383
 
 
7384
7252
/* Integer Multi-Dimensional Interpolation */
7385
7253
/* Interpolation Kernel Code */
7386
7254
/* Generated by cgen */
7389
7257
 
7390
7258
/* see the Licence.txt file for licencing details.*/
7391
7259
 
7392
 
 
7393
7260
/*
7394
7261
   Interpolation kernel specs:
7395
7262
 
7483
7350
void **inp,             /* pointer to input pointers */
7484
7351
unsigned int npix       /* Number of pixels to process */
7485
7352
) {
7486
 
        imdi_imp *p = (imdi_imp *)(s->impl);
7487
 
        unsigned char *ip0 = (unsigned char *)inp[0];
7488
 
        unsigned char *op0 = (unsigned char *)outp[0];
7489
 
        unsigned char *ep = ip0 + npix * 3 ;
7490
 
        pointer it0 = (pointer)p->in_tables[0];
7491
 
        pointer it1 = (pointer)p->in_tables[1];
7492
 
        pointer it2 = (pointer)p->in_tables[2];
7493
 
        pointer ot0 = (pointer)p->out_tables[0];
7494
 
        pointer ot1 = (pointer)p->out_tables[1];
7495
 
        pointer ot2 = (pointer)p->out_tables[2];
7496
 
        pointer ot3 = (pointer)p->out_tables[3];
7497
 
        pointer ot4 = (pointer)p->out_tables[4];
7498
 
        pointer sw_base = (pointer)p->sw_table;
7499
 
        pointer im_base = (pointer)p->im_table;
7500
 
        
7501
 
        for(;ip0 < ep; ip0 += 3, op0 += 5) {
7502
 
                unsigned int ova0;      /* Output value accumulator */
7503
 
                unsigned int ova1;      /* Output value accumulator */
7504
 
                unsigned int ova2;      /* Output value partial accumulator */
7505
 
                {
7506
 
                        pointer swp;
7507
 
                        pointer imp;
7508
 
                        {
7509
 
                                unsigned int ti;        /* Simplex+Interpolation index variable */
7510
 
                                
7511
 
                                ti  = IT_IT(it0, ip0[0]);
7512
 
                                ti += IT_IT(it1, ip0[1]);
7513
 
                                ti += IT_IT(it2, ip0[2]);
7514
 
                                
7515
 
                                imp = im_base + IM_O(ti >> 12);         /* Extract interp. index and comp. entry */
7516
 
                                swp = sw_base + SW_O(ti & 0xfff);       /* Extract simplex index and comp. entry */
7517
 
                        }
7518
 
                        {
7519
 
                                unsigned int vof;       /* Vertex offset value */
7520
 
                                unsigned int vwe;       /* Vertex weighting */
7521
 
                                
7522
 
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
7523
 
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
7524
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
7525
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
7526
 
                                ova2  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
7527
 
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
7528
 
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
7529
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
7530
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
7531
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
7532
 
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
7533
 
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
7534
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
7535
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
7536
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
7537
 
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
7538
 
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
7539
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
7540
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
7541
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
7542
 
                        }
7543
 
                }
7544
 
                {
7545
 
                        unsigned int oti;       /* Vertex offset value */
7546
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
7547
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
7548
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
7549
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
7550
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
7551
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
7552
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
7553
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
7554
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
7555
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
7556
 
                }
7557
 
        }
 
7353
        imdi_imp *p = (imdi_imp *)(s->impl);
 
7354
        unsigned char *ip0 = (unsigned char *)inp[0];
 
7355
        unsigned char *op0 = (unsigned char *)outp[0];
 
7356
        unsigned char *ep = ip0 + npix * 3 ;
 
7357
        pointer it0 = (pointer)p->in_tables[0];
 
7358
        pointer it1 = (pointer)p->in_tables[1];
 
7359
        pointer it2 = (pointer)p->in_tables[2];
 
7360
        pointer ot0 = (pointer)p->out_tables[0];
 
7361
        pointer ot1 = (pointer)p->out_tables[1];
 
7362
        pointer ot2 = (pointer)p->out_tables[2];
 
7363
        pointer ot3 = (pointer)p->out_tables[3];
 
7364
        pointer ot4 = (pointer)p->out_tables[4];
 
7365
        pointer sw_base = (pointer)p->sw_table;
 
7366
        pointer im_base = (pointer)p->im_table;
 
7367
 
 
7368
        for(;ip0 < ep; ip0 += 3, op0 += 5) {
 
7369
                unsigned int ova0;      /* Output value accumulator */
 
7370
                unsigned int ova1;      /* Output value accumulator */
 
7371
                unsigned int ova2;      /* Output value partial accumulator */
 
7372
                {
 
7373
                        pointer swp;
 
7374
                        pointer imp;
 
7375
                        {
 
7376
                                unsigned int ti;        /* Simplex+Interpolation index variable */
 
7377
 
 
7378
                                ti  = IT_IT(it0, ip0[0]);
 
7379
                                ti += IT_IT(it1, ip0[1]);
 
7380
                                ti += IT_IT(it2, ip0[2]);
 
7381
 
 
7382
                                imp = im_base + IM_O(ti >> 12);         /* Extract interp. index and comp. entry */
 
7383
                                swp = sw_base + SW_O(ti & 0xfff);       /* Extract simplex index and comp. entry */
 
7384
                        }
 
7385
                        {
 
7386
                                unsigned int vof;       /* Vertex offset value */
 
7387
                                unsigned int vwe;       /* Vertex weighting */
 
7388
 
 
7389
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
 
7390
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
 
7391
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
7392
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
7393
                                ova2  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
7394
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
 
7395
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
 
7396
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
7397
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
7398
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
7399
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
 
7400
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
 
7401
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
7402
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
7403
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
7404
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
 
7405
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
 
7406
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
7407
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
7408
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
7409
                        }
 
7410
                }
 
7411
                {
 
7412
                        unsigned int oti;       /* Vertex offset value */
 
7413
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
7414
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
7415
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
7416
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
7417
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
7418
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
7419
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
7420
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
7421
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
7422
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
7423
                }
 
7424
        }
7558
7425
}
7559
7426
#undef IT_IT
7560
7427
#undef SW_O
7569
7436
imdi_k23_gen(
7570
7437
genspec *g                      /* structure to be initialised */
7571
7438
) {
7572
 
        static unsigned char data[] = {
7573
 
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
7574
 
                0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
7575
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7576
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7577
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7578
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7579
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7580
 
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
7581
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
7582
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7583
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7584
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7585
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7586
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7587
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7588
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7589
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7590
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7591
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7592
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
7593
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7594
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7595
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7596
 
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7597
 
                0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
7598
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
7599
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
7600
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7601
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7602
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7603
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7604
 
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 
7605
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7606
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7607
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7608
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7609
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
7610
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
7611
 
                0x65, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
7612
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
7613
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
7614
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
7615
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
7616
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
7617
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
7618
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
7619
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
7620
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
7621
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7622
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
7623
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
7624
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x33, 0x5f, 0x35, 0x5f, 
7625
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
7626
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
7627
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
7628
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
7629
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
7630
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
7631
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
7632
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7633
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7634
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7635
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7636
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
7637
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x32, 0x33, 
7638
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7639
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7640
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
7641
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
7642
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
7643
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
7644
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
7645
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
7646
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
7647
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
7648
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
7649
 
                0x00, 0xf0, 0x04, 0x08 
7650
 
        };      /* Structure image */
7651
 
        
7652
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
7439
        static unsigned char data[] = {
 
7440
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
7441
                0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
7442
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7443
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7444
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7445
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7446
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7447
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
7448
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
7449
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7450
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7451
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7452
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7453
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7454
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7455
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7456
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7457
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7458
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7459
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
7460
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7461
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7462
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7463
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7464
                0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
7465
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
7466
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
7467
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7468
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7469
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7470
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7471
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7472
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7473
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7474
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7475
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7476
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
7477
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
7478
                0x65, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
7479
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
7480
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
7481
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
7482
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
7483
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
7484
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
7485
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
7486
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
7487
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
7488
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7489
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
7490
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
7491
                0x2c, 0xf3, 0xdc, 0xb7, 0x33, 0x5f, 0x35, 0x5f,
 
7492
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
7493
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
7494
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
7495
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
7496
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
7497
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
7498
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
7499
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7500
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7501
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7502
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7503
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
7504
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x32, 0x33,
 
7505
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7506
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7507
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
7508
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
7509
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
7510
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
7511
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
7512
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
7513
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
7514
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
7515
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
7516
                0x00, 0xf0, 0x04, 0x08
 
7517
        };      /* Structure image */
 
7518
 
 
7519
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
7653
7520
}
7654
7521
 
7655
7522
static void
7656
7523
imdi_k23_tab(
7657
7524
tabspec *t                      /* structure to be initialised */
7658
7525
) {
7659
 
        static unsigned char data[] = {
7660
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7661
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
7662
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
7663
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
7664
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
7665
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
7666
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
7667
 
                0x14, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
7668
 
                0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 
7669
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7670
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
7671
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7672
 
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
7673
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
7674
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
7675
 
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
7676
 
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
7677
 
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
7678
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
7679
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
7680
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
7681
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
7682
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7683
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
7684
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7685
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7686
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7687
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
7688
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7689
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7690
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7691
 
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
7692
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
7693
 
        };      /* Structure image */
7694
 
        
7695
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
7526
        static unsigned char data[] = {
 
7527
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7528
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
7529
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
7530
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
7531
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
7532
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
7533
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
7534
                0x14, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
7535
                0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
 
7536
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7537
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
7538
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7539
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
7540
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
7541
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
7542
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
7543
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
7544
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
7545
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
7546
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
7547
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
7548
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
7549
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7550
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
7551
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7552
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7553
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7554
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
7555
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7556
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7557
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7558
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
7559
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
7560
        };      /* Structure image */
 
7561
 
 
7562
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
7696
7563
}
7697
7564
 
7698
 
 
7699
 
 
7700
 
 
7701
 
 
7702
 
 
7703
7565
/* Integer Multi-Dimensional Interpolation */
7704
7566
/* Interpolation Kernel Code */
7705
7567
/* Generated by cgen */
7708
7570
 
7709
7571
/* see the Licence.txt file for licencing details.*/
7710
7572
 
7711
 
 
7712
7573
/*
7713
7574
   Interpolation kernel specs:
7714
7575
 
7807
7668
void **inp,             /* pointer to input pointers */
7808
7669
unsigned int npix       /* Number of pixels to process */
7809
7670
) {
7810
 
        imdi_imp *p = (imdi_imp *)(s->impl);
7811
 
        unsigned char *ip0 = (unsigned char *)inp[0];
7812
 
        unsigned char *op0 = (unsigned char *)outp[0];
7813
 
        unsigned char *ep = ip0 + npix * 4 ;
7814
 
        pointer it0 = (pointer)p->in_tables[0];
7815
 
        pointer it1 = (pointer)p->in_tables[1];
7816
 
        pointer it2 = (pointer)p->in_tables[2];
7817
 
        pointer it3 = (pointer)p->in_tables[3];
7818
 
        pointer ot0 = (pointer)p->out_tables[0];
7819
 
        pointer ot1 = (pointer)p->out_tables[1];
7820
 
        pointer ot2 = (pointer)p->out_tables[2];
7821
 
        pointer ot3 = (pointer)p->out_tables[3];
7822
 
        pointer ot4 = (pointer)p->out_tables[4];
7823
 
        pointer sw_base = (pointer)p->sw_table;
7824
 
        pointer im_base = (pointer)p->im_table;
7825
 
        
7826
 
        for(;ip0 < ep; ip0 += 4, op0 += 5) {
7827
 
                unsigned int ova0;      /* Output value accumulator */
7828
 
                unsigned int ova1;      /* Output value accumulator */
7829
 
                unsigned int ova2;      /* Output value partial accumulator */
7830
 
                {
7831
 
                        pointer swp;
7832
 
                        pointer imp;
7833
 
                        {
7834
 
                                unsigned int ti_s;      /* Simplex index variable */
7835
 
                                unsigned int ti_i;      /* Interpolation index variable */
7836
 
                                
7837
 
                                ti_i  = IT_IX(it0, ip0[0]);
7838
 
                                ti_s  = IT_SX(it0, ip0[0]);
7839
 
                                ti_i += IT_IX(it1, ip0[1]);
7840
 
                                ti_s += IT_SX(it1, ip0[1]);
7841
 
                                ti_i += IT_IX(it2, ip0[2]);
7842
 
                                ti_s += IT_SX(it2, ip0[2]);
7843
 
                                ti_i += IT_IX(it3, ip0[3]);
7844
 
                                ti_s += IT_SX(it3, ip0[3]);
7845
 
                                
7846
 
                                swp = sw_base + SW_O(ti_s);             /* Compute simplex table entry pointer */
7847
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
7848
 
                        }
7849
 
                        {
7850
 
                                unsigned int vof;       /* Vertex offset value */
7851
 
                                unsigned int vwe;       /* Vertex weighting */
7852
 
                                
7853
 
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
7854
 
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
7855
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
7856
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
7857
 
                                ova2  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
7858
 
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
7859
 
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
7860
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
7861
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
7862
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
7863
 
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
7864
 
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
7865
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
7866
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
7867
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
7868
 
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
7869
 
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
7870
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
7871
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
7872
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
7873
 
                                vof = SX_VO(swp, 4);    /* Read vertex offset value */
7874
 
                                vwe = SX_WE(swp, 4);    /* Read vertex weighting value */
7875
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
7876
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
7877
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
7878
 
                        }
7879
 
                }
7880
 
                {
7881
 
                        unsigned int oti;       /* Vertex offset value */
7882
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
7883
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
7884
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
7885
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
7886
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
7887
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
7888
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
7889
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
7890
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
7891
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
7892
 
                }
7893
 
        }
 
7671
        imdi_imp *p = (imdi_imp *)(s->impl);
 
7672
        unsigned char *ip0 = (unsigned char *)inp[0];
 
7673
        unsigned char *op0 = (unsigned char *)outp[0];
 
7674
        unsigned char *ep = ip0 + npix * 4 ;
 
7675
        pointer it0 = (pointer)p->in_tables[0];
 
7676
        pointer it1 = (pointer)p->in_tables[1];
 
7677
        pointer it2 = (pointer)p->in_tables[2];
 
7678
        pointer it3 = (pointer)p->in_tables[3];
 
7679
        pointer ot0 = (pointer)p->out_tables[0];
 
7680
        pointer ot1 = (pointer)p->out_tables[1];
 
7681
        pointer ot2 = (pointer)p->out_tables[2];
 
7682
        pointer ot3 = (pointer)p->out_tables[3];
 
7683
        pointer ot4 = (pointer)p->out_tables[4];
 
7684
        pointer sw_base = (pointer)p->sw_table;
 
7685
        pointer im_base = (pointer)p->im_table;
 
7686
 
 
7687
        for(;ip0 < ep; ip0 += 4, op0 += 5) {
 
7688
                unsigned int ova0;      /* Output value accumulator */
 
7689
                unsigned int ova1;      /* Output value accumulator */
 
7690
                unsigned int ova2;      /* Output value partial accumulator */
 
7691
                {
 
7692
                        pointer swp;
 
7693
                        pointer imp;
 
7694
                        {
 
7695
                                unsigned int ti_s;      /* Simplex index variable */
 
7696
                                unsigned int ti_i;      /* Interpolation index variable */
 
7697
 
 
7698
                                ti_i  = IT_IX(it0, ip0[0]);
 
7699
                                ti_s  = IT_SX(it0, ip0[0]);
 
7700
                                ti_i += IT_IX(it1, ip0[1]);
 
7701
                                ti_s += IT_SX(it1, ip0[1]);
 
7702
                                ti_i += IT_IX(it2, ip0[2]);
 
7703
                                ti_s += IT_SX(it2, ip0[2]);
 
7704
                                ti_i += IT_IX(it3, ip0[3]);
 
7705
                                ti_s += IT_SX(it3, ip0[3]);
 
7706
 
 
7707
                                swp = sw_base + SW_O(ti_s);             /* Compute simplex table entry pointer */
 
7708
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
7709
                        }
 
7710
                        {
 
7711
                                unsigned int vof;       /* Vertex offset value */
 
7712
                                unsigned int vwe;       /* Vertex weighting */
 
7713
 
 
7714
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
 
7715
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
 
7716
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
7717
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
7718
                                ova2  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
7719
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
 
7720
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
 
7721
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
7722
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
7723
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
7724
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
 
7725
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
 
7726
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
7727
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
7728
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
7729
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
 
7730
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
 
7731
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
7732
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
7733
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
7734
                                vof = SX_VO(swp, 4);    /* Read vertex offset value */
 
7735
                                vwe = SX_WE(swp, 4);    /* Read vertex weighting value */
 
7736
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
7737
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
7738
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
7739
                        }
 
7740
                }
 
7741
                {
 
7742
                        unsigned int oti;       /* Vertex offset value */
 
7743
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
7744
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
7745
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
7746
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
7747
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
7748
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
7749
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
7750
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
7751
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
7752
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
7753
                }
 
7754
        }
7894
7755
}
7895
7756
#undef IT_IX
7896
7757
#undef IT_SX
7906
7767
imdi_k24_gen(
7907
7768
genspec *g                      /* structure to be initialised */
7908
7769
) {
7909
 
        static unsigned char data[] = {
7910
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
7911
 
                0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
7912
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7913
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7914
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7915
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7916
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7917
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
7918
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
7919
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7920
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7921
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7922
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7923
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7924
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7925
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7926
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7927
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7928
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7929
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
7930
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7931
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7932
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7933
 
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7934
 
                0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
7935
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
7936
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
7937
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7938
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7939
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7940
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7941
 
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 
7942
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7943
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7944
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
7945
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7946
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
7947
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
7948
 
                0x1b, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 
7949
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
7950
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
7951
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
7952
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
7953
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
7954
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
7955
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
7956
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
7957
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
7958
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7959
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
7960
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
7961
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x34, 0x5f, 0x35, 0x5f, 
7962
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
7963
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
7964
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
7965
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
7966
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
7967
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
7968
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
7969
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7970
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7971
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7972
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7973
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
7974
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x32, 0x34, 
7975
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7976
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
7977
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
7978
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
7979
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
7980
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
7981
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
7982
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
7983
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
7984
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
7985
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
7986
 
                0x00, 0xf0, 0x04, 0x08 
7987
 
        };      /* Structure image */
7988
 
        
7989
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
7770
        static unsigned char data[] = {
 
7771
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
7772
                0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
7773
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7774
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7775
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7776
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7777
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7778
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
7779
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
7780
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7781
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7782
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7783
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7784
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7785
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7786
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7787
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7788
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7789
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7790
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
7791
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7792
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7793
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7794
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7795
                0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
7796
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
7797
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
7798
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7799
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7800
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7801
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7802
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7803
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7804
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7805
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7806
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7807
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
7808
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
7809
                0x1b, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00,
 
7810
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
7811
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
7812
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
7813
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
7814
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
7815
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
7816
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
7817
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
7818
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
7819
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7820
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
7821
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
7822
                0x2c, 0xf3, 0xdc, 0xb7, 0x34, 0x5f, 0x35, 0x5f,
 
7823
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
7824
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
7825
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
7826
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
7827
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
7828
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
7829
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
7830
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7831
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7832
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7833
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7834
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
7835
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x32, 0x34,
 
7836
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7837
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7838
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
7839
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
7840
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
7841
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
7842
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
7843
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
7844
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
7845
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
7846
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
7847
                0x00, 0xf0, 0x04, 0x08
 
7848
        };      /* Structure image */
 
7849
 
 
7850
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
7990
7851
}
7991
7852
 
7992
7853
static void
7993
7854
imdi_k24_tab(
7994
7855
tabspec *t                      /* structure to be initialised */
7995
7856
) {
7996
 
        static unsigned char data[] = {
7997
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
7998
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
7999
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
8000
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
8001
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
8002
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
8003
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
8004
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
8005
 
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
8006
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8007
 
                0x14, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
8008
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8009
 
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
8010
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
8011
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
8012
 
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
8013
 
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
8014
 
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
8015
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
8016
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
8017
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
8018
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
8019
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8020
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
8021
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8022
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8023
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8024
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
8025
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
8026
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
8027
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
8028
 
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
8029
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
8030
 
        };      /* Structure image */
8031
 
        
8032
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
7857
        static unsigned char data[] = {
 
7858
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
7859
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
7860
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
7861
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
7862
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
7863
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
7864
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7865
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
7866
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
7867
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7868
                0x14, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
7869
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7870
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
7871
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
7872
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
7873
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
7874
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
7875
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
7876
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
7877
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
7878
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
7879
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
7880
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7881
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
7882
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7883
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7884
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
7885
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
7886
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7887
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7888
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
7889
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
7890
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
7891
        };      /* Structure image */
 
7892
 
 
7893
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
8033
7894
}
8034
7895
 
8035
 
 
8036
 
 
8037
 
 
8038
 
 
8039
 
 
8040
7896
/* Integer Multi-Dimensional Interpolation */
8041
7897
/* Interpolation Kernel Code */
8042
7898
/* Generated by cgen */
8045
7901
 
8046
7902
/* see the Licence.txt file for licencing details.*/
8047
7903
 
8048
 
 
8049
7904
/*
8050
7905
   Interpolation kernel specs:
8051
7906
 
8139
7994
void **inp,             /* pointer to input pointers */
8140
7995
unsigned int npix       /* Number of pixels to process */
8141
7996
) {
8142
 
        imdi_imp *p = (imdi_imp *)(s->impl);
8143
 
        unsigned char *ip0 = (unsigned char *)inp[0];
8144
 
        unsigned char *op0 = (unsigned char *)outp[0];
8145
 
        unsigned char *ep = ip0 + npix * 5 ;
8146
 
        pointer it0 = (pointer)p->in_tables[0];
8147
 
        pointer it1 = (pointer)p->in_tables[1];
8148
 
        pointer it2 = (pointer)p->in_tables[2];
8149
 
        pointer it3 = (pointer)p->in_tables[3];
8150
 
        pointer it4 = (pointer)p->in_tables[4];
8151
 
        pointer ot0 = (pointer)p->out_tables[0];
8152
 
        pointer ot1 = (pointer)p->out_tables[1];
8153
 
        pointer ot2 = (pointer)p->out_tables[2];
8154
 
        pointer ot3 = (pointer)p->out_tables[3];
8155
 
        pointer ot4 = (pointer)p->out_tables[4];
8156
 
        pointer im_base = (pointer)p->im_table;
8157
 
        
8158
 
        for(;ip0 < ep; ip0 += 5, op0 += 5) {
8159
 
                unsigned int ova0;      /* Output value accumulator */
8160
 
                unsigned int ova1;      /* Output value accumulator */
8161
 
                unsigned int ova2;      /* Output value partial accumulator */
8162
 
                {
8163
 
                        pointer imp;
8164
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
8165
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
8166
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
8167
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
8168
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
8169
 
                        {
8170
 
                                unsigned int ti_i;      /* Interpolation index variable */
8171
 
                                
8172
 
                                ti_i  = IT_IX(it0, ip0[0]);
8173
 
                                wo0   = IT_WO(it0, ip0[0]);
8174
 
                                ti_i += IT_IX(it1, ip0[1]);
8175
 
                                wo1   = IT_WO(it1, ip0[1]);
8176
 
                                ti_i += IT_IX(it2, ip0[2]);
8177
 
                                wo2   = IT_WO(it2, ip0[2]);
8178
 
                                ti_i += IT_IX(it3, ip0[3]);
8179
 
                                wo3   = IT_WO(it3, ip0[3]);
8180
 
                                ti_i += IT_IX(it4, ip0[4]);
8181
 
                                wo4   = IT_WO(it4, ip0[4]);
8182
 
                                
8183
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
8184
 
                                
8185
 
                                /* Sort weighting values and vertex offset values */
8186
 
                                CEX(wo0, wo1);
8187
 
                                CEX(wo0, wo2);
8188
 
                                CEX(wo0, wo3);
8189
 
                                CEX(wo0, wo4);
8190
 
                                CEX(wo1, wo2);
8191
 
                                CEX(wo1, wo3);
8192
 
                                CEX(wo1, wo4);
8193
 
                                CEX(wo2, wo3);
8194
 
                                CEX(wo2, wo4);
8195
 
                                CEX(wo3, wo4);
8196
 
                        }
8197
 
                        {
8198
 
                                unsigned int nvof;      /* Next vertex offset value */
8199
 
                                unsigned int vof;       /* Vertex offset value */
8200
 
                                unsigned int vwe;       /* Vertex weighting */
8201
 
                                
8202
 
                                vof = 0;                                /* First vertex offset is 0 */
8203
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
8204
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
8205
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
8206
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
8207
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
8208
 
                                ova2  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
8209
 
                                vof += nvof;                    /* Move to next vertex */
8210
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
8211
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
8212
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
8213
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
8214
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
8215
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
8216
 
                                vof += nvof;                    /* Move to next vertex */
8217
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
8218
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
8219
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
8220
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
8221
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
8222
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
8223
 
                                vof += nvof;                    /* Move to next vertex */
8224
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
8225
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
8226
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
8227
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
8228
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
8229
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
8230
 
                                vof += nvof;                    /* Move to next vertex */
8231
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
8232
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
8233
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
8234
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
8235
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
8236
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
8237
 
                                vof += nvof;                    /* Move to next vertex */
8238
 
                                vwe = wo4;                              /* Baricentric weighting */
8239
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
8240
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
8241
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
8242
 
                        }
8243
 
                }
8244
 
                {
8245
 
                        unsigned int oti;       /* Vertex offset value */
8246
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
8247
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
8248
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
8249
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
8250
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
8251
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
8252
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
8253
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
8254
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
8255
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
8256
 
                }
8257
 
        }
 
7997
        imdi_imp *p = (imdi_imp *)(s->impl);
 
7998
        unsigned char *ip0 = (unsigned char *)inp[0];
 
7999
        unsigned char *op0 = (unsigned char *)outp[0];
 
8000
        unsigned char *ep = ip0 + npix * 5 ;
 
8001
        pointer it0 = (pointer)p->in_tables[0];
 
8002
        pointer it1 = (pointer)p->in_tables[1];
 
8003
        pointer it2 = (pointer)p->in_tables[2];
 
8004
        pointer it3 = (pointer)p->in_tables[3];
 
8005
        pointer it4 = (pointer)p->in_tables[4];
 
8006
        pointer ot0 = (pointer)p->out_tables[0];
 
8007
        pointer ot1 = (pointer)p->out_tables[1];
 
8008
        pointer ot2 = (pointer)p->out_tables[2];
 
8009
        pointer ot3 = (pointer)p->out_tables[3];
 
8010
        pointer ot4 = (pointer)p->out_tables[4];
 
8011
        pointer im_base = (pointer)p->im_table;
 
8012
 
 
8013
        for(;ip0 < ep; ip0 += 5, op0 += 5) {
 
8014
                unsigned int ova0;      /* Output value accumulator */
 
8015
                unsigned int ova1;      /* Output value accumulator */
 
8016
                unsigned int ova2;      /* Output value partial accumulator */
 
8017
                {
 
8018
                        pointer imp;
 
8019
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
8020
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
8021
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
8022
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
8023
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
8024
                        {
 
8025
                                unsigned int ti_i;      /* Interpolation index variable */
 
8026
 
 
8027
                                ti_i  = IT_IX(it0, ip0[0]);
 
8028
                                wo0   = IT_WO(it0, ip0[0]);
 
8029
                                ti_i += IT_IX(it1, ip0[1]);
 
8030
                                wo1   = IT_WO(it1, ip0[1]);
 
8031
                                ti_i += IT_IX(it2, ip0[2]);
 
8032
                                wo2   = IT_WO(it2, ip0[2]);
 
8033
                                ti_i += IT_IX(it3, ip0[3]);
 
8034
                                wo3   = IT_WO(it3, ip0[3]);
 
8035
                                ti_i += IT_IX(it4, ip0[4]);
 
8036
                                wo4   = IT_WO(it4, ip0[4]);
 
8037
 
 
8038
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
8039
 
 
8040
                                /* Sort weighting values and vertex offset values */
 
8041
                                CEX(wo0, wo1);
 
8042
                                CEX(wo0, wo2);
 
8043
                                CEX(wo0, wo3);
 
8044
                                CEX(wo0, wo4);
 
8045
                                CEX(wo1, wo2);
 
8046
                                CEX(wo1, wo3);
 
8047
                                CEX(wo1, wo4);
 
8048
                                CEX(wo2, wo3);
 
8049
                                CEX(wo2, wo4);
 
8050
                                CEX(wo3, wo4);
 
8051
                        }
 
8052
                        {
 
8053
                                unsigned int nvof;      /* Next vertex offset value */
 
8054
                                unsigned int vof;       /* Vertex offset value */
 
8055
                                unsigned int vwe;       /* Vertex weighting */
 
8056
 
 
8057
                                vof = 0;                                /* First vertex offset is 0 */
 
8058
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
8059
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
8060
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
8061
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
8062
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
8063
                                ova2  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
8064
                                vof += nvof;                    /* Move to next vertex */
 
8065
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
8066
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
8067
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
8068
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
8069
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
8070
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
8071
                                vof += nvof;                    /* Move to next vertex */
 
8072
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
8073
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
8074
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
8075
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
8076
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
8077
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
8078
                                vof += nvof;                    /* Move to next vertex */
 
8079
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
8080
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
8081
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
8082
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
8083
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
8084
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
8085
                                vof += nvof;                    /* Move to next vertex */
 
8086
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
8087
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
8088
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
8089
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
8090
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
8091
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
8092
                                vof += nvof;                    /* Move to next vertex */
 
8093
                                vwe = wo4;                              /* Baricentric weighting */
 
8094
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
8095
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
8096
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
8097
                        }
 
8098
                }
 
8099
                {
 
8100
                        unsigned int oti;       /* Vertex offset value */
 
8101
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
8102
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
8103
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
8104
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
8105
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
8106
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
8107
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
8108
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
8109
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
8110
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
8111
                }
 
8112
        }
8258
8113
}
8259
8114
#undef IT_WO
8260
8115
#undef IT_IX
8268
8123
imdi_k25_gen(
8269
8124
genspec *g                      /* structure to be initialised */
8270
8125
) {
8271
 
        static unsigned char data[] = {
8272
 
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
8273
 
                0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
8274
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8275
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
8276
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
8277
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
8278
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
8279
 
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
8280
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
8281
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
8282
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
8283
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8284
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8285
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8286
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8287
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
8288
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
8289
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
8290
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
8291
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
8292
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
8293
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
8294
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
8295
 
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8296
 
                0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
8297
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
8298
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
8299
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8300
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8301
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8302
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8303
 
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 
8304
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
8305
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
8306
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
8307
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8308
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
8309
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
8310
 
                0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8311
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
8312
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
8313
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
8314
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
8315
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
8316
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
8317
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
8318
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
8319
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
8320
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8321
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
8322
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
8323
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x35, 0x5f, 0x35, 0x5f, 
8324
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
8325
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
8326
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
8327
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
8328
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
8329
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
8330
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
8331
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8332
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8333
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8334
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8335
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
8336
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x32, 0x35, 
8337
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8338
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8339
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
8340
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
8341
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
8342
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
8343
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
8344
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
8345
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
8346
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
8347
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
8348
 
                0x00, 0xf0, 0x04, 0x08 
8349
 
        };      /* Structure image */
8350
 
        
8351
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
8126
        static unsigned char data[] = {
 
8127
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
8128
                0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
8129
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8130
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8131
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8132
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8133
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8134
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
8135
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
8136
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
8137
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8138
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8139
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8140
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8141
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8142
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8143
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8144
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8145
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8146
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
8147
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8148
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8149
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8150
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8151
                0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
8152
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
8153
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
8154
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8155
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8156
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8157
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8158
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8159
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8160
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8161
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8162
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8163
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
8164
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
8165
                0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8166
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
8167
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
8168
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
8169
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
8170
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
8171
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
8172
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
8173
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
8174
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
8175
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8176
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
8177
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
8178
                0x2c, 0xf3, 0xdc, 0xb7, 0x35, 0x5f, 0x35, 0x5f,
 
8179
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
8180
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
8181
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
8182
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
8183
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
8184
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
8185
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
8186
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8187
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8188
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8189
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8190
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
8191
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x32, 0x35,
 
8192
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8193
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8194
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
8195
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
8196
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
8197
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
8198
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
8199
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
8200
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
8201
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
8202
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
8203
                0x00, 0xf0, 0x04, 0x08
 
8204
        };      /* Structure image */
 
8205
 
 
8206
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
8352
8207
}
8353
8208
 
8354
8209
static void
8355
8210
imdi_k25_tab(
8356
8211
tabspec *t                      /* structure to be initialised */
8357
8212
) {
8358
 
        static unsigned char data[] = {
8359
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
8360
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
8361
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
8362
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
8363
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
8364
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
8365
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
8366
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
8367
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
8368
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8369
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
8370
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
8371
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
8372
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
8373
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
8374
 
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
8375
 
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
8376
 
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
8377
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
8378
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
8379
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
8380
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
8381
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8382
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
8383
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8384
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8385
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8386
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
8387
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
8388
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
8389
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
8390
 
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
8391
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
8392
 
        };      /* Structure image */
8393
 
        
8394
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
8213
        static unsigned char data[] = {
 
8214
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
8215
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
8216
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
8217
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
8218
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
8219
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
8220
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8221
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
8222
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
8223
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8224
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
8225
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
8226
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
8227
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
8228
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
8229
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
8230
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
8231
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
8232
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
8233
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
8234
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
8235
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
8236
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8237
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
8238
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8239
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8240
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8241
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
8242
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8243
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8244
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8245
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
8246
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
8247
        };      /* Structure image */
 
8248
 
 
8249
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
8395
8250
}
8396
8251
 
8397
 
 
8398
 
 
8399
 
 
8400
 
 
8401
 
 
8402
8252
/* Integer Multi-Dimensional Interpolation */
8403
8253
/* Interpolation Kernel Code */
8404
8254
/* Generated by cgen */
8407
8257
 
8408
8258
/* see the Licence.txt file for licencing details.*/
8409
8259
 
8410
 
 
8411
8260
/*
8412
8261
   Interpolation kernel specs:
8413
8262
 
8503
8352
void **inp,             /* pointer to input pointers */
8504
8353
unsigned int npix       /* Number of pixels to process */
8505
8354
) {
8506
 
        imdi_imp *p = (imdi_imp *)(s->impl);
8507
 
        unsigned char *ip0 = (unsigned char *)inp[0];
8508
 
        unsigned char *op0 = (unsigned char *)outp[0];
8509
 
        unsigned char *ep = ip0 + npix * 6 ;
8510
 
        pointer it0 = (pointer)p->in_tables[0];
8511
 
        pointer it1 = (pointer)p->in_tables[1];
8512
 
        pointer it2 = (pointer)p->in_tables[2];
8513
 
        pointer it3 = (pointer)p->in_tables[3];
8514
 
        pointer it4 = (pointer)p->in_tables[4];
8515
 
        pointer it5 = (pointer)p->in_tables[5];
8516
 
        pointer ot0 = (pointer)p->out_tables[0];
8517
 
        pointer ot1 = (pointer)p->out_tables[1];
8518
 
        pointer ot2 = (pointer)p->out_tables[2];
8519
 
        pointer ot3 = (pointer)p->out_tables[3];
8520
 
        pointer ot4 = (pointer)p->out_tables[4];
8521
 
        pointer im_base = (pointer)p->im_table;
8522
 
        
8523
 
        for(;ip0 < ep; ip0 += 6, op0 += 5) {
8524
 
                unsigned int ova0;      /* Output value accumulator */
8525
 
                unsigned int ova1;      /* Output value accumulator */
8526
 
                unsigned int ova2;      /* Output value partial accumulator */
8527
 
                {
8528
 
                        pointer imp;
8529
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
8530
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
8531
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
8532
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
8533
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
8534
 
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
8535
 
                        {
8536
 
                                unsigned int ti_i;      /* Interpolation index variable */
8537
 
                                
8538
 
                                ti_i  = IT_IX(it0, ip0[0]);
8539
 
                                wo0   = IT_WO(it0, ip0[0]);
8540
 
                                ti_i += IT_IX(it1, ip0[1]);
8541
 
                                wo1   = IT_WO(it1, ip0[1]);
8542
 
                                ti_i += IT_IX(it2, ip0[2]);
8543
 
                                wo2   = IT_WO(it2, ip0[2]);
8544
 
                                ti_i += IT_IX(it3, ip0[3]);
8545
 
                                wo3   = IT_WO(it3, ip0[3]);
8546
 
                                ti_i += IT_IX(it4, ip0[4]);
8547
 
                                wo4   = IT_WO(it4, ip0[4]);
8548
 
                                ti_i += IT_IX(it5, ip0[5]);
8549
 
                                wo5   = IT_WO(it5, ip0[5]);
8550
 
                                
8551
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
8552
 
                                
8553
 
                                /* Sort weighting values and vertex offset values */
8554
 
                                CEX(wo0, wo1);
8555
 
                                CEX(wo0, wo2);
8556
 
                                CEX(wo0, wo3);
8557
 
                                CEX(wo0, wo4);
8558
 
                                CEX(wo0, wo5);
8559
 
                                CEX(wo1, wo2);
8560
 
                                CEX(wo1, wo3);
8561
 
                                CEX(wo1, wo4);
8562
 
                                CEX(wo1, wo5);
8563
 
                                CEX(wo2, wo3);
8564
 
                                CEX(wo2, wo4);
8565
 
                                CEX(wo2, wo5);
8566
 
                                CEX(wo3, wo4);
8567
 
                                CEX(wo3, wo5);
8568
 
                                CEX(wo4, wo5);
8569
 
                        }
8570
 
                        {
8571
 
                                unsigned int nvof;      /* Next vertex offset value */
8572
 
                                unsigned int vof;       /* Vertex offset value */
8573
 
                                unsigned int vwe;       /* Vertex weighting */
8574
 
                                
8575
 
                                vof = 0;                                /* First vertex offset is 0 */
8576
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
8577
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
8578
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
8579
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
8580
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
8581
 
                                ova2  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
8582
 
                                vof += nvof;                    /* Move to next vertex */
8583
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
8584
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
8585
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
8586
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
8587
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
8588
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
8589
 
                                vof += nvof;                    /* Move to next vertex */
8590
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
8591
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
8592
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
8593
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
8594
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
8595
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
8596
 
                                vof += nvof;                    /* Move to next vertex */
8597
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
8598
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
8599
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
8600
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
8601
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
8602
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
8603
 
                                vof += nvof;                    /* Move to next vertex */
8604
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
8605
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
8606
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
8607
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
8608
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
8609
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
8610
 
                                vof += nvof;                    /* Move to next vertex */
8611
 
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
8612
 
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
8613
 
                                vwe = wo4 - wo5;                /* Baricentric weighting */
8614
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
8615
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
8616
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
8617
 
                                vof += nvof;                    /* Move to next vertex */
8618
 
                                vwe = wo5;                              /* Baricentric weighting */
8619
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
8620
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
8621
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
8622
 
                        }
8623
 
                }
8624
 
                {
8625
 
                        unsigned int oti;       /* Vertex offset value */
8626
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
8627
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
8628
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
8629
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
8630
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
8631
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
8632
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
8633
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
8634
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
8635
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
8636
 
                }
8637
 
        }
 
8355
        imdi_imp *p = (imdi_imp *)(s->impl);
 
8356
        unsigned char *ip0 = (unsigned char *)inp[0];
 
8357
        unsigned char *op0 = (unsigned char *)outp[0];
 
8358
        unsigned char *ep = ip0 + npix * 6 ;
 
8359
        pointer it0 = (pointer)p->in_tables[0];
 
8360
        pointer it1 = (pointer)p->in_tables[1];
 
8361
        pointer it2 = (pointer)p->in_tables[2];
 
8362
        pointer it3 = (pointer)p->in_tables[3];
 
8363
        pointer it4 = (pointer)p->in_tables[4];
 
8364
        pointer it5 = (pointer)p->in_tables[5];
 
8365
        pointer ot0 = (pointer)p->out_tables[0];
 
8366
        pointer ot1 = (pointer)p->out_tables[1];
 
8367
        pointer ot2 = (pointer)p->out_tables[2];
 
8368
        pointer ot3 = (pointer)p->out_tables[3];
 
8369
        pointer ot4 = (pointer)p->out_tables[4];
 
8370
        pointer im_base = (pointer)p->im_table;
 
8371
 
 
8372
        for(;ip0 < ep; ip0 += 6, op0 += 5) {
 
8373
                unsigned int ova0;      /* Output value accumulator */
 
8374
                unsigned int ova1;      /* Output value accumulator */
 
8375
                unsigned int ova2;      /* Output value partial accumulator */
 
8376
                {
 
8377
                        pointer imp;
 
8378
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
8379
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
8380
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
8381
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
8382
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
8383
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
 
8384
                        {
 
8385
                                unsigned int ti_i;      /* Interpolation index variable */
 
8386
 
 
8387
                                ti_i  = IT_IX(it0, ip0[0]);
 
8388
                                wo0   = IT_WO(it0, ip0[0]);
 
8389
                                ti_i += IT_IX(it1, ip0[1]);
 
8390
                                wo1   = IT_WO(it1, ip0[1]);
 
8391
                                ti_i += IT_IX(it2, ip0[2]);
 
8392
                                wo2   = IT_WO(it2, ip0[2]);
 
8393
                                ti_i += IT_IX(it3, ip0[3]);
 
8394
                                wo3   = IT_WO(it3, ip0[3]);
 
8395
                                ti_i += IT_IX(it4, ip0[4]);
 
8396
                                wo4   = IT_WO(it4, ip0[4]);
 
8397
                                ti_i += IT_IX(it5, ip0[5]);
 
8398
                                wo5   = IT_WO(it5, ip0[5]);
 
8399
 
 
8400
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
8401
 
 
8402
                                /* Sort weighting values and vertex offset values */
 
8403
                                CEX(wo0, wo1);
 
8404
                                CEX(wo0, wo2);
 
8405
                                CEX(wo0, wo3);
 
8406
                                CEX(wo0, wo4);
 
8407
                                CEX(wo0, wo5);
 
8408
                                CEX(wo1, wo2);
 
8409
                                CEX(wo1, wo3);
 
8410
                                CEX(wo1, wo4);
 
8411
                                CEX(wo1, wo5);
 
8412
                                CEX(wo2, wo3);
 
8413
                                CEX(wo2, wo4);
 
8414
                                CEX(wo2, wo5);
 
8415
                                CEX(wo3, wo4);
 
8416
                                CEX(wo3, wo5);
 
8417
                                CEX(wo4, wo5);
 
8418
                        }
 
8419
                        {
 
8420
                                unsigned int nvof;      /* Next vertex offset value */
 
8421
                                unsigned int vof;       /* Vertex offset value */
 
8422
                                unsigned int vwe;       /* Vertex weighting */
 
8423
 
 
8424
                                vof = 0;                                /* First vertex offset is 0 */
 
8425
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
8426
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
8427
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
8428
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
8429
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
8430
                                ova2  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
8431
                                vof += nvof;                    /* Move to next vertex */
 
8432
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
8433
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
8434
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
8435
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
8436
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
8437
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
8438
                                vof += nvof;                    /* Move to next vertex */
 
8439
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
8440
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
8441
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
8442
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
8443
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
8444
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
8445
                                vof += nvof;                    /* Move to next vertex */
 
8446
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
8447
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
8448
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
8449
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
8450
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
8451
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
8452
                                vof += nvof;                    /* Move to next vertex */
 
8453
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
8454
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
8455
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
8456
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
8457
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
8458
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
8459
                                vof += nvof;                    /* Move to next vertex */
 
8460
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
 
8461
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
 
8462
                                vwe = wo4 - wo5;                /* Baricentric weighting */
 
8463
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
8464
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
8465
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
8466
                                vof += nvof;                    /* Move to next vertex */
 
8467
                                vwe = wo5;                              /* Baricentric weighting */
 
8468
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
8469
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
8470
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
8471
                        }
 
8472
                }
 
8473
                {
 
8474
                        unsigned int oti;       /* Vertex offset value */
 
8475
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
8476
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
8477
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
8478
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
8479
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
8480
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
8481
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
8482
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
8483
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
8484
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
8485
                }
 
8486
        }
8638
8487
}
8639
8488
#undef IT_WO
8640
8489
#undef IT_IX
8648
8497
imdi_k26_gen(
8649
8498
genspec *g                      /* structure to be initialised */
8650
8499
) {
8651
 
        static unsigned char data[] = {
8652
 
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
8653
 
                0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
8654
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8655
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
8656
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
8657
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
8658
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
8659
 
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
8660
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
8661
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
8662
 
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
8663
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8664
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8665
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8666
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8667
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
8668
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
8669
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
8670
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
8671
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
8672
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
8673
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
8674
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
8675
 
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8676
 
                0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
8677
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
8678
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
8679
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8680
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8681
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8682
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8683
 
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 
8684
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
8685
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
8686
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
8687
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8688
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
8689
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
8690
 
                0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8691
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
8692
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
8693
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
8694
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
8695
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
8696
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
8697
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
8698
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
8699
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
8700
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8701
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
8702
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
8703
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x36, 0x5f, 0x35, 0x5f, 
8704
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
8705
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
8706
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
8707
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
8708
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
8709
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
8710
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
8711
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8712
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8713
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8714
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8715
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
8716
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x32, 0x36, 
8717
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8718
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8719
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
8720
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
8721
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
8722
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
8723
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
8724
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
8725
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
8726
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
8727
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
8728
 
                0x00, 0xf0, 0x04, 0x08 
8729
 
        };      /* Structure image */
8730
 
        
8731
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
8500
        static unsigned char data[] = {
 
8501
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
8502
                0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
8503
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8504
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8505
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8506
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8507
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8508
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
8509
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
8510
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
8511
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8512
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8513
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8514
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8515
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8516
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8517
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8518
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8519
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8520
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
8521
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8522
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8523
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8524
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8525
                0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
8526
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
8527
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
8528
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8529
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8530
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8531
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8532
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8533
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8534
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8535
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8536
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8537
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
8538
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
8539
                0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8540
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
8541
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
8542
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
8543
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
8544
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
8545
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
8546
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
8547
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
8548
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
8549
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8550
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
8551
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
8552
                0x2c, 0xf3, 0xdc, 0xb7, 0x36, 0x5f, 0x35, 0x5f,
 
8553
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
8554
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
8555
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
8556
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
8557
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
8558
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
8559
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
8560
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8561
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8562
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8563
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8564
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
8565
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x32, 0x36,
 
8566
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8567
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8568
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
8569
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
8570
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
8571
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
8572
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
8573
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
8574
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
8575
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
8576
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
8577
                0x00, 0xf0, 0x04, 0x08
 
8578
        };      /* Structure image */
 
8579
 
 
8580
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
8732
8581
}
8733
8582
 
8734
8583
static void
8735
8584
imdi_k26_tab(
8736
8585
tabspec *t                      /* structure to be initialised */
8737
8586
) {
8738
 
        static unsigned char data[] = {
8739
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
8740
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
8741
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
8742
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
8743
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
8744
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
8745
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
8746
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
8747
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
8748
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8749
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
8750
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
8751
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
8752
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
8753
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
8754
 
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
8755
 
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
8756
 
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
8757
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
8758
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
8759
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
8760
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
8761
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8762
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
8763
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8764
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8765
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
8766
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
8767
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
8768
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
8769
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
8770
 
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
8771
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
8772
 
        };      /* Structure image */
8773
 
        
8774
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
8587
        static unsigned char data[] = {
 
8588
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
8589
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
8590
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
8591
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
8592
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
8593
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
8594
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8595
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
8596
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
8597
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8598
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
8599
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
8600
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
8601
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
8602
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
8603
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
8604
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
8605
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
8606
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
8607
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
8608
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
8609
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
8610
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8611
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
8612
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8613
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8614
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8615
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
8616
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8617
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8618
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8619
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
8620
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
8621
        };      /* Structure image */
 
8622
 
 
8623
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
8775
8624
}
8776
8625
 
8777
 
 
8778
 
 
8779
 
 
8780
 
 
8781
 
 
8782
8626
/* Integer Multi-Dimensional Interpolation */
8783
8627
/* Interpolation Kernel Code */
8784
8628
/* Generated by cgen */
8787
8631
 
8788
8632
/* see the Licence.txt file for licencing details.*/
8789
8633
 
8790
 
 
8791
8634
/*
8792
8635
   Interpolation kernel specs:
8793
8636
 
8885
8728
void **inp,             /* pointer to input pointers */
8886
8729
unsigned int npix       /* Number of pixels to process */
8887
8730
) {
8888
 
        imdi_imp *p = (imdi_imp *)(s->impl);
8889
 
        unsigned char *ip0 = (unsigned char *)inp[0];
8890
 
        unsigned char *op0 = (unsigned char *)outp[0];
8891
 
        unsigned char *ep = ip0 + npix * 7 ;
8892
 
        pointer it0 = (pointer)p->in_tables[0];
8893
 
        pointer it1 = (pointer)p->in_tables[1];
8894
 
        pointer it2 = (pointer)p->in_tables[2];
8895
 
        pointer it3 = (pointer)p->in_tables[3];
8896
 
        pointer it4 = (pointer)p->in_tables[4];
8897
 
        pointer it5 = (pointer)p->in_tables[5];
8898
 
        pointer it6 = (pointer)p->in_tables[6];
8899
 
        pointer ot0 = (pointer)p->out_tables[0];
8900
 
        pointer ot1 = (pointer)p->out_tables[1];
8901
 
        pointer ot2 = (pointer)p->out_tables[2];
8902
 
        pointer ot3 = (pointer)p->out_tables[3];
8903
 
        pointer ot4 = (pointer)p->out_tables[4];
8904
 
        pointer im_base = (pointer)p->im_table;
8905
 
        
8906
 
        for(;ip0 < ep; ip0 += 7, op0 += 5) {
8907
 
                unsigned int ova0;      /* Output value accumulator */
8908
 
                unsigned int ova1;      /* Output value accumulator */
8909
 
                unsigned int ova2;      /* Output value partial accumulator */
8910
 
                {
8911
 
                        pointer imp;
8912
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
8913
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
8914
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
8915
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
8916
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
8917
 
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
8918
 
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
8919
 
                        {
8920
 
                                unsigned int ti_i;      /* Interpolation index variable */
8921
 
                                
8922
 
                                ti_i  = IT_IX(it0, ip0[0]);
8923
 
                                wo0   = IT_WO(it0, ip0[0]);
8924
 
                                ti_i += IT_IX(it1, ip0[1]);
8925
 
                                wo1   = IT_WO(it1, ip0[1]);
8926
 
                                ti_i += IT_IX(it2, ip0[2]);
8927
 
                                wo2   = IT_WO(it2, ip0[2]);
8928
 
                                ti_i += IT_IX(it3, ip0[3]);
8929
 
                                wo3   = IT_WO(it3, ip0[3]);
8930
 
                                ti_i += IT_IX(it4, ip0[4]);
8931
 
                                wo4   = IT_WO(it4, ip0[4]);
8932
 
                                ti_i += IT_IX(it5, ip0[5]);
8933
 
                                wo5   = IT_WO(it5, ip0[5]);
8934
 
                                ti_i += IT_IX(it6, ip0[6]);
8935
 
                                wo6   = IT_WO(it6, ip0[6]);
8936
 
                                
8937
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
8938
 
                                
8939
 
                                /* Sort weighting values and vertex offset values */
8940
 
                                CEX(wo0, wo1);
8941
 
                                CEX(wo0, wo2);
8942
 
                                CEX(wo0, wo3);
8943
 
                                CEX(wo0, wo4);
8944
 
                                CEX(wo0, wo5);
8945
 
                                CEX(wo0, wo6);
8946
 
                                CEX(wo1, wo2);
8947
 
                                CEX(wo1, wo3);
8948
 
                                CEX(wo1, wo4);
8949
 
                                CEX(wo1, wo5);
8950
 
                                CEX(wo1, wo6);
8951
 
                                CEX(wo2, wo3);
8952
 
                                CEX(wo2, wo4);
8953
 
                                CEX(wo2, wo5);
8954
 
                                CEX(wo2, wo6);
8955
 
                                CEX(wo3, wo4);
8956
 
                                CEX(wo3, wo5);
8957
 
                                CEX(wo3, wo6);
8958
 
                                CEX(wo4, wo5);
8959
 
                                CEX(wo4, wo6);
8960
 
                                CEX(wo5, wo6);
8961
 
                        }
8962
 
                        {
8963
 
                                unsigned int nvof;      /* Next vertex offset value */
8964
 
                                unsigned int vof;       /* Vertex offset value */
8965
 
                                unsigned int vwe;       /* Vertex weighting */
8966
 
                                
8967
 
                                vof = 0;                                /* First vertex offset is 0 */
8968
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
8969
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
8970
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
8971
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
8972
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
8973
 
                                ova2  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
8974
 
                                vof += nvof;                    /* Move to next vertex */
8975
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
8976
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
8977
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
8978
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
8979
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
8980
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
8981
 
                                vof += nvof;                    /* Move to next vertex */
8982
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
8983
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
8984
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
8985
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
8986
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
8987
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
8988
 
                                vof += nvof;                    /* Move to next vertex */
8989
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
8990
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
8991
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
8992
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
8993
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
8994
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
8995
 
                                vof += nvof;                    /* Move to next vertex */
8996
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
8997
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
8998
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
8999
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
9000
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
9001
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
9002
 
                                vof += nvof;                    /* Move to next vertex */
9003
 
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
9004
 
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
9005
 
                                vwe = wo4 - wo5;                /* Baricentric weighting */
9006
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
9007
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
9008
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
9009
 
                                vof += nvof;                    /* Move to next vertex */
9010
 
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
9011
 
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
9012
 
                                vwe = wo5 - wo6;                /* Baricentric weighting */
9013
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
9014
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
9015
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
9016
 
                                vof += nvof;                    /* Move to next vertex */
9017
 
                                vwe = wo6;                              /* Baricentric weighting */
9018
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
9019
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
9020
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
9021
 
                        }
9022
 
                }
9023
 
                {
9024
 
                        unsigned int oti;       /* Vertex offset value */
9025
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
9026
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
9027
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
9028
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
9029
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
9030
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
9031
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
9032
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
9033
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
9034
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
9035
 
                }
9036
 
        }
 
8731
        imdi_imp *p = (imdi_imp *)(s->impl);
 
8732
        unsigned char *ip0 = (unsigned char *)inp[0];
 
8733
        unsigned char *op0 = (unsigned char *)outp[0];
 
8734
        unsigned char *ep = ip0 + npix * 7 ;
 
8735
        pointer it0 = (pointer)p->in_tables[0];
 
8736
        pointer it1 = (pointer)p->in_tables[1];
 
8737
        pointer it2 = (pointer)p->in_tables[2];
 
8738
        pointer it3 = (pointer)p->in_tables[3];
 
8739
        pointer it4 = (pointer)p->in_tables[4];
 
8740
        pointer it5 = (pointer)p->in_tables[5];
 
8741
        pointer it6 = (pointer)p->in_tables[6];
 
8742
        pointer ot0 = (pointer)p->out_tables[0];
 
8743
        pointer ot1 = (pointer)p->out_tables[1];
 
8744
        pointer ot2 = (pointer)p->out_tables[2];
 
8745
        pointer ot3 = (pointer)p->out_tables[3];
 
8746
        pointer ot4 = (pointer)p->out_tables[4];
 
8747
        pointer im_base = (pointer)p->im_table;
 
8748
 
 
8749
        for(;ip0 < ep; ip0 += 7, op0 += 5) {
 
8750
                unsigned int ova0;      /* Output value accumulator */
 
8751
                unsigned int ova1;      /* Output value accumulator */
 
8752
                unsigned int ova2;      /* Output value partial accumulator */
 
8753
                {
 
8754
                        pointer imp;
 
8755
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
8756
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
8757
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
8758
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
8759
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
8760
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
 
8761
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
 
8762
                        {
 
8763
                                unsigned int ti_i;      /* Interpolation index variable */
 
8764
 
 
8765
                                ti_i  = IT_IX(it0, ip0[0]);
 
8766
                                wo0   = IT_WO(it0, ip0[0]);
 
8767
                                ti_i += IT_IX(it1, ip0[1]);
 
8768
                                wo1   = IT_WO(it1, ip0[1]);
 
8769
                                ti_i += IT_IX(it2, ip0[2]);
 
8770
                                wo2   = IT_WO(it2, ip0[2]);
 
8771
                                ti_i += IT_IX(it3, ip0[3]);
 
8772
                                wo3   = IT_WO(it3, ip0[3]);
 
8773
                                ti_i += IT_IX(it4, ip0[4]);
 
8774
                                wo4   = IT_WO(it4, ip0[4]);
 
8775
                                ti_i += IT_IX(it5, ip0[5]);
 
8776
                                wo5   = IT_WO(it5, ip0[5]);
 
8777
                                ti_i += IT_IX(it6, ip0[6]);
 
8778
                                wo6   = IT_WO(it6, ip0[6]);
 
8779
 
 
8780
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
8781
 
 
8782
                                /* Sort weighting values and vertex offset values */
 
8783
                                CEX(wo0, wo1);
 
8784
                                CEX(wo0, wo2);
 
8785
                                CEX(wo0, wo3);
 
8786
                                CEX(wo0, wo4);
 
8787
                                CEX(wo0, wo5);
 
8788
                                CEX(wo0, wo6);
 
8789
                                CEX(wo1, wo2);
 
8790
                                CEX(wo1, wo3);
 
8791
                                CEX(wo1, wo4);
 
8792
                                CEX(wo1, wo5);
 
8793
                                CEX(wo1, wo6);
 
8794
                                CEX(wo2, wo3);
 
8795
                                CEX(wo2, wo4);
 
8796
                                CEX(wo2, wo5);
 
8797
                                CEX(wo2, wo6);
 
8798
                                CEX(wo3, wo4);
 
8799
                                CEX(wo3, wo5);
 
8800
                                CEX(wo3, wo6);
 
8801
                                CEX(wo4, wo5);
 
8802
                                CEX(wo4, wo6);
 
8803
                                CEX(wo5, wo6);
 
8804
                        }
 
8805
                        {
 
8806
                                unsigned int nvof;      /* Next vertex offset value */
 
8807
                                unsigned int vof;       /* Vertex offset value */
 
8808
                                unsigned int vwe;       /* Vertex weighting */
 
8809
 
 
8810
                                vof = 0;                                /* First vertex offset is 0 */
 
8811
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
8812
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
8813
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
8814
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
8815
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
8816
                                ova2  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
8817
                                vof += nvof;                    /* Move to next vertex */
 
8818
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
8819
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
8820
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
8821
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
8822
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
8823
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
8824
                                vof += nvof;                    /* Move to next vertex */
 
8825
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
8826
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
8827
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
8828
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
8829
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
8830
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
8831
                                vof += nvof;                    /* Move to next vertex */
 
8832
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
8833
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
8834
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
8835
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
8836
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
8837
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
8838
                                vof += nvof;                    /* Move to next vertex */
 
8839
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
8840
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
8841
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
8842
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
8843
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
8844
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
8845
                                vof += nvof;                    /* Move to next vertex */
 
8846
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
 
8847
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
 
8848
                                vwe = wo4 - wo5;                /* Baricentric weighting */
 
8849
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
8850
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
8851
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
8852
                                vof += nvof;                    /* Move to next vertex */
 
8853
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
 
8854
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
 
8855
                                vwe = wo5 - wo6;                /* Baricentric weighting */
 
8856
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
8857
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
8858
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
8859
                                vof += nvof;                    /* Move to next vertex */
 
8860
                                vwe = wo6;                              /* Baricentric weighting */
 
8861
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
8862
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
8863
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
8864
                        }
 
8865
                }
 
8866
                {
 
8867
                        unsigned int oti;       /* Vertex offset value */
 
8868
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
8869
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
8870
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
8871
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
8872
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
8873
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
8874
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
8875
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
8876
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
8877
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
8878
                }
 
8879
        }
9037
8880
}
9038
8881
#undef IT_WO
9039
8882
#undef IT_IX
9047
8890
imdi_k27_gen(
9048
8891
genspec *g                      /* structure to be initialised */
9049
8892
) {
9050
 
        static unsigned char data[] = {
9051
 
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
9052
 
                0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
9053
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9054
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9055
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9056
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9057
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9058
 
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
9059
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
9060
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
9061
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
9062
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9063
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9064
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9065
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9066
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9067
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9068
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9069
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9070
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
9071
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9072
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9073
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9074
 
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9075
 
                0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
9076
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
9077
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
9078
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9079
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9080
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9081
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9082
 
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 
9083
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9084
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9085
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9086
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9087
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
9088
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
9089
 
                0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9090
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
9091
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
9092
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
9093
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
9094
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
9095
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
9096
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
9097
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
9098
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
9099
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9100
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
9101
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
9102
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x37, 0x5f, 0x35, 0x5f, 
9103
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
9104
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
9105
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
9106
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
9107
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
9108
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
9109
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
9110
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9111
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9112
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9113
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9114
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
9115
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x32, 0x37, 
9116
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9117
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9118
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
9119
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
9120
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
9121
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
9122
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
9123
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
9124
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
9125
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
9126
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
9127
 
                0x00, 0xf0, 0x04, 0x08 
9128
 
        };      /* Structure image */
9129
 
        
9130
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
8893
        static unsigned char data[] = {
 
8894
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
8895
                0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
8896
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8897
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8898
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8899
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8900
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8901
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
8902
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
8903
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
8904
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
8905
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8906
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8907
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8908
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8909
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8910
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8911
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8912
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8913
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
8914
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8915
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8916
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8917
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8918
                0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
8919
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
8920
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
8921
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8922
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8923
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8924
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8925
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8926
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8927
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8928
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8929
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8930
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
8931
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
8932
                0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8933
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
8934
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
8935
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
8936
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
8937
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
8938
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
8939
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
8940
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
8941
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
8942
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8943
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
8944
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
8945
                0x2c, 0xf3, 0xdc, 0xb7, 0x37, 0x5f, 0x35, 0x5f,
 
8946
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
8947
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
8948
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
8949
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
8950
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
8951
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
8952
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
8953
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8954
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8955
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8956
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8957
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
8958
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x32, 0x37,
 
8959
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8960
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8961
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
8962
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
8963
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
8964
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
8965
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
8966
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
8967
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
8968
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
8969
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
8970
                0x00, 0xf0, 0x04, 0x08
 
8971
        };      /* Structure image */
 
8972
 
 
8973
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
9131
8974
}
9132
8975
 
9133
8976
static void
9134
8977
imdi_k27_tab(
9135
8978
tabspec *t                      /* structure to be initialised */
9136
8979
) {
9137
 
        static unsigned char data[] = {
9138
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
9139
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
9140
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
9141
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
9142
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
9143
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
9144
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9145
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
9146
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
9147
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9148
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
9149
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
9150
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
9151
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
9152
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
9153
 
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
9154
 
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
9155
 
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
9156
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
9157
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
9158
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
9159
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
9160
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9161
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
9162
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9163
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9164
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9165
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
9166
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9167
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9168
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9169
 
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
9170
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
9171
 
        };      /* Structure image */
9172
 
        
9173
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
8980
        static unsigned char data[] = {
 
8981
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
8982
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
8983
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
8984
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
8985
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
8986
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
8987
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
8988
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
8989
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
8990
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
8991
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
8992
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
8993
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
8994
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
8995
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
8996
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
8997
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
8998
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
8999
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
9000
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
9001
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
9002
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
9003
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9004
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
9005
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9006
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9007
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9008
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
9009
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9010
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9011
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9012
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
9013
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
9014
        };      /* Structure image */
 
9015
 
 
9016
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
9174
9017
}
9175
9018
 
9176
 
 
9177
 
 
9178
 
 
9179
 
 
9180
 
 
9181
9019
/* Integer Multi-Dimensional Interpolation */
9182
9020
/* Interpolation Kernel Code */
9183
9021
/* Generated by cgen */
9186
9024
 
9187
9025
/* see the Licence.txt file for licencing details.*/
9188
9026
 
9189
 
 
9190
9027
/*
9191
9028
   Interpolation kernel specs:
9192
9029
 
9286
9123
void **inp,             /* pointer to input pointers */
9287
9124
unsigned int npix       /* Number of pixels to process */
9288
9125
) {
9289
 
        imdi_imp *p = (imdi_imp *)(s->impl);
9290
 
        unsigned char *ip0 = (unsigned char *)inp[0];
9291
 
        unsigned char *op0 = (unsigned char *)outp[0];
9292
 
        unsigned char *ep = ip0 + npix * 8 ;
9293
 
        pointer it0 = (pointer)p->in_tables[0];
9294
 
        pointer it1 = (pointer)p->in_tables[1];
9295
 
        pointer it2 = (pointer)p->in_tables[2];
9296
 
        pointer it3 = (pointer)p->in_tables[3];
9297
 
        pointer it4 = (pointer)p->in_tables[4];
9298
 
        pointer it5 = (pointer)p->in_tables[5];
9299
 
        pointer it6 = (pointer)p->in_tables[6];
9300
 
        pointer it7 = (pointer)p->in_tables[7];
9301
 
        pointer ot0 = (pointer)p->out_tables[0];
9302
 
        pointer ot1 = (pointer)p->out_tables[1];
9303
 
        pointer ot2 = (pointer)p->out_tables[2];
9304
 
        pointer ot3 = (pointer)p->out_tables[3];
9305
 
        pointer ot4 = (pointer)p->out_tables[4];
9306
 
        pointer im_base = (pointer)p->im_table;
9307
 
        
9308
 
        for(;ip0 < ep; ip0 += 8, op0 += 5) {
9309
 
                unsigned int ova0;      /* Output value accumulator */
9310
 
                unsigned int ova1;      /* Output value accumulator */
9311
 
                unsigned int ova2;      /* Output value partial accumulator */
9312
 
                {
9313
 
                        pointer imp;
9314
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
9315
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
9316
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
9317
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
9318
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
9319
 
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
9320
 
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
9321
 
                        unsigned int wo7;       /* Weighting value and vertex offset variable */
9322
 
                        {
9323
 
                                unsigned int ti_i;      /* Interpolation index variable */
9324
 
                                
9325
 
                                ti_i  = IT_IX(it0, ip0[0]);
9326
 
                                wo0   = IT_WO(it0, ip0[0]);
9327
 
                                ti_i += IT_IX(it1, ip0[1]);
9328
 
                                wo1   = IT_WO(it1, ip0[1]);
9329
 
                                ti_i += IT_IX(it2, ip0[2]);
9330
 
                                wo2   = IT_WO(it2, ip0[2]);
9331
 
                                ti_i += IT_IX(it3, ip0[3]);
9332
 
                                wo3   = IT_WO(it3, ip0[3]);
9333
 
                                ti_i += IT_IX(it4, ip0[4]);
9334
 
                                wo4   = IT_WO(it4, ip0[4]);
9335
 
                                ti_i += IT_IX(it5, ip0[5]);
9336
 
                                wo5   = IT_WO(it5, ip0[5]);
9337
 
                                ti_i += IT_IX(it6, ip0[6]);
9338
 
                                wo6   = IT_WO(it6, ip0[6]);
9339
 
                                ti_i += IT_IX(it7, ip0[7]);
9340
 
                                wo7   = IT_WO(it7, ip0[7]);
9341
 
                                
9342
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
9343
 
                                
9344
 
                                /* Sort weighting values and vertex offset values */
9345
 
                                CEX(wo0, wo1);
9346
 
                                CEX(wo0, wo2);
9347
 
                                CEX(wo0, wo3);
9348
 
                                CEX(wo0, wo4);
9349
 
                                CEX(wo0, wo5);
9350
 
                                CEX(wo0, wo6);
9351
 
                                CEX(wo0, wo7);
9352
 
                                CEX(wo1, wo2);
9353
 
                                CEX(wo1, wo3);
9354
 
                                CEX(wo1, wo4);
9355
 
                                CEX(wo1, wo5);
9356
 
                                CEX(wo1, wo6);
9357
 
                                CEX(wo1, wo7);
9358
 
                                CEX(wo2, wo3);
9359
 
                                CEX(wo2, wo4);
9360
 
                                CEX(wo2, wo5);
9361
 
                                CEX(wo2, wo6);
9362
 
                                CEX(wo2, wo7);
9363
 
                                CEX(wo3, wo4);
9364
 
                                CEX(wo3, wo5);
9365
 
                                CEX(wo3, wo6);
9366
 
                                CEX(wo3, wo7);
9367
 
                                CEX(wo4, wo5);
9368
 
                                CEX(wo4, wo6);
9369
 
                                CEX(wo4, wo7);
9370
 
                                CEX(wo5, wo6);
9371
 
                                CEX(wo5, wo7);
9372
 
                                CEX(wo6, wo7);
9373
 
                        }
9374
 
                        {
9375
 
                                unsigned int nvof;      /* Next vertex offset value */
9376
 
                                unsigned int vof;       /* Vertex offset value */
9377
 
                                unsigned int vwe;       /* Vertex weighting */
9378
 
                                
9379
 
                                vof = 0;                                /* First vertex offset is 0 */
9380
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
9381
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
9382
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
9383
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
9384
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
9385
 
                                ova2  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
9386
 
                                vof += nvof;                    /* Move to next vertex */
9387
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
9388
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
9389
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
9390
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
9391
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
9392
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
9393
 
                                vof += nvof;                    /* Move to next vertex */
9394
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
9395
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
9396
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
9397
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
9398
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
9399
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
9400
 
                                vof += nvof;                    /* Move to next vertex */
9401
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
9402
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
9403
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
9404
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
9405
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
9406
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
9407
 
                                vof += nvof;                    /* Move to next vertex */
9408
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
9409
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
9410
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
9411
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
9412
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
9413
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
9414
 
                                vof += nvof;                    /* Move to next vertex */
9415
 
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
9416
 
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
9417
 
                                vwe = wo4 - wo5;                /* Baricentric weighting */
9418
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
9419
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
9420
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
9421
 
                                vof += nvof;                    /* Move to next vertex */
9422
 
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
9423
 
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
9424
 
                                vwe = wo5 - wo6;                /* Baricentric weighting */
9425
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
9426
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
9427
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
9428
 
                                vof += nvof;                    /* Move to next vertex */
9429
 
                                nvof = (wo7 & 0x7fffff);        /* Extract offset value */
9430
 
                                wo7 = (wo7 >> 23);              /* Extract weighting value */
9431
 
                                vwe = wo6 - wo7;                /* Baricentric weighting */
9432
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
9433
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
9434
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
9435
 
                                vof += nvof;                    /* Move to next vertex */
9436
 
                                vwe = wo7;                              /* Baricentric weighting */
9437
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
9438
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
9439
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
9440
 
                        }
9441
 
                }
9442
 
                {
9443
 
                        unsigned int oti;       /* Vertex offset value */
9444
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
9445
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
9446
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
9447
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
9448
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
9449
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
9450
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
9451
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
9452
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
9453
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
9454
 
                }
9455
 
        }
 
9126
        imdi_imp *p = (imdi_imp *)(s->impl);
 
9127
        unsigned char *ip0 = (unsigned char *)inp[0];
 
9128
        unsigned char *op0 = (unsigned char *)outp[0];
 
9129
        unsigned char *ep = ip0 + npix * 8 ;
 
9130
        pointer it0 = (pointer)p->in_tables[0];
 
9131
        pointer it1 = (pointer)p->in_tables[1];
 
9132
        pointer it2 = (pointer)p->in_tables[2];
 
9133
        pointer it3 = (pointer)p->in_tables[3];
 
9134
        pointer it4 = (pointer)p->in_tables[4];
 
9135
        pointer it5 = (pointer)p->in_tables[5];
 
9136
        pointer it6 = (pointer)p->in_tables[6];
 
9137
        pointer it7 = (pointer)p->in_tables[7];
 
9138
        pointer ot0 = (pointer)p->out_tables[0];
 
9139
        pointer ot1 = (pointer)p->out_tables[1];
 
9140
        pointer ot2 = (pointer)p->out_tables[2];
 
9141
        pointer ot3 = (pointer)p->out_tables[3];
 
9142
        pointer ot4 = (pointer)p->out_tables[4];
 
9143
        pointer im_base = (pointer)p->im_table;
 
9144
 
 
9145
        for(;ip0 < ep; ip0 += 8, op0 += 5) {
 
9146
                unsigned int ova0;      /* Output value accumulator */
 
9147
                unsigned int ova1;      /* Output value accumulator */
 
9148
                unsigned int ova2;      /* Output value partial accumulator */
 
9149
                {
 
9150
                        pointer imp;
 
9151
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
9152
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
9153
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
9154
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
9155
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
9156
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
 
9157
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
 
9158
                        unsigned int wo7;       /* Weighting value and vertex offset variable */
 
9159
                        {
 
9160
                                unsigned int ti_i;      /* Interpolation index variable */
 
9161
 
 
9162
                                ti_i  = IT_IX(it0, ip0[0]);
 
9163
                                wo0   = IT_WO(it0, ip0[0]);
 
9164
                                ti_i += IT_IX(it1, ip0[1]);
 
9165
                                wo1   = IT_WO(it1, ip0[1]);
 
9166
                                ti_i += IT_IX(it2, ip0[2]);
 
9167
                                wo2   = IT_WO(it2, ip0[2]);
 
9168
                                ti_i += IT_IX(it3, ip0[3]);
 
9169
                                wo3   = IT_WO(it3, ip0[3]);
 
9170
                                ti_i += IT_IX(it4, ip0[4]);
 
9171
                                wo4   = IT_WO(it4, ip0[4]);
 
9172
                                ti_i += IT_IX(it5, ip0[5]);
 
9173
                                wo5   = IT_WO(it5, ip0[5]);
 
9174
                                ti_i += IT_IX(it6, ip0[6]);
 
9175
                                wo6   = IT_WO(it6, ip0[6]);
 
9176
                                ti_i += IT_IX(it7, ip0[7]);
 
9177
                                wo7   = IT_WO(it7, ip0[7]);
 
9178
 
 
9179
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
9180
 
 
9181
                                /* Sort weighting values and vertex offset values */
 
9182
                                CEX(wo0, wo1);
 
9183
                                CEX(wo0, wo2);
 
9184
                                CEX(wo0, wo3);
 
9185
                                CEX(wo0, wo4);
 
9186
                                CEX(wo0, wo5);
 
9187
                                CEX(wo0, wo6);
 
9188
                                CEX(wo0, wo7);
 
9189
                                CEX(wo1, wo2);
 
9190
                                CEX(wo1, wo3);
 
9191
                                CEX(wo1, wo4);
 
9192
                                CEX(wo1, wo5);
 
9193
                                CEX(wo1, wo6);
 
9194
                                CEX(wo1, wo7);
 
9195
                                CEX(wo2, wo3);
 
9196
                                CEX(wo2, wo4);
 
9197
                                CEX(wo2, wo5);
 
9198
                                CEX(wo2, wo6);
 
9199
                                CEX(wo2, wo7);
 
9200
                                CEX(wo3, wo4);
 
9201
                                CEX(wo3, wo5);
 
9202
                                CEX(wo3, wo6);
 
9203
                                CEX(wo3, wo7);
 
9204
                                CEX(wo4, wo5);
 
9205
                                CEX(wo4, wo6);
 
9206
                                CEX(wo4, wo7);
 
9207
                                CEX(wo5, wo6);
 
9208
                                CEX(wo5, wo7);
 
9209
                                CEX(wo6, wo7);
 
9210
                        }
 
9211
                        {
 
9212
                                unsigned int nvof;      /* Next vertex offset value */
 
9213
                                unsigned int vof;       /* Vertex offset value */
 
9214
                                unsigned int vwe;       /* Vertex weighting */
 
9215
 
 
9216
                                vof = 0;                                /* First vertex offset is 0 */
 
9217
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
9218
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
9219
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
9220
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
9221
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
9222
                                ova2  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
9223
                                vof += nvof;                    /* Move to next vertex */
 
9224
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
9225
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
9226
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
9227
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
9228
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
9229
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
9230
                                vof += nvof;                    /* Move to next vertex */
 
9231
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
9232
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
9233
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
9234
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
9235
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
9236
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
9237
                                vof += nvof;                    /* Move to next vertex */
 
9238
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
9239
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
9240
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
9241
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
9242
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
9243
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
9244
                                vof += nvof;                    /* Move to next vertex */
 
9245
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
9246
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
9247
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
9248
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
9249
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
9250
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
9251
                                vof += nvof;                    /* Move to next vertex */
 
9252
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
 
9253
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
 
9254
                                vwe = wo4 - wo5;                /* Baricentric weighting */
 
9255
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
9256
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
9257
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
9258
                                vof += nvof;                    /* Move to next vertex */
 
9259
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
 
9260
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
 
9261
                                vwe = wo5 - wo6;                /* Baricentric weighting */
 
9262
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
9263
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
9264
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
9265
                                vof += nvof;                    /* Move to next vertex */
 
9266
                                nvof = (wo7 & 0x7fffff);        /* Extract offset value */
 
9267
                                wo7 = (wo7 >> 23);              /* Extract weighting value */
 
9268
                                vwe = wo6 - wo7;                /* Baricentric weighting */
 
9269
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
9270
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
9271
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
9272
                                vof += nvof;                    /* Move to next vertex */
 
9273
                                vwe = wo7;                              /* Baricentric weighting */
 
9274
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
9275
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
9276
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
9277
                        }
 
9278
                }
 
9279
                {
 
9280
                        unsigned int oti;       /* Vertex offset value */
 
9281
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
9282
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
9283
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
9284
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
9285
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
9286
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
9287
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
9288
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
9289
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
9290
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
9291
                }
 
9292
        }
9456
9293
}
9457
9294
#undef IT_WO
9458
9295
#undef IT_IX
9466
9303
imdi_k28_gen(
9467
9304
genspec *g                      /* structure to be initialised */
9468
9305
) {
9469
 
        static unsigned char data[] = {
9470
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9471
 
                0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
9472
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9473
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9474
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9475
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9476
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9477
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9478
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9479
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9480
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9481
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9482
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9483
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9484
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9485
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9486
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9487
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9488
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9489
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
9490
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9491
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9492
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9493
 
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9494
 
                0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
9495
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
9496
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
9497
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9498
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9499
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9500
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9501
 
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 
9502
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9503
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9504
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9505
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9506
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
9507
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
9508
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9509
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
9510
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
9511
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
9512
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
9513
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
9514
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
9515
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
9516
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
9517
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
9518
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9519
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
9520
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
9521
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x38, 0x5f, 0x35, 0x5f, 
9522
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
9523
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
9524
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
9525
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
9526
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
9527
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
9528
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
9529
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9530
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9531
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9532
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9533
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
9534
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x32, 0x38, 
9535
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9536
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9537
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
9538
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
9539
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
9540
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
9541
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
9542
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
9543
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
9544
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
9545
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
9546
 
                0x00, 0xf0, 0x04, 0x08 
9547
 
        };      /* Structure image */
9548
 
        
9549
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
9306
        static unsigned char data[] = {
 
9307
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9308
                0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
9309
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9310
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9311
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9312
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9313
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9314
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9315
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9316
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9317
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9318
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9319
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9320
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9321
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9322
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9323
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9324
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9325
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9326
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
9327
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9328
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9329
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9330
                0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9331
                0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
9332
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
9333
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
9334
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9335
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9336
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9337
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9338
                0x74, 0x6c, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9339
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9340
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9341
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9342
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9343
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
9344
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
9345
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9346
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
9347
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
9348
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
9349
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
9350
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
9351
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
9352
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
9353
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
9354
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
9355
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9356
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
9357
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
9358
                0x2c, 0xf3, 0xdc, 0xb7, 0x38, 0x5f, 0x35, 0x5f,
 
9359
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
9360
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
9361
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
9362
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
9363
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
9364
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
9365
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
9366
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9367
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9368
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9369
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9370
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
9371
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x32, 0x38,
 
9372
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9373
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9374
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
9375
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
9376
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
9377
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
9378
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
9379
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
9380
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
9381
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
9382
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
9383
                0x00, 0xf0, 0x04, 0x08
 
9384
        };      /* Structure image */
 
9385
 
 
9386
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
9550
9387
}
9551
9388
 
9552
9389
static void
9553
9390
imdi_k28_tab(
9554
9391
tabspec *t                      /* structure to be initialised */
9555
9392
) {
9556
 
        static unsigned char data[] = {
9557
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
9558
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
9559
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
9560
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
9561
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
9562
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
9563
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9564
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
9565
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
9566
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9567
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
9568
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
9569
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
9570
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
9571
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
9572
 
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
9573
 
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
9574
 
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
9575
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
9576
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
9577
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
9578
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
9579
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9580
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
9581
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9582
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9583
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9584
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
9585
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9586
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9587
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9588
 
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
9589
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
9590
 
        };      /* Structure image */
9591
 
        
9592
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
9393
        static unsigned char data[] = {
 
9394
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
9395
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
9396
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
9397
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
9398
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
9399
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
9400
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9401
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
9402
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
9403
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9404
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
9405
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
9406
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
9407
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
9408
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
9409
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
9410
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
9411
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
9412
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
9413
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
9414
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
9415
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
9416
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9417
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
9418
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9419
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9420
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9421
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
9422
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9423
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9424
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9425
                0x20, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
9426
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
9427
        };      /* Structure image */
 
9428
 
 
9429
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
9593
9430
}
9594
9431
 
9595
 
 
9596
 
 
9597
 
 
9598
 
 
9599
 
 
9600
9432
/* Integer Multi-Dimensional Interpolation */
9601
9433
/* Interpolation Kernel Code */
9602
9434
/* Generated by cgen */
9605
9437
 
9606
9438
/* see the Licence.txt file for licencing details.*/
9607
9439
 
9608
 
 
9609
9440
/*
9610
9441
   Interpolation kernel specs:
9611
9442
 
9693
9524
void **inp,             /* pointer to input pointers */
9694
9525
unsigned int npix       /* Number of pixels to process */
9695
9526
) {
9696
 
        imdi_imp *p = (imdi_imp *)(s->impl);
9697
 
        unsigned char *ip0 = (unsigned char *)inp[0];
9698
 
        unsigned char *op0 = (unsigned char *)outp[0];
9699
 
        unsigned char *ep = ip0 + npix * 1 ;
9700
 
        pointer it0 = (pointer)p->in_tables[0];
9701
 
        pointer ot0 = (pointer)p->out_tables[0];
9702
 
        pointer ot1 = (pointer)p->out_tables[1];
9703
 
        pointer ot2 = (pointer)p->out_tables[2];
9704
 
        pointer ot3 = (pointer)p->out_tables[3];
9705
 
        pointer ot4 = (pointer)p->out_tables[4];
9706
 
        pointer ot5 = (pointer)p->out_tables[5];
9707
 
        pointer sw_base = (pointer)p->sw_table;
9708
 
        pointer im_base = (pointer)p->im_table;
9709
 
        
9710
 
        for(;ip0 < ep; ip0 += 1, op0 += 6) {
9711
 
                unsigned int ova0;      /* Output value accumulator */
9712
 
                unsigned int ova1;      /* Output value accumulator */
9713
 
                unsigned int ova2;      /* Output value accumulator */
9714
 
                {
9715
 
                        pointer swp;
9716
 
                        pointer imp;
9717
 
                        {
9718
 
                                unsigned int ti;        /* Simplex+Interpolation index variable */
9719
 
                                
9720
 
                                ti  = IT_IT(it0, ip0[0]);
9721
 
                                
9722
 
                                imp = im_base + IM_O(ti >> 0);          /* Extract interp. index and comp. entry */
9723
 
                                swp = sw_base + SW_O(ti & 0x0); /* Extract simplex index and comp. entry */
9724
 
                        }
9725
 
                        {
9726
 
                                unsigned int vowr;      /* Vertex offset/weight value */
9727
 
                                unsigned int vof;       /* Vertex offset value */
9728
 
                                unsigned int vwe;       /* Vertex weighting */
9729
 
                                
9730
 
                                vowr = SX_WO(swp, 0);   /* Read vertex offset+weighting values */
9731
 
                                vof = (vowr & 0x7f);    /* Extract offset value */
9732
 
                                vwe = (vowr >> 7);      /* Extract weighting value */
9733
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
9734
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
9735
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
9736
 
                                vowr = SX_WO(swp, 1);   /* Read vertex offset+weighting values */
9737
 
                                vof = (vowr & 0x7f);    /* Extract offset value */
9738
 
                                vwe = (vowr >> 7);      /* Extract weighting value */
9739
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
9740
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
9741
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
9742
 
                        }
9743
 
                }
9744
 
                {
9745
 
                        unsigned int oti;       /* Vertex offset value */
9746
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
9747
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
9748
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
9749
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
9750
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
9751
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
9752
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
9753
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
9754
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
9755
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
9756
 
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
9757
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
9758
 
                }
9759
 
        }
 
9527
        imdi_imp *p = (imdi_imp *)(s->impl);
 
9528
        unsigned char *ip0 = (unsigned char *)inp[0];
 
9529
        unsigned char *op0 = (unsigned char *)outp[0];
 
9530
        unsigned char *ep = ip0 + npix * 1 ;
 
9531
        pointer it0 = (pointer)p->in_tables[0];
 
9532
        pointer ot0 = (pointer)p->out_tables[0];
 
9533
        pointer ot1 = (pointer)p->out_tables[1];
 
9534
        pointer ot2 = (pointer)p->out_tables[2];
 
9535
        pointer ot3 = (pointer)p->out_tables[3];
 
9536
        pointer ot4 = (pointer)p->out_tables[4];
 
9537
        pointer ot5 = (pointer)p->out_tables[5];
 
9538
        pointer sw_base = (pointer)p->sw_table;
 
9539
        pointer im_base = (pointer)p->im_table;
 
9540
 
 
9541
        for(;ip0 < ep; ip0 += 1, op0 += 6) {
 
9542
                unsigned int ova0;      /* Output value accumulator */
 
9543
                unsigned int ova1;      /* Output value accumulator */
 
9544
                unsigned int ova2;      /* Output value accumulator */
 
9545
                {
 
9546
                        pointer swp;
 
9547
                        pointer imp;
 
9548
                        {
 
9549
                                unsigned int ti;        /* Simplex+Interpolation index variable */
 
9550
 
 
9551
                                ti  = IT_IT(it0, ip0[0]);
 
9552
 
 
9553
                                imp = im_base + IM_O(ti >> 0);          /* Extract interp. index and comp. entry */
 
9554
                                swp = sw_base + SW_O(ti & 0x0); /* Extract simplex index and comp. entry */
 
9555
                        }
 
9556
                        {
 
9557
                                unsigned int vowr;      /* Vertex offset/weight value */
 
9558
                                unsigned int vof;       /* Vertex offset value */
 
9559
                                unsigned int vwe;       /* Vertex weighting */
 
9560
 
 
9561
                                vowr = SX_WO(swp, 0);   /* Read vertex offset+weighting values */
 
9562
                                vof = (vowr & 0x7f);    /* Extract offset value */
 
9563
                                vwe = (vowr >> 7);      /* Extract weighting value */
 
9564
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
9565
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
9566
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
9567
                                vowr = SX_WO(swp, 1);   /* Read vertex offset+weighting values */
 
9568
                                vof = (vowr & 0x7f);    /* Extract offset value */
 
9569
                                vwe = (vowr >> 7);      /* Extract weighting value */
 
9570
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
9571
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
9572
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
9573
                        }
 
9574
                }
 
9575
                {
 
9576
                        unsigned int oti;       /* Vertex offset value */
 
9577
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
9578
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
9579
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
9580
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
9581
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
9582
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
9583
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
9584
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
9585
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
9586
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
9587
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
 
9588
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
9589
                }
 
9590
        }
9760
9591
}
9761
9592
#undef IT_IT
9762
9593
#undef SW_O
9769
9600
imdi_k29_gen(
9770
9601
genspec *g                      /* structure to be initialised */
9771
9602
) {
9772
 
        static unsigned char data[] = {
9773
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
9774
 
                0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
9775
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9776
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9777
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9778
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9779
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9780
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
9781
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9782
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9783
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9784
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9785
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9786
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9787
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9788
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9789
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9790
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9791
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9792
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
9793
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9794
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9795
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9796
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9797
 
                0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
9798
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
9799
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
9800
 
                0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9801
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9802
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9803
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9804
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9805
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9806
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9807
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9808
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9809
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
9810
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
9811
 
                0xff, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
9812
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
9813
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
9814
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
9815
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
9816
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
9817
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
9818
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
9819
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
9820
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
9821
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9822
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
9823
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
9824
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x31, 0x5f, 0x36, 0x5f, 
9825
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
9826
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
9827
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
9828
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
9829
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
9830
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
9831
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
9832
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9833
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9834
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9835
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9836
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
9837
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x32, 0x39, 
9838
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9839
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9840
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
9841
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
9842
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
9843
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
9844
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
9845
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
9846
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
9847
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
9848
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
9849
 
                0x00, 0xf0, 0x04, 0x08 
9850
 
        };      /* Structure image */
9851
 
        
9852
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
9603
        static unsigned char data[] = {
 
9604
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
9605
                0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
9606
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9607
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9608
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9609
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9610
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9611
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
9612
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9613
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9614
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9615
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9616
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9617
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9618
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9619
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9620
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9621
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9622
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9623
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
9624
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9625
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9626
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9627
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9628
                0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
9629
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
9630
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
9631
                0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9632
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9633
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9634
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9635
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9636
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9637
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9638
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9639
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9640
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
9641
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
9642
                0xff, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
9643
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
9644
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
9645
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
9646
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
9647
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
9648
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
9649
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
9650
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
9651
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
9652
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9653
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
9654
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
9655
                0x2c, 0xf3, 0xdc, 0xb7, 0x31, 0x5f, 0x36, 0x5f,
 
9656
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
9657
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
9658
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
9659
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
9660
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
9661
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
9662
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
9663
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9664
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9665
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9666
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9667
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
9668
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x32, 0x39,
 
9669
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9670
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9671
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
9672
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
9673
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
9674
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
9675
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
9676
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
9677
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
9678
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
9679
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
9680
                0x00, 0xf0, 0x04, 0x08
 
9681
        };      /* Structure image */
 
9682
 
 
9683
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
9853
9684
}
9854
9685
 
9855
9686
static void
9856
9687
imdi_k29_tab(
9857
9688
tabspec *t                      /* structure to be initialised */
9858
9689
) {
9859
 
        static unsigned char data[] = {
9860
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9861
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
9862
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
9863
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
9864
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
9865
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
9866
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
9867
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
9868
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9869
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9870
 
                0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
9871
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9872
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
9873
 
                0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
9874
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
9875
 
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
9876
 
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
9877
 
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
9878
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9879
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9880
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
9881
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
9882
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
9883
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
9884
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9885
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9886
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
9887
 
                0x00, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
9888
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9889
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9890
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
9891
 
                0x08, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 
9892
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
9893
 
        };      /* Structure image */
9894
 
        
9895
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
9690
        static unsigned char data[] = {
 
9691
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9692
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
9693
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
9694
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
9695
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
9696
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
9697
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
9698
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
9699
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9700
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9701
                0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
9702
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9703
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
9704
                0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
9705
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
9706
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
9707
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
9708
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
9709
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9710
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9711
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
9712
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
9713
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
9714
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
9715
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9716
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9717
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9718
                0x00, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
9719
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9720
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9721
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9722
                0x08, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
 
9723
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
9724
        };      /* Structure image */
 
9725
 
 
9726
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
9896
9727
}
9897
9728
 
9898
 
 
9899
 
 
9900
 
 
9901
 
 
9902
 
 
9903
9729
/* Integer Multi-Dimensional Interpolation */
9904
9730
/* Interpolation Kernel Code */
9905
9731
/* Generated by cgen */
9908
9734
 
9909
9735
/* see the Licence.txt file for licencing details.*/
9910
9736
 
9911
 
 
9912
9737
/*
9913
9738
   Interpolation kernel specs:
9914
9739
 
10003
9828
void **inp,             /* pointer to input pointers */
10004
9829
unsigned int npix       /* Number of pixels to process */
10005
9830
) {
10006
 
        imdi_imp *p = (imdi_imp *)(s->impl);
10007
 
        unsigned char *ip0 = (unsigned char *)inp[0];
10008
 
        unsigned char *op0 = (unsigned char *)outp[0];
10009
 
        unsigned char *ep = ip0 + npix * 3 ;
10010
 
        pointer it0 = (pointer)p->in_tables[0];
10011
 
        pointer it1 = (pointer)p->in_tables[1];
10012
 
        pointer it2 = (pointer)p->in_tables[2];
10013
 
        pointer ot0 = (pointer)p->out_tables[0];
10014
 
        pointer ot1 = (pointer)p->out_tables[1];
10015
 
        pointer ot2 = (pointer)p->out_tables[2];
10016
 
        pointer ot3 = (pointer)p->out_tables[3];
10017
 
        pointer ot4 = (pointer)p->out_tables[4];
10018
 
        pointer ot5 = (pointer)p->out_tables[5];
10019
 
        pointer sw_base = (pointer)p->sw_table;
10020
 
        pointer im_base = (pointer)p->im_table;
10021
 
        
10022
 
        for(;ip0 < ep; ip0 += 3, op0 += 6) {
10023
 
                unsigned int ova0;      /* Output value accumulator */
10024
 
                unsigned int ova1;      /* Output value accumulator */
10025
 
                unsigned int ova2;      /* Output value accumulator */
10026
 
                {
10027
 
                        pointer swp;
10028
 
                        pointer imp;
10029
 
                        {
10030
 
                                unsigned int ti;        /* Simplex+Interpolation index variable */
10031
 
                                
10032
 
                                ti  = IT_IT(it0, ip0[0]);
10033
 
                                ti += IT_IT(it1, ip0[1]);
10034
 
                                ti += IT_IT(it2, ip0[2]);
10035
 
                                
10036
 
                                imp = im_base + IM_O(ti >> 12);         /* Extract interp. index and comp. entry */
10037
 
                                swp = sw_base + SW_O(ti & 0xfff);       /* Extract simplex index and comp. entry */
10038
 
                        }
10039
 
                        {
10040
 
                                unsigned int vof;       /* Vertex offset value */
10041
 
                                unsigned int vwe;       /* Vertex weighting */
10042
 
                                
10043
 
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
10044
 
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
10045
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
10046
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
10047
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
10048
 
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
10049
 
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
10050
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
10051
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
10052
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
10053
 
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
10054
 
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
10055
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
10056
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
10057
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
10058
 
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
10059
 
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
10060
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
10061
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
10062
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
10063
 
                        }
10064
 
                }
10065
 
                {
10066
 
                        unsigned int oti;       /* Vertex offset value */
10067
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
10068
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
10069
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
10070
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
10071
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
10072
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
10073
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
10074
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
10075
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
10076
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
10077
 
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
10078
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
10079
 
                }
10080
 
        }
 
9831
        imdi_imp *p = (imdi_imp *)(s->impl);
 
9832
        unsigned char *ip0 = (unsigned char *)inp[0];
 
9833
        unsigned char *op0 = (unsigned char *)outp[0];
 
9834
        unsigned char *ep = ip0 + npix * 3 ;
 
9835
        pointer it0 = (pointer)p->in_tables[0];
 
9836
        pointer it1 = (pointer)p->in_tables[1];
 
9837
        pointer it2 = (pointer)p->in_tables[2];
 
9838
        pointer ot0 = (pointer)p->out_tables[0];
 
9839
        pointer ot1 = (pointer)p->out_tables[1];
 
9840
        pointer ot2 = (pointer)p->out_tables[2];
 
9841
        pointer ot3 = (pointer)p->out_tables[3];
 
9842
        pointer ot4 = (pointer)p->out_tables[4];
 
9843
        pointer ot5 = (pointer)p->out_tables[5];
 
9844
        pointer sw_base = (pointer)p->sw_table;
 
9845
        pointer im_base = (pointer)p->im_table;
 
9846
 
 
9847
        for(;ip0 < ep; ip0 += 3, op0 += 6) {
 
9848
                unsigned int ova0;      /* Output value accumulator */
 
9849
                unsigned int ova1;      /* Output value accumulator */
 
9850
                unsigned int ova2;      /* Output value accumulator */
 
9851
                {
 
9852
                        pointer swp;
 
9853
                        pointer imp;
 
9854
                        {
 
9855
                                unsigned int ti;        /* Simplex+Interpolation index variable */
 
9856
 
 
9857
                                ti  = IT_IT(it0, ip0[0]);
 
9858
                                ti += IT_IT(it1, ip0[1]);
 
9859
                                ti += IT_IT(it2, ip0[2]);
 
9860
 
 
9861
                                imp = im_base + IM_O(ti >> 12);         /* Extract interp. index and comp. entry */
 
9862
                                swp = sw_base + SW_O(ti & 0xfff);       /* Extract simplex index and comp. entry */
 
9863
                        }
 
9864
                        {
 
9865
                                unsigned int vof;       /* Vertex offset value */
 
9866
                                unsigned int vwe;       /* Vertex weighting */
 
9867
 
 
9868
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
 
9869
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
 
9870
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
9871
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
9872
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
9873
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
 
9874
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
 
9875
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
9876
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
9877
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
9878
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
 
9879
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
 
9880
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
9881
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
9882
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
9883
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
 
9884
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
 
9885
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
9886
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
9887
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
9888
                        }
 
9889
                }
 
9890
                {
 
9891
                        unsigned int oti;       /* Vertex offset value */
 
9892
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
9893
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
9894
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
9895
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
9896
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
9897
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
9898
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
9899
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
9900
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
9901
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
9902
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
 
9903
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
9904
                }
 
9905
        }
10081
9906
}
10082
9907
#undef IT_IT
10083
9908
#undef SW_O
10091
9916
imdi_k30_gen(
10092
9917
genspec *g                      /* structure to be initialised */
10093
9918
) {
10094
 
        static unsigned char data[] = {
10095
 
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
10096
 
                0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
10097
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10098
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10099
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10100
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10101
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10102
 
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
10103
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
10104
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10105
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10106
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10107
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10108
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10109
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10110
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10111
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10112
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10113
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10114
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
10115
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10116
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10117
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10118
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10119
 
                0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
10120
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
10121
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
10122
 
                0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10123
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10124
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10125
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10126
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10127
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10128
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10129
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10130
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10131
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
10132
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
10133
 
                0x65, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
10134
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
10135
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
10136
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
10137
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
10138
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
10139
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
10140
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
10141
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
10142
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
10143
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10144
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
10145
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
10146
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x33, 0x5f, 0x36, 0x5f, 
10147
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
10148
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
10149
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
10150
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
10151
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
10152
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
10153
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
10154
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10155
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10156
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10157
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10158
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
10159
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x33, 0x30, 
10160
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10161
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10162
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
10163
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
10164
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
10165
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
10166
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
10167
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
10168
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
10169
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
10170
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
10171
 
                0x00, 0xf0, 0x04, 0x08 
10172
 
        };      /* Structure image */
10173
 
        
10174
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
9919
        static unsigned char data[] = {
 
9920
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
9921
                0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
9922
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9923
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9924
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9925
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9926
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9927
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
9928
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
9929
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9930
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9931
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9932
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9933
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9934
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9935
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9936
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9937
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9938
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9939
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
9940
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9941
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9942
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9943
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9944
                0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
9945
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
9946
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
9947
                0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9948
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9949
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9950
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9951
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9952
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9953
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9954
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
9955
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9956
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
9957
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
9958
                0x65, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
9959
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
9960
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
9961
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
9962
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
9963
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
9964
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
9965
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
9966
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
9967
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
9968
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9969
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
9970
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
9971
                0x2c, 0xf3, 0xdc, 0xb7, 0x33, 0x5f, 0x36, 0x5f,
 
9972
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
9973
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
9974
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
9975
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
9976
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
9977
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
9978
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
9979
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9980
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9981
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9982
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9983
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
9984
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x33, 0x30,
 
9985
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9986
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
9987
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
9988
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
9989
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
9990
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
9991
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
9992
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
9993
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
9994
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
9995
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
9996
                0x00, 0xf0, 0x04, 0x08
 
9997
        };      /* Structure image */
 
9998
 
 
9999
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
10175
10000
}
10176
10001
 
10177
10002
static void
10178
10003
imdi_k30_tab(
10179
10004
tabspec *t                      /* structure to be initialised */
10180
10005
) {
10181
 
        static unsigned char data[] = {
10182
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10183
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
10184
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
10185
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
10186
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
10187
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
10188
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
10189
 
                0x14, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
10190
 
                0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 
10191
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10192
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
10193
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10194
 
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
10195
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
10196
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
10197
 
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
10198
 
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
10199
 
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
10200
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10201
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10202
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
10203
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
10204
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
10205
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
10206
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10207
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10208
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10209
 
                0x00, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
10210
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10211
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10212
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10213
 
                0x08, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 
10214
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
10215
 
        };      /* Structure image */
10216
 
        
10217
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
10006
        static unsigned char data[] = {
 
10007
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10008
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
10009
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
10010
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
10011
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
10012
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
10013
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
10014
                0x14, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
10015
                0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
 
10016
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10017
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
10018
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10019
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
10020
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
10021
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
10022
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
10023
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
10024
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
10025
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10026
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10027
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
10028
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
10029
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
10030
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
10031
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10032
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10033
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10034
                0x00, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
10035
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10036
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10037
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10038
                0x08, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
 
10039
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
10040
        };      /* Structure image */
 
10041
 
 
10042
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
10218
10043
}
10219
10044
 
10220
 
 
10221
 
 
10222
 
 
10223
 
 
10224
 
 
10225
10045
/* Integer Multi-Dimensional Interpolation */
10226
10046
/* Interpolation Kernel Code */
10227
10047
/* Generated by cgen */
10230
10050
 
10231
10051
/* see the Licence.txt file for licencing details.*/
10232
10052
 
10233
 
 
10234
10053
/*
10235
10054
   Interpolation kernel specs:
10236
10055
 
10330
10149
void **inp,             /* pointer to input pointers */
10331
10150
unsigned int npix       /* Number of pixels to process */
10332
10151
) {
10333
 
        imdi_imp *p = (imdi_imp *)(s->impl);
10334
 
        unsigned char *ip0 = (unsigned char *)inp[0];
10335
 
        unsigned char *op0 = (unsigned char *)outp[0];
10336
 
        unsigned char *ep = ip0 + npix * 4 ;
10337
 
        pointer it0 = (pointer)p->in_tables[0];
10338
 
        pointer it1 = (pointer)p->in_tables[1];
10339
 
        pointer it2 = (pointer)p->in_tables[2];
10340
 
        pointer it3 = (pointer)p->in_tables[3];
10341
 
        pointer ot0 = (pointer)p->out_tables[0];
10342
 
        pointer ot1 = (pointer)p->out_tables[1];
10343
 
        pointer ot2 = (pointer)p->out_tables[2];
10344
 
        pointer ot3 = (pointer)p->out_tables[3];
10345
 
        pointer ot4 = (pointer)p->out_tables[4];
10346
 
        pointer ot5 = (pointer)p->out_tables[5];
10347
 
        pointer sw_base = (pointer)p->sw_table;
10348
 
        pointer im_base = (pointer)p->im_table;
10349
 
        
10350
 
        for(;ip0 < ep; ip0 += 4, op0 += 6) {
10351
 
                unsigned int ova0;      /* Output value accumulator */
10352
 
                unsigned int ova1;      /* Output value accumulator */
10353
 
                unsigned int ova2;      /* Output value accumulator */
10354
 
                {
10355
 
                        pointer swp;
10356
 
                        pointer imp;
10357
 
                        {
10358
 
                                unsigned int ti_s;      /* Simplex index variable */
10359
 
                                unsigned int ti_i;      /* Interpolation index variable */
10360
 
                                
10361
 
                                ti_i  = IT_IX(it0, ip0[0]);
10362
 
                                ti_s  = IT_SX(it0, ip0[0]);
10363
 
                                ti_i += IT_IX(it1, ip0[1]);
10364
 
                                ti_s += IT_SX(it1, ip0[1]);
10365
 
                                ti_i += IT_IX(it2, ip0[2]);
10366
 
                                ti_s += IT_SX(it2, ip0[2]);
10367
 
                                ti_i += IT_IX(it3, ip0[3]);
10368
 
                                ti_s += IT_SX(it3, ip0[3]);
10369
 
                                
10370
 
                                swp = sw_base + SW_O(ti_s);             /* Compute simplex table entry pointer */
10371
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
10372
 
                        }
10373
 
                        {
10374
 
                                unsigned int vof;       /* Vertex offset value */
10375
 
                                unsigned int vwe;       /* Vertex weighting */
10376
 
                                
10377
 
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
10378
 
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
10379
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
10380
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
10381
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
10382
 
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
10383
 
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
10384
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
10385
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
10386
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
10387
 
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
10388
 
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
10389
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
10390
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
10391
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
10392
 
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
10393
 
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
10394
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
10395
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
10396
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
10397
 
                                vof = SX_VO(swp, 4);    /* Read vertex offset value */
10398
 
                                vwe = SX_WE(swp, 4);    /* Read vertex weighting value */
10399
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
10400
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
10401
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
10402
 
                        }
10403
 
                }
10404
 
                {
10405
 
                        unsigned int oti;       /* Vertex offset value */
10406
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
10407
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
10408
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
10409
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
10410
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
10411
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
10412
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
10413
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
10414
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
10415
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
10416
 
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
10417
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
10418
 
                }
10419
 
        }
 
10152
        imdi_imp *p = (imdi_imp *)(s->impl);
 
10153
        unsigned char *ip0 = (unsigned char *)inp[0];
 
10154
        unsigned char *op0 = (unsigned char *)outp[0];
 
10155
        unsigned char *ep = ip0 + npix * 4 ;
 
10156
        pointer it0 = (pointer)p->in_tables[0];
 
10157
        pointer it1 = (pointer)p->in_tables[1];
 
10158
        pointer it2 = (pointer)p->in_tables[2];
 
10159
        pointer it3 = (pointer)p->in_tables[3];
 
10160
        pointer ot0 = (pointer)p->out_tables[0];
 
10161
        pointer ot1 = (pointer)p->out_tables[1];
 
10162
        pointer ot2 = (pointer)p->out_tables[2];
 
10163
        pointer ot3 = (pointer)p->out_tables[3];
 
10164
        pointer ot4 = (pointer)p->out_tables[4];
 
10165
        pointer ot5 = (pointer)p->out_tables[5];
 
10166
        pointer sw_base = (pointer)p->sw_table;
 
10167
        pointer im_base = (pointer)p->im_table;
 
10168
 
 
10169
        for(;ip0 < ep; ip0 += 4, op0 += 6) {
 
10170
                unsigned int ova0;      /* Output value accumulator */
 
10171
                unsigned int ova1;      /* Output value accumulator */
 
10172
                unsigned int ova2;      /* Output value accumulator */
 
10173
                {
 
10174
                        pointer swp;
 
10175
                        pointer imp;
 
10176
                        {
 
10177
                                unsigned int ti_s;      /* Simplex index variable */
 
10178
                                unsigned int ti_i;      /* Interpolation index variable */
 
10179
 
 
10180
                                ti_i  = IT_IX(it0, ip0[0]);
 
10181
                                ti_s  = IT_SX(it0, ip0[0]);
 
10182
                                ti_i += IT_IX(it1, ip0[1]);
 
10183
                                ti_s += IT_SX(it1, ip0[1]);
 
10184
                                ti_i += IT_IX(it2, ip0[2]);
 
10185
                                ti_s += IT_SX(it2, ip0[2]);
 
10186
                                ti_i += IT_IX(it3, ip0[3]);
 
10187
                                ti_s += IT_SX(it3, ip0[3]);
 
10188
 
 
10189
                                swp = sw_base + SW_O(ti_s);             /* Compute simplex table entry pointer */
 
10190
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
10191
                        }
 
10192
                        {
 
10193
                                unsigned int vof;       /* Vertex offset value */
 
10194
                                unsigned int vwe;       /* Vertex weighting */
 
10195
 
 
10196
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
 
10197
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
 
10198
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
10199
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
10200
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
10201
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
 
10202
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
 
10203
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
10204
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
10205
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
10206
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
 
10207
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
 
10208
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
10209
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
10210
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
10211
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
 
10212
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
 
10213
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
10214
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
10215
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
10216
                                vof = SX_VO(swp, 4);    /* Read vertex offset value */
 
10217
                                vwe = SX_WE(swp, 4);    /* Read vertex weighting value */
 
10218
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
10219
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
10220
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
10221
                        }
 
10222
                }
 
10223
                {
 
10224
                        unsigned int oti;       /* Vertex offset value */
 
10225
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
10226
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
10227
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
10228
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
10229
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
10230
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
10231
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
10232
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
10233
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
10234
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
10235
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
 
10236
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
10237
                }
 
10238
        }
10420
10239
}
10421
10240
#undef IT_IX
10422
10241
#undef IT_SX
10431
10250
imdi_k31_gen(
10432
10251
genspec *g                      /* structure to be initialised */
10433
10252
) {
10434
 
        static unsigned char data[] = {
10435
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
10436
 
                0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
10437
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10438
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10439
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10440
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10441
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10442
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
10443
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
10444
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10445
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10446
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10447
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10448
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10449
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10450
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10451
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10452
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10453
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10454
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
10455
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10456
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10457
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10458
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10459
 
                0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
10460
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
10461
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
10462
 
                0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10463
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10464
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10465
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10466
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10467
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10468
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10469
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10470
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10471
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
10472
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
10473
 
                0x1b, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 
10474
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
10475
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
10476
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
10477
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
10478
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
10479
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
10480
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
10481
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
10482
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
10483
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10484
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
10485
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
10486
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x34, 0x5f, 0x36, 0x5f, 
10487
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
10488
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
10489
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
10490
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
10491
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
10492
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
10493
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
10494
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10495
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10496
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10497
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10498
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
10499
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x33, 0x31, 
10500
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10501
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10502
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
10503
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
10504
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
10505
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
10506
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
10507
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
10508
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
10509
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
10510
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
10511
 
                0x00, 0xf0, 0x04, 0x08 
10512
 
        };      /* Structure image */
10513
 
        
10514
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
10253
        static unsigned char data[] = {
 
10254
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
10255
                0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
10256
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10257
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10258
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10259
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10260
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10261
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
10262
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
10263
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10264
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10265
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10266
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10267
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10268
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10269
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10270
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10271
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10272
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10273
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
10274
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10275
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10276
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10277
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10278
                0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
10279
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
10280
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
10281
                0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10282
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10283
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10284
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10285
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10286
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10287
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10288
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10289
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10290
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
10291
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
10292
                0x1b, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00,
 
10293
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
10294
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
10295
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
10296
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
10297
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
10298
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
10299
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
10300
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
10301
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
10302
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10303
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
10304
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
10305
                0x2c, 0xf3, 0xdc, 0xb7, 0x34, 0x5f, 0x36, 0x5f,
 
10306
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
10307
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
10308
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
10309
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
10310
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
10311
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
10312
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
10313
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10314
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10315
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10316
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10317
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
10318
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x33, 0x31,
 
10319
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10320
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10321
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
10322
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
10323
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
10324
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
10325
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
10326
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
10327
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
10328
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
10329
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
10330
                0x00, 0xf0, 0x04, 0x08
 
10331
        };      /* Structure image */
 
10332
 
 
10333
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
10515
10334
}
10516
10335
 
10517
10336
static void
10518
10337
imdi_k31_tab(
10519
10338
tabspec *t                      /* structure to be initialised */
10520
10339
) {
10521
 
        static unsigned char data[] = {
10522
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
10523
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
10524
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
10525
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
10526
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
10527
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
10528
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10529
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
10530
 
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
10531
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10532
 
                0x14, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
10533
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10534
 
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
10535
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
10536
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
10537
 
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
10538
 
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
10539
 
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
10540
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10541
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10542
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
10543
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
10544
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
10545
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
10546
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10547
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10548
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10549
 
                0x00, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
10550
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10551
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10552
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10553
 
                0x08, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 
10554
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
10555
 
        };      /* Structure image */
10556
 
        
10557
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
10340
        static unsigned char data[] = {
 
10341
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
10342
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
10343
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
10344
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
10345
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
10346
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
10347
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10348
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
10349
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
10350
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10351
                0x14, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
10352
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10353
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
10354
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
10355
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
10356
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
10357
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
10358
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
10359
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10360
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10361
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
10362
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
10363
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
10364
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
10365
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10366
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10367
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10368
                0x00, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
10369
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10370
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10371
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10372
                0x08, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
 
10373
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
10374
        };      /* Structure image */
 
10375
 
 
10376
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
10558
10377
}
10559
10378
 
10560
 
 
10561
 
 
10562
 
 
10563
 
 
10564
 
 
10565
10379
/* Integer Multi-Dimensional Interpolation */
10566
10380
/* Interpolation Kernel Code */
10567
10381
/* Generated by cgen */
10570
10384
 
10571
10385
/* see the Licence.txt file for licencing details.*/
10572
10386
 
10573
 
 
10574
10387
/*
10575
10388
   Interpolation kernel specs:
10576
10389
 
10665
10478
void **inp,             /* pointer to input pointers */
10666
10479
unsigned int npix       /* Number of pixels to process */
10667
10480
) {
10668
 
        imdi_imp *p = (imdi_imp *)(s->impl);
10669
 
        unsigned char *ip0 = (unsigned char *)inp[0];
10670
 
        unsigned char *op0 = (unsigned char *)outp[0];
10671
 
        unsigned char *ep = ip0 + npix * 5 ;
10672
 
        pointer it0 = (pointer)p->in_tables[0];
10673
 
        pointer it1 = (pointer)p->in_tables[1];
10674
 
        pointer it2 = (pointer)p->in_tables[2];
10675
 
        pointer it3 = (pointer)p->in_tables[3];
10676
 
        pointer it4 = (pointer)p->in_tables[4];
10677
 
        pointer ot0 = (pointer)p->out_tables[0];
10678
 
        pointer ot1 = (pointer)p->out_tables[1];
10679
 
        pointer ot2 = (pointer)p->out_tables[2];
10680
 
        pointer ot3 = (pointer)p->out_tables[3];
10681
 
        pointer ot4 = (pointer)p->out_tables[4];
10682
 
        pointer ot5 = (pointer)p->out_tables[5];
10683
 
        pointer im_base = (pointer)p->im_table;
10684
 
        
10685
 
        for(;ip0 < ep; ip0 += 5, op0 += 6) {
10686
 
                unsigned int ova0;      /* Output value accumulator */
10687
 
                unsigned int ova1;      /* Output value accumulator */
10688
 
                unsigned int ova2;      /* Output value accumulator */
10689
 
                {
10690
 
                        pointer imp;
10691
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
10692
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
10693
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
10694
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
10695
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
10696
 
                        {
10697
 
                                unsigned int ti_i;      /* Interpolation index variable */
10698
 
                                
10699
 
                                ti_i  = IT_IX(it0, ip0[0]);
10700
 
                                wo0   = IT_WO(it0, ip0[0]);
10701
 
                                ti_i += IT_IX(it1, ip0[1]);
10702
 
                                wo1   = IT_WO(it1, ip0[1]);
10703
 
                                ti_i += IT_IX(it2, ip0[2]);
10704
 
                                wo2   = IT_WO(it2, ip0[2]);
10705
 
                                ti_i += IT_IX(it3, ip0[3]);
10706
 
                                wo3   = IT_WO(it3, ip0[3]);
10707
 
                                ti_i += IT_IX(it4, ip0[4]);
10708
 
                                wo4   = IT_WO(it4, ip0[4]);
10709
 
                                
10710
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
10711
 
                                
10712
 
                                /* Sort weighting values and vertex offset values */
10713
 
                                CEX(wo0, wo1);
10714
 
                                CEX(wo0, wo2);
10715
 
                                CEX(wo0, wo3);
10716
 
                                CEX(wo0, wo4);
10717
 
                                CEX(wo1, wo2);
10718
 
                                CEX(wo1, wo3);
10719
 
                                CEX(wo1, wo4);
10720
 
                                CEX(wo2, wo3);
10721
 
                                CEX(wo2, wo4);
10722
 
                                CEX(wo3, wo4);
10723
 
                        }
10724
 
                        {
10725
 
                                unsigned int nvof;      /* Next vertex offset value */
10726
 
                                unsigned int vof;       /* Vertex offset value */
10727
 
                                unsigned int vwe;       /* Vertex weighting */
10728
 
                                
10729
 
                                vof = 0;                                /* First vertex offset is 0 */
10730
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
10731
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
10732
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
10733
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
10734
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
10735
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
10736
 
                                vof += nvof;                    /* Move to next vertex */
10737
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
10738
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
10739
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
10740
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
10741
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
10742
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
10743
 
                                vof += nvof;                    /* Move to next vertex */
10744
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
10745
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
10746
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
10747
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
10748
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
10749
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
10750
 
                                vof += nvof;                    /* Move to next vertex */
10751
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
10752
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
10753
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
10754
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
10755
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
10756
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
10757
 
                                vof += nvof;                    /* Move to next vertex */
10758
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
10759
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
10760
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
10761
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
10762
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
10763
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
10764
 
                                vof += nvof;                    /* Move to next vertex */
10765
 
                                vwe = wo4;                              /* Baricentric weighting */
10766
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
10767
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
10768
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
10769
 
                        }
10770
 
                }
10771
 
                {
10772
 
                        unsigned int oti;       /* Vertex offset value */
10773
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
10774
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
10775
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
10776
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
10777
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
10778
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
10779
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
10780
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
10781
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
10782
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
10783
 
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
10784
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
10785
 
                }
10786
 
        }
 
10481
        imdi_imp *p = (imdi_imp *)(s->impl);
 
10482
        unsigned char *ip0 = (unsigned char *)inp[0];
 
10483
        unsigned char *op0 = (unsigned char *)outp[0];
 
10484
        unsigned char *ep = ip0 + npix * 5 ;
 
10485
        pointer it0 = (pointer)p->in_tables[0];
 
10486
        pointer it1 = (pointer)p->in_tables[1];
 
10487
        pointer it2 = (pointer)p->in_tables[2];
 
10488
        pointer it3 = (pointer)p->in_tables[3];
 
10489
        pointer it4 = (pointer)p->in_tables[4];
 
10490
        pointer ot0 = (pointer)p->out_tables[0];
 
10491
        pointer ot1 = (pointer)p->out_tables[1];
 
10492
        pointer ot2 = (pointer)p->out_tables[2];
 
10493
        pointer ot3 = (pointer)p->out_tables[3];
 
10494
        pointer ot4 = (pointer)p->out_tables[4];
 
10495
        pointer ot5 = (pointer)p->out_tables[5];
 
10496
        pointer im_base = (pointer)p->im_table;
 
10497
 
 
10498
        for(;ip0 < ep; ip0 += 5, op0 += 6) {
 
10499
                unsigned int ova0;      /* Output value accumulator */
 
10500
                unsigned int ova1;      /* Output value accumulator */
 
10501
                unsigned int ova2;      /* Output value accumulator */
 
10502
                {
 
10503
                        pointer imp;
 
10504
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
10505
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
10506
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
10507
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
10508
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
10509
                        {
 
10510
                                unsigned int ti_i;      /* Interpolation index variable */
 
10511
 
 
10512
                                ti_i  = IT_IX(it0, ip0[0]);
 
10513
                                wo0   = IT_WO(it0, ip0[0]);
 
10514
                                ti_i += IT_IX(it1, ip0[1]);
 
10515
                                wo1   = IT_WO(it1, ip0[1]);
 
10516
                                ti_i += IT_IX(it2, ip0[2]);
 
10517
                                wo2   = IT_WO(it2, ip0[2]);
 
10518
                                ti_i += IT_IX(it3, ip0[3]);
 
10519
                                wo3   = IT_WO(it3, ip0[3]);
 
10520
                                ti_i += IT_IX(it4, ip0[4]);
 
10521
                                wo4   = IT_WO(it4, ip0[4]);
 
10522
 
 
10523
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
10524
 
 
10525
                                /* Sort weighting values and vertex offset values */
 
10526
                                CEX(wo0, wo1);
 
10527
                                CEX(wo0, wo2);
 
10528
                                CEX(wo0, wo3);
 
10529
                                CEX(wo0, wo4);
 
10530
                                CEX(wo1, wo2);
 
10531
                                CEX(wo1, wo3);
 
10532
                                CEX(wo1, wo4);
 
10533
                                CEX(wo2, wo3);
 
10534
                                CEX(wo2, wo4);
 
10535
                                CEX(wo3, wo4);
 
10536
                        }
 
10537
                        {
 
10538
                                unsigned int nvof;      /* Next vertex offset value */
 
10539
                                unsigned int vof;       /* Vertex offset value */
 
10540
                                unsigned int vwe;       /* Vertex weighting */
 
10541
 
 
10542
                                vof = 0;                                /* First vertex offset is 0 */
 
10543
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
10544
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
10545
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
10546
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
10547
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
10548
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
10549
                                vof += nvof;                    /* Move to next vertex */
 
10550
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
10551
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
10552
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
10553
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
10554
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
10555
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
10556
                                vof += nvof;                    /* Move to next vertex */
 
10557
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
10558
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
10559
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
10560
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
10561
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
10562
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
10563
                                vof += nvof;                    /* Move to next vertex */
 
10564
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
10565
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
10566
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
10567
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
10568
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
10569
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
10570
                                vof += nvof;                    /* Move to next vertex */
 
10571
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
10572
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
10573
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
10574
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
10575
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
10576
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
10577
                                vof += nvof;                    /* Move to next vertex */
 
10578
                                vwe = wo4;                              /* Baricentric weighting */
 
10579
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
10580
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
10581
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
10582
                        }
 
10583
                }
 
10584
                {
 
10585
                        unsigned int oti;       /* Vertex offset value */
 
10586
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
10587
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
10588
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
10589
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
10590
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
10591
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
10592
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
10593
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
10594
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
10595
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
10596
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
 
10597
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
10598
                }
 
10599
        }
10787
10600
}
10788
10601
#undef IT_WO
10789
10602
#undef IT_IX
10796
10609
imdi_k32_gen(
10797
10610
genspec *g                      /* structure to be initialised */
10798
10611
) {
10799
 
        static unsigned char data[] = {
10800
 
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
10801
 
                0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
10802
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10803
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10804
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10805
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10806
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10807
 
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
10808
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
10809
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
10810
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10811
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10812
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10813
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10814
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10815
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10816
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10817
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10818
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10819
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
10820
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10821
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10822
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10823
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10824
 
                0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
10825
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
10826
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
10827
 
                0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10828
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10829
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10830
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10831
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10832
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10833
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10834
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10835
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10836
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
10837
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
10838
 
                0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10839
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
10840
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
10841
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
10842
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
10843
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
10844
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
10845
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
10846
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
10847
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
10848
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10849
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
10850
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
10851
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x35, 0x5f, 0x36, 0x5f, 
10852
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
10853
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
10854
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
10855
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
10856
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
10857
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
10858
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
10859
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10860
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10861
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10862
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10863
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
10864
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x33, 0x32, 
10865
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10866
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10867
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
10868
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
10869
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
10870
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
10871
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
10872
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
10873
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
10874
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
10875
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
10876
 
                0x00, 0xf0, 0x04, 0x08 
10877
 
        };      /* Structure image */
10878
 
        
10879
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
10612
        static unsigned char data[] = {
 
10613
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
10614
                0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
10615
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10616
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10617
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10618
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10619
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10620
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
10621
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
10622
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
10623
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10624
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10625
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10626
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10627
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10628
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10629
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10630
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10631
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10632
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
10633
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10634
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10635
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10636
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10637
                0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
10638
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
10639
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
10640
                0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10641
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10642
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10643
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10644
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10645
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10646
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10647
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10648
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10649
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
10650
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
10651
                0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10652
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
10653
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
10654
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
10655
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
10656
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
10657
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
10658
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
10659
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
10660
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
10661
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10662
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
10663
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
10664
                0x2c, 0xf3, 0xdc, 0xb7, 0x35, 0x5f, 0x36, 0x5f,
 
10665
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
10666
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
10667
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
10668
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
10669
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
10670
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
10671
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
10672
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10673
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10674
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10675
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10676
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
10677
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x33, 0x32,
 
10678
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10679
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10680
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
10681
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
10682
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
10683
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
10684
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
10685
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
10686
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
10687
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
10688
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
10689
                0x00, 0xf0, 0x04, 0x08
 
10690
        };      /* Structure image */
 
10691
 
 
10692
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
10880
10693
}
10881
10694
 
10882
10695
static void
10883
10696
imdi_k32_tab(
10884
10697
tabspec *t                      /* structure to be initialised */
10885
10698
) {
10886
 
        static unsigned char data[] = {
10887
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
10888
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
10889
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
10890
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
10891
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
10892
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
10893
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10894
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
10895
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
10896
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10897
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
10898
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
10899
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
10900
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
10901
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
10902
 
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
10903
 
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
10904
 
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
10905
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10906
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10907
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
10908
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
10909
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
10910
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
10911
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10912
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10913
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
10914
 
                0x00, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
10915
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10916
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10917
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
10918
 
                0x08, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 
10919
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
10920
 
        };      /* Structure image */
10921
 
        
10922
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
10699
        static unsigned char data[] = {
 
10700
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
10701
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
10702
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
10703
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
10704
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
10705
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
10706
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10707
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
10708
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
10709
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10710
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
10711
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
10712
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
10713
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
10714
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
10715
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
10716
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
10717
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
10718
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10719
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10720
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
10721
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
10722
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
10723
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
10724
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10725
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10726
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10727
                0x00, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
10728
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10729
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10730
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10731
                0x08, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
 
10732
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
10733
        };      /* Structure image */
 
10734
 
 
10735
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
10923
10736
}
10924
10737
 
10925
 
 
10926
 
 
10927
 
 
10928
 
 
10929
 
 
10930
10738
/* Integer Multi-Dimensional Interpolation */
10931
10739
/* Interpolation Kernel Code */
10932
10740
/* Generated by cgen */
10935
10743
 
10936
10744
/* see the Licence.txt file for licencing details.*/
10937
10745
 
10938
 
 
10939
10746
/*
10940
10747
   Interpolation kernel specs:
10941
10748
 
11032
10839
void **inp,             /* pointer to input pointers */
11033
10840
unsigned int npix       /* Number of pixels to process */
11034
10841
) {
11035
 
        imdi_imp *p = (imdi_imp *)(s->impl);
11036
 
        unsigned char *ip0 = (unsigned char *)inp[0];
11037
 
        unsigned char *op0 = (unsigned char *)outp[0];
11038
 
        unsigned char *ep = ip0 + npix * 6 ;
11039
 
        pointer it0 = (pointer)p->in_tables[0];
11040
 
        pointer it1 = (pointer)p->in_tables[1];
11041
 
        pointer it2 = (pointer)p->in_tables[2];
11042
 
        pointer it3 = (pointer)p->in_tables[3];
11043
 
        pointer it4 = (pointer)p->in_tables[4];
11044
 
        pointer it5 = (pointer)p->in_tables[5];
11045
 
        pointer ot0 = (pointer)p->out_tables[0];
11046
 
        pointer ot1 = (pointer)p->out_tables[1];
11047
 
        pointer ot2 = (pointer)p->out_tables[2];
11048
 
        pointer ot3 = (pointer)p->out_tables[3];
11049
 
        pointer ot4 = (pointer)p->out_tables[4];
11050
 
        pointer ot5 = (pointer)p->out_tables[5];
11051
 
        pointer im_base = (pointer)p->im_table;
11052
 
        
11053
 
        for(;ip0 < ep; ip0 += 6, op0 += 6) {
11054
 
                unsigned int ova0;      /* Output value accumulator */
11055
 
                unsigned int ova1;      /* Output value accumulator */
11056
 
                unsigned int ova2;      /* Output value accumulator */
11057
 
                {
11058
 
                        pointer imp;
11059
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
11060
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
11061
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
11062
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
11063
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
11064
 
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
11065
 
                        {
11066
 
                                unsigned int ti_i;      /* Interpolation index variable */
11067
 
                                
11068
 
                                ti_i  = IT_IX(it0, ip0[0]);
11069
 
                                wo0   = IT_WO(it0, ip0[0]);
11070
 
                                ti_i += IT_IX(it1, ip0[1]);
11071
 
                                wo1   = IT_WO(it1, ip0[1]);
11072
 
                                ti_i += IT_IX(it2, ip0[2]);
11073
 
                                wo2   = IT_WO(it2, ip0[2]);
11074
 
                                ti_i += IT_IX(it3, ip0[3]);
11075
 
                                wo3   = IT_WO(it3, ip0[3]);
11076
 
                                ti_i += IT_IX(it4, ip0[4]);
11077
 
                                wo4   = IT_WO(it4, ip0[4]);
11078
 
                                ti_i += IT_IX(it5, ip0[5]);
11079
 
                                wo5   = IT_WO(it5, ip0[5]);
11080
 
                                
11081
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
11082
 
                                
11083
 
                                /* Sort weighting values and vertex offset values */
11084
 
                                CEX(wo0, wo1);
11085
 
                                CEX(wo0, wo2);
11086
 
                                CEX(wo0, wo3);
11087
 
                                CEX(wo0, wo4);
11088
 
                                CEX(wo0, wo5);
11089
 
                                CEX(wo1, wo2);
11090
 
                                CEX(wo1, wo3);
11091
 
                                CEX(wo1, wo4);
11092
 
                                CEX(wo1, wo5);
11093
 
                                CEX(wo2, wo3);
11094
 
                                CEX(wo2, wo4);
11095
 
                                CEX(wo2, wo5);
11096
 
                                CEX(wo3, wo4);
11097
 
                                CEX(wo3, wo5);
11098
 
                                CEX(wo4, wo5);
11099
 
                        }
11100
 
                        {
11101
 
                                unsigned int nvof;      /* Next vertex offset value */
11102
 
                                unsigned int vof;       /* Vertex offset value */
11103
 
                                unsigned int vwe;       /* Vertex weighting */
11104
 
                                
11105
 
                                vof = 0;                                /* First vertex offset is 0 */
11106
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
11107
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
11108
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
11109
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
11110
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
11111
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
11112
 
                                vof += nvof;                    /* Move to next vertex */
11113
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
11114
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
11115
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
11116
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
11117
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
11118
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
11119
 
                                vof += nvof;                    /* Move to next vertex */
11120
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
11121
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
11122
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
11123
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
11124
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
11125
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
11126
 
                                vof += nvof;                    /* Move to next vertex */
11127
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
11128
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
11129
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
11130
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
11131
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
11132
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
11133
 
                                vof += nvof;                    /* Move to next vertex */
11134
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
11135
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
11136
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
11137
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
11138
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
11139
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
11140
 
                                vof += nvof;                    /* Move to next vertex */
11141
 
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
11142
 
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
11143
 
                                vwe = wo4 - wo5;                /* Baricentric weighting */
11144
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
11145
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
11146
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
11147
 
                                vof += nvof;                    /* Move to next vertex */
11148
 
                                vwe = wo5;                              /* Baricentric weighting */
11149
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
11150
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
11151
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
11152
 
                        }
11153
 
                }
11154
 
                {
11155
 
                        unsigned int oti;       /* Vertex offset value */
11156
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
11157
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
11158
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
11159
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
11160
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
11161
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
11162
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
11163
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
11164
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
11165
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
11166
 
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
11167
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
11168
 
                }
11169
 
        }
 
10842
        imdi_imp *p = (imdi_imp *)(s->impl);
 
10843
        unsigned char *ip0 = (unsigned char *)inp[0];
 
10844
        unsigned char *op0 = (unsigned char *)outp[0];
 
10845
        unsigned char *ep = ip0 + npix * 6 ;
 
10846
        pointer it0 = (pointer)p->in_tables[0];
 
10847
        pointer it1 = (pointer)p->in_tables[1];
 
10848
        pointer it2 = (pointer)p->in_tables[2];
 
10849
        pointer it3 = (pointer)p->in_tables[3];
 
10850
        pointer it4 = (pointer)p->in_tables[4];
 
10851
        pointer it5 = (pointer)p->in_tables[5];
 
10852
        pointer ot0 = (pointer)p->out_tables[0];
 
10853
        pointer ot1 = (pointer)p->out_tables[1];
 
10854
        pointer ot2 = (pointer)p->out_tables[2];
 
10855
        pointer ot3 = (pointer)p->out_tables[3];
 
10856
        pointer ot4 = (pointer)p->out_tables[4];
 
10857
        pointer ot5 = (pointer)p->out_tables[5];
 
10858
        pointer im_base = (pointer)p->im_table;
 
10859
 
 
10860
        for(;ip0 < ep; ip0 += 6, op0 += 6) {
 
10861
                unsigned int ova0;      /* Output value accumulator */
 
10862
                unsigned int ova1;      /* Output value accumulator */
 
10863
                unsigned int ova2;      /* Output value accumulator */
 
10864
                {
 
10865
                        pointer imp;
 
10866
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
10867
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
10868
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
10869
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
10870
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
10871
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
 
10872
                        {
 
10873
                                unsigned int ti_i;      /* Interpolation index variable */
 
10874
 
 
10875
                                ti_i  = IT_IX(it0, ip0[0]);
 
10876
                                wo0   = IT_WO(it0, ip0[0]);
 
10877
                                ti_i += IT_IX(it1, ip0[1]);
 
10878
                                wo1   = IT_WO(it1, ip0[1]);
 
10879
                                ti_i += IT_IX(it2, ip0[2]);
 
10880
                                wo2   = IT_WO(it2, ip0[2]);
 
10881
                                ti_i += IT_IX(it3, ip0[3]);
 
10882
                                wo3   = IT_WO(it3, ip0[3]);
 
10883
                                ti_i += IT_IX(it4, ip0[4]);
 
10884
                                wo4   = IT_WO(it4, ip0[4]);
 
10885
                                ti_i += IT_IX(it5, ip0[5]);
 
10886
                                wo5   = IT_WO(it5, ip0[5]);
 
10887
 
 
10888
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
10889
 
 
10890
                                /* Sort weighting values and vertex offset values */
 
10891
                                CEX(wo0, wo1);
 
10892
                                CEX(wo0, wo2);
 
10893
                                CEX(wo0, wo3);
 
10894
                                CEX(wo0, wo4);
 
10895
                                CEX(wo0, wo5);
 
10896
                                CEX(wo1, wo2);
 
10897
                                CEX(wo1, wo3);
 
10898
                                CEX(wo1, wo4);
 
10899
                                CEX(wo1, wo5);
 
10900
                                CEX(wo2, wo3);
 
10901
                                CEX(wo2, wo4);
 
10902
                                CEX(wo2, wo5);
 
10903
                                CEX(wo3, wo4);
 
10904
                                CEX(wo3, wo5);
 
10905
                                CEX(wo4, wo5);
 
10906
                        }
 
10907
                        {
 
10908
                                unsigned int nvof;      /* Next vertex offset value */
 
10909
                                unsigned int vof;       /* Vertex offset value */
 
10910
                                unsigned int vwe;       /* Vertex weighting */
 
10911
 
 
10912
                                vof = 0;                                /* First vertex offset is 0 */
 
10913
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
10914
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
10915
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
10916
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
10917
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
10918
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
10919
                                vof += nvof;                    /* Move to next vertex */
 
10920
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
10921
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
10922
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
10923
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
10924
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
10925
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
10926
                                vof += nvof;                    /* Move to next vertex */
 
10927
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
10928
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
10929
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
10930
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
10931
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
10932
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
10933
                                vof += nvof;                    /* Move to next vertex */
 
10934
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
10935
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
10936
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
10937
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
10938
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
10939
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
10940
                                vof += nvof;                    /* Move to next vertex */
 
10941
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
10942
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
10943
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
10944
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
10945
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
10946
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
10947
                                vof += nvof;                    /* Move to next vertex */
 
10948
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
 
10949
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
 
10950
                                vwe = wo4 - wo5;                /* Baricentric weighting */
 
10951
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
10952
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
10953
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
10954
                                vof += nvof;                    /* Move to next vertex */
 
10955
                                vwe = wo5;                              /* Baricentric weighting */
 
10956
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
10957
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
10958
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
10959
                        }
 
10960
                }
 
10961
                {
 
10962
                        unsigned int oti;       /* Vertex offset value */
 
10963
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
10964
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
10965
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
10966
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
10967
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
10968
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
10969
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
10970
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
10971
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
10972
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
10973
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
 
10974
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
10975
                }
 
10976
        }
11170
10977
}
11171
10978
#undef IT_WO
11172
10979
#undef IT_IX
11179
10986
imdi_k33_gen(
11180
10987
genspec *g                      /* structure to be initialised */
11181
10988
) {
11182
 
        static unsigned char data[] = {
11183
 
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
11184
 
                0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
11185
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11186
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
11187
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
11188
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
11189
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
11190
 
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
11191
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
11192
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
11193
 
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
11194
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11195
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11196
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11197
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11198
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
11199
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
11200
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
11201
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
11202
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
11203
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
11204
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
11205
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
11206
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11207
 
                0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
11208
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
11209
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
11210
 
                0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11211
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11212
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11213
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11214
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11215
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
11216
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
11217
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
11218
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11219
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
11220
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
11221
 
                0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11222
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
11223
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
11224
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
11225
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
11226
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
11227
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
11228
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
11229
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
11230
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
11231
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11232
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
11233
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
11234
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x36, 0x5f, 0x36, 0x5f, 
11235
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
11236
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
11237
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
11238
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
11239
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
11240
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
11241
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
11242
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11243
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11244
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11245
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11246
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
11247
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x33, 0x33, 
11248
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11249
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11250
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
11251
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
11252
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
11253
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
11254
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
11255
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
11256
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
11257
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
11258
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
11259
 
                0x00, 0xf0, 0x04, 0x08 
11260
 
        };      /* Structure image */
11261
 
        
11262
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
10989
        static unsigned char data[] = {
 
10990
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
10991
                0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
10992
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
10993
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10994
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10995
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10996
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
10997
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
10998
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
10999
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
11000
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11001
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11002
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11003
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11004
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11005
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11006
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11007
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11008
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11009
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
11010
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11011
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11012
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11013
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11014
                0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
11015
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
11016
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
11017
                0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11018
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11019
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11020
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11021
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11022
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11023
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11024
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11025
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11026
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
11027
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
11028
                0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11029
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
11030
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
11031
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
11032
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
11033
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
11034
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
11035
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
11036
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
11037
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
11038
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11039
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
11040
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
11041
                0x2c, 0xf3, 0xdc, 0xb7, 0x36, 0x5f, 0x36, 0x5f,
 
11042
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
11043
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
11044
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
11045
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
11046
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
11047
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
11048
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
11049
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11050
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11051
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11052
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11053
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
11054
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x33, 0x33,
 
11055
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11056
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11057
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
11058
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
11059
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
11060
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
11061
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
11062
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
11063
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
11064
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
11065
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
11066
                0x00, 0xf0, 0x04, 0x08
 
11067
        };      /* Structure image */
 
11068
 
 
11069
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
11263
11070
}
11264
11071
 
11265
11072
static void
11266
11073
imdi_k33_tab(
11267
11074
tabspec *t                      /* structure to be initialised */
11268
11075
) {
11269
 
        static unsigned char data[] = {
11270
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
11271
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
11272
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
11273
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
11274
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
11275
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
11276
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
11277
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
11278
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
11279
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11280
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
11281
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
11282
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
11283
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
11284
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
11285
 
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
11286
 
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
11287
 
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
11288
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11289
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11290
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
11291
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
11292
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
11293
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
11294
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11295
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11296
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11297
 
                0x00, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
11298
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
11299
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
11300
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
11301
 
                0x08, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 
11302
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
11303
 
        };      /* Structure image */
11304
 
        
11305
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
11076
        static unsigned char data[] = {
 
11077
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
11078
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
11079
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
11080
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
11081
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
11082
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
11083
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11084
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
11085
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
11086
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11087
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
11088
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
11089
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
11090
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
11091
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
11092
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
11093
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
11094
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
11095
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11096
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11097
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
11098
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
11099
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
11100
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
11101
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11102
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11103
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11104
                0x00, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
11105
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11106
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11107
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11108
                0x08, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
 
11109
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
11110
        };      /* Structure image */
 
11111
 
 
11112
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
11306
11113
}
11307
11114
 
11308
 
 
11309
 
 
11310
 
 
11311
 
 
11312
 
 
11313
11115
/* Integer Multi-Dimensional Interpolation */
11314
11116
/* Interpolation Kernel Code */
11315
11117
/* Generated by cgen */
11318
11120
 
11319
11121
/* see the Licence.txt file for licencing details.*/
11320
11122
 
11321
 
 
11322
11123
/*
11323
11124
   Interpolation kernel specs:
11324
11125
 
11417
11218
void **inp,             /* pointer to input pointers */
11418
11219
unsigned int npix       /* Number of pixels to process */
11419
11220
) {
11420
 
        imdi_imp *p = (imdi_imp *)(s->impl);
11421
 
        unsigned char *ip0 = (unsigned char *)inp[0];
11422
 
        unsigned char *op0 = (unsigned char *)outp[0];
11423
 
        unsigned char *ep = ip0 + npix * 7 ;
11424
 
        pointer it0 = (pointer)p->in_tables[0];
11425
 
        pointer it1 = (pointer)p->in_tables[1];
11426
 
        pointer it2 = (pointer)p->in_tables[2];
11427
 
        pointer it3 = (pointer)p->in_tables[3];
11428
 
        pointer it4 = (pointer)p->in_tables[4];
11429
 
        pointer it5 = (pointer)p->in_tables[5];
11430
 
        pointer it6 = (pointer)p->in_tables[6];
11431
 
        pointer ot0 = (pointer)p->out_tables[0];
11432
 
        pointer ot1 = (pointer)p->out_tables[1];
11433
 
        pointer ot2 = (pointer)p->out_tables[2];
11434
 
        pointer ot3 = (pointer)p->out_tables[3];
11435
 
        pointer ot4 = (pointer)p->out_tables[4];
11436
 
        pointer ot5 = (pointer)p->out_tables[5];
11437
 
        pointer im_base = (pointer)p->im_table;
11438
 
        
11439
 
        for(;ip0 < ep; ip0 += 7, op0 += 6) {
11440
 
                unsigned int ova0;      /* Output value accumulator */
11441
 
                unsigned int ova1;      /* Output value accumulator */
11442
 
                unsigned int ova2;      /* Output value accumulator */
11443
 
                {
11444
 
                        pointer imp;
11445
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
11446
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
11447
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
11448
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
11449
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
11450
 
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
11451
 
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
11452
 
                        {
11453
 
                                unsigned int ti_i;      /* Interpolation index variable */
11454
 
                                
11455
 
                                ti_i  = IT_IX(it0, ip0[0]);
11456
 
                                wo0   = IT_WO(it0, ip0[0]);
11457
 
                                ti_i += IT_IX(it1, ip0[1]);
11458
 
                                wo1   = IT_WO(it1, ip0[1]);
11459
 
                                ti_i += IT_IX(it2, ip0[2]);
11460
 
                                wo2   = IT_WO(it2, ip0[2]);
11461
 
                                ti_i += IT_IX(it3, ip0[3]);
11462
 
                                wo3   = IT_WO(it3, ip0[3]);
11463
 
                                ti_i += IT_IX(it4, ip0[4]);
11464
 
                                wo4   = IT_WO(it4, ip0[4]);
11465
 
                                ti_i += IT_IX(it5, ip0[5]);
11466
 
                                wo5   = IT_WO(it5, ip0[5]);
11467
 
                                ti_i += IT_IX(it6, ip0[6]);
11468
 
                                wo6   = IT_WO(it6, ip0[6]);
11469
 
                                
11470
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
11471
 
                                
11472
 
                                /* Sort weighting values and vertex offset values */
11473
 
                                CEX(wo0, wo1);
11474
 
                                CEX(wo0, wo2);
11475
 
                                CEX(wo0, wo3);
11476
 
                                CEX(wo0, wo4);
11477
 
                                CEX(wo0, wo5);
11478
 
                                CEX(wo0, wo6);
11479
 
                                CEX(wo1, wo2);
11480
 
                                CEX(wo1, wo3);
11481
 
                                CEX(wo1, wo4);
11482
 
                                CEX(wo1, wo5);
11483
 
                                CEX(wo1, wo6);
11484
 
                                CEX(wo2, wo3);
11485
 
                                CEX(wo2, wo4);
11486
 
                                CEX(wo2, wo5);
11487
 
                                CEX(wo2, wo6);
11488
 
                                CEX(wo3, wo4);
11489
 
                                CEX(wo3, wo5);
11490
 
                                CEX(wo3, wo6);
11491
 
                                CEX(wo4, wo5);
11492
 
                                CEX(wo4, wo6);
11493
 
                                CEX(wo5, wo6);
11494
 
                        }
11495
 
                        {
11496
 
                                unsigned int nvof;      /* Next vertex offset value */
11497
 
                                unsigned int vof;       /* Vertex offset value */
11498
 
                                unsigned int vwe;       /* Vertex weighting */
11499
 
                                
11500
 
                                vof = 0;                                /* First vertex offset is 0 */
11501
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
11502
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
11503
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
11504
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
11505
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
11506
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
11507
 
                                vof += nvof;                    /* Move to next vertex */
11508
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
11509
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
11510
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
11511
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
11512
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
11513
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
11514
 
                                vof += nvof;                    /* Move to next vertex */
11515
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
11516
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
11517
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
11518
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
11519
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
11520
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
11521
 
                                vof += nvof;                    /* Move to next vertex */
11522
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
11523
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
11524
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
11525
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
11526
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
11527
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
11528
 
                                vof += nvof;                    /* Move to next vertex */
11529
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
11530
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
11531
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
11532
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
11533
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
11534
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
11535
 
                                vof += nvof;                    /* Move to next vertex */
11536
 
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
11537
 
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
11538
 
                                vwe = wo4 - wo5;                /* Baricentric weighting */
11539
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
11540
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
11541
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
11542
 
                                vof += nvof;                    /* Move to next vertex */
11543
 
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
11544
 
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
11545
 
                                vwe = wo5 - wo6;                /* Baricentric weighting */
11546
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
11547
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
11548
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
11549
 
                                vof += nvof;                    /* Move to next vertex */
11550
 
                                vwe = wo6;                              /* Baricentric weighting */
11551
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
11552
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
11553
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
11554
 
                        }
11555
 
                }
11556
 
                {
11557
 
                        unsigned int oti;       /* Vertex offset value */
11558
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
11559
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
11560
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
11561
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
11562
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
11563
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
11564
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
11565
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
11566
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
11567
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
11568
 
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
11569
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
11570
 
                }
11571
 
        }
 
11221
        imdi_imp *p = (imdi_imp *)(s->impl);
 
11222
        unsigned char *ip0 = (unsigned char *)inp[0];
 
11223
        unsigned char *op0 = (unsigned char *)outp[0];
 
11224
        unsigned char *ep = ip0 + npix * 7 ;
 
11225
        pointer it0 = (pointer)p->in_tables[0];
 
11226
        pointer it1 = (pointer)p->in_tables[1];
 
11227
        pointer it2 = (pointer)p->in_tables[2];
 
11228
        pointer it3 = (pointer)p->in_tables[3];
 
11229
        pointer it4 = (pointer)p->in_tables[4];
 
11230
        pointer it5 = (pointer)p->in_tables[5];
 
11231
        pointer it6 = (pointer)p->in_tables[6];
 
11232
        pointer ot0 = (pointer)p->out_tables[0];
 
11233
        pointer ot1 = (pointer)p->out_tables[1];
 
11234
        pointer ot2 = (pointer)p->out_tables[2];
 
11235
        pointer ot3 = (pointer)p->out_tables[3];
 
11236
        pointer ot4 = (pointer)p->out_tables[4];
 
11237
        pointer ot5 = (pointer)p->out_tables[5];
 
11238
        pointer im_base = (pointer)p->im_table;
 
11239
 
 
11240
        for(;ip0 < ep; ip0 += 7, op0 += 6) {
 
11241
                unsigned int ova0;      /* Output value accumulator */
 
11242
                unsigned int ova1;      /* Output value accumulator */
 
11243
                unsigned int ova2;      /* Output value accumulator */
 
11244
                {
 
11245
                        pointer imp;
 
11246
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
11247
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
11248
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
11249
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
11250
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
11251
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
 
11252
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
 
11253
                        {
 
11254
                                unsigned int ti_i;      /* Interpolation index variable */
 
11255
 
 
11256
                                ti_i  = IT_IX(it0, ip0[0]);
 
11257
                                wo0   = IT_WO(it0, ip0[0]);
 
11258
                                ti_i += IT_IX(it1, ip0[1]);
 
11259
                                wo1   = IT_WO(it1, ip0[1]);
 
11260
                                ti_i += IT_IX(it2, ip0[2]);
 
11261
                                wo2   = IT_WO(it2, ip0[2]);
 
11262
                                ti_i += IT_IX(it3, ip0[3]);
 
11263
                                wo3   = IT_WO(it3, ip0[3]);
 
11264
                                ti_i += IT_IX(it4, ip0[4]);
 
11265
                                wo4   = IT_WO(it4, ip0[4]);
 
11266
                                ti_i += IT_IX(it5, ip0[5]);
 
11267
                                wo5   = IT_WO(it5, ip0[5]);
 
11268
                                ti_i += IT_IX(it6, ip0[6]);
 
11269
                                wo6   = IT_WO(it6, ip0[6]);
 
11270
 
 
11271
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
11272
 
 
11273
                                /* Sort weighting values and vertex offset values */
 
11274
                                CEX(wo0, wo1);
 
11275
                                CEX(wo0, wo2);
 
11276
                                CEX(wo0, wo3);
 
11277
                                CEX(wo0, wo4);
 
11278
                                CEX(wo0, wo5);
 
11279
                                CEX(wo0, wo6);
 
11280
                                CEX(wo1, wo2);
 
11281
                                CEX(wo1, wo3);
 
11282
                                CEX(wo1, wo4);
 
11283
                                CEX(wo1, wo5);
 
11284
                                CEX(wo1, wo6);
 
11285
                                CEX(wo2, wo3);
 
11286
                                CEX(wo2, wo4);
 
11287
                                CEX(wo2, wo5);
 
11288
                                CEX(wo2, wo6);
 
11289
                                CEX(wo3, wo4);
 
11290
                                CEX(wo3, wo5);
 
11291
                                CEX(wo3, wo6);
 
11292
                                CEX(wo4, wo5);
 
11293
                                CEX(wo4, wo6);
 
11294
                                CEX(wo5, wo6);
 
11295
                        }
 
11296
                        {
 
11297
                                unsigned int nvof;      /* Next vertex offset value */
 
11298
                                unsigned int vof;       /* Vertex offset value */
 
11299
                                unsigned int vwe;       /* Vertex weighting */
 
11300
 
 
11301
                                vof = 0;                                /* First vertex offset is 0 */
 
11302
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
11303
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
11304
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
11305
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
11306
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
11307
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
11308
                                vof += nvof;                    /* Move to next vertex */
 
11309
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
11310
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
11311
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
11312
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
11313
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
11314
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
11315
                                vof += nvof;                    /* Move to next vertex */
 
11316
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
11317
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
11318
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
11319
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
11320
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
11321
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
11322
                                vof += nvof;                    /* Move to next vertex */
 
11323
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
11324
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
11325
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
11326
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
11327
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
11328
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
11329
                                vof += nvof;                    /* Move to next vertex */
 
11330
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
11331
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
11332
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
11333
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
11334
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
11335
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
11336
                                vof += nvof;                    /* Move to next vertex */
 
11337
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
 
11338
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
 
11339
                                vwe = wo4 - wo5;                /* Baricentric weighting */
 
11340
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
11341
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
11342
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
11343
                                vof += nvof;                    /* Move to next vertex */
 
11344
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
 
11345
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
 
11346
                                vwe = wo5 - wo6;                /* Baricentric weighting */
 
11347
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
11348
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
11349
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
11350
                                vof += nvof;                    /* Move to next vertex */
 
11351
                                vwe = wo6;                              /* Baricentric weighting */
 
11352
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
11353
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
11354
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
11355
                        }
 
11356
                }
 
11357
                {
 
11358
                        unsigned int oti;       /* Vertex offset value */
 
11359
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
11360
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
11361
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
11362
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
11363
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
11364
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
11365
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
11366
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
11367
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
11368
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
11369
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
 
11370
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
11371
                }
 
11372
        }
11572
11373
}
11573
11374
#undef IT_WO
11574
11375
#undef IT_IX
11581
11382
imdi_k34_gen(
11582
11383
genspec *g                      /* structure to be initialised */
11583
11384
) {
11584
 
        static unsigned char data[] = {
11585
 
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
11586
 
                0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
11587
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11588
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
11589
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
11590
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
11591
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
11592
 
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
11593
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
11594
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
11595
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
11596
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11597
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11598
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11599
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11600
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
11601
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
11602
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
11603
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
11604
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
11605
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
11606
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
11607
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
11608
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11609
 
                0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
11610
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
11611
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
11612
 
                0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11613
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11614
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11615
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11616
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11617
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
11618
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
11619
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
11620
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11621
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
11622
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
11623
 
                0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11624
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
11625
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
11626
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
11627
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
11628
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
11629
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
11630
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
11631
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
11632
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
11633
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11634
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
11635
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
11636
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x37, 0x5f, 0x36, 0x5f, 
11637
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
11638
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
11639
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
11640
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
11641
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
11642
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
11643
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
11644
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11645
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11646
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11647
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11648
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
11649
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x33, 0x34, 
11650
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11651
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11652
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
11653
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
11654
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
11655
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
11656
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
11657
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
11658
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
11659
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
11660
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
11661
 
                0x00, 0xf0, 0x04, 0x08 
11662
 
        };      /* Structure image */
11663
 
        
11664
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
11385
        static unsigned char data[] = {
 
11386
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
11387
                0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
11388
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11389
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11390
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11391
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11392
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11393
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
11394
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
11395
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
11396
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
11397
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11398
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11399
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11400
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11401
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11402
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11403
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11404
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11405
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
11406
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11407
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11408
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11409
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11410
                0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
11411
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
11412
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
11413
                0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11414
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11415
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11416
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11417
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11418
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11419
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11420
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11421
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11422
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
11423
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
11424
                0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11425
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
11426
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
11427
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
11428
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
11429
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
11430
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
11431
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
11432
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
11433
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
11434
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11435
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
11436
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
11437
                0x2c, 0xf3, 0xdc, 0xb7, 0x37, 0x5f, 0x36, 0x5f,
 
11438
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
11439
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
11440
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
11441
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
11442
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
11443
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
11444
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
11445
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11446
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11447
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11448
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11449
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
11450
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x33, 0x34,
 
11451
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11452
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11453
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
11454
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
11455
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
11456
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
11457
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
11458
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
11459
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
11460
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
11461
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
11462
                0x00, 0xf0, 0x04, 0x08
 
11463
        };      /* Structure image */
 
11464
 
 
11465
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
11665
11466
}
11666
11467
 
11667
11468
static void
11668
11469
imdi_k34_tab(
11669
11470
tabspec *t                      /* structure to be initialised */
11670
11471
) {
11671
 
        static unsigned char data[] = {
11672
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
11673
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
11674
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
11675
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
11676
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
11677
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
11678
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
11679
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
11680
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
11681
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11682
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
11683
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
11684
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
11685
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
11686
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
11687
 
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
11688
 
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
11689
 
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
11690
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11691
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11692
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
11693
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
11694
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
11695
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
11696
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11697
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11698
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
11699
 
                0x00, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
11700
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
11701
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
11702
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
11703
 
                0x08, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 
11704
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
11705
 
        };      /* Structure image */
11706
 
        
11707
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
11472
        static unsigned char data[] = {
 
11473
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
11474
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
11475
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
11476
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
11477
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
11478
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
11479
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11480
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
11481
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
11482
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11483
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
11484
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
11485
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
11486
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
11487
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
11488
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
11489
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
11490
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
11491
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11492
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11493
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
11494
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
11495
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
11496
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
11497
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11498
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11499
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11500
                0x00, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
11501
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11502
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11503
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11504
                0x08, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
 
11505
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
11506
        };      /* Structure image */
 
11507
 
 
11508
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
11708
11509
}
11709
11510
 
11710
 
 
11711
 
 
11712
 
 
11713
 
 
11714
 
 
11715
11511
/* Integer Multi-Dimensional Interpolation */
11716
11512
/* Interpolation Kernel Code */
11717
11513
/* Generated by cgen */
11720
11516
 
11721
11517
/* see the Licence.txt file for licencing details.*/
11722
11518
 
11723
 
 
11724
11519
/*
11725
11520
   Interpolation kernel specs:
11726
11521
 
11821
11616
void **inp,             /* pointer to input pointers */
11822
11617
unsigned int npix       /* Number of pixels to process */
11823
11618
) {
11824
 
        imdi_imp *p = (imdi_imp *)(s->impl);
11825
 
        unsigned char *ip0 = (unsigned char *)inp[0];
11826
 
        unsigned char *op0 = (unsigned char *)outp[0];
11827
 
        unsigned char *ep = ip0 + npix * 8 ;
11828
 
        pointer it0 = (pointer)p->in_tables[0];
11829
 
        pointer it1 = (pointer)p->in_tables[1];
11830
 
        pointer it2 = (pointer)p->in_tables[2];
11831
 
        pointer it3 = (pointer)p->in_tables[3];
11832
 
        pointer it4 = (pointer)p->in_tables[4];
11833
 
        pointer it5 = (pointer)p->in_tables[5];
11834
 
        pointer it6 = (pointer)p->in_tables[6];
11835
 
        pointer it7 = (pointer)p->in_tables[7];
11836
 
        pointer ot0 = (pointer)p->out_tables[0];
11837
 
        pointer ot1 = (pointer)p->out_tables[1];
11838
 
        pointer ot2 = (pointer)p->out_tables[2];
11839
 
        pointer ot3 = (pointer)p->out_tables[3];
11840
 
        pointer ot4 = (pointer)p->out_tables[4];
11841
 
        pointer ot5 = (pointer)p->out_tables[5];
11842
 
        pointer im_base = (pointer)p->im_table;
11843
 
        
11844
 
        for(;ip0 < ep; ip0 += 8, op0 += 6) {
11845
 
                unsigned int ova0;      /* Output value accumulator */
11846
 
                unsigned int ova1;      /* Output value accumulator */
11847
 
                unsigned int ova2;      /* Output value accumulator */
11848
 
                {
11849
 
                        pointer imp;
11850
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
11851
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
11852
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
11853
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
11854
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
11855
 
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
11856
 
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
11857
 
                        unsigned int wo7;       /* Weighting value and vertex offset variable */
11858
 
                        {
11859
 
                                unsigned int ti_i;      /* Interpolation index variable */
11860
 
                                
11861
 
                                ti_i  = IT_IX(it0, ip0[0]);
11862
 
                                wo0   = IT_WO(it0, ip0[0]);
11863
 
                                ti_i += IT_IX(it1, ip0[1]);
11864
 
                                wo1   = IT_WO(it1, ip0[1]);
11865
 
                                ti_i += IT_IX(it2, ip0[2]);
11866
 
                                wo2   = IT_WO(it2, ip0[2]);
11867
 
                                ti_i += IT_IX(it3, ip0[3]);
11868
 
                                wo3   = IT_WO(it3, ip0[3]);
11869
 
                                ti_i += IT_IX(it4, ip0[4]);
11870
 
                                wo4   = IT_WO(it4, ip0[4]);
11871
 
                                ti_i += IT_IX(it5, ip0[5]);
11872
 
                                wo5   = IT_WO(it5, ip0[5]);
11873
 
                                ti_i += IT_IX(it6, ip0[6]);
11874
 
                                wo6   = IT_WO(it6, ip0[6]);
11875
 
                                ti_i += IT_IX(it7, ip0[7]);
11876
 
                                wo7   = IT_WO(it7, ip0[7]);
11877
 
                                
11878
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
11879
 
                                
11880
 
                                /* Sort weighting values and vertex offset values */
11881
 
                                CEX(wo0, wo1);
11882
 
                                CEX(wo0, wo2);
11883
 
                                CEX(wo0, wo3);
11884
 
                                CEX(wo0, wo4);
11885
 
                                CEX(wo0, wo5);
11886
 
                                CEX(wo0, wo6);
11887
 
                                CEX(wo0, wo7);
11888
 
                                CEX(wo1, wo2);
11889
 
                                CEX(wo1, wo3);
11890
 
                                CEX(wo1, wo4);
11891
 
                                CEX(wo1, wo5);
11892
 
                                CEX(wo1, wo6);
11893
 
                                CEX(wo1, wo7);
11894
 
                                CEX(wo2, wo3);
11895
 
                                CEX(wo2, wo4);
11896
 
                                CEX(wo2, wo5);
11897
 
                                CEX(wo2, wo6);
11898
 
                                CEX(wo2, wo7);
11899
 
                                CEX(wo3, wo4);
11900
 
                                CEX(wo3, wo5);
11901
 
                                CEX(wo3, wo6);
11902
 
                                CEX(wo3, wo7);
11903
 
                                CEX(wo4, wo5);
11904
 
                                CEX(wo4, wo6);
11905
 
                                CEX(wo4, wo7);
11906
 
                                CEX(wo5, wo6);
11907
 
                                CEX(wo5, wo7);
11908
 
                                CEX(wo6, wo7);
11909
 
                        }
11910
 
                        {
11911
 
                                unsigned int nvof;      /* Next vertex offset value */
11912
 
                                unsigned int vof;       /* Vertex offset value */
11913
 
                                unsigned int vwe;       /* Vertex weighting */
11914
 
                                
11915
 
                                vof = 0;                                /* First vertex offset is 0 */
11916
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
11917
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
11918
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
11919
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
11920
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
11921
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
11922
 
                                vof += nvof;                    /* Move to next vertex */
11923
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
11924
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
11925
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
11926
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
11927
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
11928
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
11929
 
                                vof += nvof;                    /* Move to next vertex */
11930
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
11931
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
11932
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
11933
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
11934
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
11935
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
11936
 
                                vof += nvof;                    /* Move to next vertex */
11937
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
11938
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
11939
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
11940
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
11941
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
11942
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
11943
 
                                vof += nvof;                    /* Move to next vertex */
11944
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
11945
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
11946
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
11947
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
11948
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
11949
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
11950
 
                                vof += nvof;                    /* Move to next vertex */
11951
 
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
11952
 
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
11953
 
                                vwe = wo4 - wo5;                /* Baricentric weighting */
11954
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
11955
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
11956
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
11957
 
                                vof += nvof;                    /* Move to next vertex */
11958
 
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
11959
 
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
11960
 
                                vwe = wo5 - wo6;                /* Baricentric weighting */
11961
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
11962
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
11963
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
11964
 
                                vof += nvof;                    /* Move to next vertex */
11965
 
                                nvof = (wo7 & 0x7fffff);        /* Extract offset value */
11966
 
                                wo7 = (wo7 >> 23);              /* Extract weighting value */
11967
 
                                vwe = wo6 - wo7;                /* Baricentric weighting */
11968
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
11969
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
11970
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
11971
 
                                vof += nvof;                    /* Move to next vertex */
11972
 
                                vwe = wo7;                              /* Baricentric weighting */
11973
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
11974
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
11975
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
11976
 
                        }
11977
 
                }
11978
 
                {
11979
 
                        unsigned int oti;       /* Vertex offset value */
11980
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
11981
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
11982
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
11983
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
11984
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
11985
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
11986
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
11987
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
11988
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
11989
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
11990
 
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
11991
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
11992
 
                }
11993
 
        }
 
11619
        imdi_imp *p = (imdi_imp *)(s->impl);
 
11620
        unsigned char *ip0 = (unsigned char *)inp[0];
 
11621
        unsigned char *op0 = (unsigned char *)outp[0];
 
11622
        unsigned char *ep = ip0 + npix * 8 ;
 
11623
        pointer it0 = (pointer)p->in_tables[0];
 
11624
        pointer it1 = (pointer)p->in_tables[1];
 
11625
        pointer it2 = (pointer)p->in_tables[2];
 
11626
        pointer it3 = (pointer)p->in_tables[3];
 
11627
        pointer it4 = (pointer)p->in_tables[4];
 
11628
        pointer it5 = (pointer)p->in_tables[5];
 
11629
        pointer it6 = (pointer)p->in_tables[6];
 
11630
        pointer it7 = (pointer)p->in_tables[7];
 
11631
        pointer ot0 = (pointer)p->out_tables[0];
 
11632
        pointer ot1 = (pointer)p->out_tables[1];
 
11633
        pointer ot2 = (pointer)p->out_tables[2];
 
11634
        pointer ot3 = (pointer)p->out_tables[3];
 
11635
        pointer ot4 = (pointer)p->out_tables[4];
 
11636
        pointer ot5 = (pointer)p->out_tables[5];
 
11637
        pointer im_base = (pointer)p->im_table;
 
11638
 
 
11639
        for(;ip0 < ep; ip0 += 8, op0 += 6) {
 
11640
                unsigned int ova0;      /* Output value accumulator */
 
11641
                unsigned int ova1;      /* Output value accumulator */
 
11642
                unsigned int ova2;      /* Output value accumulator */
 
11643
                {
 
11644
                        pointer imp;
 
11645
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
11646
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
11647
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
11648
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
11649
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
11650
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
 
11651
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
 
11652
                        unsigned int wo7;       /* Weighting value and vertex offset variable */
 
11653
                        {
 
11654
                                unsigned int ti_i;      /* Interpolation index variable */
 
11655
 
 
11656
                                ti_i  = IT_IX(it0, ip0[0]);
 
11657
                                wo0   = IT_WO(it0, ip0[0]);
 
11658
                                ti_i += IT_IX(it1, ip0[1]);
 
11659
                                wo1   = IT_WO(it1, ip0[1]);
 
11660
                                ti_i += IT_IX(it2, ip0[2]);
 
11661
                                wo2   = IT_WO(it2, ip0[2]);
 
11662
                                ti_i += IT_IX(it3, ip0[3]);
 
11663
                                wo3   = IT_WO(it3, ip0[3]);
 
11664
                                ti_i += IT_IX(it4, ip0[4]);
 
11665
                                wo4   = IT_WO(it4, ip0[4]);
 
11666
                                ti_i += IT_IX(it5, ip0[5]);
 
11667
                                wo5   = IT_WO(it5, ip0[5]);
 
11668
                                ti_i += IT_IX(it6, ip0[6]);
 
11669
                                wo6   = IT_WO(it6, ip0[6]);
 
11670
                                ti_i += IT_IX(it7, ip0[7]);
 
11671
                                wo7   = IT_WO(it7, ip0[7]);
 
11672
 
 
11673
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
11674
 
 
11675
                                /* Sort weighting values and vertex offset values */
 
11676
                                CEX(wo0, wo1);
 
11677
                                CEX(wo0, wo2);
 
11678
                                CEX(wo0, wo3);
 
11679
                                CEX(wo0, wo4);
 
11680
                                CEX(wo0, wo5);
 
11681
                                CEX(wo0, wo6);
 
11682
                                CEX(wo0, wo7);
 
11683
                                CEX(wo1, wo2);
 
11684
                                CEX(wo1, wo3);
 
11685
                                CEX(wo1, wo4);
 
11686
                                CEX(wo1, wo5);
 
11687
                                CEX(wo1, wo6);
 
11688
                                CEX(wo1, wo7);
 
11689
                                CEX(wo2, wo3);
 
11690
                                CEX(wo2, wo4);
 
11691
                                CEX(wo2, wo5);
 
11692
                                CEX(wo2, wo6);
 
11693
                                CEX(wo2, wo7);
 
11694
                                CEX(wo3, wo4);
 
11695
                                CEX(wo3, wo5);
 
11696
                                CEX(wo3, wo6);
 
11697
                                CEX(wo3, wo7);
 
11698
                                CEX(wo4, wo5);
 
11699
                                CEX(wo4, wo6);
 
11700
                                CEX(wo4, wo7);
 
11701
                                CEX(wo5, wo6);
 
11702
                                CEX(wo5, wo7);
 
11703
                                CEX(wo6, wo7);
 
11704
                        }
 
11705
                        {
 
11706
                                unsigned int nvof;      /* Next vertex offset value */
 
11707
                                unsigned int vof;       /* Vertex offset value */
 
11708
                                unsigned int vwe;       /* Vertex weighting */
 
11709
 
 
11710
                                vof = 0;                                /* First vertex offset is 0 */
 
11711
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
11712
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
11713
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
11714
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
11715
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
11716
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
11717
                                vof += nvof;                    /* Move to next vertex */
 
11718
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
11719
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
11720
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
11721
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
11722
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
11723
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
11724
                                vof += nvof;                    /* Move to next vertex */
 
11725
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
11726
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
11727
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
11728
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
11729
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
11730
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
11731
                                vof += nvof;                    /* Move to next vertex */
 
11732
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
11733
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
11734
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
11735
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
11736
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
11737
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
11738
                                vof += nvof;                    /* Move to next vertex */
 
11739
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
11740
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
11741
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
11742
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
11743
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
11744
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
11745
                                vof += nvof;                    /* Move to next vertex */
 
11746
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
 
11747
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
 
11748
                                vwe = wo4 - wo5;                /* Baricentric weighting */
 
11749
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
11750
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
11751
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
11752
                                vof += nvof;                    /* Move to next vertex */
 
11753
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
 
11754
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
 
11755
                                vwe = wo5 - wo6;                /* Baricentric weighting */
 
11756
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
11757
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
11758
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
11759
                                vof += nvof;                    /* Move to next vertex */
 
11760
                                nvof = (wo7 & 0x7fffff);        /* Extract offset value */
 
11761
                                wo7 = (wo7 >> 23);              /* Extract weighting value */
 
11762
                                vwe = wo6 - wo7;                /* Baricentric weighting */
 
11763
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
11764
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
11765
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
11766
                                vof += nvof;                    /* Move to next vertex */
 
11767
                                vwe = wo7;                              /* Baricentric weighting */
 
11768
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
11769
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
11770
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
11771
                        }
 
11772
                }
 
11773
                {
 
11774
                        unsigned int oti;       /* Vertex offset value */
 
11775
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
11776
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
11777
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
11778
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
11779
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
11780
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
11781
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
11782
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
11783
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
11784
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
11785
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
 
11786
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
11787
                }
 
11788
        }
11994
11789
}
11995
11790
#undef IT_WO
11996
11791
#undef IT_IX
12003
11798
imdi_k35_gen(
12004
11799
genspec *g                      /* structure to be initialised */
12005
11800
) {
12006
 
        static unsigned char data[] = {
12007
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12008
 
                0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
12009
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12010
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12011
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12012
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12013
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12014
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12015
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12016
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12017
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12018
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12019
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12020
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12021
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12022
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12023
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12024
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12025
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12026
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
12027
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12028
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12029
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12030
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12031
 
                0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
12032
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
12033
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
12034
 
                0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12035
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12036
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12037
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12038
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12039
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12040
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12041
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12042
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12043
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
12044
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
12045
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12046
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
12047
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
12048
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
12049
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
12050
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
12051
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
12052
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
12053
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
12054
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
12055
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12056
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
12057
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
12058
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x38, 0x5f, 0x36, 0x5f, 
12059
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
12060
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
12061
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
12062
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
12063
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
12064
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
12065
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
12066
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12067
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12068
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12069
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12070
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
12071
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x33, 0x35, 
12072
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12073
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12074
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
12075
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
12076
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
12077
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
12078
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
12079
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
12080
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
12081
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
12082
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
12083
 
                0x00, 0xf0, 0x04, 0x08 
12084
 
        };      /* Structure image */
12085
 
        
12086
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
11801
        static unsigned char data[] = {
 
11802
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11803
                0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
11804
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11805
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11806
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11807
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11808
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11809
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11810
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11811
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11812
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11813
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11814
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11815
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11816
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11817
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11818
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11819
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11820
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11821
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
11822
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11823
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11824
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11825
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11826
                0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
11827
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
11828
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
11829
                0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11830
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11831
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11832
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11833
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11834
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11835
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11836
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11837
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11838
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
11839
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
11840
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11841
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
11842
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
11843
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
11844
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
11845
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
11846
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
11847
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
11848
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
11849
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
11850
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11851
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
11852
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
11853
                0x2c, 0xf3, 0xdc, 0xb7, 0x38, 0x5f, 0x36, 0x5f,
 
11854
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
11855
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
11856
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
11857
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
11858
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
11859
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
11860
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
11861
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11862
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11863
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11864
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11865
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
11866
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x33, 0x35,
 
11867
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11868
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11869
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
11870
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
11871
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
11872
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
11873
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
11874
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
11875
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
11876
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
11877
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
11878
                0x00, 0xf0, 0x04, 0x08
 
11879
        };      /* Structure image */
 
11880
 
 
11881
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
12087
11882
}
12088
11883
 
12089
11884
static void
12090
11885
imdi_k35_tab(
12091
11886
tabspec *t                      /* structure to be initialised */
12092
11887
) {
12093
 
        static unsigned char data[] = {
12094
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
12095
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
12096
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
12097
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
12098
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
12099
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
12100
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12101
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
12102
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
12103
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12104
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
12105
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
12106
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
12107
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
12108
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
12109
 
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
12110
 
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
12111
 
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
12112
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12113
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12114
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
12115
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
12116
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
12117
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
12118
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12119
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12120
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12121
 
                0x00, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
12122
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12123
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12124
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12125
 
                0x08, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 
12126
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
12127
 
        };      /* Structure image */
12128
 
        
12129
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
11888
        static unsigned char data[] = {
 
11889
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
11890
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
11891
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
11892
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
11893
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
11894
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
11895
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11896
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
11897
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
11898
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11899
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
11900
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
11901
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
11902
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
11903
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
11904
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
11905
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
11906
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
11907
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11908
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11909
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
11910
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
11911
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
11912
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
11913
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11914
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11915
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
11916
                0x00, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
11917
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11918
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11919
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
11920
                0x08, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
 
11921
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
11922
        };      /* Structure image */
 
11923
 
 
11924
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
12130
11925
}
12131
11926
 
12132
 
 
12133
 
 
12134
 
 
12135
 
 
12136
 
 
12137
11927
/* Integer Multi-Dimensional Interpolation */
12138
11928
/* Interpolation Kernel Code */
12139
11929
/* Generated by cgen */
12142
11932
 
12143
11933
/* see the Licence.txt file for licencing details.*/
12144
11934
 
12145
 
 
12146
11935
/*
12147
11936
   Interpolation kernel specs:
12148
11937
 
12233
12022
void **inp,             /* pointer to input pointers */
12234
12023
unsigned int npix       /* Number of pixels to process */
12235
12024
) {
12236
 
        imdi_imp *p = (imdi_imp *)(s->impl);
12237
 
        unsigned char *ip0 = (unsigned char *)inp[0];
12238
 
        unsigned char *op0 = (unsigned char *)outp[0];
12239
 
        unsigned char *ep = ip0 + npix * 1 ;
12240
 
        pointer it0 = (pointer)p->in_tables[0];
12241
 
        pointer ot0 = (pointer)p->out_tables[0];
12242
 
        pointer ot1 = (pointer)p->out_tables[1];
12243
 
        pointer ot2 = (pointer)p->out_tables[2];
12244
 
        pointer ot3 = (pointer)p->out_tables[3];
12245
 
        pointer ot4 = (pointer)p->out_tables[4];
12246
 
        pointer ot5 = (pointer)p->out_tables[5];
12247
 
        pointer ot6 = (pointer)p->out_tables[6];
12248
 
        pointer sw_base = (pointer)p->sw_table;
12249
 
        pointer im_base = (pointer)p->im_table;
12250
 
        
12251
 
        for(;ip0 < ep; ip0 += 1, op0 += 7) {
12252
 
                unsigned int ova0;      /* Output value accumulator */
12253
 
                unsigned int ova1;      /* Output value accumulator */
12254
 
                unsigned int ova2;      /* Output value accumulator */
12255
 
                unsigned int ova3;      /* Output value partial accumulator */
12256
 
                {
12257
 
                        pointer swp;
12258
 
                        pointer imp;
12259
 
                        {
12260
 
                                unsigned int ti;        /* Simplex+Interpolation index variable */
12261
 
                                
12262
 
                                ti  = IT_IT(it0, ip0[0]);
12263
 
                                
12264
 
                                imp = im_base + IM_O(ti >> 0);          /* Extract interp. index and comp. entry */
12265
 
                                swp = sw_base + SW_O(ti & 0x0); /* Extract simplex index and comp. entry */
12266
 
                        }
12267
 
                        {
12268
 
                                unsigned int vowr;      /* Vertex offset/weight value */
12269
 
                                unsigned int vof;       /* Vertex offset value */
12270
 
                                unsigned int vwe;       /* Vertex weighting */
12271
 
                                
12272
 
                                vowr = SX_WO(swp, 0);   /* Read vertex offset+weighting values */
12273
 
                                vof = (vowr & 0x7f);    /* Extract offset value */
12274
 
                                vwe = (vowr >> 7);      /* Extract weighting value */
12275
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
12276
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
12277
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
12278
 
                                ova3  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
12279
 
                                vowr = SX_WO(swp, 1);   /* Read vertex offset+weighting values */
12280
 
                                vof = (vowr & 0x7f);    /* Extract offset value */
12281
 
                                vwe = (vowr >> 7);      /* Extract weighting value */
12282
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
12283
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
12284
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
12285
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
12286
 
                        }
12287
 
                }
12288
 
                {
12289
 
                        unsigned int oti;       /* Vertex offset value */
12290
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
12291
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
12292
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
12293
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
12294
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
12295
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
12296
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
12297
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
12298
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
12299
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
12300
 
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
12301
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
12302
 
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
12303
 
                        op0[6] = OT_E(ot6, oti);        /* Write result */
12304
 
                }
12305
 
        }
 
12025
        imdi_imp *p = (imdi_imp *)(s->impl);
 
12026
        unsigned char *ip0 = (unsigned char *)inp[0];
 
12027
        unsigned char *op0 = (unsigned char *)outp[0];
 
12028
        unsigned char *ep = ip0 + npix * 1 ;
 
12029
        pointer it0 = (pointer)p->in_tables[0];
 
12030
        pointer ot0 = (pointer)p->out_tables[0];
 
12031
        pointer ot1 = (pointer)p->out_tables[1];
 
12032
        pointer ot2 = (pointer)p->out_tables[2];
 
12033
        pointer ot3 = (pointer)p->out_tables[3];
 
12034
        pointer ot4 = (pointer)p->out_tables[4];
 
12035
        pointer ot5 = (pointer)p->out_tables[5];
 
12036
        pointer ot6 = (pointer)p->out_tables[6];
 
12037
        pointer sw_base = (pointer)p->sw_table;
 
12038
        pointer im_base = (pointer)p->im_table;
 
12039
 
 
12040
        for(;ip0 < ep; ip0 += 1, op0 += 7) {
 
12041
                unsigned int ova0;      /* Output value accumulator */
 
12042
                unsigned int ova1;      /* Output value accumulator */
 
12043
                unsigned int ova2;      /* Output value accumulator */
 
12044
                unsigned int ova3;      /* Output value partial accumulator */
 
12045
                {
 
12046
                        pointer swp;
 
12047
                        pointer imp;
 
12048
                        {
 
12049
                                unsigned int ti;        /* Simplex+Interpolation index variable */
 
12050
 
 
12051
                                ti  = IT_IT(it0, ip0[0]);
 
12052
 
 
12053
                                imp = im_base + IM_O(ti >> 0);          /* Extract interp. index and comp. entry */
 
12054
                                swp = sw_base + SW_O(ti & 0x0); /* Extract simplex index and comp. entry */
 
12055
                        }
 
12056
                        {
 
12057
                                unsigned int vowr;      /* Vertex offset/weight value */
 
12058
                                unsigned int vof;       /* Vertex offset value */
 
12059
                                unsigned int vwe;       /* Vertex weighting */
 
12060
 
 
12061
                                vowr = SX_WO(swp, 0);   /* Read vertex offset+weighting values */
 
12062
                                vof = (vowr & 0x7f);    /* Extract offset value */
 
12063
                                vwe = (vowr >> 7);      /* Extract weighting value */
 
12064
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
12065
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
12066
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
12067
                                ova3  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
12068
                                vowr = SX_WO(swp, 1);   /* Read vertex offset+weighting values */
 
12069
                                vof = (vowr & 0x7f);    /* Extract offset value */
 
12070
                                vwe = (vowr >> 7);      /* Extract weighting value */
 
12071
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
12072
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
12073
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
12074
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
12075
                        }
 
12076
                }
 
12077
                {
 
12078
                        unsigned int oti;       /* Vertex offset value */
 
12079
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
12080
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
12081
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
12082
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
12083
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
12084
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
12085
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
12086
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
12087
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
12088
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
12089
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
 
12090
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
12091
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
 
12092
                        op0[6] = OT_E(ot6, oti);        /* Write result */
 
12093
                }
 
12094
        }
12306
12095
}
12307
12096
#undef IT_IT
12308
12097
#undef SW_O
12316
12105
imdi_k36_gen(
12317
12106
genspec *g                      /* structure to be initialised */
12318
12107
) {
12319
 
        static unsigned char data[] = {
12320
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
12321
 
                0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
12322
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12323
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12324
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12325
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12326
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12327
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
12328
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12329
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12330
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12331
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12332
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12333
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12334
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12335
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12336
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12337
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12338
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12339
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
12340
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12341
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12342
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12343
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12344
 
                0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
12345
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
12346
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
12347
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
12348
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12349
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12350
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12351
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12352
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12353
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12354
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12355
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12356
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
12357
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
12358
 
                0xff, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
12359
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
12360
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
12361
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
12362
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
12363
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
12364
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
12365
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
12366
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
12367
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
12368
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12369
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
12370
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
12371
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x31, 0x5f, 0x37, 0x5f, 
12372
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
12373
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
12374
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
12375
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
12376
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
12377
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
12378
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
12379
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12380
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12381
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12382
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12383
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
12384
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x33, 0x36, 
12385
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12386
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12387
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
12388
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
12389
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
12390
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
12391
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
12392
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
12393
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
12394
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
12395
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
12396
 
                0x00, 0xf0, 0x04, 0x08 
12397
 
        };      /* Structure image */
12398
 
        
12399
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
12108
        static unsigned char data[] = {
 
12109
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
12110
                0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
12111
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12112
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12113
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12114
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12115
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12116
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
12117
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12118
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12119
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12120
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12121
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12122
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12123
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12124
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12125
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12126
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12127
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12128
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
12129
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12130
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12131
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12132
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12133
                0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
12134
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
12135
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
12136
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
12137
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12138
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12139
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12140
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12141
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12142
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12143
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12144
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12145
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
12146
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
12147
                0xff, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
12148
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
12149
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
12150
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
12151
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
12152
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
12153
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
12154
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
12155
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
12156
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
12157
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12158
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
12159
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
12160
                0x2c, 0xf3, 0xdc, 0xb7, 0x31, 0x5f, 0x37, 0x5f,
 
12161
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
12162
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
12163
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
12164
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
12165
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
12166
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
12167
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
12168
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12169
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12170
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12171
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12172
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
12173
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x33, 0x36,
 
12174
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12175
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12176
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
12177
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
12178
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
12179
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
12180
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
12181
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
12182
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
12183
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
12184
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
12185
                0x00, 0xf0, 0x04, 0x08
 
12186
        };      /* Structure image */
 
12187
 
 
12188
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
12400
12189
}
12401
12190
 
12402
12191
static void
12403
12192
imdi_k36_tab(
12404
12193
tabspec *t                      /* structure to be initialised */
12405
12194
) {
12406
 
        static unsigned char data[] = {
12407
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12408
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
12409
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
12410
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
12411
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
12412
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
12413
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
12414
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
12415
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12416
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12417
 
                0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
12418
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12419
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
12420
 
                0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
12421
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
12422
 
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
12423
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12424
 
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
12425
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
12426
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
12427
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
12428
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
12429
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
12430
 
                0x06, 0x00, 0x00, 0x00, 0xdc, 0x60, 0xef, 0xb7, 
12431
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12432
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12433
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12434
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12435
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12436
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12437
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12438
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12439
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
12440
 
        };      /* Structure image */
12441
 
        
12442
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
12195
        static unsigned char data[] = {
 
12196
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12197
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
12198
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
12199
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
12200
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
12201
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
12202
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
12203
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
12204
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12205
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12206
                0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
12207
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12208
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
12209
                0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
12210
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
12211
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
12212
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12213
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
12214
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
12215
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
12216
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
12217
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
12218
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
12219
                0x06, 0x00, 0x00, 0x00, 0xdc, 0x60, 0xef, 0xb7,
 
12220
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12221
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12222
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12223
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12224
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12225
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12226
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12227
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12228
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
12229
        };      /* Structure image */
 
12230
 
 
12231
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
12443
12232
}
12444
12233
 
12445
 
 
12446
 
 
12447
 
 
12448
 
 
12449
 
 
12450
12234
/* Integer Multi-Dimensional Interpolation */
12451
12235
/* Interpolation Kernel Code */
12452
12236
/* Generated by cgen */
12455
12239
 
12456
12240
/* see the Licence.txt file for licencing details.*/
12457
12241
 
12458
 
 
12459
12242
/*
12460
12243
   Interpolation kernel specs:
12461
12244
 
12553
12336
void **inp,             /* pointer to input pointers */
12554
12337
unsigned int npix       /* Number of pixels to process */
12555
12338
) {
12556
 
        imdi_imp *p = (imdi_imp *)(s->impl);
12557
 
        unsigned char *ip0 = (unsigned char *)inp[0];
12558
 
        unsigned char *op0 = (unsigned char *)outp[0];
12559
 
        unsigned char *ep = ip0 + npix * 3 ;
12560
 
        pointer it0 = (pointer)p->in_tables[0];
12561
 
        pointer it1 = (pointer)p->in_tables[1];
12562
 
        pointer it2 = (pointer)p->in_tables[2];
12563
 
        pointer ot0 = (pointer)p->out_tables[0];
12564
 
        pointer ot1 = (pointer)p->out_tables[1];
12565
 
        pointer ot2 = (pointer)p->out_tables[2];
12566
 
        pointer ot3 = (pointer)p->out_tables[3];
12567
 
        pointer ot4 = (pointer)p->out_tables[4];
12568
 
        pointer ot5 = (pointer)p->out_tables[5];
12569
 
        pointer ot6 = (pointer)p->out_tables[6];
12570
 
        pointer sw_base = (pointer)p->sw_table;
12571
 
        pointer im_base = (pointer)p->im_table;
12572
 
        
12573
 
        for(;ip0 < ep; ip0 += 3, op0 += 7) {
12574
 
                unsigned int ova0;      /* Output value accumulator */
12575
 
                unsigned int ova1;      /* Output value accumulator */
12576
 
                unsigned int ova2;      /* Output value accumulator */
12577
 
                unsigned int ova3;      /* Output value partial accumulator */
12578
 
                {
12579
 
                        pointer swp;
12580
 
                        pointer imp;
12581
 
                        {
12582
 
                                unsigned int ti;        /* Simplex+Interpolation index variable */
12583
 
                                
12584
 
                                ti  = IT_IT(it0, ip0[0]);
12585
 
                                ti += IT_IT(it1, ip0[1]);
12586
 
                                ti += IT_IT(it2, ip0[2]);
12587
 
                                
12588
 
                                imp = im_base + IM_O(ti >> 12);         /* Extract interp. index and comp. entry */
12589
 
                                swp = sw_base + SW_O(ti & 0xfff);       /* Extract simplex index and comp. entry */
12590
 
                        }
12591
 
                        {
12592
 
                                unsigned int vof;       /* Vertex offset value */
12593
 
                                unsigned int vwe;       /* Vertex weighting */
12594
 
                                
12595
 
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
12596
 
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
12597
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
12598
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
12599
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
12600
 
                                ova3  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
12601
 
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
12602
 
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
12603
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
12604
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
12605
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
12606
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
12607
 
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
12608
 
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
12609
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
12610
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
12611
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
12612
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
12613
 
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
12614
 
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
12615
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
12616
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
12617
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
12618
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
12619
 
                        }
12620
 
                }
12621
 
                {
12622
 
                        unsigned int oti;       /* Vertex offset value */
12623
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
12624
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
12625
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
12626
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
12627
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
12628
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
12629
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
12630
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
12631
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
12632
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
12633
 
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
12634
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
12635
 
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
12636
 
                        op0[6] = OT_E(ot6, oti);        /* Write result */
12637
 
                }
12638
 
        }
 
12339
        imdi_imp *p = (imdi_imp *)(s->impl);
 
12340
        unsigned char *ip0 = (unsigned char *)inp[0];
 
12341
        unsigned char *op0 = (unsigned char *)outp[0];
 
12342
        unsigned char *ep = ip0 + npix * 3 ;
 
12343
        pointer it0 = (pointer)p->in_tables[0];
 
12344
        pointer it1 = (pointer)p->in_tables[1];
 
12345
        pointer it2 = (pointer)p->in_tables[2];
 
12346
        pointer ot0 = (pointer)p->out_tables[0];
 
12347
        pointer ot1 = (pointer)p->out_tables[1];
 
12348
        pointer ot2 = (pointer)p->out_tables[2];
 
12349
        pointer ot3 = (pointer)p->out_tables[3];
 
12350
        pointer ot4 = (pointer)p->out_tables[4];
 
12351
        pointer ot5 = (pointer)p->out_tables[5];
 
12352
        pointer ot6 = (pointer)p->out_tables[6];
 
12353
        pointer sw_base = (pointer)p->sw_table;
 
12354
        pointer im_base = (pointer)p->im_table;
 
12355
 
 
12356
        for(;ip0 < ep; ip0 += 3, op0 += 7) {
 
12357
                unsigned int ova0;      /* Output value accumulator */
 
12358
                unsigned int ova1;      /* Output value accumulator */
 
12359
                unsigned int ova2;      /* Output value accumulator */
 
12360
                unsigned int ova3;      /* Output value partial accumulator */
 
12361
                {
 
12362
                        pointer swp;
 
12363
                        pointer imp;
 
12364
                        {
 
12365
                                unsigned int ti;        /* Simplex+Interpolation index variable */
 
12366
 
 
12367
                                ti  = IT_IT(it0, ip0[0]);
 
12368
                                ti += IT_IT(it1, ip0[1]);
 
12369
                                ti += IT_IT(it2, ip0[2]);
 
12370
 
 
12371
                                imp = im_base + IM_O(ti >> 12);         /* Extract interp. index and comp. entry */
 
12372
                                swp = sw_base + SW_O(ti & 0xfff);       /* Extract simplex index and comp. entry */
 
12373
                        }
 
12374
                        {
 
12375
                                unsigned int vof;       /* Vertex offset value */
 
12376
                                unsigned int vwe;       /* Vertex weighting */
 
12377
 
 
12378
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
 
12379
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
 
12380
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
12381
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
12382
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
12383
                                ova3  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
12384
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
 
12385
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
 
12386
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
12387
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
12388
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
12389
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
12390
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
 
12391
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
 
12392
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
12393
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
12394
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
12395
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
12396
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
 
12397
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
 
12398
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
12399
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
12400
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
12401
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
12402
                        }
 
12403
                }
 
12404
                {
 
12405
                        unsigned int oti;       /* Vertex offset value */
 
12406
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
12407
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
12408
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
12409
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
12410
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
12411
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
12412
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
12413
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
12414
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
12415
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
12416
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
 
12417
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
12418
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
 
12419
                        op0[6] = OT_E(ot6, oti);        /* Write result */
 
12420
                }
 
12421
        }
12639
12422
}
12640
12423
#undef IT_IT
12641
12424
#undef SW_O
12650
12433
imdi_k37_gen(
12651
12434
genspec *g                      /* structure to be initialised */
12652
12435
) {
12653
 
        static unsigned char data[] = {
12654
 
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
12655
 
                0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
12656
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12657
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12658
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12659
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12660
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12661
 
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
12662
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
12663
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12664
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12665
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12666
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12667
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12668
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12669
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12670
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12671
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12672
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12673
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
12674
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12675
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12676
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12677
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12678
 
                0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
12679
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
12680
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
12681
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
12682
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12683
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12684
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12685
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12686
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12687
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12688
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12689
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12690
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
12691
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
12692
 
                0x65, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
12693
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
12694
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
12695
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
12696
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
12697
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
12698
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
12699
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
12700
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
12701
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
12702
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12703
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
12704
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
12705
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x33, 0x5f, 0x37, 0x5f, 
12706
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
12707
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
12708
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
12709
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
12710
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
12711
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
12712
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
12713
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12714
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12715
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12716
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12717
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
12718
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x33, 0x37, 
12719
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12720
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12721
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
12722
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
12723
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
12724
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
12725
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
12726
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
12727
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
12728
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
12729
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
12730
 
                0x00, 0xf0, 0x04, 0x08 
12731
 
        };      /* Structure image */
12732
 
        
12733
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
12436
        static unsigned char data[] = {
 
12437
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
12438
                0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
12439
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12440
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12441
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12442
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12443
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12444
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
12445
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
12446
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12447
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12448
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12449
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12450
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12451
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12452
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12453
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12454
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12455
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12456
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
12457
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12458
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12459
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12460
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12461
                0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
12462
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
12463
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
12464
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
12465
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12466
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12467
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12468
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12469
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12470
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12471
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12472
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12473
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
12474
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
12475
                0x65, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
12476
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
12477
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
12478
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
12479
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
12480
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
12481
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
12482
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
12483
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
12484
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
12485
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12486
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
12487
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
12488
                0x2c, 0xf3, 0xdc, 0xb7, 0x33, 0x5f, 0x37, 0x5f,
 
12489
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
12490
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
12491
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
12492
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
12493
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
12494
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
12495
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
12496
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12497
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12498
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12499
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12500
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
12501
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x33, 0x37,
 
12502
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12503
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12504
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
12505
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
12506
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
12507
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
12508
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
12509
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
12510
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
12511
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
12512
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
12513
                0x00, 0xf0, 0x04, 0x08
 
12514
        };      /* Structure image */
 
12515
 
 
12516
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
12734
12517
}
12735
12518
 
12736
12519
static void
12737
12520
imdi_k37_tab(
12738
12521
tabspec *t                      /* structure to be initialised */
12739
12522
) {
12740
 
        static unsigned char data[] = {
12741
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12742
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
12743
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
12744
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
12745
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
12746
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
12747
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
12748
 
                0x14, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
12749
 
                0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 
12750
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12751
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
12752
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12753
 
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
12754
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
12755
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
12756
 
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
12757
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12758
 
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
12759
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
12760
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
12761
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
12762
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
12763
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
12764
 
                0x06, 0x00, 0x00, 0x00, 0xdc, 0x60, 0xef, 0xb7, 
12765
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12766
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12767
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12768
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
12769
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12770
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12771
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12772
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
12773
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
12774
 
        };      /* Structure image */
12775
 
        
12776
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
12523
        static unsigned char data[] = {
 
12524
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12525
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
12526
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
12527
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
12528
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
12529
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
12530
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
12531
                0x14, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
12532
                0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
 
12533
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12534
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
12535
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12536
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
12537
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
12538
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
12539
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
12540
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12541
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
12542
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
12543
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
12544
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
12545
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
12546
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
12547
                0x06, 0x00, 0x00, 0x00, 0xdc, 0x60, 0xef, 0xb7,
 
12548
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12549
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12550
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12551
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12552
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12553
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12554
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12555
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12556
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
12557
        };      /* Structure image */
 
12558
 
 
12559
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
12777
12560
}
12778
12561
 
12779
 
 
12780
 
 
12781
 
 
12782
 
 
12783
 
 
12784
12562
/* Integer Multi-Dimensional Interpolation */
12785
12563
/* Interpolation Kernel Code */
12786
12564
/* Generated by cgen */
12789
12567
 
12790
12568
/* see the Licence.txt file for licencing details.*/
12791
12569
 
12792
 
 
12793
12570
/*
12794
12571
   Interpolation kernel specs:
12795
12572
 
12892
12669
void **inp,             /* pointer to input pointers */
12893
12670
unsigned int npix       /* Number of pixels to process */
12894
12671
) {
12895
 
        imdi_imp *p = (imdi_imp *)(s->impl);
12896
 
        unsigned char *ip0 = (unsigned char *)inp[0];
12897
 
        unsigned char *op0 = (unsigned char *)outp[0];
12898
 
        unsigned char *ep = ip0 + npix * 4 ;
12899
 
        pointer it0 = (pointer)p->in_tables[0];
12900
 
        pointer it1 = (pointer)p->in_tables[1];
12901
 
        pointer it2 = (pointer)p->in_tables[2];
12902
 
        pointer it3 = (pointer)p->in_tables[3];
12903
 
        pointer ot0 = (pointer)p->out_tables[0];
12904
 
        pointer ot1 = (pointer)p->out_tables[1];
12905
 
        pointer ot2 = (pointer)p->out_tables[2];
12906
 
        pointer ot3 = (pointer)p->out_tables[3];
12907
 
        pointer ot4 = (pointer)p->out_tables[4];
12908
 
        pointer ot5 = (pointer)p->out_tables[5];
12909
 
        pointer ot6 = (pointer)p->out_tables[6];
12910
 
        pointer sw_base = (pointer)p->sw_table;
12911
 
        pointer im_base = (pointer)p->im_table;
12912
 
        
12913
 
        for(;ip0 < ep; ip0 += 4, op0 += 7) {
12914
 
                unsigned int ova0;      /* Output value accumulator */
12915
 
                unsigned int ova1;      /* Output value accumulator */
12916
 
                unsigned int ova2;      /* Output value accumulator */
12917
 
                unsigned int ova3;      /* Output value partial accumulator */
12918
 
                {
12919
 
                        pointer swp;
12920
 
                        pointer imp;
12921
 
                        {
12922
 
                                unsigned int ti_s;      /* Simplex index variable */
12923
 
                                unsigned int ti_i;      /* Interpolation index variable */
12924
 
                                
12925
 
                                ti_i  = IT_IX(it0, ip0[0]);
12926
 
                                ti_s  = IT_SX(it0, ip0[0]);
12927
 
                                ti_i += IT_IX(it1, ip0[1]);
12928
 
                                ti_s += IT_SX(it1, ip0[1]);
12929
 
                                ti_i += IT_IX(it2, ip0[2]);
12930
 
                                ti_s += IT_SX(it2, ip0[2]);
12931
 
                                ti_i += IT_IX(it3, ip0[3]);
12932
 
                                ti_s += IT_SX(it3, ip0[3]);
12933
 
                                
12934
 
                                swp = sw_base + SW_O(ti_s);             /* Compute simplex table entry pointer */
12935
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
12936
 
                        }
12937
 
                        {
12938
 
                                unsigned int vof;       /* Vertex offset value */
12939
 
                                unsigned int vwe;       /* Vertex weighting */
12940
 
                                
12941
 
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
12942
 
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
12943
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
12944
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
12945
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
12946
 
                                ova3  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
12947
 
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
12948
 
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
12949
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
12950
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
12951
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
12952
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
12953
 
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
12954
 
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
12955
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
12956
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
12957
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
12958
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
12959
 
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
12960
 
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
12961
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
12962
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
12963
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
12964
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
12965
 
                                vof = SX_VO(swp, 4);    /* Read vertex offset value */
12966
 
                                vwe = SX_WE(swp, 4);    /* Read vertex weighting value */
12967
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
12968
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
12969
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
12970
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
12971
 
                        }
12972
 
                }
12973
 
                {
12974
 
                        unsigned int oti;       /* Vertex offset value */
12975
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
12976
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
12977
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
12978
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
12979
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
12980
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
12981
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
12982
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
12983
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
12984
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
12985
 
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
12986
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
12987
 
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
12988
 
                        op0[6] = OT_E(ot6, oti);        /* Write result */
12989
 
                }
12990
 
        }
 
12672
        imdi_imp *p = (imdi_imp *)(s->impl);
 
12673
        unsigned char *ip0 = (unsigned char *)inp[0];
 
12674
        unsigned char *op0 = (unsigned char *)outp[0];
 
12675
        unsigned char *ep = ip0 + npix * 4 ;
 
12676
        pointer it0 = (pointer)p->in_tables[0];
 
12677
        pointer it1 = (pointer)p->in_tables[1];
 
12678
        pointer it2 = (pointer)p->in_tables[2];
 
12679
        pointer it3 = (pointer)p->in_tables[3];
 
12680
        pointer ot0 = (pointer)p->out_tables[0];
 
12681
        pointer ot1 = (pointer)p->out_tables[1];
 
12682
        pointer ot2 = (pointer)p->out_tables[2];
 
12683
        pointer ot3 = (pointer)p->out_tables[3];
 
12684
        pointer ot4 = (pointer)p->out_tables[4];
 
12685
        pointer ot5 = (pointer)p->out_tables[5];
 
12686
        pointer ot6 = (pointer)p->out_tables[6];
 
12687
        pointer sw_base = (pointer)p->sw_table;
 
12688
        pointer im_base = (pointer)p->im_table;
 
12689
 
 
12690
        for(;ip0 < ep; ip0 += 4, op0 += 7) {
 
12691
                unsigned int ova0;      /* Output value accumulator */
 
12692
                unsigned int ova1;      /* Output value accumulator */
 
12693
                unsigned int ova2;      /* Output value accumulator */
 
12694
                unsigned int ova3;      /* Output value partial accumulator */
 
12695
                {
 
12696
                        pointer swp;
 
12697
                        pointer imp;
 
12698
                        {
 
12699
                                unsigned int ti_s;      /* Simplex index variable */
 
12700
                                unsigned int ti_i;      /* Interpolation index variable */
 
12701
 
 
12702
                                ti_i  = IT_IX(it0, ip0[0]);
 
12703
                                ti_s  = IT_SX(it0, ip0[0]);
 
12704
                                ti_i += IT_IX(it1, ip0[1]);
 
12705
                                ti_s += IT_SX(it1, ip0[1]);
 
12706
                                ti_i += IT_IX(it2, ip0[2]);
 
12707
                                ti_s += IT_SX(it2, ip0[2]);
 
12708
                                ti_i += IT_IX(it3, ip0[3]);
 
12709
                                ti_s += IT_SX(it3, ip0[3]);
 
12710
 
 
12711
                                swp = sw_base + SW_O(ti_s);             /* Compute simplex table entry pointer */
 
12712
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
12713
                        }
 
12714
                        {
 
12715
                                unsigned int vof;       /* Vertex offset value */
 
12716
                                unsigned int vwe;       /* Vertex weighting */
 
12717
 
 
12718
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
 
12719
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
 
12720
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
12721
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
12722
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
12723
                                ova3  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
12724
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
 
12725
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
 
12726
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
12727
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
12728
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
12729
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
12730
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
 
12731
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
 
12732
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
12733
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
12734
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
12735
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
12736
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
 
12737
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
 
12738
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
12739
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
12740
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
12741
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
12742
                                vof = SX_VO(swp, 4);    /* Read vertex offset value */
 
12743
                                vwe = SX_WE(swp, 4);    /* Read vertex weighting value */
 
12744
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
12745
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
12746
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
12747
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
12748
                        }
 
12749
                }
 
12750
                {
 
12751
                        unsigned int oti;       /* Vertex offset value */
 
12752
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
12753
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
12754
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
12755
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
12756
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
12757
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
12758
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
12759
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
12760
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
12761
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
12762
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
 
12763
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
12764
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
 
12765
                        op0[6] = OT_E(ot6, oti);        /* Write result */
 
12766
                }
 
12767
        }
12991
12768
}
12992
12769
#undef IT_IX
12993
12770
#undef IT_SX
13003
12780
imdi_k38_gen(
13004
12781
genspec *g                      /* structure to be initialised */
13005
12782
) {
13006
 
        static unsigned char data[] = {
13007
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
13008
 
                0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
13009
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13010
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13011
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13012
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13013
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13014
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
13015
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
13016
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13017
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13018
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13019
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13020
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13021
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13022
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13023
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13024
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13025
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13026
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
13027
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13028
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13029
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13030
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13031
 
                0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
13032
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
13033
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
13034
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
13035
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13036
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13037
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13038
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13039
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13040
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13041
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13042
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13043
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
13044
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
13045
 
                0x1f, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 
13046
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
13047
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
13048
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
13049
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
13050
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
13051
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
13052
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
13053
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
13054
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
13055
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13056
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
13057
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
13058
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x34, 0x5f, 0x37, 0x5f, 
13059
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
13060
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
13061
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
13062
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
13063
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
13064
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
13065
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
13066
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13067
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13068
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13069
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13070
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
13071
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x33, 0x38, 
13072
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13073
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13074
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
13075
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
13076
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
13077
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
13078
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
13079
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
13080
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
13081
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
13082
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
13083
 
                0x00, 0xf0, 0x04, 0x08 
13084
 
        };      /* Structure image */
13085
 
        
13086
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
12783
        static unsigned char data[] = {
 
12784
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
12785
                0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
12786
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12787
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12788
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12789
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12790
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12791
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
12792
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
12793
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12794
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12795
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12796
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12797
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12798
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12799
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12800
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12801
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12802
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12803
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
12804
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12805
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12806
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12807
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12808
                0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
12809
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
12810
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
12811
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
12812
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12813
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12814
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12815
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12816
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12817
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12818
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12819
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12820
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
12821
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
12822
                0x1f, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00,
 
12823
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
12824
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
12825
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
12826
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
12827
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
12828
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
12829
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
12830
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
12831
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
12832
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12833
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
12834
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
12835
                0x2c, 0xf3, 0xdc, 0xb7, 0x34, 0x5f, 0x37, 0x5f,
 
12836
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
12837
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
12838
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
12839
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
12840
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
12841
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
12842
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
12843
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12844
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12845
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12846
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12847
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
12848
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x33, 0x38,
 
12849
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12850
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12851
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
12852
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
12853
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
12854
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
12855
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
12856
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
12857
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
12858
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
12859
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
12860
                0x00, 0xf0, 0x04, 0x08
 
12861
        };      /* Structure image */
 
12862
 
 
12863
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
13087
12864
}
13088
12865
 
13089
12866
static void
13090
12867
imdi_k38_tab(
13091
12868
tabspec *t                      /* structure to be initialised */
13092
12869
) {
13093
 
        static unsigned char data[] = {
13094
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
13095
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
13096
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
13097
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
13098
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
13099
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
13100
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13101
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
13102
 
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
13103
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13104
 
                0x14, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
13105
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13106
 
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
13107
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
13108
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
13109
 
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
13110
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13111
 
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
13112
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
13113
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
13114
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
13115
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
13116
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
13117
 
                0x06, 0x00, 0x00, 0x00, 0xdc, 0x60, 0xef, 0xb7, 
13118
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13119
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13120
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13121
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13122
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13123
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13124
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13125
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13126
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
13127
 
        };      /* Structure image */
13128
 
        
13129
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
12870
        static unsigned char data[] = {
 
12871
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
12872
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
12873
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
12874
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
12875
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
12876
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
12877
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12878
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
12879
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
12880
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12881
                0x14, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
12882
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12883
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
12884
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
12885
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
12886
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
12887
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12888
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
12889
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
12890
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
12891
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
12892
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
12893
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
12894
                0x06, 0x00, 0x00, 0x00, 0xdc, 0x60, 0xef, 0xb7,
 
12895
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12896
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12897
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12898
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
12899
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12900
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12901
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12902
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
12903
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
12904
        };      /* Structure image */
 
12905
 
 
12906
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
13130
12907
}
13131
12908
 
13132
 
 
13133
 
 
13134
 
 
13135
 
 
13136
 
 
13137
12909
/* Integer Multi-Dimensional Interpolation */
13138
12910
/* Interpolation Kernel Code */
13139
12911
/* Generated by cgen */
13142
12914
 
13143
12915
/* see the Licence.txt file for licencing details.*/
13144
12916
 
13145
 
 
13146
12917
/*
13147
12918
   Interpolation kernel specs:
13148
12919
 
13240
13011
void **inp,             /* pointer to input pointers */
13241
13012
unsigned int npix       /* Number of pixels to process */
13242
13013
) {
13243
 
        imdi_imp *p = (imdi_imp *)(s->impl);
13244
 
        unsigned char *ip0 = (unsigned char *)inp[0];
13245
 
        unsigned char *op0 = (unsigned char *)outp[0];
13246
 
        unsigned char *ep = ip0 + npix * 5 ;
13247
 
        pointer it0 = (pointer)p->in_tables[0];
13248
 
        pointer it1 = (pointer)p->in_tables[1];
13249
 
        pointer it2 = (pointer)p->in_tables[2];
13250
 
        pointer it3 = (pointer)p->in_tables[3];
13251
 
        pointer it4 = (pointer)p->in_tables[4];
13252
 
        pointer ot0 = (pointer)p->out_tables[0];
13253
 
        pointer ot1 = (pointer)p->out_tables[1];
13254
 
        pointer ot2 = (pointer)p->out_tables[2];
13255
 
        pointer ot3 = (pointer)p->out_tables[3];
13256
 
        pointer ot4 = (pointer)p->out_tables[4];
13257
 
        pointer ot5 = (pointer)p->out_tables[5];
13258
 
        pointer ot6 = (pointer)p->out_tables[6];
13259
 
        pointer im_base = (pointer)p->im_table;
13260
 
        
13261
 
        for(;ip0 < ep; ip0 += 5, op0 += 7) {
13262
 
                unsigned int ova0;      /* Output value accumulator */
13263
 
                unsigned int ova1;      /* Output value accumulator */
13264
 
                unsigned int ova2;      /* Output value accumulator */
13265
 
                unsigned int ova3;      /* Output value partial accumulator */
13266
 
                {
13267
 
                        pointer imp;
13268
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
13269
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
13270
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
13271
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
13272
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
13273
 
                        {
13274
 
                                unsigned int ti_i;      /* Interpolation index variable */
13275
 
                                
13276
 
                                ti_i  = IT_IX(it0, ip0[0]);
13277
 
                                wo0   = IT_WO(it0, ip0[0]);
13278
 
                                ti_i += IT_IX(it1, ip0[1]);
13279
 
                                wo1   = IT_WO(it1, ip0[1]);
13280
 
                                ti_i += IT_IX(it2, ip0[2]);
13281
 
                                wo2   = IT_WO(it2, ip0[2]);
13282
 
                                ti_i += IT_IX(it3, ip0[3]);
13283
 
                                wo3   = IT_WO(it3, ip0[3]);
13284
 
                                ti_i += IT_IX(it4, ip0[4]);
13285
 
                                wo4   = IT_WO(it4, ip0[4]);
13286
 
                                
13287
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
13288
 
                                
13289
 
                                /* Sort weighting values and vertex offset values */
13290
 
                                CEX(wo0, wo1);
13291
 
                                CEX(wo0, wo2);
13292
 
                                CEX(wo0, wo3);
13293
 
                                CEX(wo0, wo4);
13294
 
                                CEX(wo1, wo2);
13295
 
                                CEX(wo1, wo3);
13296
 
                                CEX(wo1, wo4);
13297
 
                                CEX(wo2, wo3);
13298
 
                                CEX(wo2, wo4);
13299
 
                                CEX(wo3, wo4);
13300
 
                        }
13301
 
                        {
13302
 
                                unsigned int nvof;      /* Next vertex offset value */
13303
 
                                unsigned int vof;       /* Vertex offset value */
13304
 
                                unsigned int vwe;       /* Vertex weighting */
13305
 
                                
13306
 
                                vof = 0;                                /* First vertex offset is 0 */
13307
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
13308
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
13309
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
13310
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
13311
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
13312
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
13313
 
                                ova3  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
13314
 
                                vof += nvof;                    /* Move to next vertex */
13315
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
13316
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
13317
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
13318
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
13319
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
13320
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
13321
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
13322
 
                                vof += nvof;                    /* Move to next vertex */
13323
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
13324
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
13325
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
13326
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
13327
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
13328
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
13329
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
13330
 
                                vof += nvof;                    /* Move to next vertex */
13331
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
13332
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
13333
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
13334
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
13335
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
13336
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
13337
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
13338
 
                                vof += nvof;                    /* Move to next vertex */
13339
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
13340
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
13341
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
13342
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
13343
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
13344
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
13345
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
13346
 
                                vof += nvof;                    /* Move to next vertex */
13347
 
                                vwe = wo4;                              /* Baricentric weighting */
13348
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
13349
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
13350
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
13351
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
13352
 
                        }
13353
 
                }
13354
 
                {
13355
 
                        unsigned int oti;       /* Vertex offset value */
13356
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
13357
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
13358
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
13359
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
13360
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
13361
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
13362
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
13363
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
13364
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
13365
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
13366
 
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
13367
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
13368
 
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
13369
 
                        op0[6] = OT_E(ot6, oti);        /* Write result */
13370
 
                }
13371
 
        }
 
13014
        imdi_imp *p = (imdi_imp *)(s->impl);
 
13015
        unsigned char *ip0 = (unsigned char *)inp[0];
 
13016
        unsigned char *op0 = (unsigned char *)outp[0];
 
13017
        unsigned char *ep = ip0 + npix * 5 ;
 
13018
        pointer it0 = (pointer)p->in_tables[0];
 
13019
        pointer it1 = (pointer)p->in_tables[1];
 
13020
        pointer it2 = (pointer)p->in_tables[2];
 
13021
        pointer it3 = (pointer)p->in_tables[3];
 
13022
        pointer it4 = (pointer)p->in_tables[4];
 
13023
        pointer ot0 = (pointer)p->out_tables[0];
 
13024
        pointer ot1 = (pointer)p->out_tables[1];
 
13025
        pointer ot2 = (pointer)p->out_tables[2];
 
13026
        pointer ot3 = (pointer)p->out_tables[3];
 
13027
        pointer ot4 = (pointer)p->out_tables[4];
 
13028
        pointer ot5 = (pointer)p->out_tables[5];
 
13029
        pointer ot6 = (pointer)p->out_tables[6];
 
13030
        pointer im_base = (pointer)p->im_table;
 
13031
 
 
13032
        for(;ip0 < ep; ip0 += 5, op0 += 7) {
 
13033
                unsigned int ova0;      /* Output value accumulator */
 
13034
                unsigned int ova1;      /* Output value accumulator */
 
13035
                unsigned int ova2;      /* Output value accumulator */
 
13036
                unsigned int ova3;      /* Output value partial accumulator */
 
13037
                {
 
13038
                        pointer imp;
 
13039
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
13040
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
13041
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
13042
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
13043
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
13044
                        {
 
13045
                                unsigned int ti_i;      /* Interpolation index variable */
 
13046
 
 
13047
                                ti_i  = IT_IX(it0, ip0[0]);
 
13048
                                wo0   = IT_WO(it0, ip0[0]);
 
13049
                                ti_i += IT_IX(it1, ip0[1]);
 
13050
                                wo1   = IT_WO(it1, ip0[1]);
 
13051
                                ti_i += IT_IX(it2, ip0[2]);
 
13052
                                wo2   = IT_WO(it2, ip0[2]);
 
13053
                                ti_i += IT_IX(it3, ip0[3]);
 
13054
                                wo3   = IT_WO(it3, ip0[3]);
 
13055
                                ti_i += IT_IX(it4, ip0[4]);
 
13056
                                wo4   = IT_WO(it4, ip0[4]);
 
13057
 
 
13058
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
13059
 
 
13060
                                /* Sort weighting values and vertex offset values */
 
13061
                                CEX(wo0, wo1);
 
13062
                                CEX(wo0, wo2);
 
13063
                                CEX(wo0, wo3);
 
13064
                                CEX(wo0, wo4);
 
13065
                                CEX(wo1, wo2);
 
13066
                                CEX(wo1, wo3);
 
13067
                                CEX(wo1, wo4);
 
13068
                                CEX(wo2, wo3);
 
13069
                                CEX(wo2, wo4);
 
13070
                                CEX(wo3, wo4);
 
13071
                        }
 
13072
                        {
 
13073
                                unsigned int nvof;      /* Next vertex offset value */
 
13074
                                unsigned int vof;       /* Vertex offset value */
 
13075
                                unsigned int vwe;       /* Vertex weighting */
 
13076
 
 
13077
                                vof = 0;                                /* First vertex offset is 0 */
 
13078
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
13079
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
13080
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
13081
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
13082
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
13083
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
13084
                                ova3  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
13085
                                vof += nvof;                    /* Move to next vertex */
 
13086
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
13087
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
13088
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
13089
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
13090
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
13091
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
13092
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
13093
                                vof += nvof;                    /* Move to next vertex */
 
13094
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
13095
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
13096
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
13097
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
13098
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
13099
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
13100
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
13101
                                vof += nvof;                    /* Move to next vertex */
 
13102
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
13103
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
13104
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
13105
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
13106
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
13107
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
13108
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
13109
                                vof += nvof;                    /* Move to next vertex */
 
13110
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
13111
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
13112
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
13113
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
13114
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
13115
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
13116
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
13117
                                vof += nvof;                    /* Move to next vertex */
 
13118
                                vwe = wo4;                              /* Baricentric weighting */
 
13119
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
13120
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
13121
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
13122
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
13123
                        }
 
13124
                }
 
13125
                {
 
13126
                        unsigned int oti;       /* Vertex offset value */
 
13127
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
13128
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
13129
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
13130
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
13131
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
13132
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
13133
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
13134
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
13135
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
13136
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
13137
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
 
13138
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
13139
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
 
13140
                        op0[6] = OT_E(ot6, oti);        /* Write result */
 
13141
                }
 
13142
        }
13372
13143
}
13373
13144
#undef IT_WO
13374
13145
#undef IT_IX
13382
13153
imdi_k39_gen(
13383
13154
genspec *g                      /* structure to be initialised */
13384
13155
) {
13385
 
        static unsigned char data[] = {
13386
 
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
13387
 
                0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
13388
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13389
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13390
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13391
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13392
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13393
 
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
13394
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
13395
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
13396
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13397
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13398
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13399
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13400
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13401
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13402
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13403
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13404
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13405
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
13406
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13407
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13408
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13409
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13410
 
                0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
13411
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
13412
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
13413
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
13414
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13415
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13416
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13417
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13418
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13419
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13420
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13421
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13422
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
13423
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
13424
 
                0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13425
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
13426
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
13427
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
13428
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
13429
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
13430
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
13431
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
13432
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
13433
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
13434
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13435
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
13436
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
13437
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x35, 0x5f, 0x37, 0x5f, 
13438
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
13439
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
13440
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
13441
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
13442
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
13443
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
13444
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
13445
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13446
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13447
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13448
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13449
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
13450
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x33, 0x39, 
13451
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13452
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13453
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
13454
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
13455
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
13456
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
13457
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
13458
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
13459
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
13460
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
13461
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
13462
 
                0x00, 0xf0, 0x04, 0x08 
13463
 
        };      /* Structure image */
13464
 
        
13465
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
13156
        static unsigned char data[] = {
 
13157
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
13158
                0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
13159
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13160
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13161
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13162
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13163
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13164
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
13165
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
13166
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
13167
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13168
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13169
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13170
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13171
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13172
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13173
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13174
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13175
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13176
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
13177
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13178
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13179
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13180
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13181
                0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
13182
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
13183
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
13184
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
13185
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13186
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13187
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13188
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13189
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13190
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13191
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13192
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13193
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
13194
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
13195
                0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13196
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
13197
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
13198
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
13199
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
13200
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
13201
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
13202
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
13203
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
13204
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
13205
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13206
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
13207
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
13208
                0x2c, 0xf3, 0xdc, 0xb7, 0x35, 0x5f, 0x37, 0x5f,
 
13209
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
13210
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
13211
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
13212
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
13213
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
13214
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
13215
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
13216
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13217
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13218
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13219
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13220
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
13221
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x33, 0x39,
 
13222
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13223
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13224
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
13225
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
13226
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
13227
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
13228
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
13229
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
13230
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
13231
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
13232
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
13233
                0x00, 0xf0, 0x04, 0x08
 
13234
        };      /* Structure image */
 
13235
 
 
13236
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
13466
13237
}
13467
13238
 
13468
13239
static void
13469
13240
imdi_k39_tab(
13470
13241
tabspec *t                      /* structure to be initialised */
13471
13242
) {
13472
 
        static unsigned char data[] = {
13473
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
13474
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
13475
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
13476
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
13477
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
13478
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
13479
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13480
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
13481
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
13482
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13483
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
13484
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
13485
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
13486
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
13487
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
13488
 
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
13489
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13490
 
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
13491
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
13492
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
13493
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
13494
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
13495
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
13496
 
                0x06, 0x00, 0x00, 0x00, 0xdc, 0x60, 0xef, 0xb7, 
13497
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13498
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13499
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13500
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13501
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13502
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13503
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13504
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13505
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
13506
 
        };      /* Structure image */
13507
 
        
13508
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
13243
        static unsigned char data[] = {
 
13244
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
13245
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
13246
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
13247
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
13248
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
13249
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
13250
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13251
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
13252
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
13253
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13254
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
13255
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
13256
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
13257
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
13258
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
13259
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
13260
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13261
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
13262
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
13263
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
13264
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
13265
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
13266
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
13267
                0x06, 0x00, 0x00, 0x00, 0xdc, 0x60, 0xef, 0xb7,
 
13268
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13269
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13270
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13271
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13272
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13273
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13274
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13275
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13276
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
13277
        };      /* Structure image */
 
13278
 
 
13279
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
13509
13280
}
13510
13281
 
13511
 
 
13512
 
 
13513
 
 
13514
 
 
13515
 
 
13516
13282
/* Integer Multi-Dimensional Interpolation */
13517
13283
/* Interpolation Kernel Code */
13518
13284
/* Generated by cgen */
13521
13287
 
13522
13288
/* see the Licence.txt file for licencing details.*/
13523
13289
 
13524
 
 
13525
13290
/*
13526
13291
   Interpolation kernel specs:
13527
13292
 
13621
13386
void **inp,             /* pointer to input pointers */
13622
13387
unsigned int npix       /* Number of pixels to process */
13623
13388
) {
13624
 
        imdi_imp *p = (imdi_imp *)(s->impl);
13625
 
        unsigned char *ip0 = (unsigned char *)inp[0];
13626
 
        unsigned char *op0 = (unsigned char *)outp[0];
13627
 
        unsigned char *ep = ip0 + npix * 6 ;
13628
 
        pointer it0 = (pointer)p->in_tables[0];
13629
 
        pointer it1 = (pointer)p->in_tables[1];
13630
 
        pointer it2 = (pointer)p->in_tables[2];
13631
 
        pointer it3 = (pointer)p->in_tables[3];
13632
 
        pointer it4 = (pointer)p->in_tables[4];
13633
 
        pointer it5 = (pointer)p->in_tables[5];
13634
 
        pointer ot0 = (pointer)p->out_tables[0];
13635
 
        pointer ot1 = (pointer)p->out_tables[1];
13636
 
        pointer ot2 = (pointer)p->out_tables[2];
13637
 
        pointer ot3 = (pointer)p->out_tables[3];
13638
 
        pointer ot4 = (pointer)p->out_tables[4];
13639
 
        pointer ot5 = (pointer)p->out_tables[5];
13640
 
        pointer ot6 = (pointer)p->out_tables[6];
13641
 
        pointer im_base = (pointer)p->im_table;
13642
 
        
13643
 
        for(;ip0 < ep; ip0 += 6, op0 += 7) {
13644
 
                unsigned int ova0;      /* Output value accumulator */
13645
 
                unsigned int ova1;      /* Output value accumulator */
13646
 
                unsigned int ova2;      /* Output value accumulator */
13647
 
                unsigned int ova3;      /* Output value partial accumulator */
13648
 
                {
13649
 
                        pointer imp;
13650
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
13651
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
13652
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
13653
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
13654
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
13655
 
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
13656
 
                        {
13657
 
                                unsigned int ti_i;      /* Interpolation index variable */
13658
 
                                
13659
 
                                ti_i  = IT_IX(it0, ip0[0]);
13660
 
                                wo0   = IT_WO(it0, ip0[0]);
13661
 
                                ti_i += IT_IX(it1, ip0[1]);
13662
 
                                wo1   = IT_WO(it1, ip0[1]);
13663
 
                                ti_i += IT_IX(it2, ip0[2]);
13664
 
                                wo2   = IT_WO(it2, ip0[2]);
13665
 
                                ti_i += IT_IX(it3, ip0[3]);
13666
 
                                wo3   = IT_WO(it3, ip0[3]);
13667
 
                                ti_i += IT_IX(it4, ip0[4]);
13668
 
                                wo4   = IT_WO(it4, ip0[4]);
13669
 
                                ti_i += IT_IX(it5, ip0[5]);
13670
 
                                wo5   = IT_WO(it5, ip0[5]);
13671
 
                                
13672
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
13673
 
                                
13674
 
                                /* Sort weighting values and vertex offset values */
13675
 
                                CEX(wo0, wo1);
13676
 
                                CEX(wo0, wo2);
13677
 
                                CEX(wo0, wo3);
13678
 
                                CEX(wo0, wo4);
13679
 
                                CEX(wo0, wo5);
13680
 
                                CEX(wo1, wo2);
13681
 
                                CEX(wo1, wo3);
13682
 
                                CEX(wo1, wo4);
13683
 
                                CEX(wo1, wo5);
13684
 
                                CEX(wo2, wo3);
13685
 
                                CEX(wo2, wo4);
13686
 
                                CEX(wo2, wo5);
13687
 
                                CEX(wo3, wo4);
13688
 
                                CEX(wo3, wo5);
13689
 
                                CEX(wo4, wo5);
13690
 
                        }
13691
 
                        {
13692
 
                                unsigned int nvof;      /* Next vertex offset value */
13693
 
                                unsigned int vof;       /* Vertex offset value */
13694
 
                                unsigned int vwe;       /* Vertex weighting */
13695
 
                                
13696
 
                                vof = 0;                                /* First vertex offset is 0 */
13697
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
13698
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
13699
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
13700
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
13701
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
13702
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
13703
 
                                ova3  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
13704
 
                                vof += nvof;                    /* Move to next vertex */
13705
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
13706
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
13707
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
13708
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
13709
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
13710
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
13711
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
13712
 
                                vof += nvof;                    /* Move to next vertex */
13713
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
13714
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
13715
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
13716
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
13717
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
13718
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
13719
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
13720
 
                                vof += nvof;                    /* Move to next vertex */
13721
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
13722
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
13723
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
13724
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
13725
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
13726
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
13727
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
13728
 
                                vof += nvof;                    /* Move to next vertex */
13729
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
13730
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
13731
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
13732
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
13733
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
13734
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
13735
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
13736
 
                                vof += nvof;                    /* Move to next vertex */
13737
 
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
13738
 
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
13739
 
                                vwe = wo4 - wo5;                /* Baricentric weighting */
13740
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
13741
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
13742
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
13743
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
13744
 
                                vof += nvof;                    /* Move to next vertex */
13745
 
                                vwe = wo5;                              /* Baricentric weighting */
13746
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
13747
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
13748
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
13749
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
13750
 
                        }
13751
 
                }
13752
 
                {
13753
 
                        unsigned int oti;       /* Vertex offset value */
13754
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
13755
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
13756
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
13757
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
13758
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
13759
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
13760
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
13761
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
13762
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
13763
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
13764
 
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
13765
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
13766
 
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
13767
 
                        op0[6] = OT_E(ot6, oti);        /* Write result */
13768
 
                }
13769
 
        }
 
13389
        imdi_imp *p = (imdi_imp *)(s->impl);
 
13390
        unsigned char *ip0 = (unsigned char *)inp[0];
 
13391
        unsigned char *op0 = (unsigned char *)outp[0];
 
13392
        unsigned char *ep = ip0 + npix * 6 ;
 
13393
        pointer it0 = (pointer)p->in_tables[0];
 
13394
        pointer it1 = (pointer)p->in_tables[1];
 
13395
        pointer it2 = (pointer)p->in_tables[2];
 
13396
        pointer it3 = (pointer)p->in_tables[3];
 
13397
        pointer it4 = (pointer)p->in_tables[4];
 
13398
        pointer it5 = (pointer)p->in_tables[5];
 
13399
        pointer ot0 = (pointer)p->out_tables[0];
 
13400
        pointer ot1 = (pointer)p->out_tables[1];
 
13401
        pointer ot2 = (pointer)p->out_tables[2];
 
13402
        pointer ot3 = (pointer)p->out_tables[3];
 
13403
        pointer ot4 = (pointer)p->out_tables[4];
 
13404
        pointer ot5 = (pointer)p->out_tables[5];
 
13405
        pointer ot6 = (pointer)p->out_tables[6];
 
13406
        pointer im_base = (pointer)p->im_table;
 
13407
 
 
13408
        for(;ip0 < ep; ip0 += 6, op0 += 7) {
 
13409
                unsigned int ova0;      /* Output value accumulator */
 
13410
                unsigned int ova1;      /* Output value accumulator */
 
13411
                unsigned int ova2;      /* Output value accumulator */
 
13412
                unsigned int ova3;      /* Output value partial accumulator */
 
13413
                {
 
13414
                        pointer imp;
 
13415
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
13416
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
13417
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
13418
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
13419
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
13420
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
 
13421
                        {
 
13422
                                unsigned int ti_i;      /* Interpolation index variable */
 
13423
 
 
13424
                                ti_i  = IT_IX(it0, ip0[0]);
 
13425
                                wo0   = IT_WO(it0, ip0[0]);
 
13426
                                ti_i += IT_IX(it1, ip0[1]);
 
13427
                                wo1   = IT_WO(it1, ip0[1]);
 
13428
                                ti_i += IT_IX(it2, ip0[2]);
 
13429
                                wo2   = IT_WO(it2, ip0[2]);
 
13430
                                ti_i += IT_IX(it3, ip0[3]);
 
13431
                                wo3   = IT_WO(it3, ip0[3]);
 
13432
                                ti_i += IT_IX(it4, ip0[4]);
 
13433
                                wo4   = IT_WO(it4, ip0[4]);
 
13434
                                ti_i += IT_IX(it5, ip0[5]);
 
13435
                                wo5   = IT_WO(it5, ip0[5]);
 
13436
 
 
13437
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
13438
 
 
13439
                                /* Sort weighting values and vertex offset values */
 
13440
                                CEX(wo0, wo1);
 
13441
                                CEX(wo0, wo2);
 
13442
                                CEX(wo0, wo3);
 
13443
                                CEX(wo0, wo4);
 
13444
                                CEX(wo0, wo5);
 
13445
                                CEX(wo1, wo2);
 
13446
                                CEX(wo1, wo3);
 
13447
                                CEX(wo1, wo4);
 
13448
                                CEX(wo1, wo5);
 
13449
                                CEX(wo2, wo3);
 
13450
                                CEX(wo2, wo4);
 
13451
                                CEX(wo2, wo5);
 
13452
                                CEX(wo3, wo4);
 
13453
                                CEX(wo3, wo5);
 
13454
                                CEX(wo4, wo5);
 
13455
                        }
 
13456
                        {
 
13457
                                unsigned int nvof;      /* Next vertex offset value */
 
13458
                                unsigned int vof;       /* Vertex offset value */
 
13459
                                unsigned int vwe;       /* Vertex weighting */
 
13460
 
 
13461
                                vof = 0;                                /* First vertex offset is 0 */
 
13462
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
13463
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
13464
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
13465
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
13466
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
13467
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
13468
                                ova3  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
13469
                                vof += nvof;                    /* Move to next vertex */
 
13470
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
13471
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
13472
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
13473
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
13474
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
13475
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
13476
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
13477
                                vof += nvof;                    /* Move to next vertex */
 
13478
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
13479
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
13480
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
13481
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
13482
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
13483
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
13484
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
13485
                                vof += nvof;                    /* Move to next vertex */
 
13486
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
13487
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
13488
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
13489
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
13490
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
13491
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
13492
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
13493
                                vof += nvof;                    /* Move to next vertex */
 
13494
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
13495
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
13496
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
13497
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
13498
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
13499
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
13500
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
13501
                                vof += nvof;                    /* Move to next vertex */
 
13502
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
 
13503
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
 
13504
                                vwe = wo4 - wo5;                /* Baricentric weighting */
 
13505
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
13506
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
13507
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
13508
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
13509
                                vof += nvof;                    /* Move to next vertex */
 
13510
                                vwe = wo5;                              /* Baricentric weighting */
 
13511
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
13512
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
13513
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
13514
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
13515
                        }
 
13516
                }
 
13517
                {
 
13518
                        unsigned int oti;       /* Vertex offset value */
 
13519
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
13520
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
13521
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
13522
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
13523
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
13524
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
13525
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
13526
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
13527
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
13528
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
13529
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
 
13530
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
13531
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
 
13532
                        op0[6] = OT_E(ot6, oti);        /* Write result */
 
13533
                }
 
13534
        }
13770
13535
}
13771
13536
#undef IT_WO
13772
13537
#undef IT_IX
13780
13545
imdi_k40_gen(
13781
13546
genspec *g                      /* structure to be initialised */
13782
13547
) {
13783
 
        static unsigned char data[] = {
13784
 
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
13785
 
                0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
13786
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13787
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13788
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13789
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13790
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13791
 
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
13792
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
13793
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
13794
 
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13795
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13796
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13797
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13798
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13799
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13800
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13801
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13802
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13803
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
13804
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13805
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13806
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13807
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13808
 
                0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
13809
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
13810
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
13811
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
13812
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13813
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13814
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13815
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13816
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13817
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13818
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13819
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13820
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
13821
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
13822
 
                0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13823
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
13824
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
13825
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
13826
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
13827
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
13828
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
13829
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
13830
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
13831
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
13832
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13833
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
13834
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
13835
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x36, 0x5f, 0x37, 0x5f, 
13836
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
13837
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
13838
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
13839
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
13840
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
13841
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
13842
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
13843
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13844
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13845
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13846
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13847
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
13848
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x34, 0x30, 
13849
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13850
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13851
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
13852
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
13853
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
13854
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
13855
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
13856
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
13857
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
13858
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
13859
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
13860
 
                0x00, 0xf0, 0x04, 0x08 
13861
 
        };      /* Structure image */
13862
 
        
13863
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
13548
        static unsigned char data[] = {
 
13549
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
13550
                0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
13551
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13552
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13553
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13554
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13555
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13556
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
13557
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
13558
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
13559
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13560
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13561
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13562
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13563
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13564
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13565
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13566
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13567
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13568
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
13569
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13570
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13571
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13572
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13573
                0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
13574
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
13575
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
13576
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
13577
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13578
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13579
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13580
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13581
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13582
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13583
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13584
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13585
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
13586
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
13587
                0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13588
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
13589
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
13590
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
13591
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
13592
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
13593
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
13594
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
13595
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
13596
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
13597
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13598
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
13599
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
13600
                0x2c, 0xf3, 0xdc, 0xb7, 0x36, 0x5f, 0x37, 0x5f,
 
13601
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
13602
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
13603
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
13604
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
13605
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
13606
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
13607
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
13608
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13609
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13610
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13611
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13612
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
13613
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x34, 0x30,
 
13614
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13615
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13616
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
13617
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
13618
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
13619
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
13620
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
13621
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
13622
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
13623
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
13624
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
13625
                0x00, 0xf0, 0x04, 0x08
 
13626
        };      /* Structure image */
 
13627
 
 
13628
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
13864
13629
}
13865
13630
 
13866
13631
static void
13867
13632
imdi_k40_tab(
13868
13633
tabspec *t                      /* structure to be initialised */
13869
13634
) {
13870
 
        static unsigned char data[] = {
13871
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
13872
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
13873
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
13874
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
13875
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
13876
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
13877
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13878
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
13879
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
13880
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13881
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
13882
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
13883
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
13884
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
13885
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
13886
 
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
13887
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13888
 
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
13889
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
13890
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
13891
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
13892
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
13893
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
13894
 
                0x06, 0x00, 0x00, 0x00, 0xdc, 0x60, 0xef, 0xb7, 
13895
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13896
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13897
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13898
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
13899
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13900
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13901
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13902
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
13903
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
13904
 
        };      /* Structure image */
13905
 
        
13906
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
13635
        static unsigned char data[] = {
 
13636
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
13637
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
13638
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
13639
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
13640
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
13641
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
13642
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13643
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
13644
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
13645
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13646
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
13647
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
13648
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
13649
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
13650
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
13651
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
13652
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13653
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
13654
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
13655
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
13656
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
13657
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
13658
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
13659
                0x06, 0x00, 0x00, 0x00, 0xdc, 0x60, 0xef, 0xb7,
 
13660
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13661
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13662
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13663
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13664
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13665
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13666
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13667
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13668
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
13669
        };      /* Structure image */
 
13670
 
 
13671
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
13907
13672
}
13908
13673
 
13909
 
 
13910
 
 
13911
 
 
13912
 
 
13913
 
 
13914
13674
/* Integer Multi-Dimensional Interpolation */
13915
13675
/* Interpolation Kernel Code */
13916
13676
/* Generated by cgen */
13919
13679
 
13920
13680
/* see the Licence.txt file for licencing details.*/
13921
13681
 
13922
 
 
13923
13682
/*
13924
13683
   Interpolation kernel specs:
13925
13684
 
14021
13780
void **inp,             /* pointer to input pointers */
14022
13781
unsigned int npix       /* Number of pixels to process */
14023
13782
) {
14024
 
        imdi_imp *p = (imdi_imp *)(s->impl);
14025
 
        unsigned char *ip0 = (unsigned char *)inp[0];
14026
 
        unsigned char *op0 = (unsigned char *)outp[0];
14027
 
        unsigned char *ep = ip0 + npix * 7 ;
14028
 
        pointer it0 = (pointer)p->in_tables[0];
14029
 
        pointer it1 = (pointer)p->in_tables[1];
14030
 
        pointer it2 = (pointer)p->in_tables[2];
14031
 
        pointer it3 = (pointer)p->in_tables[3];
14032
 
        pointer it4 = (pointer)p->in_tables[4];
14033
 
        pointer it5 = (pointer)p->in_tables[5];
14034
 
        pointer it6 = (pointer)p->in_tables[6];
14035
 
        pointer ot0 = (pointer)p->out_tables[0];
14036
 
        pointer ot1 = (pointer)p->out_tables[1];
14037
 
        pointer ot2 = (pointer)p->out_tables[2];
14038
 
        pointer ot3 = (pointer)p->out_tables[3];
14039
 
        pointer ot4 = (pointer)p->out_tables[4];
14040
 
        pointer ot5 = (pointer)p->out_tables[5];
14041
 
        pointer ot6 = (pointer)p->out_tables[6];
14042
 
        pointer im_base = (pointer)p->im_table;
14043
 
        
14044
 
        for(;ip0 < ep; ip0 += 7, op0 += 7) {
14045
 
                unsigned int ova0;      /* Output value accumulator */
14046
 
                unsigned int ova1;      /* Output value accumulator */
14047
 
                unsigned int ova2;      /* Output value accumulator */
14048
 
                unsigned int ova3;      /* Output value partial accumulator */
14049
 
                {
14050
 
                        pointer imp;
14051
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
14052
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
14053
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
14054
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
14055
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
14056
 
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
14057
 
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
14058
 
                        {
14059
 
                                unsigned int ti_i;      /* Interpolation index variable */
14060
 
                                
14061
 
                                ti_i  = IT_IX(it0, ip0[0]);
14062
 
                                wo0   = IT_WO(it0, ip0[0]);
14063
 
                                ti_i += IT_IX(it1, ip0[1]);
14064
 
                                wo1   = IT_WO(it1, ip0[1]);
14065
 
                                ti_i += IT_IX(it2, ip0[2]);
14066
 
                                wo2   = IT_WO(it2, ip0[2]);
14067
 
                                ti_i += IT_IX(it3, ip0[3]);
14068
 
                                wo3   = IT_WO(it3, ip0[3]);
14069
 
                                ti_i += IT_IX(it4, ip0[4]);
14070
 
                                wo4   = IT_WO(it4, ip0[4]);
14071
 
                                ti_i += IT_IX(it5, ip0[5]);
14072
 
                                wo5   = IT_WO(it5, ip0[5]);
14073
 
                                ti_i += IT_IX(it6, ip0[6]);
14074
 
                                wo6   = IT_WO(it6, ip0[6]);
14075
 
                                
14076
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
14077
 
                                
14078
 
                                /* Sort weighting values and vertex offset values */
14079
 
                                CEX(wo0, wo1);
14080
 
                                CEX(wo0, wo2);
14081
 
                                CEX(wo0, wo3);
14082
 
                                CEX(wo0, wo4);
14083
 
                                CEX(wo0, wo5);
14084
 
                                CEX(wo0, wo6);
14085
 
                                CEX(wo1, wo2);
14086
 
                                CEX(wo1, wo3);
14087
 
                                CEX(wo1, wo4);
14088
 
                                CEX(wo1, wo5);
14089
 
                                CEX(wo1, wo6);
14090
 
                                CEX(wo2, wo3);
14091
 
                                CEX(wo2, wo4);
14092
 
                                CEX(wo2, wo5);
14093
 
                                CEX(wo2, wo6);
14094
 
                                CEX(wo3, wo4);
14095
 
                                CEX(wo3, wo5);
14096
 
                                CEX(wo3, wo6);
14097
 
                                CEX(wo4, wo5);
14098
 
                                CEX(wo4, wo6);
14099
 
                                CEX(wo5, wo6);
14100
 
                        }
14101
 
                        {
14102
 
                                unsigned int nvof;      /* Next vertex offset value */
14103
 
                                unsigned int vof;       /* Vertex offset value */
14104
 
                                unsigned int vwe;       /* Vertex weighting */
14105
 
                                
14106
 
                                vof = 0;                                /* First vertex offset is 0 */
14107
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
14108
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
14109
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
14110
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
14111
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
14112
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
14113
 
                                ova3  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
14114
 
                                vof += nvof;                    /* Move to next vertex */
14115
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
14116
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
14117
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
14118
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
14119
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
14120
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
14121
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
14122
 
                                vof += nvof;                    /* Move to next vertex */
14123
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
14124
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
14125
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
14126
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
14127
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
14128
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
14129
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
14130
 
                                vof += nvof;                    /* Move to next vertex */
14131
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
14132
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
14133
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
14134
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
14135
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
14136
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
14137
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
14138
 
                                vof += nvof;                    /* Move to next vertex */
14139
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
14140
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
14141
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
14142
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
14143
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
14144
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
14145
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
14146
 
                                vof += nvof;                    /* Move to next vertex */
14147
 
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
14148
 
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
14149
 
                                vwe = wo4 - wo5;                /* Baricentric weighting */
14150
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
14151
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
14152
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
14153
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
14154
 
                                vof += nvof;                    /* Move to next vertex */
14155
 
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
14156
 
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
14157
 
                                vwe = wo5 - wo6;                /* Baricentric weighting */
14158
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
14159
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
14160
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
14161
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
14162
 
                                vof += nvof;                    /* Move to next vertex */
14163
 
                                vwe = wo6;                              /* Baricentric weighting */
14164
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
14165
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
14166
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
14167
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
14168
 
                        }
14169
 
                }
14170
 
                {
14171
 
                        unsigned int oti;       /* Vertex offset value */
14172
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
14173
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
14174
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
14175
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
14176
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
14177
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
14178
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
14179
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
14180
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
14181
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
14182
 
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
14183
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
14184
 
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
14185
 
                        op0[6] = OT_E(ot6, oti);        /* Write result */
14186
 
                }
14187
 
        }
 
13783
        imdi_imp *p = (imdi_imp *)(s->impl);
 
13784
        unsigned char *ip0 = (unsigned char *)inp[0];
 
13785
        unsigned char *op0 = (unsigned char *)outp[0];
 
13786
        unsigned char *ep = ip0 + npix * 7 ;
 
13787
        pointer it0 = (pointer)p->in_tables[0];
 
13788
        pointer it1 = (pointer)p->in_tables[1];
 
13789
        pointer it2 = (pointer)p->in_tables[2];
 
13790
        pointer it3 = (pointer)p->in_tables[3];
 
13791
        pointer it4 = (pointer)p->in_tables[4];
 
13792
        pointer it5 = (pointer)p->in_tables[5];
 
13793
        pointer it6 = (pointer)p->in_tables[6];
 
13794
        pointer ot0 = (pointer)p->out_tables[0];
 
13795
        pointer ot1 = (pointer)p->out_tables[1];
 
13796
        pointer ot2 = (pointer)p->out_tables[2];
 
13797
        pointer ot3 = (pointer)p->out_tables[3];
 
13798
        pointer ot4 = (pointer)p->out_tables[4];
 
13799
        pointer ot5 = (pointer)p->out_tables[5];
 
13800
        pointer ot6 = (pointer)p->out_tables[6];
 
13801
        pointer im_base = (pointer)p->im_table;
 
13802
 
 
13803
        for(;ip0 < ep; ip0 += 7, op0 += 7) {
 
13804
                unsigned int ova0;      /* Output value accumulator */
 
13805
                unsigned int ova1;      /* Output value accumulator */
 
13806
                unsigned int ova2;      /* Output value accumulator */
 
13807
                unsigned int ova3;      /* Output value partial accumulator */
 
13808
                {
 
13809
                        pointer imp;
 
13810
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
13811
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
13812
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
13813
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
13814
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
13815
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
 
13816
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
 
13817
                        {
 
13818
                                unsigned int ti_i;      /* Interpolation index variable */
 
13819
 
 
13820
                                ti_i  = IT_IX(it0, ip0[0]);
 
13821
                                wo0   = IT_WO(it0, ip0[0]);
 
13822
                                ti_i += IT_IX(it1, ip0[1]);
 
13823
                                wo1   = IT_WO(it1, ip0[1]);
 
13824
                                ti_i += IT_IX(it2, ip0[2]);
 
13825
                                wo2   = IT_WO(it2, ip0[2]);
 
13826
                                ti_i += IT_IX(it3, ip0[3]);
 
13827
                                wo3   = IT_WO(it3, ip0[3]);
 
13828
                                ti_i += IT_IX(it4, ip0[4]);
 
13829
                                wo4   = IT_WO(it4, ip0[4]);
 
13830
                                ti_i += IT_IX(it5, ip0[5]);
 
13831
                                wo5   = IT_WO(it5, ip0[5]);
 
13832
                                ti_i += IT_IX(it6, ip0[6]);
 
13833
                                wo6   = IT_WO(it6, ip0[6]);
 
13834
 
 
13835
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
13836
 
 
13837
                                /* Sort weighting values and vertex offset values */
 
13838
                                CEX(wo0, wo1);
 
13839
                                CEX(wo0, wo2);
 
13840
                                CEX(wo0, wo3);
 
13841
                                CEX(wo0, wo4);
 
13842
                                CEX(wo0, wo5);
 
13843
                                CEX(wo0, wo6);
 
13844
                                CEX(wo1, wo2);
 
13845
                                CEX(wo1, wo3);
 
13846
                                CEX(wo1, wo4);
 
13847
                                CEX(wo1, wo5);
 
13848
                                CEX(wo1, wo6);
 
13849
                                CEX(wo2, wo3);
 
13850
                                CEX(wo2, wo4);
 
13851
                                CEX(wo2, wo5);
 
13852
                                CEX(wo2, wo6);
 
13853
                                CEX(wo3, wo4);
 
13854
                                CEX(wo3, wo5);
 
13855
                                CEX(wo3, wo6);
 
13856
                                CEX(wo4, wo5);
 
13857
                                CEX(wo4, wo6);
 
13858
                                CEX(wo5, wo6);
 
13859
                        }
 
13860
                        {
 
13861
                                unsigned int nvof;      /* Next vertex offset value */
 
13862
                                unsigned int vof;       /* Vertex offset value */
 
13863
                                unsigned int vwe;       /* Vertex weighting */
 
13864
 
 
13865
                                vof = 0;                                /* First vertex offset is 0 */
 
13866
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
13867
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
13868
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
13869
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
13870
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
13871
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
13872
                                ova3  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
13873
                                vof += nvof;                    /* Move to next vertex */
 
13874
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
13875
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
13876
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
13877
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
13878
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
13879
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
13880
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
13881
                                vof += nvof;                    /* Move to next vertex */
 
13882
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
13883
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
13884
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
13885
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
13886
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
13887
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
13888
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
13889
                                vof += nvof;                    /* Move to next vertex */
 
13890
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
13891
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
13892
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
13893
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
13894
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
13895
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
13896
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
13897
                                vof += nvof;                    /* Move to next vertex */
 
13898
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
13899
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
13900
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
13901
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
13902
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
13903
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
13904
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
13905
                                vof += nvof;                    /* Move to next vertex */
 
13906
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
 
13907
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
 
13908
                                vwe = wo4 - wo5;                /* Baricentric weighting */
 
13909
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
13910
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
13911
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
13912
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
13913
                                vof += nvof;                    /* Move to next vertex */
 
13914
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
 
13915
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
 
13916
                                vwe = wo5 - wo6;                /* Baricentric weighting */
 
13917
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
13918
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
13919
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
13920
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
13921
                                vof += nvof;                    /* Move to next vertex */
 
13922
                                vwe = wo6;                              /* Baricentric weighting */
 
13923
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
13924
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
13925
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
13926
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
13927
                        }
 
13928
                }
 
13929
                {
 
13930
                        unsigned int oti;       /* Vertex offset value */
 
13931
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
13932
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
13933
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
13934
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
13935
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
13936
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
13937
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
13938
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
13939
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
13940
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
13941
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
 
13942
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
13943
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
 
13944
                        op0[6] = OT_E(ot6, oti);        /* Write result */
 
13945
                }
 
13946
        }
14188
13947
}
14189
13948
#undef IT_WO
14190
13949
#undef IT_IX
14198
13957
imdi_k41_gen(
14199
13958
genspec *g                      /* structure to be initialised */
14200
13959
) {
14201
 
        static unsigned char data[] = {
14202
 
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
14203
 
                0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
14204
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14205
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14206
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14207
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14208
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14209
 
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
14210
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
14211
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
14212
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
14213
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14214
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14215
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14216
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14217
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14218
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14219
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14220
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14221
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
14222
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14223
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14224
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14225
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14226
 
                0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
14227
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
14228
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
14229
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
14230
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14231
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14232
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14233
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14234
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14235
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14236
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14237
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14238
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
14239
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
14240
 
                0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14241
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
14242
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
14243
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
14244
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
14245
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
14246
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
14247
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
14248
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
14249
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
14250
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14251
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
14252
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
14253
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x37, 0x5f, 0x37, 0x5f, 
14254
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
14255
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
14256
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
14257
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
14258
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
14259
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
14260
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
14261
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14262
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14263
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14264
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14265
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
14266
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x34, 0x31, 
14267
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14268
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14269
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
14270
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
14271
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
14272
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
14273
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
14274
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
14275
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
14276
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
14277
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
14278
 
                0x00, 0xf0, 0x04, 0x08 
14279
 
        };      /* Structure image */
14280
 
        
14281
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
13960
        static unsigned char data[] = {
 
13961
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
13962
                0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
13963
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13964
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13965
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13966
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13967
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13968
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
13969
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
13970
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
13971
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
13972
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13973
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13974
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13975
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13976
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13977
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13978
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13979
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13980
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
13981
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13982
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13983
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13984
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13985
                0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
13986
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
13987
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
13988
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
13989
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13990
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13991
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13992
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
13993
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13994
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13995
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13996
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
13997
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
13998
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
13999
                0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14000
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
14001
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
14002
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
14003
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
14004
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
14005
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
14006
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
14007
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
14008
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
14009
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14010
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
14011
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
14012
                0x2c, 0xf3, 0xdc, 0xb7, 0x37, 0x5f, 0x37, 0x5f,
 
14013
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
14014
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
14015
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
14016
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
14017
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
14018
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
14019
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
14020
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14021
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14022
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14023
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14024
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
14025
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x34, 0x31,
 
14026
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14027
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14028
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
14029
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
14030
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
14031
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
14032
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
14033
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
14034
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
14035
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
14036
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
14037
                0x00, 0xf0, 0x04, 0x08
 
14038
        };      /* Structure image */
 
14039
 
 
14040
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
14282
14041
}
14283
14042
 
14284
14043
static void
14285
14044
imdi_k41_tab(
14286
14045
tabspec *t                      /* structure to be initialised */
14287
14046
) {
14288
 
        static unsigned char data[] = {
14289
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
14290
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
14291
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
14292
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
14293
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
14294
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
14295
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14296
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
14297
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
14298
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14299
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
14300
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
14301
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
14302
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
14303
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
14304
 
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
14305
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14306
 
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
14307
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
14308
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
14309
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
14310
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
14311
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
14312
 
                0x06, 0x00, 0x00, 0x00, 0xdc, 0x60, 0xef, 0xb7, 
14313
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14314
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14315
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14316
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14317
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14318
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14319
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14320
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14321
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
14322
 
        };      /* Structure image */
14323
 
        
14324
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
14047
        static unsigned char data[] = {
 
14048
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
14049
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
14050
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
14051
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
14052
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
14053
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
14054
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14055
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
14056
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
14057
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14058
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
14059
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
14060
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
14061
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
14062
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
14063
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
14064
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14065
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
14066
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
14067
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
14068
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
14069
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
14070
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
14071
                0x06, 0x00, 0x00, 0x00, 0xdc, 0x60, 0xef, 0xb7,
 
14072
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14073
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14074
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14075
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14076
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14077
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14078
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14079
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14080
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
14081
        };      /* Structure image */
 
14082
 
 
14083
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
14325
14084
}
14326
14085
 
14327
 
 
14328
 
 
14329
 
 
14330
 
 
14331
 
 
14332
14086
/* Integer Multi-Dimensional Interpolation */
14333
14087
/* Interpolation Kernel Code */
14334
14088
/* Generated by cgen */
14337
14091
 
14338
14092
/* see the Licence.txt file for licencing details.*/
14339
14093
 
14340
 
 
14341
14094
/*
14342
14095
   Interpolation kernel specs:
14343
14096
 
14441
14194
void **inp,             /* pointer to input pointers */
14442
14195
unsigned int npix       /* Number of pixels to process */
14443
14196
) {
14444
 
        imdi_imp *p = (imdi_imp *)(s->impl);
14445
 
        unsigned char *ip0 = (unsigned char *)inp[0];
14446
 
        unsigned char *op0 = (unsigned char *)outp[0];
14447
 
        unsigned char *ep = ip0 + npix * 8 ;
14448
 
        pointer it0 = (pointer)p->in_tables[0];
14449
 
        pointer it1 = (pointer)p->in_tables[1];
14450
 
        pointer it2 = (pointer)p->in_tables[2];
14451
 
        pointer it3 = (pointer)p->in_tables[3];
14452
 
        pointer it4 = (pointer)p->in_tables[4];
14453
 
        pointer it5 = (pointer)p->in_tables[5];
14454
 
        pointer it6 = (pointer)p->in_tables[6];
14455
 
        pointer it7 = (pointer)p->in_tables[7];
14456
 
        pointer ot0 = (pointer)p->out_tables[0];
14457
 
        pointer ot1 = (pointer)p->out_tables[1];
14458
 
        pointer ot2 = (pointer)p->out_tables[2];
14459
 
        pointer ot3 = (pointer)p->out_tables[3];
14460
 
        pointer ot4 = (pointer)p->out_tables[4];
14461
 
        pointer ot5 = (pointer)p->out_tables[5];
14462
 
        pointer ot6 = (pointer)p->out_tables[6];
14463
 
        pointer im_base = (pointer)p->im_table;
14464
 
        
14465
 
        for(;ip0 < ep; ip0 += 8, op0 += 7) {
14466
 
                unsigned int ova0;      /* Output value accumulator */
14467
 
                unsigned int ova1;      /* Output value accumulator */
14468
 
                unsigned int ova2;      /* Output value accumulator */
14469
 
                unsigned int ova3;      /* Output value partial accumulator */
14470
 
                {
14471
 
                        pointer imp;
14472
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
14473
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
14474
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
14475
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
14476
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
14477
 
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
14478
 
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
14479
 
                        unsigned int wo7;       /* Weighting value and vertex offset variable */
14480
 
                        {
14481
 
                                unsigned int ti_i;      /* Interpolation index variable */
14482
 
                                
14483
 
                                ti_i  = IT_IX(it0, ip0[0]);
14484
 
                                wo0   = IT_WO(it0, ip0[0]);
14485
 
                                ti_i += IT_IX(it1, ip0[1]);
14486
 
                                wo1   = IT_WO(it1, ip0[1]);
14487
 
                                ti_i += IT_IX(it2, ip0[2]);
14488
 
                                wo2   = IT_WO(it2, ip0[2]);
14489
 
                                ti_i += IT_IX(it3, ip0[3]);
14490
 
                                wo3   = IT_WO(it3, ip0[3]);
14491
 
                                ti_i += IT_IX(it4, ip0[4]);
14492
 
                                wo4   = IT_WO(it4, ip0[4]);
14493
 
                                ti_i += IT_IX(it5, ip0[5]);
14494
 
                                wo5   = IT_WO(it5, ip0[5]);
14495
 
                                ti_i += IT_IX(it6, ip0[6]);
14496
 
                                wo6   = IT_WO(it6, ip0[6]);
14497
 
                                ti_i += IT_IX(it7, ip0[7]);
14498
 
                                wo7   = IT_WO(it7, ip0[7]);
14499
 
                                
14500
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
14501
 
                                
14502
 
                                /* Sort weighting values and vertex offset values */
14503
 
                                CEX(wo0, wo1);
14504
 
                                CEX(wo0, wo2);
14505
 
                                CEX(wo0, wo3);
14506
 
                                CEX(wo0, wo4);
14507
 
                                CEX(wo0, wo5);
14508
 
                                CEX(wo0, wo6);
14509
 
                                CEX(wo0, wo7);
14510
 
                                CEX(wo1, wo2);
14511
 
                                CEX(wo1, wo3);
14512
 
                                CEX(wo1, wo4);
14513
 
                                CEX(wo1, wo5);
14514
 
                                CEX(wo1, wo6);
14515
 
                                CEX(wo1, wo7);
14516
 
                                CEX(wo2, wo3);
14517
 
                                CEX(wo2, wo4);
14518
 
                                CEX(wo2, wo5);
14519
 
                                CEX(wo2, wo6);
14520
 
                                CEX(wo2, wo7);
14521
 
                                CEX(wo3, wo4);
14522
 
                                CEX(wo3, wo5);
14523
 
                                CEX(wo3, wo6);
14524
 
                                CEX(wo3, wo7);
14525
 
                                CEX(wo4, wo5);
14526
 
                                CEX(wo4, wo6);
14527
 
                                CEX(wo4, wo7);
14528
 
                                CEX(wo5, wo6);
14529
 
                                CEX(wo5, wo7);
14530
 
                                CEX(wo6, wo7);
14531
 
                        }
14532
 
                        {
14533
 
                                unsigned int nvof;      /* Next vertex offset value */
14534
 
                                unsigned int vof;       /* Vertex offset value */
14535
 
                                unsigned int vwe;       /* Vertex weighting */
14536
 
                                
14537
 
                                vof = 0;                                /* First vertex offset is 0 */
14538
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
14539
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
14540
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
14541
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
14542
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
14543
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
14544
 
                                ova3  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
14545
 
                                vof += nvof;                    /* Move to next vertex */
14546
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
14547
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
14548
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
14549
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
14550
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
14551
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
14552
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
14553
 
                                vof += nvof;                    /* Move to next vertex */
14554
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
14555
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
14556
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
14557
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
14558
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
14559
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
14560
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
14561
 
                                vof += nvof;                    /* Move to next vertex */
14562
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
14563
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
14564
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
14565
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
14566
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
14567
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
14568
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
14569
 
                                vof += nvof;                    /* Move to next vertex */
14570
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
14571
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
14572
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
14573
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
14574
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
14575
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
14576
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
14577
 
                                vof += nvof;                    /* Move to next vertex */
14578
 
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
14579
 
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
14580
 
                                vwe = wo4 - wo5;                /* Baricentric weighting */
14581
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
14582
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
14583
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
14584
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
14585
 
                                vof += nvof;                    /* Move to next vertex */
14586
 
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
14587
 
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
14588
 
                                vwe = wo5 - wo6;                /* Baricentric weighting */
14589
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
14590
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
14591
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
14592
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
14593
 
                                vof += nvof;                    /* Move to next vertex */
14594
 
                                nvof = (wo7 & 0x7fffff);        /* Extract offset value */
14595
 
                                wo7 = (wo7 >> 23);              /* Extract weighting value */
14596
 
                                vwe = wo6 - wo7;                /* Baricentric weighting */
14597
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
14598
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
14599
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
14600
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
14601
 
                                vof += nvof;                    /* Move to next vertex */
14602
 
                                vwe = wo7;                              /* Baricentric weighting */
14603
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
14604
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
14605
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
14606
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
14607
 
                        }
14608
 
                }
14609
 
                {
14610
 
                        unsigned int oti;       /* Vertex offset value */
14611
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
14612
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
14613
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
14614
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
14615
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
14616
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
14617
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
14618
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
14619
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
14620
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
14621
 
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
14622
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
14623
 
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
14624
 
                        op0[6] = OT_E(ot6, oti);        /* Write result */
14625
 
                }
14626
 
        }
 
14197
        imdi_imp *p = (imdi_imp *)(s->impl);
 
14198
        unsigned char *ip0 = (unsigned char *)inp[0];
 
14199
        unsigned char *op0 = (unsigned char *)outp[0];
 
14200
        unsigned char *ep = ip0 + npix * 8 ;
 
14201
        pointer it0 = (pointer)p->in_tables[0];
 
14202
        pointer it1 = (pointer)p->in_tables[1];
 
14203
        pointer it2 = (pointer)p->in_tables[2];
 
14204
        pointer it3 = (pointer)p->in_tables[3];
 
14205
        pointer it4 = (pointer)p->in_tables[4];
 
14206
        pointer it5 = (pointer)p->in_tables[5];
 
14207
        pointer it6 = (pointer)p->in_tables[6];
 
14208
        pointer it7 = (pointer)p->in_tables[7];
 
14209
        pointer ot0 = (pointer)p->out_tables[0];
 
14210
        pointer ot1 = (pointer)p->out_tables[1];
 
14211
        pointer ot2 = (pointer)p->out_tables[2];
 
14212
        pointer ot3 = (pointer)p->out_tables[3];
 
14213
        pointer ot4 = (pointer)p->out_tables[4];
 
14214
        pointer ot5 = (pointer)p->out_tables[5];
 
14215
        pointer ot6 = (pointer)p->out_tables[6];
 
14216
        pointer im_base = (pointer)p->im_table;
 
14217
 
 
14218
        for(;ip0 < ep; ip0 += 8, op0 += 7) {
 
14219
                unsigned int ova0;      /* Output value accumulator */
 
14220
                unsigned int ova1;      /* Output value accumulator */
 
14221
                unsigned int ova2;      /* Output value accumulator */
 
14222
                unsigned int ova3;      /* Output value partial accumulator */
 
14223
                {
 
14224
                        pointer imp;
 
14225
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
14226
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
14227
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
14228
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
14229
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
14230
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
 
14231
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
 
14232
                        unsigned int wo7;       /* Weighting value and vertex offset variable */
 
14233
                        {
 
14234
                                unsigned int ti_i;      /* Interpolation index variable */
 
14235
 
 
14236
                                ti_i  = IT_IX(it0, ip0[0]);
 
14237
                                wo0   = IT_WO(it0, ip0[0]);
 
14238
                                ti_i += IT_IX(it1, ip0[1]);
 
14239
                                wo1   = IT_WO(it1, ip0[1]);
 
14240
                                ti_i += IT_IX(it2, ip0[2]);
 
14241
                                wo2   = IT_WO(it2, ip0[2]);
 
14242
                                ti_i += IT_IX(it3, ip0[3]);
 
14243
                                wo3   = IT_WO(it3, ip0[3]);
 
14244
                                ti_i += IT_IX(it4, ip0[4]);
 
14245
                                wo4   = IT_WO(it4, ip0[4]);
 
14246
                                ti_i += IT_IX(it5, ip0[5]);
 
14247
                                wo5   = IT_WO(it5, ip0[5]);
 
14248
                                ti_i += IT_IX(it6, ip0[6]);
 
14249
                                wo6   = IT_WO(it6, ip0[6]);
 
14250
                                ti_i += IT_IX(it7, ip0[7]);
 
14251
                                wo7   = IT_WO(it7, ip0[7]);
 
14252
 
 
14253
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
14254
 
 
14255
                                /* Sort weighting values and vertex offset values */
 
14256
                                CEX(wo0, wo1);
 
14257
                                CEX(wo0, wo2);
 
14258
                                CEX(wo0, wo3);
 
14259
                                CEX(wo0, wo4);
 
14260
                                CEX(wo0, wo5);
 
14261
                                CEX(wo0, wo6);
 
14262
                                CEX(wo0, wo7);
 
14263
                                CEX(wo1, wo2);
 
14264
                                CEX(wo1, wo3);
 
14265
                                CEX(wo1, wo4);
 
14266
                                CEX(wo1, wo5);
 
14267
                                CEX(wo1, wo6);
 
14268
                                CEX(wo1, wo7);
 
14269
                                CEX(wo2, wo3);
 
14270
                                CEX(wo2, wo4);
 
14271
                                CEX(wo2, wo5);
 
14272
                                CEX(wo2, wo6);
 
14273
                                CEX(wo2, wo7);
 
14274
                                CEX(wo3, wo4);
 
14275
                                CEX(wo3, wo5);
 
14276
                                CEX(wo3, wo6);
 
14277
                                CEX(wo3, wo7);
 
14278
                                CEX(wo4, wo5);
 
14279
                                CEX(wo4, wo6);
 
14280
                                CEX(wo4, wo7);
 
14281
                                CEX(wo5, wo6);
 
14282
                                CEX(wo5, wo7);
 
14283
                                CEX(wo6, wo7);
 
14284
                        }
 
14285
                        {
 
14286
                                unsigned int nvof;      /* Next vertex offset value */
 
14287
                                unsigned int vof;       /* Vertex offset value */
 
14288
                                unsigned int vwe;       /* Vertex weighting */
 
14289
 
 
14290
                                vof = 0;                                /* First vertex offset is 0 */
 
14291
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
14292
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
14293
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
14294
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
14295
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
14296
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
14297
                                ova3  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
14298
                                vof += nvof;                    /* Move to next vertex */
 
14299
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
14300
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
14301
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
14302
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
14303
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
14304
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
14305
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
14306
                                vof += nvof;                    /* Move to next vertex */
 
14307
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
14308
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
14309
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
14310
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
14311
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
14312
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
14313
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
14314
                                vof += nvof;                    /* Move to next vertex */
 
14315
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
14316
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
14317
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
14318
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
14319
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
14320
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
14321
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
14322
                                vof += nvof;                    /* Move to next vertex */
 
14323
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
14324
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
14325
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
14326
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
14327
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
14328
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
14329
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
14330
                                vof += nvof;                    /* Move to next vertex */
 
14331
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
 
14332
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
 
14333
                                vwe = wo4 - wo5;                /* Baricentric weighting */
 
14334
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
14335
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
14336
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
14337
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
14338
                                vof += nvof;                    /* Move to next vertex */
 
14339
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
 
14340
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
 
14341
                                vwe = wo5 - wo6;                /* Baricentric weighting */
 
14342
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
14343
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
14344
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
14345
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
14346
                                vof += nvof;                    /* Move to next vertex */
 
14347
                                nvof = (wo7 & 0x7fffff);        /* Extract offset value */
 
14348
                                wo7 = (wo7 >> 23);              /* Extract weighting value */
 
14349
                                vwe = wo6 - wo7;                /* Baricentric weighting */
 
14350
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
14351
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
14352
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
14353
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
14354
                                vof += nvof;                    /* Move to next vertex */
 
14355
                                vwe = wo7;                              /* Baricentric weighting */
 
14356
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
14357
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
14358
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
14359
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
14360
                        }
 
14361
                }
 
14362
                {
 
14363
                        unsigned int oti;       /* Vertex offset value */
 
14364
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
14365
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
14366
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
14367
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
14368
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
14369
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
14370
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
14371
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
14372
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
14373
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
14374
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
 
14375
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
14376
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
 
14377
                        op0[6] = OT_E(ot6, oti);        /* Write result */
 
14378
                }
 
14379
        }
14627
14380
}
14628
14381
#undef IT_WO
14629
14382
#undef IT_IX
14637
14390
imdi_k42_gen(
14638
14391
genspec *g                      /* structure to be initialised */
14639
14392
) {
14640
 
        static unsigned char data[] = {
14641
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14642
 
                0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
14643
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14644
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14645
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14646
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14647
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14648
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14649
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14650
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14651
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14652
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14653
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14654
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14655
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14656
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14657
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14658
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14659
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14660
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
14661
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14662
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14663
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14664
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14665
 
                0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
14666
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
14667
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
14668
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
14669
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14670
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14671
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14672
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14673
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14674
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14675
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14676
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14677
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
14678
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
14679
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14680
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
14681
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
14682
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
14683
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
14684
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
14685
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
14686
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
14687
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
14688
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
14689
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14690
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
14691
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
14692
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x38, 0x5f, 0x37, 0x5f, 
14693
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
14694
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
14695
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
14696
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
14697
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
14698
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
14699
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
14700
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14701
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14702
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14703
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14704
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
14705
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x34, 0x32, 
14706
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14707
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14708
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
14709
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
14710
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
14711
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
14712
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
14713
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
14714
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
14715
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
14716
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
14717
 
                0x00, 0xf0, 0x04, 0x08 
14718
 
        };      /* Structure image */
14719
 
        
14720
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
14393
        static unsigned char data[] = {
 
14394
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14395
                0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
14396
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14397
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14398
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14399
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14400
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14401
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14402
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14403
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14404
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14405
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14406
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14407
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14408
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14409
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14410
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14411
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14412
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14413
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
14414
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14415
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14416
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14417
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14418
                0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
14419
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
14420
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
14421
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
14422
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14423
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14424
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14425
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14426
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14427
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14428
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14429
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14430
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
14431
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
14432
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14433
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
14434
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
14435
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
14436
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
14437
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
14438
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
14439
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
14440
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
14441
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
14442
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14443
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
14444
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
14445
                0x2c, 0xf3, 0xdc, 0xb7, 0x38, 0x5f, 0x37, 0x5f,
 
14446
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
14447
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
14448
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
14449
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
14450
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
14451
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
14452
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
14453
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14454
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14455
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14456
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14457
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
14458
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x34, 0x32,
 
14459
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14460
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14461
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
14462
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
14463
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
14464
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
14465
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
14466
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
14467
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
14468
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
14469
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
14470
                0x00, 0xf0, 0x04, 0x08
 
14471
        };      /* Structure image */
 
14472
 
 
14473
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
14721
14474
}
14722
14475
 
14723
14476
static void
14724
14477
imdi_k42_tab(
14725
14478
tabspec *t                      /* structure to be initialised */
14726
14479
) {
14727
 
        static unsigned char data[] = {
14728
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
14729
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
14730
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
14731
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
14732
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
14733
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
14734
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14735
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
14736
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
14737
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14738
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
14739
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
14740
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
14741
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
14742
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
14743
 
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
14744
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14745
 
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
14746
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
14747
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
14748
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
14749
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
14750
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
14751
 
                0x06, 0x00, 0x00, 0x00, 0xdc, 0x60, 0xef, 0xb7, 
14752
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14753
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14754
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14755
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14756
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14757
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14758
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14759
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14760
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
14761
 
        };      /* Structure image */
14762
 
        
14763
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
14480
        static unsigned char data[] = {
 
14481
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
14482
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
14483
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
14484
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
14485
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
14486
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
14487
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14488
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
14489
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
14490
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14491
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
14492
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
14493
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
14494
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
14495
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
14496
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
14497
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14498
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
14499
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
14500
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
14501
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
14502
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
14503
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
14504
                0x06, 0x00, 0x00, 0x00, 0xdc, 0x60, 0xef, 0xb7,
 
14505
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14506
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14507
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14508
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14509
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14510
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14511
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14512
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14513
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
14514
        };      /* Structure image */
 
14515
 
 
14516
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
14764
14517
}
14765
14518
 
14766
 
 
14767
 
 
14768
 
 
14769
 
 
14770
 
 
14771
14519
/* Integer Multi-Dimensional Interpolation */
14772
14520
/* Interpolation Kernel Code */
14773
14521
/* Generated by cgen */
14776
14524
 
14777
14525
/* see the Licence.txt file for licencing details.*/
14778
14526
 
14779
 
 
14780
14527
/*
14781
14528
   Interpolation kernel specs:
14782
14529
 
14868
14615
void **inp,             /* pointer to input pointers */
14869
14616
unsigned int npix       /* Number of pixels to process */
14870
14617
) {
14871
 
        imdi_imp *p = (imdi_imp *)(s->impl);
14872
 
        unsigned char *ip0 = (unsigned char *)inp[0];
14873
 
        unsigned char *op0 = (unsigned char *)outp[0];
14874
 
        unsigned char *ep = ip0 + npix * 1 ;
14875
 
        pointer it0 = (pointer)p->in_tables[0];
14876
 
        pointer ot0 = (pointer)p->out_tables[0];
14877
 
        pointer ot1 = (pointer)p->out_tables[1];
14878
 
        pointer ot2 = (pointer)p->out_tables[2];
14879
 
        pointer ot3 = (pointer)p->out_tables[3];
14880
 
        pointer ot4 = (pointer)p->out_tables[4];
14881
 
        pointer ot5 = (pointer)p->out_tables[5];
14882
 
        pointer ot6 = (pointer)p->out_tables[6];
14883
 
        pointer ot7 = (pointer)p->out_tables[7];
14884
 
        pointer sw_base = (pointer)p->sw_table;
14885
 
        pointer im_base = (pointer)p->im_table;
14886
 
        
14887
 
        for(;ip0 < ep; ip0 += 1, op0 += 8) {
14888
 
                unsigned int ova0;      /* Output value accumulator */
14889
 
                unsigned int ova1;      /* Output value accumulator */
14890
 
                unsigned int ova2;      /* Output value accumulator */
14891
 
                unsigned int ova3;      /* Output value accumulator */
14892
 
                {
14893
 
                        pointer swp;
14894
 
                        pointer imp;
14895
 
                        {
14896
 
                                unsigned int ti;        /* Simplex+Interpolation index variable */
14897
 
                                
14898
 
                                ti  = IT_IT(it0, ip0[0]);
14899
 
                                
14900
 
                                imp = im_base + IM_O(ti >> 0);          /* Extract interp. index and comp. entry */
14901
 
                                swp = sw_base + SW_O(ti & 0x0); /* Extract simplex index and comp. entry */
14902
 
                        }
14903
 
                        {
14904
 
                                unsigned int vowr;      /* Vertex offset/weight value */
14905
 
                                unsigned int vof;       /* Vertex offset value */
14906
 
                                unsigned int vwe;       /* Vertex weighting */
14907
 
                                
14908
 
                                vowr = SX_WO(swp, 0);   /* Read vertex offset+weighting values */
14909
 
                                vof = (vowr & 0x7f);    /* Extract offset value */
14910
 
                                vwe = (vowr >> 7);      /* Extract weighting value */
14911
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
14912
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
14913
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
14914
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
14915
 
                                vowr = SX_WO(swp, 1);   /* Read vertex offset+weighting values */
14916
 
                                vof = (vowr & 0x7f);    /* Extract offset value */
14917
 
                                vwe = (vowr >> 7);      /* Extract weighting value */
14918
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
14919
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
14920
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
14921
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
14922
 
                        }
14923
 
                }
14924
 
                {
14925
 
                        unsigned int oti;       /* Vertex offset value */
14926
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
14927
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
14928
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
14929
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
14930
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
14931
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
14932
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
14933
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
14934
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
14935
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
14936
 
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
14937
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
14938
 
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
14939
 
                        op0[6] = OT_E(ot6, oti);        /* Write result */
14940
 
                        oti = ((ova3 >> 24) & 0xff);    /* Extract integer part of result */
14941
 
                        op0[7] = OT_E(ot7, oti);        /* Write result */
14942
 
                }
14943
 
        }
 
14618
        imdi_imp *p = (imdi_imp *)(s->impl);
 
14619
        unsigned char *ip0 = (unsigned char *)inp[0];
 
14620
        unsigned char *op0 = (unsigned char *)outp[0];
 
14621
        unsigned char *ep = ip0 + npix * 1 ;
 
14622
        pointer it0 = (pointer)p->in_tables[0];
 
14623
        pointer ot0 = (pointer)p->out_tables[0];
 
14624
        pointer ot1 = (pointer)p->out_tables[1];
 
14625
        pointer ot2 = (pointer)p->out_tables[2];
 
14626
        pointer ot3 = (pointer)p->out_tables[3];
 
14627
        pointer ot4 = (pointer)p->out_tables[4];
 
14628
        pointer ot5 = (pointer)p->out_tables[5];
 
14629
        pointer ot6 = (pointer)p->out_tables[6];
 
14630
        pointer ot7 = (pointer)p->out_tables[7];
 
14631
        pointer sw_base = (pointer)p->sw_table;
 
14632
        pointer im_base = (pointer)p->im_table;
 
14633
 
 
14634
        for(;ip0 < ep; ip0 += 1, op0 += 8) {
 
14635
                unsigned int ova0;      /* Output value accumulator */
 
14636
                unsigned int ova1;      /* Output value accumulator */
 
14637
                unsigned int ova2;      /* Output value accumulator */
 
14638
                unsigned int ova3;      /* Output value accumulator */
 
14639
                {
 
14640
                        pointer swp;
 
14641
                        pointer imp;
 
14642
                        {
 
14643
                                unsigned int ti;        /* Simplex+Interpolation index variable */
 
14644
 
 
14645
                                ti  = IT_IT(it0, ip0[0]);
 
14646
 
 
14647
                                imp = im_base + IM_O(ti >> 0);          /* Extract interp. index and comp. entry */
 
14648
                                swp = sw_base + SW_O(ti & 0x0); /* Extract simplex index and comp. entry */
 
14649
                        }
 
14650
                        {
 
14651
                                unsigned int vowr;      /* Vertex offset/weight value */
 
14652
                                unsigned int vof;       /* Vertex offset value */
 
14653
                                unsigned int vwe;       /* Vertex weighting */
 
14654
 
 
14655
                                vowr = SX_WO(swp, 0);   /* Read vertex offset+weighting values */
 
14656
                                vof = (vowr & 0x7f);    /* Extract offset value */
 
14657
                                vwe = (vowr >> 7);      /* Extract weighting value */
 
14658
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
14659
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
14660
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
14661
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
14662
                                vowr = SX_WO(swp, 1);   /* Read vertex offset+weighting values */
 
14663
                                vof = (vowr & 0x7f);    /* Extract offset value */
 
14664
                                vwe = (vowr >> 7);      /* Extract weighting value */
 
14665
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
14666
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
14667
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
14668
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
14669
                        }
 
14670
                }
 
14671
                {
 
14672
                        unsigned int oti;       /* Vertex offset value */
 
14673
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
14674
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
14675
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
14676
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
14677
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
14678
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
14679
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
14680
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
14681
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
14682
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
14683
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
 
14684
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
14685
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
 
14686
                        op0[6] = OT_E(ot6, oti);        /* Write result */
 
14687
                        oti = ((ova3 >> 24) & 0xff);    /* Extract integer part of result */
 
14688
                        op0[7] = OT_E(ot7, oti);        /* Write result */
 
14689
                }
 
14690
        }
14944
14691
}
14945
14692
#undef IT_IT
14946
14693
#undef SW_O
14953
14700
imdi_k43_gen(
14954
14701
genspec *g                      /* structure to be initialised */
14955
14702
) {
14956
 
        static unsigned char data[] = {
14957
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
14958
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
14959
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14960
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14961
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14962
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14963
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14964
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
14965
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14966
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14967
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14968
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14969
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14970
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14971
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14972
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14973
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14974
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14975
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14976
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
14977
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14978
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14979
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14980
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14981
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14982
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14983
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14984
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14985
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14986
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14987
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14988
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
14989
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14990
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14991
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14992
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
14993
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
14994
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
14995
 
                0xff, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
14996
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
14997
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
14998
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
14999
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
15000
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
15001
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
15002
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
15003
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
15004
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
15005
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15006
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
15007
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
15008
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x31, 0x5f, 0x38, 0x5f, 
15009
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
15010
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
15011
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
15012
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
15013
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
15014
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
15015
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
15016
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15017
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15018
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15019
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15020
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
15021
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x34, 0x33, 
15022
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15023
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15024
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
15025
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
15026
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
15027
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
15028
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
15029
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
15030
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
15031
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
15032
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
15033
 
                0x00, 0xf0, 0x04, 0x08 
15034
 
        };      /* Structure image */
15035
 
        
15036
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
14703
        static unsigned char data[] = {
 
14704
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
14705
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
14706
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14707
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14708
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14709
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14710
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14711
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
14712
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14713
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14714
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14715
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14716
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14717
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14718
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14719
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14720
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14721
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14722
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14723
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
14724
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14725
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14726
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14727
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14728
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14729
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14730
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14731
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14732
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14733
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14734
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14735
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14736
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14737
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14738
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14739
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14740
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
14741
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
14742
                0xff, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
14743
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
14744
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
14745
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
14746
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
14747
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
14748
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
14749
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
14750
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
14751
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
14752
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14753
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
14754
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
14755
                0x2c, 0xf3, 0xdc, 0xb7, 0x31, 0x5f, 0x38, 0x5f,
 
14756
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
14757
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
14758
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
14759
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
14760
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
14761
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
14762
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
14763
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14764
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14765
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14766
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14767
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
14768
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x34, 0x33,
 
14769
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14770
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14771
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
14772
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
14773
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
14774
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
14775
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
14776
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
14777
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
14778
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
14779
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
14780
                0x00, 0xf0, 0x04, 0x08
 
14781
        };      /* Structure image */
 
14782
 
 
14783
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
15037
14784
}
15038
14785
 
15039
14786
static void
15040
14787
imdi_k43_tab(
15041
14788
tabspec *t                      /* structure to be initialised */
15042
14789
) {
15043
 
        static unsigned char data[] = {
15044
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15045
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
15046
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
15047
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
15048
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
15049
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
15050
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
15051
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
15052
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15053
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15054
 
                0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
15055
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15056
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
15057
 
                0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
15058
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
15059
 
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
15060
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15061
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
15062
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15063
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15064
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
15065
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
15066
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
15067
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
15068
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15069
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15070
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15071
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15072
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15073
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15074
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15075
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15076
 
                0x08, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff 
15077
 
        };      /* Structure image */
15078
 
        
15079
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
14790
        static unsigned char data[] = {
 
14791
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14792
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
14793
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
14794
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
14795
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
14796
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
14797
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
14798
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
14799
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14800
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14801
                0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
14802
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14803
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
14804
                0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
14805
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
14806
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
14807
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14808
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
14809
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14810
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14811
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
14812
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
14813
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
14814
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
14815
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14816
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14817
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14818
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
14819
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14820
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14821
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14822
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
14823
                0x08, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff
 
14824
        };      /* Structure image */
 
14825
 
 
14826
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
15080
14827
}
15081
14828
 
15082
 
 
15083
 
 
15084
 
 
15085
 
 
15086
 
 
15087
14829
/* Integer Multi-Dimensional Interpolation */
15088
14830
/* Interpolation Kernel Code */
15089
14831
/* Generated by cgen */
15092
14834
 
15093
14835
/* see the Licence.txt file for licencing details.*/
15094
14836
 
15095
 
 
15096
14837
/*
15097
14838
   Interpolation kernel specs:
15098
14839
 
15191
14932
void **inp,             /* pointer to input pointers */
15192
14933
unsigned int npix       /* Number of pixels to process */
15193
14934
) {
15194
 
        imdi_imp *p = (imdi_imp *)(s->impl);
15195
 
        unsigned char *ip0 = (unsigned char *)inp[0];
15196
 
        unsigned char *op0 = (unsigned char *)outp[0];
15197
 
        unsigned char *ep = ip0 + npix * 3 ;
15198
 
        pointer it0 = (pointer)p->in_tables[0];
15199
 
        pointer it1 = (pointer)p->in_tables[1];
15200
 
        pointer it2 = (pointer)p->in_tables[2];
15201
 
        pointer ot0 = (pointer)p->out_tables[0];
15202
 
        pointer ot1 = (pointer)p->out_tables[1];
15203
 
        pointer ot2 = (pointer)p->out_tables[2];
15204
 
        pointer ot3 = (pointer)p->out_tables[3];
15205
 
        pointer ot4 = (pointer)p->out_tables[4];
15206
 
        pointer ot5 = (pointer)p->out_tables[5];
15207
 
        pointer ot6 = (pointer)p->out_tables[6];
15208
 
        pointer ot7 = (pointer)p->out_tables[7];
15209
 
        pointer sw_base = (pointer)p->sw_table;
15210
 
        pointer im_base = (pointer)p->im_table;
15211
 
        
15212
 
        for(;ip0 < ep; ip0 += 3, op0 += 8) {
15213
 
                unsigned int ova0;      /* Output value accumulator */
15214
 
                unsigned int ova1;      /* Output value accumulator */
15215
 
                unsigned int ova2;      /* Output value accumulator */
15216
 
                unsigned int ova3;      /* Output value accumulator */
15217
 
                {
15218
 
                        pointer swp;
15219
 
                        pointer imp;
15220
 
                        {
15221
 
                                unsigned int ti;        /* Simplex+Interpolation index variable */
15222
 
                                
15223
 
                                ti  = IT_IT(it0, ip0[0]);
15224
 
                                ti += IT_IT(it1, ip0[1]);
15225
 
                                ti += IT_IT(it2, ip0[2]);
15226
 
                                
15227
 
                                imp = im_base + IM_O(ti >> 12);         /* Extract interp. index and comp. entry */
15228
 
                                swp = sw_base + SW_O(ti & 0xfff);       /* Extract simplex index and comp. entry */
15229
 
                        }
15230
 
                        {
15231
 
                                unsigned int vof;       /* Vertex offset value */
15232
 
                                unsigned int vwe;       /* Vertex weighting */
15233
 
                                
15234
 
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
15235
 
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
15236
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
15237
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
15238
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
15239
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
15240
 
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
15241
 
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
15242
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
15243
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
15244
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
15245
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
15246
 
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
15247
 
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
15248
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
15249
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
15250
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
15251
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
15252
 
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
15253
 
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
15254
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
15255
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
15256
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
15257
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
15258
 
                        }
15259
 
                }
15260
 
                {
15261
 
                        unsigned int oti;       /* Vertex offset value */
15262
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
15263
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
15264
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
15265
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
15266
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
15267
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
15268
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
15269
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
15270
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
15271
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
15272
 
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
15273
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
15274
 
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
15275
 
                        op0[6] = OT_E(ot6, oti);        /* Write result */
15276
 
                        oti = ((ova3 >> 24) & 0xff);    /* Extract integer part of result */
15277
 
                        op0[7] = OT_E(ot7, oti);        /* Write result */
15278
 
                }
15279
 
        }
 
14935
        imdi_imp *p = (imdi_imp *)(s->impl);
 
14936
        unsigned char *ip0 = (unsigned char *)inp[0];
 
14937
        unsigned char *op0 = (unsigned char *)outp[0];
 
14938
        unsigned char *ep = ip0 + npix * 3 ;
 
14939
        pointer it0 = (pointer)p->in_tables[0];
 
14940
        pointer it1 = (pointer)p->in_tables[1];
 
14941
        pointer it2 = (pointer)p->in_tables[2];
 
14942
        pointer ot0 = (pointer)p->out_tables[0];
 
14943
        pointer ot1 = (pointer)p->out_tables[1];
 
14944
        pointer ot2 = (pointer)p->out_tables[2];
 
14945
        pointer ot3 = (pointer)p->out_tables[3];
 
14946
        pointer ot4 = (pointer)p->out_tables[4];
 
14947
        pointer ot5 = (pointer)p->out_tables[5];
 
14948
        pointer ot6 = (pointer)p->out_tables[6];
 
14949
        pointer ot7 = (pointer)p->out_tables[7];
 
14950
        pointer sw_base = (pointer)p->sw_table;
 
14951
        pointer im_base = (pointer)p->im_table;
 
14952
 
 
14953
        for(;ip0 < ep; ip0 += 3, op0 += 8) {
 
14954
                unsigned int ova0;      /* Output value accumulator */
 
14955
                unsigned int ova1;      /* Output value accumulator */
 
14956
                unsigned int ova2;      /* Output value accumulator */
 
14957
                unsigned int ova3;      /* Output value accumulator */
 
14958
                {
 
14959
                        pointer swp;
 
14960
                        pointer imp;
 
14961
                        {
 
14962
                                unsigned int ti;        /* Simplex+Interpolation index variable */
 
14963
 
 
14964
                                ti  = IT_IT(it0, ip0[0]);
 
14965
                                ti += IT_IT(it1, ip0[1]);
 
14966
                                ti += IT_IT(it2, ip0[2]);
 
14967
 
 
14968
                                imp = im_base + IM_O(ti >> 12);         /* Extract interp. index and comp. entry */
 
14969
                                swp = sw_base + SW_O(ti & 0xfff);       /* Extract simplex index and comp. entry */
 
14970
                        }
 
14971
                        {
 
14972
                                unsigned int vof;       /* Vertex offset value */
 
14973
                                unsigned int vwe;       /* Vertex weighting */
 
14974
 
 
14975
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
 
14976
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
 
14977
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
14978
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
14979
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
14980
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
14981
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
 
14982
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
 
14983
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
14984
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
14985
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
14986
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
14987
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
 
14988
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
 
14989
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
14990
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
14991
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
14992
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
14993
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
 
14994
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
 
14995
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
14996
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
14997
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
14998
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
14999
                        }
 
15000
                }
 
15001
                {
 
15002
                        unsigned int oti;       /* Vertex offset value */
 
15003
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
15004
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
15005
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
15006
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
15007
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
15008
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
15009
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
15010
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
15011
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
15012
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
15013
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
 
15014
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
15015
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
 
15016
                        op0[6] = OT_E(ot6, oti);        /* Write result */
 
15017
                        oti = ((ova3 >> 24) & 0xff);    /* Extract integer part of result */
 
15018
                        op0[7] = OT_E(ot7, oti);        /* Write result */
 
15019
                }
 
15020
        }
15280
15021
}
15281
15022
#undef IT_IT
15282
15023
#undef SW_O
15290
15031
imdi_k44_gen(
15291
15032
genspec *g                      /* structure to be initialised */
15292
15033
) {
15293
 
        static unsigned char data[] = {
15294
 
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
15295
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
15296
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15297
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15298
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15299
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15300
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15301
 
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
15302
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
15303
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15304
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15305
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15306
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15307
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15308
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15309
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15310
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15311
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15312
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15313
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
15314
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15315
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15316
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15317
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15318
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15319
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15320
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15321
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15322
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15323
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15324
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15325
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15326
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15327
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15328
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15329
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15330
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
15331
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
15332
 
                0x65, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
15333
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
15334
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
15335
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
15336
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
15337
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
15338
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
15339
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
15340
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
15341
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
15342
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15343
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
15344
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
15345
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x33, 0x5f, 0x38, 0x5f, 
15346
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
15347
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
15348
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
15349
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
15350
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
15351
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
15352
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
15353
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15354
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15355
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15356
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15357
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
15358
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x34, 0x34, 
15359
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15360
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15361
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
15362
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
15363
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
15364
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
15365
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
15366
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
15367
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
15368
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
15369
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
15370
 
                0x00, 0xf0, 0x04, 0x08 
15371
 
        };      /* Structure image */
15372
 
        
15373
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
15034
        static unsigned char data[] = {
 
15035
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
15036
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
15037
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15038
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15039
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15040
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15041
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15042
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
15043
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
15044
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15045
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15046
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15047
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15048
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15049
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15050
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15051
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15052
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15053
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15054
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
15055
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15056
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15057
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15058
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15059
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15060
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15061
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15062
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15063
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15064
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15065
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15066
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15067
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15068
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15069
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15070
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15071
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
15072
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
15073
                0x65, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
15074
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
15075
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
15076
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
15077
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
15078
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
15079
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
15080
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
15081
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
15082
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
15083
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15084
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
15085
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
15086
                0x2c, 0xf3, 0xdc, 0xb7, 0x33, 0x5f, 0x38, 0x5f,
 
15087
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
15088
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
15089
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
15090
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
15091
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
15092
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
15093
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
15094
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15095
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15096
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15097
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15098
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
15099
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x34, 0x34,
 
15100
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15101
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15102
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
15103
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
15104
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
15105
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
15106
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
15107
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
15108
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
15109
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
15110
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
15111
                0x00, 0xf0, 0x04, 0x08
 
15112
        };      /* Structure image */
 
15113
 
 
15114
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
15374
15115
}
15375
15116
 
15376
15117
static void
15377
15118
imdi_k44_tab(
15378
15119
tabspec *t                      /* structure to be initialised */
15379
15120
) {
15380
 
        static unsigned char data[] = {
15381
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15382
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
15383
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
15384
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
15385
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
15386
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
15387
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
15388
 
                0x14, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
15389
 
                0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 
15390
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15391
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
15392
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15393
 
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
15394
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
15395
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
15396
 
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
15397
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15398
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
15399
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15400
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15401
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
15402
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
15403
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
15404
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
15405
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15406
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15407
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15408
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15409
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15410
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15411
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15412
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15413
 
                0x08, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff 
15414
 
        };      /* Structure image */
15415
 
        
15416
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
15121
        static unsigned char data[] = {
 
15122
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15123
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
15124
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
15125
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
15126
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
15127
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
15128
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
15129
                0x14, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
15130
                0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
 
15131
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15132
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
15133
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15134
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
15135
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
15136
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
15137
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
15138
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15139
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
15140
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15141
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15142
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
15143
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
15144
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
15145
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
15146
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15147
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15148
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15149
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15150
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15151
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15152
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15153
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15154
                0x08, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff
 
15155
        };      /* Structure image */
 
15156
 
 
15157
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
15417
15158
}
15418
15159
 
15419
 
 
15420
 
 
15421
 
 
15422
 
 
15423
 
 
15424
15160
/* Integer Multi-Dimensional Interpolation */
15425
15161
/* Interpolation Kernel Code */
15426
15162
/* Generated by cgen */
15429
15165
 
15430
15166
/* see the Licence.txt file for licencing details.*/
15431
15167
 
15432
 
 
15433
15168
/*
15434
15169
   Interpolation kernel specs:
15435
15170
 
15533
15268
void **inp,             /* pointer to input pointers */
15534
15269
unsigned int npix       /* Number of pixels to process */
15535
15270
) {
15536
 
        imdi_imp *p = (imdi_imp *)(s->impl);
15537
 
        unsigned char *ip0 = (unsigned char *)inp[0];
15538
 
        unsigned char *op0 = (unsigned char *)outp[0];
15539
 
        unsigned char *ep = ip0 + npix * 4 ;
15540
 
        pointer it0 = (pointer)p->in_tables[0];
15541
 
        pointer it1 = (pointer)p->in_tables[1];
15542
 
        pointer it2 = (pointer)p->in_tables[2];
15543
 
        pointer it3 = (pointer)p->in_tables[3];
15544
 
        pointer ot0 = (pointer)p->out_tables[0];
15545
 
        pointer ot1 = (pointer)p->out_tables[1];
15546
 
        pointer ot2 = (pointer)p->out_tables[2];
15547
 
        pointer ot3 = (pointer)p->out_tables[3];
15548
 
        pointer ot4 = (pointer)p->out_tables[4];
15549
 
        pointer ot5 = (pointer)p->out_tables[5];
15550
 
        pointer ot6 = (pointer)p->out_tables[6];
15551
 
        pointer ot7 = (pointer)p->out_tables[7];
15552
 
        pointer sw_base = (pointer)p->sw_table;
15553
 
        pointer im_base = (pointer)p->im_table;
15554
 
        
15555
 
        for(;ip0 < ep; ip0 += 4, op0 += 8) {
15556
 
                unsigned int ova0;      /* Output value accumulator */
15557
 
                unsigned int ova1;      /* Output value accumulator */
15558
 
                unsigned int ova2;      /* Output value accumulator */
15559
 
                unsigned int ova3;      /* Output value accumulator */
15560
 
                {
15561
 
                        pointer swp;
15562
 
                        pointer imp;
15563
 
                        {
15564
 
                                unsigned int ti_s;      /* Simplex index variable */
15565
 
                                unsigned int ti_i;      /* Interpolation index variable */
15566
 
                                
15567
 
                                ti_i  = IT_IX(it0, ip0[0]);
15568
 
                                ti_s  = IT_SX(it0, ip0[0]);
15569
 
                                ti_i += IT_IX(it1, ip0[1]);
15570
 
                                ti_s += IT_SX(it1, ip0[1]);
15571
 
                                ti_i += IT_IX(it2, ip0[2]);
15572
 
                                ti_s += IT_SX(it2, ip0[2]);
15573
 
                                ti_i += IT_IX(it3, ip0[3]);
15574
 
                                ti_s += IT_SX(it3, ip0[3]);
15575
 
                                
15576
 
                                swp = sw_base + SW_O(ti_s);             /* Compute simplex table entry pointer */
15577
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
15578
 
                        }
15579
 
                        {
15580
 
                                unsigned int vof;       /* Vertex offset value */
15581
 
                                unsigned int vwe;       /* Vertex weighting */
15582
 
                                
15583
 
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
15584
 
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
15585
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
15586
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
15587
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
15588
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
15589
 
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
15590
 
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
15591
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
15592
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
15593
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
15594
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
15595
 
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
15596
 
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
15597
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
15598
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
15599
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
15600
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
15601
 
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
15602
 
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
15603
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
15604
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
15605
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
15606
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
15607
 
                                vof = SX_VO(swp, 4);    /* Read vertex offset value */
15608
 
                                vwe = SX_WE(swp, 4);    /* Read vertex weighting value */
15609
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
15610
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
15611
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
15612
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
15613
 
                        }
15614
 
                }
15615
 
                {
15616
 
                        unsigned int oti;       /* Vertex offset value */
15617
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
15618
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
15619
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
15620
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
15621
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
15622
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
15623
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
15624
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
15625
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
15626
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
15627
 
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
15628
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
15629
 
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
15630
 
                        op0[6] = OT_E(ot6, oti);        /* Write result */
15631
 
                        oti = ((ova3 >> 24) & 0xff);    /* Extract integer part of result */
15632
 
                        op0[7] = OT_E(ot7, oti);        /* Write result */
15633
 
                }
15634
 
        }
 
15271
        imdi_imp *p = (imdi_imp *)(s->impl);
 
15272
        unsigned char *ip0 = (unsigned char *)inp[0];
 
15273
        unsigned char *op0 = (unsigned char *)outp[0];
 
15274
        unsigned char *ep = ip0 + npix * 4 ;
 
15275
        pointer it0 = (pointer)p->in_tables[0];
 
15276
        pointer it1 = (pointer)p->in_tables[1];
 
15277
        pointer it2 = (pointer)p->in_tables[2];
 
15278
        pointer it3 = (pointer)p->in_tables[3];
 
15279
        pointer ot0 = (pointer)p->out_tables[0];
 
15280
        pointer ot1 = (pointer)p->out_tables[1];
 
15281
        pointer ot2 = (pointer)p->out_tables[2];
 
15282
        pointer ot3 = (pointer)p->out_tables[3];
 
15283
        pointer ot4 = (pointer)p->out_tables[4];
 
15284
        pointer ot5 = (pointer)p->out_tables[5];
 
15285
        pointer ot6 = (pointer)p->out_tables[6];
 
15286
        pointer ot7 = (pointer)p->out_tables[7];
 
15287
        pointer sw_base = (pointer)p->sw_table;
 
15288
        pointer im_base = (pointer)p->im_table;
 
15289
 
 
15290
        for(;ip0 < ep; ip0 += 4, op0 += 8) {
 
15291
                unsigned int ova0;      /* Output value accumulator */
 
15292
                unsigned int ova1;      /* Output value accumulator */
 
15293
                unsigned int ova2;      /* Output value accumulator */
 
15294
                unsigned int ova3;      /* Output value accumulator */
 
15295
                {
 
15296
                        pointer swp;
 
15297
                        pointer imp;
 
15298
                        {
 
15299
                                unsigned int ti_s;      /* Simplex index variable */
 
15300
                                unsigned int ti_i;      /* Interpolation index variable */
 
15301
 
 
15302
                                ti_i  = IT_IX(it0, ip0[0]);
 
15303
                                ti_s  = IT_SX(it0, ip0[0]);
 
15304
                                ti_i += IT_IX(it1, ip0[1]);
 
15305
                                ti_s += IT_SX(it1, ip0[1]);
 
15306
                                ti_i += IT_IX(it2, ip0[2]);
 
15307
                                ti_s += IT_SX(it2, ip0[2]);
 
15308
                                ti_i += IT_IX(it3, ip0[3]);
 
15309
                                ti_s += IT_SX(it3, ip0[3]);
 
15310
 
 
15311
                                swp = sw_base + SW_O(ti_s);             /* Compute simplex table entry pointer */
 
15312
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
15313
                        }
 
15314
                        {
 
15315
                                unsigned int vof;       /* Vertex offset value */
 
15316
                                unsigned int vwe;       /* Vertex weighting */
 
15317
 
 
15318
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
 
15319
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
 
15320
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
15321
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
15322
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
15323
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
15324
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
 
15325
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
 
15326
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
15327
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
15328
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
15329
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
15330
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
 
15331
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
 
15332
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
15333
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
15334
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
15335
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
15336
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
 
15337
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
 
15338
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
15339
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
15340
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
15341
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
15342
                                vof = SX_VO(swp, 4);    /* Read vertex offset value */
 
15343
                                vwe = SX_WE(swp, 4);    /* Read vertex weighting value */
 
15344
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
15345
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
15346
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
15347
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
15348
                        }
 
15349
                }
 
15350
                {
 
15351
                        unsigned int oti;       /* Vertex offset value */
 
15352
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
15353
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
15354
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
15355
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
15356
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
15357
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
15358
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
15359
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
15360
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
15361
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
15362
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
 
15363
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
15364
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
 
15365
                        op0[6] = OT_E(ot6, oti);        /* Write result */
 
15366
                        oti = ((ova3 >> 24) & 0xff);    /* Extract integer part of result */
 
15367
                        op0[7] = OT_E(ot7, oti);        /* Write result */
 
15368
                }
 
15369
        }
15635
15370
}
15636
15371
#undef IT_IX
15637
15372
#undef IT_SX
15646
15381
imdi_k45_gen(
15647
15382
genspec *g                      /* structure to be initialised */
15648
15383
) {
15649
 
        static unsigned char data[] = {
15650
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
15651
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
15652
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15653
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15654
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15655
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15656
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15657
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
15658
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
15659
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15660
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15661
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15662
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15663
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15664
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15665
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15666
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15667
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15668
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15669
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
15670
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15671
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15672
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15673
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15674
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15675
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15676
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15677
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15678
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15679
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15680
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15681
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15682
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15683
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15684
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15685
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15686
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
15687
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
15688
 
                0x1f, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 
15689
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
15690
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
15691
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
15692
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
15693
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
15694
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
15695
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
15696
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
15697
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
15698
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15699
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
15700
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
15701
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x34, 0x5f, 0x38, 0x5f, 
15702
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
15703
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
15704
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
15705
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
15706
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
15707
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
15708
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
15709
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15710
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15711
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15712
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15713
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
15714
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x34, 0x35, 
15715
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15716
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15717
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
15718
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
15719
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
15720
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
15721
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
15722
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
15723
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
15724
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
15725
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
15726
 
                0x00, 0xf0, 0x04, 0x08 
15727
 
        };      /* Structure image */
15728
 
        
15729
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
15384
        static unsigned char data[] = {
 
15385
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
15386
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
15387
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15388
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15389
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15390
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15391
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15392
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
15393
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
15394
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15395
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15396
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15397
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15398
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15399
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15400
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15401
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15402
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15403
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15404
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
15405
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15406
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15407
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15408
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15409
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15410
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15411
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15412
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15413
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15414
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15415
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15416
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15417
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15418
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15419
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15420
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15421
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
15422
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
15423
                0x1f, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00,
 
15424
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
15425
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
15426
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
15427
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
15428
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
15429
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
15430
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
15431
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
15432
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
15433
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15434
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
15435
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
15436
                0x2c, 0xf3, 0xdc, 0xb7, 0x34, 0x5f, 0x38, 0x5f,
 
15437
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
15438
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
15439
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
15440
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
15441
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
15442
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
15443
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
15444
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15445
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15446
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15447
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15448
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
15449
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x34, 0x35,
 
15450
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15451
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15452
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
15453
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
15454
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
15455
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
15456
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
15457
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
15458
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
15459
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
15460
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
15461
                0x00, 0xf0, 0x04, 0x08
 
15462
        };      /* Structure image */
 
15463
 
 
15464
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
15730
15465
}
15731
15466
 
15732
15467
static void
15733
15468
imdi_k45_tab(
15734
15469
tabspec *t                      /* structure to be initialised */
15735
15470
) {
15736
 
        static unsigned char data[] = {
15737
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
15738
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
15739
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
15740
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
15741
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
15742
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
15743
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15744
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
15745
 
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
15746
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15747
 
                0x14, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
15748
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15749
 
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
15750
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
15751
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
15752
 
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
15753
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15754
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
15755
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15756
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15757
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
15758
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
15759
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
15760
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
15761
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15762
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15763
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15764
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
15765
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15766
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15767
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15768
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
15769
 
                0x08, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff 
15770
 
        };      /* Structure image */
15771
 
        
15772
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
15471
        static unsigned char data[] = {
 
15472
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
15473
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
15474
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
15475
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
15476
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
15477
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
15478
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15479
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
15480
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
15481
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15482
                0x14, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
15483
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15484
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
15485
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
15486
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
15487
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
15488
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15489
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
15490
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15491
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15492
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
15493
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
15494
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
15495
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
15496
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15497
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15498
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15499
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15500
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15501
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15502
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15503
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15504
                0x08, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff
 
15505
        };      /* Structure image */
 
15506
 
 
15507
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
15773
15508
}
15774
15509
 
15775
 
 
15776
 
 
15777
 
 
15778
 
 
15779
 
 
15780
15510
/* Integer Multi-Dimensional Interpolation */
15781
15511
/* Interpolation Kernel Code */
15782
15512
/* Generated by cgen */
15785
15515
 
15786
15516
/* see the Licence.txt file for licencing details.*/
15787
15517
 
15788
 
 
15789
15518
/*
15790
15519
   Interpolation kernel specs:
15791
15520
 
15884
15613
void **inp,             /* pointer to input pointers */
15885
15614
unsigned int npix       /* Number of pixels to process */
15886
15615
) {
15887
 
        imdi_imp *p = (imdi_imp *)(s->impl);
15888
 
        unsigned char *ip0 = (unsigned char *)inp[0];
15889
 
        unsigned char *op0 = (unsigned char *)outp[0];
15890
 
        unsigned char *ep = ip0 + npix * 5 ;
15891
 
        pointer it0 = (pointer)p->in_tables[0];
15892
 
        pointer it1 = (pointer)p->in_tables[1];
15893
 
        pointer it2 = (pointer)p->in_tables[2];
15894
 
        pointer it3 = (pointer)p->in_tables[3];
15895
 
        pointer it4 = (pointer)p->in_tables[4];
15896
 
        pointer ot0 = (pointer)p->out_tables[0];
15897
 
        pointer ot1 = (pointer)p->out_tables[1];
15898
 
        pointer ot2 = (pointer)p->out_tables[2];
15899
 
        pointer ot3 = (pointer)p->out_tables[3];
15900
 
        pointer ot4 = (pointer)p->out_tables[4];
15901
 
        pointer ot5 = (pointer)p->out_tables[5];
15902
 
        pointer ot6 = (pointer)p->out_tables[6];
15903
 
        pointer ot7 = (pointer)p->out_tables[7];
15904
 
        pointer im_base = (pointer)p->im_table;
15905
 
        
15906
 
        for(;ip0 < ep; ip0 += 5, op0 += 8) {
15907
 
                unsigned int ova0;      /* Output value accumulator */
15908
 
                unsigned int ova1;      /* Output value accumulator */
15909
 
                unsigned int ova2;      /* Output value accumulator */
15910
 
                unsigned int ova3;      /* Output value accumulator */
15911
 
                {
15912
 
                        pointer imp;
15913
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
15914
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
15915
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
15916
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
15917
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
15918
 
                        {
15919
 
                                unsigned int ti_i;      /* Interpolation index variable */
15920
 
                                
15921
 
                                ti_i  = IT_IX(it0, ip0[0]);
15922
 
                                wo0   = IT_WO(it0, ip0[0]);
15923
 
                                ti_i += IT_IX(it1, ip0[1]);
15924
 
                                wo1   = IT_WO(it1, ip0[1]);
15925
 
                                ti_i += IT_IX(it2, ip0[2]);
15926
 
                                wo2   = IT_WO(it2, ip0[2]);
15927
 
                                ti_i += IT_IX(it3, ip0[3]);
15928
 
                                wo3   = IT_WO(it3, ip0[3]);
15929
 
                                ti_i += IT_IX(it4, ip0[4]);
15930
 
                                wo4   = IT_WO(it4, ip0[4]);
15931
 
                                
15932
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
15933
 
                                
15934
 
                                /* Sort weighting values and vertex offset values */
15935
 
                                CEX(wo0, wo1);
15936
 
                                CEX(wo0, wo2);
15937
 
                                CEX(wo0, wo3);
15938
 
                                CEX(wo0, wo4);
15939
 
                                CEX(wo1, wo2);
15940
 
                                CEX(wo1, wo3);
15941
 
                                CEX(wo1, wo4);
15942
 
                                CEX(wo2, wo3);
15943
 
                                CEX(wo2, wo4);
15944
 
                                CEX(wo3, wo4);
15945
 
                        }
15946
 
                        {
15947
 
                                unsigned int nvof;      /* Next vertex offset value */
15948
 
                                unsigned int vof;       /* Vertex offset value */
15949
 
                                unsigned int vwe;       /* Vertex weighting */
15950
 
                                
15951
 
                                vof = 0;                                /* First vertex offset is 0 */
15952
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
15953
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
15954
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
15955
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
15956
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
15957
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
15958
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
15959
 
                                vof += nvof;                    /* Move to next vertex */
15960
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
15961
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
15962
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
15963
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
15964
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
15965
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
15966
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
15967
 
                                vof += nvof;                    /* Move to next vertex */
15968
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
15969
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
15970
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
15971
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
15972
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
15973
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
15974
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
15975
 
                                vof += nvof;                    /* Move to next vertex */
15976
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
15977
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
15978
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
15979
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
15980
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
15981
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
15982
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
15983
 
                                vof += nvof;                    /* Move to next vertex */
15984
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
15985
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
15986
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
15987
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
15988
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
15989
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
15990
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
15991
 
                                vof += nvof;                    /* Move to next vertex */
15992
 
                                vwe = wo4;                              /* Baricentric weighting */
15993
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
15994
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
15995
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
15996
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
15997
 
                        }
15998
 
                }
15999
 
                {
16000
 
                        unsigned int oti;       /* Vertex offset value */
16001
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
16002
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
16003
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
16004
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
16005
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
16006
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
16007
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
16008
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
16009
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
16010
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
16011
 
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
16012
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
16013
 
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
16014
 
                        op0[6] = OT_E(ot6, oti);        /* Write result */
16015
 
                        oti = ((ova3 >> 24) & 0xff);    /* Extract integer part of result */
16016
 
                        op0[7] = OT_E(ot7, oti);        /* Write result */
16017
 
                }
16018
 
        }
 
15616
        imdi_imp *p = (imdi_imp *)(s->impl);
 
15617
        unsigned char *ip0 = (unsigned char *)inp[0];
 
15618
        unsigned char *op0 = (unsigned char *)outp[0];
 
15619
        unsigned char *ep = ip0 + npix * 5 ;
 
15620
        pointer it0 = (pointer)p->in_tables[0];
 
15621
        pointer it1 = (pointer)p->in_tables[1];
 
15622
        pointer it2 = (pointer)p->in_tables[2];
 
15623
        pointer it3 = (pointer)p->in_tables[3];
 
15624
        pointer it4 = (pointer)p->in_tables[4];
 
15625
        pointer ot0 = (pointer)p->out_tables[0];
 
15626
        pointer ot1 = (pointer)p->out_tables[1];
 
15627
        pointer ot2 = (pointer)p->out_tables[2];
 
15628
        pointer ot3 = (pointer)p->out_tables[3];
 
15629
        pointer ot4 = (pointer)p->out_tables[4];
 
15630
        pointer ot5 = (pointer)p->out_tables[5];
 
15631
        pointer ot6 = (pointer)p->out_tables[6];
 
15632
        pointer ot7 = (pointer)p->out_tables[7];
 
15633
        pointer im_base = (pointer)p->im_table;
 
15634
 
 
15635
        for(;ip0 < ep; ip0 += 5, op0 += 8) {
 
15636
                unsigned int ova0;      /* Output value accumulator */
 
15637
                unsigned int ova1;      /* Output value accumulator */
 
15638
                unsigned int ova2;      /* Output value accumulator */
 
15639
                unsigned int ova3;      /* Output value accumulator */
 
15640
                {
 
15641
                        pointer imp;
 
15642
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
15643
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
15644
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
15645
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
15646
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
15647
                        {
 
15648
                                unsigned int ti_i;      /* Interpolation index variable */
 
15649
 
 
15650
                                ti_i  = IT_IX(it0, ip0[0]);
 
15651
                                wo0   = IT_WO(it0, ip0[0]);
 
15652
                                ti_i += IT_IX(it1, ip0[1]);
 
15653
                                wo1   = IT_WO(it1, ip0[1]);
 
15654
                                ti_i += IT_IX(it2, ip0[2]);
 
15655
                                wo2   = IT_WO(it2, ip0[2]);
 
15656
                                ti_i += IT_IX(it3, ip0[3]);
 
15657
                                wo3   = IT_WO(it3, ip0[3]);
 
15658
                                ti_i += IT_IX(it4, ip0[4]);
 
15659
                                wo4   = IT_WO(it4, ip0[4]);
 
15660
 
 
15661
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
15662
 
 
15663
                                /* Sort weighting values and vertex offset values */
 
15664
                                CEX(wo0, wo1);
 
15665
                                CEX(wo0, wo2);
 
15666
                                CEX(wo0, wo3);
 
15667
                                CEX(wo0, wo4);
 
15668
                                CEX(wo1, wo2);
 
15669
                                CEX(wo1, wo3);
 
15670
                                CEX(wo1, wo4);
 
15671
                                CEX(wo2, wo3);
 
15672
                                CEX(wo2, wo4);
 
15673
                                CEX(wo3, wo4);
 
15674
                        }
 
15675
                        {
 
15676
                                unsigned int nvof;      /* Next vertex offset value */
 
15677
                                unsigned int vof;       /* Vertex offset value */
 
15678
                                unsigned int vwe;       /* Vertex weighting */
 
15679
 
 
15680
                                vof = 0;                                /* First vertex offset is 0 */
 
15681
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
15682
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
15683
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
15684
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
15685
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
15686
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
15687
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
15688
                                vof += nvof;                    /* Move to next vertex */
 
15689
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
15690
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
15691
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
15692
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
15693
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
15694
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
15695
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
15696
                                vof += nvof;                    /* Move to next vertex */
 
15697
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
15698
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
15699
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
15700
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
15701
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
15702
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
15703
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
15704
                                vof += nvof;                    /* Move to next vertex */
 
15705
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
15706
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
15707
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
15708
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
15709
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
15710
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
15711
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
15712
                                vof += nvof;                    /* Move to next vertex */
 
15713
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
15714
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
15715
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
15716
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
15717
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
15718
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
15719
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
15720
                                vof += nvof;                    /* Move to next vertex */
 
15721
                                vwe = wo4;                              /* Baricentric weighting */
 
15722
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
15723
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
15724
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
15725
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
15726
                        }
 
15727
                }
 
15728
                {
 
15729
                        unsigned int oti;       /* Vertex offset value */
 
15730
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
15731
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
15732
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
15733
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
15734
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
15735
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
15736
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
15737
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
15738
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
15739
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
15740
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
 
15741
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
15742
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
 
15743
                        op0[6] = OT_E(ot6, oti);        /* Write result */
 
15744
                        oti = ((ova3 >> 24) & 0xff);    /* Extract integer part of result */
 
15745
                        op0[7] = OT_E(ot7, oti);        /* Write result */
 
15746
                }
 
15747
        }
16019
15748
}
16020
15749
#undef IT_WO
16021
15750
#undef IT_IX
16028
15757
imdi_k46_gen(
16029
15758
genspec *g                      /* structure to be initialised */
16030
15759
) {
16031
 
        static unsigned char data[] = {
16032
 
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
16033
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
16034
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16035
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16036
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16037
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16038
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16039
 
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
16040
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
16041
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
16042
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16043
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16044
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16045
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16046
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16047
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16048
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16049
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16050
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16051
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
16052
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16053
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16054
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16055
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16056
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16057
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16058
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16059
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16060
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16061
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16062
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16063
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16064
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16065
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16066
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16067
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16068
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
16069
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
16070
 
                0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16071
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
16072
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
16073
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
16074
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
16075
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
16076
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
16077
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
16078
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
16079
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
16080
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16081
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
16082
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
16083
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x35, 0x5f, 0x38, 0x5f, 
16084
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
16085
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
16086
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
16087
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
16088
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
16089
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
16090
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
16091
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16092
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16093
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16094
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16095
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
16096
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x34, 0x36, 
16097
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16098
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16099
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
16100
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
16101
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
16102
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
16103
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
16104
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
16105
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
16106
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
16107
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
16108
 
                0x00, 0xf0, 0x04, 0x08 
16109
 
        };      /* Structure image */
16110
 
        
16111
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
15760
        static unsigned char data[] = {
 
15761
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
15762
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
15763
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15764
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15765
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15766
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15767
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15768
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
15769
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
15770
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
15771
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15772
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15773
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15774
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15775
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15776
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15777
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15778
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15779
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15780
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
15781
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15782
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15783
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15784
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15785
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15786
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15787
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15788
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15789
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15790
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15791
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15792
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15793
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15794
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15795
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15796
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15797
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
15798
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
15799
                0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15800
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
15801
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
15802
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
15803
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
15804
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
15805
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
15806
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
15807
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
15808
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
15809
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15810
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
15811
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
15812
                0x2c, 0xf3, 0xdc, 0xb7, 0x35, 0x5f, 0x38, 0x5f,
 
15813
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
15814
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
15815
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
15816
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
15817
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
15818
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
15819
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
15820
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15821
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15822
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15823
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15824
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
15825
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x34, 0x36,
 
15826
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15827
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15828
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
15829
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
15830
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
15831
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
15832
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
15833
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
15834
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
15835
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
15836
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
15837
                0x00, 0xf0, 0x04, 0x08
 
15838
        };      /* Structure image */
 
15839
 
 
15840
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
16112
15841
}
16113
15842
 
16114
15843
static void
16115
15844
imdi_k46_tab(
16116
15845
tabspec *t                      /* structure to be initialised */
16117
15846
) {
16118
 
        static unsigned char data[] = {
16119
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
16120
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
16121
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
16122
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
16123
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
16124
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
16125
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16126
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
16127
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
16128
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16129
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
16130
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
16131
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
16132
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
16133
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
16134
 
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
16135
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16136
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
16137
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16138
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16139
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
16140
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
16141
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
16142
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
16143
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16144
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16145
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16146
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16147
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16148
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16149
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16150
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16151
 
                0x08, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff 
16152
 
        };      /* Structure image */
16153
 
        
16154
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
15847
        static unsigned char data[] = {
 
15848
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
15849
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
15850
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
15851
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
15852
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
15853
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
15854
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15855
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
15856
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
15857
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15858
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
15859
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
15860
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
15861
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
15862
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
15863
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
15864
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15865
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
15866
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15867
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15868
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
15869
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
15870
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
15871
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
15872
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15873
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15874
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15875
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
15876
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15877
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15878
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15879
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
15880
                0x08, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff
 
15881
        };      /* Structure image */
 
15882
 
 
15883
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
16155
15884
}
16156
15885
 
16157
 
 
16158
 
 
16159
 
 
16160
 
 
16161
 
 
16162
15886
/* Integer Multi-Dimensional Interpolation */
16163
15887
/* Interpolation Kernel Code */
16164
15888
/* Generated by cgen */
16167
15891
 
16168
15892
/* see the Licence.txt file for licencing details.*/
16169
15893
 
16170
 
 
16171
15894
/*
16172
15895
   Interpolation kernel specs:
16173
15896
 
16268
15991
void **inp,             /* pointer to input pointers */
16269
15992
unsigned int npix       /* Number of pixels to process */
16270
15993
) {
16271
 
        imdi_imp *p = (imdi_imp *)(s->impl);
16272
 
        unsigned char *ip0 = (unsigned char *)inp[0];
16273
 
        unsigned char *op0 = (unsigned char *)outp[0];
16274
 
        unsigned char *ep = ip0 + npix * 6 ;
16275
 
        pointer it0 = (pointer)p->in_tables[0];
16276
 
        pointer it1 = (pointer)p->in_tables[1];
16277
 
        pointer it2 = (pointer)p->in_tables[2];
16278
 
        pointer it3 = (pointer)p->in_tables[3];
16279
 
        pointer it4 = (pointer)p->in_tables[4];
16280
 
        pointer it5 = (pointer)p->in_tables[5];
16281
 
        pointer ot0 = (pointer)p->out_tables[0];
16282
 
        pointer ot1 = (pointer)p->out_tables[1];
16283
 
        pointer ot2 = (pointer)p->out_tables[2];
16284
 
        pointer ot3 = (pointer)p->out_tables[3];
16285
 
        pointer ot4 = (pointer)p->out_tables[4];
16286
 
        pointer ot5 = (pointer)p->out_tables[5];
16287
 
        pointer ot6 = (pointer)p->out_tables[6];
16288
 
        pointer ot7 = (pointer)p->out_tables[7];
16289
 
        pointer im_base = (pointer)p->im_table;
16290
 
        
16291
 
        for(;ip0 < ep; ip0 += 6, op0 += 8) {
16292
 
                unsigned int ova0;      /* Output value accumulator */
16293
 
                unsigned int ova1;      /* Output value accumulator */
16294
 
                unsigned int ova2;      /* Output value accumulator */
16295
 
                unsigned int ova3;      /* Output value accumulator */
16296
 
                {
16297
 
                        pointer imp;
16298
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
16299
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
16300
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
16301
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
16302
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
16303
 
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
16304
 
                        {
16305
 
                                unsigned int ti_i;      /* Interpolation index variable */
16306
 
                                
16307
 
                                ti_i  = IT_IX(it0, ip0[0]);
16308
 
                                wo0   = IT_WO(it0, ip0[0]);
16309
 
                                ti_i += IT_IX(it1, ip0[1]);
16310
 
                                wo1   = IT_WO(it1, ip0[1]);
16311
 
                                ti_i += IT_IX(it2, ip0[2]);
16312
 
                                wo2   = IT_WO(it2, ip0[2]);
16313
 
                                ti_i += IT_IX(it3, ip0[3]);
16314
 
                                wo3   = IT_WO(it3, ip0[3]);
16315
 
                                ti_i += IT_IX(it4, ip0[4]);
16316
 
                                wo4   = IT_WO(it4, ip0[4]);
16317
 
                                ti_i += IT_IX(it5, ip0[5]);
16318
 
                                wo5   = IT_WO(it5, ip0[5]);
16319
 
                                
16320
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
16321
 
                                
16322
 
                                /* Sort weighting values and vertex offset values */
16323
 
                                CEX(wo0, wo1);
16324
 
                                CEX(wo0, wo2);
16325
 
                                CEX(wo0, wo3);
16326
 
                                CEX(wo0, wo4);
16327
 
                                CEX(wo0, wo5);
16328
 
                                CEX(wo1, wo2);
16329
 
                                CEX(wo1, wo3);
16330
 
                                CEX(wo1, wo4);
16331
 
                                CEX(wo1, wo5);
16332
 
                                CEX(wo2, wo3);
16333
 
                                CEX(wo2, wo4);
16334
 
                                CEX(wo2, wo5);
16335
 
                                CEX(wo3, wo4);
16336
 
                                CEX(wo3, wo5);
16337
 
                                CEX(wo4, wo5);
16338
 
                        }
16339
 
                        {
16340
 
                                unsigned int nvof;      /* Next vertex offset value */
16341
 
                                unsigned int vof;       /* Vertex offset value */
16342
 
                                unsigned int vwe;       /* Vertex weighting */
16343
 
                                
16344
 
                                vof = 0;                                /* First vertex offset is 0 */
16345
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
16346
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
16347
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
16348
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
16349
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
16350
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
16351
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
16352
 
                                vof += nvof;                    /* Move to next vertex */
16353
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
16354
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
16355
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
16356
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
16357
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
16358
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
16359
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
16360
 
                                vof += nvof;                    /* Move to next vertex */
16361
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
16362
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
16363
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
16364
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
16365
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
16366
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
16367
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
16368
 
                                vof += nvof;                    /* Move to next vertex */
16369
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
16370
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
16371
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
16372
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
16373
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
16374
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
16375
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
16376
 
                                vof += nvof;                    /* Move to next vertex */
16377
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
16378
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
16379
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
16380
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
16381
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
16382
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
16383
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
16384
 
                                vof += nvof;                    /* Move to next vertex */
16385
 
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
16386
 
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
16387
 
                                vwe = wo4 - wo5;                /* Baricentric weighting */
16388
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
16389
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
16390
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
16391
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
16392
 
                                vof += nvof;                    /* Move to next vertex */
16393
 
                                vwe = wo5;                              /* Baricentric weighting */
16394
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
16395
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
16396
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
16397
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
16398
 
                        }
16399
 
                }
16400
 
                {
16401
 
                        unsigned int oti;       /* Vertex offset value */
16402
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
16403
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
16404
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
16405
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
16406
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
16407
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
16408
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
16409
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
16410
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
16411
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
16412
 
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
16413
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
16414
 
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
16415
 
                        op0[6] = OT_E(ot6, oti);        /* Write result */
16416
 
                        oti = ((ova3 >> 24) & 0xff);    /* Extract integer part of result */
16417
 
                        op0[7] = OT_E(ot7, oti);        /* Write result */
16418
 
                }
16419
 
        }
 
15994
        imdi_imp *p = (imdi_imp *)(s->impl);
 
15995
        unsigned char *ip0 = (unsigned char *)inp[0];
 
15996
        unsigned char *op0 = (unsigned char *)outp[0];
 
15997
        unsigned char *ep = ip0 + npix * 6 ;
 
15998
        pointer it0 = (pointer)p->in_tables[0];
 
15999
        pointer it1 = (pointer)p->in_tables[1];
 
16000
        pointer it2 = (pointer)p->in_tables[2];
 
16001
        pointer it3 = (pointer)p->in_tables[3];
 
16002
        pointer it4 = (pointer)p->in_tables[4];
 
16003
        pointer it5 = (pointer)p->in_tables[5];
 
16004
        pointer ot0 = (pointer)p->out_tables[0];
 
16005
        pointer ot1 = (pointer)p->out_tables[1];
 
16006
        pointer ot2 = (pointer)p->out_tables[2];
 
16007
        pointer ot3 = (pointer)p->out_tables[3];
 
16008
        pointer ot4 = (pointer)p->out_tables[4];
 
16009
        pointer ot5 = (pointer)p->out_tables[5];
 
16010
        pointer ot6 = (pointer)p->out_tables[6];
 
16011
        pointer ot7 = (pointer)p->out_tables[7];
 
16012
        pointer im_base = (pointer)p->im_table;
 
16013
 
 
16014
        for(;ip0 < ep; ip0 += 6, op0 += 8) {
 
16015
                unsigned int ova0;      /* Output value accumulator */
 
16016
                unsigned int ova1;      /* Output value accumulator */
 
16017
                unsigned int ova2;      /* Output value accumulator */
 
16018
                unsigned int ova3;      /* Output value accumulator */
 
16019
                {
 
16020
                        pointer imp;
 
16021
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
16022
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
16023
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
16024
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
16025
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
16026
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
 
16027
                        {
 
16028
                                unsigned int ti_i;      /* Interpolation index variable */
 
16029
 
 
16030
                                ti_i  = IT_IX(it0, ip0[0]);
 
16031
                                wo0   = IT_WO(it0, ip0[0]);
 
16032
                                ti_i += IT_IX(it1, ip0[1]);
 
16033
                                wo1   = IT_WO(it1, ip0[1]);
 
16034
                                ti_i += IT_IX(it2, ip0[2]);
 
16035
                                wo2   = IT_WO(it2, ip0[2]);
 
16036
                                ti_i += IT_IX(it3, ip0[3]);
 
16037
                                wo3   = IT_WO(it3, ip0[3]);
 
16038
                                ti_i += IT_IX(it4, ip0[4]);
 
16039
                                wo4   = IT_WO(it4, ip0[4]);
 
16040
                                ti_i += IT_IX(it5, ip0[5]);
 
16041
                                wo5   = IT_WO(it5, ip0[5]);
 
16042
 
 
16043
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
16044
 
 
16045
                                /* Sort weighting values and vertex offset values */
 
16046
                                CEX(wo0, wo1);
 
16047
                                CEX(wo0, wo2);
 
16048
                                CEX(wo0, wo3);
 
16049
                                CEX(wo0, wo4);
 
16050
                                CEX(wo0, wo5);
 
16051
                                CEX(wo1, wo2);
 
16052
                                CEX(wo1, wo3);
 
16053
                                CEX(wo1, wo4);
 
16054
                                CEX(wo1, wo5);
 
16055
                                CEX(wo2, wo3);
 
16056
                                CEX(wo2, wo4);
 
16057
                                CEX(wo2, wo5);
 
16058
                                CEX(wo3, wo4);
 
16059
                                CEX(wo3, wo5);
 
16060
                                CEX(wo4, wo5);
 
16061
                        }
 
16062
                        {
 
16063
                                unsigned int nvof;      /* Next vertex offset value */
 
16064
                                unsigned int vof;       /* Vertex offset value */
 
16065
                                unsigned int vwe;       /* Vertex weighting */
 
16066
 
 
16067
                                vof = 0;                                /* First vertex offset is 0 */
 
16068
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
16069
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
16070
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
16071
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
16072
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
16073
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
16074
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
16075
                                vof += nvof;                    /* Move to next vertex */
 
16076
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
16077
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
16078
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
16079
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
16080
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
16081
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
16082
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
16083
                                vof += nvof;                    /* Move to next vertex */
 
16084
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
16085
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
16086
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
16087
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
16088
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
16089
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
16090
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
16091
                                vof += nvof;                    /* Move to next vertex */
 
16092
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
16093
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
16094
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
16095
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
16096
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
16097
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
16098
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
16099
                                vof += nvof;                    /* Move to next vertex */
 
16100
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
16101
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
16102
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
16103
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
16104
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
16105
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
16106
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
16107
                                vof += nvof;                    /* Move to next vertex */
 
16108
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
 
16109
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
 
16110
                                vwe = wo4 - wo5;                /* Baricentric weighting */
 
16111
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
16112
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
16113
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
16114
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
16115
                                vof += nvof;                    /* Move to next vertex */
 
16116
                                vwe = wo5;                              /* Baricentric weighting */
 
16117
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
16118
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
16119
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
16120
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
16121
                        }
 
16122
                }
 
16123
                {
 
16124
                        unsigned int oti;       /* Vertex offset value */
 
16125
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
16126
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
16127
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
16128
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
16129
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
16130
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
16131
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
16132
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
16133
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
16134
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
16135
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
 
16136
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
16137
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
 
16138
                        op0[6] = OT_E(ot6, oti);        /* Write result */
 
16139
                        oti = ((ova3 >> 24) & 0xff);    /* Extract integer part of result */
 
16140
                        op0[7] = OT_E(ot7, oti);        /* Write result */
 
16141
                }
 
16142
        }
16420
16143
}
16421
16144
#undef IT_WO
16422
16145
#undef IT_IX
16429
16152
imdi_k47_gen(
16430
16153
genspec *g                      /* structure to be initialised */
16431
16154
) {
16432
 
        static unsigned char data[] = {
16433
 
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
16434
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
16435
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16436
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16437
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16438
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16439
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16440
 
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
16441
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
16442
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
16443
 
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16444
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16445
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16446
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16447
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16448
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16449
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16450
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16451
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16452
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
16453
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16454
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16455
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16456
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16457
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16458
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16459
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16460
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16461
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16462
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16463
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16464
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16465
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16466
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16467
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16468
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16469
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
16470
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
16471
 
                0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16472
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
16473
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
16474
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
16475
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
16476
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
16477
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
16478
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
16479
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
16480
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
16481
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16482
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
16483
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
16484
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x36, 0x5f, 0x38, 0x5f, 
16485
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
16486
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
16487
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
16488
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
16489
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
16490
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
16491
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
16492
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16493
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16494
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16495
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16496
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
16497
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x34, 0x37, 
16498
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16499
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16500
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
16501
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
16502
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
16503
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
16504
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
16505
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
16506
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
16507
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
16508
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
16509
 
                0x00, 0xf0, 0x04, 0x08 
16510
 
        };      /* Structure image */
16511
 
        
16512
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
16155
        static unsigned char data[] = {
 
16156
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
16157
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
16158
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16159
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16160
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16161
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16162
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16163
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
16164
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
16165
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
16166
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16167
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16168
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16169
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16170
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16171
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16172
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16173
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16174
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16175
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
16176
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16177
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16178
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16179
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16180
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16181
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16182
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16183
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16184
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16185
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16186
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16187
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16188
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16189
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16190
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16191
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16192
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
16193
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
16194
                0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16195
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
16196
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
16197
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
16198
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
16199
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
16200
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
16201
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
16202
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
16203
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
16204
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16205
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
16206
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
16207
                0x2c, 0xf3, 0xdc, 0xb7, 0x36, 0x5f, 0x38, 0x5f,
 
16208
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
16209
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
16210
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
16211
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
16212
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
16213
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
16214
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
16215
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16216
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16217
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16218
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16219
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
16220
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x34, 0x37,
 
16221
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16222
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16223
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
16224
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
16225
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
16226
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
16227
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
16228
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
16229
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
16230
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
16231
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
16232
                0x00, 0xf0, 0x04, 0x08
 
16233
        };      /* Structure image */
 
16234
 
 
16235
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
16513
16236
}
16514
16237
 
16515
16238
static void
16516
16239
imdi_k47_tab(
16517
16240
tabspec *t                      /* structure to be initialised */
16518
16241
) {
16519
 
        static unsigned char data[] = {
16520
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
16521
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
16522
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
16523
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
16524
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
16525
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
16526
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16527
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
16528
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
16529
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16530
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
16531
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
16532
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
16533
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
16534
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
16535
 
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
16536
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16537
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
16538
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16539
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16540
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
16541
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
16542
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
16543
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
16544
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16545
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16546
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16547
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16548
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16549
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16550
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16551
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16552
 
                0x08, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff 
16553
 
        };      /* Structure image */
16554
 
        
16555
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
16242
        static unsigned char data[] = {
 
16243
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
16244
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
16245
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
16246
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
16247
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
16248
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
16249
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16250
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
16251
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
16252
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16253
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
16254
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
16255
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
16256
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
16257
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
16258
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
16259
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16260
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
16261
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16262
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16263
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
16264
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
16265
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
16266
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
16267
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16268
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16269
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16270
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16271
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16272
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16273
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16274
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16275
                0x08, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff
 
16276
        };      /* Structure image */
 
16277
 
 
16278
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
16556
16279
}
16557
16280
 
16558
 
 
16559
 
 
16560
 
 
16561
 
 
16562
 
 
16563
16281
/* Integer Multi-Dimensional Interpolation */
16564
16282
/* Interpolation Kernel Code */
16565
16283
/* Generated by cgen */
16568
16286
 
16569
16287
/* see the Licence.txt file for licencing details.*/
16570
16288
 
16571
 
 
16572
16289
/*
16573
16290
   Interpolation kernel specs:
16574
16291
 
16671
16388
void **inp,             /* pointer to input pointers */
16672
16389
unsigned int npix       /* Number of pixels to process */
16673
16390
) {
16674
 
        imdi_imp *p = (imdi_imp *)(s->impl);
16675
 
        unsigned char *ip0 = (unsigned char *)inp[0];
16676
 
        unsigned char *op0 = (unsigned char *)outp[0];
16677
 
        unsigned char *ep = ip0 + npix * 7 ;
16678
 
        pointer it0 = (pointer)p->in_tables[0];
16679
 
        pointer it1 = (pointer)p->in_tables[1];
16680
 
        pointer it2 = (pointer)p->in_tables[2];
16681
 
        pointer it3 = (pointer)p->in_tables[3];
16682
 
        pointer it4 = (pointer)p->in_tables[4];
16683
 
        pointer it5 = (pointer)p->in_tables[5];
16684
 
        pointer it6 = (pointer)p->in_tables[6];
16685
 
        pointer ot0 = (pointer)p->out_tables[0];
16686
 
        pointer ot1 = (pointer)p->out_tables[1];
16687
 
        pointer ot2 = (pointer)p->out_tables[2];
16688
 
        pointer ot3 = (pointer)p->out_tables[3];
16689
 
        pointer ot4 = (pointer)p->out_tables[4];
16690
 
        pointer ot5 = (pointer)p->out_tables[5];
16691
 
        pointer ot6 = (pointer)p->out_tables[6];
16692
 
        pointer ot7 = (pointer)p->out_tables[7];
16693
 
        pointer im_base = (pointer)p->im_table;
16694
 
        
16695
 
        for(;ip0 < ep; ip0 += 7, op0 += 8) {
16696
 
                unsigned int ova0;      /* Output value accumulator */
16697
 
                unsigned int ova1;      /* Output value accumulator */
16698
 
                unsigned int ova2;      /* Output value accumulator */
16699
 
                unsigned int ova3;      /* Output value accumulator */
16700
 
                {
16701
 
                        pointer imp;
16702
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
16703
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
16704
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
16705
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
16706
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
16707
 
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
16708
 
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
16709
 
                        {
16710
 
                                unsigned int ti_i;      /* Interpolation index variable */
16711
 
                                
16712
 
                                ti_i  = IT_IX(it0, ip0[0]);
16713
 
                                wo0   = IT_WO(it0, ip0[0]);
16714
 
                                ti_i += IT_IX(it1, ip0[1]);
16715
 
                                wo1   = IT_WO(it1, ip0[1]);
16716
 
                                ti_i += IT_IX(it2, ip0[2]);
16717
 
                                wo2   = IT_WO(it2, ip0[2]);
16718
 
                                ti_i += IT_IX(it3, ip0[3]);
16719
 
                                wo3   = IT_WO(it3, ip0[3]);
16720
 
                                ti_i += IT_IX(it4, ip0[4]);
16721
 
                                wo4   = IT_WO(it4, ip0[4]);
16722
 
                                ti_i += IT_IX(it5, ip0[5]);
16723
 
                                wo5   = IT_WO(it5, ip0[5]);
16724
 
                                ti_i += IT_IX(it6, ip0[6]);
16725
 
                                wo6   = IT_WO(it6, ip0[6]);
16726
 
                                
16727
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
16728
 
                                
16729
 
                                /* Sort weighting values and vertex offset values */
16730
 
                                CEX(wo0, wo1);
16731
 
                                CEX(wo0, wo2);
16732
 
                                CEX(wo0, wo3);
16733
 
                                CEX(wo0, wo4);
16734
 
                                CEX(wo0, wo5);
16735
 
                                CEX(wo0, wo6);
16736
 
                                CEX(wo1, wo2);
16737
 
                                CEX(wo1, wo3);
16738
 
                                CEX(wo1, wo4);
16739
 
                                CEX(wo1, wo5);
16740
 
                                CEX(wo1, wo6);
16741
 
                                CEX(wo2, wo3);
16742
 
                                CEX(wo2, wo4);
16743
 
                                CEX(wo2, wo5);
16744
 
                                CEX(wo2, wo6);
16745
 
                                CEX(wo3, wo4);
16746
 
                                CEX(wo3, wo5);
16747
 
                                CEX(wo3, wo6);
16748
 
                                CEX(wo4, wo5);
16749
 
                                CEX(wo4, wo6);
16750
 
                                CEX(wo5, wo6);
16751
 
                        }
16752
 
                        {
16753
 
                                unsigned int nvof;      /* Next vertex offset value */
16754
 
                                unsigned int vof;       /* Vertex offset value */
16755
 
                                unsigned int vwe;       /* Vertex weighting */
16756
 
                                
16757
 
                                vof = 0;                                /* First vertex offset is 0 */
16758
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
16759
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
16760
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
16761
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
16762
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
16763
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
16764
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
16765
 
                                vof += nvof;                    /* Move to next vertex */
16766
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
16767
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
16768
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
16769
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
16770
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
16771
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
16772
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
16773
 
                                vof += nvof;                    /* Move to next vertex */
16774
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
16775
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
16776
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
16777
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
16778
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
16779
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
16780
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
16781
 
                                vof += nvof;                    /* Move to next vertex */
16782
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
16783
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
16784
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
16785
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
16786
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
16787
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
16788
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
16789
 
                                vof += nvof;                    /* Move to next vertex */
16790
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
16791
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
16792
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
16793
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
16794
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
16795
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
16796
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
16797
 
                                vof += nvof;                    /* Move to next vertex */
16798
 
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
16799
 
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
16800
 
                                vwe = wo4 - wo5;                /* Baricentric weighting */
16801
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
16802
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
16803
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
16804
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
16805
 
                                vof += nvof;                    /* Move to next vertex */
16806
 
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
16807
 
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
16808
 
                                vwe = wo5 - wo6;                /* Baricentric weighting */
16809
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
16810
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
16811
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
16812
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
16813
 
                                vof += nvof;                    /* Move to next vertex */
16814
 
                                vwe = wo6;                              /* Baricentric weighting */
16815
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
16816
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
16817
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
16818
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
16819
 
                        }
16820
 
                }
16821
 
                {
16822
 
                        unsigned int oti;       /* Vertex offset value */
16823
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
16824
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
16825
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
16826
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
16827
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
16828
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
16829
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
16830
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
16831
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
16832
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
16833
 
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
16834
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
16835
 
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
16836
 
                        op0[6] = OT_E(ot6, oti);        /* Write result */
16837
 
                        oti = ((ova3 >> 24) & 0xff);    /* Extract integer part of result */
16838
 
                        op0[7] = OT_E(ot7, oti);        /* Write result */
16839
 
                }
16840
 
        }
 
16391
        imdi_imp *p = (imdi_imp *)(s->impl);
 
16392
        unsigned char *ip0 = (unsigned char *)inp[0];
 
16393
        unsigned char *op0 = (unsigned char *)outp[0];
 
16394
        unsigned char *ep = ip0 + npix * 7 ;
 
16395
        pointer it0 = (pointer)p->in_tables[0];
 
16396
        pointer it1 = (pointer)p->in_tables[1];
 
16397
        pointer it2 = (pointer)p->in_tables[2];
 
16398
        pointer it3 = (pointer)p->in_tables[3];
 
16399
        pointer it4 = (pointer)p->in_tables[4];
 
16400
        pointer it5 = (pointer)p->in_tables[5];
 
16401
        pointer it6 = (pointer)p->in_tables[6];
 
16402
        pointer ot0 = (pointer)p->out_tables[0];
 
16403
        pointer ot1 = (pointer)p->out_tables[1];
 
16404
        pointer ot2 = (pointer)p->out_tables[2];
 
16405
        pointer ot3 = (pointer)p->out_tables[3];
 
16406
        pointer ot4 = (pointer)p->out_tables[4];
 
16407
        pointer ot5 = (pointer)p->out_tables[5];
 
16408
        pointer ot6 = (pointer)p->out_tables[6];
 
16409
        pointer ot7 = (pointer)p->out_tables[7];
 
16410
        pointer im_base = (pointer)p->im_table;
 
16411
 
 
16412
        for(;ip0 < ep; ip0 += 7, op0 += 8) {
 
16413
                unsigned int ova0;      /* Output value accumulator */
 
16414
                unsigned int ova1;      /* Output value accumulator */
 
16415
                unsigned int ova2;      /* Output value accumulator */
 
16416
                unsigned int ova3;      /* Output value accumulator */
 
16417
                {
 
16418
                        pointer imp;
 
16419
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
16420
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
16421
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
16422
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
16423
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
16424
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
 
16425
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
 
16426
                        {
 
16427
                                unsigned int ti_i;      /* Interpolation index variable */
 
16428
 
 
16429
                                ti_i  = IT_IX(it0, ip0[0]);
 
16430
                                wo0   = IT_WO(it0, ip0[0]);
 
16431
                                ti_i += IT_IX(it1, ip0[1]);
 
16432
                                wo1   = IT_WO(it1, ip0[1]);
 
16433
                                ti_i += IT_IX(it2, ip0[2]);
 
16434
                                wo2   = IT_WO(it2, ip0[2]);
 
16435
                                ti_i += IT_IX(it3, ip0[3]);
 
16436
                                wo3   = IT_WO(it3, ip0[3]);
 
16437
                                ti_i += IT_IX(it4, ip0[4]);
 
16438
                                wo4   = IT_WO(it4, ip0[4]);
 
16439
                                ti_i += IT_IX(it5, ip0[5]);
 
16440
                                wo5   = IT_WO(it5, ip0[5]);
 
16441
                                ti_i += IT_IX(it6, ip0[6]);
 
16442
                                wo6   = IT_WO(it6, ip0[6]);
 
16443
 
 
16444
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
16445
 
 
16446
                                /* Sort weighting values and vertex offset values */
 
16447
                                CEX(wo0, wo1);
 
16448
                                CEX(wo0, wo2);
 
16449
                                CEX(wo0, wo3);
 
16450
                                CEX(wo0, wo4);
 
16451
                                CEX(wo0, wo5);
 
16452
                                CEX(wo0, wo6);
 
16453
                                CEX(wo1, wo2);
 
16454
                                CEX(wo1, wo3);
 
16455
                                CEX(wo1, wo4);
 
16456
                                CEX(wo1, wo5);
 
16457
                                CEX(wo1, wo6);
 
16458
                                CEX(wo2, wo3);
 
16459
                                CEX(wo2, wo4);
 
16460
                                CEX(wo2, wo5);
 
16461
                                CEX(wo2, wo6);
 
16462
                                CEX(wo3, wo4);
 
16463
                                CEX(wo3, wo5);
 
16464
                                CEX(wo3, wo6);
 
16465
                                CEX(wo4, wo5);
 
16466
                                CEX(wo4, wo6);
 
16467
                                CEX(wo5, wo6);
 
16468
                        }
 
16469
                        {
 
16470
                                unsigned int nvof;      /* Next vertex offset value */
 
16471
                                unsigned int vof;       /* Vertex offset value */
 
16472
                                unsigned int vwe;       /* Vertex weighting */
 
16473
 
 
16474
                                vof = 0;                                /* First vertex offset is 0 */
 
16475
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
16476
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
16477
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
16478
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
16479
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
16480
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
16481
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
16482
                                vof += nvof;                    /* Move to next vertex */
 
16483
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
16484
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
16485
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
16486
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
16487
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
16488
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
16489
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
16490
                                vof += nvof;                    /* Move to next vertex */
 
16491
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
16492
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
16493
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
16494
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
16495
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
16496
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
16497
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
16498
                                vof += nvof;                    /* Move to next vertex */
 
16499
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
16500
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
16501
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
16502
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
16503
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
16504
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
16505
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
16506
                                vof += nvof;                    /* Move to next vertex */
 
16507
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
16508
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
16509
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
16510
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
16511
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
16512
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
16513
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
16514
                                vof += nvof;                    /* Move to next vertex */
 
16515
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
 
16516
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
 
16517
                                vwe = wo4 - wo5;                /* Baricentric weighting */
 
16518
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
16519
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
16520
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
16521
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
16522
                                vof += nvof;                    /* Move to next vertex */
 
16523
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
 
16524
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
 
16525
                                vwe = wo5 - wo6;                /* Baricentric weighting */
 
16526
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
16527
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
16528
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
16529
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
16530
                                vof += nvof;                    /* Move to next vertex */
 
16531
                                vwe = wo6;                              /* Baricentric weighting */
 
16532
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
16533
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
16534
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
16535
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
16536
                        }
 
16537
                }
 
16538
                {
 
16539
                        unsigned int oti;       /* Vertex offset value */
 
16540
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
16541
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
16542
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
16543
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
16544
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
16545
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
16546
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
16547
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
16548
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
16549
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
16550
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
 
16551
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
16552
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
 
16553
                        op0[6] = OT_E(ot6, oti);        /* Write result */
 
16554
                        oti = ((ova3 >> 24) & 0xff);    /* Extract integer part of result */
 
16555
                        op0[7] = OT_E(ot7, oti);        /* Write result */
 
16556
                }
 
16557
        }
16841
16558
}
16842
16559
#undef IT_WO
16843
16560
#undef IT_IX
16850
16567
imdi_k48_gen(
16851
16568
genspec *g                      /* structure to be initialised */
16852
16569
) {
16853
 
        static unsigned char data[] = {
16854
 
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
16855
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
16856
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16857
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16858
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16859
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16860
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16861
 
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
16862
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
16863
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
16864
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
16865
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16866
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16867
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16868
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16869
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16870
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16871
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16872
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16873
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
16874
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16875
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16876
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16877
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16878
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16879
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16880
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16881
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16882
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16883
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16884
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16885
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16886
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16887
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16888
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16889
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16890
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
16891
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
16892
 
                0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16893
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
16894
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
16895
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
16896
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
16897
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
16898
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
16899
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
16900
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
16901
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
16902
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16903
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
16904
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
16905
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x37, 0x5f, 0x38, 0x5f, 
16906
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
16907
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
16908
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
16909
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
16910
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
16911
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
16912
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
16913
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16914
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16915
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16916
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16917
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
16918
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x34, 0x38, 
16919
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16920
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16921
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
16922
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
16923
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
16924
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
16925
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
16926
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
16927
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
16928
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
16929
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
16930
 
                0x00, 0xf0, 0x04, 0x08 
16931
 
        };      /* Structure image */
16932
 
        
16933
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
16570
        static unsigned char data[] = {
 
16571
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
16572
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
16573
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16574
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16575
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16576
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16577
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16578
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
16579
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
16580
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
16581
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
16582
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16583
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16584
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16585
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16586
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16587
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16588
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16589
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16590
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
16591
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16592
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16593
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16594
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16595
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16596
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16597
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16598
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16599
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16600
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16601
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16602
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16603
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16604
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16605
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16606
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16607
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
16608
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
16609
                0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16610
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
16611
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
16612
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
16613
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
16614
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
16615
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
16616
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
16617
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
16618
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
16619
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16620
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
16621
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
16622
                0x2c, 0xf3, 0xdc, 0xb7, 0x37, 0x5f, 0x38, 0x5f,
 
16623
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
16624
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
16625
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
16626
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
16627
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
16628
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
16629
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
16630
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16631
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16632
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16633
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16634
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
16635
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x34, 0x38,
 
16636
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16637
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16638
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
16639
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
16640
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
16641
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
16642
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
16643
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
16644
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
16645
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
16646
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
16647
                0x00, 0xf0, 0x04, 0x08
 
16648
        };      /* Structure image */
 
16649
 
 
16650
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
16934
16651
}
16935
16652
 
16936
16653
static void
16937
16654
imdi_k48_tab(
16938
16655
tabspec *t                      /* structure to be initialised */
16939
16656
) {
16940
 
        static unsigned char data[] = {
16941
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
16942
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
16943
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
16944
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
16945
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
16946
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
16947
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16948
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
16949
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
16950
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16951
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
16952
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
16953
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
16954
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
16955
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
16956
 
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
16957
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16958
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
16959
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16960
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16961
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
16962
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
16963
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
16964
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
16965
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16966
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16967
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16968
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
16969
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16970
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16971
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16972
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
16973
 
                0x08, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff 
16974
 
        };      /* Structure image */
16975
 
        
16976
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
16657
        static unsigned char data[] = {
 
16658
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
16659
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
16660
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
16661
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
16662
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
16663
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
16664
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16665
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
16666
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
16667
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16668
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
16669
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
16670
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
16671
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
16672
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
16673
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
16674
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16675
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
16676
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16677
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16678
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
16679
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
16680
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
16681
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
16682
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16683
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16684
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16685
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
16686
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16687
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16688
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16689
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
16690
                0x08, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff
 
16691
        };      /* Structure image */
 
16692
 
 
16693
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
16977
16694
}
16978
16695
 
16979
 
 
16980
 
 
16981
 
 
16982
 
 
16983
 
 
16984
16696
/* Integer Multi-Dimensional Interpolation */
16985
16697
/* Interpolation Kernel Code */
16986
16698
/* Generated by cgen */
16989
16701
 
16990
16702
/* see the Licence.txt file for licencing details.*/
16991
16703
 
16992
 
 
16993
16704
/*
16994
16705
   Interpolation kernel specs:
16995
16706
 
17094
16805
void **inp,             /* pointer to input pointers */
17095
16806
unsigned int npix       /* Number of pixels to process */
17096
16807
) {
17097
 
        imdi_imp *p = (imdi_imp *)(s->impl);
17098
 
        unsigned char *ip0 = (unsigned char *)inp[0];
17099
 
        unsigned char *op0 = (unsigned char *)outp[0];
17100
 
        unsigned char *ep = ip0 + npix * 8 ;
17101
 
        pointer it0 = (pointer)p->in_tables[0];
17102
 
        pointer it1 = (pointer)p->in_tables[1];
17103
 
        pointer it2 = (pointer)p->in_tables[2];
17104
 
        pointer it3 = (pointer)p->in_tables[3];
17105
 
        pointer it4 = (pointer)p->in_tables[4];
17106
 
        pointer it5 = (pointer)p->in_tables[5];
17107
 
        pointer it6 = (pointer)p->in_tables[6];
17108
 
        pointer it7 = (pointer)p->in_tables[7];
17109
 
        pointer ot0 = (pointer)p->out_tables[0];
17110
 
        pointer ot1 = (pointer)p->out_tables[1];
17111
 
        pointer ot2 = (pointer)p->out_tables[2];
17112
 
        pointer ot3 = (pointer)p->out_tables[3];
17113
 
        pointer ot4 = (pointer)p->out_tables[4];
17114
 
        pointer ot5 = (pointer)p->out_tables[5];
17115
 
        pointer ot6 = (pointer)p->out_tables[6];
17116
 
        pointer ot7 = (pointer)p->out_tables[7];
17117
 
        pointer im_base = (pointer)p->im_table;
17118
 
        
17119
 
        for(;ip0 < ep; ip0 += 8, op0 += 8) {
17120
 
                unsigned int ova0;      /* Output value accumulator */
17121
 
                unsigned int ova1;      /* Output value accumulator */
17122
 
                unsigned int ova2;      /* Output value accumulator */
17123
 
                unsigned int ova3;      /* Output value accumulator */
17124
 
                {
17125
 
                        pointer imp;
17126
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
17127
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
17128
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
17129
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
17130
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
17131
 
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
17132
 
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
17133
 
                        unsigned int wo7;       /* Weighting value and vertex offset variable */
17134
 
                        {
17135
 
                                unsigned int ti_i;      /* Interpolation index variable */
17136
 
                                
17137
 
                                ti_i  = IT_IX(it0, ip0[0]);
17138
 
                                wo0   = IT_WO(it0, ip0[0]);
17139
 
                                ti_i += IT_IX(it1, ip0[1]);
17140
 
                                wo1   = IT_WO(it1, ip0[1]);
17141
 
                                ti_i += IT_IX(it2, ip0[2]);
17142
 
                                wo2   = IT_WO(it2, ip0[2]);
17143
 
                                ti_i += IT_IX(it3, ip0[3]);
17144
 
                                wo3   = IT_WO(it3, ip0[3]);
17145
 
                                ti_i += IT_IX(it4, ip0[4]);
17146
 
                                wo4   = IT_WO(it4, ip0[4]);
17147
 
                                ti_i += IT_IX(it5, ip0[5]);
17148
 
                                wo5   = IT_WO(it5, ip0[5]);
17149
 
                                ti_i += IT_IX(it6, ip0[6]);
17150
 
                                wo6   = IT_WO(it6, ip0[6]);
17151
 
                                ti_i += IT_IX(it7, ip0[7]);
17152
 
                                wo7   = IT_WO(it7, ip0[7]);
17153
 
                                
17154
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
17155
 
                                
17156
 
                                /* Sort weighting values and vertex offset values */
17157
 
                                CEX(wo0, wo1);
17158
 
                                CEX(wo0, wo2);
17159
 
                                CEX(wo0, wo3);
17160
 
                                CEX(wo0, wo4);
17161
 
                                CEX(wo0, wo5);
17162
 
                                CEX(wo0, wo6);
17163
 
                                CEX(wo0, wo7);
17164
 
                                CEX(wo1, wo2);
17165
 
                                CEX(wo1, wo3);
17166
 
                                CEX(wo1, wo4);
17167
 
                                CEX(wo1, wo5);
17168
 
                                CEX(wo1, wo6);
17169
 
                                CEX(wo1, wo7);
17170
 
                                CEX(wo2, wo3);
17171
 
                                CEX(wo2, wo4);
17172
 
                                CEX(wo2, wo5);
17173
 
                                CEX(wo2, wo6);
17174
 
                                CEX(wo2, wo7);
17175
 
                                CEX(wo3, wo4);
17176
 
                                CEX(wo3, wo5);
17177
 
                                CEX(wo3, wo6);
17178
 
                                CEX(wo3, wo7);
17179
 
                                CEX(wo4, wo5);
17180
 
                                CEX(wo4, wo6);
17181
 
                                CEX(wo4, wo7);
17182
 
                                CEX(wo5, wo6);
17183
 
                                CEX(wo5, wo7);
17184
 
                                CEX(wo6, wo7);
17185
 
                        }
17186
 
                        {
17187
 
                                unsigned int nvof;      /* Next vertex offset value */
17188
 
                                unsigned int vof;       /* Vertex offset value */
17189
 
                                unsigned int vwe;       /* Vertex weighting */
17190
 
                                
17191
 
                                vof = 0;                                /* First vertex offset is 0 */
17192
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
17193
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
17194
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
17195
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
17196
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
17197
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
17198
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
17199
 
                                vof += nvof;                    /* Move to next vertex */
17200
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
17201
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
17202
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
17203
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
17204
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
17205
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
17206
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
17207
 
                                vof += nvof;                    /* Move to next vertex */
17208
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
17209
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
17210
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
17211
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
17212
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
17213
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
17214
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
17215
 
                                vof += nvof;                    /* Move to next vertex */
17216
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
17217
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
17218
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
17219
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
17220
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
17221
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
17222
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
17223
 
                                vof += nvof;                    /* Move to next vertex */
17224
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
17225
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
17226
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
17227
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
17228
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
17229
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
17230
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
17231
 
                                vof += nvof;                    /* Move to next vertex */
17232
 
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
17233
 
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
17234
 
                                vwe = wo4 - wo5;                /* Baricentric weighting */
17235
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
17236
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
17237
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
17238
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
17239
 
                                vof += nvof;                    /* Move to next vertex */
17240
 
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
17241
 
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
17242
 
                                vwe = wo5 - wo6;                /* Baricentric weighting */
17243
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
17244
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
17245
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
17246
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
17247
 
                                vof += nvof;                    /* Move to next vertex */
17248
 
                                nvof = (wo7 & 0x7fffff);        /* Extract offset value */
17249
 
                                wo7 = (wo7 >> 23);              /* Extract weighting value */
17250
 
                                vwe = wo6 - wo7;                /* Baricentric weighting */
17251
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
17252
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
17253
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
17254
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
17255
 
                                vof += nvof;                    /* Move to next vertex */
17256
 
                                vwe = wo7;                              /* Baricentric weighting */
17257
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
17258
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
17259
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
17260
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
17261
 
                        }
17262
 
                }
17263
 
                {
17264
 
                        unsigned int oti;       /* Vertex offset value */
17265
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
17266
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
17267
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
17268
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
17269
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
17270
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
17271
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
17272
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
17273
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
17274
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
17275
 
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
17276
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
17277
 
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
17278
 
                        op0[6] = OT_E(ot6, oti);        /* Write result */
17279
 
                        oti = ((ova3 >> 24) & 0xff);    /* Extract integer part of result */
17280
 
                        op0[7] = OT_E(ot7, oti);        /* Write result */
17281
 
                }
17282
 
        }
 
16808
        imdi_imp *p = (imdi_imp *)(s->impl);
 
16809
        unsigned char *ip0 = (unsigned char *)inp[0];
 
16810
        unsigned char *op0 = (unsigned char *)outp[0];
 
16811
        unsigned char *ep = ip0 + npix * 8 ;
 
16812
        pointer it0 = (pointer)p->in_tables[0];
 
16813
        pointer it1 = (pointer)p->in_tables[1];
 
16814
        pointer it2 = (pointer)p->in_tables[2];
 
16815
        pointer it3 = (pointer)p->in_tables[3];
 
16816
        pointer it4 = (pointer)p->in_tables[4];
 
16817
        pointer it5 = (pointer)p->in_tables[5];
 
16818
        pointer it6 = (pointer)p->in_tables[6];
 
16819
        pointer it7 = (pointer)p->in_tables[7];
 
16820
        pointer ot0 = (pointer)p->out_tables[0];
 
16821
        pointer ot1 = (pointer)p->out_tables[1];
 
16822
        pointer ot2 = (pointer)p->out_tables[2];
 
16823
        pointer ot3 = (pointer)p->out_tables[3];
 
16824
        pointer ot4 = (pointer)p->out_tables[4];
 
16825
        pointer ot5 = (pointer)p->out_tables[5];
 
16826
        pointer ot6 = (pointer)p->out_tables[6];
 
16827
        pointer ot7 = (pointer)p->out_tables[7];
 
16828
        pointer im_base = (pointer)p->im_table;
 
16829
 
 
16830
        for(;ip0 < ep; ip0 += 8, op0 += 8) {
 
16831
                unsigned int ova0;      /* Output value accumulator */
 
16832
                unsigned int ova1;      /* Output value accumulator */
 
16833
                unsigned int ova2;      /* Output value accumulator */
 
16834
                unsigned int ova3;      /* Output value accumulator */
 
16835
                {
 
16836
                        pointer imp;
 
16837
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
16838
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
16839
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
16840
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
16841
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
16842
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
 
16843
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
 
16844
                        unsigned int wo7;       /* Weighting value and vertex offset variable */
 
16845
                        {
 
16846
                                unsigned int ti_i;      /* Interpolation index variable */
 
16847
 
 
16848
                                ti_i  = IT_IX(it0, ip0[0]);
 
16849
                                wo0   = IT_WO(it0, ip0[0]);
 
16850
                                ti_i += IT_IX(it1, ip0[1]);
 
16851
                                wo1   = IT_WO(it1, ip0[1]);
 
16852
                                ti_i += IT_IX(it2, ip0[2]);
 
16853
                                wo2   = IT_WO(it2, ip0[2]);
 
16854
                                ti_i += IT_IX(it3, ip0[3]);
 
16855
                                wo3   = IT_WO(it3, ip0[3]);
 
16856
                                ti_i += IT_IX(it4, ip0[4]);
 
16857
                                wo4   = IT_WO(it4, ip0[4]);
 
16858
                                ti_i += IT_IX(it5, ip0[5]);
 
16859
                                wo5   = IT_WO(it5, ip0[5]);
 
16860
                                ti_i += IT_IX(it6, ip0[6]);
 
16861
                                wo6   = IT_WO(it6, ip0[6]);
 
16862
                                ti_i += IT_IX(it7, ip0[7]);
 
16863
                                wo7   = IT_WO(it7, ip0[7]);
 
16864
 
 
16865
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
16866
 
 
16867
                                /* Sort weighting values and vertex offset values */
 
16868
                                CEX(wo0, wo1);
 
16869
                                CEX(wo0, wo2);
 
16870
                                CEX(wo0, wo3);
 
16871
                                CEX(wo0, wo4);
 
16872
                                CEX(wo0, wo5);
 
16873
                                CEX(wo0, wo6);
 
16874
                                CEX(wo0, wo7);
 
16875
                                CEX(wo1, wo2);
 
16876
                                CEX(wo1, wo3);
 
16877
                                CEX(wo1, wo4);
 
16878
                                CEX(wo1, wo5);
 
16879
                                CEX(wo1, wo6);
 
16880
                                CEX(wo1, wo7);
 
16881
                                CEX(wo2, wo3);
 
16882
                                CEX(wo2, wo4);
 
16883
                                CEX(wo2, wo5);
 
16884
                                CEX(wo2, wo6);
 
16885
                                CEX(wo2, wo7);
 
16886
                                CEX(wo3, wo4);
 
16887
                                CEX(wo3, wo5);
 
16888
                                CEX(wo3, wo6);
 
16889
                                CEX(wo3, wo7);
 
16890
                                CEX(wo4, wo5);
 
16891
                                CEX(wo4, wo6);
 
16892
                                CEX(wo4, wo7);
 
16893
                                CEX(wo5, wo6);
 
16894
                                CEX(wo5, wo7);
 
16895
                                CEX(wo6, wo7);
 
16896
                        }
 
16897
                        {
 
16898
                                unsigned int nvof;      /* Next vertex offset value */
 
16899
                                unsigned int vof;       /* Vertex offset value */
 
16900
                                unsigned int vwe;       /* Vertex weighting */
 
16901
 
 
16902
                                vof = 0;                                /* First vertex offset is 0 */
 
16903
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
16904
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
16905
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
16906
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
16907
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
16908
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
16909
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
16910
                                vof += nvof;                    /* Move to next vertex */
 
16911
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
16912
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
16913
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
16914
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
16915
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
16916
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
16917
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
16918
                                vof += nvof;                    /* Move to next vertex */
 
16919
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
16920
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
16921
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
16922
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
16923
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
16924
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
16925
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
16926
                                vof += nvof;                    /* Move to next vertex */
 
16927
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
16928
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
16929
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
16930
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
16931
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
16932
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
16933
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
16934
                                vof += nvof;                    /* Move to next vertex */
 
16935
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
16936
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
16937
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
16938
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
16939
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
16940
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
16941
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
16942
                                vof += nvof;                    /* Move to next vertex */
 
16943
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
 
16944
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
 
16945
                                vwe = wo4 - wo5;                /* Baricentric weighting */
 
16946
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
16947
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
16948
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
16949
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
16950
                                vof += nvof;                    /* Move to next vertex */
 
16951
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
 
16952
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
 
16953
                                vwe = wo5 - wo6;                /* Baricentric weighting */
 
16954
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
16955
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
16956
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
16957
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
16958
                                vof += nvof;                    /* Move to next vertex */
 
16959
                                nvof = (wo7 & 0x7fffff);        /* Extract offset value */
 
16960
                                wo7 = (wo7 >> 23);              /* Extract weighting value */
 
16961
                                vwe = wo6 - wo7;                /* Baricentric weighting */
 
16962
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
16963
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
16964
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
16965
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
16966
                                vof += nvof;                    /* Move to next vertex */
 
16967
                                vwe = wo7;                              /* Baricentric weighting */
 
16968
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
16969
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
16970
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
16971
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
16972
                        }
 
16973
                }
 
16974
                {
 
16975
                        unsigned int oti;       /* Vertex offset value */
 
16976
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
16977
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
16978
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
16979
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
16980
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
16981
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
16982
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
16983
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
16984
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
16985
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
16986
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
 
16987
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
16988
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
 
16989
                        op0[6] = OT_E(ot6, oti);        /* Write result */
 
16990
                        oti = ((ova3 >> 24) & 0xff);    /* Extract integer part of result */
 
16991
                        op0[7] = OT_E(ot7, oti);        /* Write result */
 
16992
                }
 
16993
        }
17283
16994
}
17284
16995
#undef IT_WO
17285
16996
#undef IT_IX
17292
17003
imdi_k49_gen(
17293
17004
genspec *g                      /* structure to be initialised */
17294
17005
) {
17295
 
        static unsigned char data[] = {
17296
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17297
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
17298
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17299
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17300
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17301
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17302
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17303
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17304
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17305
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17306
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17307
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17308
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17309
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17310
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17311
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17312
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17313
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17314
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17315
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
17316
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17317
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17318
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17319
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17320
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17321
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17322
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17323
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17324
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17325
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17326
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17327
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17328
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17329
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17330
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17331
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17332
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
17333
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
17334
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17335
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
17336
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
17337
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
17338
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
17339
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
17340
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
17341
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
17342
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
17343
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
17344
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17345
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
17346
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
17347
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x38, 0x5f, 0x38, 0x5f, 
17348
 
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00, 
17349
 
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
17350
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
17351
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
17352
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
17353
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
17354
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
17355
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17356
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17357
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17358
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17359
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
17360
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x34, 0x39, 
17361
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17362
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17363
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
17364
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
17365
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
17366
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
17367
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
17368
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
17369
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
17370
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
17371
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
17372
 
                0x00, 0xf0, 0x04, 0x08 
17373
 
        };      /* Structure image */
17374
 
        
17375
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
17006
        static unsigned char data[] = {
 
17007
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17008
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
17009
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17010
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17011
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17012
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17013
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17014
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17015
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17016
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17017
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17018
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17019
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17020
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17021
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17022
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17023
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17024
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17025
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17026
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
17027
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17028
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17029
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17030
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17031
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17032
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17033
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17034
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17035
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17036
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17037
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17038
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17039
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17040
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17041
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17042
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17043
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
17044
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
17045
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17046
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
17047
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
17048
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
17049
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
17050
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
17051
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
17052
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
17053
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
17054
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
17055
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17056
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
17057
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
17058
                0x2c, 0xf3, 0xdc, 0xb7, 0x38, 0x5f, 0x38, 0x5f,
 
17059
                0x69, 0x38, 0x5f, 0x69, 0x38, 0x5f, 0x66, 0x00,
 
17060
                0x8e, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
17061
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
17062
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
17063
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
17064
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
17065
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
17066
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17067
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17068
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17069
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17070
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
17071
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x34, 0x39,
 
17072
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17073
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17074
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
17075
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
17076
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
17077
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
17078
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
17079
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
17080
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
17081
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
17082
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
17083
                0x00, 0xf0, 0x04, 0x08
 
17084
        };      /* Structure image */
 
17085
 
 
17086
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
17376
17087
}
17377
17088
 
17378
17089
static void
17379
17090
imdi_k49_tab(
17380
17091
tabspec *t                      /* structure to be initialised */
17381
17092
) {
17382
 
        static unsigned char data[] = {
17383
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
17384
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
17385
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
17386
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
17387
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
17388
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
17389
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17390
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
17391
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
17392
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17393
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
17394
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
17395
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
17396
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
17397
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
17398
 
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
17399
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17400
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
17401
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17402
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17403
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
17404
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
17405
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
17406
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
17407
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17408
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17409
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17410
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17411
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17412
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17413
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17414
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17415
 
                0x08, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff 
17416
 
        };      /* Structure image */
17417
 
        
17418
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
17093
        static unsigned char data[] = {
 
17094
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
17095
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
17096
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
17097
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
17098
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
17099
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
17100
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17101
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
17102
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
17103
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17104
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
17105
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
17106
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
17107
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
17108
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
17109
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
17110
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17111
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
17112
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17113
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17114
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
17115
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
17116
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
17117
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
17118
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17119
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17120
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17121
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17122
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17123
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17124
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17125
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17126
                0x08, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff
 
17127
        };      /* Structure image */
 
17128
 
 
17129
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
17419
17130
}
17420
17131
 
17421
 
 
17422
 
 
17423
 
 
17424
 
 
17425
 
 
17426
17132
/* Integer Multi-Dimensional Interpolation */
17427
17133
/* Interpolation Kernel Code */
17428
17134
/* Generated by cgen */
17431
17137
 
17432
17138
/* see the Licence.txt file for licencing details.*/
17433
17139
 
17434
 
 
17435
17140
/*
17436
17141
   Interpolation kernel specs:
17437
17142
 
17509
17214
void **inp,             /* pointer to input pointers */
17510
17215
unsigned int npix       /* Number of pixels to process */
17511
17216
) {
17512
 
        imdi_imp *p = (imdi_imp *)(s->impl);
17513
 
        unsigned char *ip0 = (unsigned char *)inp[0];
17514
 
        unsigned short *op0 = (unsigned short *)outp[0];
17515
 
        unsigned char *ep = ip0 + npix * 1 ;
17516
 
        pointer it0 = (pointer)p->in_tables[0];
17517
 
        pointer ot0 = (pointer)p->out_tables[0];
17518
 
        pointer sw_base = (pointer)p->sw_table;
17519
 
        pointer im_base = (pointer)p->im_table;
17520
 
        
17521
 
        for(;ip0 < ep; ip0 += 1, op0 += 1) {
17522
 
                unsigned int ova0;      /* Output value partial accumulator */
17523
 
                {
17524
 
                        pointer swp;
17525
 
                        pointer imp;
17526
 
                        {
17527
 
                                unsigned int ti;        /* Simplex+Interpolation index variable */
17528
 
                                
17529
 
                                ti  = IT_IT(it0, ip0[0]);
17530
 
                                
17531
 
                                imp = im_base + IM_O(ti >> 0);          /* Extract interp. index and comp. entry */
17532
 
                                swp = sw_base + SW_O(ti & 0x0); /* Extract simplex index and comp. entry */
17533
 
                        }
17534
 
                        {
17535
 
                                unsigned int vowr;      /* Vertex offset/weight value */
17536
 
                                unsigned int vof;       /* Vertex offset value */
17537
 
                                unsigned int vwe;       /* Vertex weighting */
17538
 
                                
17539
 
                                vowr = SX_WO(swp, 0);   /* Read vertex offset+weighting values */
17540
 
                                vof = (vowr & 0x7f);    /* Extract offset value */
17541
 
                                vwe = (vowr >> 7);      /* Extract weighting value */
17542
 
                                ova0  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
17543
 
                                vowr = SX_WO(swp, 1);   /* Read vertex offset+weighting values */
17544
 
                                vof = (vowr & 0x7f);    /* Extract offset value */
17545
 
                                vwe = (vowr >> 7);      /* Extract weighting value */
17546
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
17547
 
                        }
17548
 
                }
17549
 
                {
17550
 
                        unsigned int oti;       /* Vertex offset value */
17551
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
17552
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
17553
 
                }
17554
 
        }
 
17217
        imdi_imp *p = (imdi_imp *)(s->impl);
 
17218
        unsigned char *ip0 = (unsigned char *)inp[0];
 
17219
        unsigned short *op0 = (unsigned short *)outp[0];
 
17220
        unsigned char *ep = ip0 + npix * 1 ;
 
17221
        pointer it0 = (pointer)p->in_tables[0];
 
17222
        pointer ot0 = (pointer)p->out_tables[0];
 
17223
        pointer sw_base = (pointer)p->sw_table;
 
17224
        pointer im_base = (pointer)p->im_table;
 
17225
 
 
17226
        for(;ip0 < ep; ip0 += 1, op0 += 1) {
 
17227
                unsigned int ova0;      /* Output value partial accumulator */
 
17228
                {
 
17229
                        pointer swp;
 
17230
                        pointer imp;
 
17231
                        {
 
17232
                                unsigned int ti;        /* Simplex+Interpolation index variable */
 
17233
 
 
17234
                                ti  = IT_IT(it0, ip0[0]);
 
17235
 
 
17236
                                imp = im_base + IM_O(ti >> 0);          /* Extract interp. index and comp. entry */
 
17237
                                swp = sw_base + SW_O(ti & 0x0); /* Extract simplex index and comp. entry */
 
17238
                        }
 
17239
                        {
 
17240
                                unsigned int vowr;      /* Vertex offset/weight value */
 
17241
                                unsigned int vof;       /* Vertex offset value */
 
17242
                                unsigned int vwe;       /* Vertex weighting */
 
17243
 
 
17244
                                vowr = SX_WO(swp, 0);   /* Read vertex offset+weighting values */
 
17245
                                vof = (vowr & 0x7f);    /* Extract offset value */
 
17246
                                vwe = (vowr >> 7);      /* Extract weighting value */
 
17247
                                ova0  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
17248
                                vowr = SX_WO(swp, 1);   /* Read vertex offset+weighting values */
 
17249
                                vof = (vowr & 0x7f);    /* Extract offset value */
 
17250
                                vwe = (vowr >> 7);      /* Extract weighting value */
 
17251
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
17252
                        }
 
17253
                }
 
17254
                {
 
17255
                        unsigned int oti;       /* Vertex offset value */
 
17256
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
17257
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
17258
                }
 
17259
        }
17555
17260
}
17556
17261
#undef IT_IT
17557
17262
#undef SW_O
17564
17269
imdi_k50_gen(
17565
17270
genspec *g                      /* structure to be initialised */
17566
17271
) {
17567
 
        static unsigned char data[] = {
17568
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
17569
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
17570
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17571
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17572
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17573
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17574
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17575
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
17576
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17577
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17578
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17579
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17580
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17581
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17582
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17583
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17584
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17585
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17586
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17587
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
17588
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
17589
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17590
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17591
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17592
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
17593
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17594
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17595
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17596
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17597
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17598
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17599
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17600
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
17601
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17602
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17603
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17604
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
17605
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
17606
 
                0xff, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
17607
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
17608
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
17609
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
17610
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
17611
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
17612
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
17613
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
17614
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
17615
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
17616
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17617
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
17618
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
17619
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x31, 0x5f, 0x31, 0x5f, 
17620
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
17621
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
17622
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
17623
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
17624
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
17625
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
17626
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
17627
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17628
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17629
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17630
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17631
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
17632
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x35, 0x30, 
17633
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17634
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17635
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
17636
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
17637
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
17638
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
17639
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
17640
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
17641
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
17642
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
17643
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
17644
 
                0x00, 0xf0, 0x04, 0x08 
17645
 
        };      /* Structure image */
17646
 
        
17647
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
17272
        static unsigned char data[] = {
 
17273
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
17274
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
17275
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17276
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17277
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17278
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17279
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17280
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
17281
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17282
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17283
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17284
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17285
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17286
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17287
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17288
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17289
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17290
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17291
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17292
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
17293
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
17294
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17295
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17296
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17297
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
17298
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17299
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17300
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17301
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17302
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17303
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17304
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17305
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
17306
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17307
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17308
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17309
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
17310
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
17311
                0xff, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
17312
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
17313
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
17314
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
17315
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
17316
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
17317
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
17318
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
17319
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
17320
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
17321
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17322
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
17323
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
17324
                0x2c, 0xf3, 0xdc, 0xb7, 0x31, 0x5f, 0x31, 0x5f,
 
17325
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
17326
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
17327
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
17328
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
17329
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
17330
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
17331
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
17332
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17333
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17334
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17335
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17336
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
17337
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x35, 0x30,
 
17338
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17339
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17340
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
17341
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
17342
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
17343
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
17344
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
17345
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
17346
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
17347
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
17348
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
17349
                0x00, 0xf0, 0x04, 0x08
 
17350
        };      /* Structure image */
 
17351
 
 
17352
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
17648
17353
}
17649
17354
 
17650
17355
static void
17651
17356
imdi_k50_tab(
17652
17357
tabspec *t                      /* structure to be initialised */
17653
17358
) {
17654
 
        static unsigned char data[] = {
17655
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17656
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
17657
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
17658
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
17659
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
17660
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
17661
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
17662
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
17663
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17664
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17665
 
                0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
17666
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17667
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
17668
 
                0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
17669
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
17670
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
17671
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
17672
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17673
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
17674
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
17675
 
                0x00, 0x00, 0x00, 0x00, 0xa1, 0xd4, 0xe2, 0xb7, 
17676
 
                0xf4, 0xd5, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
17677
 
                0xff, 0xff, 0xff, 0x31, 0x00, 0x00, 0x00, 0x00, 
17678
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
17679
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17680
 
                0xa0, 0xd6, 0x83, 0xbf, 0x8b, 0x22, 0xe2, 0xb7, 
17681
 
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08, 
17682
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
17683
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
17684
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
17685
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
17686
 
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
17687
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
17688
 
        };      /* Structure image */
17689
 
        
17690
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
17359
        static unsigned char data[] = {
 
17360
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17361
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
17362
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
17363
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
17364
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
17365
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
17366
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
17367
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
17368
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17369
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17370
                0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
17371
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17372
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
17373
                0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
17374
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
17375
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
17376
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
17377
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17378
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
17379
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
17380
                0x00, 0x00, 0x00, 0x00, 0xa1, 0xd4, 0xe2, 0xb7,
 
17381
                0xf4, 0xd5, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
17382
                0xff, 0xff, 0xff, 0x31, 0x00, 0x00, 0x00, 0x00,
 
17383
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
17384
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17385
                0xa0, 0xd6, 0x83, 0xbf, 0x8b, 0x22, 0xe2, 0xb7,
 
17386
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08,
 
17387
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
17388
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
17389
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
17390
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
17391
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
17392
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
17393
        };      /* Structure image */
 
17394
 
 
17395
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
17691
17396
}
17692
17397
 
17693
 
 
17694
 
 
17695
 
 
17696
 
 
17697
 
 
17698
17398
/* Integer Multi-Dimensional Interpolation */
17699
17399
/* Interpolation Kernel Code */
17700
17400
/* Generated by cgen */
17703
17403
 
17704
17404
/* see the Licence.txt file for licencing details.*/
17705
17405
 
17706
 
 
17707
17406
/*
17708
17407
   Interpolation kernel specs:
17709
17408
 
17788
17487
void **inp,             /* pointer to input pointers */
17789
17488
unsigned int npix       /* Number of pixels to process */
17790
17489
) {
17791
 
        imdi_imp *p = (imdi_imp *)(s->impl);
17792
 
        unsigned char *ip0 = (unsigned char *)inp[0];
17793
 
        unsigned short *op0 = (unsigned short *)outp[0];
17794
 
        unsigned char *ep = ip0 + npix * 3 ;
17795
 
        pointer it0 = (pointer)p->in_tables[0];
17796
 
        pointer it1 = (pointer)p->in_tables[1];
17797
 
        pointer it2 = (pointer)p->in_tables[2];
17798
 
        pointer ot0 = (pointer)p->out_tables[0];
17799
 
        pointer sw_base = (pointer)p->sw_table;
17800
 
        pointer im_base = (pointer)p->im_table;
17801
 
        
17802
 
        for(;ip0 < ep; ip0 += 3, op0 += 1) {
17803
 
                unsigned int ova0;      /* Output value partial accumulator */
17804
 
                {
17805
 
                        pointer swp;
17806
 
                        pointer imp;
17807
 
                        {
17808
 
                                unsigned int ti;        /* Simplex+Interpolation index variable */
17809
 
                                
17810
 
                                ti  = IT_IT(it0, ip0[0]);
17811
 
                                ti += IT_IT(it1, ip0[1]);
17812
 
                                ti += IT_IT(it2, ip0[2]);
17813
 
                                
17814
 
                                imp = im_base + IM_O(ti >> 12);         /* Extract interp. index and comp. entry */
17815
 
                                swp = sw_base + SW_O(ti & 0xfff);       /* Extract simplex index and comp. entry */
17816
 
                        }
17817
 
                        {
17818
 
                                unsigned int vof;       /* Vertex offset value */
17819
 
                                unsigned int vwe;       /* Vertex weighting */
17820
 
                                
17821
 
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
17822
 
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
17823
 
                                ova0  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
17824
 
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
17825
 
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
17826
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
17827
 
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
17828
 
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
17829
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
17830
 
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
17831
 
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
17832
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
17833
 
                        }
17834
 
                }
17835
 
                {
17836
 
                        unsigned int oti;       /* Vertex offset value */
17837
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
17838
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
17839
 
                }
17840
 
        }
 
17490
        imdi_imp *p = (imdi_imp *)(s->impl);
 
17491
        unsigned char *ip0 = (unsigned char *)inp[0];
 
17492
        unsigned short *op0 = (unsigned short *)outp[0];
 
17493
        unsigned char *ep = ip0 + npix * 3 ;
 
17494
        pointer it0 = (pointer)p->in_tables[0];
 
17495
        pointer it1 = (pointer)p->in_tables[1];
 
17496
        pointer it2 = (pointer)p->in_tables[2];
 
17497
        pointer ot0 = (pointer)p->out_tables[0];
 
17498
        pointer sw_base = (pointer)p->sw_table;
 
17499
        pointer im_base = (pointer)p->im_table;
 
17500
 
 
17501
        for(;ip0 < ep; ip0 += 3, op0 += 1) {
 
17502
                unsigned int ova0;      /* Output value partial accumulator */
 
17503
                {
 
17504
                        pointer swp;
 
17505
                        pointer imp;
 
17506
                        {
 
17507
                                unsigned int ti;        /* Simplex+Interpolation index variable */
 
17508
 
 
17509
                                ti  = IT_IT(it0, ip0[0]);
 
17510
                                ti += IT_IT(it1, ip0[1]);
 
17511
                                ti += IT_IT(it2, ip0[2]);
 
17512
 
 
17513
                                imp = im_base + IM_O(ti >> 12);         /* Extract interp. index and comp. entry */
 
17514
                                swp = sw_base + SW_O(ti & 0xfff);       /* Extract simplex index and comp. entry */
 
17515
                        }
 
17516
                        {
 
17517
                                unsigned int vof;       /* Vertex offset value */
 
17518
                                unsigned int vwe;       /* Vertex weighting */
 
17519
 
 
17520
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
 
17521
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
 
17522
                                ova0  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
17523
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
 
17524
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
 
17525
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
17526
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
 
17527
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
 
17528
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
17529
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
 
17530
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
 
17531
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
17532
                        }
 
17533
                }
 
17534
                {
 
17535
                        unsigned int oti;       /* Vertex offset value */
 
17536
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
17537
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
17538
                }
 
17539
        }
17841
17540
}
17842
17541
#undef IT_IT
17843
17542
#undef SW_O
17851
17550
imdi_k51_gen(
17852
17551
genspec *g                      /* structure to be initialised */
17853
17552
) {
17854
 
        static unsigned char data[] = {
17855
 
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
17856
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
17857
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17858
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17859
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17860
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17861
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17862
 
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
17863
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
17864
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17865
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17866
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17867
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17868
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17869
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17870
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17871
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17872
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17873
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17874
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
17875
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
17876
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17877
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17878
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17879
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
17880
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17881
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17882
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17883
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17884
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17885
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17886
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17887
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
17888
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17889
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17890
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
17891
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
17892
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
17893
 
                0x65, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
17894
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
17895
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
17896
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
17897
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
17898
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
17899
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
17900
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
17901
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
17902
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
17903
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17904
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
17905
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
17906
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x33, 0x5f, 0x31, 0x5f, 
17907
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
17908
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
17909
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
17910
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
17911
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
17912
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
17913
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
17914
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17915
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17916
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17917
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17918
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
17919
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x35, 0x31, 
17920
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17921
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17922
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
17923
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
17924
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
17925
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
17926
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
17927
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
17928
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
17929
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
17930
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
17931
 
                0x00, 0xf0, 0x04, 0x08 
17932
 
        };      /* Structure image */
17933
 
        
17934
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
17553
        static unsigned char data[] = {
 
17554
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
17555
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
17556
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17557
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17558
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17559
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17560
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17561
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
17562
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
17563
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17564
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17565
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17566
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17567
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17568
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17569
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17570
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17571
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17572
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17573
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
17574
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
17575
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17576
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17577
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17578
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
17579
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17580
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17581
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17582
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17583
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17584
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17585
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17586
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
17587
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17588
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17589
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17590
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
17591
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
17592
                0x65, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
17593
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
17594
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
17595
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
17596
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
17597
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
17598
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
17599
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
17600
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
17601
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
17602
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17603
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
17604
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
17605
                0x2c, 0xf3, 0xdc, 0xb7, 0x33, 0x5f, 0x31, 0x5f,
 
17606
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
17607
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
17608
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
17609
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
17610
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
17611
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
17612
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
17613
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17614
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17615
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17616
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17617
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
17618
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x35, 0x31,
 
17619
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17620
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17621
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
17622
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
17623
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
17624
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
17625
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
17626
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
17627
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
17628
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
17629
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
17630
                0x00, 0xf0, 0x04, 0x08
 
17631
        };      /* Structure image */
 
17632
 
 
17633
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
17935
17634
}
17936
17635
 
17937
17636
static void
17938
17637
imdi_k51_tab(
17939
17638
tabspec *t                      /* structure to be initialised */
17940
17639
) {
17941
 
        static unsigned char data[] = {
17942
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17943
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
17944
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
17945
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
17946
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
17947
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
17948
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
17949
 
                0x14, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
17950
 
                0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 
17951
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17952
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
17953
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17954
 
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
17955
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
17956
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
17957
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
17958
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
17959
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17960
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
17961
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
17962
 
                0x00, 0x00, 0x00, 0x00, 0xa1, 0xd4, 0xe2, 0xb7, 
17963
 
                0xf4, 0xd5, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
17964
 
                0xff, 0xff, 0xff, 0x31, 0x00, 0x00, 0x00, 0x00, 
17965
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
17966
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
17967
 
                0xa0, 0xd6, 0x83, 0xbf, 0x8b, 0x22, 0xe2, 0xb7, 
17968
 
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08, 
17969
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
17970
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
17971
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
17972
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
17973
 
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
17974
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
17975
 
        };      /* Structure image */
17976
 
        
17977
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
17640
        static unsigned char data[] = {
 
17641
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17642
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
17643
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
17644
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
17645
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
17646
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
17647
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
17648
                0x14, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
17649
                0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
 
17650
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17651
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
17652
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17653
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
17654
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
17655
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
17656
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
17657
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
17658
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17659
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
17660
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
17661
                0x00, 0x00, 0x00, 0x00, 0xa1, 0xd4, 0xe2, 0xb7,
 
17662
                0xf4, 0xd5, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
17663
                0xff, 0xff, 0xff, 0x31, 0x00, 0x00, 0x00, 0x00,
 
17664
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
17665
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17666
                0xa0, 0xd6, 0x83, 0xbf, 0x8b, 0x22, 0xe2, 0xb7,
 
17667
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08,
 
17668
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
17669
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
17670
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
17671
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
17672
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
17673
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
17674
        };      /* Structure image */
 
17675
 
 
17676
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
17978
17677
}
17979
17678
 
17980
 
 
17981
 
 
17982
 
 
17983
 
 
17984
 
 
17985
17679
/* Integer Multi-Dimensional Interpolation */
17986
17680
/* Interpolation Kernel Code */
17987
17681
/* Generated by cgen */
17990
17684
 
17991
17685
/* see the Licence.txt file for licencing details.*/
17992
17686
 
17993
 
 
17994
17687
/*
17995
17688
   Interpolation kernel specs:
17996
17689
 
18080
17773
void **inp,             /* pointer to input pointers */
18081
17774
unsigned int npix       /* Number of pixels to process */
18082
17775
) {
18083
 
        imdi_imp *p = (imdi_imp *)(s->impl);
18084
 
        unsigned char *ip0 = (unsigned char *)inp[0];
18085
 
        unsigned short *op0 = (unsigned short *)outp[0];
18086
 
        unsigned char *ep = ip0 + npix * 4 ;
18087
 
        pointer it0 = (pointer)p->in_tables[0];
18088
 
        pointer it1 = (pointer)p->in_tables[1];
18089
 
        pointer it2 = (pointer)p->in_tables[2];
18090
 
        pointer it3 = (pointer)p->in_tables[3];
18091
 
        pointer ot0 = (pointer)p->out_tables[0];
18092
 
        pointer sw_base = (pointer)p->sw_table;
18093
 
        pointer im_base = (pointer)p->im_table;
18094
 
        
18095
 
        for(;ip0 < ep; ip0 += 4, op0 += 1) {
18096
 
                unsigned int ova0;      /* Output value partial accumulator */
18097
 
                {
18098
 
                        pointer swp;
18099
 
                        pointer imp;
18100
 
                        {
18101
 
                                unsigned int ti_s;      /* Simplex index variable */
18102
 
                                unsigned int ti_i;      /* Interpolation index variable */
18103
 
                                
18104
 
                                ti_i  = IT_IX(it0, ip0[0]);
18105
 
                                ti_s  = IT_SX(it0, ip0[0]);
18106
 
                                ti_i += IT_IX(it1, ip0[1]);
18107
 
                                ti_s += IT_SX(it1, ip0[1]);
18108
 
                                ti_i += IT_IX(it2, ip0[2]);
18109
 
                                ti_s += IT_SX(it2, ip0[2]);
18110
 
                                ti_i += IT_IX(it3, ip0[3]);
18111
 
                                ti_s += IT_SX(it3, ip0[3]);
18112
 
                                
18113
 
                                swp = sw_base + SW_O(ti_s);             /* Compute simplex table entry pointer */
18114
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
18115
 
                        }
18116
 
                        {
18117
 
                                unsigned int vof;       /* Vertex offset value */
18118
 
                                unsigned int vwe;       /* Vertex weighting */
18119
 
                                
18120
 
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
18121
 
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
18122
 
                                ova0  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
18123
 
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
18124
 
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
18125
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
18126
 
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
18127
 
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
18128
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
18129
 
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
18130
 
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
18131
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
18132
 
                                vof = SX_VO(swp, 4);    /* Read vertex offset value */
18133
 
                                vwe = SX_WE(swp, 4);    /* Read vertex weighting value */
18134
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
18135
 
                        }
18136
 
                }
18137
 
                {
18138
 
                        unsigned int oti;       /* Vertex offset value */
18139
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
18140
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
18141
 
                }
18142
 
        }
 
17776
        imdi_imp *p = (imdi_imp *)(s->impl);
 
17777
        unsigned char *ip0 = (unsigned char *)inp[0];
 
17778
        unsigned short *op0 = (unsigned short *)outp[0];
 
17779
        unsigned char *ep = ip0 + npix * 4 ;
 
17780
        pointer it0 = (pointer)p->in_tables[0];
 
17781
        pointer it1 = (pointer)p->in_tables[1];
 
17782
        pointer it2 = (pointer)p->in_tables[2];
 
17783
        pointer it3 = (pointer)p->in_tables[3];
 
17784
        pointer ot0 = (pointer)p->out_tables[0];
 
17785
        pointer sw_base = (pointer)p->sw_table;
 
17786
        pointer im_base = (pointer)p->im_table;
 
17787
 
 
17788
        for(;ip0 < ep; ip0 += 4, op0 += 1) {
 
17789
                unsigned int ova0;      /* Output value partial accumulator */
 
17790
                {
 
17791
                        pointer swp;
 
17792
                        pointer imp;
 
17793
                        {
 
17794
                                unsigned int ti_s;      /* Simplex index variable */
 
17795
                                unsigned int ti_i;      /* Interpolation index variable */
 
17796
 
 
17797
                                ti_i  = IT_IX(it0, ip0[0]);
 
17798
                                ti_s  = IT_SX(it0, ip0[0]);
 
17799
                                ti_i += IT_IX(it1, ip0[1]);
 
17800
                                ti_s += IT_SX(it1, ip0[1]);
 
17801
                                ti_i += IT_IX(it2, ip0[2]);
 
17802
                                ti_s += IT_SX(it2, ip0[2]);
 
17803
                                ti_i += IT_IX(it3, ip0[3]);
 
17804
                                ti_s += IT_SX(it3, ip0[3]);
 
17805
 
 
17806
                                swp = sw_base + SW_O(ti_s);             /* Compute simplex table entry pointer */
 
17807
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
17808
                        }
 
17809
                        {
 
17810
                                unsigned int vof;       /* Vertex offset value */
 
17811
                                unsigned int vwe;       /* Vertex weighting */
 
17812
 
 
17813
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
 
17814
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
 
17815
                                ova0  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
17816
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
 
17817
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
 
17818
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
17819
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
 
17820
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
 
17821
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
17822
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
 
17823
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
 
17824
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
17825
                                vof = SX_VO(swp, 4);    /* Read vertex offset value */
 
17826
                                vwe = SX_WE(swp, 4);    /* Read vertex weighting value */
 
17827
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
17828
                        }
 
17829
                }
 
17830
                {
 
17831
                        unsigned int oti;       /* Vertex offset value */
 
17832
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
17833
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
17834
                }
 
17835
        }
18143
17836
}
18144
17837
#undef IT_IX
18145
17838
#undef IT_SX
18154
17847
imdi_k52_gen(
18155
17848
genspec *g                      /* structure to be initialised */
18156
17849
) {
18157
 
        static unsigned char data[] = {
18158
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
18159
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
18160
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18161
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18162
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18163
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18164
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18165
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
18166
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
18167
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18168
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18169
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18170
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18171
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18172
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18173
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18174
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18175
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18176
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18177
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
18178
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
18179
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18180
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18181
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18182
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
18183
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18184
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18185
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18186
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18187
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18188
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18189
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18190
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
18191
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18192
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18193
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18194
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
18195
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
18196
 
                0x27, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 
18197
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
18198
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
18199
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
18200
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
18201
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
18202
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
18203
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
18204
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
18205
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
18206
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18207
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
18208
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
18209
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x34, 0x5f, 0x31, 0x5f, 
18210
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
18211
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
18212
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
18213
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
18214
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
18215
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
18216
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
18217
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18218
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18219
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18220
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18221
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
18222
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x35, 0x32, 
18223
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18224
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18225
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
18226
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
18227
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
18228
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
18229
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
18230
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
18231
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
18232
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
18233
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
18234
 
                0x00, 0xf0, 0x04, 0x08 
18235
 
        };      /* Structure image */
18236
 
        
18237
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
17850
        static unsigned char data[] = {
 
17851
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
17852
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
17853
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17854
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17855
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17856
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17857
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17858
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
17859
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
17860
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17861
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17862
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17863
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17864
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17865
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17866
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17867
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17868
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17869
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17870
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
17871
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
17872
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17873
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17874
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17875
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
17876
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17877
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17878
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17879
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17880
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17881
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17882
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17883
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
17884
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17885
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17886
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17887
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
17888
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
17889
                0x27, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00,
 
17890
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
17891
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
17892
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
17893
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
17894
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
17895
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
17896
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
17897
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
17898
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
17899
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17900
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
17901
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
17902
                0x2c, 0xf3, 0xdc, 0xb7, 0x34, 0x5f, 0x31, 0x5f,
 
17903
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
17904
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
17905
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
17906
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
17907
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
17908
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
17909
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
17910
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17911
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17912
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17913
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17914
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
17915
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x35, 0x32,
 
17916
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17917
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17918
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
17919
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
17920
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
17921
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
17922
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
17923
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
17924
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
17925
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
17926
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
17927
                0x00, 0xf0, 0x04, 0x08
 
17928
        };      /* Structure image */
 
17929
 
 
17930
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
18238
17931
}
18239
17932
 
18240
17933
static void
18241
17934
imdi_k52_tab(
18242
17935
tabspec *t                      /* structure to be initialised */
18243
17936
) {
18244
 
        static unsigned char data[] = {
18245
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
18246
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
18247
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
18248
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
18249
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
18250
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
18251
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18252
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
18253
 
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
18254
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18255
 
                0x14, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
18256
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18257
 
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
18258
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
18259
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
18260
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
18261
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
18262
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18263
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
18264
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
18265
 
                0x00, 0x00, 0x00, 0x00, 0xa1, 0xd4, 0xe2, 0xb7, 
18266
 
                0xf4, 0xd5, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
18267
 
                0xff, 0xff, 0xff, 0x31, 0x00, 0x00, 0x00, 0x00, 
18268
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
18269
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18270
 
                0xa0, 0xd6, 0x83, 0xbf, 0x8b, 0x22, 0xe2, 0xb7, 
18271
 
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08, 
18272
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
18273
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
18274
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
18275
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
18276
 
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
18277
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
18278
 
        };      /* Structure image */
18279
 
        
18280
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
17937
        static unsigned char data[] = {
 
17938
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
17939
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
17940
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
17941
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
17942
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
17943
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
17944
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
17945
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
17946
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
17947
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17948
                0x14, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
17949
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17950
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
17951
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
17952
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
17953
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
17954
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
17955
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17956
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
17957
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
17958
                0x00, 0x00, 0x00, 0x00, 0xa1, 0xd4, 0xe2, 0xb7,
 
17959
                0xf4, 0xd5, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
17960
                0xff, 0xff, 0xff, 0x31, 0x00, 0x00, 0x00, 0x00,
 
17961
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
17962
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
17963
                0xa0, 0xd6, 0x83, 0xbf, 0x8b, 0x22, 0xe2, 0xb7,
 
17964
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08,
 
17965
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
17966
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
17967
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
17968
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
17969
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
17970
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
17971
        };      /* Structure image */
 
17972
 
 
17973
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
18281
17974
}
18282
17975
 
18283
 
 
18284
 
 
18285
 
 
18286
 
 
18287
 
 
18288
17976
/* Integer Multi-Dimensional Interpolation */
18289
17977
/* Interpolation Kernel Code */
18290
17978
/* Generated by cgen */
18293
17981
 
18294
17982
/* see the Licence.txt file for licencing details.*/
18295
17983
 
18296
 
 
18297
17984
/*
18298
17985
   Interpolation kernel specs:
18299
17986
 
18378
18065
void **inp,             /* pointer to input pointers */
18379
18066
unsigned int npix       /* Number of pixels to process */
18380
18067
) {
18381
 
        imdi_imp *p = (imdi_imp *)(s->impl);
18382
 
        unsigned char *ip0 = (unsigned char *)inp[0];
18383
 
        unsigned short *op0 = (unsigned short *)outp[0];
18384
 
        unsigned char *ep = ip0 + npix * 5 ;
18385
 
        pointer it0 = (pointer)p->in_tables[0];
18386
 
        pointer it1 = (pointer)p->in_tables[1];
18387
 
        pointer it2 = (pointer)p->in_tables[2];
18388
 
        pointer it3 = (pointer)p->in_tables[3];
18389
 
        pointer it4 = (pointer)p->in_tables[4];
18390
 
        pointer ot0 = (pointer)p->out_tables[0];
18391
 
        pointer im_base = (pointer)p->im_table;
18392
 
        
18393
 
        for(;ip0 < ep; ip0 += 5, op0 += 1) {
18394
 
                unsigned int ova0;      /* Output value partial accumulator */
18395
 
                {
18396
 
                        pointer imp;
18397
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
18398
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
18399
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
18400
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
18401
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
18402
 
                        {
18403
 
                                unsigned int ti_i;      /* Interpolation index variable */
18404
 
                                
18405
 
                                ti_i  = IT_IX(it0, ip0[0]);
18406
 
                                wo0   = IT_WO(it0, ip0[0]);
18407
 
                                ti_i += IT_IX(it1, ip0[1]);
18408
 
                                wo1   = IT_WO(it1, ip0[1]);
18409
 
                                ti_i += IT_IX(it2, ip0[2]);
18410
 
                                wo2   = IT_WO(it2, ip0[2]);
18411
 
                                ti_i += IT_IX(it3, ip0[3]);
18412
 
                                wo3   = IT_WO(it3, ip0[3]);
18413
 
                                ti_i += IT_IX(it4, ip0[4]);
18414
 
                                wo4   = IT_WO(it4, ip0[4]);
18415
 
                                
18416
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
18417
 
                                
18418
 
                                /* Sort weighting values and vertex offset values */
18419
 
                                CEX(wo0, wo1);
18420
 
                                CEX(wo0, wo2);
18421
 
                                CEX(wo0, wo3);
18422
 
                                CEX(wo0, wo4);
18423
 
                                CEX(wo1, wo2);
18424
 
                                CEX(wo1, wo3);
18425
 
                                CEX(wo1, wo4);
18426
 
                                CEX(wo2, wo3);
18427
 
                                CEX(wo2, wo4);
18428
 
                                CEX(wo3, wo4);
18429
 
                        }
18430
 
                        {
18431
 
                                unsigned int nvof;      /* Next vertex offset value */
18432
 
                                unsigned int vof;       /* Vertex offset value */
18433
 
                                unsigned int vwe;       /* Vertex weighting */
18434
 
                                
18435
 
                                vof = 0;                                /* First vertex offset is 0 */
18436
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
18437
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
18438
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
18439
 
                                ova0  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
18440
 
                                vof += nvof;                    /* Move to next vertex */
18441
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
18442
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
18443
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
18444
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
18445
 
                                vof += nvof;                    /* Move to next vertex */
18446
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
18447
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
18448
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
18449
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
18450
 
                                vof += nvof;                    /* Move to next vertex */
18451
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
18452
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
18453
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
18454
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
18455
 
                                vof += nvof;                    /* Move to next vertex */
18456
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
18457
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
18458
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
18459
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
18460
 
                                vof += nvof;                    /* Move to next vertex */
18461
 
                                vwe = wo4;                              /* Baricentric weighting */
18462
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
18463
 
                        }
18464
 
                }
18465
 
                {
18466
 
                        unsigned int oti;       /* Vertex offset value */
18467
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
18468
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
18469
 
                }
18470
 
        }
 
18068
        imdi_imp *p = (imdi_imp *)(s->impl);
 
18069
        unsigned char *ip0 = (unsigned char *)inp[0];
 
18070
        unsigned short *op0 = (unsigned short *)outp[0];
 
18071
        unsigned char *ep = ip0 + npix * 5 ;
 
18072
        pointer it0 = (pointer)p->in_tables[0];
 
18073
        pointer it1 = (pointer)p->in_tables[1];
 
18074
        pointer it2 = (pointer)p->in_tables[2];
 
18075
        pointer it3 = (pointer)p->in_tables[3];
 
18076
        pointer it4 = (pointer)p->in_tables[4];
 
18077
        pointer ot0 = (pointer)p->out_tables[0];
 
18078
        pointer im_base = (pointer)p->im_table;
 
18079
 
 
18080
        for(;ip0 < ep; ip0 += 5, op0 += 1) {
 
18081
                unsigned int ova0;      /* Output value partial accumulator */
 
18082
                {
 
18083
                        pointer imp;
 
18084
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
18085
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
18086
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
18087
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
18088
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
18089
                        {
 
18090
                                unsigned int ti_i;      /* Interpolation index variable */
 
18091
 
 
18092
                                ti_i  = IT_IX(it0, ip0[0]);
 
18093
                                wo0   = IT_WO(it0, ip0[0]);
 
18094
                                ti_i += IT_IX(it1, ip0[1]);
 
18095
                                wo1   = IT_WO(it1, ip0[1]);
 
18096
                                ti_i += IT_IX(it2, ip0[2]);
 
18097
                                wo2   = IT_WO(it2, ip0[2]);
 
18098
                                ti_i += IT_IX(it3, ip0[3]);
 
18099
                                wo3   = IT_WO(it3, ip0[3]);
 
18100
                                ti_i += IT_IX(it4, ip0[4]);
 
18101
                                wo4   = IT_WO(it4, ip0[4]);
 
18102
 
 
18103
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
18104
 
 
18105
                                /* Sort weighting values and vertex offset values */
 
18106
                                CEX(wo0, wo1);
 
18107
                                CEX(wo0, wo2);
 
18108
                                CEX(wo0, wo3);
 
18109
                                CEX(wo0, wo4);
 
18110
                                CEX(wo1, wo2);
 
18111
                                CEX(wo1, wo3);
 
18112
                                CEX(wo1, wo4);
 
18113
                                CEX(wo2, wo3);
 
18114
                                CEX(wo2, wo4);
 
18115
                                CEX(wo3, wo4);
 
18116
                        }
 
18117
                        {
 
18118
                                unsigned int nvof;      /* Next vertex offset value */
 
18119
                                unsigned int vof;       /* Vertex offset value */
 
18120
                                unsigned int vwe;       /* Vertex weighting */
 
18121
 
 
18122
                                vof = 0;                                /* First vertex offset is 0 */
 
18123
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
18124
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
18125
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
18126
                                ova0  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
18127
                                vof += nvof;                    /* Move to next vertex */
 
18128
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
18129
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
18130
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
18131
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
18132
                                vof += nvof;                    /* Move to next vertex */
 
18133
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
18134
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
18135
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
18136
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
18137
                                vof += nvof;                    /* Move to next vertex */
 
18138
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
18139
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
18140
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
18141
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
18142
                                vof += nvof;                    /* Move to next vertex */
 
18143
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
18144
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
18145
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
18146
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
18147
                                vof += nvof;                    /* Move to next vertex */
 
18148
                                vwe = wo4;                              /* Baricentric weighting */
 
18149
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
18150
                        }
 
18151
                }
 
18152
                {
 
18153
                        unsigned int oti;       /* Vertex offset value */
 
18154
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
18155
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
18156
                }
 
18157
        }
18471
18158
}
18472
18159
#undef IT_WO
18473
18160
#undef IT_IX
18480
18167
imdi_k53_gen(
18481
18168
genspec *g                      /* structure to be initialised */
18482
18169
) {
18483
 
        static unsigned char data[] = {
18484
 
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
18485
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
18486
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18487
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18488
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18489
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18490
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18491
 
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
18492
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
18493
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
18494
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18495
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18496
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18497
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18498
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18499
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18500
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18501
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18502
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18503
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
18504
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
18505
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18506
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18507
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18508
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
18509
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18510
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18511
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18512
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18513
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18514
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18515
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18516
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
18517
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18518
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18519
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18520
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
18521
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
18522
 
                0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18523
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
18524
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
18525
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
18526
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
18527
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
18528
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
18529
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
18530
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
18531
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
18532
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18533
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
18534
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
18535
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x35, 0x5f, 0x31, 0x5f, 
18536
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
18537
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
18538
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
18539
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
18540
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
18541
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
18542
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
18543
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18544
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18545
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18546
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18547
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
18548
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x35, 0x33, 
18549
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18550
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18551
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
18552
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
18553
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
18554
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
18555
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
18556
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
18557
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
18558
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
18559
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
18560
 
                0x00, 0xf0, 0x04, 0x08 
18561
 
        };      /* Structure image */
18562
 
        
18563
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
18170
        static unsigned char data[] = {
 
18171
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
18172
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
18173
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18174
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18175
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18176
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18177
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18178
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
18179
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
18180
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
18181
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18182
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18183
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18184
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18185
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18186
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18187
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18188
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18189
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18190
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
18191
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
18192
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18193
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18194
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18195
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
18196
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18197
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18198
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18199
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18200
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18201
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18202
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18203
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
18204
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18205
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18206
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18207
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
18208
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
18209
                0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18210
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
18211
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
18212
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
18213
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
18214
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
18215
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
18216
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
18217
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
18218
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
18219
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18220
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
18221
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
18222
                0x2c, 0xf3, 0xdc, 0xb7, 0x35, 0x5f, 0x31, 0x5f,
 
18223
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
18224
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
18225
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
18226
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
18227
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
18228
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
18229
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
18230
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18231
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18232
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18233
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18234
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
18235
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x35, 0x33,
 
18236
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18237
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18238
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
18239
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
18240
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
18241
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
18242
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
18243
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
18244
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
18245
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
18246
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
18247
                0x00, 0xf0, 0x04, 0x08
 
18248
        };      /* Structure image */
 
18249
 
 
18250
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
18564
18251
}
18565
18252
 
18566
18253
static void
18567
18254
imdi_k53_tab(
18568
18255
tabspec *t                      /* structure to be initialised */
18569
18256
) {
18570
 
        static unsigned char data[] = {
18571
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
18572
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
18573
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
18574
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
18575
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
18576
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
18577
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18578
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
18579
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
18580
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18581
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
18582
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
18583
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
18584
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
18585
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
18586
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
18587
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
18588
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18589
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
18590
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
18591
 
                0x00, 0x00, 0x00, 0x00, 0xa1, 0xd4, 0xe2, 0xb7, 
18592
 
                0xf4, 0xd5, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
18593
 
                0xff, 0xff, 0xff, 0x31, 0x00, 0x00, 0x00, 0x00, 
18594
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
18595
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18596
 
                0xa0, 0xd6, 0x83, 0xbf, 0x8b, 0x22, 0xe2, 0xb7, 
18597
 
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08, 
18598
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
18599
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
18600
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
18601
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
18602
 
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
18603
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
18604
 
        };      /* Structure image */
18605
 
        
18606
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
18257
        static unsigned char data[] = {
 
18258
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
18259
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
18260
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
18261
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
18262
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
18263
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
18264
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18265
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
18266
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
18267
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18268
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
18269
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
18270
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
18271
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
18272
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
18273
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
18274
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
18275
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18276
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
18277
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
18278
                0x00, 0x00, 0x00, 0x00, 0xa1, 0xd4, 0xe2, 0xb7,
 
18279
                0xf4, 0xd5, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
18280
                0xff, 0xff, 0xff, 0x31, 0x00, 0x00, 0x00, 0x00,
 
18281
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
18282
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18283
                0xa0, 0xd6, 0x83, 0xbf, 0x8b, 0x22, 0xe2, 0xb7,
 
18284
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08,
 
18285
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
18286
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
18287
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
18288
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
18289
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
18290
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
18291
        };      /* Structure image */
 
18292
 
 
18293
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
18607
18294
}
18608
18295
 
18609
 
 
18610
 
 
18611
 
 
18612
 
 
18613
 
 
18614
18296
/* Integer Multi-Dimensional Interpolation */
18615
18297
/* Interpolation Kernel Code */
18616
18298
/* Generated by cgen */
18619
18301
 
18620
18302
/* see the Licence.txt file for licencing details.*/
18621
18303
 
18622
 
 
18623
18304
/*
18624
18305
   Interpolation kernel specs:
18625
18306
 
18706
18387
void **inp,             /* pointer to input pointers */
18707
18388
unsigned int npix       /* Number of pixels to process */
18708
18389
) {
18709
 
        imdi_imp *p = (imdi_imp *)(s->impl);
18710
 
        unsigned char *ip0 = (unsigned char *)inp[0];
18711
 
        unsigned short *op0 = (unsigned short *)outp[0];
18712
 
        unsigned char *ep = ip0 + npix * 6 ;
18713
 
        pointer it0 = (pointer)p->in_tables[0];
18714
 
        pointer it1 = (pointer)p->in_tables[1];
18715
 
        pointer it2 = (pointer)p->in_tables[2];
18716
 
        pointer it3 = (pointer)p->in_tables[3];
18717
 
        pointer it4 = (pointer)p->in_tables[4];
18718
 
        pointer it5 = (pointer)p->in_tables[5];
18719
 
        pointer ot0 = (pointer)p->out_tables[0];
18720
 
        pointer im_base = (pointer)p->im_table;
18721
 
        
18722
 
        for(;ip0 < ep; ip0 += 6, op0 += 1) {
18723
 
                unsigned int ova0;      /* Output value partial accumulator */
18724
 
                {
18725
 
                        pointer imp;
18726
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
18727
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
18728
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
18729
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
18730
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
18731
 
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
18732
 
                        {
18733
 
                                unsigned int ti_i;      /* Interpolation index variable */
18734
 
                                
18735
 
                                ti_i  = IT_IX(it0, ip0[0]);
18736
 
                                wo0   = IT_WO(it0, ip0[0]);
18737
 
                                ti_i += IT_IX(it1, ip0[1]);
18738
 
                                wo1   = IT_WO(it1, ip0[1]);
18739
 
                                ti_i += IT_IX(it2, ip0[2]);
18740
 
                                wo2   = IT_WO(it2, ip0[2]);
18741
 
                                ti_i += IT_IX(it3, ip0[3]);
18742
 
                                wo3   = IT_WO(it3, ip0[3]);
18743
 
                                ti_i += IT_IX(it4, ip0[4]);
18744
 
                                wo4   = IT_WO(it4, ip0[4]);
18745
 
                                ti_i += IT_IX(it5, ip0[5]);
18746
 
                                wo5   = IT_WO(it5, ip0[5]);
18747
 
                                
18748
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
18749
 
                                
18750
 
                                /* Sort weighting values and vertex offset values */
18751
 
                                CEX(wo0, wo1);
18752
 
                                CEX(wo0, wo2);
18753
 
                                CEX(wo0, wo3);
18754
 
                                CEX(wo0, wo4);
18755
 
                                CEX(wo0, wo5);
18756
 
                                CEX(wo1, wo2);
18757
 
                                CEX(wo1, wo3);
18758
 
                                CEX(wo1, wo4);
18759
 
                                CEX(wo1, wo5);
18760
 
                                CEX(wo2, wo3);
18761
 
                                CEX(wo2, wo4);
18762
 
                                CEX(wo2, wo5);
18763
 
                                CEX(wo3, wo4);
18764
 
                                CEX(wo3, wo5);
18765
 
                                CEX(wo4, wo5);
18766
 
                        }
18767
 
                        {
18768
 
                                unsigned int nvof;      /* Next vertex offset value */
18769
 
                                unsigned int vof;       /* Vertex offset value */
18770
 
                                unsigned int vwe;       /* Vertex weighting */
18771
 
                                
18772
 
                                vof = 0;                                /* First vertex offset is 0 */
18773
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
18774
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
18775
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
18776
 
                                ova0  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
18777
 
                                vof += nvof;                    /* Move to next vertex */
18778
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
18779
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
18780
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
18781
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
18782
 
                                vof += nvof;                    /* Move to next vertex */
18783
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
18784
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
18785
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
18786
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
18787
 
                                vof += nvof;                    /* Move to next vertex */
18788
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
18789
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
18790
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
18791
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
18792
 
                                vof += nvof;                    /* Move to next vertex */
18793
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
18794
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
18795
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
18796
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
18797
 
                                vof += nvof;                    /* Move to next vertex */
18798
 
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
18799
 
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
18800
 
                                vwe = wo4 - wo5;                /* Baricentric weighting */
18801
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
18802
 
                                vof += nvof;                    /* Move to next vertex */
18803
 
                                vwe = wo5;                              /* Baricentric weighting */
18804
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
18805
 
                        }
18806
 
                }
18807
 
                {
18808
 
                        unsigned int oti;       /* Vertex offset value */
18809
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
18810
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
18811
 
                }
18812
 
        }
 
18390
        imdi_imp *p = (imdi_imp *)(s->impl);
 
18391
        unsigned char *ip0 = (unsigned char *)inp[0];
 
18392
        unsigned short *op0 = (unsigned short *)outp[0];
 
18393
        unsigned char *ep = ip0 + npix * 6 ;
 
18394
        pointer it0 = (pointer)p->in_tables[0];
 
18395
        pointer it1 = (pointer)p->in_tables[1];
 
18396
        pointer it2 = (pointer)p->in_tables[2];
 
18397
        pointer it3 = (pointer)p->in_tables[3];
 
18398
        pointer it4 = (pointer)p->in_tables[4];
 
18399
        pointer it5 = (pointer)p->in_tables[5];
 
18400
        pointer ot0 = (pointer)p->out_tables[0];
 
18401
        pointer im_base = (pointer)p->im_table;
 
18402
 
 
18403
        for(;ip0 < ep; ip0 += 6, op0 += 1) {
 
18404
                unsigned int ova0;      /* Output value partial accumulator */
 
18405
                {
 
18406
                        pointer imp;
 
18407
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
18408
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
18409
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
18410
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
18411
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
18412
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
 
18413
                        {
 
18414
                                unsigned int ti_i;      /* Interpolation index variable */
 
18415
 
 
18416
                                ti_i  = IT_IX(it0, ip0[0]);
 
18417
                                wo0   = IT_WO(it0, ip0[0]);
 
18418
                                ti_i += IT_IX(it1, ip0[1]);
 
18419
                                wo1   = IT_WO(it1, ip0[1]);
 
18420
                                ti_i += IT_IX(it2, ip0[2]);
 
18421
                                wo2   = IT_WO(it2, ip0[2]);
 
18422
                                ti_i += IT_IX(it3, ip0[3]);
 
18423
                                wo3   = IT_WO(it3, ip0[3]);
 
18424
                                ti_i += IT_IX(it4, ip0[4]);
 
18425
                                wo4   = IT_WO(it4, ip0[4]);
 
18426
                                ti_i += IT_IX(it5, ip0[5]);
 
18427
                                wo5   = IT_WO(it5, ip0[5]);
 
18428
 
 
18429
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
18430
 
 
18431
                                /* Sort weighting values and vertex offset values */
 
18432
                                CEX(wo0, wo1);
 
18433
                                CEX(wo0, wo2);
 
18434
                                CEX(wo0, wo3);
 
18435
                                CEX(wo0, wo4);
 
18436
                                CEX(wo0, wo5);
 
18437
                                CEX(wo1, wo2);
 
18438
                                CEX(wo1, wo3);
 
18439
                                CEX(wo1, wo4);
 
18440
                                CEX(wo1, wo5);
 
18441
                                CEX(wo2, wo3);
 
18442
                                CEX(wo2, wo4);
 
18443
                                CEX(wo2, wo5);
 
18444
                                CEX(wo3, wo4);
 
18445
                                CEX(wo3, wo5);
 
18446
                                CEX(wo4, wo5);
 
18447
                        }
 
18448
                        {
 
18449
                                unsigned int nvof;      /* Next vertex offset value */
 
18450
                                unsigned int vof;       /* Vertex offset value */
 
18451
                                unsigned int vwe;       /* Vertex weighting */
 
18452
 
 
18453
                                vof = 0;                                /* First vertex offset is 0 */
 
18454
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
18455
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
18456
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
18457
                                ova0  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
18458
                                vof += nvof;                    /* Move to next vertex */
 
18459
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
18460
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
18461
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
18462
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
18463
                                vof += nvof;                    /* Move to next vertex */
 
18464
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
18465
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
18466
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
18467
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
18468
                                vof += nvof;                    /* Move to next vertex */
 
18469
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
18470
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
18471
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
18472
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
18473
                                vof += nvof;                    /* Move to next vertex */
 
18474
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
18475
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
18476
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
18477
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
18478
                                vof += nvof;                    /* Move to next vertex */
 
18479
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
 
18480
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
 
18481
                                vwe = wo4 - wo5;                /* Baricentric weighting */
 
18482
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
18483
                                vof += nvof;                    /* Move to next vertex */
 
18484
                                vwe = wo5;                              /* Baricentric weighting */
 
18485
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
18486
                        }
 
18487
                }
 
18488
                {
 
18489
                        unsigned int oti;       /* Vertex offset value */
 
18490
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
18491
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
18492
                }
 
18493
        }
18813
18494
}
18814
18495
#undef IT_WO
18815
18496
#undef IT_IX
18822
18503
imdi_k54_gen(
18823
18504
genspec *g                      /* structure to be initialised */
18824
18505
) {
18825
 
        static unsigned char data[] = {
18826
 
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
18827
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
18828
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18829
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18830
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18831
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18832
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18833
 
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
18834
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
18835
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
18836
 
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18837
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18838
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18839
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18840
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18841
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18842
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18843
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18844
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18845
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
18846
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
18847
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18848
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18849
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18850
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
18851
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18852
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18853
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18854
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18855
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18856
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18857
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18858
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
18859
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18860
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18861
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18862
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
18863
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
18864
 
                0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18865
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
18866
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
18867
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
18868
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
18869
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
18870
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
18871
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
18872
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
18873
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
18874
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18875
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
18876
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
18877
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x36, 0x5f, 0x31, 0x5f, 
18878
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
18879
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
18880
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
18881
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
18882
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
18883
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
18884
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
18885
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18886
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18887
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18888
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18889
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
18890
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x35, 0x34, 
18891
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18892
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18893
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
18894
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
18895
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
18896
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
18897
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
18898
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
18899
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
18900
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
18901
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
18902
 
                0x00, 0xf0, 0x04, 0x08 
18903
 
        };      /* Structure image */
18904
 
        
18905
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
18506
        static unsigned char data[] = {
 
18507
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
18508
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
18509
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18510
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18511
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18512
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18513
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18514
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
18515
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
18516
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
18517
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18518
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18519
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18520
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18521
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18522
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18523
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18524
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18525
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18526
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
18527
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
18528
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18529
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18530
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18531
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
18532
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18533
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18534
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18535
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18536
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18537
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18538
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18539
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
18540
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18541
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18542
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18543
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
18544
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
18545
                0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18546
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
18547
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
18548
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
18549
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
18550
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
18551
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
18552
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
18553
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
18554
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
18555
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18556
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
18557
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
18558
                0x2c, 0xf3, 0xdc, 0xb7, 0x36, 0x5f, 0x31, 0x5f,
 
18559
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
18560
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
18561
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
18562
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
18563
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
18564
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
18565
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
18566
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18567
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18568
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18569
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18570
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
18571
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x35, 0x34,
 
18572
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18573
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18574
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
18575
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
18576
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
18577
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
18578
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
18579
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
18580
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
18581
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
18582
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
18583
                0x00, 0xf0, 0x04, 0x08
 
18584
        };      /* Structure image */
 
18585
 
 
18586
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
18906
18587
}
18907
18588
 
18908
18589
static void
18909
18590
imdi_k54_tab(
18910
18591
tabspec *t                      /* structure to be initialised */
18911
18592
) {
18912
 
        static unsigned char data[] = {
18913
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
18914
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
18915
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
18916
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
18917
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
18918
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
18919
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
18920
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
18921
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
18922
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18923
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
18924
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
18925
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
18926
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
18927
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
18928
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
18929
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
18930
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18931
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
18932
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
18933
 
                0x00, 0x00, 0x00, 0x00, 0xa1, 0xd4, 0xe2, 0xb7, 
18934
 
                0xf4, 0xd5, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
18935
 
                0xff, 0xff, 0xff, 0x31, 0x00, 0x00, 0x00, 0x00, 
18936
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
18937
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
18938
 
                0xa0, 0xd6, 0x83, 0xbf, 0x8b, 0x22, 0xe2, 0xb7, 
18939
 
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08, 
18940
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
18941
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
18942
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
18943
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
18944
 
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
18945
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
18946
 
        };      /* Structure image */
18947
 
        
18948
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
18593
        static unsigned char data[] = {
 
18594
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
18595
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
18596
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
18597
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
18598
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
18599
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
18600
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18601
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
18602
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
18603
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18604
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
18605
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
18606
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
18607
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
18608
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
18609
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
18610
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
18611
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18612
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
18613
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
18614
                0x00, 0x00, 0x00, 0x00, 0xa1, 0xd4, 0xe2, 0xb7,
 
18615
                0xf4, 0xd5, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
18616
                0xff, 0xff, 0xff, 0x31, 0x00, 0x00, 0x00, 0x00,
 
18617
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
18618
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18619
                0xa0, 0xd6, 0x83, 0xbf, 0x8b, 0x22, 0xe2, 0xb7,
 
18620
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08,
 
18621
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
18622
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
18623
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
18624
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
18625
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
18626
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
18627
        };      /* Structure image */
 
18628
 
 
18629
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
18949
18630
}
18950
18631
 
18951
 
 
18952
 
 
18953
 
 
18954
 
 
18955
 
 
18956
18632
/* Integer Multi-Dimensional Interpolation */
18957
18633
/* Interpolation Kernel Code */
18958
18634
/* Generated by cgen */
18961
18637
 
18962
18638
/* see the Licence.txt file for licencing details.*/
18963
18639
 
18964
 
 
18965
18640
/*
18966
18641
   Interpolation kernel specs:
18967
18642
 
19050
18725
void **inp,             /* pointer to input pointers */
19051
18726
unsigned int npix       /* Number of pixels to process */
19052
18727
) {
19053
 
        imdi_imp *p = (imdi_imp *)(s->impl);
19054
 
        unsigned char *ip0 = (unsigned char *)inp[0];
19055
 
        unsigned short *op0 = (unsigned short *)outp[0];
19056
 
        unsigned char *ep = ip0 + npix * 7 ;
19057
 
        pointer it0 = (pointer)p->in_tables[0];
19058
 
        pointer it1 = (pointer)p->in_tables[1];
19059
 
        pointer it2 = (pointer)p->in_tables[2];
19060
 
        pointer it3 = (pointer)p->in_tables[3];
19061
 
        pointer it4 = (pointer)p->in_tables[4];
19062
 
        pointer it5 = (pointer)p->in_tables[5];
19063
 
        pointer it6 = (pointer)p->in_tables[6];
19064
 
        pointer ot0 = (pointer)p->out_tables[0];
19065
 
        pointer im_base = (pointer)p->im_table;
19066
 
        
19067
 
        for(;ip0 < ep; ip0 += 7, op0 += 1) {
19068
 
                unsigned int ova0;      /* Output value partial accumulator */
19069
 
                {
19070
 
                        pointer imp;
19071
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
19072
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
19073
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
19074
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
19075
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
19076
 
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
19077
 
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
19078
 
                        {
19079
 
                                unsigned int ti_i;      /* Interpolation index variable */
19080
 
                                
19081
 
                                ti_i  = IT_IX(it0, ip0[0]);
19082
 
                                wo0   = IT_WO(it0, ip0[0]);
19083
 
                                ti_i += IT_IX(it1, ip0[1]);
19084
 
                                wo1   = IT_WO(it1, ip0[1]);
19085
 
                                ti_i += IT_IX(it2, ip0[2]);
19086
 
                                wo2   = IT_WO(it2, ip0[2]);
19087
 
                                ti_i += IT_IX(it3, ip0[3]);
19088
 
                                wo3   = IT_WO(it3, ip0[3]);
19089
 
                                ti_i += IT_IX(it4, ip0[4]);
19090
 
                                wo4   = IT_WO(it4, ip0[4]);
19091
 
                                ti_i += IT_IX(it5, ip0[5]);
19092
 
                                wo5   = IT_WO(it5, ip0[5]);
19093
 
                                ti_i += IT_IX(it6, ip0[6]);
19094
 
                                wo6   = IT_WO(it6, ip0[6]);
19095
 
                                
19096
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
19097
 
                                
19098
 
                                /* Sort weighting values and vertex offset values */
19099
 
                                CEX(wo0, wo1);
19100
 
                                CEX(wo0, wo2);
19101
 
                                CEX(wo0, wo3);
19102
 
                                CEX(wo0, wo4);
19103
 
                                CEX(wo0, wo5);
19104
 
                                CEX(wo0, wo6);
19105
 
                                CEX(wo1, wo2);
19106
 
                                CEX(wo1, wo3);
19107
 
                                CEX(wo1, wo4);
19108
 
                                CEX(wo1, wo5);
19109
 
                                CEX(wo1, wo6);
19110
 
                                CEX(wo2, wo3);
19111
 
                                CEX(wo2, wo4);
19112
 
                                CEX(wo2, wo5);
19113
 
                                CEX(wo2, wo6);
19114
 
                                CEX(wo3, wo4);
19115
 
                                CEX(wo3, wo5);
19116
 
                                CEX(wo3, wo6);
19117
 
                                CEX(wo4, wo5);
19118
 
                                CEX(wo4, wo6);
19119
 
                                CEX(wo5, wo6);
19120
 
                        }
19121
 
                        {
19122
 
                                unsigned int nvof;      /* Next vertex offset value */
19123
 
                                unsigned int vof;       /* Vertex offset value */
19124
 
                                unsigned int vwe;       /* Vertex weighting */
19125
 
                                
19126
 
                                vof = 0;                                /* First vertex offset is 0 */
19127
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
19128
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
19129
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
19130
 
                                ova0  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
19131
 
                                vof += nvof;                    /* Move to next vertex */
19132
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
19133
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
19134
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
19135
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
19136
 
                                vof += nvof;                    /* Move to next vertex */
19137
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
19138
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
19139
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
19140
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
19141
 
                                vof += nvof;                    /* Move to next vertex */
19142
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
19143
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
19144
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
19145
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
19146
 
                                vof += nvof;                    /* Move to next vertex */
19147
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
19148
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
19149
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
19150
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
19151
 
                                vof += nvof;                    /* Move to next vertex */
19152
 
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
19153
 
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
19154
 
                                vwe = wo4 - wo5;                /* Baricentric weighting */
19155
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
19156
 
                                vof += nvof;                    /* Move to next vertex */
19157
 
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
19158
 
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
19159
 
                                vwe = wo5 - wo6;                /* Baricentric weighting */
19160
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
19161
 
                                vof += nvof;                    /* Move to next vertex */
19162
 
                                vwe = wo6;                              /* Baricentric weighting */
19163
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
19164
 
                        }
19165
 
                }
19166
 
                {
19167
 
                        unsigned int oti;       /* Vertex offset value */
19168
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
19169
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
19170
 
                }
19171
 
        }
 
18728
        imdi_imp *p = (imdi_imp *)(s->impl);
 
18729
        unsigned char *ip0 = (unsigned char *)inp[0];
 
18730
        unsigned short *op0 = (unsigned short *)outp[0];
 
18731
        unsigned char *ep = ip0 + npix * 7 ;
 
18732
        pointer it0 = (pointer)p->in_tables[0];
 
18733
        pointer it1 = (pointer)p->in_tables[1];
 
18734
        pointer it2 = (pointer)p->in_tables[2];
 
18735
        pointer it3 = (pointer)p->in_tables[3];
 
18736
        pointer it4 = (pointer)p->in_tables[4];
 
18737
        pointer it5 = (pointer)p->in_tables[5];
 
18738
        pointer it6 = (pointer)p->in_tables[6];
 
18739
        pointer ot0 = (pointer)p->out_tables[0];
 
18740
        pointer im_base = (pointer)p->im_table;
 
18741
 
 
18742
        for(;ip0 < ep; ip0 += 7, op0 += 1) {
 
18743
                unsigned int ova0;      /* Output value partial accumulator */
 
18744
                {
 
18745
                        pointer imp;
 
18746
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
18747
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
18748
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
18749
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
18750
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
18751
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
 
18752
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
 
18753
                        {
 
18754
                                unsigned int ti_i;      /* Interpolation index variable */
 
18755
 
 
18756
                                ti_i  = IT_IX(it0, ip0[0]);
 
18757
                                wo0   = IT_WO(it0, ip0[0]);
 
18758
                                ti_i += IT_IX(it1, ip0[1]);
 
18759
                                wo1   = IT_WO(it1, ip0[1]);
 
18760
                                ti_i += IT_IX(it2, ip0[2]);
 
18761
                                wo2   = IT_WO(it2, ip0[2]);
 
18762
                                ti_i += IT_IX(it3, ip0[3]);
 
18763
                                wo3   = IT_WO(it3, ip0[3]);
 
18764
                                ti_i += IT_IX(it4, ip0[4]);
 
18765
                                wo4   = IT_WO(it4, ip0[4]);
 
18766
                                ti_i += IT_IX(it5, ip0[5]);
 
18767
                                wo5   = IT_WO(it5, ip0[5]);
 
18768
                                ti_i += IT_IX(it6, ip0[6]);
 
18769
                                wo6   = IT_WO(it6, ip0[6]);
 
18770
 
 
18771
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
18772
 
 
18773
                                /* Sort weighting values and vertex offset values */
 
18774
                                CEX(wo0, wo1);
 
18775
                                CEX(wo0, wo2);
 
18776
                                CEX(wo0, wo3);
 
18777
                                CEX(wo0, wo4);
 
18778
                                CEX(wo0, wo5);
 
18779
                                CEX(wo0, wo6);
 
18780
                                CEX(wo1, wo2);
 
18781
                                CEX(wo1, wo3);
 
18782
                                CEX(wo1, wo4);
 
18783
                                CEX(wo1, wo5);
 
18784
                                CEX(wo1, wo6);
 
18785
                                CEX(wo2, wo3);
 
18786
                                CEX(wo2, wo4);
 
18787
                                CEX(wo2, wo5);
 
18788
                                CEX(wo2, wo6);
 
18789
                                CEX(wo3, wo4);
 
18790
                                CEX(wo3, wo5);
 
18791
                                CEX(wo3, wo6);
 
18792
                                CEX(wo4, wo5);
 
18793
                                CEX(wo4, wo6);
 
18794
                                CEX(wo5, wo6);
 
18795
                        }
 
18796
                        {
 
18797
                                unsigned int nvof;      /* Next vertex offset value */
 
18798
                                unsigned int vof;       /* Vertex offset value */
 
18799
                                unsigned int vwe;       /* Vertex weighting */
 
18800
 
 
18801
                                vof = 0;                                /* First vertex offset is 0 */
 
18802
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
18803
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
18804
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
18805
                                ova0  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
18806
                                vof += nvof;                    /* Move to next vertex */
 
18807
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
18808
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
18809
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
18810
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
18811
                                vof += nvof;                    /* Move to next vertex */
 
18812
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
18813
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
18814
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
18815
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
18816
                                vof += nvof;                    /* Move to next vertex */
 
18817
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
18818
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
18819
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
18820
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
18821
                                vof += nvof;                    /* Move to next vertex */
 
18822
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
18823
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
18824
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
18825
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
18826
                                vof += nvof;                    /* Move to next vertex */
 
18827
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
 
18828
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
 
18829
                                vwe = wo4 - wo5;                /* Baricentric weighting */
 
18830
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
18831
                                vof += nvof;                    /* Move to next vertex */
 
18832
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
 
18833
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
 
18834
                                vwe = wo5 - wo6;                /* Baricentric weighting */
 
18835
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
18836
                                vof += nvof;                    /* Move to next vertex */
 
18837
                                vwe = wo6;                              /* Baricentric weighting */
 
18838
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
18839
                        }
 
18840
                }
 
18841
                {
 
18842
                        unsigned int oti;       /* Vertex offset value */
 
18843
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
18844
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
18845
                }
 
18846
        }
19172
18847
}
19173
18848
#undef IT_WO
19174
18849
#undef IT_IX
19181
18856
imdi_k55_gen(
19182
18857
genspec *g                      /* structure to be initialised */
19183
18858
) {
19184
 
        static unsigned char data[] = {
19185
 
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
19186
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
19187
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19188
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19189
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19190
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19191
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19192
 
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
19193
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
19194
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
19195
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
19196
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19197
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19198
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19199
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19200
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19201
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19202
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19203
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19204
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
19205
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
19206
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19207
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19208
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19209
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
19210
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19211
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19212
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19213
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19214
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19215
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19216
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19217
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
19218
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19219
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19220
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19221
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
19222
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
19223
 
                0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19224
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
19225
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
19226
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
19227
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
19228
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
19229
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
19230
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
19231
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
19232
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
19233
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19234
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
19235
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
19236
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x37, 0x5f, 0x31, 0x5f, 
19237
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
19238
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
19239
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
19240
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
19241
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
19242
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
19243
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
19244
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19245
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19246
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19247
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19248
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
19249
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x35, 0x35, 
19250
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19251
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19252
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
19253
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
19254
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
19255
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
19256
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
19257
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
19258
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
19259
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
19260
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
19261
 
                0x00, 0xf0, 0x04, 0x08 
19262
 
        };      /* Structure image */
19263
 
        
19264
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
18859
        static unsigned char data[] = {
 
18860
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
18861
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
18862
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18863
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18864
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18865
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18866
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18867
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
18868
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
18869
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
18870
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
18871
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18872
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18873
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18874
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18875
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18876
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18877
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18878
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18879
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
18880
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
18881
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18882
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18883
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18884
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
18885
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18886
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18887
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18888
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18889
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18890
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18891
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18892
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
18893
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18894
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18895
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18896
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
18897
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
18898
                0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18899
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
18900
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
18901
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
18902
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
18903
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
18904
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
18905
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
18906
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
18907
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
18908
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18909
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
18910
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
18911
                0x2c, 0xf3, 0xdc, 0xb7, 0x37, 0x5f, 0x31, 0x5f,
 
18912
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
18913
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
18914
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
18915
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
18916
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
18917
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
18918
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
18919
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18920
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18921
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18922
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18923
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
18924
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x35, 0x35,
 
18925
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18926
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18927
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
18928
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
18929
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
18930
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
18931
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
18932
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
18933
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
18934
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
18935
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
18936
                0x00, 0xf0, 0x04, 0x08
 
18937
        };      /* Structure image */
 
18938
 
 
18939
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
19265
18940
}
19266
18941
 
19267
18942
static void
19268
18943
imdi_k55_tab(
19269
18944
tabspec *t                      /* structure to be initialised */
19270
18945
) {
19271
 
        static unsigned char data[] = {
19272
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
19273
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
19274
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
19275
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
19276
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
19277
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
19278
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19279
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
19280
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
19281
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19282
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
19283
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
19284
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
19285
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
19286
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
19287
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
19288
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
19289
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19290
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
19291
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
19292
 
                0x00, 0x00, 0x00, 0x00, 0xa1, 0xd4, 0xe2, 0xb7, 
19293
 
                0xf4, 0xd5, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
19294
 
                0xff, 0xff, 0xff, 0x31, 0x00, 0x00, 0x00, 0x00, 
19295
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
19296
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19297
 
                0xa0, 0xd6, 0x83, 0xbf, 0x8b, 0x22, 0xe2, 0xb7, 
19298
 
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08, 
19299
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
19300
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
19301
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
19302
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
19303
 
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
19304
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
19305
 
        };      /* Structure image */
19306
 
        
19307
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
18946
        static unsigned char data[] = {
 
18947
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
18948
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
18949
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
18950
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
18951
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
18952
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
18953
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
18954
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
18955
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
18956
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18957
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
18958
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
18959
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
18960
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
18961
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
18962
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
18963
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
18964
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18965
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
18966
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
18967
                0x00, 0x00, 0x00, 0x00, 0xa1, 0xd4, 0xe2, 0xb7,
 
18968
                0xf4, 0xd5, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
18969
                0xff, 0xff, 0xff, 0x31, 0x00, 0x00, 0x00, 0x00,
 
18970
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
18971
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
18972
                0xa0, 0xd6, 0x83, 0xbf, 0x8b, 0x22, 0xe2, 0xb7,
 
18973
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08,
 
18974
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
18975
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
18976
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
18977
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
18978
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
18979
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
18980
        };      /* Structure image */
 
18981
 
 
18982
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
19308
18983
}
19309
18984
 
19310
 
 
19311
 
 
19312
 
 
19313
 
 
19314
 
 
19315
18985
/* Integer Multi-Dimensional Interpolation */
19316
18986
/* Interpolation Kernel Code */
19317
18987
/* Generated by cgen */
19320
18990
 
19321
18991
/* see the Licence.txt file for licencing details.*/
19322
18992
 
19323
 
 
19324
18993
/*
19325
18994
   Interpolation kernel specs:
19326
18995
 
19411
19080
void **inp,             /* pointer to input pointers */
19412
19081
unsigned int npix       /* Number of pixels to process */
19413
19082
) {
19414
 
        imdi_imp *p = (imdi_imp *)(s->impl);
19415
 
        unsigned char *ip0 = (unsigned char *)inp[0];
19416
 
        unsigned short *op0 = (unsigned short *)outp[0];
19417
 
        unsigned char *ep = ip0 + npix * 8 ;
19418
 
        pointer it0 = (pointer)p->in_tables[0];
19419
 
        pointer it1 = (pointer)p->in_tables[1];
19420
 
        pointer it2 = (pointer)p->in_tables[2];
19421
 
        pointer it3 = (pointer)p->in_tables[3];
19422
 
        pointer it4 = (pointer)p->in_tables[4];
19423
 
        pointer it5 = (pointer)p->in_tables[5];
19424
 
        pointer it6 = (pointer)p->in_tables[6];
19425
 
        pointer it7 = (pointer)p->in_tables[7];
19426
 
        pointer ot0 = (pointer)p->out_tables[0];
19427
 
        pointer im_base = (pointer)p->im_table;
19428
 
        
19429
 
        for(;ip0 < ep; ip0 += 8, op0 += 1) {
19430
 
                unsigned int ova0;      /* Output value partial accumulator */
19431
 
                {
19432
 
                        pointer imp;
19433
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
19434
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
19435
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
19436
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
19437
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
19438
 
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
19439
 
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
19440
 
                        unsigned int wo7;       /* Weighting value and vertex offset variable */
19441
 
                        {
19442
 
                                unsigned int ti_i;      /* Interpolation index variable */
19443
 
                                
19444
 
                                ti_i  = IT_IX(it0, ip0[0]);
19445
 
                                wo0   = IT_WO(it0, ip0[0]);
19446
 
                                ti_i += IT_IX(it1, ip0[1]);
19447
 
                                wo1   = IT_WO(it1, ip0[1]);
19448
 
                                ti_i += IT_IX(it2, ip0[2]);
19449
 
                                wo2   = IT_WO(it2, ip0[2]);
19450
 
                                ti_i += IT_IX(it3, ip0[3]);
19451
 
                                wo3   = IT_WO(it3, ip0[3]);
19452
 
                                ti_i += IT_IX(it4, ip0[4]);
19453
 
                                wo4   = IT_WO(it4, ip0[4]);
19454
 
                                ti_i += IT_IX(it5, ip0[5]);
19455
 
                                wo5   = IT_WO(it5, ip0[5]);
19456
 
                                ti_i += IT_IX(it6, ip0[6]);
19457
 
                                wo6   = IT_WO(it6, ip0[6]);
19458
 
                                ti_i += IT_IX(it7, ip0[7]);
19459
 
                                wo7   = IT_WO(it7, ip0[7]);
19460
 
                                
19461
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
19462
 
                                
19463
 
                                /* Sort weighting values and vertex offset values */
19464
 
                                CEX(wo0, wo1);
19465
 
                                CEX(wo0, wo2);
19466
 
                                CEX(wo0, wo3);
19467
 
                                CEX(wo0, wo4);
19468
 
                                CEX(wo0, wo5);
19469
 
                                CEX(wo0, wo6);
19470
 
                                CEX(wo0, wo7);
19471
 
                                CEX(wo1, wo2);
19472
 
                                CEX(wo1, wo3);
19473
 
                                CEX(wo1, wo4);
19474
 
                                CEX(wo1, wo5);
19475
 
                                CEX(wo1, wo6);
19476
 
                                CEX(wo1, wo7);
19477
 
                                CEX(wo2, wo3);
19478
 
                                CEX(wo2, wo4);
19479
 
                                CEX(wo2, wo5);
19480
 
                                CEX(wo2, wo6);
19481
 
                                CEX(wo2, wo7);
19482
 
                                CEX(wo3, wo4);
19483
 
                                CEX(wo3, wo5);
19484
 
                                CEX(wo3, wo6);
19485
 
                                CEX(wo3, wo7);
19486
 
                                CEX(wo4, wo5);
19487
 
                                CEX(wo4, wo6);
19488
 
                                CEX(wo4, wo7);
19489
 
                                CEX(wo5, wo6);
19490
 
                                CEX(wo5, wo7);
19491
 
                                CEX(wo6, wo7);
19492
 
                        }
19493
 
                        {
19494
 
                                unsigned int nvof;      /* Next vertex offset value */
19495
 
                                unsigned int vof;       /* Vertex offset value */
19496
 
                                unsigned int vwe;       /* Vertex weighting */
19497
 
                                
19498
 
                                vof = 0;                                /* First vertex offset is 0 */
19499
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
19500
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
19501
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
19502
 
                                ova0  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
19503
 
                                vof += nvof;                    /* Move to next vertex */
19504
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
19505
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
19506
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
19507
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
19508
 
                                vof += nvof;                    /* Move to next vertex */
19509
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
19510
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
19511
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
19512
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
19513
 
                                vof += nvof;                    /* Move to next vertex */
19514
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
19515
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
19516
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
19517
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
19518
 
                                vof += nvof;                    /* Move to next vertex */
19519
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
19520
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
19521
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
19522
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
19523
 
                                vof += nvof;                    /* Move to next vertex */
19524
 
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
19525
 
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
19526
 
                                vwe = wo4 - wo5;                /* Baricentric weighting */
19527
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
19528
 
                                vof += nvof;                    /* Move to next vertex */
19529
 
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
19530
 
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
19531
 
                                vwe = wo5 - wo6;                /* Baricentric weighting */
19532
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
19533
 
                                vof += nvof;                    /* Move to next vertex */
19534
 
                                nvof = (wo7 & 0x7fffff);        /* Extract offset value */
19535
 
                                wo7 = (wo7 >> 23);              /* Extract weighting value */
19536
 
                                vwe = wo6 - wo7;                /* Baricentric weighting */
19537
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
19538
 
                                vof += nvof;                    /* Move to next vertex */
19539
 
                                vwe = wo7;                              /* Baricentric weighting */
19540
 
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
19541
 
                        }
19542
 
                }
19543
 
                {
19544
 
                        unsigned int oti;       /* Vertex offset value */
19545
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
19546
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
19547
 
                }
19548
 
        }
 
19083
        imdi_imp *p = (imdi_imp *)(s->impl);
 
19084
        unsigned char *ip0 = (unsigned char *)inp[0];
 
19085
        unsigned short *op0 = (unsigned short *)outp[0];
 
19086
        unsigned char *ep = ip0 + npix * 8 ;
 
19087
        pointer it0 = (pointer)p->in_tables[0];
 
19088
        pointer it1 = (pointer)p->in_tables[1];
 
19089
        pointer it2 = (pointer)p->in_tables[2];
 
19090
        pointer it3 = (pointer)p->in_tables[3];
 
19091
        pointer it4 = (pointer)p->in_tables[4];
 
19092
        pointer it5 = (pointer)p->in_tables[5];
 
19093
        pointer it6 = (pointer)p->in_tables[6];
 
19094
        pointer it7 = (pointer)p->in_tables[7];
 
19095
        pointer ot0 = (pointer)p->out_tables[0];
 
19096
        pointer im_base = (pointer)p->im_table;
 
19097
 
 
19098
        for(;ip0 < ep; ip0 += 8, op0 += 1) {
 
19099
                unsigned int ova0;      /* Output value partial accumulator */
 
19100
                {
 
19101
                        pointer imp;
 
19102
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
19103
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
19104
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
19105
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
19106
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
19107
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
 
19108
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
 
19109
                        unsigned int wo7;       /* Weighting value and vertex offset variable */
 
19110
                        {
 
19111
                                unsigned int ti_i;      /* Interpolation index variable */
 
19112
 
 
19113
                                ti_i  = IT_IX(it0, ip0[0]);
 
19114
                                wo0   = IT_WO(it0, ip0[0]);
 
19115
                                ti_i += IT_IX(it1, ip0[1]);
 
19116
                                wo1   = IT_WO(it1, ip0[1]);
 
19117
                                ti_i += IT_IX(it2, ip0[2]);
 
19118
                                wo2   = IT_WO(it2, ip0[2]);
 
19119
                                ti_i += IT_IX(it3, ip0[3]);
 
19120
                                wo3   = IT_WO(it3, ip0[3]);
 
19121
                                ti_i += IT_IX(it4, ip0[4]);
 
19122
                                wo4   = IT_WO(it4, ip0[4]);
 
19123
                                ti_i += IT_IX(it5, ip0[5]);
 
19124
                                wo5   = IT_WO(it5, ip0[5]);
 
19125
                                ti_i += IT_IX(it6, ip0[6]);
 
19126
                                wo6   = IT_WO(it6, ip0[6]);
 
19127
                                ti_i += IT_IX(it7, ip0[7]);
 
19128
                                wo7   = IT_WO(it7, ip0[7]);
 
19129
 
 
19130
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
19131
 
 
19132
                                /* Sort weighting values and vertex offset values */
 
19133
                                CEX(wo0, wo1);
 
19134
                                CEX(wo0, wo2);
 
19135
                                CEX(wo0, wo3);
 
19136
                                CEX(wo0, wo4);
 
19137
                                CEX(wo0, wo5);
 
19138
                                CEX(wo0, wo6);
 
19139
                                CEX(wo0, wo7);
 
19140
                                CEX(wo1, wo2);
 
19141
                                CEX(wo1, wo3);
 
19142
                                CEX(wo1, wo4);
 
19143
                                CEX(wo1, wo5);
 
19144
                                CEX(wo1, wo6);
 
19145
                                CEX(wo1, wo7);
 
19146
                                CEX(wo2, wo3);
 
19147
                                CEX(wo2, wo4);
 
19148
                                CEX(wo2, wo5);
 
19149
                                CEX(wo2, wo6);
 
19150
                                CEX(wo2, wo7);
 
19151
                                CEX(wo3, wo4);
 
19152
                                CEX(wo3, wo5);
 
19153
                                CEX(wo3, wo6);
 
19154
                                CEX(wo3, wo7);
 
19155
                                CEX(wo4, wo5);
 
19156
                                CEX(wo4, wo6);
 
19157
                                CEX(wo4, wo7);
 
19158
                                CEX(wo5, wo6);
 
19159
                                CEX(wo5, wo7);
 
19160
                                CEX(wo6, wo7);
 
19161
                        }
 
19162
                        {
 
19163
                                unsigned int nvof;      /* Next vertex offset value */
 
19164
                                unsigned int vof;       /* Vertex offset value */
 
19165
                                unsigned int vwe;       /* Vertex weighting */
 
19166
 
 
19167
                                vof = 0;                                /* First vertex offset is 0 */
 
19168
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
19169
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
19170
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
19171
                                ova0  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
19172
                                vof += nvof;                    /* Move to next vertex */
 
19173
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
19174
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
19175
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
19176
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
19177
                                vof += nvof;                    /* Move to next vertex */
 
19178
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
19179
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
19180
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
19181
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
19182
                                vof += nvof;                    /* Move to next vertex */
 
19183
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
19184
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
19185
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
19186
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
19187
                                vof += nvof;                    /* Move to next vertex */
 
19188
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
19189
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
19190
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
19191
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
19192
                                vof += nvof;                    /* Move to next vertex */
 
19193
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
 
19194
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
 
19195
                                vwe = wo4 - wo5;                /* Baricentric weighting */
 
19196
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
19197
                                vof += nvof;                    /* Move to next vertex */
 
19198
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
 
19199
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
 
19200
                                vwe = wo5 - wo6;                /* Baricentric weighting */
 
19201
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
19202
                                vof += nvof;                    /* Move to next vertex */
 
19203
                                nvof = (wo7 & 0x7fffff);        /* Extract offset value */
 
19204
                                wo7 = (wo7 >> 23);              /* Extract weighting value */
 
19205
                                vwe = wo6 - wo7;                /* Baricentric weighting */
 
19206
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
19207
                                vof += nvof;                    /* Move to next vertex */
 
19208
                                vwe = wo7;                              /* Baricentric weighting */
 
19209
                                ova0 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
19210
                        }
 
19211
                }
 
19212
                {
 
19213
                        unsigned int oti;       /* Vertex offset value */
 
19214
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
19215
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
19216
                }
 
19217
        }
19549
19218
}
19550
19219
#undef IT_WO
19551
19220
#undef IT_IX
19558
19227
imdi_k56_gen(
19559
19228
genspec *g                      /* structure to be initialised */
19560
19229
) {
19561
 
        static unsigned char data[] = {
19562
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19563
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
19564
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19565
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19566
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19567
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19568
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19569
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19570
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19571
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19572
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19573
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19574
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19575
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19576
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19577
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19578
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19579
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19580
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19581
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
19582
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
19583
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19584
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19585
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19586
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
19587
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19588
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19589
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19590
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19591
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19592
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19593
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19594
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
19595
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19596
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19597
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19598
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
19599
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
19600
 
                0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19601
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
19602
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
19603
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
19604
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
19605
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
19606
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
19607
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
19608
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
19609
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
19610
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19611
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
19612
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
19613
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x38, 0x5f, 0x31, 0x5f, 
19614
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
19615
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
19616
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
19617
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
19618
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
19619
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
19620
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
19621
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19622
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19623
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19624
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19625
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
19626
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x35, 0x36, 
19627
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19628
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19629
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
19630
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
19631
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
19632
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
19633
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
19634
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
19635
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
19636
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
19637
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
19638
 
                0x00, 0xf0, 0x04, 0x08 
19639
 
        };      /* Structure image */
19640
 
        
19641
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
19230
        static unsigned char data[] = {
 
19231
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19232
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
19233
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19234
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19235
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19236
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19237
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19238
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19239
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19240
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19241
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19242
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19243
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19244
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19245
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19246
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19247
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19248
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19249
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19250
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
19251
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
19252
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19253
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19254
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19255
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
19256
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19257
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19258
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19259
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19260
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19261
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19262
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19263
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
19264
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19265
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19266
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19267
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
19268
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
19269
                0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19270
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
19271
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
19272
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
19273
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
19274
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
19275
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
19276
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
19277
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
19278
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
19279
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19280
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
19281
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
19282
                0x2c, 0xf3, 0xdc, 0xb7, 0x38, 0x5f, 0x31, 0x5f,
 
19283
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
19284
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
19285
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
19286
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
19287
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
19288
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
19289
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
19290
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19291
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19292
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19293
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19294
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
19295
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x35, 0x36,
 
19296
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19297
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19298
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
19299
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
19300
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
19301
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
19302
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
19303
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
19304
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
19305
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
19306
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
19307
                0x00, 0xf0, 0x04, 0x08
 
19308
        };      /* Structure image */
 
19309
 
 
19310
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
19642
19311
}
19643
19312
 
19644
19313
static void
19645
19314
imdi_k56_tab(
19646
19315
tabspec *t                      /* structure to be initialised */
19647
19316
) {
19648
 
        static unsigned char data[] = {
19649
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
19650
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
19651
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
19652
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
19653
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
19654
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
19655
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19656
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
19657
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
19658
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19659
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
19660
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
19661
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
19662
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
19663
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
19664
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
19665
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
19666
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19667
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
19668
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
19669
 
                0x00, 0x00, 0x00, 0x00, 0xa1, 0xd4, 0xe2, 0xb7, 
19670
 
                0xf4, 0xd5, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
19671
 
                0xff, 0xff, 0xff, 0x31, 0x00, 0x00, 0x00, 0x00, 
19672
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
19673
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19674
 
                0xa0, 0xd6, 0x83, 0xbf, 0x8b, 0x22, 0xe2, 0xb7, 
19675
 
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08, 
19676
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
19677
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
19678
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
19679
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
19680
 
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
19681
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
19682
 
        };      /* Structure image */
19683
 
        
19684
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
19317
        static unsigned char data[] = {
 
19318
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
19319
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
19320
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
19321
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
19322
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
19323
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
19324
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19325
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
19326
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
19327
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19328
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
19329
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
19330
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
19331
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
19332
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
19333
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
19334
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
19335
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19336
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
19337
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
19338
                0x00, 0x00, 0x00, 0x00, 0xa1, 0xd4, 0xe2, 0xb7,
 
19339
                0xf4, 0xd5, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
19340
                0xff, 0xff, 0xff, 0x31, 0x00, 0x00, 0x00, 0x00,
 
19341
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
19342
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19343
                0xa0, 0xd6, 0x83, 0xbf, 0x8b, 0x22, 0xe2, 0xb7,
 
19344
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08,
 
19345
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
19346
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
19347
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
19348
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
19349
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
19350
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
19351
        };      /* Structure image */
 
19352
 
 
19353
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
19685
19354
}
19686
19355
 
19687
 
 
19688
 
 
19689
 
 
19690
 
 
19691
 
 
19692
19356
/* Integer Multi-Dimensional Interpolation */
19693
19357
/* Interpolation Kernel Code */
19694
19358
/* Generated by cgen */
19697
19361
 
19698
19362
/* see the Licence.txt file for licencing details.*/
19699
19363
 
19700
 
 
19701
19364
/*
19702
19365
   Interpolation kernel specs:
19703
19366
 
19780
19443
void **inp,             /* pointer to input pointers */
19781
19444
unsigned int npix       /* Number of pixels to process */
19782
19445
) {
19783
 
        imdi_imp *p = (imdi_imp *)(s->impl);
19784
 
        unsigned char *ip0 = (unsigned char *)inp[0];
19785
 
        unsigned short *op0 = (unsigned short *)outp[0];
19786
 
        unsigned char *ep = ip0 + npix * 1 ;
19787
 
        pointer it0 = (pointer)p->in_tables[0];
19788
 
        pointer ot0 = (pointer)p->out_tables[0];
19789
 
        pointer ot1 = (pointer)p->out_tables[1];
19790
 
        pointer ot2 = (pointer)p->out_tables[2];
19791
 
        pointer sw_base = (pointer)p->sw_table;
19792
 
        pointer im_base = (pointer)p->im_table;
19793
 
        
19794
 
        for(;ip0 < ep; ip0 += 1, op0 += 3) {
19795
 
                unsigned int ova0;      /* Output value accumulator */
19796
 
                unsigned int ova1;      /* Output value partial accumulator */
19797
 
                {
19798
 
                        pointer swp;
19799
 
                        pointer imp;
19800
 
                        {
19801
 
                                unsigned int ti;        /* Simplex+Interpolation index variable */
19802
 
                                
19803
 
                                ti  = IT_IT(it0, ip0[0]);
19804
 
                                
19805
 
                                imp = im_base + IM_O(ti >> 0);          /* Extract interp. index and comp. entry */
19806
 
                                swp = sw_base + SW_O(ti & 0x0); /* Extract simplex index and comp. entry */
19807
 
                        }
19808
 
                        {
19809
 
                                unsigned int vowr;      /* Vertex offset/weight value */
19810
 
                                unsigned int vof;       /* Vertex offset value */
19811
 
                                unsigned int vwe;       /* Vertex weighting */
19812
 
                                
19813
 
                                vowr = SX_WO(swp, 0);   /* Read vertex offset+weighting values */
19814
 
                                vof = (vowr & 0x7f);    /* Extract offset value */
19815
 
                                vwe = (vowr >> 7);      /* Extract weighting value */
19816
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
19817
 
                                ova1  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
19818
 
                                vowr = SX_WO(swp, 1);   /* Read vertex offset+weighting values */
19819
 
                                vof = (vowr & 0x7f);    /* Extract offset value */
19820
 
                                vwe = (vowr >> 7);      /* Extract weighting value */
19821
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
19822
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
19823
 
                        }
19824
 
                }
19825
 
                {
19826
 
                        unsigned int oti;       /* Vertex offset value */
19827
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
19828
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
19829
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
19830
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
19831
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
19832
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
19833
 
                }
19834
 
        }
 
19446
        imdi_imp *p = (imdi_imp *)(s->impl);
 
19447
        unsigned char *ip0 = (unsigned char *)inp[0];
 
19448
        unsigned short *op0 = (unsigned short *)outp[0];
 
19449
        unsigned char *ep = ip0 + npix * 1 ;
 
19450
        pointer it0 = (pointer)p->in_tables[0];
 
19451
        pointer ot0 = (pointer)p->out_tables[0];
 
19452
        pointer ot1 = (pointer)p->out_tables[1];
 
19453
        pointer ot2 = (pointer)p->out_tables[2];
 
19454
        pointer sw_base = (pointer)p->sw_table;
 
19455
        pointer im_base = (pointer)p->im_table;
 
19456
 
 
19457
        for(;ip0 < ep; ip0 += 1, op0 += 3) {
 
19458
                unsigned int ova0;      /* Output value accumulator */
 
19459
                unsigned int ova1;      /* Output value partial accumulator */
 
19460
                {
 
19461
                        pointer swp;
 
19462
                        pointer imp;
 
19463
                        {
 
19464
                                unsigned int ti;        /* Simplex+Interpolation index variable */
 
19465
 
 
19466
                                ti  = IT_IT(it0, ip0[0]);
 
19467
 
 
19468
                                imp = im_base + IM_O(ti >> 0);          /* Extract interp. index and comp. entry */
 
19469
                                swp = sw_base + SW_O(ti & 0x0); /* Extract simplex index and comp. entry */
 
19470
                        }
 
19471
                        {
 
19472
                                unsigned int vowr;      /* Vertex offset/weight value */
 
19473
                                unsigned int vof;       /* Vertex offset value */
 
19474
                                unsigned int vwe;       /* Vertex weighting */
 
19475
 
 
19476
                                vowr = SX_WO(swp, 0);   /* Read vertex offset+weighting values */
 
19477
                                vof = (vowr & 0x7f);    /* Extract offset value */
 
19478
                                vwe = (vowr >> 7);      /* Extract weighting value */
 
19479
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
19480
                                ova1  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
19481
                                vowr = SX_WO(swp, 1);   /* Read vertex offset+weighting values */
 
19482
                                vof = (vowr & 0x7f);    /* Extract offset value */
 
19483
                                vwe = (vowr >> 7);      /* Extract weighting value */
 
19484
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
19485
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
19486
                        }
 
19487
                }
 
19488
                {
 
19489
                        unsigned int oti;       /* Vertex offset value */
 
19490
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
19491
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
19492
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
19493
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
19494
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
19495
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
19496
                }
 
19497
        }
19835
19498
}
19836
19499
#undef IT_IT
19837
19500
#undef SW_O
19845
19508
imdi_k57_gen(
19846
19509
genspec *g                      /* structure to be initialised */
19847
19510
) {
19848
 
        static unsigned char data[] = {
19849
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
19850
 
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
19851
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19852
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19853
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19854
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19855
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19856
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
19857
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19858
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19859
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19860
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19861
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19862
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19863
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19864
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19865
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19866
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19867
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19868
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
19869
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
19870
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
19871
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19872
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19873
 
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
19874
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
19875
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19876
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19877
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19878
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19879
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19880
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19881
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
19882
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
19883
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19884
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19885
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
19886
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
19887
 
                0xff, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
19888
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
19889
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
19890
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
19891
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
19892
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
19893
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
19894
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
19895
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
19896
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
19897
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19898
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
19899
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
19900
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x31, 0x5f, 0x33, 0x5f, 
19901
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
19902
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
19903
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
19904
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
19905
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
19906
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
19907
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
19908
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19909
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19910
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19911
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19912
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
19913
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x35, 0x37, 
19914
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19915
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19916
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
19917
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
19918
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
19919
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
19920
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
19921
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
19922
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
19923
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
19924
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
19925
 
                0x00, 0xf0, 0x04, 0x08 
19926
 
        };      /* Structure image */
19927
 
        
19928
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
19511
        static unsigned char data[] = {
 
19512
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
19513
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
19514
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19515
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19516
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19517
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19518
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19519
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
19520
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19521
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19522
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19523
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19524
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19525
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19526
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19527
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19528
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19529
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19530
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19531
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
19532
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
19533
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
19534
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19535
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19536
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
19537
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
19538
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19539
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19540
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19541
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19542
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19543
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19544
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
19545
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
19546
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19547
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19548
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
19549
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
19550
                0xff, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
19551
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
19552
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
19553
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
19554
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
19555
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
19556
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
19557
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
19558
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
19559
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
19560
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19561
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
19562
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
19563
                0x2c, 0xf3, 0xdc, 0xb7, 0x31, 0x5f, 0x33, 0x5f,
 
19564
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
19565
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
19566
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
19567
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
19568
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
19569
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
19570
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
19571
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19572
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19573
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19574
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19575
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
19576
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x35, 0x37,
 
19577
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19578
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19579
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
19580
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
19581
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
19582
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
19583
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
19584
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
19585
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
19586
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
19587
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
19588
                0x00, 0xf0, 0x04, 0x08
 
19589
        };      /* Structure image */
 
19590
 
 
19591
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
19929
19592
}
19930
19593
 
19931
19594
static void
19932
19595
imdi_k57_tab(
19933
19596
tabspec *t                      /* structure to be initialised */
19934
19597
) {
19935
 
        static unsigned char data[] = {
19936
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19937
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
19938
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
19939
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
19940
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
19941
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
19942
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
19943
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
19944
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19945
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19946
 
                0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
19947
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19948
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
19949
 
                0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
19950
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
19951
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
19952
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
19953
 
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
19954
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
19955
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
19956
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
19957
 
                0x02, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
19958
 
                0xff, 0xff, 0xff, 0x33, 0x00, 0x00, 0x00, 0x00, 
19959
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
19960
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19961
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
19962
 
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08, 
19963
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
19964
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
19965
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
19966
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
19967
 
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
19968
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
19969
 
        };      /* Structure image */
19970
 
        
19971
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
19598
        static unsigned char data[] = {
 
19599
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19600
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
19601
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
19602
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
19603
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
19604
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
19605
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
19606
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
19607
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19608
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19609
                0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
19610
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19611
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
19612
                0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
19613
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
19614
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
19615
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19616
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
19617
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
19618
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
19619
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
19620
                0x02, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
19621
                0xff, 0xff, 0xff, 0x33, 0x00, 0x00, 0x00, 0x00,
 
19622
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
19623
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19624
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19625
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08,
 
19626
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
19627
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
19628
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
19629
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
19630
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
19631
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
19632
        };      /* Structure image */
 
19633
 
 
19634
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
19972
19635
}
19973
19636
 
19974
 
 
19975
 
 
19976
 
 
19977
 
 
19978
 
 
19979
19637
/* Integer Multi-Dimensional Interpolation */
19980
19638
/* Interpolation Kernel Code */
19981
19639
/* Generated by cgen */
19984
19642
 
19985
19643
/* see the Licence.txt file for licencing details.*/
19986
19644
 
19987
 
 
19988
19645
/*
19989
19646
   Interpolation kernel specs:
19990
19647
 
20074
19731
void **inp,             /* pointer to input pointers */
20075
19732
unsigned int npix       /* Number of pixels to process */
20076
19733
) {
20077
 
        imdi_imp *p = (imdi_imp *)(s->impl);
20078
 
        unsigned char *ip0 = (unsigned char *)inp[0];
20079
 
        unsigned short *op0 = (unsigned short *)outp[0];
20080
 
        unsigned char *ep = ip0 + npix * 3 ;
20081
 
        pointer it0 = (pointer)p->in_tables[0];
20082
 
        pointer it1 = (pointer)p->in_tables[1];
20083
 
        pointer it2 = (pointer)p->in_tables[2];
20084
 
        pointer ot0 = (pointer)p->out_tables[0];
20085
 
        pointer ot1 = (pointer)p->out_tables[1];
20086
 
        pointer ot2 = (pointer)p->out_tables[2];
20087
 
        pointer sw_base = (pointer)p->sw_table;
20088
 
        pointer im_base = (pointer)p->im_table;
20089
 
        
20090
 
        for(;ip0 < ep; ip0 += 3, op0 += 3) {
20091
 
                unsigned int ova0;      /* Output value accumulator */
20092
 
                unsigned int ova1;      /* Output value partial accumulator */
20093
 
                {
20094
 
                        pointer swp;
20095
 
                        pointer imp;
20096
 
                        {
20097
 
                                unsigned int ti;        /* Simplex+Interpolation index variable */
20098
 
                                
20099
 
                                ti  = IT_IT(it0, ip0[0]);
20100
 
                                ti += IT_IT(it1, ip0[1]);
20101
 
                                ti += IT_IT(it2, ip0[2]);
20102
 
                                
20103
 
                                imp = im_base + IM_O(ti >> 12);         /* Extract interp. index and comp. entry */
20104
 
                                swp = sw_base + SW_O(ti & 0xfff);       /* Extract simplex index and comp. entry */
20105
 
                        }
20106
 
                        {
20107
 
                                unsigned int vof;       /* Vertex offset value */
20108
 
                                unsigned int vwe;       /* Vertex weighting */
20109
 
                                
20110
 
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
20111
 
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
20112
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
20113
 
                                ova1  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
20114
 
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
20115
 
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
20116
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
20117
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
20118
 
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
20119
 
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
20120
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
20121
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
20122
 
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
20123
 
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
20124
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
20125
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
20126
 
                        }
20127
 
                }
20128
 
                {
20129
 
                        unsigned int oti;       /* Vertex offset value */
20130
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
20131
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
20132
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
20133
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
20134
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
20135
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
20136
 
                }
20137
 
        }
 
19734
        imdi_imp *p = (imdi_imp *)(s->impl);
 
19735
        unsigned char *ip0 = (unsigned char *)inp[0];
 
19736
        unsigned short *op0 = (unsigned short *)outp[0];
 
19737
        unsigned char *ep = ip0 + npix * 3 ;
 
19738
        pointer it0 = (pointer)p->in_tables[0];
 
19739
        pointer it1 = (pointer)p->in_tables[1];
 
19740
        pointer it2 = (pointer)p->in_tables[2];
 
19741
        pointer ot0 = (pointer)p->out_tables[0];
 
19742
        pointer ot1 = (pointer)p->out_tables[1];
 
19743
        pointer ot2 = (pointer)p->out_tables[2];
 
19744
        pointer sw_base = (pointer)p->sw_table;
 
19745
        pointer im_base = (pointer)p->im_table;
 
19746
 
 
19747
        for(;ip0 < ep; ip0 += 3, op0 += 3) {
 
19748
                unsigned int ova0;      /* Output value accumulator */
 
19749
                unsigned int ova1;      /* Output value partial accumulator */
 
19750
                {
 
19751
                        pointer swp;
 
19752
                        pointer imp;
 
19753
                        {
 
19754
                                unsigned int ti;        /* Simplex+Interpolation index variable */
 
19755
 
 
19756
                                ti  = IT_IT(it0, ip0[0]);
 
19757
                                ti += IT_IT(it1, ip0[1]);
 
19758
                                ti += IT_IT(it2, ip0[2]);
 
19759
 
 
19760
                                imp = im_base + IM_O(ti >> 12);         /* Extract interp. index and comp. entry */
 
19761
                                swp = sw_base + SW_O(ti & 0xfff);       /* Extract simplex index and comp. entry */
 
19762
                        }
 
19763
                        {
 
19764
                                unsigned int vof;       /* Vertex offset value */
 
19765
                                unsigned int vwe;       /* Vertex weighting */
 
19766
 
 
19767
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
 
19768
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
 
19769
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
19770
                                ova1  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
19771
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
 
19772
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
 
19773
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
19774
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
19775
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
 
19776
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
 
19777
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
19778
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
19779
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
 
19780
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
 
19781
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
19782
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
19783
                        }
 
19784
                }
 
19785
                {
 
19786
                        unsigned int oti;       /* Vertex offset value */
 
19787
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
19788
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
19789
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
19790
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
19791
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
19792
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
19793
                }
 
19794
        }
20138
19795
}
20139
19796
#undef IT_IT
20140
19797
#undef SW_O
20149
19806
imdi_k58_gen(
20150
19807
genspec *g                      /* structure to be initialised */
20151
19808
) {
20152
 
        static unsigned char data[] = {
20153
 
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
20154
 
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
20155
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20156
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20157
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20158
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20159
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20160
 
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
20161
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
20162
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20163
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20164
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20165
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20166
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20167
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20168
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20169
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20170
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20171
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20172
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
20173
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
20174
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
20175
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20176
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20177
 
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
20178
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
20179
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20180
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20181
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20182
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20183
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20184
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20185
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
20186
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
20187
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20188
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20189
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
20190
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
20191
 
                0x65, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
20192
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
20193
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
20194
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
20195
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
20196
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
20197
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
20198
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
20199
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
20200
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
20201
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20202
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
20203
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
20204
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x33, 0x5f, 0x33, 0x5f, 
20205
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
20206
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
20207
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
20208
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
20209
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
20210
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
20211
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
20212
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20213
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20214
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20215
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20216
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
20217
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x35, 0x38, 
20218
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20219
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20220
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
20221
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
20222
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
20223
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
20224
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
20225
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
20226
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
20227
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
20228
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
20229
 
                0x00, 0xf0, 0x04, 0x08 
20230
 
        };      /* Structure image */
20231
 
        
20232
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
19809
        static unsigned char data[] = {
 
19810
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
19811
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
19812
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19813
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19814
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19815
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19816
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19817
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
19818
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
19819
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19820
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19821
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19822
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19823
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19824
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19825
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19826
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19827
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19828
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19829
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
19830
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
19831
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
19832
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19833
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19834
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
19835
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
19836
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19837
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19838
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19839
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19840
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19841
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19842
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
19843
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
19844
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19845
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19846
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
19847
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
19848
                0x65, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
19849
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
19850
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
19851
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
19852
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
19853
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
19854
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
19855
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
19856
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
19857
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
19858
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19859
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
19860
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
19861
                0x2c, 0xf3, 0xdc, 0xb7, 0x33, 0x5f, 0x33, 0x5f,
 
19862
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
19863
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
19864
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
19865
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
19866
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
19867
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
19868
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
19869
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19870
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19871
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19872
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19873
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
19874
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x35, 0x38,
 
19875
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19876
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19877
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
19878
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
19879
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
19880
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
19881
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
19882
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
19883
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
19884
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
19885
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
19886
                0x00, 0xf0, 0x04, 0x08
 
19887
        };      /* Structure image */
 
19888
 
 
19889
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
20233
19890
}
20234
19891
 
20235
19892
static void
20236
19893
imdi_k58_tab(
20237
19894
tabspec *t                      /* structure to be initialised */
20238
19895
) {
20239
 
        static unsigned char data[] = {
20240
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20241
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
20242
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
20243
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
20244
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
20245
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
20246
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
20247
 
                0x14, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
20248
 
                0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 
20249
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20250
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
20251
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20252
 
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
20253
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
20254
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
20255
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
20256
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20257
 
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
20258
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
20259
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
20260
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
20261
 
                0x02, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
20262
 
                0xff, 0xff, 0xff, 0x33, 0x00, 0x00, 0x00, 0x00, 
20263
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
20264
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20265
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20266
 
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08, 
20267
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
20268
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
20269
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
20270
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
20271
 
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
20272
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
20273
 
        };      /* Structure image */
20274
 
        
20275
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
19896
        static unsigned char data[] = {
 
19897
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19898
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
19899
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
19900
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
19901
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
19902
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
19903
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
19904
                0x14, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
19905
                0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
 
19906
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19907
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
19908
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19909
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
19910
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
19911
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
19912
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
19913
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
19914
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
19915
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
19916
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
19917
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
19918
                0x02, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
19919
                0xff, 0xff, 0xff, 0x33, 0x00, 0x00, 0x00, 0x00,
 
19920
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
19921
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19922
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
19923
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08,
 
19924
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
19925
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
19926
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
19927
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
19928
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
19929
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
19930
        };      /* Structure image */
 
19931
 
 
19932
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
20276
19933
}
20277
19934
 
20278
 
 
20279
 
 
20280
 
 
20281
 
 
20282
 
 
20283
19935
/* Integer Multi-Dimensional Interpolation */
20284
19936
/* Interpolation Kernel Code */
20285
19937
/* Generated by cgen */
20288
19940
 
20289
19941
/* see the Licence.txt file for licencing details.*/
20290
19942
 
20291
 
 
20292
19943
/*
20293
19944
   Interpolation kernel specs:
20294
19945
 
20383
20034
void **inp,             /* pointer to input pointers */
20384
20035
unsigned int npix       /* Number of pixels to process */
20385
20036
) {
20386
 
        imdi_imp *p = (imdi_imp *)(s->impl);
20387
 
        unsigned char *ip0 = (unsigned char *)inp[0];
20388
 
        unsigned short *op0 = (unsigned short *)outp[0];
20389
 
        unsigned char *ep = ip0 + npix * 4 ;
20390
 
        pointer it0 = (pointer)p->in_tables[0];
20391
 
        pointer it1 = (pointer)p->in_tables[1];
20392
 
        pointer it2 = (pointer)p->in_tables[2];
20393
 
        pointer it3 = (pointer)p->in_tables[3];
20394
 
        pointer ot0 = (pointer)p->out_tables[0];
20395
 
        pointer ot1 = (pointer)p->out_tables[1];
20396
 
        pointer ot2 = (pointer)p->out_tables[2];
20397
 
        pointer sw_base = (pointer)p->sw_table;
20398
 
        pointer im_base = (pointer)p->im_table;
20399
 
        
20400
 
        for(;ip0 < ep; ip0 += 4, op0 += 3) {
20401
 
                unsigned int ova0;      /* Output value accumulator */
20402
 
                unsigned int ova1;      /* Output value partial accumulator */
20403
 
                {
20404
 
                        pointer swp;
20405
 
                        pointer imp;
20406
 
                        {
20407
 
                                unsigned int ti_s;      /* Simplex index variable */
20408
 
                                unsigned int ti_i;      /* Interpolation index variable */
20409
 
                                
20410
 
                                ti_i  = IT_IX(it0, ip0[0]);
20411
 
                                ti_s  = IT_SX(it0, ip0[0]);
20412
 
                                ti_i += IT_IX(it1, ip0[1]);
20413
 
                                ti_s += IT_SX(it1, ip0[1]);
20414
 
                                ti_i += IT_IX(it2, ip0[2]);
20415
 
                                ti_s += IT_SX(it2, ip0[2]);
20416
 
                                ti_i += IT_IX(it3, ip0[3]);
20417
 
                                ti_s += IT_SX(it3, ip0[3]);
20418
 
                                
20419
 
                                swp = sw_base + SW_O(ti_s);             /* Compute simplex table entry pointer */
20420
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
20421
 
                        }
20422
 
                        {
20423
 
                                unsigned int vof;       /* Vertex offset value */
20424
 
                                unsigned int vwe;       /* Vertex weighting */
20425
 
                                
20426
 
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
20427
 
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
20428
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
20429
 
                                ova1  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
20430
 
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
20431
 
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
20432
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
20433
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
20434
 
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
20435
 
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
20436
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
20437
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
20438
 
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
20439
 
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
20440
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
20441
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
20442
 
                                vof = SX_VO(swp, 4);    /* Read vertex offset value */
20443
 
                                vwe = SX_WE(swp, 4);    /* Read vertex weighting value */
20444
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
20445
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
20446
 
                        }
20447
 
                }
20448
 
                {
20449
 
                        unsigned int oti;       /* Vertex offset value */
20450
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
20451
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
20452
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
20453
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
20454
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
20455
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
20456
 
                }
20457
 
        }
 
20037
        imdi_imp *p = (imdi_imp *)(s->impl);
 
20038
        unsigned char *ip0 = (unsigned char *)inp[0];
 
20039
        unsigned short *op0 = (unsigned short *)outp[0];
 
20040
        unsigned char *ep = ip0 + npix * 4 ;
 
20041
        pointer it0 = (pointer)p->in_tables[0];
 
20042
        pointer it1 = (pointer)p->in_tables[1];
 
20043
        pointer it2 = (pointer)p->in_tables[2];
 
20044
        pointer it3 = (pointer)p->in_tables[3];
 
20045
        pointer ot0 = (pointer)p->out_tables[0];
 
20046
        pointer ot1 = (pointer)p->out_tables[1];
 
20047
        pointer ot2 = (pointer)p->out_tables[2];
 
20048
        pointer sw_base = (pointer)p->sw_table;
 
20049
        pointer im_base = (pointer)p->im_table;
 
20050
 
 
20051
        for(;ip0 < ep; ip0 += 4, op0 += 3) {
 
20052
                unsigned int ova0;      /* Output value accumulator */
 
20053
                unsigned int ova1;      /* Output value partial accumulator */
 
20054
                {
 
20055
                        pointer swp;
 
20056
                        pointer imp;
 
20057
                        {
 
20058
                                unsigned int ti_s;      /* Simplex index variable */
 
20059
                                unsigned int ti_i;      /* Interpolation index variable */
 
20060
 
 
20061
                                ti_i  = IT_IX(it0, ip0[0]);
 
20062
                                ti_s  = IT_SX(it0, ip0[0]);
 
20063
                                ti_i += IT_IX(it1, ip0[1]);
 
20064
                                ti_s += IT_SX(it1, ip0[1]);
 
20065
                                ti_i += IT_IX(it2, ip0[2]);
 
20066
                                ti_s += IT_SX(it2, ip0[2]);
 
20067
                                ti_i += IT_IX(it3, ip0[3]);
 
20068
                                ti_s += IT_SX(it3, ip0[3]);
 
20069
 
 
20070
                                swp = sw_base + SW_O(ti_s);             /* Compute simplex table entry pointer */
 
20071
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
20072
                        }
 
20073
                        {
 
20074
                                unsigned int vof;       /* Vertex offset value */
 
20075
                                unsigned int vwe;       /* Vertex weighting */
 
20076
 
 
20077
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
 
20078
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
 
20079
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
20080
                                ova1  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
20081
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
 
20082
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
 
20083
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
20084
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
20085
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
 
20086
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
 
20087
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
20088
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
20089
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
 
20090
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
 
20091
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
20092
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
20093
                                vof = SX_VO(swp, 4);    /* Read vertex offset value */
 
20094
                                vwe = SX_WE(swp, 4);    /* Read vertex weighting value */
 
20095
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
20096
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
20097
                        }
 
20098
                }
 
20099
                {
 
20100
                        unsigned int oti;       /* Vertex offset value */
 
20101
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
20102
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
20103
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
20104
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
20105
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
20106
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
20107
                }
 
20108
        }
20458
20109
}
20459
20110
#undef IT_IX
20460
20111
#undef IT_SX
20470
20121
imdi_k59_gen(
20471
20122
genspec *g                      /* structure to be initialised */
20472
20123
) {
20473
 
        static unsigned char data[] = {
20474
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
20475
 
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
20476
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20477
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20478
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20479
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20480
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20481
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
20482
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
20483
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20484
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20485
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20486
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20487
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20488
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20489
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20490
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20491
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20492
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20493
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
20494
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
20495
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
20496
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20497
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20498
 
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
20499
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
20500
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20501
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20502
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20503
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20504
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20505
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20506
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
20507
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
20508
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20509
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20510
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
20511
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
20512
 
                0x27, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 
20513
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
20514
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
20515
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
20516
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
20517
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
20518
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
20519
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
20520
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
20521
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
20522
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20523
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
20524
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
20525
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x34, 0x5f, 0x33, 0x5f, 
20526
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
20527
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
20528
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
20529
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
20530
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
20531
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
20532
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
20533
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20534
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20535
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20536
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20537
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
20538
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x35, 0x39, 
20539
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20540
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20541
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
20542
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
20543
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
20544
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
20545
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
20546
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
20547
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
20548
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
20549
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
20550
 
                0x00, 0xf0, 0x04, 0x08 
20551
 
        };      /* Structure image */
20552
 
        
20553
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
20124
        static unsigned char data[] = {
 
20125
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
20126
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
20127
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20128
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20129
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20130
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20131
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20132
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
20133
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
20134
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20135
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20136
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20137
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20138
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20139
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20140
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20141
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20142
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20143
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20144
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
20145
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
20146
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
20147
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20148
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20149
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
20150
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
20151
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20152
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20153
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20154
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20155
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20156
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20157
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
20158
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
20159
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20160
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20161
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
20162
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
20163
                0x27, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00,
 
20164
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
20165
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
20166
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
20167
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
20168
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
20169
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
20170
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
20171
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
20172
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
20173
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20174
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
20175
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
20176
                0x2c, 0xf3, 0xdc, 0xb7, 0x34, 0x5f, 0x33, 0x5f,
 
20177
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
20178
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
20179
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
20180
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
20181
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
20182
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
20183
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
20184
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20185
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20186
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20187
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20188
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
20189
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x35, 0x39,
 
20190
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20191
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20192
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
20193
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
20194
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
20195
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
20196
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
20197
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
20198
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
20199
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
20200
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
20201
                0x00, 0xf0, 0x04, 0x08
 
20202
        };      /* Structure image */
 
20203
 
 
20204
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
20554
20205
}
20555
20206
 
20556
20207
static void
20557
20208
imdi_k59_tab(
20558
20209
tabspec *t                      /* structure to be initialised */
20559
20210
) {
20560
 
        static unsigned char data[] = {
20561
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
20562
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
20563
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
20564
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
20565
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
20566
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
20567
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20568
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
20569
 
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
20570
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20571
 
                0x14, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
20572
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20573
 
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
20574
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
20575
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
20576
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
20577
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20578
 
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
20579
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
20580
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
20581
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
20582
 
                0x02, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
20583
 
                0xff, 0xff, 0xff, 0x33, 0x00, 0x00, 0x00, 0x00, 
20584
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
20585
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20586
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20587
 
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08, 
20588
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
20589
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
20590
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
20591
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
20592
 
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
20593
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
20594
 
        };      /* Structure image */
20595
 
        
20596
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
20211
        static unsigned char data[] = {
 
20212
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
20213
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
20214
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
20215
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
20216
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
20217
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
20218
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20219
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
20220
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
20221
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20222
                0x14, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
20223
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20224
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
20225
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
20226
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
20227
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
20228
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20229
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
20230
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
20231
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
20232
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
20233
                0x02, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
20234
                0xff, 0xff, 0xff, 0x33, 0x00, 0x00, 0x00, 0x00,
 
20235
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
20236
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20237
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20238
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08,
 
20239
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
20240
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
20241
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
20242
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
20243
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
20244
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
20245
        };      /* Structure image */
 
20246
 
 
20247
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
20597
20248
}
20598
20249
 
20599
 
 
20600
 
 
20601
 
 
20602
 
 
20603
 
 
20604
20250
/* Integer Multi-Dimensional Interpolation */
20605
20251
/* Interpolation Kernel Code */
20606
20252
/* Generated by cgen */
20609
20255
 
20610
20256
/* see the Licence.txt file for licencing details.*/
20611
20257
 
20612
 
 
20613
20258
/*
20614
20259
   Interpolation kernel specs:
20615
20260
 
20699
20344
void **inp,             /* pointer to input pointers */
20700
20345
unsigned int npix       /* Number of pixels to process */
20701
20346
) {
20702
 
        imdi_imp *p = (imdi_imp *)(s->impl);
20703
 
        unsigned char *ip0 = (unsigned char *)inp[0];
20704
 
        unsigned short *op0 = (unsigned short *)outp[0];
20705
 
        unsigned char *ep = ip0 + npix * 5 ;
20706
 
        pointer it0 = (pointer)p->in_tables[0];
20707
 
        pointer it1 = (pointer)p->in_tables[1];
20708
 
        pointer it2 = (pointer)p->in_tables[2];
20709
 
        pointer it3 = (pointer)p->in_tables[3];
20710
 
        pointer it4 = (pointer)p->in_tables[4];
20711
 
        pointer ot0 = (pointer)p->out_tables[0];
20712
 
        pointer ot1 = (pointer)p->out_tables[1];
20713
 
        pointer ot2 = (pointer)p->out_tables[2];
20714
 
        pointer im_base = (pointer)p->im_table;
20715
 
        
20716
 
        for(;ip0 < ep; ip0 += 5, op0 += 3) {
20717
 
                unsigned int ova0;      /* Output value accumulator */
20718
 
                unsigned int ova1;      /* Output value partial accumulator */
20719
 
                {
20720
 
                        pointer imp;
20721
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
20722
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
20723
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
20724
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
20725
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
20726
 
                        {
20727
 
                                unsigned int ti_i;      /* Interpolation index variable */
20728
 
                                
20729
 
                                ti_i  = IT_IX(it0, ip0[0]);
20730
 
                                wo0   = IT_WO(it0, ip0[0]);
20731
 
                                ti_i += IT_IX(it1, ip0[1]);
20732
 
                                wo1   = IT_WO(it1, ip0[1]);
20733
 
                                ti_i += IT_IX(it2, ip0[2]);
20734
 
                                wo2   = IT_WO(it2, ip0[2]);
20735
 
                                ti_i += IT_IX(it3, ip0[3]);
20736
 
                                wo3   = IT_WO(it3, ip0[3]);
20737
 
                                ti_i += IT_IX(it4, ip0[4]);
20738
 
                                wo4   = IT_WO(it4, ip0[4]);
20739
 
                                
20740
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
20741
 
                                
20742
 
                                /* Sort weighting values and vertex offset values */
20743
 
                                CEX(wo0, wo1);
20744
 
                                CEX(wo0, wo2);
20745
 
                                CEX(wo0, wo3);
20746
 
                                CEX(wo0, wo4);
20747
 
                                CEX(wo1, wo2);
20748
 
                                CEX(wo1, wo3);
20749
 
                                CEX(wo1, wo4);
20750
 
                                CEX(wo2, wo3);
20751
 
                                CEX(wo2, wo4);
20752
 
                                CEX(wo3, wo4);
20753
 
                        }
20754
 
                        {
20755
 
                                unsigned int nvof;      /* Next vertex offset value */
20756
 
                                unsigned int vof;       /* Vertex offset value */
20757
 
                                unsigned int vwe;       /* Vertex weighting */
20758
 
                                
20759
 
                                vof = 0;                                /* First vertex offset is 0 */
20760
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
20761
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
20762
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
20763
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
20764
 
                                ova1  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
20765
 
                                vof += nvof;                    /* Move to next vertex */
20766
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
20767
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
20768
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
20769
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
20770
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
20771
 
                                vof += nvof;                    /* Move to next vertex */
20772
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
20773
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
20774
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
20775
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
20776
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
20777
 
                                vof += nvof;                    /* Move to next vertex */
20778
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
20779
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
20780
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
20781
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
20782
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
20783
 
                                vof += nvof;                    /* Move to next vertex */
20784
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
20785
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
20786
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
20787
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
20788
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
20789
 
                                vof += nvof;                    /* Move to next vertex */
20790
 
                                vwe = wo4;                              /* Baricentric weighting */
20791
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
20792
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
20793
 
                        }
20794
 
                }
20795
 
                {
20796
 
                        unsigned int oti;       /* Vertex offset value */
20797
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
20798
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
20799
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
20800
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
20801
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
20802
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
20803
 
                }
20804
 
        }
 
20347
        imdi_imp *p = (imdi_imp *)(s->impl);
 
20348
        unsigned char *ip0 = (unsigned char *)inp[0];
 
20349
        unsigned short *op0 = (unsigned short *)outp[0];
 
20350
        unsigned char *ep = ip0 + npix * 5 ;
 
20351
        pointer it0 = (pointer)p->in_tables[0];
 
20352
        pointer it1 = (pointer)p->in_tables[1];
 
20353
        pointer it2 = (pointer)p->in_tables[2];
 
20354
        pointer it3 = (pointer)p->in_tables[3];
 
20355
        pointer it4 = (pointer)p->in_tables[4];
 
20356
        pointer ot0 = (pointer)p->out_tables[0];
 
20357
        pointer ot1 = (pointer)p->out_tables[1];
 
20358
        pointer ot2 = (pointer)p->out_tables[2];
 
20359
        pointer im_base = (pointer)p->im_table;
 
20360
 
 
20361
        for(;ip0 < ep; ip0 += 5, op0 += 3) {
 
20362
                unsigned int ova0;      /* Output value accumulator */
 
20363
                unsigned int ova1;      /* Output value partial accumulator */
 
20364
                {
 
20365
                        pointer imp;
 
20366
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
20367
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
20368
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
20369
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
20370
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
20371
                        {
 
20372
                                unsigned int ti_i;      /* Interpolation index variable */
 
20373
 
 
20374
                                ti_i  = IT_IX(it0, ip0[0]);
 
20375
                                wo0   = IT_WO(it0, ip0[0]);
 
20376
                                ti_i += IT_IX(it1, ip0[1]);
 
20377
                                wo1   = IT_WO(it1, ip0[1]);
 
20378
                                ti_i += IT_IX(it2, ip0[2]);
 
20379
                                wo2   = IT_WO(it2, ip0[2]);
 
20380
                                ti_i += IT_IX(it3, ip0[3]);
 
20381
                                wo3   = IT_WO(it3, ip0[3]);
 
20382
                                ti_i += IT_IX(it4, ip0[4]);
 
20383
                                wo4   = IT_WO(it4, ip0[4]);
 
20384
 
 
20385
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
20386
 
 
20387
                                /* Sort weighting values and vertex offset values */
 
20388
                                CEX(wo0, wo1);
 
20389
                                CEX(wo0, wo2);
 
20390
                                CEX(wo0, wo3);
 
20391
                                CEX(wo0, wo4);
 
20392
                                CEX(wo1, wo2);
 
20393
                                CEX(wo1, wo3);
 
20394
                                CEX(wo1, wo4);
 
20395
                                CEX(wo2, wo3);
 
20396
                                CEX(wo2, wo4);
 
20397
                                CEX(wo3, wo4);
 
20398
                        }
 
20399
                        {
 
20400
                                unsigned int nvof;      /* Next vertex offset value */
 
20401
                                unsigned int vof;       /* Vertex offset value */
 
20402
                                unsigned int vwe;       /* Vertex weighting */
 
20403
 
 
20404
                                vof = 0;                                /* First vertex offset is 0 */
 
20405
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
20406
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
20407
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
20408
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
20409
                                ova1  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
20410
                                vof += nvof;                    /* Move to next vertex */
 
20411
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
20412
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
20413
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
20414
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
20415
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
20416
                                vof += nvof;                    /* Move to next vertex */
 
20417
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
20418
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
20419
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
20420
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
20421
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
20422
                                vof += nvof;                    /* Move to next vertex */
 
20423
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
20424
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
20425
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
20426
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
20427
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
20428
                                vof += nvof;                    /* Move to next vertex */
 
20429
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
20430
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
20431
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
20432
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
20433
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
20434
                                vof += nvof;                    /* Move to next vertex */
 
20435
                                vwe = wo4;                              /* Baricentric weighting */
 
20436
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
20437
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
20438
                        }
 
20439
                }
 
20440
                {
 
20441
                        unsigned int oti;       /* Vertex offset value */
 
20442
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
20443
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
20444
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
20445
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
20446
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
20447
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
20448
                }
 
20449
        }
20805
20450
}
20806
20451
#undef IT_WO
20807
20452
#undef IT_IX
20815
20460
imdi_k60_gen(
20816
20461
genspec *g                      /* structure to be initialised */
20817
20462
) {
20818
 
        static unsigned char data[] = {
20819
 
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
20820
 
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
20821
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20822
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20823
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20824
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20825
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20826
 
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
20827
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
20828
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
20829
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20830
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20831
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20832
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20833
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20834
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20835
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20836
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20837
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20838
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
20839
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
20840
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
20841
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20842
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20843
 
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
20844
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
20845
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20846
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20847
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20848
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20849
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20850
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20851
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
20852
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
20853
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20854
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20855
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
20856
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
20857
 
                0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20858
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
20859
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
20860
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
20861
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
20862
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
20863
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
20864
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
20865
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
20866
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
20867
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20868
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
20869
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
20870
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x35, 0x5f, 0x33, 0x5f, 
20871
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
20872
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
20873
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
20874
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
20875
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
20876
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
20877
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
20878
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20879
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20880
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20881
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20882
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
20883
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x36, 0x30, 
20884
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20885
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20886
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
20887
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
20888
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
20889
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
20890
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
20891
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
20892
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
20893
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
20894
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
20895
 
                0x00, 0xf0, 0x04, 0x08 
20896
 
        };      /* Structure image */
20897
 
        
20898
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
20463
        static unsigned char data[] = {
 
20464
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
20465
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
20466
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20467
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20468
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20469
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20470
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20471
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
20472
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
20473
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
20474
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20475
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20476
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20477
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20478
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20479
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20480
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20481
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20482
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20483
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
20484
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
20485
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
20486
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20487
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20488
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
20489
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
20490
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20491
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20492
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20493
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20494
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20495
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20496
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
20497
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
20498
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20499
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20500
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
20501
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
20502
                0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20503
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
20504
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
20505
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
20506
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
20507
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
20508
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
20509
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
20510
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
20511
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
20512
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20513
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
20514
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
20515
                0x2c, 0xf3, 0xdc, 0xb7, 0x35, 0x5f, 0x33, 0x5f,
 
20516
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
20517
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
20518
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
20519
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
20520
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
20521
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
20522
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
20523
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20524
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20525
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20526
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20527
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
20528
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x36, 0x30,
 
20529
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20530
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20531
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
20532
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
20533
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
20534
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
20535
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
20536
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
20537
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
20538
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
20539
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
20540
                0x00, 0xf0, 0x04, 0x08
 
20541
        };      /* Structure image */
 
20542
 
 
20543
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
20899
20544
}
20900
20545
 
20901
20546
static void
20902
20547
imdi_k60_tab(
20903
20548
tabspec *t                      /* structure to be initialised */
20904
20549
) {
20905
 
        static unsigned char data[] = {
20906
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
20907
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
20908
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
20909
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
20910
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
20911
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
20912
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20913
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
20914
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
20915
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20916
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
20917
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
20918
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
20919
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
20920
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
20921
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
20922
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
20923
 
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
20924
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
20925
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
20926
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
20927
 
                0x02, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
20928
 
                0xff, 0xff, 0xff, 0x33, 0x00, 0x00, 0x00, 0x00, 
20929
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
20930
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20931
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
20932
 
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08, 
20933
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
20934
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
20935
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
20936
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
20937
 
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
20938
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
20939
 
        };      /* Structure image */
20940
 
        
20941
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
20550
        static unsigned char data[] = {
 
20551
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
20552
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
20553
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
20554
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
20555
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
20556
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
20557
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20558
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
20559
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
20560
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20561
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
20562
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
20563
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
20564
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
20565
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
20566
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
20567
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20568
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
20569
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
20570
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
20571
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
20572
                0x02, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
20573
                0xff, 0xff, 0xff, 0x33, 0x00, 0x00, 0x00, 0x00,
 
20574
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
20575
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20576
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20577
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08,
 
20578
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
20579
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
20580
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
20581
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
20582
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
20583
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
20584
        };      /* Structure image */
 
20585
 
 
20586
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
20942
20587
}
20943
20588
 
20944
 
 
20945
 
 
20946
 
 
20947
 
 
20948
 
 
20949
20589
/* Integer Multi-Dimensional Interpolation */
20950
20590
/* Interpolation Kernel Code */
20951
20591
/* Generated by cgen */
20954
20594
 
20955
20595
/* see the Licence.txt file for licencing details.*/
20956
20596
 
20957
 
 
20958
20597
/*
20959
20598
   Interpolation kernel specs:
20960
20599
 
21046
20685
void **inp,             /* pointer to input pointers */
21047
20686
unsigned int npix       /* Number of pixels to process */
21048
20687
) {
21049
 
        imdi_imp *p = (imdi_imp *)(s->impl);
21050
 
        unsigned char *ip0 = (unsigned char *)inp[0];
21051
 
        unsigned short *op0 = (unsigned short *)outp[0];
21052
 
        unsigned char *ep = ip0 + npix * 6 ;
21053
 
        pointer it0 = (pointer)p->in_tables[0];
21054
 
        pointer it1 = (pointer)p->in_tables[1];
21055
 
        pointer it2 = (pointer)p->in_tables[2];
21056
 
        pointer it3 = (pointer)p->in_tables[3];
21057
 
        pointer it4 = (pointer)p->in_tables[4];
21058
 
        pointer it5 = (pointer)p->in_tables[5];
21059
 
        pointer ot0 = (pointer)p->out_tables[0];
21060
 
        pointer ot1 = (pointer)p->out_tables[1];
21061
 
        pointer ot2 = (pointer)p->out_tables[2];
21062
 
        pointer im_base = (pointer)p->im_table;
21063
 
        
21064
 
        for(;ip0 < ep; ip0 += 6, op0 += 3) {
21065
 
                unsigned int ova0;      /* Output value accumulator */
21066
 
                unsigned int ova1;      /* Output value partial accumulator */
21067
 
                {
21068
 
                        pointer imp;
21069
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
21070
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
21071
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
21072
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
21073
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
21074
 
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
21075
 
                        {
21076
 
                                unsigned int ti_i;      /* Interpolation index variable */
21077
 
                                
21078
 
                                ti_i  = IT_IX(it0, ip0[0]);
21079
 
                                wo0   = IT_WO(it0, ip0[0]);
21080
 
                                ti_i += IT_IX(it1, ip0[1]);
21081
 
                                wo1   = IT_WO(it1, ip0[1]);
21082
 
                                ti_i += IT_IX(it2, ip0[2]);
21083
 
                                wo2   = IT_WO(it2, ip0[2]);
21084
 
                                ti_i += IT_IX(it3, ip0[3]);
21085
 
                                wo3   = IT_WO(it3, ip0[3]);
21086
 
                                ti_i += IT_IX(it4, ip0[4]);
21087
 
                                wo4   = IT_WO(it4, ip0[4]);
21088
 
                                ti_i += IT_IX(it5, ip0[5]);
21089
 
                                wo5   = IT_WO(it5, ip0[5]);
21090
 
                                
21091
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
21092
 
                                
21093
 
                                /* Sort weighting values and vertex offset values */
21094
 
                                CEX(wo0, wo1);
21095
 
                                CEX(wo0, wo2);
21096
 
                                CEX(wo0, wo3);
21097
 
                                CEX(wo0, wo4);
21098
 
                                CEX(wo0, wo5);
21099
 
                                CEX(wo1, wo2);
21100
 
                                CEX(wo1, wo3);
21101
 
                                CEX(wo1, wo4);
21102
 
                                CEX(wo1, wo5);
21103
 
                                CEX(wo2, wo3);
21104
 
                                CEX(wo2, wo4);
21105
 
                                CEX(wo2, wo5);
21106
 
                                CEX(wo3, wo4);
21107
 
                                CEX(wo3, wo5);
21108
 
                                CEX(wo4, wo5);
21109
 
                        }
21110
 
                        {
21111
 
                                unsigned int nvof;      /* Next vertex offset value */
21112
 
                                unsigned int vof;       /* Vertex offset value */
21113
 
                                unsigned int vwe;       /* Vertex weighting */
21114
 
                                
21115
 
                                vof = 0;                                /* First vertex offset is 0 */
21116
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
21117
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
21118
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
21119
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
21120
 
                                ova1  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
21121
 
                                vof += nvof;                    /* Move to next vertex */
21122
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
21123
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
21124
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
21125
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
21126
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
21127
 
                                vof += nvof;                    /* Move to next vertex */
21128
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
21129
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
21130
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
21131
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
21132
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
21133
 
                                vof += nvof;                    /* Move to next vertex */
21134
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
21135
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
21136
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
21137
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
21138
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
21139
 
                                vof += nvof;                    /* Move to next vertex */
21140
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
21141
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
21142
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
21143
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
21144
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
21145
 
                                vof += nvof;                    /* Move to next vertex */
21146
 
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
21147
 
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
21148
 
                                vwe = wo4 - wo5;                /* Baricentric weighting */
21149
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
21150
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
21151
 
                                vof += nvof;                    /* Move to next vertex */
21152
 
                                vwe = wo5;                              /* Baricentric weighting */
21153
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
21154
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
21155
 
                        }
21156
 
                }
21157
 
                {
21158
 
                        unsigned int oti;       /* Vertex offset value */
21159
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
21160
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
21161
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
21162
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
21163
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
21164
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
21165
 
                }
21166
 
        }
 
20688
        imdi_imp *p = (imdi_imp *)(s->impl);
 
20689
        unsigned char *ip0 = (unsigned char *)inp[0];
 
20690
        unsigned short *op0 = (unsigned short *)outp[0];
 
20691
        unsigned char *ep = ip0 + npix * 6 ;
 
20692
        pointer it0 = (pointer)p->in_tables[0];
 
20693
        pointer it1 = (pointer)p->in_tables[1];
 
20694
        pointer it2 = (pointer)p->in_tables[2];
 
20695
        pointer it3 = (pointer)p->in_tables[3];
 
20696
        pointer it4 = (pointer)p->in_tables[4];
 
20697
        pointer it5 = (pointer)p->in_tables[5];
 
20698
        pointer ot0 = (pointer)p->out_tables[0];
 
20699
        pointer ot1 = (pointer)p->out_tables[1];
 
20700
        pointer ot2 = (pointer)p->out_tables[2];
 
20701
        pointer im_base = (pointer)p->im_table;
 
20702
 
 
20703
        for(;ip0 < ep; ip0 += 6, op0 += 3) {
 
20704
                unsigned int ova0;      /* Output value accumulator */
 
20705
                unsigned int ova1;      /* Output value partial accumulator */
 
20706
                {
 
20707
                        pointer imp;
 
20708
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
20709
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
20710
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
20711
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
20712
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
20713
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
 
20714
                        {
 
20715
                                unsigned int ti_i;      /* Interpolation index variable */
 
20716
 
 
20717
                                ti_i  = IT_IX(it0, ip0[0]);
 
20718
                                wo0   = IT_WO(it0, ip0[0]);
 
20719
                                ti_i += IT_IX(it1, ip0[1]);
 
20720
                                wo1   = IT_WO(it1, ip0[1]);
 
20721
                                ti_i += IT_IX(it2, ip0[2]);
 
20722
                                wo2   = IT_WO(it2, ip0[2]);
 
20723
                                ti_i += IT_IX(it3, ip0[3]);
 
20724
                                wo3   = IT_WO(it3, ip0[3]);
 
20725
                                ti_i += IT_IX(it4, ip0[4]);
 
20726
                                wo4   = IT_WO(it4, ip0[4]);
 
20727
                                ti_i += IT_IX(it5, ip0[5]);
 
20728
                                wo5   = IT_WO(it5, ip0[5]);
 
20729
 
 
20730
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
20731
 
 
20732
                                /* Sort weighting values and vertex offset values */
 
20733
                                CEX(wo0, wo1);
 
20734
                                CEX(wo0, wo2);
 
20735
                                CEX(wo0, wo3);
 
20736
                                CEX(wo0, wo4);
 
20737
                                CEX(wo0, wo5);
 
20738
                                CEX(wo1, wo2);
 
20739
                                CEX(wo1, wo3);
 
20740
                                CEX(wo1, wo4);
 
20741
                                CEX(wo1, wo5);
 
20742
                                CEX(wo2, wo3);
 
20743
                                CEX(wo2, wo4);
 
20744
                                CEX(wo2, wo5);
 
20745
                                CEX(wo3, wo4);
 
20746
                                CEX(wo3, wo5);
 
20747
                                CEX(wo4, wo5);
 
20748
                        }
 
20749
                        {
 
20750
                                unsigned int nvof;      /* Next vertex offset value */
 
20751
                                unsigned int vof;       /* Vertex offset value */
 
20752
                                unsigned int vwe;       /* Vertex weighting */
 
20753
 
 
20754
                                vof = 0;                                /* First vertex offset is 0 */
 
20755
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
20756
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
20757
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
20758
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
20759
                                ova1  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
20760
                                vof += nvof;                    /* Move to next vertex */
 
20761
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
20762
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
20763
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
20764
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
20765
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
20766
                                vof += nvof;                    /* Move to next vertex */
 
20767
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
20768
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
20769
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
20770
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
20771
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
20772
                                vof += nvof;                    /* Move to next vertex */
 
20773
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
20774
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
20775
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
20776
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
20777
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
20778
                                vof += nvof;                    /* Move to next vertex */
 
20779
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
20780
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
20781
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
20782
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
20783
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
20784
                                vof += nvof;                    /* Move to next vertex */
 
20785
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
 
20786
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
 
20787
                                vwe = wo4 - wo5;                /* Baricentric weighting */
 
20788
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
20789
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
20790
                                vof += nvof;                    /* Move to next vertex */
 
20791
                                vwe = wo5;                              /* Baricentric weighting */
 
20792
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
20793
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
20794
                        }
 
20795
                }
 
20796
                {
 
20797
                        unsigned int oti;       /* Vertex offset value */
 
20798
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
20799
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
20800
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
20801
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
20802
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
20803
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
20804
                }
 
20805
        }
21167
20806
}
21168
20807
#undef IT_WO
21169
20808
#undef IT_IX
21177
20816
imdi_k61_gen(
21178
20817
genspec *g                      /* structure to be initialised */
21179
20818
) {
21180
 
        static unsigned char data[] = {
21181
 
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
21182
 
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
21183
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21184
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21185
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21186
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21187
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21188
 
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
21189
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
21190
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
21191
 
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21192
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21193
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21194
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21195
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21196
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21197
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21198
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21199
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21200
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
21201
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
21202
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
21203
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21204
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21205
 
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
21206
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
21207
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21208
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21209
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21210
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21211
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21212
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21213
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
21214
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
21215
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21216
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21217
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
21218
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
21219
 
                0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21220
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
21221
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
21222
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
21223
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
21224
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
21225
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
21226
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
21227
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
21228
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
21229
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21230
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
21231
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
21232
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x36, 0x5f, 0x33, 0x5f, 
21233
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
21234
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
21235
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
21236
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
21237
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
21238
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
21239
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
21240
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21241
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21242
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21243
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21244
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
21245
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x36, 0x31, 
21246
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21247
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21248
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
21249
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
21250
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
21251
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
21252
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
21253
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
21254
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
21255
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
21256
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
21257
 
                0x00, 0xf0, 0x04, 0x08 
21258
 
        };      /* Structure image */
21259
 
        
21260
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
20819
        static unsigned char data[] = {
 
20820
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
20821
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
20822
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20823
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20824
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20825
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20826
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20827
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
20828
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
20829
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
20830
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20831
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20832
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20833
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20834
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20835
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20836
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20837
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20838
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20839
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
20840
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
20841
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
20842
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20843
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20844
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
20845
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
20846
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20847
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20848
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20849
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20850
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20851
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20852
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
20853
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
20854
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20855
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20856
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
20857
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
20858
                0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20859
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
20860
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
20861
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
20862
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
20863
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
20864
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
20865
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
20866
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
20867
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
20868
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20869
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
20870
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
20871
                0x2c, 0xf3, 0xdc, 0xb7, 0x36, 0x5f, 0x33, 0x5f,
 
20872
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
20873
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
20874
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
20875
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
20876
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
20877
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
20878
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
20879
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20880
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20881
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20882
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20883
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
20884
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x36, 0x31,
 
20885
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20886
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20887
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
20888
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
20889
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
20890
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
20891
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
20892
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
20893
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
20894
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
20895
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
20896
                0x00, 0xf0, 0x04, 0x08
 
20897
        };      /* Structure image */
 
20898
 
 
20899
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
21261
20900
}
21262
20901
 
21263
20902
static void
21264
20903
imdi_k61_tab(
21265
20904
tabspec *t                      /* structure to be initialised */
21266
20905
) {
21267
 
        static unsigned char data[] = {
21268
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
21269
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
21270
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
21271
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
21272
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
21273
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
21274
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21275
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
21276
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
21277
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21278
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
21279
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
21280
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
21281
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
21282
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
21283
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
21284
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21285
 
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
21286
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
21287
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
21288
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
21289
 
                0x02, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
21290
 
                0xff, 0xff, 0xff, 0x33, 0x00, 0x00, 0x00, 0x00, 
21291
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
21292
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21293
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21294
 
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08, 
21295
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
21296
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
21297
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
21298
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
21299
 
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
21300
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
21301
 
        };      /* Structure image */
21302
 
        
21303
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
20906
        static unsigned char data[] = {
 
20907
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
20908
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
20909
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
20910
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
20911
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
20912
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
20913
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20914
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
20915
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
20916
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20917
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
20918
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
20919
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
20920
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
20921
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
20922
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
20923
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
20924
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
20925
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
20926
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
20927
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
20928
                0x02, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
20929
                0xff, 0xff, 0xff, 0x33, 0x00, 0x00, 0x00, 0x00,
 
20930
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
20931
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20932
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
20933
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08,
 
20934
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
20935
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
20936
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
20937
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
20938
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
20939
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
20940
        };      /* Structure image */
 
20941
 
 
20942
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
21304
20943
}
21305
20944
 
21306
 
 
21307
 
 
21308
 
 
21309
 
 
21310
 
 
21311
20945
/* Integer Multi-Dimensional Interpolation */
21312
20946
/* Interpolation Kernel Code */
21313
20947
/* Generated by cgen */
21316
20950
 
21317
20951
/* see the Licence.txt file for licencing details.*/
21318
20952
 
21319
 
 
21320
20953
/*
21321
20954
   Interpolation kernel specs:
21322
20955
 
21410
21043
void **inp,             /* pointer to input pointers */
21411
21044
unsigned int npix       /* Number of pixels to process */
21412
21045
) {
21413
 
        imdi_imp *p = (imdi_imp *)(s->impl);
21414
 
        unsigned char *ip0 = (unsigned char *)inp[0];
21415
 
        unsigned short *op0 = (unsigned short *)outp[0];
21416
 
        unsigned char *ep = ip0 + npix * 7 ;
21417
 
        pointer it0 = (pointer)p->in_tables[0];
21418
 
        pointer it1 = (pointer)p->in_tables[1];
21419
 
        pointer it2 = (pointer)p->in_tables[2];
21420
 
        pointer it3 = (pointer)p->in_tables[3];
21421
 
        pointer it4 = (pointer)p->in_tables[4];
21422
 
        pointer it5 = (pointer)p->in_tables[5];
21423
 
        pointer it6 = (pointer)p->in_tables[6];
21424
 
        pointer ot0 = (pointer)p->out_tables[0];
21425
 
        pointer ot1 = (pointer)p->out_tables[1];
21426
 
        pointer ot2 = (pointer)p->out_tables[2];
21427
 
        pointer im_base = (pointer)p->im_table;
21428
 
        
21429
 
        for(;ip0 < ep; ip0 += 7, op0 += 3) {
21430
 
                unsigned int ova0;      /* Output value accumulator */
21431
 
                unsigned int ova1;      /* Output value partial accumulator */
21432
 
                {
21433
 
                        pointer imp;
21434
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
21435
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
21436
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
21437
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
21438
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
21439
 
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
21440
 
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
21441
 
                        {
21442
 
                                unsigned int ti_i;      /* Interpolation index variable */
21443
 
                                
21444
 
                                ti_i  = IT_IX(it0, ip0[0]);
21445
 
                                wo0   = IT_WO(it0, ip0[0]);
21446
 
                                ti_i += IT_IX(it1, ip0[1]);
21447
 
                                wo1   = IT_WO(it1, ip0[1]);
21448
 
                                ti_i += IT_IX(it2, ip0[2]);
21449
 
                                wo2   = IT_WO(it2, ip0[2]);
21450
 
                                ti_i += IT_IX(it3, ip0[3]);
21451
 
                                wo3   = IT_WO(it3, ip0[3]);
21452
 
                                ti_i += IT_IX(it4, ip0[4]);
21453
 
                                wo4   = IT_WO(it4, ip0[4]);
21454
 
                                ti_i += IT_IX(it5, ip0[5]);
21455
 
                                wo5   = IT_WO(it5, ip0[5]);
21456
 
                                ti_i += IT_IX(it6, ip0[6]);
21457
 
                                wo6   = IT_WO(it6, ip0[6]);
21458
 
                                
21459
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
21460
 
                                
21461
 
                                /* Sort weighting values and vertex offset values */
21462
 
                                CEX(wo0, wo1);
21463
 
                                CEX(wo0, wo2);
21464
 
                                CEX(wo0, wo3);
21465
 
                                CEX(wo0, wo4);
21466
 
                                CEX(wo0, wo5);
21467
 
                                CEX(wo0, wo6);
21468
 
                                CEX(wo1, wo2);
21469
 
                                CEX(wo1, wo3);
21470
 
                                CEX(wo1, wo4);
21471
 
                                CEX(wo1, wo5);
21472
 
                                CEX(wo1, wo6);
21473
 
                                CEX(wo2, wo3);
21474
 
                                CEX(wo2, wo4);
21475
 
                                CEX(wo2, wo5);
21476
 
                                CEX(wo2, wo6);
21477
 
                                CEX(wo3, wo4);
21478
 
                                CEX(wo3, wo5);
21479
 
                                CEX(wo3, wo6);
21480
 
                                CEX(wo4, wo5);
21481
 
                                CEX(wo4, wo6);
21482
 
                                CEX(wo5, wo6);
21483
 
                        }
21484
 
                        {
21485
 
                                unsigned int nvof;      /* Next vertex offset value */
21486
 
                                unsigned int vof;       /* Vertex offset value */
21487
 
                                unsigned int vwe;       /* Vertex weighting */
21488
 
                                
21489
 
                                vof = 0;                                /* First vertex offset is 0 */
21490
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
21491
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
21492
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
21493
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
21494
 
                                ova1  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
21495
 
                                vof += nvof;                    /* Move to next vertex */
21496
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
21497
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
21498
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
21499
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
21500
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
21501
 
                                vof += nvof;                    /* Move to next vertex */
21502
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
21503
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
21504
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
21505
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
21506
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
21507
 
                                vof += nvof;                    /* Move to next vertex */
21508
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
21509
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
21510
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
21511
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
21512
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
21513
 
                                vof += nvof;                    /* Move to next vertex */
21514
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
21515
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
21516
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
21517
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
21518
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
21519
 
                                vof += nvof;                    /* Move to next vertex */
21520
 
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
21521
 
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
21522
 
                                vwe = wo4 - wo5;                /* Baricentric weighting */
21523
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
21524
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
21525
 
                                vof += nvof;                    /* Move to next vertex */
21526
 
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
21527
 
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
21528
 
                                vwe = wo5 - wo6;                /* Baricentric weighting */
21529
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
21530
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
21531
 
                                vof += nvof;                    /* Move to next vertex */
21532
 
                                vwe = wo6;                              /* Baricentric weighting */
21533
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
21534
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
21535
 
                        }
21536
 
                }
21537
 
                {
21538
 
                        unsigned int oti;       /* Vertex offset value */
21539
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
21540
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
21541
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
21542
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
21543
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
21544
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
21545
 
                }
21546
 
        }
 
21046
        imdi_imp *p = (imdi_imp *)(s->impl);
 
21047
        unsigned char *ip0 = (unsigned char *)inp[0];
 
21048
        unsigned short *op0 = (unsigned short *)outp[0];
 
21049
        unsigned char *ep = ip0 + npix * 7 ;
 
21050
        pointer it0 = (pointer)p->in_tables[0];
 
21051
        pointer it1 = (pointer)p->in_tables[1];
 
21052
        pointer it2 = (pointer)p->in_tables[2];
 
21053
        pointer it3 = (pointer)p->in_tables[3];
 
21054
        pointer it4 = (pointer)p->in_tables[4];
 
21055
        pointer it5 = (pointer)p->in_tables[5];
 
21056
        pointer it6 = (pointer)p->in_tables[6];
 
21057
        pointer ot0 = (pointer)p->out_tables[0];
 
21058
        pointer ot1 = (pointer)p->out_tables[1];
 
21059
        pointer ot2 = (pointer)p->out_tables[2];
 
21060
        pointer im_base = (pointer)p->im_table;
 
21061
 
 
21062
        for(;ip0 < ep; ip0 += 7, op0 += 3) {
 
21063
                unsigned int ova0;      /* Output value accumulator */
 
21064
                unsigned int ova1;      /* Output value partial accumulator */
 
21065
                {
 
21066
                        pointer imp;
 
21067
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
21068
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
21069
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
21070
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
21071
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
21072
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
 
21073
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
 
21074
                        {
 
21075
                                unsigned int ti_i;      /* Interpolation index variable */
 
21076
 
 
21077
                                ti_i  = IT_IX(it0, ip0[0]);
 
21078
                                wo0   = IT_WO(it0, ip0[0]);
 
21079
                                ti_i += IT_IX(it1, ip0[1]);
 
21080
                                wo1   = IT_WO(it1, ip0[1]);
 
21081
                                ti_i += IT_IX(it2, ip0[2]);
 
21082
                                wo2   = IT_WO(it2, ip0[2]);
 
21083
                                ti_i += IT_IX(it3, ip0[3]);
 
21084
                                wo3   = IT_WO(it3, ip0[3]);
 
21085
                                ti_i += IT_IX(it4, ip0[4]);
 
21086
                                wo4   = IT_WO(it4, ip0[4]);
 
21087
                                ti_i += IT_IX(it5, ip0[5]);
 
21088
                                wo5   = IT_WO(it5, ip0[5]);
 
21089
                                ti_i += IT_IX(it6, ip0[6]);
 
21090
                                wo6   = IT_WO(it6, ip0[6]);
 
21091
 
 
21092
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
21093
 
 
21094
                                /* Sort weighting values and vertex offset values */
 
21095
                                CEX(wo0, wo1);
 
21096
                                CEX(wo0, wo2);
 
21097
                                CEX(wo0, wo3);
 
21098
                                CEX(wo0, wo4);
 
21099
                                CEX(wo0, wo5);
 
21100
                                CEX(wo0, wo6);
 
21101
                                CEX(wo1, wo2);
 
21102
                                CEX(wo1, wo3);
 
21103
                                CEX(wo1, wo4);
 
21104
                                CEX(wo1, wo5);
 
21105
                                CEX(wo1, wo6);
 
21106
                                CEX(wo2, wo3);
 
21107
                                CEX(wo2, wo4);
 
21108
                                CEX(wo2, wo5);
 
21109
                                CEX(wo2, wo6);
 
21110
                                CEX(wo3, wo4);
 
21111
                                CEX(wo3, wo5);
 
21112
                                CEX(wo3, wo6);
 
21113
                                CEX(wo4, wo5);
 
21114
                                CEX(wo4, wo6);
 
21115
                                CEX(wo5, wo6);
 
21116
                        }
 
21117
                        {
 
21118
                                unsigned int nvof;      /* Next vertex offset value */
 
21119
                                unsigned int vof;       /* Vertex offset value */
 
21120
                                unsigned int vwe;       /* Vertex weighting */
 
21121
 
 
21122
                                vof = 0;                                /* First vertex offset is 0 */
 
21123
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
21124
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
21125
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
21126
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
21127
                                ova1  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
21128
                                vof += nvof;                    /* Move to next vertex */
 
21129
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
21130
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
21131
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
21132
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
21133
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
21134
                                vof += nvof;                    /* Move to next vertex */
 
21135
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
21136
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
21137
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
21138
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
21139
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
21140
                                vof += nvof;                    /* Move to next vertex */
 
21141
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
21142
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
21143
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
21144
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
21145
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
21146
                                vof += nvof;                    /* Move to next vertex */
 
21147
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
21148
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
21149
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
21150
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
21151
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
21152
                                vof += nvof;                    /* Move to next vertex */
 
21153
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
 
21154
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
 
21155
                                vwe = wo4 - wo5;                /* Baricentric weighting */
 
21156
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
21157
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
21158
                                vof += nvof;                    /* Move to next vertex */
 
21159
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
 
21160
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
 
21161
                                vwe = wo5 - wo6;                /* Baricentric weighting */
 
21162
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
21163
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
21164
                                vof += nvof;                    /* Move to next vertex */
 
21165
                                vwe = wo6;                              /* Baricentric weighting */
 
21166
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
21167
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
21168
                        }
 
21169
                }
 
21170
                {
 
21171
                        unsigned int oti;       /* Vertex offset value */
 
21172
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
21173
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
21174
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
21175
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
21176
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
21177
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
21178
                }
 
21179
        }
21547
21180
}
21548
21181
#undef IT_WO
21549
21182
#undef IT_IX
21557
21190
imdi_k62_gen(
21558
21191
genspec *g                      /* structure to be initialised */
21559
21192
) {
21560
 
        static unsigned char data[] = {
21561
 
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
21562
 
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
21563
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21564
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21565
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21566
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21567
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21568
 
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
21569
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
21570
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
21571
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
21572
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21573
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21574
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21575
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21576
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21577
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21578
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21579
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21580
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
21581
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
21582
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
21583
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21584
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21585
 
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
21586
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
21587
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21588
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21589
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21590
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21591
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21592
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21593
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
21594
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
21595
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21596
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21597
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
21598
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
21599
 
                0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21600
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
21601
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
21602
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
21603
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
21604
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
21605
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
21606
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
21607
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
21608
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
21609
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21610
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
21611
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
21612
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x37, 0x5f, 0x33, 0x5f, 
21613
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
21614
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
21615
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
21616
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
21617
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
21618
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
21619
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
21620
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21621
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21622
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21623
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21624
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
21625
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x36, 0x32, 
21626
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21627
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21628
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
21629
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
21630
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
21631
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
21632
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
21633
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
21634
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
21635
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
21636
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
21637
 
                0x00, 0xf0, 0x04, 0x08 
21638
 
        };      /* Structure image */
21639
 
        
21640
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
21193
        static unsigned char data[] = {
 
21194
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
21195
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
21196
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21197
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21198
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21199
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21200
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21201
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
21202
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
21203
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
21204
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
21205
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21206
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21207
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21208
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21209
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21210
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21211
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21212
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21213
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
21214
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
21215
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
21216
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21217
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21218
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
21219
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
21220
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21221
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21222
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21223
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21224
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21225
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21226
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
21227
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
21228
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21229
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21230
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
21231
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
21232
                0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21233
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
21234
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
21235
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
21236
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
21237
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
21238
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
21239
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
21240
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
21241
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
21242
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21243
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
21244
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
21245
                0x2c, 0xf3, 0xdc, 0xb7, 0x37, 0x5f, 0x33, 0x5f,
 
21246
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
21247
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
21248
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
21249
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
21250
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
21251
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
21252
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
21253
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21254
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21255
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21256
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21257
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
21258
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x36, 0x32,
 
21259
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21260
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21261
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
21262
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
21263
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
21264
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
21265
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
21266
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
21267
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
21268
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
21269
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
21270
                0x00, 0xf0, 0x04, 0x08
 
21271
        };      /* Structure image */
 
21272
 
 
21273
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
21641
21274
}
21642
21275
 
21643
21276
static void
21644
21277
imdi_k62_tab(
21645
21278
tabspec *t                      /* structure to be initialised */
21646
21279
) {
21647
 
        static unsigned char data[] = {
21648
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
21649
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
21650
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
21651
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
21652
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
21653
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
21654
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21655
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
21656
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
21657
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21658
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
21659
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
21660
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
21661
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
21662
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
21663
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
21664
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21665
 
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
21666
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
21667
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
21668
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
21669
 
                0x02, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
21670
 
                0xff, 0xff, 0xff, 0x33, 0x00, 0x00, 0x00, 0x00, 
21671
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
21672
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21673
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21674
 
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08, 
21675
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
21676
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
21677
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
21678
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
21679
 
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
21680
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
21681
 
        };      /* Structure image */
21682
 
        
21683
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
21280
        static unsigned char data[] = {
 
21281
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
21282
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
21283
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
21284
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
21285
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
21286
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
21287
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21288
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
21289
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
21290
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21291
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
21292
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
21293
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
21294
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
21295
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
21296
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
21297
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21298
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
21299
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
21300
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
21301
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
21302
                0x02, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
21303
                0xff, 0xff, 0xff, 0x33, 0x00, 0x00, 0x00, 0x00,
 
21304
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
21305
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21306
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21307
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08,
 
21308
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
21309
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
21310
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
21311
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
21312
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
21313
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
21314
        };      /* Structure image */
 
21315
 
 
21316
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
21684
21317
}
21685
21318
 
21686
 
 
21687
 
 
21688
 
 
21689
 
 
21690
 
 
21691
21319
/* Integer Multi-Dimensional Interpolation */
21692
21320
/* Interpolation Kernel Code */
21693
21321
/* Generated by cgen */
21696
21324
 
21697
21325
/* see the Licence.txt file for licencing details.*/
21698
21326
 
21699
 
 
21700
21327
/*
21701
21328
   Interpolation kernel specs:
21702
21329
 
21792
21419
void **inp,             /* pointer to input pointers */
21793
21420
unsigned int npix       /* Number of pixels to process */
21794
21421
) {
21795
 
        imdi_imp *p = (imdi_imp *)(s->impl);
21796
 
        unsigned char *ip0 = (unsigned char *)inp[0];
21797
 
        unsigned short *op0 = (unsigned short *)outp[0];
21798
 
        unsigned char *ep = ip0 + npix * 8 ;
21799
 
        pointer it0 = (pointer)p->in_tables[0];
21800
 
        pointer it1 = (pointer)p->in_tables[1];
21801
 
        pointer it2 = (pointer)p->in_tables[2];
21802
 
        pointer it3 = (pointer)p->in_tables[3];
21803
 
        pointer it4 = (pointer)p->in_tables[4];
21804
 
        pointer it5 = (pointer)p->in_tables[5];
21805
 
        pointer it6 = (pointer)p->in_tables[6];
21806
 
        pointer it7 = (pointer)p->in_tables[7];
21807
 
        pointer ot0 = (pointer)p->out_tables[0];
21808
 
        pointer ot1 = (pointer)p->out_tables[1];
21809
 
        pointer ot2 = (pointer)p->out_tables[2];
21810
 
        pointer im_base = (pointer)p->im_table;
21811
 
        
21812
 
        for(;ip0 < ep; ip0 += 8, op0 += 3) {
21813
 
                unsigned int ova0;      /* Output value accumulator */
21814
 
                unsigned int ova1;      /* Output value partial accumulator */
21815
 
                {
21816
 
                        pointer imp;
21817
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
21818
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
21819
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
21820
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
21821
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
21822
 
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
21823
 
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
21824
 
                        unsigned int wo7;       /* Weighting value and vertex offset variable */
21825
 
                        {
21826
 
                                unsigned int ti_i;      /* Interpolation index variable */
21827
 
                                
21828
 
                                ti_i  = IT_IX(it0, ip0[0]);
21829
 
                                wo0   = IT_WO(it0, ip0[0]);
21830
 
                                ti_i += IT_IX(it1, ip0[1]);
21831
 
                                wo1   = IT_WO(it1, ip0[1]);
21832
 
                                ti_i += IT_IX(it2, ip0[2]);
21833
 
                                wo2   = IT_WO(it2, ip0[2]);
21834
 
                                ti_i += IT_IX(it3, ip0[3]);
21835
 
                                wo3   = IT_WO(it3, ip0[3]);
21836
 
                                ti_i += IT_IX(it4, ip0[4]);
21837
 
                                wo4   = IT_WO(it4, ip0[4]);
21838
 
                                ti_i += IT_IX(it5, ip0[5]);
21839
 
                                wo5   = IT_WO(it5, ip0[5]);
21840
 
                                ti_i += IT_IX(it6, ip0[6]);
21841
 
                                wo6   = IT_WO(it6, ip0[6]);
21842
 
                                ti_i += IT_IX(it7, ip0[7]);
21843
 
                                wo7   = IT_WO(it7, ip0[7]);
21844
 
                                
21845
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
21846
 
                                
21847
 
                                /* Sort weighting values and vertex offset values */
21848
 
                                CEX(wo0, wo1);
21849
 
                                CEX(wo0, wo2);
21850
 
                                CEX(wo0, wo3);
21851
 
                                CEX(wo0, wo4);
21852
 
                                CEX(wo0, wo5);
21853
 
                                CEX(wo0, wo6);
21854
 
                                CEX(wo0, wo7);
21855
 
                                CEX(wo1, wo2);
21856
 
                                CEX(wo1, wo3);
21857
 
                                CEX(wo1, wo4);
21858
 
                                CEX(wo1, wo5);
21859
 
                                CEX(wo1, wo6);
21860
 
                                CEX(wo1, wo7);
21861
 
                                CEX(wo2, wo3);
21862
 
                                CEX(wo2, wo4);
21863
 
                                CEX(wo2, wo5);
21864
 
                                CEX(wo2, wo6);
21865
 
                                CEX(wo2, wo7);
21866
 
                                CEX(wo3, wo4);
21867
 
                                CEX(wo3, wo5);
21868
 
                                CEX(wo3, wo6);
21869
 
                                CEX(wo3, wo7);
21870
 
                                CEX(wo4, wo5);
21871
 
                                CEX(wo4, wo6);
21872
 
                                CEX(wo4, wo7);
21873
 
                                CEX(wo5, wo6);
21874
 
                                CEX(wo5, wo7);
21875
 
                                CEX(wo6, wo7);
21876
 
                        }
21877
 
                        {
21878
 
                                unsigned int nvof;      /* Next vertex offset value */
21879
 
                                unsigned int vof;       /* Vertex offset value */
21880
 
                                unsigned int vwe;       /* Vertex weighting */
21881
 
                                
21882
 
                                vof = 0;                                /* First vertex offset is 0 */
21883
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
21884
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
21885
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
21886
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
21887
 
                                ova1  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
21888
 
                                vof += nvof;                    /* Move to next vertex */
21889
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
21890
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
21891
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
21892
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
21893
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
21894
 
                                vof += nvof;                    /* Move to next vertex */
21895
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
21896
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
21897
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
21898
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
21899
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
21900
 
                                vof += nvof;                    /* Move to next vertex */
21901
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
21902
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
21903
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
21904
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
21905
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
21906
 
                                vof += nvof;                    /* Move to next vertex */
21907
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
21908
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
21909
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
21910
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
21911
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
21912
 
                                vof += nvof;                    /* Move to next vertex */
21913
 
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
21914
 
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
21915
 
                                vwe = wo4 - wo5;                /* Baricentric weighting */
21916
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
21917
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
21918
 
                                vof += nvof;                    /* Move to next vertex */
21919
 
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
21920
 
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
21921
 
                                vwe = wo5 - wo6;                /* Baricentric weighting */
21922
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
21923
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
21924
 
                                vof += nvof;                    /* Move to next vertex */
21925
 
                                nvof = (wo7 & 0x7fffff);        /* Extract offset value */
21926
 
                                wo7 = (wo7 >> 23);              /* Extract weighting value */
21927
 
                                vwe = wo6 - wo7;                /* Baricentric weighting */
21928
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
21929
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
21930
 
                                vof += nvof;                    /* Move to next vertex */
21931
 
                                vwe = wo7;                              /* Baricentric weighting */
21932
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
21933
 
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
21934
 
                        }
21935
 
                }
21936
 
                {
21937
 
                        unsigned int oti;       /* Vertex offset value */
21938
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
21939
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
21940
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
21941
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
21942
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
21943
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
21944
 
                }
21945
 
        }
 
21422
        imdi_imp *p = (imdi_imp *)(s->impl);
 
21423
        unsigned char *ip0 = (unsigned char *)inp[0];
 
21424
        unsigned short *op0 = (unsigned short *)outp[0];
 
21425
        unsigned char *ep = ip0 + npix * 8 ;
 
21426
        pointer it0 = (pointer)p->in_tables[0];
 
21427
        pointer it1 = (pointer)p->in_tables[1];
 
21428
        pointer it2 = (pointer)p->in_tables[2];
 
21429
        pointer it3 = (pointer)p->in_tables[3];
 
21430
        pointer it4 = (pointer)p->in_tables[4];
 
21431
        pointer it5 = (pointer)p->in_tables[5];
 
21432
        pointer it6 = (pointer)p->in_tables[6];
 
21433
        pointer it7 = (pointer)p->in_tables[7];
 
21434
        pointer ot0 = (pointer)p->out_tables[0];
 
21435
        pointer ot1 = (pointer)p->out_tables[1];
 
21436
        pointer ot2 = (pointer)p->out_tables[2];
 
21437
        pointer im_base = (pointer)p->im_table;
 
21438
 
 
21439
        for(;ip0 < ep; ip0 += 8, op0 += 3) {
 
21440
                unsigned int ova0;      /* Output value accumulator */
 
21441
                unsigned int ova1;      /* Output value partial accumulator */
 
21442
                {
 
21443
                        pointer imp;
 
21444
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
21445
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
21446
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
21447
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
21448
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
21449
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
 
21450
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
 
21451
                        unsigned int wo7;       /* Weighting value and vertex offset variable */
 
21452
                        {
 
21453
                                unsigned int ti_i;      /* Interpolation index variable */
 
21454
 
 
21455
                                ti_i  = IT_IX(it0, ip0[0]);
 
21456
                                wo0   = IT_WO(it0, ip0[0]);
 
21457
                                ti_i += IT_IX(it1, ip0[1]);
 
21458
                                wo1   = IT_WO(it1, ip0[1]);
 
21459
                                ti_i += IT_IX(it2, ip0[2]);
 
21460
                                wo2   = IT_WO(it2, ip0[2]);
 
21461
                                ti_i += IT_IX(it3, ip0[3]);
 
21462
                                wo3   = IT_WO(it3, ip0[3]);
 
21463
                                ti_i += IT_IX(it4, ip0[4]);
 
21464
                                wo4   = IT_WO(it4, ip0[4]);
 
21465
                                ti_i += IT_IX(it5, ip0[5]);
 
21466
                                wo5   = IT_WO(it5, ip0[5]);
 
21467
                                ti_i += IT_IX(it6, ip0[6]);
 
21468
                                wo6   = IT_WO(it6, ip0[6]);
 
21469
                                ti_i += IT_IX(it7, ip0[7]);
 
21470
                                wo7   = IT_WO(it7, ip0[7]);
 
21471
 
 
21472
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
21473
 
 
21474
                                /* Sort weighting values and vertex offset values */
 
21475
                                CEX(wo0, wo1);
 
21476
                                CEX(wo0, wo2);
 
21477
                                CEX(wo0, wo3);
 
21478
                                CEX(wo0, wo4);
 
21479
                                CEX(wo0, wo5);
 
21480
                                CEX(wo0, wo6);
 
21481
                                CEX(wo0, wo7);
 
21482
                                CEX(wo1, wo2);
 
21483
                                CEX(wo1, wo3);
 
21484
                                CEX(wo1, wo4);
 
21485
                                CEX(wo1, wo5);
 
21486
                                CEX(wo1, wo6);
 
21487
                                CEX(wo1, wo7);
 
21488
                                CEX(wo2, wo3);
 
21489
                                CEX(wo2, wo4);
 
21490
                                CEX(wo2, wo5);
 
21491
                                CEX(wo2, wo6);
 
21492
                                CEX(wo2, wo7);
 
21493
                                CEX(wo3, wo4);
 
21494
                                CEX(wo3, wo5);
 
21495
                                CEX(wo3, wo6);
 
21496
                                CEX(wo3, wo7);
 
21497
                                CEX(wo4, wo5);
 
21498
                                CEX(wo4, wo6);
 
21499
                                CEX(wo4, wo7);
 
21500
                                CEX(wo5, wo6);
 
21501
                                CEX(wo5, wo7);
 
21502
                                CEX(wo6, wo7);
 
21503
                        }
 
21504
                        {
 
21505
                                unsigned int nvof;      /* Next vertex offset value */
 
21506
                                unsigned int vof;       /* Vertex offset value */
 
21507
                                unsigned int vwe;       /* Vertex weighting */
 
21508
 
 
21509
                                vof = 0;                                /* First vertex offset is 0 */
 
21510
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
21511
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
21512
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
21513
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
21514
                                ova1  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
21515
                                vof += nvof;                    /* Move to next vertex */
 
21516
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
21517
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
21518
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
21519
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
21520
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
21521
                                vof += nvof;                    /* Move to next vertex */
 
21522
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
21523
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
21524
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
21525
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
21526
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
21527
                                vof += nvof;                    /* Move to next vertex */
 
21528
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
21529
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
21530
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
21531
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
21532
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
21533
                                vof += nvof;                    /* Move to next vertex */
 
21534
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
21535
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
21536
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
21537
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
21538
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
21539
                                vof += nvof;                    /* Move to next vertex */
 
21540
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
 
21541
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
 
21542
                                vwe = wo4 - wo5;                /* Baricentric weighting */
 
21543
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
21544
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
21545
                                vof += nvof;                    /* Move to next vertex */
 
21546
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
 
21547
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
 
21548
                                vwe = wo5 - wo6;                /* Baricentric weighting */
 
21549
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
21550
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
21551
                                vof += nvof;                    /* Move to next vertex */
 
21552
                                nvof = (wo7 & 0x7fffff);        /* Extract offset value */
 
21553
                                wo7 = (wo7 >> 23);              /* Extract weighting value */
 
21554
                                vwe = wo6 - wo7;                /* Baricentric weighting */
 
21555
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
21556
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
21557
                                vof += nvof;                    /* Move to next vertex */
 
21558
                                vwe = wo7;                              /* Baricentric weighting */
 
21559
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
21560
                                ova1 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
21561
                        }
 
21562
                }
 
21563
                {
 
21564
                        unsigned int oti;       /* Vertex offset value */
 
21565
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
21566
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
21567
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
21568
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
21569
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
21570
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
21571
                }
 
21572
        }
21946
21573
}
21947
21574
#undef IT_WO
21948
21575
#undef IT_IX
21956
21583
imdi_k63_gen(
21957
21584
genspec *g                      /* structure to be initialised */
21958
21585
) {
21959
 
        static unsigned char data[] = {
21960
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21961
 
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
21962
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21963
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21964
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21965
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21966
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21967
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21968
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21969
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21970
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21971
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21972
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21973
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21974
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21975
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21976
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21977
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21978
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21979
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
21980
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
21981
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
21982
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21983
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21984
 
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
21985
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
21986
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21987
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21988
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21989
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21990
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21991
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21992
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
21993
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
21994
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21995
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
21996
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
21997
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
21998
 
                0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
21999
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
22000
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
22001
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
22002
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
22003
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
22004
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
22005
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
22006
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
22007
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
22008
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22009
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
22010
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
22011
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x38, 0x5f, 0x33, 0x5f, 
22012
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
22013
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
22014
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
22015
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
22016
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
22017
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
22018
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
22019
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22020
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22021
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22022
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22023
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
22024
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x36, 0x33, 
22025
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22026
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22027
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
22028
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
22029
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
22030
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
22031
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
22032
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
22033
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
22034
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
22035
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
22036
 
                0x00, 0xf0, 0x04, 0x08 
22037
 
        };      /* Structure image */
22038
 
        
22039
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
21586
        static unsigned char data[] = {
 
21587
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21588
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
21589
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21590
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21591
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21592
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21593
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21594
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21595
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21596
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21597
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21598
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21599
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21600
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21601
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21602
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21603
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21604
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21605
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21606
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
21607
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
21608
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
21609
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21610
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21611
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
21612
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
21613
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21614
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21615
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21616
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21617
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21618
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21619
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
21620
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
21621
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21622
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21623
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
21624
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
21625
                0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21626
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
21627
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
21628
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
21629
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
21630
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
21631
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
21632
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
21633
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
21634
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
21635
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21636
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
21637
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
21638
                0x2c, 0xf3, 0xdc, 0xb7, 0x38, 0x5f, 0x33, 0x5f,
 
21639
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
21640
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
21641
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
21642
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
21643
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
21644
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
21645
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
21646
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21647
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21648
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21649
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21650
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
21651
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x36, 0x33,
 
21652
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21653
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21654
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
21655
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
21656
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
21657
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
21658
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
21659
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
21660
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
21661
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
21662
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
21663
                0x00, 0xf0, 0x04, 0x08
 
21664
        };      /* Structure image */
 
21665
 
 
21666
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
22040
21667
}
22041
21668
 
22042
21669
static void
22043
21670
imdi_k63_tab(
22044
21671
tabspec *t                      /* structure to be initialised */
22045
21672
) {
22046
 
        static unsigned char data[] = {
22047
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
22048
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
22049
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
22050
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
22051
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
22052
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
22053
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22054
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
22055
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
22056
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22057
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
22058
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
22059
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
22060
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
22061
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
22062
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
22063
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22064
 
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
22065
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
22066
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
22067
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
22068
 
                0x02, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
22069
 
                0xff, 0xff, 0xff, 0x33, 0x00, 0x00, 0x00, 0x00, 
22070
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
22071
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22072
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22073
 
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08, 
22074
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
22075
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
22076
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
22077
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
22078
 
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
22079
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
22080
 
        };      /* Structure image */
22081
 
        
22082
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
21673
        static unsigned char data[] = {
 
21674
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
21675
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
21676
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
21677
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
21678
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
21679
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
21680
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21681
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
21682
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
21683
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21684
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
21685
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
21686
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
21687
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
21688
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
21689
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
21690
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21691
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
21692
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
21693
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
21694
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
21695
                0x02, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
21696
                0xff, 0xff, 0xff, 0x33, 0x00, 0x00, 0x00, 0x00,
 
21697
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
21698
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21699
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21700
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08,
 
21701
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
21702
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
21703
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
21704
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
21705
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
21706
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
21707
        };      /* Structure image */
 
21708
 
 
21709
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
22083
21710
}
22084
21711
 
22085
 
 
22086
 
 
22087
 
 
22088
 
 
22089
 
 
22090
21712
/* Integer Multi-Dimensional Interpolation */
22091
21713
/* Interpolation Kernel Code */
22092
21714
/* Generated by cgen */
22095
21717
 
22096
21718
/* see the Licence.txt file for licencing details.*/
22097
21719
 
22098
 
 
22099
21720
/*
22100
21721
   Interpolation kernel specs:
22101
21722
 
22179
21800
void **inp,             /* pointer to input pointers */
22180
21801
unsigned int npix       /* Number of pixels to process */
22181
21802
) {
22182
 
        imdi_imp *p = (imdi_imp *)(s->impl);
22183
 
        unsigned char *ip0 = (unsigned char *)inp[0];
22184
 
        unsigned short *op0 = (unsigned short *)outp[0];
22185
 
        unsigned char *ep = ip0 + npix * 1 ;
22186
 
        pointer it0 = (pointer)p->in_tables[0];
22187
 
        pointer ot0 = (pointer)p->out_tables[0];
22188
 
        pointer ot1 = (pointer)p->out_tables[1];
22189
 
        pointer ot2 = (pointer)p->out_tables[2];
22190
 
        pointer ot3 = (pointer)p->out_tables[3];
22191
 
        pointer sw_base = (pointer)p->sw_table;
22192
 
        pointer im_base = (pointer)p->im_table;
22193
 
        
22194
 
        for(;ip0 < ep; ip0 += 1, op0 += 4) {
22195
 
                unsigned int ova0;      /* Output value accumulator */
22196
 
                unsigned int ova1;      /* Output value accumulator */
22197
 
                {
22198
 
                        pointer swp;
22199
 
                        pointer imp;
22200
 
                        {
22201
 
                                unsigned int ti;        /* Simplex+Interpolation index variable */
22202
 
                                
22203
 
                                ti  = IT_IT(it0, ip0[0]);
22204
 
                                
22205
 
                                imp = im_base + IM_O(ti >> 0);          /* Extract interp. index and comp. entry */
22206
 
                                swp = sw_base + SW_O(ti & 0x0); /* Extract simplex index and comp. entry */
22207
 
                        }
22208
 
                        {
22209
 
                                unsigned int vowr;      /* Vertex offset/weight value */
22210
 
                                unsigned int vof;       /* Vertex offset value */
22211
 
                                unsigned int vwe;       /* Vertex weighting */
22212
 
                                
22213
 
                                vowr = SX_WO(swp, 0);   /* Read vertex offset+weighting values */
22214
 
                                vof = (vowr & 0x7f);    /* Extract offset value */
22215
 
                                vwe = (vowr >> 7);      /* Extract weighting value */
22216
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
22217
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
22218
 
                                vowr = SX_WO(swp, 1);   /* Read vertex offset+weighting values */
22219
 
                                vof = (vowr & 0x7f);    /* Extract offset value */
22220
 
                                vwe = (vowr >> 7);      /* Extract weighting value */
22221
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
22222
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
22223
 
                        }
22224
 
                }
22225
 
                {
22226
 
                        unsigned int oti;       /* Vertex offset value */
22227
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
22228
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
22229
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
22230
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
22231
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
22232
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
22233
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
22234
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
22235
 
                }
22236
 
        }
 
21803
        imdi_imp *p = (imdi_imp *)(s->impl);
 
21804
        unsigned char *ip0 = (unsigned char *)inp[0];
 
21805
        unsigned short *op0 = (unsigned short *)outp[0];
 
21806
        unsigned char *ep = ip0 + npix * 1 ;
 
21807
        pointer it0 = (pointer)p->in_tables[0];
 
21808
        pointer ot0 = (pointer)p->out_tables[0];
 
21809
        pointer ot1 = (pointer)p->out_tables[1];
 
21810
        pointer ot2 = (pointer)p->out_tables[2];
 
21811
        pointer ot3 = (pointer)p->out_tables[3];
 
21812
        pointer sw_base = (pointer)p->sw_table;
 
21813
        pointer im_base = (pointer)p->im_table;
 
21814
 
 
21815
        for(;ip0 < ep; ip0 += 1, op0 += 4) {
 
21816
                unsigned int ova0;      /* Output value accumulator */
 
21817
                unsigned int ova1;      /* Output value accumulator */
 
21818
                {
 
21819
                        pointer swp;
 
21820
                        pointer imp;
 
21821
                        {
 
21822
                                unsigned int ti;        /* Simplex+Interpolation index variable */
 
21823
 
 
21824
                                ti  = IT_IT(it0, ip0[0]);
 
21825
 
 
21826
                                imp = im_base + IM_O(ti >> 0);          /* Extract interp. index and comp. entry */
 
21827
                                swp = sw_base + SW_O(ti & 0x0); /* Extract simplex index and comp. entry */
 
21828
                        }
 
21829
                        {
 
21830
                                unsigned int vowr;      /* Vertex offset/weight value */
 
21831
                                unsigned int vof;       /* Vertex offset value */
 
21832
                                unsigned int vwe;       /* Vertex weighting */
 
21833
 
 
21834
                                vowr = SX_WO(swp, 0);   /* Read vertex offset+weighting values */
 
21835
                                vof = (vowr & 0x7f);    /* Extract offset value */
 
21836
                                vwe = (vowr >> 7);      /* Extract weighting value */
 
21837
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
21838
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
21839
                                vowr = SX_WO(swp, 1);   /* Read vertex offset+weighting values */
 
21840
                                vof = (vowr & 0x7f);    /* Extract offset value */
 
21841
                                vwe = (vowr >> 7);      /* Extract weighting value */
 
21842
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
21843
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
21844
                        }
 
21845
                }
 
21846
                {
 
21847
                        unsigned int oti;       /* Vertex offset value */
 
21848
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
21849
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
21850
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
21851
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
21852
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
21853
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
21854
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
21855
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
21856
                }
 
21857
        }
22237
21858
}
22238
21859
#undef IT_IT
22239
21860
#undef SW_O
22246
21867
imdi_k64_gen(
22247
21868
genspec *g                      /* structure to be initialised */
22248
21869
) {
22249
 
        static unsigned char data[] = {
22250
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
22251
 
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
22252
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22253
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22254
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22255
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22256
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22257
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
22258
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22259
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22260
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22261
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22262
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22263
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22264
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22265
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22266
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22267
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22268
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22269
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
22270
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
22271
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
22272
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22273
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22274
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
22275
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
22276
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22277
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22278
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22279
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22280
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22281
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22282
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
22283
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
22284
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22285
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22286
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
22287
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
22288
 
                0xff, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
22289
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
22290
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
22291
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
22292
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
22293
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
22294
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
22295
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
22296
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
22297
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
22298
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22299
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
22300
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
22301
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x31, 0x5f, 0x34, 0x5f, 
22302
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
22303
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
22304
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
22305
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
22306
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
22307
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
22308
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
22309
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22310
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22311
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22312
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22313
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
22314
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x36, 0x34, 
22315
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22316
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22317
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
22318
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
22319
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
22320
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
22321
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
22322
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
22323
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
22324
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
22325
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
22326
 
                0x00, 0xf0, 0x04, 0x08 
22327
 
        };      /* Structure image */
22328
 
        
22329
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
21870
        static unsigned char data[] = {
 
21871
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
21872
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
21873
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21874
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21875
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21876
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21877
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21878
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
21879
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21880
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21881
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21882
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21883
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21884
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21885
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21886
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21887
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21888
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21889
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21890
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
21891
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
21892
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
21893
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21894
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21895
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
21896
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
21897
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21898
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21899
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21900
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21901
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21902
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21903
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
21904
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
21905
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21906
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21907
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
21908
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
21909
                0xff, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
21910
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
21911
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
21912
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
21913
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
21914
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
21915
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
21916
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
21917
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
21918
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
21919
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21920
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
21921
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
21922
                0x2c, 0xf3, 0xdc, 0xb7, 0x31, 0x5f, 0x34, 0x5f,
 
21923
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
21924
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
21925
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
21926
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
21927
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
21928
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
21929
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
21930
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21931
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21932
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21933
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21934
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
21935
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x36, 0x34,
 
21936
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21937
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21938
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
21939
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
21940
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
21941
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
21942
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
21943
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
21944
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
21945
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
21946
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
21947
                0x00, 0xf0, 0x04, 0x08
 
21948
        };      /* Structure image */
 
21949
 
 
21950
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
22330
21951
}
22331
21952
 
22332
21953
static void
22333
21954
imdi_k64_tab(
22334
21955
tabspec *t                      /* structure to be initialised */
22335
21956
) {
22336
 
        static unsigned char data[] = {
22337
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22338
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
22339
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
22340
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
22341
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
22342
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
22343
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
22344
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
22345
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22346
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22347
 
                0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
22348
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22349
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
22350
 
                0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
22351
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
22352
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
22353
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22354
 
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
22355
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22356
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22357
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
22358
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
22359
 
                0xff, 0xff, 0xff, 0x34, 0x00, 0x00, 0x00, 0x00, 
22360
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
22361
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22362
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22363
 
                0x00, 0x00, 0x00, 0x00, 0x52, 0xca, 0x04, 0x08, 
22364
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
22365
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
22366
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
22367
 
                0x10, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
22368
 
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
22369
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
22370
 
        };      /* Structure image */
22371
 
        
22372
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
21957
        static unsigned char data[] = {
 
21958
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21959
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
21960
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
21961
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
21962
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
21963
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
21964
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
21965
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
21966
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21967
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21968
                0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
21969
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21970
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
21971
                0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
21972
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
21973
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
21974
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
21975
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
21976
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21977
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21978
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
21979
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
21980
                0xff, 0xff, 0xff, 0x34, 0x00, 0x00, 0x00, 0x00,
 
21981
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
21982
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21983
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
21984
                0x00, 0x00, 0x00, 0x00, 0x52, 0xca, 0x04, 0x08,
 
21985
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
21986
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
21987
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
21988
                0x10, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
21989
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
21990
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
21991
        };      /* Structure image */
 
21992
 
 
21993
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
22373
21994
}
22374
21995
 
22375
 
 
22376
 
 
22377
 
 
22378
 
 
22379
 
 
22380
21996
/* Integer Multi-Dimensional Interpolation */
22381
21997
/* Interpolation Kernel Code */
22382
21998
/* Generated by cgen */
22385
22001
 
22386
22002
/* see the Licence.txt file for licencing details.*/
22387
22003
 
22388
 
 
22389
22004
/*
22390
22005
   Interpolation kernel specs:
22391
22006
 
22476
22091
void **inp,             /* pointer to input pointers */
22477
22092
unsigned int npix       /* Number of pixels to process */
22478
22093
) {
22479
 
        imdi_imp *p = (imdi_imp *)(s->impl);
22480
 
        unsigned char *ip0 = (unsigned char *)inp[0];
22481
 
        unsigned short *op0 = (unsigned short *)outp[0];
22482
 
        unsigned char *ep = ip0 + npix * 3 ;
22483
 
        pointer it0 = (pointer)p->in_tables[0];
22484
 
        pointer it1 = (pointer)p->in_tables[1];
22485
 
        pointer it2 = (pointer)p->in_tables[2];
22486
 
        pointer ot0 = (pointer)p->out_tables[0];
22487
 
        pointer ot1 = (pointer)p->out_tables[1];
22488
 
        pointer ot2 = (pointer)p->out_tables[2];
22489
 
        pointer ot3 = (pointer)p->out_tables[3];
22490
 
        pointer sw_base = (pointer)p->sw_table;
22491
 
        pointer im_base = (pointer)p->im_table;
22492
 
        
22493
 
        for(;ip0 < ep; ip0 += 3, op0 += 4) {
22494
 
                unsigned int ova0;      /* Output value accumulator */
22495
 
                unsigned int ova1;      /* Output value accumulator */
22496
 
                {
22497
 
                        pointer swp;
22498
 
                        pointer imp;
22499
 
                        {
22500
 
                                unsigned int ti;        /* Simplex+Interpolation index variable */
22501
 
                                
22502
 
                                ti  = IT_IT(it0, ip0[0]);
22503
 
                                ti += IT_IT(it1, ip0[1]);
22504
 
                                ti += IT_IT(it2, ip0[2]);
22505
 
                                
22506
 
                                imp = im_base + IM_O(ti >> 12);         /* Extract interp. index and comp. entry */
22507
 
                                swp = sw_base + SW_O(ti & 0xfff);       /* Extract simplex index and comp. entry */
22508
 
                        }
22509
 
                        {
22510
 
                                unsigned int vof;       /* Vertex offset value */
22511
 
                                unsigned int vwe;       /* Vertex weighting */
22512
 
                                
22513
 
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
22514
 
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
22515
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
22516
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
22517
 
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
22518
 
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
22519
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
22520
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
22521
 
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
22522
 
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
22523
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
22524
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
22525
 
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
22526
 
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
22527
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
22528
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
22529
 
                        }
22530
 
                }
22531
 
                {
22532
 
                        unsigned int oti;       /* Vertex offset value */
22533
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
22534
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
22535
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
22536
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
22537
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
22538
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
22539
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
22540
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
22541
 
                }
22542
 
        }
 
22094
        imdi_imp *p = (imdi_imp *)(s->impl);
 
22095
        unsigned char *ip0 = (unsigned char *)inp[0];
 
22096
        unsigned short *op0 = (unsigned short *)outp[0];
 
22097
        unsigned char *ep = ip0 + npix * 3 ;
 
22098
        pointer it0 = (pointer)p->in_tables[0];
 
22099
        pointer it1 = (pointer)p->in_tables[1];
 
22100
        pointer it2 = (pointer)p->in_tables[2];
 
22101
        pointer ot0 = (pointer)p->out_tables[0];
 
22102
        pointer ot1 = (pointer)p->out_tables[1];
 
22103
        pointer ot2 = (pointer)p->out_tables[2];
 
22104
        pointer ot3 = (pointer)p->out_tables[3];
 
22105
        pointer sw_base = (pointer)p->sw_table;
 
22106
        pointer im_base = (pointer)p->im_table;
 
22107
 
 
22108
        for(;ip0 < ep; ip0 += 3, op0 += 4) {
 
22109
                unsigned int ova0;      /* Output value accumulator */
 
22110
                unsigned int ova1;      /* Output value accumulator */
 
22111
                {
 
22112
                        pointer swp;
 
22113
                        pointer imp;
 
22114
                        {
 
22115
                                unsigned int ti;        /* Simplex+Interpolation index variable */
 
22116
 
 
22117
                                ti  = IT_IT(it0, ip0[0]);
 
22118
                                ti += IT_IT(it1, ip0[1]);
 
22119
                                ti += IT_IT(it2, ip0[2]);
 
22120
 
 
22121
                                imp = im_base + IM_O(ti >> 12);         /* Extract interp. index and comp. entry */
 
22122
                                swp = sw_base + SW_O(ti & 0xfff);       /* Extract simplex index and comp. entry */
 
22123
                        }
 
22124
                        {
 
22125
                                unsigned int vof;       /* Vertex offset value */
 
22126
                                unsigned int vwe;       /* Vertex weighting */
 
22127
 
 
22128
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
 
22129
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
 
22130
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
22131
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
22132
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
 
22133
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
 
22134
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
22135
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
22136
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
 
22137
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
 
22138
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
22139
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
22140
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
 
22141
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
 
22142
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
22143
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
22144
                        }
 
22145
                }
 
22146
                {
 
22147
                        unsigned int oti;       /* Vertex offset value */
 
22148
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
22149
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
22150
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
22151
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
22152
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
22153
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
22154
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
22155
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
22156
                }
 
22157
        }
22543
22158
}
22544
22159
#undef IT_IT
22545
22160
#undef SW_O
22553
22168
imdi_k65_gen(
22554
22169
genspec *g                      /* structure to be initialised */
22555
22170
) {
22556
 
        static unsigned char data[] = {
22557
 
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
22558
 
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
22559
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22560
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22561
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22562
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22563
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22564
 
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
22565
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
22566
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22567
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22568
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22569
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22570
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22571
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22572
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22573
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22574
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22575
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22576
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
22577
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
22578
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
22579
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22580
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22581
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
22582
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
22583
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22584
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22585
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22586
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22587
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22588
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22589
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
22590
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
22591
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22592
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22593
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
22594
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
22595
 
                0x65, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
22596
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
22597
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
22598
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
22599
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
22600
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
22601
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
22602
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
22603
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
22604
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
22605
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22606
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
22607
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
22608
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x33, 0x5f, 0x34, 0x5f, 
22609
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
22610
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
22611
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
22612
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
22613
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
22614
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
22615
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
22616
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22617
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22618
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22619
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22620
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
22621
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x36, 0x35, 
22622
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22623
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22624
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
22625
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
22626
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
22627
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
22628
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
22629
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
22630
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
22631
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
22632
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
22633
 
                0x00, 0xf0, 0x04, 0x08 
22634
 
        };      /* Structure image */
22635
 
        
22636
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
22171
        static unsigned char data[] = {
 
22172
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
22173
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
22174
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22175
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22176
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22177
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22178
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22179
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
22180
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
22181
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22182
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22183
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22184
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22185
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22186
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22187
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22188
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22189
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22190
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22191
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
22192
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
22193
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
22194
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22195
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22196
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
22197
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
22198
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22199
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22200
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22201
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22202
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22203
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22204
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
22205
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
22206
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22207
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22208
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
22209
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
22210
                0x65, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
22211
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
22212
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
22213
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
22214
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
22215
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
22216
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
22217
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
22218
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
22219
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
22220
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22221
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
22222
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
22223
                0x2c, 0xf3, 0xdc, 0xb7, 0x33, 0x5f, 0x34, 0x5f,
 
22224
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
22225
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
22226
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
22227
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
22228
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
22229
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
22230
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
22231
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22232
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22233
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22234
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22235
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
22236
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x36, 0x35,
 
22237
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22238
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22239
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
22240
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
22241
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
22242
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
22243
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
22244
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
22245
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
22246
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
22247
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
22248
                0x00, 0xf0, 0x04, 0x08
 
22249
        };      /* Structure image */
 
22250
 
 
22251
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
22637
22252
}
22638
22253
 
22639
22254
static void
22640
22255
imdi_k65_tab(
22641
22256
tabspec *t                      /* structure to be initialised */
22642
22257
) {
22643
 
        static unsigned char data[] = {
22644
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22645
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
22646
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
22647
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
22648
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
22649
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
22650
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
22651
 
                0x14, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
22652
 
                0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 
22653
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22654
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
22655
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22656
 
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
22657
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
22658
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
22659
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
22660
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22661
 
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
22662
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22663
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22664
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
22665
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
22666
 
                0xff, 0xff, 0xff, 0x34, 0x00, 0x00, 0x00, 0x00, 
22667
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
22668
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22669
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22670
 
                0x00, 0x00, 0x00, 0x00, 0x52, 0xca, 0x04, 0x08, 
22671
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
22672
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
22673
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
22674
 
                0x10, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
22675
 
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
22676
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
22677
 
        };      /* Structure image */
22678
 
        
22679
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
22258
        static unsigned char data[] = {
 
22259
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22260
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
22261
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
22262
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
22263
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
22264
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
22265
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
22266
                0x14, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
22267
                0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
 
22268
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22269
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
22270
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22271
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
22272
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
22273
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
22274
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
22275
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22276
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
22277
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22278
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22279
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
22280
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
22281
                0xff, 0xff, 0xff, 0x34, 0x00, 0x00, 0x00, 0x00,
 
22282
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
22283
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22284
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22285
                0x00, 0x00, 0x00, 0x00, 0x52, 0xca, 0x04, 0x08,
 
22286
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
22287
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
22288
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
22289
                0x10, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
22290
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
22291
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
22292
        };      /* Structure image */
 
22293
 
 
22294
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
22680
22295
}
22681
22296
 
22682
 
 
22683
 
 
22684
 
 
22685
 
 
22686
 
 
22687
22297
/* Integer Multi-Dimensional Interpolation */
22688
22298
/* Interpolation Kernel Code */
22689
22299
/* Generated by cgen */
22692
22302
 
22693
22303
/* see the Licence.txt file for licencing details.*/
22694
22304
 
22695
 
 
22696
22305
/*
22697
22306
   Interpolation kernel specs:
22698
22307
 
22788
22397
void **inp,             /* pointer to input pointers */
22789
22398
unsigned int npix       /* Number of pixels to process */
22790
22399
) {
22791
 
        imdi_imp *p = (imdi_imp *)(s->impl);
22792
 
        unsigned char *ip0 = (unsigned char *)inp[0];
22793
 
        unsigned short *op0 = (unsigned short *)outp[0];
22794
 
        unsigned char *ep = ip0 + npix * 4 ;
22795
 
        pointer it0 = (pointer)p->in_tables[0];
22796
 
        pointer it1 = (pointer)p->in_tables[1];
22797
 
        pointer it2 = (pointer)p->in_tables[2];
22798
 
        pointer it3 = (pointer)p->in_tables[3];
22799
 
        pointer ot0 = (pointer)p->out_tables[0];
22800
 
        pointer ot1 = (pointer)p->out_tables[1];
22801
 
        pointer ot2 = (pointer)p->out_tables[2];
22802
 
        pointer ot3 = (pointer)p->out_tables[3];
22803
 
        pointer sw_base = (pointer)p->sw_table;
22804
 
        pointer im_base = (pointer)p->im_table;
22805
 
        
22806
 
        for(;ip0 < ep; ip0 += 4, op0 += 4) {
22807
 
                unsigned int ova0;      /* Output value accumulator */
22808
 
                unsigned int ova1;      /* Output value accumulator */
22809
 
                {
22810
 
                        pointer swp;
22811
 
                        pointer imp;
22812
 
                        {
22813
 
                                unsigned int ti_s;      /* Simplex index variable */
22814
 
                                unsigned int ti_i;      /* Interpolation index variable */
22815
 
                                
22816
 
                                ti_i  = IT_IX(it0, ip0[0]);
22817
 
                                ti_s  = IT_SX(it0, ip0[0]);
22818
 
                                ti_i += IT_IX(it1, ip0[1]);
22819
 
                                ti_s += IT_SX(it1, ip0[1]);
22820
 
                                ti_i += IT_IX(it2, ip0[2]);
22821
 
                                ti_s += IT_SX(it2, ip0[2]);
22822
 
                                ti_i += IT_IX(it3, ip0[3]);
22823
 
                                ti_s += IT_SX(it3, ip0[3]);
22824
 
                                
22825
 
                                swp = sw_base + SW_O(ti_s);             /* Compute simplex table entry pointer */
22826
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
22827
 
                        }
22828
 
                        {
22829
 
                                unsigned int vof;       /* Vertex offset value */
22830
 
                                unsigned int vwe;       /* Vertex weighting */
22831
 
                                
22832
 
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
22833
 
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
22834
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
22835
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
22836
 
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
22837
 
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
22838
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
22839
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
22840
 
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
22841
 
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
22842
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
22843
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
22844
 
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
22845
 
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
22846
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
22847
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
22848
 
                                vof = SX_VO(swp, 4);    /* Read vertex offset value */
22849
 
                                vwe = SX_WE(swp, 4);    /* Read vertex weighting value */
22850
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
22851
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
22852
 
                        }
22853
 
                }
22854
 
                {
22855
 
                        unsigned int oti;       /* Vertex offset value */
22856
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
22857
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
22858
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
22859
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
22860
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
22861
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
22862
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
22863
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
22864
 
                }
22865
 
        }
 
22400
        imdi_imp *p = (imdi_imp *)(s->impl);
 
22401
        unsigned char *ip0 = (unsigned char *)inp[0];
 
22402
        unsigned short *op0 = (unsigned short *)outp[0];
 
22403
        unsigned char *ep = ip0 + npix * 4 ;
 
22404
        pointer it0 = (pointer)p->in_tables[0];
 
22405
        pointer it1 = (pointer)p->in_tables[1];
 
22406
        pointer it2 = (pointer)p->in_tables[2];
 
22407
        pointer it3 = (pointer)p->in_tables[3];
 
22408
        pointer ot0 = (pointer)p->out_tables[0];
 
22409
        pointer ot1 = (pointer)p->out_tables[1];
 
22410
        pointer ot2 = (pointer)p->out_tables[2];
 
22411
        pointer ot3 = (pointer)p->out_tables[3];
 
22412
        pointer sw_base = (pointer)p->sw_table;
 
22413
        pointer im_base = (pointer)p->im_table;
 
22414
 
 
22415
        for(;ip0 < ep; ip0 += 4, op0 += 4) {
 
22416
                unsigned int ova0;      /* Output value accumulator */
 
22417
                unsigned int ova1;      /* Output value accumulator */
 
22418
                {
 
22419
                        pointer swp;
 
22420
                        pointer imp;
 
22421
                        {
 
22422
                                unsigned int ti_s;      /* Simplex index variable */
 
22423
                                unsigned int ti_i;      /* Interpolation index variable */
 
22424
 
 
22425
                                ti_i  = IT_IX(it0, ip0[0]);
 
22426
                                ti_s  = IT_SX(it0, ip0[0]);
 
22427
                                ti_i += IT_IX(it1, ip0[1]);
 
22428
                                ti_s += IT_SX(it1, ip0[1]);
 
22429
                                ti_i += IT_IX(it2, ip0[2]);
 
22430
                                ti_s += IT_SX(it2, ip0[2]);
 
22431
                                ti_i += IT_IX(it3, ip0[3]);
 
22432
                                ti_s += IT_SX(it3, ip0[3]);
 
22433
 
 
22434
                                swp = sw_base + SW_O(ti_s);             /* Compute simplex table entry pointer */
 
22435
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
22436
                        }
 
22437
                        {
 
22438
                                unsigned int vof;       /* Vertex offset value */
 
22439
                                unsigned int vwe;       /* Vertex weighting */
 
22440
 
 
22441
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
 
22442
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
 
22443
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
22444
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
22445
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
 
22446
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
 
22447
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
22448
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
22449
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
 
22450
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
 
22451
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
22452
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
22453
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
 
22454
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
 
22455
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
22456
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
22457
                                vof = SX_VO(swp, 4);    /* Read vertex offset value */
 
22458
                                vwe = SX_WE(swp, 4);    /* Read vertex weighting value */
 
22459
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
22460
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
22461
                        }
 
22462
                }
 
22463
                {
 
22464
                        unsigned int oti;       /* Vertex offset value */
 
22465
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
22466
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
22467
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
22468
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
22469
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
22470
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
22471
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
22472
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
22473
                }
 
22474
        }
22866
22475
}
22867
22476
#undef IT_IX
22868
22477
#undef IT_SX
22877
22486
imdi_k66_gen(
22878
22487
genspec *g                      /* structure to be initialised */
22879
22488
) {
22880
 
        static unsigned char data[] = {
22881
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
22882
 
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
22883
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22884
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22885
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22886
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22887
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22888
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
22889
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
22890
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22891
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22892
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22893
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22894
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22895
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22896
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22897
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22898
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22899
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22900
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
22901
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
22902
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
22903
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22904
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22905
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
22906
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
22907
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22908
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22909
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22910
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22911
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22912
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22913
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
22914
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
22915
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22916
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22917
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
22918
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
22919
 
                0x27, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 
22920
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
22921
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
22922
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
22923
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
22924
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
22925
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
22926
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
22927
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
22928
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
22929
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22930
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
22931
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
22932
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x34, 0x5f, 0x34, 0x5f, 
22933
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
22934
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
22935
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
22936
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
22937
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
22938
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
22939
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
22940
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22941
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22942
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22943
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22944
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
22945
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x36, 0x36, 
22946
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22947
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22948
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
22949
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
22950
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
22951
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
22952
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
22953
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
22954
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
22955
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
22956
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
22957
 
                0x00, 0xf0, 0x04, 0x08 
22958
 
        };      /* Structure image */
22959
 
        
22960
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
22489
        static unsigned char data[] = {
 
22490
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
22491
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
22492
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22493
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22494
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22495
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22496
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22497
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
22498
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
22499
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22500
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22501
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22502
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22503
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22504
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22505
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22506
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22507
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22508
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22509
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
22510
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
22511
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
22512
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22513
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22514
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
22515
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
22516
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22517
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22518
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22519
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22520
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22521
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22522
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
22523
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
22524
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22525
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22526
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
22527
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
22528
                0x27, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00,
 
22529
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
22530
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
22531
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
22532
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
22533
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
22534
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
22535
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
22536
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
22537
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
22538
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22539
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
22540
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
22541
                0x2c, 0xf3, 0xdc, 0xb7, 0x34, 0x5f, 0x34, 0x5f,
 
22542
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
22543
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
22544
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
22545
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
22546
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
22547
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
22548
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
22549
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22550
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22551
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22552
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22553
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
22554
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x36, 0x36,
 
22555
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22556
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22557
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
22558
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
22559
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
22560
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
22561
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
22562
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
22563
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
22564
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
22565
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
22566
                0x00, 0xf0, 0x04, 0x08
 
22567
        };      /* Structure image */
 
22568
 
 
22569
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
22961
22570
}
22962
22571
 
22963
22572
static void
22964
22573
imdi_k66_tab(
22965
22574
tabspec *t                      /* structure to be initialised */
22966
22575
) {
22967
 
        static unsigned char data[] = {
22968
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
22969
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
22970
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
22971
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
22972
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
22973
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
22974
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22975
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
22976
 
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
22977
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22978
 
                0x14, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
22979
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22980
 
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
22981
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
22982
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
22983
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
22984
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
22985
 
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
22986
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22987
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22988
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
22989
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
22990
 
                0xff, 0xff, 0xff, 0x34, 0x00, 0x00, 0x00, 0x00, 
22991
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
22992
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22993
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
22994
 
                0x00, 0x00, 0x00, 0x00, 0x52, 0xca, 0x04, 0x08, 
22995
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
22996
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
22997
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
22998
 
                0x10, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
22999
 
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
23000
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
23001
 
        };      /* Structure image */
23002
 
        
23003
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
22576
        static unsigned char data[] = {
 
22577
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
22578
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
22579
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
22580
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
22581
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
22582
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
22583
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22584
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
22585
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
22586
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22587
                0x14, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
22588
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22589
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
22590
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
22591
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
22592
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
22593
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22594
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
22595
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22596
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22597
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
22598
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
22599
                0xff, 0xff, 0xff, 0x34, 0x00, 0x00, 0x00, 0x00,
 
22600
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
22601
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22602
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22603
                0x00, 0x00, 0x00, 0x00, 0x52, 0xca, 0x04, 0x08,
 
22604
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
22605
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
22606
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
22607
                0x10, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
22608
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
22609
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
22610
        };      /* Structure image */
 
22611
 
 
22612
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
23004
22613
}
23005
22614
 
23006
 
 
23007
 
 
23008
 
 
23009
 
 
23010
 
 
23011
22615
/* Integer Multi-Dimensional Interpolation */
23012
22616
/* Interpolation Kernel Code */
23013
22617
/* Generated by cgen */
23016
22620
 
23017
22621
/* see the Licence.txt file for licencing details.*/
23018
22622
 
23019
 
 
23020
22623
/*
23021
22624
   Interpolation kernel specs:
23022
22625
 
23107
22710
void **inp,             /* pointer to input pointers */
23108
22711
unsigned int npix       /* Number of pixels to process */
23109
22712
) {
23110
 
        imdi_imp *p = (imdi_imp *)(s->impl);
23111
 
        unsigned char *ip0 = (unsigned char *)inp[0];
23112
 
        unsigned short *op0 = (unsigned short *)outp[0];
23113
 
        unsigned char *ep = ip0 + npix * 5 ;
23114
 
        pointer it0 = (pointer)p->in_tables[0];
23115
 
        pointer it1 = (pointer)p->in_tables[1];
23116
 
        pointer it2 = (pointer)p->in_tables[2];
23117
 
        pointer it3 = (pointer)p->in_tables[3];
23118
 
        pointer it4 = (pointer)p->in_tables[4];
23119
 
        pointer ot0 = (pointer)p->out_tables[0];
23120
 
        pointer ot1 = (pointer)p->out_tables[1];
23121
 
        pointer ot2 = (pointer)p->out_tables[2];
23122
 
        pointer ot3 = (pointer)p->out_tables[3];
23123
 
        pointer im_base = (pointer)p->im_table;
23124
 
        
23125
 
        for(;ip0 < ep; ip0 += 5, op0 += 4) {
23126
 
                unsigned int ova0;      /* Output value accumulator */
23127
 
                unsigned int ova1;      /* Output value accumulator */
23128
 
                {
23129
 
                        pointer imp;
23130
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
23131
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
23132
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
23133
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
23134
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
23135
 
                        {
23136
 
                                unsigned int ti_i;      /* Interpolation index variable */
23137
 
                                
23138
 
                                ti_i  = IT_IX(it0, ip0[0]);
23139
 
                                wo0   = IT_WO(it0, ip0[0]);
23140
 
                                ti_i += IT_IX(it1, ip0[1]);
23141
 
                                wo1   = IT_WO(it1, ip0[1]);
23142
 
                                ti_i += IT_IX(it2, ip0[2]);
23143
 
                                wo2   = IT_WO(it2, ip0[2]);
23144
 
                                ti_i += IT_IX(it3, ip0[3]);
23145
 
                                wo3   = IT_WO(it3, ip0[3]);
23146
 
                                ti_i += IT_IX(it4, ip0[4]);
23147
 
                                wo4   = IT_WO(it4, ip0[4]);
23148
 
                                
23149
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
23150
 
                                
23151
 
                                /* Sort weighting values and vertex offset values */
23152
 
                                CEX(wo0, wo1);
23153
 
                                CEX(wo0, wo2);
23154
 
                                CEX(wo0, wo3);
23155
 
                                CEX(wo0, wo4);
23156
 
                                CEX(wo1, wo2);
23157
 
                                CEX(wo1, wo3);
23158
 
                                CEX(wo1, wo4);
23159
 
                                CEX(wo2, wo3);
23160
 
                                CEX(wo2, wo4);
23161
 
                                CEX(wo3, wo4);
23162
 
                        }
23163
 
                        {
23164
 
                                unsigned int nvof;      /* Next vertex offset value */
23165
 
                                unsigned int vof;       /* Vertex offset value */
23166
 
                                unsigned int vwe;       /* Vertex weighting */
23167
 
                                
23168
 
                                vof = 0;                                /* First vertex offset is 0 */
23169
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
23170
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
23171
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
23172
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
23173
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
23174
 
                                vof += nvof;                    /* Move to next vertex */
23175
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
23176
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
23177
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
23178
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
23179
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
23180
 
                                vof += nvof;                    /* Move to next vertex */
23181
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
23182
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
23183
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
23184
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
23185
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
23186
 
                                vof += nvof;                    /* Move to next vertex */
23187
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
23188
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
23189
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
23190
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
23191
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
23192
 
                                vof += nvof;                    /* Move to next vertex */
23193
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
23194
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
23195
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
23196
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
23197
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
23198
 
                                vof += nvof;                    /* Move to next vertex */
23199
 
                                vwe = wo4;                              /* Baricentric weighting */
23200
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
23201
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
23202
 
                        }
23203
 
                }
23204
 
                {
23205
 
                        unsigned int oti;       /* Vertex offset value */
23206
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
23207
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
23208
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
23209
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
23210
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
23211
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
23212
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
23213
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
23214
 
                }
23215
 
        }
 
22713
        imdi_imp *p = (imdi_imp *)(s->impl);
 
22714
        unsigned char *ip0 = (unsigned char *)inp[0];
 
22715
        unsigned short *op0 = (unsigned short *)outp[0];
 
22716
        unsigned char *ep = ip0 + npix * 5 ;
 
22717
        pointer it0 = (pointer)p->in_tables[0];
 
22718
        pointer it1 = (pointer)p->in_tables[1];
 
22719
        pointer it2 = (pointer)p->in_tables[2];
 
22720
        pointer it3 = (pointer)p->in_tables[3];
 
22721
        pointer it4 = (pointer)p->in_tables[4];
 
22722
        pointer ot0 = (pointer)p->out_tables[0];
 
22723
        pointer ot1 = (pointer)p->out_tables[1];
 
22724
        pointer ot2 = (pointer)p->out_tables[2];
 
22725
        pointer ot3 = (pointer)p->out_tables[3];
 
22726
        pointer im_base = (pointer)p->im_table;
 
22727
 
 
22728
        for(;ip0 < ep; ip0 += 5, op0 += 4) {
 
22729
                unsigned int ova0;      /* Output value accumulator */
 
22730
                unsigned int ova1;      /* Output value accumulator */
 
22731
                {
 
22732
                        pointer imp;
 
22733
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
22734
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
22735
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
22736
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
22737
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
22738
                        {
 
22739
                                unsigned int ti_i;      /* Interpolation index variable */
 
22740
 
 
22741
                                ti_i  = IT_IX(it0, ip0[0]);
 
22742
                                wo0   = IT_WO(it0, ip0[0]);
 
22743
                                ti_i += IT_IX(it1, ip0[1]);
 
22744
                                wo1   = IT_WO(it1, ip0[1]);
 
22745
                                ti_i += IT_IX(it2, ip0[2]);
 
22746
                                wo2   = IT_WO(it2, ip0[2]);
 
22747
                                ti_i += IT_IX(it3, ip0[3]);
 
22748
                                wo3   = IT_WO(it3, ip0[3]);
 
22749
                                ti_i += IT_IX(it4, ip0[4]);
 
22750
                                wo4   = IT_WO(it4, ip0[4]);
 
22751
 
 
22752
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
22753
 
 
22754
                                /* Sort weighting values and vertex offset values */
 
22755
                                CEX(wo0, wo1);
 
22756
                                CEX(wo0, wo2);
 
22757
                                CEX(wo0, wo3);
 
22758
                                CEX(wo0, wo4);
 
22759
                                CEX(wo1, wo2);
 
22760
                                CEX(wo1, wo3);
 
22761
                                CEX(wo1, wo4);
 
22762
                                CEX(wo2, wo3);
 
22763
                                CEX(wo2, wo4);
 
22764
                                CEX(wo3, wo4);
 
22765
                        }
 
22766
                        {
 
22767
                                unsigned int nvof;      /* Next vertex offset value */
 
22768
                                unsigned int vof;       /* Vertex offset value */
 
22769
                                unsigned int vwe;       /* Vertex weighting */
 
22770
 
 
22771
                                vof = 0;                                /* First vertex offset is 0 */
 
22772
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
22773
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
22774
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
22775
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
22776
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
22777
                                vof += nvof;                    /* Move to next vertex */
 
22778
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
22779
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
22780
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
22781
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
22782
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
22783
                                vof += nvof;                    /* Move to next vertex */
 
22784
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
22785
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
22786
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
22787
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
22788
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
22789
                                vof += nvof;                    /* Move to next vertex */
 
22790
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
22791
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
22792
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
22793
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
22794
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
22795
                                vof += nvof;                    /* Move to next vertex */
 
22796
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
22797
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
22798
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
22799
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
22800
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
22801
                                vof += nvof;                    /* Move to next vertex */
 
22802
                                vwe = wo4;                              /* Baricentric weighting */
 
22803
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
22804
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
22805
                        }
 
22806
                }
 
22807
                {
 
22808
                        unsigned int oti;       /* Vertex offset value */
 
22809
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
22810
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
22811
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
22812
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
22813
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
22814
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
22815
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
22816
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
22817
                }
 
22818
        }
23216
22819
}
23217
22820
#undef IT_WO
23218
22821
#undef IT_IX
23225
22828
imdi_k67_gen(
23226
22829
genspec *g                      /* structure to be initialised */
23227
22830
) {
23228
 
        static unsigned char data[] = {
23229
 
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
23230
 
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
23231
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23232
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
23233
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
23234
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
23235
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
23236
 
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
23237
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
23238
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
23239
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
23240
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23241
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23242
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23243
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23244
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
23245
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
23246
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
23247
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
23248
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
23249
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
23250
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
23251
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
23252
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
23253
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
23254
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
23255
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
23256
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
23257
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23258
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23259
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23260
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23261
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
23262
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
23263
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
23264
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
23265
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
23266
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
23267
 
                0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23268
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
23269
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
23270
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
23271
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
23272
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
23273
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
23274
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
23275
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
23276
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
23277
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23278
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
23279
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
23280
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x35, 0x5f, 0x34, 0x5f, 
23281
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
23282
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
23283
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
23284
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
23285
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
23286
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
23287
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
23288
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23289
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23290
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23291
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23292
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
23293
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x36, 0x37, 
23294
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23295
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23296
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
23297
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
23298
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
23299
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
23300
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
23301
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
23302
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
23303
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
23304
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
23305
 
                0x00, 0xf0, 0x04, 0x08 
23306
 
        };      /* Structure image */
23307
 
        
23308
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
22831
        static unsigned char data[] = {
 
22832
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
22833
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
22834
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22835
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22836
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22837
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22838
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22839
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
22840
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
22841
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
22842
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22843
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22844
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22845
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22846
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22847
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22848
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22849
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22850
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22851
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
22852
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
22853
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
22854
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22855
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22856
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
22857
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
22858
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22859
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22860
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22861
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22862
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22863
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22864
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
22865
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
22866
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22867
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22868
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
22869
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
22870
                0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22871
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
22872
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
22873
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
22874
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
22875
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
22876
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
22877
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
22878
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
22879
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
22880
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22881
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
22882
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
22883
                0x2c, 0xf3, 0xdc, 0xb7, 0x35, 0x5f, 0x34, 0x5f,
 
22884
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
22885
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
22886
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
22887
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
22888
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
22889
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
22890
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
22891
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22892
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22893
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22894
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22895
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
22896
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x36, 0x37,
 
22897
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22898
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22899
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
22900
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
22901
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
22902
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
22903
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
22904
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
22905
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
22906
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
22907
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
22908
                0x00, 0xf0, 0x04, 0x08
 
22909
        };      /* Structure image */
 
22910
 
 
22911
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
23309
22912
}
23310
22913
 
23311
22914
static void
23312
22915
imdi_k67_tab(
23313
22916
tabspec *t                      /* structure to be initialised */
23314
22917
) {
23315
 
        static unsigned char data[] = {
23316
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
23317
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
23318
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
23319
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
23320
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
23321
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
23322
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
23323
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
23324
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
23325
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23326
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
23327
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
23328
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
23329
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
23330
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
23331
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
23332
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
23333
 
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
23334
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23335
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23336
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
23337
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
23338
 
                0xff, 0xff, 0xff, 0x34, 0x00, 0x00, 0x00, 0x00, 
23339
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
23340
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23341
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23342
 
                0x00, 0x00, 0x00, 0x00, 0x52, 0xca, 0x04, 0x08, 
23343
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
23344
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
23345
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
23346
 
                0x10, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
23347
 
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
23348
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
23349
 
        };      /* Structure image */
23350
 
        
23351
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
22918
        static unsigned char data[] = {
 
22919
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
22920
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
22921
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
22922
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
22923
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
22924
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
22925
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22926
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
22927
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
22928
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22929
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
22930
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
22931
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
22932
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
22933
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
22934
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
22935
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
22936
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
22937
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22938
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22939
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
22940
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
22941
                0xff, 0xff, 0xff, 0x34, 0x00, 0x00, 0x00, 0x00,
 
22942
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
22943
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22944
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
22945
                0x00, 0x00, 0x00, 0x00, 0x52, 0xca, 0x04, 0x08,
 
22946
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
22947
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
22948
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
22949
                0x10, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
22950
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
22951
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
22952
        };      /* Structure image */
 
22953
 
 
22954
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
23352
22955
}
23353
22956
 
23354
 
 
23355
 
 
23356
 
 
23357
 
 
23358
 
 
23359
22957
/* Integer Multi-Dimensional Interpolation */
23360
22958
/* Interpolation Kernel Code */
23361
22959
/* Generated by cgen */
23364
22962
 
23365
22963
/* see the Licence.txt file for licencing details.*/
23366
22964
 
23367
 
 
23368
22965
/*
23369
22966
   Interpolation kernel specs:
23370
22967
 
23457
23054
void **inp,             /* pointer to input pointers */
23458
23055
unsigned int npix       /* Number of pixels to process */
23459
23056
) {
23460
 
        imdi_imp *p = (imdi_imp *)(s->impl);
23461
 
        unsigned char *ip0 = (unsigned char *)inp[0];
23462
 
        unsigned short *op0 = (unsigned short *)outp[0];
23463
 
        unsigned char *ep = ip0 + npix * 6 ;
23464
 
        pointer it0 = (pointer)p->in_tables[0];
23465
 
        pointer it1 = (pointer)p->in_tables[1];
23466
 
        pointer it2 = (pointer)p->in_tables[2];
23467
 
        pointer it3 = (pointer)p->in_tables[3];
23468
 
        pointer it4 = (pointer)p->in_tables[4];
23469
 
        pointer it5 = (pointer)p->in_tables[5];
23470
 
        pointer ot0 = (pointer)p->out_tables[0];
23471
 
        pointer ot1 = (pointer)p->out_tables[1];
23472
 
        pointer ot2 = (pointer)p->out_tables[2];
23473
 
        pointer ot3 = (pointer)p->out_tables[3];
23474
 
        pointer im_base = (pointer)p->im_table;
23475
 
        
23476
 
        for(;ip0 < ep; ip0 += 6, op0 += 4) {
23477
 
                unsigned int ova0;      /* Output value accumulator */
23478
 
                unsigned int ova1;      /* Output value accumulator */
23479
 
                {
23480
 
                        pointer imp;
23481
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
23482
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
23483
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
23484
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
23485
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
23486
 
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
23487
 
                        {
23488
 
                                unsigned int ti_i;      /* Interpolation index variable */
23489
 
                                
23490
 
                                ti_i  = IT_IX(it0, ip0[0]);
23491
 
                                wo0   = IT_WO(it0, ip0[0]);
23492
 
                                ti_i += IT_IX(it1, ip0[1]);
23493
 
                                wo1   = IT_WO(it1, ip0[1]);
23494
 
                                ti_i += IT_IX(it2, ip0[2]);
23495
 
                                wo2   = IT_WO(it2, ip0[2]);
23496
 
                                ti_i += IT_IX(it3, ip0[3]);
23497
 
                                wo3   = IT_WO(it3, ip0[3]);
23498
 
                                ti_i += IT_IX(it4, ip0[4]);
23499
 
                                wo4   = IT_WO(it4, ip0[4]);
23500
 
                                ti_i += IT_IX(it5, ip0[5]);
23501
 
                                wo5   = IT_WO(it5, ip0[5]);
23502
 
                                
23503
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
23504
 
                                
23505
 
                                /* Sort weighting values and vertex offset values */
23506
 
                                CEX(wo0, wo1);
23507
 
                                CEX(wo0, wo2);
23508
 
                                CEX(wo0, wo3);
23509
 
                                CEX(wo0, wo4);
23510
 
                                CEX(wo0, wo5);
23511
 
                                CEX(wo1, wo2);
23512
 
                                CEX(wo1, wo3);
23513
 
                                CEX(wo1, wo4);
23514
 
                                CEX(wo1, wo5);
23515
 
                                CEX(wo2, wo3);
23516
 
                                CEX(wo2, wo4);
23517
 
                                CEX(wo2, wo5);
23518
 
                                CEX(wo3, wo4);
23519
 
                                CEX(wo3, wo5);
23520
 
                                CEX(wo4, wo5);
23521
 
                        }
23522
 
                        {
23523
 
                                unsigned int nvof;      /* Next vertex offset value */
23524
 
                                unsigned int vof;       /* Vertex offset value */
23525
 
                                unsigned int vwe;       /* Vertex weighting */
23526
 
                                
23527
 
                                vof = 0;                                /* First vertex offset is 0 */
23528
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
23529
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
23530
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
23531
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
23532
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
23533
 
                                vof += nvof;                    /* Move to next vertex */
23534
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
23535
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
23536
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
23537
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
23538
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
23539
 
                                vof += nvof;                    /* Move to next vertex */
23540
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
23541
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
23542
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
23543
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
23544
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
23545
 
                                vof += nvof;                    /* Move to next vertex */
23546
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
23547
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
23548
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
23549
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
23550
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
23551
 
                                vof += nvof;                    /* Move to next vertex */
23552
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
23553
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
23554
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
23555
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
23556
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
23557
 
                                vof += nvof;                    /* Move to next vertex */
23558
 
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
23559
 
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
23560
 
                                vwe = wo4 - wo5;                /* Baricentric weighting */
23561
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
23562
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
23563
 
                                vof += nvof;                    /* Move to next vertex */
23564
 
                                vwe = wo5;                              /* Baricentric weighting */
23565
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
23566
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
23567
 
                        }
23568
 
                }
23569
 
                {
23570
 
                        unsigned int oti;       /* Vertex offset value */
23571
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
23572
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
23573
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
23574
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
23575
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
23576
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
23577
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
23578
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
23579
 
                }
23580
 
        }
 
23057
        imdi_imp *p = (imdi_imp *)(s->impl);
 
23058
        unsigned char *ip0 = (unsigned char *)inp[0];
 
23059
        unsigned short *op0 = (unsigned short *)outp[0];
 
23060
        unsigned char *ep = ip0 + npix * 6 ;
 
23061
        pointer it0 = (pointer)p->in_tables[0];
 
23062
        pointer it1 = (pointer)p->in_tables[1];
 
23063
        pointer it2 = (pointer)p->in_tables[2];
 
23064
        pointer it3 = (pointer)p->in_tables[3];
 
23065
        pointer it4 = (pointer)p->in_tables[4];
 
23066
        pointer it5 = (pointer)p->in_tables[5];
 
23067
        pointer ot0 = (pointer)p->out_tables[0];
 
23068
        pointer ot1 = (pointer)p->out_tables[1];
 
23069
        pointer ot2 = (pointer)p->out_tables[2];
 
23070
        pointer ot3 = (pointer)p->out_tables[3];
 
23071
        pointer im_base = (pointer)p->im_table;
 
23072
 
 
23073
        for(;ip0 < ep; ip0 += 6, op0 += 4) {
 
23074
                unsigned int ova0;      /* Output value accumulator */
 
23075
                unsigned int ova1;      /* Output value accumulator */
 
23076
                {
 
23077
                        pointer imp;
 
23078
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
23079
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
23080
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
23081
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
23082
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
23083
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
 
23084
                        {
 
23085
                                unsigned int ti_i;      /* Interpolation index variable */
 
23086
 
 
23087
                                ti_i  = IT_IX(it0, ip0[0]);
 
23088
                                wo0   = IT_WO(it0, ip0[0]);
 
23089
                                ti_i += IT_IX(it1, ip0[1]);
 
23090
                                wo1   = IT_WO(it1, ip0[1]);
 
23091
                                ti_i += IT_IX(it2, ip0[2]);
 
23092
                                wo2   = IT_WO(it2, ip0[2]);
 
23093
                                ti_i += IT_IX(it3, ip0[3]);
 
23094
                                wo3   = IT_WO(it3, ip0[3]);
 
23095
                                ti_i += IT_IX(it4, ip0[4]);
 
23096
                                wo4   = IT_WO(it4, ip0[4]);
 
23097
                                ti_i += IT_IX(it5, ip0[5]);
 
23098
                                wo5   = IT_WO(it5, ip0[5]);
 
23099
 
 
23100
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
23101
 
 
23102
                                /* Sort weighting values and vertex offset values */
 
23103
                                CEX(wo0, wo1);
 
23104
                                CEX(wo0, wo2);
 
23105
                                CEX(wo0, wo3);
 
23106
                                CEX(wo0, wo4);
 
23107
                                CEX(wo0, wo5);
 
23108
                                CEX(wo1, wo2);
 
23109
                                CEX(wo1, wo3);
 
23110
                                CEX(wo1, wo4);
 
23111
                                CEX(wo1, wo5);
 
23112
                                CEX(wo2, wo3);
 
23113
                                CEX(wo2, wo4);
 
23114
                                CEX(wo2, wo5);
 
23115
                                CEX(wo3, wo4);
 
23116
                                CEX(wo3, wo5);
 
23117
                                CEX(wo4, wo5);
 
23118
                        }
 
23119
                        {
 
23120
                                unsigned int nvof;      /* Next vertex offset value */
 
23121
                                unsigned int vof;       /* Vertex offset value */
 
23122
                                unsigned int vwe;       /* Vertex weighting */
 
23123
 
 
23124
                                vof = 0;                                /* First vertex offset is 0 */
 
23125
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
23126
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
23127
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
23128
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
23129
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
23130
                                vof += nvof;                    /* Move to next vertex */
 
23131
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
23132
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
23133
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
23134
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
23135
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
23136
                                vof += nvof;                    /* Move to next vertex */
 
23137
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
23138
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
23139
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
23140
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
23141
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
23142
                                vof += nvof;                    /* Move to next vertex */
 
23143
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
23144
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
23145
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
23146
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
23147
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
23148
                                vof += nvof;                    /* Move to next vertex */
 
23149
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
23150
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
23151
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
23152
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
23153
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
23154
                                vof += nvof;                    /* Move to next vertex */
 
23155
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
 
23156
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
 
23157
                                vwe = wo4 - wo5;                /* Baricentric weighting */
 
23158
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
23159
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
23160
                                vof += nvof;                    /* Move to next vertex */
 
23161
                                vwe = wo5;                              /* Baricentric weighting */
 
23162
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
23163
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
23164
                        }
 
23165
                }
 
23166
                {
 
23167
                        unsigned int oti;       /* Vertex offset value */
 
23168
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
23169
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
23170
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
23171
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
23172
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
23173
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
23174
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
23175
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
23176
                }
 
23177
        }
23581
23178
}
23582
23179
#undef IT_WO
23583
23180
#undef IT_IX
23590
23187
imdi_k68_gen(
23591
23188
genspec *g                      /* structure to be initialised */
23592
23189
) {
23593
 
        static unsigned char data[] = {
23594
 
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
23595
 
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
23596
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23597
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
23598
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
23599
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
23600
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
23601
 
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
23602
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
23603
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
23604
 
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
23605
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23606
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23607
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23608
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23609
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
23610
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
23611
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
23612
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
23613
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
23614
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
23615
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
23616
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
23617
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
23618
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
23619
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
23620
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
23621
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
23622
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23623
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23624
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23625
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23626
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
23627
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
23628
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
23629
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
23630
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
23631
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
23632
 
                0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23633
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
23634
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
23635
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
23636
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
23637
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
23638
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
23639
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
23640
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
23641
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
23642
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23643
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
23644
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
23645
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x36, 0x5f, 0x34, 0x5f, 
23646
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
23647
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
23648
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
23649
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
23650
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
23651
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
23652
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
23653
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23654
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23655
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23656
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23657
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
23658
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x36, 0x38, 
23659
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23660
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23661
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
23662
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
23663
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
23664
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
23665
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
23666
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
23667
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
23668
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
23669
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
23670
 
                0x00, 0xf0, 0x04, 0x08 
23671
 
        };      /* Structure image */
23672
 
        
23673
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
23190
        static unsigned char data[] = {
 
23191
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
23192
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
23193
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23194
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23195
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23196
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23197
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23198
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
23199
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
23200
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
23201
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23202
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23203
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23204
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23205
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23206
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23207
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23208
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23209
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23210
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
23211
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
23212
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
23213
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23214
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23215
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
23216
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
23217
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23218
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23219
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23220
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23221
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23222
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23223
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
23224
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
23225
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23226
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23227
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
23228
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
23229
                0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23230
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
23231
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
23232
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
23233
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
23234
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
23235
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
23236
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
23237
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
23238
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
23239
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23240
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
23241
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
23242
                0x2c, 0xf3, 0xdc, 0xb7, 0x36, 0x5f, 0x34, 0x5f,
 
23243
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
23244
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
23245
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
23246
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
23247
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
23248
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
23249
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
23250
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23251
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23252
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23253
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23254
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
23255
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x36, 0x38,
 
23256
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23257
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23258
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
23259
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
23260
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
23261
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
23262
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
23263
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
23264
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
23265
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
23266
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
23267
                0x00, 0xf0, 0x04, 0x08
 
23268
        };      /* Structure image */
 
23269
 
 
23270
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
23674
23271
}
23675
23272
 
23676
23273
static void
23677
23274
imdi_k68_tab(
23678
23275
tabspec *t                      /* structure to be initialised */
23679
23276
) {
23680
 
        static unsigned char data[] = {
23681
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
23682
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
23683
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
23684
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
23685
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
23686
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
23687
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
23688
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
23689
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
23690
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23691
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
23692
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
23693
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
23694
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
23695
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
23696
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
23697
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
23698
 
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
23699
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23700
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23701
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
23702
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
23703
 
                0xff, 0xff, 0xff, 0x34, 0x00, 0x00, 0x00, 0x00, 
23704
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
23705
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23706
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23707
 
                0x00, 0x00, 0x00, 0x00, 0x52, 0xca, 0x04, 0x08, 
23708
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
23709
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
23710
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
23711
 
                0x10, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
23712
 
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
23713
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
23714
 
        };      /* Structure image */
23715
 
        
23716
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
23277
        static unsigned char data[] = {
 
23278
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
23279
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
23280
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
23281
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
23282
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
23283
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
23284
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23285
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
23286
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
23287
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23288
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
23289
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
23290
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
23291
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
23292
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
23293
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
23294
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23295
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
23296
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23297
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23298
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
23299
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
23300
                0xff, 0xff, 0xff, 0x34, 0x00, 0x00, 0x00, 0x00,
 
23301
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
23302
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23303
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23304
                0x00, 0x00, 0x00, 0x00, 0x52, 0xca, 0x04, 0x08,
 
23305
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
23306
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
23307
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
23308
                0x10, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
23309
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
23310
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
23311
        };      /* Structure image */
 
23312
 
 
23313
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
23717
23314
}
23718
23315
 
23719
 
 
23720
 
 
23721
 
 
23722
 
 
23723
 
 
23724
23316
/* Integer Multi-Dimensional Interpolation */
23725
23317
/* Interpolation Kernel Code */
23726
23318
/* Generated by cgen */
23729
23321
 
23730
23322
/* see the Licence.txt file for licencing details.*/
23731
23323
 
23732
 
 
23733
23324
/*
23734
23325
   Interpolation kernel specs:
23735
23326
 
23824
23415
void **inp,             /* pointer to input pointers */
23825
23416
unsigned int npix       /* Number of pixels to process */
23826
23417
) {
23827
 
        imdi_imp *p = (imdi_imp *)(s->impl);
23828
 
        unsigned char *ip0 = (unsigned char *)inp[0];
23829
 
        unsigned short *op0 = (unsigned short *)outp[0];
23830
 
        unsigned char *ep = ip0 + npix * 7 ;
23831
 
        pointer it0 = (pointer)p->in_tables[0];
23832
 
        pointer it1 = (pointer)p->in_tables[1];
23833
 
        pointer it2 = (pointer)p->in_tables[2];
23834
 
        pointer it3 = (pointer)p->in_tables[3];
23835
 
        pointer it4 = (pointer)p->in_tables[4];
23836
 
        pointer it5 = (pointer)p->in_tables[5];
23837
 
        pointer it6 = (pointer)p->in_tables[6];
23838
 
        pointer ot0 = (pointer)p->out_tables[0];
23839
 
        pointer ot1 = (pointer)p->out_tables[1];
23840
 
        pointer ot2 = (pointer)p->out_tables[2];
23841
 
        pointer ot3 = (pointer)p->out_tables[3];
23842
 
        pointer im_base = (pointer)p->im_table;
23843
 
        
23844
 
        for(;ip0 < ep; ip0 += 7, op0 += 4) {
23845
 
                unsigned int ova0;      /* Output value accumulator */
23846
 
                unsigned int ova1;      /* Output value accumulator */
23847
 
                {
23848
 
                        pointer imp;
23849
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
23850
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
23851
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
23852
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
23853
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
23854
 
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
23855
 
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
23856
 
                        {
23857
 
                                unsigned int ti_i;      /* Interpolation index variable */
23858
 
                                
23859
 
                                ti_i  = IT_IX(it0, ip0[0]);
23860
 
                                wo0   = IT_WO(it0, ip0[0]);
23861
 
                                ti_i += IT_IX(it1, ip0[1]);
23862
 
                                wo1   = IT_WO(it1, ip0[1]);
23863
 
                                ti_i += IT_IX(it2, ip0[2]);
23864
 
                                wo2   = IT_WO(it2, ip0[2]);
23865
 
                                ti_i += IT_IX(it3, ip0[3]);
23866
 
                                wo3   = IT_WO(it3, ip0[3]);
23867
 
                                ti_i += IT_IX(it4, ip0[4]);
23868
 
                                wo4   = IT_WO(it4, ip0[4]);
23869
 
                                ti_i += IT_IX(it5, ip0[5]);
23870
 
                                wo5   = IT_WO(it5, ip0[5]);
23871
 
                                ti_i += IT_IX(it6, ip0[6]);
23872
 
                                wo6   = IT_WO(it6, ip0[6]);
23873
 
                                
23874
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
23875
 
                                
23876
 
                                /* Sort weighting values and vertex offset values */
23877
 
                                CEX(wo0, wo1);
23878
 
                                CEX(wo0, wo2);
23879
 
                                CEX(wo0, wo3);
23880
 
                                CEX(wo0, wo4);
23881
 
                                CEX(wo0, wo5);
23882
 
                                CEX(wo0, wo6);
23883
 
                                CEX(wo1, wo2);
23884
 
                                CEX(wo1, wo3);
23885
 
                                CEX(wo1, wo4);
23886
 
                                CEX(wo1, wo5);
23887
 
                                CEX(wo1, wo6);
23888
 
                                CEX(wo2, wo3);
23889
 
                                CEX(wo2, wo4);
23890
 
                                CEX(wo2, wo5);
23891
 
                                CEX(wo2, wo6);
23892
 
                                CEX(wo3, wo4);
23893
 
                                CEX(wo3, wo5);
23894
 
                                CEX(wo3, wo6);
23895
 
                                CEX(wo4, wo5);
23896
 
                                CEX(wo4, wo6);
23897
 
                                CEX(wo5, wo6);
23898
 
                        }
23899
 
                        {
23900
 
                                unsigned int nvof;      /* Next vertex offset value */
23901
 
                                unsigned int vof;       /* Vertex offset value */
23902
 
                                unsigned int vwe;       /* Vertex weighting */
23903
 
                                
23904
 
                                vof = 0;                                /* First vertex offset is 0 */
23905
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
23906
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
23907
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
23908
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
23909
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
23910
 
                                vof += nvof;                    /* Move to next vertex */
23911
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
23912
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
23913
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
23914
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
23915
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
23916
 
                                vof += nvof;                    /* Move to next vertex */
23917
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
23918
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
23919
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
23920
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
23921
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
23922
 
                                vof += nvof;                    /* Move to next vertex */
23923
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
23924
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
23925
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
23926
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
23927
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
23928
 
                                vof += nvof;                    /* Move to next vertex */
23929
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
23930
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
23931
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
23932
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
23933
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
23934
 
                                vof += nvof;                    /* Move to next vertex */
23935
 
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
23936
 
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
23937
 
                                vwe = wo4 - wo5;                /* Baricentric weighting */
23938
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
23939
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
23940
 
                                vof += nvof;                    /* Move to next vertex */
23941
 
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
23942
 
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
23943
 
                                vwe = wo5 - wo6;                /* Baricentric weighting */
23944
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
23945
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
23946
 
                                vof += nvof;                    /* Move to next vertex */
23947
 
                                vwe = wo6;                              /* Baricentric weighting */
23948
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
23949
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
23950
 
                        }
23951
 
                }
23952
 
                {
23953
 
                        unsigned int oti;       /* Vertex offset value */
23954
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
23955
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
23956
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
23957
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
23958
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
23959
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
23960
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
23961
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
23962
 
                }
23963
 
        }
 
23418
        imdi_imp *p = (imdi_imp *)(s->impl);
 
23419
        unsigned char *ip0 = (unsigned char *)inp[0];
 
23420
        unsigned short *op0 = (unsigned short *)outp[0];
 
23421
        unsigned char *ep = ip0 + npix * 7 ;
 
23422
        pointer it0 = (pointer)p->in_tables[0];
 
23423
        pointer it1 = (pointer)p->in_tables[1];
 
23424
        pointer it2 = (pointer)p->in_tables[2];
 
23425
        pointer it3 = (pointer)p->in_tables[3];
 
23426
        pointer it4 = (pointer)p->in_tables[4];
 
23427
        pointer it5 = (pointer)p->in_tables[5];
 
23428
        pointer it6 = (pointer)p->in_tables[6];
 
23429
        pointer ot0 = (pointer)p->out_tables[0];
 
23430
        pointer ot1 = (pointer)p->out_tables[1];
 
23431
        pointer ot2 = (pointer)p->out_tables[2];
 
23432
        pointer ot3 = (pointer)p->out_tables[3];
 
23433
        pointer im_base = (pointer)p->im_table;
 
23434
 
 
23435
        for(;ip0 < ep; ip0 += 7, op0 += 4) {
 
23436
                unsigned int ova0;      /* Output value accumulator */
 
23437
                unsigned int ova1;      /* Output value accumulator */
 
23438
                {
 
23439
                        pointer imp;
 
23440
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
23441
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
23442
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
23443
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
23444
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
23445
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
 
23446
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
 
23447
                        {
 
23448
                                unsigned int ti_i;      /* Interpolation index variable */
 
23449
 
 
23450
                                ti_i  = IT_IX(it0, ip0[0]);
 
23451
                                wo0   = IT_WO(it0, ip0[0]);
 
23452
                                ti_i += IT_IX(it1, ip0[1]);
 
23453
                                wo1   = IT_WO(it1, ip0[1]);
 
23454
                                ti_i += IT_IX(it2, ip0[2]);
 
23455
                                wo2   = IT_WO(it2, ip0[2]);
 
23456
                                ti_i += IT_IX(it3, ip0[3]);
 
23457
                                wo3   = IT_WO(it3, ip0[3]);
 
23458
                                ti_i += IT_IX(it4, ip0[4]);
 
23459
                                wo4   = IT_WO(it4, ip0[4]);
 
23460
                                ti_i += IT_IX(it5, ip0[5]);
 
23461
                                wo5   = IT_WO(it5, ip0[5]);
 
23462
                                ti_i += IT_IX(it6, ip0[6]);
 
23463
                                wo6   = IT_WO(it6, ip0[6]);
 
23464
 
 
23465
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
23466
 
 
23467
                                /* Sort weighting values and vertex offset values */
 
23468
                                CEX(wo0, wo1);
 
23469
                                CEX(wo0, wo2);
 
23470
                                CEX(wo0, wo3);
 
23471
                                CEX(wo0, wo4);
 
23472
                                CEX(wo0, wo5);
 
23473
                                CEX(wo0, wo6);
 
23474
                                CEX(wo1, wo2);
 
23475
                                CEX(wo1, wo3);
 
23476
                                CEX(wo1, wo4);
 
23477
                                CEX(wo1, wo5);
 
23478
                                CEX(wo1, wo6);
 
23479
                                CEX(wo2, wo3);
 
23480
                                CEX(wo2, wo4);
 
23481
                                CEX(wo2, wo5);
 
23482
                                CEX(wo2, wo6);
 
23483
                                CEX(wo3, wo4);
 
23484
                                CEX(wo3, wo5);
 
23485
                                CEX(wo3, wo6);
 
23486
                                CEX(wo4, wo5);
 
23487
                                CEX(wo4, wo6);
 
23488
                                CEX(wo5, wo6);
 
23489
                        }
 
23490
                        {
 
23491
                                unsigned int nvof;      /* Next vertex offset value */
 
23492
                                unsigned int vof;       /* Vertex offset value */
 
23493
                                unsigned int vwe;       /* Vertex weighting */
 
23494
 
 
23495
                                vof = 0;                                /* First vertex offset is 0 */
 
23496
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
23497
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
23498
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
23499
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
23500
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
23501
                                vof += nvof;                    /* Move to next vertex */
 
23502
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
23503
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
23504
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
23505
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
23506
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
23507
                                vof += nvof;                    /* Move to next vertex */
 
23508
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
23509
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
23510
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
23511
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
23512
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
23513
                                vof += nvof;                    /* Move to next vertex */
 
23514
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
23515
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
23516
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
23517
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
23518
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
23519
                                vof += nvof;                    /* Move to next vertex */
 
23520
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
23521
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
23522
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
23523
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
23524
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
23525
                                vof += nvof;                    /* Move to next vertex */
 
23526
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
 
23527
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
 
23528
                                vwe = wo4 - wo5;                /* Baricentric weighting */
 
23529
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
23530
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
23531
                                vof += nvof;                    /* Move to next vertex */
 
23532
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
 
23533
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
 
23534
                                vwe = wo5 - wo6;                /* Baricentric weighting */
 
23535
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
23536
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
23537
                                vof += nvof;                    /* Move to next vertex */
 
23538
                                vwe = wo6;                              /* Baricentric weighting */
 
23539
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
23540
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
23541
                        }
 
23542
                }
 
23543
                {
 
23544
                        unsigned int oti;       /* Vertex offset value */
 
23545
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
23546
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
23547
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
23548
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
23549
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
23550
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
23551
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
23552
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
23553
                }
 
23554
        }
23964
23555
}
23965
23556
#undef IT_WO
23966
23557
#undef IT_IX
23973
23564
imdi_k69_gen(
23974
23565
genspec *g                      /* structure to be initialised */
23975
23566
) {
23976
 
        static unsigned char data[] = {
23977
 
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
23978
 
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
23979
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23980
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
23981
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
23982
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
23983
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
23984
 
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
23985
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
23986
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
23987
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
23988
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23989
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23990
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23991
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
23992
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
23993
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
23994
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
23995
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
23996
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
23997
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
23998
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
23999
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
24000
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
24001
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
24002
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
24003
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
24004
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
24005
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24006
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24007
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24008
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24009
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
24010
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
24011
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
24012
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
24013
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
24014
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
24015
 
                0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24016
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
24017
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
24018
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
24019
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
24020
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
24021
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
24022
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
24023
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
24024
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
24025
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24026
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
24027
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
24028
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x37, 0x5f, 0x34, 0x5f, 
24029
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
24030
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
24031
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
24032
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
24033
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
24034
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
24035
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
24036
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24037
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24038
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24039
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24040
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
24041
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x36, 0x39, 
24042
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24043
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24044
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
24045
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
24046
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
24047
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
24048
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
24049
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
24050
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
24051
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
24052
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
24053
 
                0x00, 0xf0, 0x04, 0x08 
24054
 
        };      /* Structure image */
24055
 
        
24056
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
23567
        static unsigned char data[] = {
 
23568
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
23569
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
23570
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23571
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23572
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23573
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23574
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23575
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
23576
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
23577
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
23578
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
23579
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23580
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23581
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23582
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23583
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23584
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23585
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23586
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23587
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
23588
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
23589
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
23590
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23591
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23592
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
23593
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
23594
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23595
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23596
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23597
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23598
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23599
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23600
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
23601
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
23602
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23603
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23604
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
23605
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
23606
                0x0e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23607
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
23608
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
23609
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
23610
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
23611
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
23612
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
23613
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
23614
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
23615
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
23616
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23617
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
23618
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
23619
                0x2c, 0xf3, 0xdc, 0xb7, 0x37, 0x5f, 0x34, 0x5f,
 
23620
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
23621
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
23622
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
23623
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
23624
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
23625
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
23626
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
23627
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23628
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23629
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23630
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23631
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
23632
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x36, 0x39,
 
23633
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23634
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23635
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
23636
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
23637
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
23638
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
23639
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
23640
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
23641
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
23642
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
23643
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
23644
                0x00, 0xf0, 0x04, 0x08
 
23645
        };      /* Structure image */
 
23646
 
 
23647
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
24057
23648
}
24058
23649
 
24059
23650
static void
24060
23651
imdi_k69_tab(
24061
23652
tabspec *t                      /* structure to be initialised */
24062
23653
) {
24063
 
        static unsigned char data[] = {
24064
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
24065
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
24066
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
24067
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
24068
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
24069
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
24070
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
24071
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
24072
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
24073
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24074
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
24075
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
24076
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
24077
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
24078
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
24079
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
24080
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
24081
 
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
24082
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24083
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24084
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
24085
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
24086
 
                0xff, 0xff, 0xff, 0x34, 0x00, 0x00, 0x00, 0x00, 
24087
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
24088
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24089
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24090
 
                0x00, 0x00, 0x00, 0x00, 0x52, 0xca, 0x04, 0x08, 
24091
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
24092
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
24093
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
24094
 
                0x10, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
24095
 
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
24096
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
24097
 
        };      /* Structure image */
24098
 
        
24099
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
23654
        static unsigned char data[] = {
 
23655
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
23656
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
23657
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
23658
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
23659
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
23660
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
23661
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23662
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
23663
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
23664
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23665
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
23666
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
23667
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
23668
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
23669
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
23670
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
23671
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23672
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
23673
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23674
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23675
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
23676
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
23677
                0xff, 0xff, 0xff, 0x34, 0x00, 0x00, 0x00, 0x00,
 
23678
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
23679
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23680
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23681
                0x00, 0x00, 0x00, 0x00, 0x52, 0xca, 0x04, 0x08,
 
23682
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
23683
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
23684
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
23685
                0x10, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
23686
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
23687
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
23688
        };      /* Structure image */
 
23689
 
 
23690
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
24100
23691
}
24101
23692
 
24102
 
 
24103
 
 
24104
 
 
24105
 
 
24106
 
 
24107
23693
/* Integer Multi-Dimensional Interpolation */
24108
23694
/* Interpolation Kernel Code */
24109
23695
/* Generated by cgen */
24112
23698
 
24113
23699
/* see the Licence.txt file for licencing details.*/
24114
23700
 
24115
 
 
24116
23701
/*
24117
23702
   Interpolation kernel specs:
24118
23703
 
24209
23794
void **inp,             /* pointer to input pointers */
24210
23795
unsigned int npix       /* Number of pixels to process */
24211
23796
) {
24212
 
        imdi_imp *p = (imdi_imp *)(s->impl);
24213
 
        unsigned char *ip0 = (unsigned char *)inp[0];
24214
 
        unsigned short *op0 = (unsigned short *)outp[0];
24215
 
        unsigned char *ep = ip0 + npix * 8 ;
24216
 
        pointer it0 = (pointer)p->in_tables[0];
24217
 
        pointer it1 = (pointer)p->in_tables[1];
24218
 
        pointer it2 = (pointer)p->in_tables[2];
24219
 
        pointer it3 = (pointer)p->in_tables[3];
24220
 
        pointer it4 = (pointer)p->in_tables[4];
24221
 
        pointer it5 = (pointer)p->in_tables[5];
24222
 
        pointer it6 = (pointer)p->in_tables[6];
24223
 
        pointer it7 = (pointer)p->in_tables[7];
24224
 
        pointer ot0 = (pointer)p->out_tables[0];
24225
 
        pointer ot1 = (pointer)p->out_tables[1];
24226
 
        pointer ot2 = (pointer)p->out_tables[2];
24227
 
        pointer ot3 = (pointer)p->out_tables[3];
24228
 
        pointer im_base = (pointer)p->im_table;
24229
 
        
24230
 
        for(;ip0 < ep; ip0 += 8, op0 += 4) {
24231
 
                unsigned int ova0;      /* Output value accumulator */
24232
 
                unsigned int ova1;      /* Output value accumulator */
24233
 
                {
24234
 
                        pointer imp;
24235
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
24236
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
24237
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
24238
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
24239
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
24240
 
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
24241
 
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
24242
 
                        unsigned int wo7;       /* Weighting value and vertex offset variable */
24243
 
                        {
24244
 
                                unsigned int ti_i;      /* Interpolation index variable */
24245
 
                                
24246
 
                                ti_i  = IT_IX(it0, ip0[0]);
24247
 
                                wo0   = IT_WO(it0, ip0[0]);
24248
 
                                ti_i += IT_IX(it1, ip0[1]);
24249
 
                                wo1   = IT_WO(it1, ip0[1]);
24250
 
                                ti_i += IT_IX(it2, ip0[2]);
24251
 
                                wo2   = IT_WO(it2, ip0[2]);
24252
 
                                ti_i += IT_IX(it3, ip0[3]);
24253
 
                                wo3   = IT_WO(it3, ip0[3]);
24254
 
                                ti_i += IT_IX(it4, ip0[4]);
24255
 
                                wo4   = IT_WO(it4, ip0[4]);
24256
 
                                ti_i += IT_IX(it5, ip0[5]);
24257
 
                                wo5   = IT_WO(it5, ip0[5]);
24258
 
                                ti_i += IT_IX(it6, ip0[6]);
24259
 
                                wo6   = IT_WO(it6, ip0[6]);
24260
 
                                ti_i += IT_IX(it7, ip0[7]);
24261
 
                                wo7   = IT_WO(it7, ip0[7]);
24262
 
                                
24263
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
24264
 
                                
24265
 
                                /* Sort weighting values and vertex offset values */
24266
 
                                CEX(wo0, wo1);
24267
 
                                CEX(wo0, wo2);
24268
 
                                CEX(wo0, wo3);
24269
 
                                CEX(wo0, wo4);
24270
 
                                CEX(wo0, wo5);
24271
 
                                CEX(wo0, wo6);
24272
 
                                CEX(wo0, wo7);
24273
 
                                CEX(wo1, wo2);
24274
 
                                CEX(wo1, wo3);
24275
 
                                CEX(wo1, wo4);
24276
 
                                CEX(wo1, wo5);
24277
 
                                CEX(wo1, wo6);
24278
 
                                CEX(wo1, wo7);
24279
 
                                CEX(wo2, wo3);
24280
 
                                CEX(wo2, wo4);
24281
 
                                CEX(wo2, wo5);
24282
 
                                CEX(wo2, wo6);
24283
 
                                CEX(wo2, wo7);
24284
 
                                CEX(wo3, wo4);
24285
 
                                CEX(wo3, wo5);
24286
 
                                CEX(wo3, wo6);
24287
 
                                CEX(wo3, wo7);
24288
 
                                CEX(wo4, wo5);
24289
 
                                CEX(wo4, wo6);
24290
 
                                CEX(wo4, wo7);
24291
 
                                CEX(wo5, wo6);
24292
 
                                CEX(wo5, wo7);
24293
 
                                CEX(wo6, wo7);
24294
 
                        }
24295
 
                        {
24296
 
                                unsigned int nvof;      /* Next vertex offset value */
24297
 
                                unsigned int vof;       /* Vertex offset value */
24298
 
                                unsigned int vwe;       /* Vertex weighting */
24299
 
                                
24300
 
                                vof = 0;                                /* First vertex offset is 0 */
24301
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
24302
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
24303
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
24304
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
24305
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
24306
 
                                vof += nvof;                    /* Move to next vertex */
24307
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
24308
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
24309
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
24310
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
24311
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
24312
 
                                vof += nvof;                    /* Move to next vertex */
24313
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
24314
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
24315
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
24316
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
24317
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
24318
 
                                vof += nvof;                    /* Move to next vertex */
24319
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
24320
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
24321
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
24322
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
24323
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
24324
 
                                vof += nvof;                    /* Move to next vertex */
24325
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
24326
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
24327
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
24328
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
24329
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
24330
 
                                vof += nvof;                    /* Move to next vertex */
24331
 
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
24332
 
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
24333
 
                                vwe = wo4 - wo5;                /* Baricentric weighting */
24334
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
24335
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
24336
 
                                vof += nvof;                    /* Move to next vertex */
24337
 
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
24338
 
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
24339
 
                                vwe = wo5 - wo6;                /* Baricentric weighting */
24340
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
24341
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
24342
 
                                vof += nvof;                    /* Move to next vertex */
24343
 
                                nvof = (wo7 & 0x7fffff);        /* Extract offset value */
24344
 
                                wo7 = (wo7 >> 23);              /* Extract weighting value */
24345
 
                                vwe = wo6 - wo7;                /* Baricentric weighting */
24346
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
24347
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
24348
 
                                vof += nvof;                    /* Move to next vertex */
24349
 
                                vwe = wo7;                              /* Baricentric weighting */
24350
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
24351
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
24352
 
                        }
24353
 
                }
24354
 
                {
24355
 
                        unsigned int oti;       /* Vertex offset value */
24356
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
24357
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
24358
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
24359
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
24360
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
24361
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
24362
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
24363
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
24364
 
                }
24365
 
        }
 
23797
        imdi_imp *p = (imdi_imp *)(s->impl);
 
23798
        unsigned char *ip0 = (unsigned char *)inp[0];
 
23799
        unsigned short *op0 = (unsigned short *)outp[0];
 
23800
        unsigned char *ep = ip0 + npix * 8 ;
 
23801
        pointer it0 = (pointer)p->in_tables[0];
 
23802
        pointer it1 = (pointer)p->in_tables[1];
 
23803
        pointer it2 = (pointer)p->in_tables[2];
 
23804
        pointer it3 = (pointer)p->in_tables[3];
 
23805
        pointer it4 = (pointer)p->in_tables[4];
 
23806
        pointer it5 = (pointer)p->in_tables[5];
 
23807
        pointer it6 = (pointer)p->in_tables[6];
 
23808
        pointer it7 = (pointer)p->in_tables[7];
 
23809
        pointer ot0 = (pointer)p->out_tables[0];
 
23810
        pointer ot1 = (pointer)p->out_tables[1];
 
23811
        pointer ot2 = (pointer)p->out_tables[2];
 
23812
        pointer ot3 = (pointer)p->out_tables[3];
 
23813
        pointer im_base = (pointer)p->im_table;
 
23814
 
 
23815
        for(;ip0 < ep; ip0 += 8, op0 += 4) {
 
23816
                unsigned int ova0;      /* Output value accumulator */
 
23817
                unsigned int ova1;      /* Output value accumulator */
 
23818
                {
 
23819
                        pointer imp;
 
23820
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
23821
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
23822
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
23823
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
23824
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
23825
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
 
23826
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
 
23827
                        unsigned int wo7;       /* Weighting value and vertex offset variable */
 
23828
                        {
 
23829
                                unsigned int ti_i;      /* Interpolation index variable */
 
23830
 
 
23831
                                ti_i  = IT_IX(it0, ip0[0]);
 
23832
                                wo0   = IT_WO(it0, ip0[0]);
 
23833
                                ti_i += IT_IX(it1, ip0[1]);
 
23834
                                wo1   = IT_WO(it1, ip0[1]);
 
23835
                                ti_i += IT_IX(it2, ip0[2]);
 
23836
                                wo2   = IT_WO(it2, ip0[2]);
 
23837
                                ti_i += IT_IX(it3, ip0[3]);
 
23838
                                wo3   = IT_WO(it3, ip0[3]);
 
23839
                                ti_i += IT_IX(it4, ip0[4]);
 
23840
                                wo4   = IT_WO(it4, ip0[4]);
 
23841
                                ti_i += IT_IX(it5, ip0[5]);
 
23842
                                wo5   = IT_WO(it5, ip0[5]);
 
23843
                                ti_i += IT_IX(it6, ip0[6]);
 
23844
                                wo6   = IT_WO(it6, ip0[6]);
 
23845
                                ti_i += IT_IX(it7, ip0[7]);
 
23846
                                wo7   = IT_WO(it7, ip0[7]);
 
23847
 
 
23848
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
23849
 
 
23850
                                /* Sort weighting values and vertex offset values */
 
23851
                                CEX(wo0, wo1);
 
23852
                                CEX(wo0, wo2);
 
23853
                                CEX(wo0, wo3);
 
23854
                                CEX(wo0, wo4);
 
23855
                                CEX(wo0, wo5);
 
23856
                                CEX(wo0, wo6);
 
23857
                                CEX(wo0, wo7);
 
23858
                                CEX(wo1, wo2);
 
23859
                                CEX(wo1, wo3);
 
23860
                                CEX(wo1, wo4);
 
23861
                                CEX(wo1, wo5);
 
23862
                                CEX(wo1, wo6);
 
23863
                                CEX(wo1, wo7);
 
23864
                                CEX(wo2, wo3);
 
23865
                                CEX(wo2, wo4);
 
23866
                                CEX(wo2, wo5);
 
23867
                                CEX(wo2, wo6);
 
23868
                                CEX(wo2, wo7);
 
23869
                                CEX(wo3, wo4);
 
23870
                                CEX(wo3, wo5);
 
23871
                                CEX(wo3, wo6);
 
23872
                                CEX(wo3, wo7);
 
23873
                                CEX(wo4, wo5);
 
23874
                                CEX(wo4, wo6);
 
23875
                                CEX(wo4, wo7);
 
23876
                                CEX(wo5, wo6);
 
23877
                                CEX(wo5, wo7);
 
23878
                                CEX(wo6, wo7);
 
23879
                        }
 
23880
                        {
 
23881
                                unsigned int nvof;      /* Next vertex offset value */
 
23882
                                unsigned int vof;       /* Vertex offset value */
 
23883
                                unsigned int vwe;       /* Vertex weighting */
 
23884
 
 
23885
                                vof = 0;                                /* First vertex offset is 0 */
 
23886
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
23887
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
23888
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
23889
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
23890
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
23891
                                vof += nvof;                    /* Move to next vertex */
 
23892
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
23893
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
23894
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
23895
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
23896
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
23897
                                vof += nvof;                    /* Move to next vertex */
 
23898
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
23899
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
23900
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
23901
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
23902
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
23903
                                vof += nvof;                    /* Move to next vertex */
 
23904
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
23905
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
23906
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
23907
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
23908
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
23909
                                vof += nvof;                    /* Move to next vertex */
 
23910
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
23911
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
23912
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
23913
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
23914
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
23915
                                vof += nvof;                    /* Move to next vertex */
 
23916
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
 
23917
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
 
23918
                                vwe = wo4 - wo5;                /* Baricentric weighting */
 
23919
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
23920
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
23921
                                vof += nvof;                    /* Move to next vertex */
 
23922
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
 
23923
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
 
23924
                                vwe = wo5 - wo6;                /* Baricentric weighting */
 
23925
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
23926
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
23927
                                vof += nvof;                    /* Move to next vertex */
 
23928
                                nvof = (wo7 & 0x7fffff);        /* Extract offset value */
 
23929
                                wo7 = (wo7 >> 23);              /* Extract weighting value */
 
23930
                                vwe = wo6 - wo7;                /* Baricentric weighting */
 
23931
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
23932
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
23933
                                vof += nvof;                    /* Move to next vertex */
 
23934
                                vwe = wo7;                              /* Baricentric weighting */
 
23935
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
23936
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
23937
                        }
 
23938
                }
 
23939
                {
 
23940
                        unsigned int oti;       /* Vertex offset value */
 
23941
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
23942
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
23943
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
23944
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
23945
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
23946
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
23947
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
23948
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
23949
                }
 
23950
        }
24366
23951
}
24367
23952
#undef IT_WO
24368
23953
#undef IT_IX
24375
23960
imdi_k70_gen(
24376
23961
genspec *g                      /* structure to be initialised */
24377
23962
) {
24378
 
        static unsigned char data[] = {
24379
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
24380
 
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
24381
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24382
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
24383
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
24384
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
24385
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
24386
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
24387
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
24388
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
24389
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
24390
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24391
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24392
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24393
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24394
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
24395
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
24396
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
24397
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
24398
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
24399
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
24400
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
24401
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
24402
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
24403
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
24404
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
24405
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
24406
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
24407
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24408
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24409
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24410
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24411
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
24412
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
24413
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
24414
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
24415
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
24416
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
24417
 
                0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24418
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
24419
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
24420
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
24421
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
24422
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
24423
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
24424
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
24425
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
24426
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
24427
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24428
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
24429
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
24430
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x38, 0x5f, 0x34, 0x5f, 
24431
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
24432
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
24433
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
24434
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
24435
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
24436
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
24437
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
24438
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24439
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24440
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24441
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24442
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
24443
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x37, 0x30, 
24444
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24445
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24446
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
24447
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
24448
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
24449
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
24450
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
24451
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
24452
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
24453
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
24454
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
24455
 
                0x00, 0xf0, 0x04, 0x08 
24456
 
        };      /* Structure image */
24457
 
        
24458
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
23963
        static unsigned char data[] = {
 
23964
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23965
                0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
23966
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23967
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23968
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23969
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23970
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23971
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23972
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23973
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23974
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23975
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23976
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23977
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23978
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23979
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23980
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23981
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23982
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23983
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
23984
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
23985
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
23986
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23987
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23988
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
23989
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
23990
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23991
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23992
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23993
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23994
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23995
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
23996
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
23997
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
23998
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
23999
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
24000
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
24001
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
24002
                0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24003
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
24004
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
24005
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
24006
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
24007
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
24008
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
24009
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
24010
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
24011
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
24012
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24013
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
24014
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
24015
                0x2c, 0xf3, 0xdc, 0xb7, 0x38, 0x5f, 0x34, 0x5f,
 
24016
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
24017
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
24018
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
24019
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
24020
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
24021
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
24022
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
24023
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24024
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24025
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24026
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24027
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
24028
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x37, 0x30,
 
24029
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24030
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24031
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
24032
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
24033
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
24034
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
24035
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
24036
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
24037
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
24038
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
24039
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
24040
                0x00, 0xf0, 0x04, 0x08
 
24041
        };      /* Structure image */
 
24042
 
 
24043
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
24459
24044
}
24460
24045
 
24461
24046
static void
24462
24047
imdi_k70_tab(
24463
24048
tabspec *t                      /* structure to be initialised */
24464
24049
) {
24465
 
        static unsigned char data[] = {
24466
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
24467
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
24468
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
24469
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
24470
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
24471
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
24472
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
24473
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
24474
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
24475
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24476
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
24477
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
24478
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
24479
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
24480
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
24481
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
24482
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
24483
 
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
24484
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24485
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24486
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
24487
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
24488
 
                0xff, 0xff, 0xff, 0x34, 0x00, 0x00, 0x00, 0x00, 
24489
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
24490
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24491
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24492
 
                0x00, 0x00, 0x00, 0x00, 0x52, 0xca, 0x04, 0x08, 
24493
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
24494
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
24495
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
24496
 
                0x10, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
24497
 
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
24498
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
24499
 
        };      /* Structure image */
24500
 
        
24501
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
24050
        static unsigned char data[] = {
 
24051
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
24052
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
24053
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
24054
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
24055
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
24056
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
24057
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
24058
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
24059
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
24060
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24061
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
24062
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
24063
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
24064
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
24065
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
24066
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
24067
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
24068
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
24069
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24070
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24071
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
24072
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
24073
                0xff, 0xff, 0xff, 0x34, 0x00, 0x00, 0x00, 0x00,
 
24074
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
24075
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24076
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24077
                0x00, 0x00, 0x00, 0x00, 0x52, 0xca, 0x04, 0x08,
 
24078
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
24079
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
24080
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
24081
                0x10, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
24082
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
24083
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
24084
        };      /* Structure image */
 
24085
 
 
24086
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
24502
24087
}
24503
24088
 
24504
 
 
24505
 
 
24506
 
 
24507
 
 
24508
 
 
24509
24089
/* Integer Multi-Dimensional Interpolation */
24510
24090
/* Interpolation Kernel Code */
24511
24091
/* Generated by cgen */
24514
24094
 
24515
24095
/* see the Licence.txt file for licencing details.*/
24516
24096
 
24517
 
 
24518
24097
/*
24519
24098
   Interpolation kernel specs:
24520
24099
 
24601
24180
void **inp,             /* pointer to input pointers */
24602
24181
unsigned int npix       /* Number of pixels to process */
24603
24182
) {
24604
 
        imdi_imp *p = (imdi_imp *)(s->impl);
24605
 
        unsigned char *ip0 = (unsigned char *)inp[0];
24606
 
        unsigned short *op0 = (unsigned short *)outp[0];
24607
 
        unsigned char *ep = ip0 + npix * 1 ;
24608
 
        pointer it0 = (pointer)p->in_tables[0];
24609
 
        pointer ot0 = (pointer)p->out_tables[0];
24610
 
        pointer ot1 = (pointer)p->out_tables[1];
24611
 
        pointer ot2 = (pointer)p->out_tables[2];
24612
 
        pointer ot3 = (pointer)p->out_tables[3];
24613
 
        pointer ot4 = (pointer)p->out_tables[4];
24614
 
        pointer sw_base = (pointer)p->sw_table;
24615
 
        pointer im_base = (pointer)p->im_table;
24616
 
        
24617
 
        for(;ip0 < ep; ip0 += 1, op0 += 5) {
24618
 
                unsigned int ova0;      /* Output value accumulator */
24619
 
                unsigned int ova1;      /* Output value accumulator */
24620
 
                unsigned int ova2;      /* Output value partial accumulator */
24621
 
                {
24622
 
                        pointer swp;
24623
 
                        pointer imp;
24624
 
                        {
24625
 
                                unsigned int ti;        /* Simplex+Interpolation index variable */
24626
 
                                
24627
 
                                ti  = IT_IT(it0, ip0[0]);
24628
 
                                
24629
 
                                imp = im_base + IM_O(ti >> 0);          /* Extract interp. index and comp. entry */
24630
 
                                swp = sw_base + SW_O(ti & 0x0); /* Extract simplex index and comp. entry */
24631
 
                        }
24632
 
                        {
24633
 
                                unsigned int vowr;      /* Vertex offset/weight value */
24634
 
                                unsigned int vof;       /* Vertex offset value */
24635
 
                                unsigned int vwe;       /* Vertex weighting */
24636
 
                                
24637
 
                                vowr = SX_WO(swp, 0);   /* Read vertex offset+weighting values */
24638
 
                                vof = (vowr & 0x7f);    /* Extract offset value */
24639
 
                                vwe = (vowr >> 7);      /* Extract weighting value */
24640
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
24641
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
24642
 
                                ova2  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
24643
 
                                vowr = SX_WO(swp, 1);   /* Read vertex offset+weighting values */
24644
 
                                vof = (vowr & 0x7f);    /* Extract offset value */
24645
 
                                vwe = (vowr >> 7);      /* Extract weighting value */
24646
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
24647
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
24648
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
24649
 
                        }
24650
 
                }
24651
 
                {
24652
 
                        unsigned int oti;       /* Vertex offset value */
24653
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
24654
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
24655
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
24656
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
24657
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
24658
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
24659
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
24660
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
24661
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
24662
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
24663
 
                }
24664
 
        }
 
24183
        imdi_imp *p = (imdi_imp *)(s->impl);
 
24184
        unsigned char *ip0 = (unsigned char *)inp[0];
 
24185
        unsigned short *op0 = (unsigned short *)outp[0];
 
24186
        unsigned char *ep = ip0 + npix * 1 ;
 
24187
        pointer it0 = (pointer)p->in_tables[0];
 
24188
        pointer ot0 = (pointer)p->out_tables[0];
 
24189
        pointer ot1 = (pointer)p->out_tables[1];
 
24190
        pointer ot2 = (pointer)p->out_tables[2];
 
24191
        pointer ot3 = (pointer)p->out_tables[3];
 
24192
        pointer ot4 = (pointer)p->out_tables[4];
 
24193
        pointer sw_base = (pointer)p->sw_table;
 
24194
        pointer im_base = (pointer)p->im_table;
 
24195
 
 
24196
        for(;ip0 < ep; ip0 += 1, op0 += 5) {
 
24197
                unsigned int ova0;      /* Output value accumulator */
 
24198
                unsigned int ova1;      /* Output value accumulator */
 
24199
                unsigned int ova2;      /* Output value partial accumulator */
 
24200
                {
 
24201
                        pointer swp;
 
24202
                        pointer imp;
 
24203
                        {
 
24204
                                unsigned int ti;        /* Simplex+Interpolation index variable */
 
24205
 
 
24206
                                ti  = IT_IT(it0, ip0[0]);
 
24207
 
 
24208
                                imp = im_base + IM_O(ti >> 0);          /* Extract interp. index and comp. entry */
 
24209
                                swp = sw_base + SW_O(ti & 0x0); /* Extract simplex index and comp. entry */
 
24210
                        }
 
24211
                        {
 
24212
                                unsigned int vowr;      /* Vertex offset/weight value */
 
24213
                                unsigned int vof;       /* Vertex offset value */
 
24214
                                unsigned int vwe;       /* Vertex weighting */
 
24215
 
 
24216
                                vowr = SX_WO(swp, 0);   /* Read vertex offset+weighting values */
 
24217
                                vof = (vowr & 0x7f);    /* Extract offset value */
 
24218
                                vwe = (vowr >> 7);      /* Extract weighting value */
 
24219
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
24220
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
24221
                                ova2  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
24222
                                vowr = SX_WO(swp, 1);   /* Read vertex offset+weighting values */
 
24223
                                vof = (vowr & 0x7f);    /* Extract offset value */
 
24224
                                vwe = (vowr >> 7);      /* Extract weighting value */
 
24225
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
24226
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
24227
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
24228
                        }
 
24229
                }
 
24230
                {
 
24231
                        unsigned int oti;       /* Vertex offset value */
 
24232
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
24233
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
24234
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
24235
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
24236
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
24237
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
24238
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
24239
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
24240
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
24241
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
24242
                }
 
24243
        }
24665
24244
}
24666
24245
#undef IT_IT
24667
24246
#undef SW_O
24675
24254
imdi_k71_gen(
24676
24255
genspec *g                      /* structure to be initialised */
24677
24256
) {
24678
 
        static unsigned char data[] = {
24679
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
24680
 
                0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
24681
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24682
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
24683
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
24684
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
24685
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
24686
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
24687
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
24688
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
24689
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
24690
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24691
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24692
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24693
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24694
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
24695
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
24696
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
24697
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
24698
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
24699
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
24700
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
24701
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
24702
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
24703
 
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
24704
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
24705
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
24706
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
24707
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24708
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24709
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24710
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24711
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
24712
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
24713
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
24714
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
24715
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
24716
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
24717
 
                0xff, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
24718
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
24719
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
24720
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
24721
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
24722
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
24723
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
24724
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
24725
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
24726
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
24727
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24728
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
24729
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
24730
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x31, 0x5f, 0x35, 0x5f, 
24731
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
24732
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
24733
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
24734
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
24735
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
24736
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
24737
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
24738
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24739
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24740
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24741
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24742
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
24743
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x37, 0x31, 
24744
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24745
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24746
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
24747
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
24748
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
24749
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
24750
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
24751
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
24752
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
24753
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
24754
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
24755
 
                0x00, 0xf0, 0x04, 0x08 
24756
 
        };      /* Structure image */
24757
 
        
24758
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
24257
        static unsigned char data[] = {
 
24258
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
24259
                0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
24260
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24261
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
24262
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
24263
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
24264
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
24265
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
24266
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
24267
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
24268
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
24269
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24270
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24271
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24272
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24273
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
24274
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
24275
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
24276
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
24277
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
24278
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
24279
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
24280
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
24281
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
24282
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
24283
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
24284
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
24285
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
24286
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24287
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24288
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24289
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24290
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
24291
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
24292
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
24293
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
24294
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
24295
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
24296
                0xff, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
24297
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
24298
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
24299
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
24300
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
24301
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
24302
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
24303
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
24304
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
24305
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
24306
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24307
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
24308
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
24309
                0x2c, 0xf3, 0xdc, 0xb7, 0x31, 0x5f, 0x35, 0x5f,
 
24310
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
24311
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
24312
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
24313
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
24314
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
24315
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
24316
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
24317
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24318
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24319
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24320
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24321
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
24322
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x37, 0x31,
 
24323
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24324
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24325
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
24326
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
24327
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
24328
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
24329
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
24330
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
24331
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
24332
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
24333
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
24334
                0x00, 0xf0, 0x04, 0x08
 
24335
        };      /* Structure image */
 
24336
 
 
24337
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
24759
24338
}
24760
24339
 
24761
24340
static void
24762
24341
imdi_k71_tab(
24763
24342
tabspec *t                      /* structure to be initialised */
24764
24343
) {
24765
 
        static unsigned char data[] = {
24766
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24767
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
24768
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
24769
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
24770
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
24771
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
24772
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
24773
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
24774
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24775
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24776
 
                0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
24777
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24778
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
24779
 
                0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
24780
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
24781
 
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
24782
 
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
24783
 
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
24784
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
24785
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
24786
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
24787
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
24788
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24789
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
24790
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24791
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24792
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
24793
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
24794
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
24795
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
24796
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
24797
 
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
24798
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
24799
 
        };      /* Structure image */
24800
 
        
24801
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
24344
        static unsigned char data[] = {
 
24345
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24346
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
24347
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
24348
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
24349
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
24350
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
24351
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
24352
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
24353
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24354
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24355
                0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
24356
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24357
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
24358
                0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
24359
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
24360
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
24361
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
24362
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
24363
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
24364
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
24365
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
24366
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
24367
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24368
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
24369
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24370
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24371
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24372
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
24373
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
24374
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
24375
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
24376
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
24377
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
24378
        };      /* Structure image */
 
24379
 
 
24380
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
24802
24381
}
24803
24382
 
24804
 
 
24805
 
 
24806
 
 
24807
 
 
24808
 
 
24809
24383
/* Integer Multi-Dimensional Interpolation */
24810
24384
/* Interpolation Kernel Code */
24811
24385
/* Generated by cgen */
24814
24388
 
24815
24389
/* see the Licence.txt file for licencing details.*/
24816
24390
 
24817
 
 
24818
24391
/*
24819
24392
   Interpolation kernel specs:
24820
24393
 
24908
24481
void **inp,             /* pointer to input pointers */
24909
24482
unsigned int npix       /* Number of pixels to process */
24910
24483
) {
24911
 
        imdi_imp *p = (imdi_imp *)(s->impl);
24912
 
        unsigned char *ip0 = (unsigned char *)inp[0];
24913
 
        unsigned short *op0 = (unsigned short *)outp[0];
24914
 
        unsigned char *ep = ip0 + npix * 3 ;
24915
 
        pointer it0 = (pointer)p->in_tables[0];
24916
 
        pointer it1 = (pointer)p->in_tables[1];
24917
 
        pointer it2 = (pointer)p->in_tables[2];
24918
 
        pointer ot0 = (pointer)p->out_tables[0];
24919
 
        pointer ot1 = (pointer)p->out_tables[1];
24920
 
        pointer ot2 = (pointer)p->out_tables[2];
24921
 
        pointer ot3 = (pointer)p->out_tables[3];
24922
 
        pointer ot4 = (pointer)p->out_tables[4];
24923
 
        pointer sw_base = (pointer)p->sw_table;
24924
 
        pointer im_base = (pointer)p->im_table;
24925
 
        
24926
 
        for(;ip0 < ep; ip0 += 3, op0 += 5) {
24927
 
                unsigned int ova0;      /* Output value accumulator */
24928
 
                unsigned int ova1;      /* Output value accumulator */
24929
 
                unsigned int ova2;      /* Output value partial accumulator */
24930
 
                {
24931
 
                        pointer swp;
24932
 
                        pointer imp;
24933
 
                        {
24934
 
                                unsigned int ti;        /* Simplex+Interpolation index variable */
24935
 
                                
24936
 
                                ti  = IT_IT(it0, ip0[0]);
24937
 
                                ti += IT_IT(it1, ip0[1]);
24938
 
                                ti += IT_IT(it2, ip0[2]);
24939
 
                                
24940
 
                                imp = im_base + IM_O(ti >> 12);         /* Extract interp. index and comp. entry */
24941
 
                                swp = sw_base + SW_O(ti & 0xfff);       /* Extract simplex index and comp. entry */
24942
 
                        }
24943
 
                        {
24944
 
                                unsigned int vof;       /* Vertex offset value */
24945
 
                                unsigned int vwe;       /* Vertex weighting */
24946
 
                                
24947
 
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
24948
 
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
24949
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
24950
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
24951
 
                                ova2  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
24952
 
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
24953
 
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
24954
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
24955
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
24956
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
24957
 
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
24958
 
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
24959
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
24960
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
24961
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
24962
 
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
24963
 
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
24964
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
24965
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
24966
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
24967
 
                        }
24968
 
                }
24969
 
                {
24970
 
                        unsigned int oti;       /* Vertex offset value */
24971
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
24972
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
24973
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
24974
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
24975
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
24976
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
24977
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
24978
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
24979
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
24980
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
24981
 
                }
24982
 
        }
 
24484
        imdi_imp *p = (imdi_imp *)(s->impl);
 
24485
        unsigned char *ip0 = (unsigned char *)inp[0];
 
24486
        unsigned short *op0 = (unsigned short *)outp[0];
 
24487
        unsigned char *ep = ip0 + npix * 3 ;
 
24488
        pointer it0 = (pointer)p->in_tables[0];
 
24489
        pointer it1 = (pointer)p->in_tables[1];
 
24490
        pointer it2 = (pointer)p->in_tables[2];
 
24491
        pointer ot0 = (pointer)p->out_tables[0];
 
24492
        pointer ot1 = (pointer)p->out_tables[1];
 
24493
        pointer ot2 = (pointer)p->out_tables[2];
 
24494
        pointer ot3 = (pointer)p->out_tables[3];
 
24495
        pointer ot4 = (pointer)p->out_tables[4];
 
24496
        pointer sw_base = (pointer)p->sw_table;
 
24497
        pointer im_base = (pointer)p->im_table;
 
24498
 
 
24499
        for(;ip0 < ep; ip0 += 3, op0 += 5) {
 
24500
                unsigned int ova0;      /* Output value accumulator */
 
24501
                unsigned int ova1;      /* Output value accumulator */
 
24502
                unsigned int ova2;      /* Output value partial accumulator */
 
24503
                {
 
24504
                        pointer swp;
 
24505
                        pointer imp;
 
24506
                        {
 
24507
                                unsigned int ti;        /* Simplex+Interpolation index variable */
 
24508
 
 
24509
                                ti  = IT_IT(it0, ip0[0]);
 
24510
                                ti += IT_IT(it1, ip0[1]);
 
24511
                                ti += IT_IT(it2, ip0[2]);
 
24512
 
 
24513
                                imp = im_base + IM_O(ti >> 12);         /* Extract interp. index and comp. entry */
 
24514
                                swp = sw_base + SW_O(ti & 0xfff);       /* Extract simplex index and comp. entry */
 
24515
                        }
 
24516
                        {
 
24517
                                unsigned int vof;       /* Vertex offset value */
 
24518
                                unsigned int vwe;       /* Vertex weighting */
 
24519
 
 
24520
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
 
24521
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
 
24522
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
24523
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
24524
                                ova2  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
24525
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
 
24526
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
 
24527
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
24528
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
24529
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
24530
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
 
24531
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
 
24532
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
24533
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
24534
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
24535
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
 
24536
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
 
24537
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
24538
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
24539
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
24540
                        }
 
24541
                }
 
24542
                {
 
24543
                        unsigned int oti;       /* Vertex offset value */
 
24544
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
24545
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
24546
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
24547
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
24548
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
24549
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
24550
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
24551
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
24552
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
24553
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
24554
                }
 
24555
        }
24983
24556
}
24984
24557
#undef IT_IT
24985
24558
#undef SW_O
24994
24567
imdi_k72_gen(
24995
24568
genspec *g                      /* structure to be initialised */
24996
24569
) {
24997
 
        static unsigned char data[] = {
24998
 
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
24999
 
                0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
25000
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25001
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
25002
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
25003
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
25004
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
25005
 
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
25006
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
25007
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
25008
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
25009
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25010
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25011
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25012
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25013
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
25014
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
25015
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
25016
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
25017
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
25018
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
25019
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
25020
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
25021
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
25022
 
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
25023
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
25024
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
25025
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
25026
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25027
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25028
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25029
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25030
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
25031
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
25032
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
25033
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
25034
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
25035
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
25036
 
                0x65, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
25037
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
25038
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
25039
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
25040
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
25041
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
25042
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
25043
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
25044
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
25045
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
25046
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25047
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
25048
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
25049
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x33, 0x5f, 0x35, 0x5f, 
25050
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
25051
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
25052
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
25053
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
25054
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
25055
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
25056
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
25057
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25058
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25059
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25060
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25061
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
25062
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x37, 0x32, 
25063
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25064
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25065
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
25066
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
25067
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
25068
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
25069
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
25070
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
25071
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
25072
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
25073
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
25074
 
                0x00, 0xf0, 0x04, 0x08 
25075
 
        };      /* Structure image */
25076
 
        
25077
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
24570
        static unsigned char data[] = {
 
24571
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
24572
                0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
24573
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24574
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
24575
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
24576
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
24577
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
24578
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
24579
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
24580
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
24581
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
24582
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24583
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24584
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24585
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24586
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
24587
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
24588
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
24589
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
24590
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
24591
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
24592
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
24593
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
24594
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
24595
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
24596
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
24597
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
24598
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
24599
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24600
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24601
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24602
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24603
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
24604
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
24605
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
24606
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
24607
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
24608
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
24609
                0x65, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
24610
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
24611
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
24612
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
24613
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
24614
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
24615
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
24616
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
24617
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
24618
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
24619
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24620
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
24621
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
24622
                0x2c, 0xf3, 0xdc, 0xb7, 0x33, 0x5f, 0x35, 0x5f,
 
24623
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
24624
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
24625
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
24626
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
24627
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
24628
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
24629
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
24630
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24631
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24632
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24633
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24634
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
24635
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x37, 0x32,
 
24636
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24637
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24638
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
24639
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
24640
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
24641
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
24642
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
24643
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
24644
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
24645
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
24646
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
24647
                0x00, 0xf0, 0x04, 0x08
 
24648
        };      /* Structure image */
 
24649
 
 
24650
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
25078
24651
}
25079
24652
 
25080
24653
static void
25081
24654
imdi_k72_tab(
25082
24655
tabspec *t                      /* structure to be initialised */
25083
24656
) {
25084
 
        static unsigned char data[] = {
25085
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25086
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
25087
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
25088
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
25089
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
25090
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
25091
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
25092
 
                0x14, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
25093
 
                0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 
25094
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25095
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
25096
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25097
 
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
25098
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
25099
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
25100
 
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
25101
 
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
25102
 
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
25103
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
25104
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
25105
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
25106
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
25107
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25108
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
25109
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25110
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25111
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25112
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
25113
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
25114
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
25115
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
25116
 
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
25117
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
25118
 
        };      /* Structure image */
25119
 
        
25120
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
24657
        static unsigned char data[] = {
 
24658
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24659
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
24660
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
24661
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
24662
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
24663
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
24664
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
24665
                0x14, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
24666
                0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
 
24667
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24668
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
24669
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24670
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
24671
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
24672
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
24673
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
24674
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
24675
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
24676
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
24677
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
24678
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
24679
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
24680
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24681
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
24682
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24683
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24684
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24685
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
24686
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
24687
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
24688
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
24689
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
24690
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
24691
        };      /* Structure image */
 
24692
 
 
24693
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
25121
24694
}
25122
24695
 
25123
 
 
25124
 
 
25125
 
 
25126
 
 
25127
 
 
25128
24696
/* Integer Multi-Dimensional Interpolation */
25129
24697
/* Interpolation Kernel Code */
25130
24698
/* Generated by cgen */
25133
24701
 
25134
24702
/* see the Licence.txt file for licencing details.*/
25135
24703
 
25136
 
 
25137
24704
/*
25138
24705
   Interpolation kernel specs:
25139
24706
 
25232
24799
void **inp,             /* pointer to input pointers */
25233
24800
unsigned int npix       /* Number of pixels to process */
25234
24801
) {
25235
 
        imdi_imp *p = (imdi_imp *)(s->impl);
25236
 
        unsigned char *ip0 = (unsigned char *)inp[0];
25237
 
        unsigned short *op0 = (unsigned short *)outp[0];
25238
 
        unsigned char *ep = ip0 + npix * 4 ;
25239
 
        pointer it0 = (pointer)p->in_tables[0];
25240
 
        pointer it1 = (pointer)p->in_tables[1];
25241
 
        pointer it2 = (pointer)p->in_tables[2];
25242
 
        pointer it3 = (pointer)p->in_tables[3];
25243
 
        pointer ot0 = (pointer)p->out_tables[0];
25244
 
        pointer ot1 = (pointer)p->out_tables[1];
25245
 
        pointer ot2 = (pointer)p->out_tables[2];
25246
 
        pointer ot3 = (pointer)p->out_tables[3];
25247
 
        pointer ot4 = (pointer)p->out_tables[4];
25248
 
        pointer sw_base = (pointer)p->sw_table;
25249
 
        pointer im_base = (pointer)p->im_table;
25250
 
        
25251
 
        for(;ip0 < ep; ip0 += 4, op0 += 5) {
25252
 
                unsigned int ova0;      /* Output value accumulator */
25253
 
                unsigned int ova1;      /* Output value accumulator */
25254
 
                unsigned int ova2;      /* Output value partial accumulator */
25255
 
                {
25256
 
                        pointer swp;
25257
 
                        pointer imp;
25258
 
                        {
25259
 
                                unsigned int ti_s;      /* Simplex index variable */
25260
 
                                unsigned int ti_i;      /* Interpolation index variable */
25261
 
                                
25262
 
                                ti_i  = IT_IX(it0, ip0[0]);
25263
 
                                ti_s  = IT_SX(it0, ip0[0]);
25264
 
                                ti_i += IT_IX(it1, ip0[1]);
25265
 
                                ti_s += IT_SX(it1, ip0[1]);
25266
 
                                ti_i += IT_IX(it2, ip0[2]);
25267
 
                                ti_s += IT_SX(it2, ip0[2]);
25268
 
                                ti_i += IT_IX(it3, ip0[3]);
25269
 
                                ti_s += IT_SX(it3, ip0[3]);
25270
 
                                
25271
 
                                swp = sw_base + SW_O(ti_s);             /* Compute simplex table entry pointer */
25272
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
25273
 
                        }
25274
 
                        {
25275
 
                                unsigned int vof;       /* Vertex offset value */
25276
 
                                unsigned int vwe;       /* Vertex weighting */
25277
 
                                
25278
 
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
25279
 
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
25280
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
25281
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
25282
 
                                ova2  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
25283
 
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
25284
 
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
25285
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
25286
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
25287
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
25288
 
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
25289
 
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
25290
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
25291
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
25292
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
25293
 
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
25294
 
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
25295
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
25296
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
25297
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
25298
 
                                vof = SX_VO(swp, 4);    /* Read vertex offset value */
25299
 
                                vwe = SX_WE(swp, 4);    /* Read vertex weighting value */
25300
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
25301
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
25302
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
25303
 
                        }
25304
 
                }
25305
 
                {
25306
 
                        unsigned int oti;       /* Vertex offset value */
25307
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
25308
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
25309
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
25310
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
25311
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
25312
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
25313
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
25314
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
25315
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
25316
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
25317
 
                }
25318
 
        }
 
24802
        imdi_imp *p = (imdi_imp *)(s->impl);
 
24803
        unsigned char *ip0 = (unsigned char *)inp[0];
 
24804
        unsigned short *op0 = (unsigned short *)outp[0];
 
24805
        unsigned char *ep = ip0 + npix * 4 ;
 
24806
        pointer it0 = (pointer)p->in_tables[0];
 
24807
        pointer it1 = (pointer)p->in_tables[1];
 
24808
        pointer it2 = (pointer)p->in_tables[2];
 
24809
        pointer it3 = (pointer)p->in_tables[3];
 
24810
        pointer ot0 = (pointer)p->out_tables[0];
 
24811
        pointer ot1 = (pointer)p->out_tables[1];
 
24812
        pointer ot2 = (pointer)p->out_tables[2];
 
24813
        pointer ot3 = (pointer)p->out_tables[3];
 
24814
        pointer ot4 = (pointer)p->out_tables[4];
 
24815
        pointer sw_base = (pointer)p->sw_table;
 
24816
        pointer im_base = (pointer)p->im_table;
 
24817
 
 
24818
        for(;ip0 < ep; ip0 += 4, op0 += 5) {
 
24819
                unsigned int ova0;      /* Output value accumulator */
 
24820
                unsigned int ova1;      /* Output value accumulator */
 
24821
                unsigned int ova2;      /* Output value partial accumulator */
 
24822
                {
 
24823
                        pointer swp;
 
24824
                        pointer imp;
 
24825
                        {
 
24826
                                unsigned int ti_s;      /* Simplex index variable */
 
24827
                                unsigned int ti_i;      /* Interpolation index variable */
 
24828
 
 
24829
                                ti_i  = IT_IX(it0, ip0[0]);
 
24830
                                ti_s  = IT_SX(it0, ip0[0]);
 
24831
                                ti_i += IT_IX(it1, ip0[1]);
 
24832
                                ti_s += IT_SX(it1, ip0[1]);
 
24833
                                ti_i += IT_IX(it2, ip0[2]);
 
24834
                                ti_s += IT_SX(it2, ip0[2]);
 
24835
                                ti_i += IT_IX(it3, ip0[3]);
 
24836
                                ti_s += IT_SX(it3, ip0[3]);
 
24837
 
 
24838
                                swp = sw_base + SW_O(ti_s);             /* Compute simplex table entry pointer */
 
24839
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
24840
                        }
 
24841
                        {
 
24842
                                unsigned int vof;       /* Vertex offset value */
 
24843
                                unsigned int vwe;       /* Vertex weighting */
 
24844
 
 
24845
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
 
24846
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
 
24847
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
24848
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
24849
                                ova2  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
24850
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
 
24851
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
 
24852
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
24853
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
24854
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
24855
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
 
24856
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
 
24857
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
24858
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
24859
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
24860
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
 
24861
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
 
24862
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
24863
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
24864
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
24865
                                vof = SX_VO(swp, 4);    /* Read vertex offset value */
 
24866
                                vwe = SX_WE(swp, 4);    /* Read vertex weighting value */
 
24867
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
24868
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
24869
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
24870
                        }
 
24871
                }
 
24872
                {
 
24873
                        unsigned int oti;       /* Vertex offset value */
 
24874
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
24875
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
24876
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
24877
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
24878
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
24879
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
24880
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
24881
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
24882
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
24883
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
24884
                }
 
24885
        }
25319
24886
}
25320
24887
#undef IT_IX
25321
24888
#undef IT_SX
25331
24898
imdi_k73_gen(
25332
24899
genspec *g                      /* structure to be initialised */
25333
24900
) {
25334
 
        static unsigned char data[] = {
25335
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
25336
 
                0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
25337
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25338
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
25339
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
25340
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
25341
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
25342
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
25343
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
25344
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
25345
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
25346
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25347
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25348
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25349
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25350
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
25351
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
25352
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
25353
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
25354
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
25355
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
25356
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
25357
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
25358
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
25359
 
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
25360
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
25361
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
25362
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
25363
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25364
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25365
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25366
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25367
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
25368
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
25369
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
25370
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
25371
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
25372
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
25373
 
                0x1b, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 
25374
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
25375
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
25376
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
25377
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
25378
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
25379
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
25380
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
25381
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
25382
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
25383
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25384
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
25385
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
25386
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x34, 0x5f, 0x35, 0x5f, 
25387
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
25388
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
25389
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
25390
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
25391
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
25392
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
25393
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
25394
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25395
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25396
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25397
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25398
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
25399
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x37, 0x33, 
25400
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25401
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25402
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
25403
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
25404
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
25405
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
25406
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
25407
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
25408
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
25409
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
25410
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
25411
 
                0x00, 0xf0, 0x04, 0x08 
25412
 
        };      /* Structure image */
25413
 
        
25414
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
24901
        static unsigned char data[] = {
 
24902
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
24903
                0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
24904
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24905
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
24906
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
24907
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
24908
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
24909
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
24910
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
24911
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
24912
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
24913
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24914
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24915
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24916
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24917
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
24918
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
24919
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
24920
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
24921
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
24922
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
24923
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
24924
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
24925
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
24926
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
24927
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
24928
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
24929
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
24930
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24931
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24932
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24933
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24934
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
24935
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
24936
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
24937
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
24938
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
24939
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
24940
                0x1b, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00,
 
24941
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
24942
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
24943
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
24944
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
24945
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
24946
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
24947
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
24948
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
24949
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
24950
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24951
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
24952
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
24953
                0x2c, 0xf3, 0xdc, 0xb7, 0x34, 0x5f, 0x35, 0x5f,
 
24954
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
24955
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
24956
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
24957
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
24958
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
24959
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
24960
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
24961
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24962
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24963
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24964
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24965
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
24966
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x37, 0x33,
 
24967
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24968
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24969
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
24970
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
24971
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
24972
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
24973
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
24974
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
24975
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
24976
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
24977
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
24978
                0x00, 0xf0, 0x04, 0x08
 
24979
        };      /* Structure image */
 
24980
 
 
24981
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
25415
24982
}
25416
24983
 
25417
24984
static void
25418
24985
imdi_k73_tab(
25419
24986
tabspec *t                      /* structure to be initialised */
25420
24987
) {
25421
 
        static unsigned char data[] = {
25422
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
25423
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
25424
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
25425
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
25426
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
25427
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
25428
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
25429
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
25430
 
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
25431
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25432
 
                0x14, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
25433
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25434
 
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
25435
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
25436
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
25437
 
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
25438
 
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
25439
 
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
25440
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
25441
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
25442
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
25443
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
25444
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25445
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
25446
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25447
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25448
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25449
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
25450
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
25451
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
25452
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
25453
 
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
25454
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
25455
 
        };      /* Structure image */
25456
 
        
25457
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
24988
        static unsigned char data[] = {
 
24989
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
24990
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
24991
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
24992
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
24993
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
24994
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
24995
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
24996
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
24997
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
24998
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
24999
                0x14, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
25000
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25001
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
25002
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
25003
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
25004
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
25005
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
25006
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
25007
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
25008
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
25009
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
25010
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
25011
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25012
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
25013
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25014
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25015
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25016
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
25017
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
25018
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
25019
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
25020
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
25021
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
25022
        };      /* Structure image */
 
25023
 
 
25024
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
25458
25025
}
25459
25026
 
25460
 
 
25461
 
 
25462
 
 
25463
 
 
25464
 
 
25465
25027
/* Integer Multi-Dimensional Interpolation */
25466
25028
/* Interpolation Kernel Code */
25467
25029
/* Generated by cgen */
25470
25032
 
25471
25033
/* see the Licence.txt file for licencing details.*/
25472
25034
 
25473
 
 
25474
25035
/*
25475
25036
   Interpolation kernel specs:
25476
25037
 
25564
25125
void **inp,             /* pointer to input pointers */
25565
25126
unsigned int npix       /* Number of pixels to process */
25566
25127
) {
25567
 
        imdi_imp *p = (imdi_imp *)(s->impl);
25568
 
        unsigned char *ip0 = (unsigned char *)inp[0];
25569
 
        unsigned short *op0 = (unsigned short *)outp[0];
25570
 
        unsigned char *ep = ip0 + npix * 5 ;
25571
 
        pointer it0 = (pointer)p->in_tables[0];
25572
 
        pointer it1 = (pointer)p->in_tables[1];
25573
 
        pointer it2 = (pointer)p->in_tables[2];
25574
 
        pointer it3 = (pointer)p->in_tables[3];
25575
 
        pointer it4 = (pointer)p->in_tables[4];
25576
 
        pointer ot0 = (pointer)p->out_tables[0];
25577
 
        pointer ot1 = (pointer)p->out_tables[1];
25578
 
        pointer ot2 = (pointer)p->out_tables[2];
25579
 
        pointer ot3 = (pointer)p->out_tables[3];
25580
 
        pointer ot4 = (pointer)p->out_tables[4];
25581
 
        pointer im_base = (pointer)p->im_table;
25582
 
        
25583
 
        for(;ip0 < ep; ip0 += 5, op0 += 5) {
25584
 
                unsigned int ova0;      /* Output value accumulator */
25585
 
                unsigned int ova1;      /* Output value accumulator */
25586
 
                unsigned int ova2;      /* Output value partial accumulator */
25587
 
                {
25588
 
                        pointer imp;
25589
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
25590
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
25591
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
25592
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
25593
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
25594
 
                        {
25595
 
                                unsigned int ti_i;      /* Interpolation index variable */
25596
 
                                
25597
 
                                ti_i  = IT_IX(it0, ip0[0]);
25598
 
                                wo0   = IT_WO(it0, ip0[0]);
25599
 
                                ti_i += IT_IX(it1, ip0[1]);
25600
 
                                wo1   = IT_WO(it1, ip0[1]);
25601
 
                                ti_i += IT_IX(it2, ip0[2]);
25602
 
                                wo2   = IT_WO(it2, ip0[2]);
25603
 
                                ti_i += IT_IX(it3, ip0[3]);
25604
 
                                wo3   = IT_WO(it3, ip0[3]);
25605
 
                                ti_i += IT_IX(it4, ip0[4]);
25606
 
                                wo4   = IT_WO(it4, ip0[4]);
25607
 
                                
25608
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
25609
 
                                
25610
 
                                /* Sort weighting values and vertex offset values */
25611
 
                                CEX(wo0, wo1);
25612
 
                                CEX(wo0, wo2);
25613
 
                                CEX(wo0, wo3);
25614
 
                                CEX(wo0, wo4);
25615
 
                                CEX(wo1, wo2);
25616
 
                                CEX(wo1, wo3);
25617
 
                                CEX(wo1, wo4);
25618
 
                                CEX(wo2, wo3);
25619
 
                                CEX(wo2, wo4);
25620
 
                                CEX(wo3, wo4);
25621
 
                        }
25622
 
                        {
25623
 
                                unsigned int nvof;      /* Next vertex offset value */
25624
 
                                unsigned int vof;       /* Vertex offset value */
25625
 
                                unsigned int vwe;       /* Vertex weighting */
25626
 
                                
25627
 
                                vof = 0;                                /* First vertex offset is 0 */
25628
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
25629
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
25630
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
25631
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
25632
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
25633
 
                                ova2  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
25634
 
                                vof += nvof;                    /* Move to next vertex */
25635
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
25636
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
25637
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
25638
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
25639
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
25640
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
25641
 
                                vof += nvof;                    /* Move to next vertex */
25642
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
25643
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
25644
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
25645
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
25646
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
25647
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
25648
 
                                vof += nvof;                    /* Move to next vertex */
25649
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
25650
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
25651
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
25652
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
25653
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
25654
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
25655
 
                                vof += nvof;                    /* Move to next vertex */
25656
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
25657
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
25658
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
25659
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
25660
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
25661
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
25662
 
                                vof += nvof;                    /* Move to next vertex */
25663
 
                                vwe = wo4;                              /* Baricentric weighting */
25664
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
25665
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
25666
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
25667
 
                        }
25668
 
                }
25669
 
                {
25670
 
                        unsigned int oti;       /* Vertex offset value */
25671
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
25672
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
25673
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
25674
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
25675
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
25676
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
25677
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
25678
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
25679
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
25680
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
25681
 
                }
25682
 
        }
 
25128
        imdi_imp *p = (imdi_imp *)(s->impl);
 
25129
        unsigned char *ip0 = (unsigned char *)inp[0];
 
25130
        unsigned short *op0 = (unsigned short *)outp[0];
 
25131
        unsigned char *ep = ip0 + npix * 5 ;
 
25132
        pointer it0 = (pointer)p->in_tables[0];
 
25133
        pointer it1 = (pointer)p->in_tables[1];
 
25134
        pointer it2 = (pointer)p->in_tables[2];
 
25135
        pointer it3 = (pointer)p->in_tables[3];
 
25136
        pointer it4 = (pointer)p->in_tables[4];
 
25137
        pointer ot0 = (pointer)p->out_tables[0];
 
25138
        pointer ot1 = (pointer)p->out_tables[1];
 
25139
        pointer ot2 = (pointer)p->out_tables[2];
 
25140
        pointer ot3 = (pointer)p->out_tables[3];
 
25141
        pointer ot4 = (pointer)p->out_tables[4];
 
25142
        pointer im_base = (pointer)p->im_table;
 
25143
 
 
25144
        for(;ip0 < ep; ip0 += 5, op0 += 5) {
 
25145
                unsigned int ova0;      /* Output value accumulator */
 
25146
                unsigned int ova1;      /* Output value accumulator */
 
25147
                unsigned int ova2;      /* Output value partial accumulator */
 
25148
                {
 
25149
                        pointer imp;
 
25150
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
25151
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
25152
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
25153
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
25154
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
25155
                        {
 
25156
                                unsigned int ti_i;      /* Interpolation index variable */
 
25157
 
 
25158
                                ti_i  = IT_IX(it0, ip0[0]);
 
25159
                                wo0   = IT_WO(it0, ip0[0]);
 
25160
                                ti_i += IT_IX(it1, ip0[1]);
 
25161
                                wo1   = IT_WO(it1, ip0[1]);
 
25162
                                ti_i += IT_IX(it2, ip0[2]);
 
25163
                                wo2   = IT_WO(it2, ip0[2]);
 
25164
                                ti_i += IT_IX(it3, ip0[3]);
 
25165
                                wo3   = IT_WO(it3, ip0[3]);
 
25166
                                ti_i += IT_IX(it4, ip0[4]);
 
25167
                                wo4   = IT_WO(it4, ip0[4]);
 
25168
 
 
25169
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
25170
 
 
25171
                                /* Sort weighting values and vertex offset values */
 
25172
                                CEX(wo0, wo1);
 
25173
                                CEX(wo0, wo2);
 
25174
                                CEX(wo0, wo3);
 
25175
                                CEX(wo0, wo4);
 
25176
                                CEX(wo1, wo2);
 
25177
                                CEX(wo1, wo3);
 
25178
                                CEX(wo1, wo4);
 
25179
                                CEX(wo2, wo3);
 
25180
                                CEX(wo2, wo4);
 
25181
                                CEX(wo3, wo4);
 
25182
                        }
 
25183
                        {
 
25184
                                unsigned int nvof;      /* Next vertex offset value */
 
25185
                                unsigned int vof;       /* Vertex offset value */
 
25186
                                unsigned int vwe;       /* Vertex weighting */
 
25187
 
 
25188
                                vof = 0;                                /* First vertex offset is 0 */
 
25189
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
25190
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
25191
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
25192
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
25193
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
25194
                                ova2  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
25195
                                vof += nvof;                    /* Move to next vertex */
 
25196
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
25197
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
25198
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
25199
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
25200
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
25201
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
25202
                                vof += nvof;                    /* Move to next vertex */
 
25203
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
25204
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
25205
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
25206
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
25207
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
25208
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
25209
                                vof += nvof;                    /* Move to next vertex */
 
25210
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
25211
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
25212
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
25213
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
25214
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
25215
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
25216
                                vof += nvof;                    /* Move to next vertex */
 
25217
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
25218
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
25219
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
25220
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
25221
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
25222
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
25223
                                vof += nvof;                    /* Move to next vertex */
 
25224
                                vwe = wo4;                              /* Baricentric weighting */
 
25225
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
25226
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
25227
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
25228
                        }
 
25229
                }
 
25230
                {
 
25231
                        unsigned int oti;       /* Vertex offset value */
 
25232
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
25233
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
25234
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
25235
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
25236
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
25237
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
25238
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
25239
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
25240
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
25241
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
25242
                }
 
25243
        }
25683
25244
}
25684
25245
#undef IT_WO
25685
25246
#undef IT_IX
25693
25254
imdi_k74_gen(
25694
25255
genspec *g                      /* structure to be initialised */
25695
25256
) {
25696
 
        static unsigned char data[] = {
25697
 
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
25698
 
                0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
25699
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25700
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
25701
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
25702
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
25703
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
25704
 
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
25705
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
25706
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
25707
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
25708
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25709
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25710
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25711
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25712
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
25713
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
25714
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
25715
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
25716
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
25717
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
25718
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
25719
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
25720
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
25721
 
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
25722
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
25723
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
25724
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
25725
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25726
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25727
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25728
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25729
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
25730
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
25731
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
25732
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
25733
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
25734
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
25735
 
                0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25736
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
25737
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
25738
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
25739
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
25740
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
25741
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
25742
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
25743
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
25744
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
25745
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25746
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
25747
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
25748
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x35, 0x5f, 0x35, 0x5f, 
25749
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
25750
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
25751
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
25752
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
25753
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
25754
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
25755
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
25756
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25757
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25758
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25759
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25760
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
25761
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x37, 0x34, 
25762
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25763
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25764
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
25765
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
25766
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
25767
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
25768
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
25769
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
25770
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
25771
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
25772
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
25773
 
                0x00, 0xf0, 0x04, 0x08 
25774
 
        };      /* Structure image */
25775
 
        
25776
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
25257
        static unsigned char data[] = {
 
25258
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
25259
                0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
25260
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25261
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
25262
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
25263
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
25264
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
25265
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
25266
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
25267
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
25268
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
25269
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25270
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25271
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25272
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25273
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
25274
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
25275
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
25276
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
25277
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
25278
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
25279
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
25280
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
25281
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
25282
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
25283
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
25284
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
25285
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
25286
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25287
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25288
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25289
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25290
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
25291
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
25292
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
25293
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
25294
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
25295
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
25296
                0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25297
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
25298
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
25299
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
25300
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
25301
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
25302
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
25303
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
25304
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
25305
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
25306
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25307
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
25308
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
25309
                0x2c, 0xf3, 0xdc, 0xb7, 0x35, 0x5f, 0x35, 0x5f,
 
25310
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
25311
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
25312
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
25313
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
25314
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
25315
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
25316
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
25317
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25318
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25319
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25320
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25321
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
25322
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x37, 0x34,
 
25323
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25324
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25325
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
25326
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
25327
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
25328
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
25329
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
25330
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
25331
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
25332
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
25333
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
25334
                0x00, 0xf0, 0x04, 0x08
 
25335
        };      /* Structure image */
 
25336
 
 
25337
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
25777
25338
}
25778
25339
 
25779
25340
static void
25780
25341
imdi_k74_tab(
25781
25342
tabspec *t                      /* structure to be initialised */
25782
25343
) {
25783
 
        static unsigned char data[] = {
25784
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
25785
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
25786
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
25787
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
25788
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
25789
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
25790
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
25791
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
25792
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
25793
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25794
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
25795
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
25796
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
25797
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
25798
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
25799
 
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
25800
 
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
25801
 
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
25802
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
25803
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
25804
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
25805
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
25806
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25807
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
25808
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25809
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25810
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
25811
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
25812
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
25813
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
25814
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
25815
 
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
25816
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
25817
 
        };      /* Structure image */
25818
 
        
25819
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
25344
        static unsigned char data[] = {
 
25345
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
25346
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
25347
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
25348
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
25349
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
25350
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
25351
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
25352
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
25353
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
25354
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25355
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
25356
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
25357
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
25358
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
25359
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
25360
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
25361
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
25362
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
25363
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
25364
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
25365
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
25366
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
25367
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25368
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
25369
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25370
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25371
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25372
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
25373
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
25374
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
25375
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
25376
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
25377
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
25378
        };      /* Structure image */
 
25379
 
 
25380
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
25820
25381
}
25821
25382
 
25822
 
 
25823
 
 
25824
 
 
25825
 
 
25826
 
 
25827
25383
/* Integer Multi-Dimensional Interpolation */
25828
25384
/* Interpolation Kernel Code */
25829
25385
/* Generated by cgen */
25832
25388
 
25833
25389
/* see the Licence.txt file for licencing details.*/
25834
25390
 
25835
 
 
25836
25391
/*
25837
25392
   Interpolation kernel specs:
25838
25393
 
25928
25483
void **inp,             /* pointer to input pointers */
25929
25484
unsigned int npix       /* Number of pixels to process */
25930
25485
) {
25931
 
        imdi_imp *p = (imdi_imp *)(s->impl);
25932
 
        unsigned char *ip0 = (unsigned char *)inp[0];
25933
 
        unsigned short *op0 = (unsigned short *)outp[0];
25934
 
        unsigned char *ep = ip0 + npix * 6 ;
25935
 
        pointer it0 = (pointer)p->in_tables[0];
25936
 
        pointer it1 = (pointer)p->in_tables[1];
25937
 
        pointer it2 = (pointer)p->in_tables[2];
25938
 
        pointer it3 = (pointer)p->in_tables[3];
25939
 
        pointer it4 = (pointer)p->in_tables[4];
25940
 
        pointer it5 = (pointer)p->in_tables[5];
25941
 
        pointer ot0 = (pointer)p->out_tables[0];
25942
 
        pointer ot1 = (pointer)p->out_tables[1];
25943
 
        pointer ot2 = (pointer)p->out_tables[2];
25944
 
        pointer ot3 = (pointer)p->out_tables[3];
25945
 
        pointer ot4 = (pointer)p->out_tables[4];
25946
 
        pointer im_base = (pointer)p->im_table;
25947
 
        
25948
 
        for(;ip0 < ep; ip0 += 6, op0 += 5) {
25949
 
                unsigned int ova0;      /* Output value accumulator */
25950
 
                unsigned int ova1;      /* Output value accumulator */
25951
 
                unsigned int ova2;      /* Output value partial accumulator */
25952
 
                {
25953
 
                        pointer imp;
25954
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
25955
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
25956
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
25957
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
25958
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
25959
 
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
25960
 
                        {
25961
 
                                unsigned int ti_i;      /* Interpolation index variable */
25962
 
                                
25963
 
                                ti_i  = IT_IX(it0, ip0[0]);
25964
 
                                wo0   = IT_WO(it0, ip0[0]);
25965
 
                                ti_i += IT_IX(it1, ip0[1]);
25966
 
                                wo1   = IT_WO(it1, ip0[1]);
25967
 
                                ti_i += IT_IX(it2, ip0[2]);
25968
 
                                wo2   = IT_WO(it2, ip0[2]);
25969
 
                                ti_i += IT_IX(it3, ip0[3]);
25970
 
                                wo3   = IT_WO(it3, ip0[3]);
25971
 
                                ti_i += IT_IX(it4, ip0[4]);
25972
 
                                wo4   = IT_WO(it4, ip0[4]);
25973
 
                                ti_i += IT_IX(it5, ip0[5]);
25974
 
                                wo5   = IT_WO(it5, ip0[5]);
25975
 
                                
25976
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
25977
 
                                
25978
 
                                /* Sort weighting values and vertex offset values */
25979
 
                                CEX(wo0, wo1);
25980
 
                                CEX(wo0, wo2);
25981
 
                                CEX(wo0, wo3);
25982
 
                                CEX(wo0, wo4);
25983
 
                                CEX(wo0, wo5);
25984
 
                                CEX(wo1, wo2);
25985
 
                                CEX(wo1, wo3);
25986
 
                                CEX(wo1, wo4);
25987
 
                                CEX(wo1, wo5);
25988
 
                                CEX(wo2, wo3);
25989
 
                                CEX(wo2, wo4);
25990
 
                                CEX(wo2, wo5);
25991
 
                                CEX(wo3, wo4);
25992
 
                                CEX(wo3, wo5);
25993
 
                                CEX(wo4, wo5);
25994
 
                        }
25995
 
                        {
25996
 
                                unsigned int nvof;      /* Next vertex offset value */
25997
 
                                unsigned int vof;       /* Vertex offset value */
25998
 
                                unsigned int vwe;       /* Vertex weighting */
25999
 
                                
26000
 
                                vof = 0;                                /* First vertex offset is 0 */
26001
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
26002
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
26003
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
26004
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
26005
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
26006
 
                                ova2  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
26007
 
                                vof += nvof;                    /* Move to next vertex */
26008
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
26009
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
26010
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
26011
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
26012
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
26013
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
26014
 
                                vof += nvof;                    /* Move to next vertex */
26015
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
26016
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
26017
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
26018
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
26019
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
26020
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
26021
 
                                vof += nvof;                    /* Move to next vertex */
26022
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
26023
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
26024
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
26025
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
26026
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
26027
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
26028
 
                                vof += nvof;                    /* Move to next vertex */
26029
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
26030
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
26031
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
26032
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
26033
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
26034
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
26035
 
                                vof += nvof;                    /* Move to next vertex */
26036
 
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
26037
 
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
26038
 
                                vwe = wo4 - wo5;                /* Baricentric weighting */
26039
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
26040
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
26041
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
26042
 
                                vof += nvof;                    /* Move to next vertex */
26043
 
                                vwe = wo5;                              /* Baricentric weighting */
26044
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
26045
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
26046
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
26047
 
                        }
26048
 
                }
26049
 
                {
26050
 
                        unsigned int oti;       /* Vertex offset value */
26051
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
26052
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
26053
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
26054
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
26055
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
26056
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
26057
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
26058
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
26059
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
26060
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
26061
 
                }
26062
 
        }
 
25486
        imdi_imp *p = (imdi_imp *)(s->impl);
 
25487
        unsigned char *ip0 = (unsigned char *)inp[0];
 
25488
        unsigned short *op0 = (unsigned short *)outp[0];
 
25489
        unsigned char *ep = ip0 + npix * 6 ;
 
25490
        pointer it0 = (pointer)p->in_tables[0];
 
25491
        pointer it1 = (pointer)p->in_tables[1];
 
25492
        pointer it2 = (pointer)p->in_tables[2];
 
25493
        pointer it3 = (pointer)p->in_tables[3];
 
25494
        pointer it4 = (pointer)p->in_tables[4];
 
25495
        pointer it5 = (pointer)p->in_tables[5];
 
25496
        pointer ot0 = (pointer)p->out_tables[0];
 
25497
        pointer ot1 = (pointer)p->out_tables[1];
 
25498
        pointer ot2 = (pointer)p->out_tables[2];
 
25499
        pointer ot3 = (pointer)p->out_tables[3];
 
25500
        pointer ot4 = (pointer)p->out_tables[4];
 
25501
        pointer im_base = (pointer)p->im_table;
 
25502
 
 
25503
        for(;ip0 < ep; ip0 += 6, op0 += 5) {
 
25504
                unsigned int ova0;      /* Output value accumulator */
 
25505
                unsigned int ova1;      /* Output value accumulator */
 
25506
                unsigned int ova2;      /* Output value partial accumulator */
 
25507
                {
 
25508
                        pointer imp;
 
25509
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
25510
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
25511
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
25512
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
25513
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
25514
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
 
25515
                        {
 
25516
                                unsigned int ti_i;      /* Interpolation index variable */
 
25517
 
 
25518
                                ti_i  = IT_IX(it0, ip0[0]);
 
25519
                                wo0   = IT_WO(it0, ip0[0]);
 
25520
                                ti_i += IT_IX(it1, ip0[1]);
 
25521
                                wo1   = IT_WO(it1, ip0[1]);
 
25522
                                ti_i += IT_IX(it2, ip0[2]);
 
25523
                                wo2   = IT_WO(it2, ip0[2]);
 
25524
                                ti_i += IT_IX(it3, ip0[3]);
 
25525
                                wo3   = IT_WO(it3, ip0[3]);
 
25526
                                ti_i += IT_IX(it4, ip0[4]);
 
25527
                                wo4   = IT_WO(it4, ip0[4]);
 
25528
                                ti_i += IT_IX(it5, ip0[5]);
 
25529
                                wo5   = IT_WO(it5, ip0[5]);
 
25530
 
 
25531
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
25532
 
 
25533
                                /* Sort weighting values and vertex offset values */
 
25534
                                CEX(wo0, wo1);
 
25535
                                CEX(wo0, wo2);
 
25536
                                CEX(wo0, wo3);
 
25537
                                CEX(wo0, wo4);
 
25538
                                CEX(wo0, wo5);
 
25539
                                CEX(wo1, wo2);
 
25540
                                CEX(wo1, wo3);
 
25541
                                CEX(wo1, wo4);
 
25542
                                CEX(wo1, wo5);
 
25543
                                CEX(wo2, wo3);
 
25544
                                CEX(wo2, wo4);
 
25545
                                CEX(wo2, wo5);
 
25546
                                CEX(wo3, wo4);
 
25547
                                CEX(wo3, wo5);
 
25548
                                CEX(wo4, wo5);
 
25549
                        }
 
25550
                        {
 
25551
                                unsigned int nvof;      /* Next vertex offset value */
 
25552
                                unsigned int vof;       /* Vertex offset value */
 
25553
                                unsigned int vwe;       /* Vertex weighting */
 
25554
 
 
25555
                                vof = 0;                                /* First vertex offset is 0 */
 
25556
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
25557
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
25558
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
25559
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
25560
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
25561
                                ova2  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
25562
                                vof += nvof;                    /* Move to next vertex */
 
25563
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
25564
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
25565
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
25566
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
25567
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
25568
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
25569
                                vof += nvof;                    /* Move to next vertex */
 
25570
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
25571
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
25572
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
25573
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
25574
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
25575
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
25576
                                vof += nvof;                    /* Move to next vertex */
 
25577
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
25578
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
25579
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
25580
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
25581
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
25582
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
25583
                                vof += nvof;                    /* Move to next vertex */
 
25584
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
25585
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
25586
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
25587
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
25588
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
25589
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
25590
                                vof += nvof;                    /* Move to next vertex */
 
25591
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
 
25592
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
 
25593
                                vwe = wo4 - wo5;                /* Baricentric weighting */
 
25594
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
25595
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
25596
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
25597
                                vof += nvof;                    /* Move to next vertex */
 
25598
                                vwe = wo5;                              /* Baricentric weighting */
 
25599
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
25600
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
25601
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
25602
                        }
 
25603
                }
 
25604
                {
 
25605
                        unsigned int oti;       /* Vertex offset value */
 
25606
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
25607
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
25608
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
25609
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
25610
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
25611
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
25612
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
25613
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
25614
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
25615
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
25616
                }
 
25617
        }
26063
25618
}
26064
25619
#undef IT_WO
26065
25620
#undef IT_IX
26073
25628
imdi_k75_gen(
26074
25629
genspec *g                      /* structure to be initialised */
26075
25630
) {
26076
 
        static unsigned char data[] = {
26077
 
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
26078
 
                0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
26079
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26080
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
26081
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
26082
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
26083
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
26084
 
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
26085
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
26086
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
26087
 
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
26088
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26089
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26090
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26091
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26092
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
26093
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
26094
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
26095
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
26096
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
26097
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
26098
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
26099
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
26100
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
26101
 
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
26102
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
26103
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
26104
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
26105
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26106
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26107
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26108
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26109
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
26110
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
26111
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
26112
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
26113
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
26114
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
26115
 
                0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26116
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
26117
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
26118
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
26119
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
26120
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
26121
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
26122
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
26123
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
26124
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
26125
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26126
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
26127
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
26128
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x36, 0x5f, 0x35, 0x5f, 
26129
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
26130
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
26131
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
26132
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
26133
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
26134
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
26135
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
26136
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26137
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26138
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26139
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26140
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
26141
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x37, 0x35, 
26142
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26143
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26144
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
26145
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
26146
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
26147
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
26148
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
26149
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
26150
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
26151
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
26152
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
26153
 
                0x00, 0xf0, 0x04, 0x08 
26154
 
        };      /* Structure image */
26155
 
        
26156
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
25631
        static unsigned char data[] = {
 
25632
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
25633
                0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
25634
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25635
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
25636
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
25637
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
25638
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
25639
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
25640
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
25641
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
25642
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
25643
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25644
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25645
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25646
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25647
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
25648
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
25649
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
25650
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
25651
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
25652
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
25653
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
25654
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
25655
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
25656
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
25657
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
25658
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
25659
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
25660
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25661
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25662
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25663
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25664
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
25665
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
25666
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
25667
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
25668
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
25669
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
25670
                0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25671
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
25672
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
25673
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
25674
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
25675
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
25676
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
25677
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
25678
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
25679
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
25680
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25681
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
25682
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
25683
                0x2c, 0xf3, 0xdc, 0xb7, 0x36, 0x5f, 0x35, 0x5f,
 
25684
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
25685
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
25686
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
25687
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
25688
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
25689
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
25690
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
25691
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25692
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25693
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25694
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25695
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
25696
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x37, 0x35,
 
25697
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25698
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25699
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
25700
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
25701
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
25702
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
25703
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
25704
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
25705
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
25706
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
25707
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
25708
                0x00, 0xf0, 0x04, 0x08
 
25709
        };      /* Structure image */
 
25710
 
 
25711
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
26157
25712
}
26158
25713
 
26159
25714
static void
26160
25715
imdi_k75_tab(
26161
25716
tabspec *t                      /* structure to be initialised */
26162
25717
) {
26163
 
        static unsigned char data[] = {
26164
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
26165
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
26166
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
26167
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
26168
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
26169
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
26170
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
26171
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
26172
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
26173
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26174
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
26175
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
26176
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
26177
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
26178
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
26179
 
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
26180
 
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
26181
 
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
26182
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
26183
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
26184
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
26185
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
26186
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26187
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
26188
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26189
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26190
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26191
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
26192
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
26193
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
26194
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
26195
 
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
26196
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
26197
 
        };      /* Structure image */
26198
 
        
26199
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
25718
        static unsigned char data[] = {
 
25719
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
25720
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
25721
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
25722
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
25723
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
25724
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
25725
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
25726
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
25727
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
25728
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25729
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
25730
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
25731
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
25732
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
25733
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
25734
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
25735
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
25736
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
25737
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
25738
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
25739
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
25740
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
25741
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25742
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
25743
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25744
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25745
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
25746
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
25747
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
25748
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
25749
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
25750
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
25751
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
25752
        };      /* Structure image */
 
25753
 
 
25754
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
26200
25755
}
26201
25756
 
26202
 
 
26203
 
 
26204
 
 
26205
 
 
26206
 
 
26207
25757
/* Integer Multi-Dimensional Interpolation */
26208
25758
/* Interpolation Kernel Code */
26209
25759
/* Generated by cgen */
26212
25762
 
26213
25763
/* see the Licence.txt file for licencing details.*/
26214
25764
 
26215
 
 
26216
25765
/*
26217
25766
   Interpolation kernel specs:
26218
25767
 
26310
25859
void **inp,             /* pointer to input pointers */
26311
25860
unsigned int npix       /* Number of pixels to process */
26312
25861
) {
26313
 
        imdi_imp *p = (imdi_imp *)(s->impl);
26314
 
        unsigned char *ip0 = (unsigned char *)inp[0];
26315
 
        unsigned short *op0 = (unsigned short *)outp[0];
26316
 
        unsigned char *ep = ip0 + npix * 7 ;
26317
 
        pointer it0 = (pointer)p->in_tables[0];
26318
 
        pointer it1 = (pointer)p->in_tables[1];
26319
 
        pointer it2 = (pointer)p->in_tables[2];
26320
 
        pointer it3 = (pointer)p->in_tables[3];
26321
 
        pointer it4 = (pointer)p->in_tables[4];
26322
 
        pointer it5 = (pointer)p->in_tables[5];
26323
 
        pointer it6 = (pointer)p->in_tables[6];
26324
 
        pointer ot0 = (pointer)p->out_tables[0];
26325
 
        pointer ot1 = (pointer)p->out_tables[1];
26326
 
        pointer ot2 = (pointer)p->out_tables[2];
26327
 
        pointer ot3 = (pointer)p->out_tables[3];
26328
 
        pointer ot4 = (pointer)p->out_tables[4];
26329
 
        pointer im_base = (pointer)p->im_table;
26330
 
        
26331
 
        for(;ip0 < ep; ip0 += 7, op0 += 5) {
26332
 
                unsigned int ova0;      /* Output value accumulator */
26333
 
                unsigned int ova1;      /* Output value accumulator */
26334
 
                unsigned int ova2;      /* Output value partial accumulator */
26335
 
                {
26336
 
                        pointer imp;
26337
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
26338
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
26339
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
26340
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
26341
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
26342
 
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
26343
 
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
26344
 
                        {
26345
 
                                unsigned int ti_i;      /* Interpolation index variable */
26346
 
                                
26347
 
                                ti_i  = IT_IX(it0, ip0[0]);
26348
 
                                wo0   = IT_WO(it0, ip0[0]);
26349
 
                                ti_i += IT_IX(it1, ip0[1]);
26350
 
                                wo1   = IT_WO(it1, ip0[1]);
26351
 
                                ti_i += IT_IX(it2, ip0[2]);
26352
 
                                wo2   = IT_WO(it2, ip0[2]);
26353
 
                                ti_i += IT_IX(it3, ip0[3]);
26354
 
                                wo3   = IT_WO(it3, ip0[3]);
26355
 
                                ti_i += IT_IX(it4, ip0[4]);
26356
 
                                wo4   = IT_WO(it4, ip0[4]);
26357
 
                                ti_i += IT_IX(it5, ip0[5]);
26358
 
                                wo5   = IT_WO(it5, ip0[5]);
26359
 
                                ti_i += IT_IX(it6, ip0[6]);
26360
 
                                wo6   = IT_WO(it6, ip0[6]);
26361
 
                                
26362
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
26363
 
                                
26364
 
                                /* Sort weighting values and vertex offset values */
26365
 
                                CEX(wo0, wo1);
26366
 
                                CEX(wo0, wo2);
26367
 
                                CEX(wo0, wo3);
26368
 
                                CEX(wo0, wo4);
26369
 
                                CEX(wo0, wo5);
26370
 
                                CEX(wo0, wo6);
26371
 
                                CEX(wo1, wo2);
26372
 
                                CEX(wo1, wo3);
26373
 
                                CEX(wo1, wo4);
26374
 
                                CEX(wo1, wo5);
26375
 
                                CEX(wo1, wo6);
26376
 
                                CEX(wo2, wo3);
26377
 
                                CEX(wo2, wo4);
26378
 
                                CEX(wo2, wo5);
26379
 
                                CEX(wo2, wo6);
26380
 
                                CEX(wo3, wo4);
26381
 
                                CEX(wo3, wo5);
26382
 
                                CEX(wo3, wo6);
26383
 
                                CEX(wo4, wo5);
26384
 
                                CEX(wo4, wo6);
26385
 
                                CEX(wo5, wo6);
26386
 
                        }
26387
 
                        {
26388
 
                                unsigned int nvof;      /* Next vertex offset value */
26389
 
                                unsigned int vof;       /* Vertex offset value */
26390
 
                                unsigned int vwe;       /* Vertex weighting */
26391
 
                                
26392
 
                                vof = 0;                                /* First vertex offset is 0 */
26393
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
26394
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
26395
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
26396
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
26397
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
26398
 
                                ova2  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
26399
 
                                vof += nvof;                    /* Move to next vertex */
26400
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
26401
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
26402
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
26403
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
26404
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
26405
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
26406
 
                                vof += nvof;                    /* Move to next vertex */
26407
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
26408
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
26409
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
26410
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
26411
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
26412
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
26413
 
                                vof += nvof;                    /* Move to next vertex */
26414
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
26415
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
26416
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
26417
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
26418
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
26419
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
26420
 
                                vof += nvof;                    /* Move to next vertex */
26421
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
26422
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
26423
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
26424
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
26425
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
26426
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
26427
 
                                vof += nvof;                    /* Move to next vertex */
26428
 
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
26429
 
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
26430
 
                                vwe = wo4 - wo5;                /* Baricentric weighting */
26431
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
26432
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
26433
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
26434
 
                                vof += nvof;                    /* Move to next vertex */
26435
 
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
26436
 
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
26437
 
                                vwe = wo5 - wo6;                /* Baricentric weighting */
26438
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
26439
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
26440
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
26441
 
                                vof += nvof;                    /* Move to next vertex */
26442
 
                                vwe = wo6;                              /* Baricentric weighting */
26443
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
26444
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
26445
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
26446
 
                        }
26447
 
                }
26448
 
                {
26449
 
                        unsigned int oti;       /* Vertex offset value */
26450
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
26451
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
26452
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
26453
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
26454
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
26455
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
26456
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
26457
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
26458
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
26459
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
26460
 
                }
26461
 
        }
 
25862
        imdi_imp *p = (imdi_imp *)(s->impl);
 
25863
        unsigned char *ip0 = (unsigned char *)inp[0];
 
25864
        unsigned short *op0 = (unsigned short *)outp[0];
 
25865
        unsigned char *ep = ip0 + npix * 7 ;
 
25866
        pointer it0 = (pointer)p->in_tables[0];
 
25867
        pointer it1 = (pointer)p->in_tables[1];
 
25868
        pointer it2 = (pointer)p->in_tables[2];
 
25869
        pointer it3 = (pointer)p->in_tables[3];
 
25870
        pointer it4 = (pointer)p->in_tables[4];
 
25871
        pointer it5 = (pointer)p->in_tables[5];
 
25872
        pointer it6 = (pointer)p->in_tables[6];
 
25873
        pointer ot0 = (pointer)p->out_tables[0];
 
25874
        pointer ot1 = (pointer)p->out_tables[1];
 
25875
        pointer ot2 = (pointer)p->out_tables[2];
 
25876
        pointer ot3 = (pointer)p->out_tables[3];
 
25877
        pointer ot4 = (pointer)p->out_tables[4];
 
25878
        pointer im_base = (pointer)p->im_table;
 
25879
 
 
25880
        for(;ip0 < ep; ip0 += 7, op0 += 5) {
 
25881
                unsigned int ova0;      /* Output value accumulator */
 
25882
                unsigned int ova1;      /* Output value accumulator */
 
25883
                unsigned int ova2;      /* Output value partial accumulator */
 
25884
                {
 
25885
                        pointer imp;
 
25886
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
25887
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
25888
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
25889
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
25890
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
25891
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
 
25892
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
 
25893
                        {
 
25894
                                unsigned int ti_i;      /* Interpolation index variable */
 
25895
 
 
25896
                                ti_i  = IT_IX(it0, ip0[0]);
 
25897
                                wo0   = IT_WO(it0, ip0[0]);
 
25898
                                ti_i += IT_IX(it1, ip0[1]);
 
25899
                                wo1   = IT_WO(it1, ip0[1]);
 
25900
                                ti_i += IT_IX(it2, ip0[2]);
 
25901
                                wo2   = IT_WO(it2, ip0[2]);
 
25902
                                ti_i += IT_IX(it3, ip0[3]);
 
25903
                                wo3   = IT_WO(it3, ip0[3]);
 
25904
                                ti_i += IT_IX(it4, ip0[4]);
 
25905
                                wo4   = IT_WO(it4, ip0[4]);
 
25906
                                ti_i += IT_IX(it5, ip0[5]);
 
25907
                                wo5   = IT_WO(it5, ip0[5]);
 
25908
                                ti_i += IT_IX(it6, ip0[6]);
 
25909
                                wo6   = IT_WO(it6, ip0[6]);
 
25910
 
 
25911
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
25912
 
 
25913
                                /* Sort weighting values and vertex offset values */
 
25914
                                CEX(wo0, wo1);
 
25915
                                CEX(wo0, wo2);
 
25916
                                CEX(wo0, wo3);
 
25917
                                CEX(wo0, wo4);
 
25918
                                CEX(wo0, wo5);
 
25919
                                CEX(wo0, wo6);
 
25920
                                CEX(wo1, wo2);
 
25921
                                CEX(wo1, wo3);
 
25922
                                CEX(wo1, wo4);
 
25923
                                CEX(wo1, wo5);
 
25924
                                CEX(wo1, wo6);
 
25925
                                CEX(wo2, wo3);
 
25926
                                CEX(wo2, wo4);
 
25927
                                CEX(wo2, wo5);
 
25928
                                CEX(wo2, wo6);
 
25929
                                CEX(wo3, wo4);
 
25930
                                CEX(wo3, wo5);
 
25931
                                CEX(wo3, wo6);
 
25932
                                CEX(wo4, wo5);
 
25933
                                CEX(wo4, wo6);
 
25934
                                CEX(wo5, wo6);
 
25935
                        }
 
25936
                        {
 
25937
                                unsigned int nvof;      /* Next vertex offset value */
 
25938
                                unsigned int vof;       /* Vertex offset value */
 
25939
                                unsigned int vwe;       /* Vertex weighting */
 
25940
 
 
25941
                                vof = 0;                                /* First vertex offset is 0 */
 
25942
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
25943
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
25944
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
25945
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
25946
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
25947
                                ova2  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
25948
                                vof += nvof;                    /* Move to next vertex */
 
25949
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
25950
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
25951
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
25952
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
25953
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
25954
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
25955
                                vof += nvof;                    /* Move to next vertex */
 
25956
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
25957
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
25958
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
25959
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
25960
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
25961
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
25962
                                vof += nvof;                    /* Move to next vertex */
 
25963
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
25964
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
25965
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
25966
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
25967
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
25968
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
25969
                                vof += nvof;                    /* Move to next vertex */
 
25970
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
25971
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
25972
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
25973
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
25974
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
25975
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
25976
                                vof += nvof;                    /* Move to next vertex */
 
25977
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
 
25978
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
 
25979
                                vwe = wo4 - wo5;                /* Baricentric weighting */
 
25980
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
25981
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
25982
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
25983
                                vof += nvof;                    /* Move to next vertex */
 
25984
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
 
25985
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
 
25986
                                vwe = wo5 - wo6;                /* Baricentric weighting */
 
25987
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
25988
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
25989
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
25990
                                vof += nvof;                    /* Move to next vertex */
 
25991
                                vwe = wo6;                              /* Baricentric weighting */
 
25992
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
25993
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
25994
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
25995
                        }
 
25996
                }
 
25997
                {
 
25998
                        unsigned int oti;       /* Vertex offset value */
 
25999
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
26000
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
26001
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
26002
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
26003
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
26004
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
26005
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
26006
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
26007
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
26008
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
26009
                }
 
26010
        }
26462
26011
}
26463
26012
#undef IT_WO
26464
26013
#undef IT_IX
26472
26021
imdi_k76_gen(
26473
26022
genspec *g                      /* structure to be initialised */
26474
26023
) {
26475
 
        static unsigned char data[] = {
26476
 
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
26477
 
                0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
26478
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26479
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
26480
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
26481
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
26482
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
26483
 
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
26484
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
26485
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
26486
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
26487
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26488
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26489
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26490
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26491
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
26492
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
26493
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
26494
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
26495
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
26496
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
26497
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
26498
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
26499
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
26500
 
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
26501
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
26502
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
26503
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
26504
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26505
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26506
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26507
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26508
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
26509
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
26510
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
26511
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
26512
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
26513
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
26514
 
                0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26515
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
26516
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
26517
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
26518
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
26519
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
26520
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
26521
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
26522
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
26523
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
26524
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26525
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
26526
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
26527
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x37, 0x5f, 0x35, 0x5f, 
26528
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
26529
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
26530
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
26531
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
26532
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
26533
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
26534
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
26535
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26536
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26537
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26538
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26539
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
26540
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x37, 0x36, 
26541
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26542
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26543
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
26544
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
26545
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
26546
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
26547
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
26548
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
26549
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
26550
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
26551
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
26552
 
                0x00, 0xf0, 0x04, 0x08 
26553
 
        };      /* Structure image */
26554
 
        
26555
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
26024
        static unsigned char data[] = {
 
26025
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
26026
                0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
26027
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26028
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
26029
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
26030
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
26031
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
26032
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
26033
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
26034
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
26035
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
26036
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26037
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26038
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26039
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26040
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
26041
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
26042
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
26043
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
26044
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
26045
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
26046
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
26047
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
26048
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
26049
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
26050
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
26051
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
26052
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
26053
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26054
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26055
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26056
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26057
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
26058
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
26059
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
26060
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
26061
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
26062
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
26063
                0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26064
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
26065
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
26066
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
26067
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
26068
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
26069
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
26070
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
26071
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
26072
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
26073
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26074
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
26075
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
26076
                0x2c, 0xf3, 0xdc, 0xb7, 0x37, 0x5f, 0x35, 0x5f,
 
26077
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
26078
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
26079
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
26080
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
26081
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
26082
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
26083
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
26084
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26085
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26086
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26087
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26088
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
26089
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x37, 0x36,
 
26090
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26091
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26092
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
26093
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
26094
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
26095
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
26096
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
26097
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
26098
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
26099
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
26100
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
26101
                0x00, 0xf0, 0x04, 0x08
 
26102
        };      /* Structure image */
 
26103
 
 
26104
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
26556
26105
}
26557
26106
 
26558
26107
static void
26559
26108
imdi_k76_tab(
26560
26109
tabspec *t                      /* structure to be initialised */
26561
26110
) {
26562
 
        static unsigned char data[] = {
26563
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
26564
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
26565
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
26566
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
26567
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
26568
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
26569
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
26570
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
26571
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
26572
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26573
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
26574
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
26575
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
26576
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
26577
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
26578
 
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
26579
 
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
26580
 
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
26581
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
26582
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
26583
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
26584
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
26585
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26586
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
26587
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26588
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26589
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26590
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
26591
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
26592
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
26593
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
26594
 
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
26595
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
26596
 
        };      /* Structure image */
26597
 
        
26598
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
26111
        static unsigned char data[] = {
 
26112
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
26113
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
26114
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
26115
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
26116
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
26117
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
26118
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
26119
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
26120
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
26121
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26122
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
26123
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
26124
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
26125
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
26126
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
26127
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
26128
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
26129
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
26130
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
26131
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
26132
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
26133
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
26134
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26135
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
26136
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26137
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26138
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26139
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
26140
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
26141
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
26142
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
26143
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
26144
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
26145
        };      /* Structure image */
 
26146
 
 
26147
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
26599
26148
}
26600
26149
 
26601
 
 
26602
 
 
26603
 
 
26604
 
 
26605
 
 
26606
26150
/* Integer Multi-Dimensional Interpolation */
26607
26151
/* Interpolation Kernel Code */
26608
26152
/* Generated by cgen */
26611
26155
 
26612
26156
/* see the Licence.txt file for licencing details.*/
26613
26157
 
26614
 
 
26615
26158
/*
26616
26159
   Interpolation kernel specs:
26617
26160
 
26711
26254
void **inp,             /* pointer to input pointers */
26712
26255
unsigned int npix       /* Number of pixels to process */
26713
26256
) {
26714
 
        imdi_imp *p = (imdi_imp *)(s->impl);
26715
 
        unsigned char *ip0 = (unsigned char *)inp[0];
26716
 
        unsigned short *op0 = (unsigned short *)outp[0];
26717
 
        unsigned char *ep = ip0 + npix * 8 ;
26718
 
        pointer it0 = (pointer)p->in_tables[0];
26719
 
        pointer it1 = (pointer)p->in_tables[1];
26720
 
        pointer it2 = (pointer)p->in_tables[2];
26721
 
        pointer it3 = (pointer)p->in_tables[3];
26722
 
        pointer it4 = (pointer)p->in_tables[4];
26723
 
        pointer it5 = (pointer)p->in_tables[5];
26724
 
        pointer it6 = (pointer)p->in_tables[6];
26725
 
        pointer it7 = (pointer)p->in_tables[7];
26726
 
        pointer ot0 = (pointer)p->out_tables[0];
26727
 
        pointer ot1 = (pointer)p->out_tables[1];
26728
 
        pointer ot2 = (pointer)p->out_tables[2];
26729
 
        pointer ot3 = (pointer)p->out_tables[3];
26730
 
        pointer ot4 = (pointer)p->out_tables[4];
26731
 
        pointer im_base = (pointer)p->im_table;
26732
 
        
26733
 
        for(;ip0 < ep; ip0 += 8, op0 += 5) {
26734
 
                unsigned int ova0;      /* Output value accumulator */
26735
 
                unsigned int ova1;      /* Output value accumulator */
26736
 
                unsigned int ova2;      /* Output value partial accumulator */
26737
 
                {
26738
 
                        pointer imp;
26739
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
26740
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
26741
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
26742
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
26743
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
26744
 
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
26745
 
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
26746
 
                        unsigned int wo7;       /* Weighting value and vertex offset variable */
26747
 
                        {
26748
 
                                unsigned int ti_i;      /* Interpolation index variable */
26749
 
                                
26750
 
                                ti_i  = IT_IX(it0, ip0[0]);
26751
 
                                wo0   = IT_WO(it0, ip0[0]);
26752
 
                                ti_i += IT_IX(it1, ip0[1]);
26753
 
                                wo1   = IT_WO(it1, ip0[1]);
26754
 
                                ti_i += IT_IX(it2, ip0[2]);
26755
 
                                wo2   = IT_WO(it2, ip0[2]);
26756
 
                                ti_i += IT_IX(it3, ip0[3]);
26757
 
                                wo3   = IT_WO(it3, ip0[3]);
26758
 
                                ti_i += IT_IX(it4, ip0[4]);
26759
 
                                wo4   = IT_WO(it4, ip0[4]);
26760
 
                                ti_i += IT_IX(it5, ip0[5]);
26761
 
                                wo5   = IT_WO(it5, ip0[5]);
26762
 
                                ti_i += IT_IX(it6, ip0[6]);
26763
 
                                wo6   = IT_WO(it6, ip0[6]);
26764
 
                                ti_i += IT_IX(it7, ip0[7]);
26765
 
                                wo7   = IT_WO(it7, ip0[7]);
26766
 
                                
26767
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
26768
 
                                
26769
 
                                /* Sort weighting values and vertex offset values */
26770
 
                                CEX(wo0, wo1);
26771
 
                                CEX(wo0, wo2);
26772
 
                                CEX(wo0, wo3);
26773
 
                                CEX(wo0, wo4);
26774
 
                                CEX(wo0, wo5);
26775
 
                                CEX(wo0, wo6);
26776
 
                                CEX(wo0, wo7);
26777
 
                                CEX(wo1, wo2);
26778
 
                                CEX(wo1, wo3);
26779
 
                                CEX(wo1, wo4);
26780
 
                                CEX(wo1, wo5);
26781
 
                                CEX(wo1, wo6);
26782
 
                                CEX(wo1, wo7);
26783
 
                                CEX(wo2, wo3);
26784
 
                                CEX(wo2, wo4);
26785
 
                                CEX(wo2, wo5);
26786
 
                                CEX(wo2, wo6);
26787
 
                                CEX(wo2, wo7);
26788
 
                                CEX(wo3, wo4);
26789
 
                                CEX(wo3, wo5);
26790
 
                                CEX(wo3, wo6);
26791
 
                                CEX(wo3, wo7);
26792
 
                                CEX(wo4, wo5);
26793
 
                                CEX(wo4, wo6);
26794
 
                                CEX(wo4, wo7);
26795
 
                                CEX(wo5, wo6);
26796
 
                                CEX(wo5, wo7);
26797
 
                                CEX(wo6, wo7);
26798
 
                        }
26799
 
                        {
26800
 
                                unsigned int nvof;      /* Next vertex offset value */
26801
 
                                unsigned int vof;       /* Vertex offset value */
26802
 
                                unsigned int vwe;       /* Vertex weighting */
26803
 
                                
26804
 
                                vof = 0;                                /* First vertex offset is 0 */
26805
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
26806
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
26807
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
26808
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
26809
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
26810
 
                                ova2  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
26811
 
                                vof += nvof;                    /* Move to next vertex */
26812
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
26813
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
26814
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
26815
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
26816
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
26817
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
26818
 
                                vof += nvof;                    /* Move to next vertex */
26819
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
26820
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
26821
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
26822
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
26823
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
26824
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
26825
 
                                vof += nvof;                    /* Move to next vertex */
26826
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
26827
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
26828
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
26829
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
26830
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
26831
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
26832
 
                                vof += nvof;                    /* Move to next vertex */
26833
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
26834
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
26835
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
26836
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
26837
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
26838
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
26839
 
                                vof += nvof;                    /* Move to next vertex */
26840
 
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
26841
 
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
26842
 
                                vwe = wo4 - wo5;                /* Baricentric weighting */
26843
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
26844
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
26845
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
26846
 
                                vof += nvof;                    /* Move to next vertex */
26847
 
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
26848
 
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
26849
 
                                vwe = wo5 - wo6;                /* Baricentric weighting */
26850
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
26851
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
26852
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
26853
 
                                vof += nvof;                    /* Move to next vertex */
26854
 
                                nvof = (wo7 & 0x7fffff);        /* Extract offset value */
26855
 
                                wo7 = (wo7 >> 23);              /* Extract weighting value */
26856
 
                                vwe = wo6 - wo7;                /* Baricentric weighting */
26857
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
26858
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
26859
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
26860
 
                                vof += nvof;                    /* Move to next vertex */
26861
 
                                vwe = wo7;                              /* Baricentric weighting */
26862
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
26863
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
26864
 
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
26865
 
                        }
26866
 
                }
26867
 
                {
26868
 
                        unsigned int oti;       /* Vertex offset value */
26869
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
26870
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
26871
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
26872
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
26873
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
26874
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
26875
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
26876
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
26877
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
26878
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
26879
 
                }
26880
 
        }
 
26257
        imdi_imp *p = (imdi_imp *)(s->impl);
 
26258
        unsigned char *ip0 = (unsigned char *)inp[0];
 
26259
        unsigned short *op0 = (unsigned short *)outp[0];
 
26260
        unsigned char *ep = ip0 + npix * 8 ;
 
26261
        pointer it0 = (pointer)p->in_tables[0];
 
26262
        pointer it1 = (pointer)p->in_tables[1];
 
26263
        pointer it2 = (pointer)p->in_tables[2];
 
26264
        pointer it3 = (pointer)p->in_tables[3];
 
26265
        pointer it4 = (pointer)p->in_tables[4];
 
26266
        pointer it5 = (pointer)p->in_tables[5];
 
26267
        pointer it6 = (pointer)p->in_tables[6];
 
26268
        pointer it7 = (pointer)p->in_tables[7];
 
26269
        pointer ot0 = (pointer)p->out_tables[0];
 
26270
        pointer ot1 = (pointer)p->out_tables[1];
 
26271
        pointer ot2 = (pointer)p->out_tables[2];
 
26272
        pointer ot3 = (pointer)p->out_tables[3];
 
26273
        pointer ot4 = (pointer)p->out_tables[4];
 
26274
        pointer im_base = (pointer)p->im_table;
 
26275
 
 
26276
        for(;ip0 < ep; ip0 += 8, op0 += 5) {
 
26277
                unsigned int ova0;      /* Output value accumulator */
 
26278
                unsigned int ova1;      /* Output value accumulator */
 
26279
                unsigned int ova2;      /* Output value partial accumulator */
 
26280
                {
 
26281
                        pointer imp;
 
26282
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
26283
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
26284
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
26285
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
26286
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
26287
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
 
26288
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
 
26289
                        unsigned int wo7;       /* Weighting value and vertex offset variable */
 
26290
                        {
 
26291
                                unsigned int ti_i;      /* Interpolation index variable */
 
26292
 
 
26293
                                ti_i  = IT_IX(it0, ip0[0]);
 
26294
                                wo0   = IT_WO(it0, ip0[0]);
 
26295
                                ti_i += IT_IX(it1, ip0[1]);
 
26296
                                wo1   = IT_WO(it1, ip0[1]);
 
26297
                                ti_i += IT_IX(it2, ip0[2]);
 
26298
                                wo2   = IT_WO(it2, ip0[2]);
 
26299
                                ti_i += IT_IX(it3, ip0[3]);
 
26300
                                wo3   = IT_WO(it3, ip0[3]);
 
26301
                                ti_i += IT_IX(it4, ip0[4]);
 
26302
                                wo4   = IT_WO(it4, ip0[4]);
 
26303
                                ti_i += IT_IX(it5, ip0[5]);
 
26304
                                wo5   = IT_WO(it5, ip0[5]);
 
26305
                                ti_i += IT_IX(it6, ip0[6]);
 
26306
                                wo6   = IT_WO(it6, ip0[6]);
 
26307
                                ti_i += IT_IX(it7, ip0[7]);
 
26308
                                wo7   = IT_WO(it7, ip0[7]);
 
26309
 
 
26310
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
26311
 
 
26312
                                /* Sort weighting values and vertex offset values */
 
26313
                                CEX(wo0, wo1);
 
26314
                                CEX(wo0, wo2);
 
26315
                                CEX(wo0, wo3);
 
26316
                                CEX(wo0, wo4);
 
26317
                                CEX(wo0, wo5);
 
26318
                                CEX(wo0, wo6);
 
26319
                                CEX(wo0, wo7);
 
26320
                                CEX(wo1, wo2);
 
26321
                                CEX(wo1, wo3);
 
26322
                                CEX(wo1, wo4);
 
26323
                                CEX(wo1, wo5);
 
26324
                                CEX(wo1, wo6);
 
26325
                                CEX(wo1, wo7);
 
26326
                                CEX(wo2, wo3);
 
26327
                                CEX(wo2, wo4);
 
26328
                                CEX(wo2, wo5);
 
26329
                                CEX(wo2, wo6);
 
26330
                                CEX(wo2, wo7);
 
26331
                                CEX(wo3, wo4);
 
26332
                                CEX(wo3, wo5);
 
26333
                                CEX(wo3, wo6);
 
26334
                                CEX(wo3, wo7);
 
26335
                                CEX(wo4, wo5);
 
26336
                                CEX(wo4, wo6);
 
26337
                                CEX(wo4, wo7);
 
26338
                                CEX(wo5, wo6);
 
26339
                                CEX(wo5, wo7);
 
26340
                                CEX(wo6, wo7);
 
26341
                        }
 
26342
                        {
 
26343
                                unsigned int nvof;      /* Next vertex offset value */
 
26344
                                unsigned int vof;       /* Vertex offset value */
 
26345
                                unsigned int vwe;       /* Vertex weighting */
 
26346
 
 
26347
                                vof = 0;                                /* First vertex offset is 0 */
 
26348
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
26349
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
26350
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
26351
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
26352
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
26353
                                ova2  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
26354
                                vof += nvof;                    /* Move to next vertex */
 
26355
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
26356
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
26357
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
26358
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
26359
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
26360
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
26361
                                vof += nvof;                    /* Move to next vertex */
 
26362
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
26363
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
26364
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
26365
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
26366
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
26367
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
26368
                                vof += nvof;                    /* Move to next vertex */
 
26369
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
26370
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
26371
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
26372
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
26373
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
26374
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
26375
                                vof += nvof;                    /* Move to next vertex */
 
26376
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
26377
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
26378
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
26379
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
26380
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
26381
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
26382
                                vof += nvof;                    /* Move to next vertex */
 
26383
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
 
26384
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
 
26385
                                vwe = wo4 - wo5;                /* Baricentric weighting */
 
26386
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
26387
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
26388
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
26389
                                vof += nvof;                    /* Move to next vertex */
 
26390
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
 
26391
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
 
26392
                                vwe = wo5 - wo6;                /* Baricentric weighting */
 
26393
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
26394
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
26395
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
26396
                                vof += nvof;                    /* Move to next vertex */
 
26397
                                nvof = (wo7 & 0x7fffff);        /* Extract offset value */
 
26398
                                wo7 = (wo7 >> 23);              /* Extract weighting value */
 
26399
                                vwe = wo6 - wo7;                /* Baricentric weighting */
 
26400
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
26401
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
26402
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
26403
                                vof += nvof;                    /* Move to next vertex */
 
26404
                                vwe = wo7;                              /* Baricentric weighting */
 
26405
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
26406
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
26407
                                ova2 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
26408
                        }
 
26409
                }
 
26410
                {
 
26411
                        unsigned int oti;       /* Vertex offset value */
 
26412
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
26413
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
26414
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
26415
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
26416
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
26417
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
26418
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
26419
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
26420
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
26421
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
26422
                }
 
26423
        }
26881
26424
}
26882
26425
#undef IT_WO
26883
26426
#undef IT_IX
26891
26434
imdi_k77_gen(
26892
26435
genspec *g                      /* structure to be initialised */
26893
26436
) {
26894
 
        static unsigned char data[] = {
26895
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
26896
 
                0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
26897
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26898
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
26899
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
26900
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
26901
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
26902
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
26903
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
26904
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
26905
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
26906
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26907
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26908
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26909
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26910
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
26911
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
26912
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
26913
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
26914
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
26915
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
26916
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
26917
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
26918
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
26919
 
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
26920
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
26921
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
26922
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
26923
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26924
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26925
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26926
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26927
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
26928
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
26929
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
26930
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
26931
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
26932
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
26933
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26934
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
26935
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
26936
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
26937
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
26938
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
26939
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
26940
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
26941
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
26942
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
26943
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26944
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
26945
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
26946
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x38, 0x5f, 0x35, 0x5f, 
26947
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
26948
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
26949
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
26950
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
26951
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
26952
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
26953
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
26954
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26955
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26956
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26957
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26958
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
26959
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x37, 0x37, 
26960
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26961
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26962
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
26963
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
26964
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
26965
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
26966
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
26967
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
26968
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
26969
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
26970
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
26971
 
                0x00, 0xf0, 0x04, 0x08 
26972
 
        };      /* Structure image */
26973
 
        
26974
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
26437
        static unsigned char data[] = {
 
26438
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
26439
                0x05, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
26440
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26441
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
26442
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
26443
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
26444
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
26445
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
26446
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
26447
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
26448
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
26449
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26450
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26451
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26452
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26453
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
26454
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
26455
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
26456
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
26457
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
26458
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
26459
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
26460
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
26461
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
26462
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
26463
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
26464
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
26465
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
26466
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26467
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26468
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26469
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26470
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
26471
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
26472
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
26473
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
26474
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
26475
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
26476
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26477
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
26478
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
26479
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
26480
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
26481
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
26482
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
26483
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
26484
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
26485
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
26486
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26487
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
26488
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
26489
                0x2c, 0xf3, 0xdc, 0xb7, 0x38, 0x5f, 0x35, 0x5f,
 
26490
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
26491
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
26492
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
26493
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
26494
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
26495
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
26496
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
26497
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26498
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26499
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26500
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26501
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
26502
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x37, 0x37,
 
26503
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26504
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26505
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
26506
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
26507
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
26508
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
26509
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
26510
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
26511
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
26512
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
26513
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
26514
                0x00, 0xf0, 0x04, 0x08
 
26515
        };      /* Structure image */
 
26516
 
 
26517
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
26975
26518
}
26976
26519
 
26977
26520
static void
26978
26521
imdi_k77_tab(
26979
26522
tabspec *t                      /* structure to be initialised */
26980
26523
) {
26981
 
        static unsigned char data[] = {
26982
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
26983
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
26984
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
26985
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
26986
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
26987
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
26988
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
26989
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
26990
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
26991
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
26992
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
26993
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
26994
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
26995
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
26996
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
26997
 
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
26998
 
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
26999
 
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
27000
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
27001
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
27002
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
27003
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
27004
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27005
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
27006
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27007
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27008
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27009
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
27010
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
27011
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
27012
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
27013
 
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
27014
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
27015
 
        };      /* Structure image */
27016
 
        
27017
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
26524
        static unsigned char data[] = {
 
26525
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
26526
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
26527
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
26528
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
26529
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
26530
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
26531
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
26532
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
26533
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
26534
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26535
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
26536
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
26537
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
26538
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
26539
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
26540
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
26541
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
26542
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
26543
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
26544
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
26545
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
26546
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
26547
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26548
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
26549
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26550
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26551
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26552
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
26553
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
26554
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
26555
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
26556
                0x21, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
26557
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
26558
        };      /* Structure image */
 
26559
 
 
26560
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
27018
26561
}
27019
26562
 
27020
 
 
27021
 
 
27022
 
 
27023
 
 
27024
 
 
27025
26563
/* Integer Multi-Dimensional Interpolation */
27026
26564
/* Interpolation Kernel Code */
27027
26565
/* Generated by cgen */
27030
26568
 
27031
26569
/* see the Licence.txt file for licencing details.*/
27032
26570
 
27033
 
 
27034
26571
/*
27035
26572
   Interpolation kernel specs:
27036
26573
 
27118
26655
void **inp,             /* pointer to input pointers */
27119
26656
unsigned int npix       /* Number of pixels to process */
27120
26657
) {
27121
 
        imdi_imp *p = (imdi_imp *)(s->impl);
27122
 
        unsigned char *ip0 = (unsigned char *)inp[0];
27123
 
        unsigned short *op0 = (unsigned short *)outp[0];
27124
 
        unsigned char *ep = ip0 + npix * 1 ;
27125
 
        pointer it0 = (pointer)p->in_tables[0];
27126
 
        pointer ot0 = (pointer)p->out_tables[0];
27127
 
        pointer ot1 = (pointer)p->out_tables[1];
27128
 
        pointer ot2 = (pointer)p->out_tables[2];
27129
 
        pointer ot3 = (pointer)p->out_tables[3];
27130
 
        pointer ot4 = (pointer)p->out_tables[4];
27131
 
        pointer ot5 = (pointer)p->out_tables[5];
27132
 
        pointer sw_base = (pointer)p->sw_table;
27133
 
        pointer im_base = (pointer)p->im_table;
27134
 
        
27135
 
        for(;ip0 < ep; ip0 += 1, op0 += 6) {
27136
 
                unsigned int ova0;      /* Output value accumulator */
27137
 
                unsigned int ova1;      /* Output value accumulator */
27138
 
                unsigned int ova2;      /* Output value accumulator */
27139
 
                {
27140
 
                        pointer swp;
27141
 
                        pointer imp;
27142
 
                        {
27143
 
                                unsigned int ti;        /* Simplex+Interpolation index variable */
27144
 
                                
27145
 
                                ti  = IT_IT(it0, ip0[0]);
27146
 
                                
27147
 
                                imp = im_base + IM_O(ti >> 0);          /* Extract interp. index and comp. entry */
27148
 
                                swp = sw_base + SW_O(ti & 0x0); /* Extract simplex index and comp. entry */
27149
 
                        }
27150
 
                        {
27151
 
                                unsigned int vowr;      /* Vertex offset/weight value */
27152
 
                                unsigned int vof;       /* Vertex offset value */
27153
 
                                unsigned int vwe;       /* Vertex weighting */
27154
 
                                
27155
 
                                vowr = SX_WO(swp, 0);   /* Read vertex offset+weighting values */
27156
 
                                vof = (vowr & 0x7f);    /* Extract offset value */
27157
 
                                vwe = (vowr >> 7);      /* Extract weighting value */
27158
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
27159
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
27160
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
27161
 
                                vowr = SX_WO(swp, 1);   /* Read vertex offset+weighting values */
27162
 
                                vof = (vowr & 0x7f);    /* Extract offset value */
27163
 
                                vwe = (vowr >> 7);      /* Extract weighting value */
27164
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
27165
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
27166
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
27167
 
                        }
27168
 
                }
27169
 
                {
27170
 
                        unsigned int oti;       /* Vertex offset value */
27171
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
27172
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
27173
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
27174
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
27175
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
27176
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
27177
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
27178
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
27179
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
27180
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
27181
 
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
27182
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
27183
 
                }
27184
 
        }
 
26658
        imdi_imp *p = (imdi_imp *)(s->impl);
 
26659
        unsigned char *ip0 = (unsigned char *)inp[0];
 
26660
        unsigned short *op0 = (unsigned short *)outp[0];
 
26661
        unsigned char *ep = ip0 + npix * 1 ;
 
26662
        pointer it0 = (pointer)p->in_tables[0];
 
26663
        pointer ot0 = (pointer)p->out_tables[0];
 
26664
        pointer ot1 = (pointer)p->out_tables[1];
 
26665
        pointer ot2 = (pointer)p->out_tables[2];
 
26666
        pointer ot3 = (pointer)p->out_tables[3];
 
26667
        pointer ot4 = (pointer)p->out_tables[4];
 
26668
        pointer ot5 = (pointer)p->out_tables[5];
 
26669
        pointer sw_base = (pointer)p->sw_table;
 
26670
        pointer im_base = (pointer)p->im_table;
 
26671
 
 
26672
        for(;ip0 < ep; ip0 += 1, op0 += 6) {
 
26673
                unsigned int ova0;      /* Output value accumulator */
 
26674
                unsigned int ova1;      /* Output value accumulator */
 
26675
                unsigned int ova2;      /* Output value accumulator */
 
26676
                {
 
26677
                        pointer swp;
 
26678
                        pointer imp;
 
26679
                        {
 
26680
                                unsigned int ti;        /* Simplex+Interpolation index variable */
 
26681
 
 
26682
                                ti  = IT_IT(it0, ip0[0]);
 
26683
 
 
26684
                                imp = im_base + IM_O(ti >> 0);          /* Extract interp. index and comp. entry */
 
26685
                                swp = sw_base + SW_O(ti & 0x0); /* Extract simplex index and comp. entry */
 
26686
                        }
 
26687
                        {
 
26688
                                unsigned int vowr;      /* Vertex offset/weight value */
 
26689
                                unsigned int vof;       /* Vertex offset value */
 
26690
                                unsigned int vwe;       /* Vertex weighting */
 
26691
 
 
26692
                                vowr = SX_WO(swp, 0);   /* Read vertex offset+weighting values */
 
26693
                                vof = (vowr & 0x7f);    /* Extract offset value */
 
26694
                                vwe = (vowr >> 7);      /* Extract weighting value */
 
26695
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
26696
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
26697
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
26698
                                vowr = SX_WO(swp, 1);   /* Read vertex offset+weighting values */
 
26699
                                vof = (vowr & 0x7f);    /* Extract offset value */
 
26700
                                vwe = (vowr >> 7);      /* Extract weighting value */
 
26701
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
26702
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
26703
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
26704
                        }
 
26705
                }
 
26706
                {
 
26707
                        unsigned int oti;       /* Vertex offset value */
 
26708
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
26709
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
26710
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
26711
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
26712
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
26713
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
26714
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
26715
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
26716
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
26717
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
26718
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
 
26719
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
26720
                }
 
26721
        }
27185
26722
}
27186
26723
#undef IT_IT
27187
26724
#undef SW_O
27194
26731
imdi_k78_gen(
27195
26732
genspec *g                      /* structure to be initialised */
27196
26733
) {
27197
 
        static unsigned char data[] = {
27198
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
27199
 
                0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
27200
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27201
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
27202
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
27203
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
27204
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
27205
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
27206
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
27207
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
27208
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
27209
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27210
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27211
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27212
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27213
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
27214
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
27215
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
27216
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
27217
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
27218
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
27219
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
27220
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
27221
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
27222
 
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
27223
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
27224
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
27225
 
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
27226
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27227
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27228
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27229
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27230
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
27231
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
27232
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
27233
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
27234
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
27235
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
27236
 
                0xff, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
27237
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
27238
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
27239
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
27240
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
27241
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
27242
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
27243
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
27244
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
27245
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
27246
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27247
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
27248
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
27249
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x31, 0x5f, 0x36, 0x5f, 
27250
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
27251
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
27252
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
27253
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
27254
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
27255
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
27256
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
27257
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27258
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27259
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27260
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27261
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
27262
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x37, 0x38, 
27263
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27264
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27265
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
27266
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
27267
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
27268
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
27269
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
27270
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
27271
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
27272
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
27273
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
27274
 
                0x00, 0xf0, 0x04, 0x08 
27275
 
        };      /* Structure image */
27276
 
        
27277
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
26734
        static unsigned char data[] = {
 
26735
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
26736
                0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
26737
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26738
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
26739
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
26740
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
26741
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
26742
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
26743
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
26744
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
26745
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
26746
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26747
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26748
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26749
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26750
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
26751
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
26752
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
26753
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
26754
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
26755
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
26756
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
26757
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
26758
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
26759
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
26760
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
26761
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
26762
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
26763
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26764
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26765
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26766
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26767
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
26768
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
26769
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
26770
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
26771
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
26772
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
26773
                0xff, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
26774
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
26775
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
26776
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
26777
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
26778
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
26779
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
26780
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
26781
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
26782
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
26783
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26784
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
26785
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
26786
                0x2c, 0xf3, 0xdc, 0xb7, 0x31, 0x5f, 0x36, 0x5f,
 
26787
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
26788
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
26789
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
26790
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
26791
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
26792
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
26793
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
26794
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26795
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26796
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26797
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26798
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
26799
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x37, 0x38,
 
26800
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26801
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26802
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
26803
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
26804
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
26805
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
26806
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
26807
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
26808
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
26809
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
26810
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
26811
                0x00, 0xf0, 0x04, 0x08
 
26812
        };      /* Structure image */
 
26813
 
 
26814
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
27278
26815
}
27279
26816
 
27280
26817
static void
27281
26818
imdi_k78_tab(
27282
26819
tabspec *t                      /* structure to be initialised */
27283
26820
) {
27284
 
        static unsigned char data[] = {
27285
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27286
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
27287
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
27288
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
27289
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
27290
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
27291
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
27292
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
27293
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27294
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27295
 
                0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
27296
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27297
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
27298
 
                0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
27299
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
27300
 
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
27301
 
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
27302
 
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
27303
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27304
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27305
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
27306
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
27307
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
27308
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
27309
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27310
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27311
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27312
 
                0x00, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
27313
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
27314
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
27315
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
27316
 
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 
27317
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
27318
 
        };      /* Structure image */
27319
 
        
27320
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
26821
        static unsigned char data[] = {
 
26822
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26823
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
26824
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
26825
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
26826
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
26827
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
26828
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
26829
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
26830
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26831
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26832
                0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
26833
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26834
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
26835
                0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
26836
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
26837
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
26838
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
26839
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
26840
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26841
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26842
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
26843
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
26844
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
26845
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
26846
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26847
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26848
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
26849
                0x00, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
26850
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
26851
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
26852
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
26853
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
 
26854
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
26855
        };      /* Structure image */
 
26856
 
 
26857
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
27321
26858
}
27322
26859
 
27323
 
 
27324
 
 
27325
 
 
27326
 
 
27327
 
 
27328
26860
/* Integer Multi-Dimensional Interpolation */
27329
26861
/* Interpolation Kernel Code */
27330
26862
/* Generated by cgen */
27333
26865
 
27334
26866
/* see the Licence.txt file for licencing details.*/
27335
26867
 
27336
 
 
27337
26868
/*
27338
26869
   Interpolation kernel specs:
27339
26870
 
27428
26959
void **inp,             /* pointer to input pointers */
27429
26960
unsigned int npix       /* Number of pixels to process */
27430
26961
) {
27431
 
        imdi_imp *p = (imdi_imp *)(s->impl);
27432
 
        unsigned char *ip0 = (unsigned char *)inp[0];
27433
 
        unsigned short *op0 = (unsigned short *)outp[0];
27434
 
        unsigned char *ep = ip0 + npix * 3 ;
27435
 
        pointer it0 = (pointer)p->in_tables[0];
27436
 
        pointer it1 = (pointer)p->in_tables[1];
27437
 
        pointer it2 = (pointer)p->in_tables[2];
27438
 
        pointer ot0 = (pointer)p->out_tables[0];
27439
 
        pointer ot1 = (pointer)p->out_tables[1];
27440
 
        pointer ot2 = (pointer)p->out_tables[2];
27441
 
        pointer ot3 = (pointer)p->out_tables[3];
27442
 
        pointer ot4 = (pointer)p->out_tables[4];
27443
 
        pointer ot5 = (pointer)p->out_tables[5];
27444
 
        pointer sw_base = (pointer)p->sw_table;
27445
 
        pointer im_base = (pointer)p->im_table;
27446
 
        
27447
 
        for(;ip0 < ep; ip0 += 3, op0 += 6) {
27448
 
                unsigned int ova0;      /* Output value accumulator */
27449
 
                unsigned int ova1;      /* Output value accumulator */
27450
 
                unsigned int ova2;      /* Output value accumulator */
27451
 
                {
27452
 
                        pointer swp;
27453
 
                        pointer imp;
27454
 
                        {
27455
 
                                unsigned int ti;        /* Simplex+Interpolation index variable */
27456
 
                                
27457
 
                                ti  = IT_IT(it0, ip0[0]);
27458
 
                                ti += IT_IT(it1, ip0[1]);
27459
 
                                ti += IT_IT(it2, ip0[2]);
27460
 
                                
27461
 
                                imp = im_base + IM_O(ti >> 12);         /* Extract interp. index and comp. entry */
27462
 
                                swp = sw_base + SW_O(ti & 0xfff);       /* Extract simplex index and comp. entry */
27463
 
                        }
27464
 
                        {
27465
 
                                unsigned int vof;       /* Vertex offset value */
27466
 
                                unsigned int vwe;       /* Vertex weighting */
27467
 
                                
27468
 
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
27469
 
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
27470
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
27471
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
27472
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
27473
 
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
27474
 
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
27475
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
27476
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
27477
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
27478
 
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
27479
 
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
27480
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
27481
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
27482
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
27483
 
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
27484
 
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
27485
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
27486
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
27487
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
27488
 
                        }
27489
 
                }
27490
 
                {
27491
 
                        unsigned int oti;       /* Vertex offset value */
27492
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
27493
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
27494
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
27495
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
27496
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
27497
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
27498
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
27499
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
27500
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
27501
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
27502
 
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
27503
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
27504
 
                }
27505
 
        }
 
26962
        imdi_imp *p = (imdi_imp *)(s->impl);
 
26963
        unsigned char *ip0 = (unsigned char *)inp[0];
 
26964
        unsigned short *op0 = (unsigned short *)outp[0];
 
26965
        unsigned char *ep = ip0 + npix * 3 ;
 
26966
        pointer it0 = (pointer)p->in_tables[0];
 
26967
        pointer it1 = (pointer)p->in_tables[1];
 
26968
        pointer it2 = (pointer)p->in_tables[2];
 
26969
        pointer ot0 = (pointer)p->out_tables[0];
 
26970
        pointer ot1 = (pointer)p->out_tables[1];
 
26971
        pointer ot2 = (pointer)p->out_tables[2];
 
26972
        pointer ot3 = (pointer)p->out_tables[3];
 
26973
        pointer ot4 = (pointer)p->out_tables[4];
 
26974
        pointer ot5 = (pointer)p->out_tables[5];
 
26975
        pointer sw_base = (pointer)p->sw_table;
 
26976
        pointer im_base = (pointer)p->im_table;
 
26977
 
 
26978
        for(;ip0 < ep; ip0 += 3, op0 += 6) {
 
26979
                unsigned int ova0;      /* Output value accumulator */
 
26980
                unsigned int ova1;      /* Output value accumulator */
 
26981
                unsigned int ova2;      /* Output value accumulator */
 
26982
                {
 
26983
                        pointer swp;
 
26984
                        pointer imp;
 
26985
                        {
 
26986
                                unsigned int ti;        /* Simplex+Interpolation index variable */
 
26987
 
 
26988
                                ti  = IT_IT(it0, ip0[0]);
 
26989
                                ti += IT_IT(it1, ip0[1]);
 
26990
                                ti += IT_IT(it2, ip0[2]);
 
26991
 
 
26992
                                imp = im_base + IM_O(ti >> 12);         /* Extract interp. index and comp. entry */
 
26993
                                swp = sw_base + SW_O(ti & 0xfff);       /* Extract simplex index and comp. entry */
 
26994
                        }
 
26995
                        {
 
26996
                                unsigned int vof;       /* Vertex offset value */
 
26997
                                unsigned int vwe;       /* Vertex weighting */
 
26998
 
 
26999
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
 
27000
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
 
27001
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
27002
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
27003
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
27004
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
 
27005
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
 
27006
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
27007
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
27008
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
27009
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
 
27010
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
 
27011
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
27012
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
27013
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
27014
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
 
27015
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
 
27016
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
27017
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
27018
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
27019
                        }
 
27020
                }
 
27021
                {
 
27022
                        unsigned int oti;       /* Vertex offset value */
 
27023
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
27024
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
27025
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
27026
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
27027
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
27028
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
27029
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
27030
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
27031
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
27032
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
27033
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
 
27034
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
27035
                }
 
27036
        }
27506
27037
}
27507
27038
#undef IT_IT
27508
27039
#undef SW_O
27516
27047
imdi_k79_gen(
27517
27048
genspec *g                      /* structure to be initialised */
27518
27049
) {
27519
 
        static unsigned char data[] = {
27520
 
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
27521
 
                0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
27522
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27523
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
27524
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
27525
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
27526
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
27527
 
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
27528
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
27529
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
27530
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
27531
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27532
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27533
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27534
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27535
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
27536
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
27537
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
27538
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
27539
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
27540
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
27541
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
27542
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
27543
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
27544
 
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
27545
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
27546
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
27547
 
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
27548
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27549
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27550
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27551
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27552
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
27553
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
27554
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
27555
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
27556
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
27557
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
27558
 
                0x65, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
27559
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
27560
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
27561
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
27562
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
27563
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
27564
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
27565
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
27566
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
27567
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
27568
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27569
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
27570
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
27571
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x33, 0x5f, 0x36, 0x5f, 
27572
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
27573
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
27574
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
27575
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
27576
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
27577
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
27578
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
27579
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27580
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27581
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27582
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27583
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
27584
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x37, 0x39, 
27585
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27586
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27587
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
27588
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
27589
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
27590
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
27591
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
27592
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
27593
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
27594
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
27595
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
27596
 
                0x00, 0xf0, 0x04, 0x08 
27597
 
        };      /* Structure image */
27598
 
        
27599
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
27050
        static unsigned char data[] = {
 
27051
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
27052
                0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
27053
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27054
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
27055
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
27056
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
27057
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
27058
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
27059
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
27060
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
27061
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
27062
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27063
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27064
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27065
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27066
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
27067
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
27068
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
27069
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
27070
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
27071
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
27072
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
27073
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
27074
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
27075
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
27076
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
27077
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
27078
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
27079
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27080
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27081
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27082
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27083
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
27084
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
27085
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
27086
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
27087
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
27088
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
27089
                0x65, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
27090
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
27091
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
27092
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
27093
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
27094
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
27095
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
27096
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
27097
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
27098
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
27099
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27100
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
27101
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
27102
                0x2c, 0xf3, 0xdc, 0xb7, 0x33, 0x5f, 0x36, 0x5f,
 
27103
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
27104
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
27105
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
27106
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
27107
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
27108
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
27109
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
27110
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27111
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27112
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27113
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27114
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
27115
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x37, 0x39,
 
27116
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27117
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27118
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
27119
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
27120
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
27121
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
27122
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
27123
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
27124
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
27125
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
27126
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
27127
                0x00, 0xf0, 0x04, 0x08
 
27128
        };      /* Structure image */
 
27129
 
 
27130
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
27600
27131
}
27601
27132
 
27602
27133
static void
27603
27134
imdi_k79_tab(
27604
27135
tabspec *t                      /* structure to be initialised */
27605
27136
) {
27606
 
        static unsigned char data[] = {
27607
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27608
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
27609
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
27610
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
27611
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
27612
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
27613
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
27614
 
                0x14, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
27615
 
                0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 
27616
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27617
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
27618
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27619
 
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
27620
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
27621
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
27622
 
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
27623
 
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
27624
 
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
27625
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27626
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27627
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
27628
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
27629
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
27630
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
27631
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27632
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27633
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27634
 
                0x00, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
27635
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
27636
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
27637
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
27638
 
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 
27639
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
27640
 
        };      /* Structure image */
27641
 
        
27642
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
27137
        static unsigned char data[] = {
 
27138
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27139
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
27140
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
27141
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
27142
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
27143
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
27144
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
27145
                0x14, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
27146
                0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
 
27147
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27148
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
27149
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27150
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
27151
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
27152
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
27153
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
27154
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
27155
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
27156
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27157
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27158
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
27159
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
27160
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
27161
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
27162
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27163
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27164
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27165
                0x00, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
27166
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
27167
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
27168
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
27169
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
 
27170
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
27171
        };      /* Structure image */
 
27172
 
 
27173
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
27643
27174
}
27644
27175
 
27645
 
 
27646
 
 
27647
 
 
27648
 
 
27649
 
 
27650
27176
/* Integer Multi-Dimensional Interpolation */
27651
27177
/* Interpolation Kernel Code */
27652
27178
/* Generated by cgen */
27655
27181
 
27656
27182
/* see the Licence.txt file for licencing details.*/
27657
27183
 
27658
 
 
27659
27184
/*
27660
27185
   Interpolation kernel specs:
27661
27186
 
27755
27280
void **inp,             /* pointer to input pointers */
27756
27281
unsigned int npix       /* Number of pixels to process */
27757
27282
) {
27758
 
        imdi_imp *p = (imdi_imp *)(s->impl);
27759
 
        unsigned char *ip0 = (unsigned char *)inp[0];
27760
 
        unsigned short *op0 = (unsigned short *)outp[0];
27761
 
        unsigned char *ep = ip0 + npix * 4 ;
27762
 
        pointer it0 = (pointer)p->in_tables[0];
27763
 
        pointer it1 = (pointer)p->in_tables[1];
27764
 
        pointer it2 = (pointer)p->in_tables[2];
27765
 
        pointer it3 = (pointer)p->in_tables[3];
27766
 
        pointer ot0 = (pointer)p->out_tables[0];
27767
 
        pointer ot1 = (pointer)p->out_tables[1];
27768
 
        pointer ot2 = (pointer)p->out_tables[2];
27769
 
        pointer ot3 = (pointer)p->out_tables[3];
27770
 
        pointer ot4 = (pointer)p->out_tables[4];
27771
 
        pointer ot5 = (pointer)p->out_tables[5];
27772
 
        pointer sw_base = (pointer)p->sw_table;
27773
 
        pointer im_base = (pointer)p->im_table;
27774
 
        
27775
 
        for(;ip0 < ep; ip0 += 4, op0 += 6) {
27776
 
                unsigned int ova0;      /* Output value accumulator */
27777
 
                unsigned int ova1;      /* Output value accumulator */
27778
 
                unsigned int ova2;      /* Output value accumulator */
27779
 
                {
27780
 
                        pointer swp;
27781
 
                        pointer imp;
27782
 
                        {
27783
 
                                unsigned int ti_s;      /* Simplex index variable */
27784
 
                                unsigned int ti_i;      /* Interpolation index variable */
27785
 
                                
27786
 
                                ti_i  = IT_IX(it0, ip0[0]);
27787
 
                                ti_s  = IT_SX(it0, ip0[0]);
27788
 
                                ti_i += IT_IX(it1, ip0[1]);
27789
 
                                ti_s += IT_SX(it1, ip0[1]);
27790
 
                                ti_i += IT_IX(it2, ip0[2]);
27791
 
                                ti_s += IT_SX(it2, ip0[2]);
27792
 
                                ti_i += IT_IX(it3, ip0[3]);
27793
 
                                ti_s += IT_SX(it3, ip0[3]);
27794
 
                                
27795
 
                                swp = sw_base + SW_O(ti_s);             /* Compute simplex table entry pointer */
27796
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
27797
 
                        }
27798
 
                        {
27799
 
                                unsigned int vof;       /* Vertex offset value */
27800
 
                                unsigned int vwe;       /* Vertex weighting */
27801
 
                                
27802
 
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
27803
 
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
27804
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
27805
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
27806
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
27807
 
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
27808
 
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
27809
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
27810
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
27811
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
27812
 
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
27813
 
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
27814
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
27815
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
27816
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
27817
 
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
27818
 
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
27819
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
27820
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
27821
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
27822
 
                                vof = SX_VO(swp, 4);    /* Read vertex offset value */
27823
 
                                vwe = SX_WE(swp, 4);    /* Read vertex weighting value */
27824
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
27825
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
27826
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
27827
 
                        }
27828
 
                }
27829
 
                {
27830
 
                        unsigned int oti;       /* Vertex offset value */
27831
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
27832
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
27833
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
27834
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
27835
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
27836
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
27837
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
27838
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
27839
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
27840
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
27841
 
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
27842
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
27843
 
                }
27844
 
        }
 
27283
        imdi_imp *p = (imdi_imp *)(s->impl);
 
27284
        unsigned char *ip0 = (unsigned char *)inp[0];
 
27285
        unsigned short *op0 = (unsigned short *)outp[0];
 
27286
        unsigned char *ep = ip0 + npix * 4 ;
 
27287
        pointer it0 = (pointer)p->in_tables[0];
 
27288
        pointer it1 = (pointer)p->in_tables[1];
 
27289
        pointer it2 = (pointer)p->in_tables[2];
 
27290
        pointer it3 = (pointer)p->in_tables[3];
 
27291
        pointer ot0 = (pointer)p->out_tables[0];
 
27292
        pointer ot1 = (pointer)p->out_tables[1];
 
27293
        pointer ot2 = (pointer)p->out_tables[2];
 
27294
        pointer ot3 = (pointer)p->out_tables[3];
 
27295
        pointer ot4 = (pointer)p->out_tables[4];
 
27296
        pointer ot5 = (pointer)p->out_tables[5];
 
27297
        pointer sw_base = (pointer)p->sw_table;
 
27298
        pointer im_base = (pointer)p->im_table;
 
27299
 
 
27300
        for(;ip0 < ep; ip0 += 4, op0 += 6) {
 
27301
                unsigned int ova0;      /* Output value accumulator */
 
27302
                unsigned int ova1;      /* Output value accumulator */
 
27303
                unsigned int ova2;      /* Output value accumulator */
 
27304
                {
 
27305
                        pointer swp;
 
27306
                        pointer imp;
 
27307
                        {
 
27308
                                unsigned int ti_s;      /* Simplex index variable */
 
27309
                                unsigned int ti_i;      /* Interpolation index variable */
 
27310
 
 
27311
                                ti_i  = IT_IX(it0, ip0[0]);
 
27312
                                ti_s  = IT_SX(it0, ip0[0]);
 
27313
                                ti_i += IT_IX(it1, ip0[1]);
 
27314
                                ti_s += IT_SX(it1, ip0[1]);
 
27315
                                ti_i += IT_IX(it2, ip0[2]);
 
27316
                                ti_s += IT_SX(it2, ip0[2]);
 
27317
                                ti_i += IT_IX(it3, ip0[3]);
 
27318
                                ti_s += IT_SX(it3, ip0[3]);
 
27319
 
 
27320
                                swp = sw_base + SW_O(ti_s);             /* Compute simplex table entry pointer */
 
27321
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
27322
                        }
 
27323
                        {
 
27324
                                unsigned int vof;       /* Vertex offset value */
 
27325
                                unsigned int vwe;       /* Vertex weighting */
 
27326
 
 
27327
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
 
27328
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
 
27329
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
27330
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
27331
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
27332
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
 
27333
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
 
27334
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
27335
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
27336
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
27337
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
 
27338
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
 
27339
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
27340
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
27341
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
27342
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
 
27343
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
 
27344
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
27345
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
27346
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
27347
                                vof = SX_VO(swp, 4);    /* Read vertex offset value */
 
27348
                                vwe = SX_WE(swp, 4);    /* Read vertex weighting value */
 
27349
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
27350
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
27351
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
27352
                        }
 
27353
                }
 
27354
                {
 
27355
                        unsigned int oti;       /* Vertex offset value */
 
27356
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
27357
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
27358
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
27359
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
27360
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
27361
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
27362
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
27363
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
27364
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
27365
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
27366
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
 
27367
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
27368
                }
 
27369
        }
27845
27370
}
27846
27371
#undef IT_IX
27847
27372
#undef IT_SX
27856
27381
imdi_k80_gen(
27857
27382
genspec *g                      /* structure to be initialised */
27858
27383
) {
27859
 
        static unsigned char data[] = {
27860
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
27861
 
                0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
27862
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27863
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
27864
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
27865
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
27866
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
27867
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
27868
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
27869
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
27870
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
27871
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27872
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27873
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27874
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27875
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
27876
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
27877
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
27878
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
27879
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
27880
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
27881
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
27882
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
27883
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
27884
 
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
27885
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
27886
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
27887
 
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
27888
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27889
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27890
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27891
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27892
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
27893
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
27894
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
27895
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
27896
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
27897
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
27898
 
                0x1b, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 
27899
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
27900
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
27901
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
27902
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
27903
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
27904
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
27905
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
27906
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
27907
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
27908
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27909
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
27910
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
27911
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x34, 0x5f, 0x36, 0x5f, 
27912
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
27913
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
27914
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
27915
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
27916
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
27917
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
27918
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
27919
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27920
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27921
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27922
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27923
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
27924
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x38, 0x30, 
27925
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27926
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27927
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
27928
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
27929
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
27930
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
27931
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
27932
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
27933
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
27934
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
27935
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
27936
 
                0x00, 0xf0, 0x04, 0x08 
27937
 
        };      /* Structure image */
27938
 
        
27939
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
27384
        static unsigned char data[] = {
 
27385
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
27386
                0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
27387
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27388
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
27389
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
27390
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
27391
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
27392
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
27393
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
27394
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
27395
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
27396
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27397
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27398
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27399
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27400
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
27401
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
27402
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
27403
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
27404
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
27405
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
27406
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
27407
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
27408
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
27409
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
27410
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
27411
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
27412
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
27413
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27414
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27415
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27416
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27417
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
27418
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
27419
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
27420
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
27421
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
27422
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
27423
                0x1b, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00,
 
27424
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
27425
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
27426
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
27427
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
27428
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
27429
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
27430
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
27431
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
27432
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
27433
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27434
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
27435
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
27436
                0x2c, 0xf3, 0xdc, 0xb7, 0x34, 0x5f, 0x36, 0x5f,
 
27437
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
27438
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
27439
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
27440
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
27441
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
27442
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
27443
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
27444
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27445
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27446
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27447
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27448
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
27449
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x38, 0x30,
 
27450
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27451
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27452
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
27453
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
27454
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
27455
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
27456
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
27457
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
27458
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
27459
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
27460
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
27461
                0x00, 0xf0, 0x04, 0x08
 
27462
        };      /* Structure image */
 
27463
 
 
27464
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
27940
27465
}
27941
27466
 
27942
27467
static void
27943
27468
imdi_k80_tab(
27944
27469
tabspec *t                      /* structure to be initialised */
27945
27470
) {
27946
 
        static unsigned char data[] = {
27947
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
27948
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
27949
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
27950
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
27951
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
27952
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
27953
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
27954
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
27955
 
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
27956
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27957
 
                0x14, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
27958
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27959
 
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
27960
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
27961
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
27962
 
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
27963
 
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
27964
 
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
27965
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27966
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27967
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
27968
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
27969
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
27970
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
27971
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27972
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27973
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
27974
 
                0x00, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
27975
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
27976
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
27977
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
27978
 
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 
27979
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
27980
 
        };      /* Structure image */
27981
 
        
27982
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
27471
        static unsigned char data[] = {
 
27472
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
27473
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
27474
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
27475
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
27476
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
27477
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
27478
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
27479
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
27480
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
27481
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27482
                0x14, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
27483
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27484
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
27485
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
27486
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
27487
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
27488
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
27489
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
27490
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27491
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27492
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
27493
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
27494
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
27495
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
27496
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27497
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27498
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27499
                0x00, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
27500
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
27501
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
27502
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
27503
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
 
27504
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
27505
        };      /* Structure image */
 
27506
 
 
27507
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
27983
27508
}
27984
27509
 
27985
 
 
27986
 
 
27987
 
 
27988
 
 
27989
 
 
27990
27510
/* Integer Multi-Dimensional Interpolation */
27991
27511
/* Interpolation Kernel Code */
27992
27512
/* Generated by cgen */
27995
27515
 
27996
27516
/* see the Licence.txt file for licencing details.*/
27997
27517
 
27998
 
 
27999
27518
/*
28000
27519
   Interpolation kernel specs:
28001
27520
 
28090
27609
void **inp,             /* pointer to input pointers */
28091
27610
unsigned int npix       /* Number of pixels to process */
28092
27611
) {
28093
 
        imdi_imp *p = (imdi_imp *)(s->impl);
28094
 
        unsigned char *ip0 = (unsigned char *)inp[0];
28095
 
        unsigned short *op0 = (unsigned short *)outp[0];
28096
 
        unsigned char *ep = ip0 + npix * 5 ;
28097
 
        pointer it0 = (pointer)p->in_tables[0];
28098
 
        pointer it1 = (pointer)p->in_tables[1];
28099
 
        pointer it2 = (pointer)p->in_tables[2];
28100
 
        pointer it3 = (pointer)p->in_tables[3];
28101
 
        pointer it4 = (pointer)p->in_tables[4];
28102
 
        pointer ot0 = (pointer)p->out_tables[0];
28103
 
        pointer ot1 = (pointer)p->out_tables[1];
28104
 
        pointer ot2 = (pointer)p->out_tables[2];
28105
 
        pointer ot3 = (pointer)p->out_tables[3];
28106
 
        pointer ot4 = (pointer)p->out_tables[4];
28107
 
        pointer ot5 = (pointer)p->out_tables[5];
28108
 
        pointer im_base = (pointer)p->im_table;
28109
 
        
28110
 
        for(;ip0 < ep; ip0 += 5, op0 += 6) {
28111
 
                unsigned int ova0;      /* Output value accumulator */
28112
 
                unsigned int ova1;      /* Output value accumulator */
28113
 
                unsigned int ova2;      /* Output value accumulator */
28114
 
                {
28115
 
                        pointer imp;
28116
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
28117
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
28118
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
28119
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
28120
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
28121
 
                        {
28122
 
                                unsigned int ti_i;      /* Interpolation index variable */
28123
 
                                
28124
 
                                ti_i  = IT_IX(it0, ip0[0]);
28125
 
                                wo0   = IT_WO(it0, ip0[0]);
28126
 
                                ti_i += IT_IX(it1, ip0[1]);
28127
 
                                wo1   = IT_WO(it1, ip0[1]);
28128
 
                                ti_i += IT_IX(it2, ip0[2]);
28129
 
                                wo2   = IT_WO(it2, ip0[2]);
28130
 
                                ti_i += IT_IX(it3, ip0[3]);
28131
 
                                wo3   = IT_WO(it3, ip0[3]);
28132
 
                                ti_i += IT_IX(it4, ip0[4]);
28133
 
                                wo4   = IT_WO(it4, ip0[4]);
28134
 
                                
28135
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
28136
 
                                
28137
 
                                /* Sort weighting values and vertex offset values */
28138
 
                                CEX(wo0, wo1);
28139
 
                                CEX(wo0, wo2);
28140
 
                                CEX(wo0, wo3);
28141
 
                                CEX(wo0, wo4);
28142
 
                                CEX(wo1, wo2);
28143
 
                                CEX(wo1, wo3);
28144
 
                                CEX(wo1, wo4);
28145
 
                                CEX(wo2, wo3);
28146
 
                                CEX(wo2, wo4);
28147
 
                                CEX(wo3, wo4);
28148
 
                        }
28149
 
                        {
28150
 
                                unsigned int nvof;      /* Next vertex offset value */
28151
 
                                unsigned int vof;       /* Vertex offset value */
28152
 
                                unsigned int vwe;       /* Vertex weighting */
28153
 
                                
28154
 
                                vof = 0;                                /* First vertex offset is 0 */
28155
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
28156
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
28157
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
28158
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
28159
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
28160
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
28161
 
                                vof += nvof;                    /* Move to next vertex */
28162
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
28163
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
28164
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
28165
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
28166
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
28167
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
28168
 
                                vof += nvof;                    /* Move to next vertex */
28169
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
28170
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
28171
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
28172
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
28173
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
28174
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
28175
 
                                vof += nvof;                    /* Move to next vertex */
28176
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
28177
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
28178
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
28179
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
28180
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
28181
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
28182
 
                                vof += nvof;                    /* Move to next vertex */
28183
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
28184
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
28185
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
28186
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
28187
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
28188
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
28189
 
                                vof += nvof;                    /* Move to next vertex */
28190
 
                                vwe = wo4;                              /* Baricentric weighting */
28191
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
28192
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
28193
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
28194
 
                        }
28195
 
                }
28196
 
                {
28197
 
                        unsigned int oti;       /* Vertex offset value */
28198
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
28199
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
28200
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
28201
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
28202
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
28203
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
28204
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
28205
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
28206
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
28207
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
28208
 
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
28209
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
28210
 
                }
28211
 
        }
 
27612
        imdi_imp *p = (imdi_imp *)(s->impl);
 
27613
        unsigned char *ip0 = (unsigned char *)inp[0];
 
27614
        unsigned short *op0 = (unsigned short *)outp[0];
 
27615
        unsigned char *ep = ip0 + npix * 5 ;
 
27616
        pointer it0 = (pointer)p->in_tables[0];
 
27617
        pointer it1 = (pointer)p->in_tables[1];
 
27618
        pointer it2 = (pointer)p->in_tables[2];
 
27619
        pointer it3 = (pointer)p->in_tables[3];
 
27620
        pointer it4 = (pointer)p->in_tables[4];
 
27621
        pointer ot0 = (pointer)p->out_tables[0];
 
27622
        pointer ot1 = (pointer)p->out_tables[1];
 
27623
        pointer ot2 = (pointer)p->out_tables[2];
 
27624
        pointer ot3 = (pointer)p->out_tables[3];
 
27625
        pointer ot4 = (pointer)p->out_tables[4];
 
27626
        pointer ot5 = (pointer)p->out_tables[5];
 
27627
        pointer im_base = (pointer)p->im_table;
 
27628
 
 
27629
        for(;ip0 < ep; ip0 += 5, op0 += 6) {
 
27630
                unsigned int ova0;      /* Output value accumulator */
 
27631
                unsigned int ova1;      /* Output value accumulator */
 
27632
                unsigned int ova2;      /* Output value accumulator */
 
27633
                {
 
27634
                        pointer imp;
 
27635
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
27636
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
27637
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
27638
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
27639
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
27640
                        {
 
27641
                                unsigned int ti_i;      /* Interpolation index variable */
 
27642
 
 
27643
                                ti_i  = IT_IX(it0, ip0[0]);
 
27644
                                wo0   = IT_WO(it0, ip0[0]);
 
27645
                                ti_i += IT_IX(it1, ip0[1]);
 
27646
                                wo1   = IT_WO(it1, ip0[1]);
 
27647
                                ti_i += IT_IX(it2, ip0[2]);
 
27648
                                wo2   = IT_WO(it2, ip0[2]);
 
27649
                                ti_i += IT_IX(it3, ip0[3]);
 
27650
                                wo3   = IT_WO(it3, ip0[3]);
 
27651
                                ti_i += IT_IX(it4, ip0[4]);
 
27652
                                wo4   = IT_WO(it4, ip0[4]);
 
27653
 
 
27654
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
27655
 
 
27656
                                /* Sort weighting values and vertex offset values */
 
27657
                                CEX(wo0, wo1);
 
27658
                                CEX(wo0, wo2);
 
27659
                                CEX(wo0, wo3);
 
27660
                                CEX(wo0, wo4);
 
27661
                                CEX(wo1, wo2);
 
27662
                                CEX(wo1, wo3);
 
27663
                                CEX(wo1, wo4);
 
27664
                                CEX(wo2, wo3);
 
27665
                                CEX(wo2, wo4);
 
27666
                                CEX(wo3, wo4);
 
27667
                        }
 
27668
                        {
 
27669
                                unsigned int nvof;      /* Next vertex offset value */
 
27670
                                unsigned int vof;       /* Vertex offset value */
 
27671
                                unsigned int vwe;       /* Vertex weighting */
 
27672
 
 
27673
                                vof = 0;                                /* First vertex offset is 0 */
 
27674
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
27675
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
27676
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
27677
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
27678
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
27679
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
27680
                                vof += nvof;                    /* Move to next vertex */
 
27681
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
27682
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
27683
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
27684
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
27685
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
27686
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
27687
                                vof += nvof;                    /* Move to next vertex */
 
27688
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
27689
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
27690
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
27691
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
27692
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
27693
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
27694
                                vof += nvof;                    /* Move to next vertex */
 
27695
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
27696
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
27697
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
27698
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
27699
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
27700
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
27701
                                vof += nvof;                    /* Move to next vertex */
 
27702
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
27703
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
27704
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
27705
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
27706
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
27707
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
27708
                                vof += nvof;                    /* Move to next vertex */
 
27709
                                vwe = wo4;                              /* Baricentric weighting */
 
27710
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
27711
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
27712
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
27713
                        }
 
27714
                }
 
27715
                {
 
27716
                        unsigned int oti;       /* Vertex offset value */
 
27717
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
27718
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
27719
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
27720
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
27721
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
27722
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
27723
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
27724
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
27725
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
27726
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
27727
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
 
27728
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
27729
                }
 
27730
        }
28212
27731
}
28213
27732
#undef IT_WO
28214
27733
#undef IT_IX
28221
27740
imdi_k81_gen(
28222
27741
genspec *g                      /* structure to be initialised */
28223
27742
) {
28224
 
        static unsigned char data[] = {
28225
 
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
28226
 
                0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
28227
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28228
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
28229
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
28230
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
28231
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
28232
 
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
28233
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
28234
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
28235
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
28236
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28237
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28238
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28239
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28240
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
28241
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
28242
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
28243
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
28244
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
28245
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
28246
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
28247
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
28248
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
28249
 
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
28250
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
28251
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
28252
 
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
28253
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28254
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28255
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28256
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28257
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
28258
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
28259
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
28260
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
28261
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
28262
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
28263
 
                0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28264
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
28265
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
28266
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
28267
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
28268
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
28269
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
28270
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
28271
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
28272
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
28273
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28274
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
28275
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
28276
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x35, 0x5f, 0x36, 0x5f, 
28277
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
28278
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
28279
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
28280
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
28281
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
28282
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
28283
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
28284
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28285
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28286
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28287
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28288
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
28289
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x38, 0x31, 
28290
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28291
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28292
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
28293
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
28294
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
28295
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
28296
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
28297
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
28298
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
28299
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
28300
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
28301
 
                0x00, 0xf0, 0x04, 0x08 
28302
 
        };      /* Structure image */
28303
 
        
28304
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
27743
        static unsigned char data[] = {
 
27744
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
27745
                0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
27746
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27747
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
27748
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
27749
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
27750
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
27751
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
27752
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
27753
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
27754
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
27755
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27756
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27757
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27758
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27759
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
27760
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
27761
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
27762
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
27763
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
27764
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
27765
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
27766
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
27767
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
27768
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
27769
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
27770
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
27771
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
27772
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27773
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27774
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27775
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27776
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
27777
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
27778
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
27779
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
27780
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
27781
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
27782
                0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27783
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
27784
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
27785
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
27786
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
27787
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
27788
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
27789
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
27790
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
27791
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
27792
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27793
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
27794
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
27795
                0x2c, 0xf3, 0xdc, 0xb7, 0x35, 0x5f, 0x36, 0x5f,
 
27796
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
27797
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
27798
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
27799
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
27800
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
27801
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
27802
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
27803
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27804
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27805
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27806
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27807
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
27808
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x38, 0x31,
 
27809
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27810
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27811
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
27812
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
27813
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
27814
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
27815
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
27816
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
27817
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
27818
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
27819
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
27820
                0x00, 0xf0, 0x04, 0x08
 
27821
        };      /* Structure image */
 
27822
 
 
27823
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
28305
27824
}
28306
27825
 
28307
27826
static void
28308
27827
imdi_k81_tab(
28309
27828
tabspec *t                      /* structure to be initialised */
28310
27829
) {
28311
 
        static unsigned char data[] = {
28312
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
28313
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
28314
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
28315
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
28316
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
28317
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
28318
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
28319
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
28320
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
28321
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28322
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
28323
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
28324
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
28325
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
28326
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
28327
 
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
28328
 
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
28329
 
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
28330
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28331
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28332
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
28333
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
28334
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
28335
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
28336
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28337
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28338
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28339
 
                0x00, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
28340
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
28341
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
28342
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
28343
 
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 
28344
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
28345
 
        };      /* Structure image */
28346
 
        
28347
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
27830
        static unsigned char data[] = {
 
27831
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
27832
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
27833
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
27834
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
27835
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
27836
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
27837
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
27838
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
27839
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
27840
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27841
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
27842
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
27843
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
27844
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
27845
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
27846
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
27847
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
27848
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
27849
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27850
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27851
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
27852
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
27853
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
27854
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
27855
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27856
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27857
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
27858
                0x00, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
27859
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
27860
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
27861
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
27862
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
 
27863
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
27864
        };      /* Structure image */
 
27865
 
 
27866
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
28348
27867
}
28349
27868
 
28350
 
 
28351
 
 
28352
 
 
28353
 
 
28354
 
 
28355
27869
/* Integer Multi-Dimensional Interpolation */
28356
27870
/* Interpolation Kernel Code */
28357
27871
/* Generated by cgen */
28360
27874
 
28361
27875
/* see the Licence.txt file for licencing details.*/
28362
27876
 
28363
 
 
28364
27877
/*
28365
27878
   Interpolation kernel specs:
28366
27879
 
28457
27970
void **inp,             /* pointer to input pointers */
28458
27971
unsigned int npix       /* Number of pixels to process */
28459
27972
) {
28460
 
        imdi_imp *p = (imdi_imp *)(s->impl);
28461
 
        unsigned char *ip0 = (unsigned char *)inp[0];
28462
 
        unsigned short *op0 = (unsigned short *)outp[0];
28463
 
        unsigned char *ep = ip0 + npix * 6 ;
28464
 
        pointer it0 = (pointer)p->in_tables[0];
28465
 
        pointer it1 = (pointer)p->in_tables[1];
28466
 
        pointer it2 = (pointer)p->in_tables[2];
28467
 
        pointer it3 = (pointer)p->in_tables[3];
28468
 
        pointer it4 = (pointer)p->in_tables[4];
28469
 
        pointer it5 = (pointer)p->in_tables[5];
28470
 
        pointer ot0 = (pointer)p->out_tables[0];
28471
 
        pointer ot1 = (pointer)p->out_tables[1];
28472
 
        pointer ot2 = (pointer)p->out_tables[2];
28473
 
        pointer ot3 = (pointer)p->out_tables[3];
28474
 
        pointer ot4 = (pointer)p->out_tables[4];
28475
 
        pointer ot5 = (pointer)p->out_tables[5];
28476
 
        pointer im_base = (pointer)p->im_table;
28477
 
        
28478
 
        for(;ip0 < ep; ip0 += 6, op0 += 6) {
28479
 
                unsigned int ova0;      /* Output value accumulator */
28480
 
                unsigned int ova1;      /* Output value accumulator */
28481
 
                unsigned int ova2;      /* Output value accumulator */
28482
 
                {
28483
 
                        pointer imp;
28484
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
28485
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
28486
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
28487
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
28488
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
28489
 
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
28490
 
                        {
28491
 
                                unsigned int ti_i;      /* Interpolation index variable */
28492
 
                                
28493
 
                                ti_i  = IT_IX(it0, ip0[0]);
28494
 
                                wo0   = IT_WO(it0, ip0[0]);
28495
 
                                ti_i += IT_IX(it1, ip0[1]);
28496
 
                                wo1   = IT_WO(it1, ip0[1]);
28497
 
                                ti_i += IT_IX(it2, ip0[2]);
28498
 
                                wo2   = IT_WO(it2, ip0[2]);
28499
 
                                ti_i += IT_IX(it3, ip0[3]);
28500
 
                                wo3   = IT_WO(it3, ip0[3]);
28501
 
                                ti_i += IT_IX(it4, ip0[4]);
28502
 
                                wo4   = IT_WO(it4, ip0[4]);
28503
 
                                ti_i += IT_IX(it5, ip0[5]);
28504
 
                                wo5   = IT_WO(it5, ip0[5]);
28505
 
                                
28506
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
28507
 
                                
28508
 
                                /* Sort weighting values and vertex offset values */
28509
 
                                CEX(wo0, wo1);
28510
 
                                CEX(wo0, wo2);
28511
 
                                CEX(wo0, wo3);
28512
 
                                CEX(wo0, wo4);
28513
 
                                CEX(wo0, wo5);
28514
 
                                CEX(wo1, wo2);
28515
 
                                CEX(wo1, wo3);
28516
 
                                CEX(wo1, wo4);
28517
 
                                CEX(wo1, wo5);
28518
 
                                CEX(wo2, wo3);
28519
 
                                CEX(wo2, wo4);
28520
 
                                CEX(wo2, wo5);
28521
 
                                CEX(wo3, wo4);
28522
 
                                CEX(wo3, wo5);
28523
 
                                CEX(wo4, wo5);
28524
 
                        }
28525
 
                        {
28526
 
                                unsigned int nvof;      /* Next vertex offset value */
28527
 
                                unsigned int vof;       /* Vertex offset value */
28528
 
                                unsigned int vwe;       /* Vertex weighting */
28529
 
                                
28530
 
                                vof = 0;                                /* First vertex offset is 0 */
28531
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
28532
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
28533
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
28534
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
28535
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
28536
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
28537
 
                                vof += nvof;                    /* Move to next vertex */
28538
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
28539
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
28540
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
28541
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
28542
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
28543
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
28544
 
                                vof += nvof;                    /* Move to next vertex */
28545
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
28546
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
28547
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
28548
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
28549
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
28550
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
28551
 
                                vof += nvof;                    /* Move to next vertex */
28552
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
28553
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
28554
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
28555
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
28556
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
28557
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
28558
 
                                vof += nvof;                    /* Move to next vertex */
28559
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
28560
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
28561
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
28562
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
28563
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
28564
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
28565
 
                                vof += nvof;                    /* Move to next vertex */
28566
 
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
28567
 
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
28568
 
                                vwe = wo4 - wo5;                /* Baricentric weighting */
28569
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
28570
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
28571
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
28572
 
                                vof += nvof;                    /* Move to next vertex */
28573
 
                                vwe = wo5;                              /* Baricentric weighting */
28574
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
28575
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
28576
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
28577
 
                        }
28578
 
                }
28579
 
                {
28580
 
                        unsigned int oti;       /* Vertex offset value */
28581
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
28582
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
28583
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
28584
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
28585
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
28586
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
28587
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
28588
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
28589
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
28590
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
28591
 
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
28592
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
28593
 
                }
28594
 
        }
 
27973
        imdi_imp *p = (imdi_imp *)(s->impl);
 
27974
        unsigned char *ip0 = (unsigned char *)inp[0];
 
27975
        unsigned short *op0 = (unsigned short *)outp[0];
 
27976
        unsigned char *ep = ip0 + npix * 6 ;
 
27977
        pointer it0 = (pointer)p->in_tables[0];
 
27978
        pointer it1 = (pointer)p->in_tables[1];
 
27979
        pointer it2 = (pointer)p->in_tables[2];
 
27980
        pointer it3 = (pointer)p->in_tables[3];
 
27981
        pointer it4 = (pointer)p->in_tables[4];
 
27982
        pointer it5 = (pointer)p->in_tables[5];
 
27983
        pointer ot0 = (pointer)p->out_tables[0];
 
27984
        pointer ot1 = (pointer)p->out_tables[1];
 
27985
        pointer ot2 = (pointer)p->out_tables[2];
 
27986
        pointer ot3 = (pointer)p->out_tables[3];
 
27987
        pointer ot4 = (pointer)p->out_tables[4];
 
27988
        pointer ot5 = (pointer)p->out_tables[5];
 
27989
        pointer im_base = (pointer)p->im_table;
 
27990
 
 
27991
        for(;ip0 < ep; ip0 += 6, op0 += 6) {
 
27992
                unsigned int ova0;      /* Output value accumulator */
 
27993
                unsigned int ova1;      /* Output value accumulator */
 
27994
                unsigned int ova2;      /* Output value accumulator */
 
27995
                {
 
27996
                        pointer imp;
 
27997
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
27998
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
27999
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
28000
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
28001
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
28002
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
 
28003
                        {
 
28004
                                unsigned int ti_i;      /* Interpolation index variable */
 
28005
 
 
28006
                                ti_i  = IT_IX(it0, ip0[0]);
 
28007
                                wo0   = IT_WO(it0, ip0[0]);
 
28008
                                ti_i += IT_IX(it1, ip0[1]);
 
28009
                                wo1   = IT_WO(it1, ip0[1]);
 
28010
                                ti_i += IT_IX(it2, ip0[2]);
 
28011
                                wo2   = IT_WO(it2, ip0[2]);
 
28012
                                ti_i += IT_IX(it3, ip0[3]);
 
28013
                                wo3   = IT_WO(it3, ip0[3]);
 
28014
                                ti_i += IT_IX(it4, ip0[4]);
 
28015
                                wo4   = IT_WO(it4, ip0[4]);
 
28016
                                ti_i += IT_IX(it5, ip0[5]);
 
28017
                                wo5   = IT_WO(it5, ip0[5]);
 
28018
 
 
28019
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
28020
 
 
28021
                                /* Sort weighting values and vertex offset values */
 
28022
                                CEX(wo0, wo1);
 
28023
                                CEX(wo0, wo2);
 
28024
                                CEX(wo0, wo3);
 
28025
                                CEX(wo0, wo4);
 
28026
                                CEX(wo0, wo5);
 
28027
                                CEX(wo1, wo2);
 
28028
                                CEX(wo1, wo3);
 
28029
                                CEX(wo1, wo4);
 
28030
                                CEX(wo1, wo5);
 
28031
                                CEX(wo2, wo3);
 
28032
                                CEX(wo2, wo4);
 
28033
                                CEX(wo2, wo5);
 
28034
                                CEX(wo3, wo4);
 
28035
                                CEX(wo3, wo5);
 
28036
                                CEX(wo4, wo5);
 
28037
                        }
 
28038
                        {
 
28039
                                unsigned int nvof;      /* Next vertex offset value */
 
28040
                                unsigned int vof;       /* Vertex offset value */
 
28041
                                unsigned int vwe;       /* Vertex weighting */
 
28042
 
 
28043
                                vof = 0;                                /* First vertex offset is 0 */
 
28044
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
28045
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
28046
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
28047
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
28048
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
28049
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
28050
                                vof += nvof;                    /* Move to next vertex */
 
28051
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
28052
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
28053
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
28054
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
28055
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
28056
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
28057
                                vof += nvof;                    /* Move to next vertex */
 
28058
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
28059
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
28060
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
28061
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
28062
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
28063
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
28064
                                vof += nvof;                    /* Move to next vertex */
 
28065
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
28066
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
28067
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
28068
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
28069
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
28070
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
28071
                                vof += nvof;                    /* Move to next vertex */
 
28072
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
28073
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
28074
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
28075
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
28076
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
28077
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
28078
                                vof += nvof;                    /* Move to next vertex */
 
28079
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
 
28080
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
 
28081
                                vwe = wo4 - wo5;                /* Baricentric weighting */
 
28082
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
28083
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
28084
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
28085
                                vof += nvof;                    /* Move to next vertex */
 
28086
                                vwe = wo5;                              /* Baricentric weighting */
 
28087
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
28088
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
28089
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
28090
                        }
 
28091
                }
 
28092
                {
 
28093
                        unsigned int oti;       /* Vertex offset value */
 
28094
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
28095
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
28096
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
28097
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
28098
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
28099
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
28100
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
28101
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
28102
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
28103
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
28104
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
 
28105
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
28106
                }
 
28107
        }
28595
28108
}
28596
28109
#undef IT_WO
28597
28110
#undef IT_IX
28604
28117
imdi_k82_gen(
28605
28118
genspec *g                      /* structure to be initialised */
28606
28119
) {
28607
 
        static unsigned char data[] = {
28608
 
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
28609
 
                0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
28610
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28611
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
28612
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
28613
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
28614
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
28615
 
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
28616
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
28617
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
28618
 
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
28619
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28620
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28621
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28622
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28623
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
28624
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
28625
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
28626
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
28627
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
28628
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
28629
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
28630
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
28631
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
28632
 
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
28633
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
28634
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
28635
 
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
28636
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28637
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28638
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28639
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28640
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
28641
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
28642
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
28643
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
28644
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
28645
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
28646
 
                0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28647
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
28648
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
28649
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
28650
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
28651
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
28652
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
28653
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
28654
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
28655
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
28656
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28657
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
28658
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
28659
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x36, 0x5f, 0x36, 0x5f, 
28660
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
28661
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
28662
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
28663
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
28664
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
28665
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
28666
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
28667
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28668
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28669
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28670
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28671
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
28672
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x38, 0x32, 
28673
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28674
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28675
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
28676
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
28677
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
28678
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
28679
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
28680
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
28681
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
28682
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
28683
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
28684
 
                0x00, 0xf0, 0x04, 0x08 
28685
 
        };      /* Structure image */
28686
 
        
28687
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
28120
        static unsigned char data[] = {
 
28121
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
28122
                0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
28123
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28124
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
28125
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
28126
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
28127
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
28128
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
28129
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
28130
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
28131
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
28132
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28133
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28134
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28135
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28136
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
28137
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
28138
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
28139
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
28140
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
28141
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
28142
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
28143
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
28144
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
28145
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
28146
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
28147
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
28148
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
28149
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28150
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28151
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28152
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28153
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
28154
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
28155
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
28156
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
28157
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
28158
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
28159
                0x13, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28160
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
28161
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
28162
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
28163
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
28164
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
28165
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
28166
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
28167
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
28168
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
28169
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28170
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
28171
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
28172
                0x2c, 0xf3, 0xdc, 0xb7, 0x36, 0x5f, 0x36, 0x5f,
 
28173
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
28174
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
28175
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
28176
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
28177
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
28178
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
28179
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
28180
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28181
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28182
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28183
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28184
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
28185
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x38, 0x32,
 
28186
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28187
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28188
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
28189
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
28190
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
28191
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
28192
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
28193
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
28194
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
28195
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
28196
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
28197
                0x00, 0xf0, 0x04, 0x08
 
28198
        };      /* Structure image */
 
28199
 
 
28200
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
28688
28201
}
28689
28202
 
28690
28203
static void
28691
28204
imdi_k82_tab(
28692
28205
tabspec *t                      /* structure to be initialised */
28693
28206
) {
28694
 
        static unsigned char data[] = {
28695
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
28696
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
28697
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
28698
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
28699
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
28700
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
28701
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
28702
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
28703
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
28704
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28705
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
28706
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
28707
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
28708
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
28709
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
28710
 
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
28711
 
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
28712
 
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
28713
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28714
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28715
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
28716
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
28717
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
28718
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
28719
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28720
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28721
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
28722
 
                0x00, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
28723
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
28724
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
28725
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
28726
 
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 
28727
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
28728
 
        };      /* Structure image */
28729
 
        
28730
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
28207
        static unsigned char data[] = {
 
28208
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
28209
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
28210
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
28211
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
28212
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
28213
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
28214
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
28215
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
28216
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
28217
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28218
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
28219
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
28220
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
28221
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
28222
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
28223
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
28224
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
28225
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
28226
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28227
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28228
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
28229
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
28230
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
28231
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
28232
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28233
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28234
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28235
                0x00, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
28236
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
28237
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
28238
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
28239
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
 
28240
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
28241
        };      /* Structure image */
 
28242
 
 
28243
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
28731
28244
}
28732
28245
 
28733
 
 
28734
 
 
28735
 
 
28736
 
 
28737
 
 
28738
28246
/* Integer Multi-Dimensional Interpolation */
28739
28247
/* Interpolation Kernel Code */
28740
28248
/* Generated by cgen */
28743
28251
 
28744
28252
/* see the Licence.txt file for licencing details.*/
28745
28253
 
28746
 
 
28747
28254
/*
28748
28255
   Interpolation kernel specs:
28749
28256
 
28842
28349
void **inp,             /* pointer to input pointers */
28843
28350
unsigned int npix       /* Number of pixels to process */
28844
28351
) {
28845
 
        imdi_imp *p = (imdi_imp *)(s->impl);
28846
 
        unsigned char *ip0 = (unsigned char *)inp[0];
28847
 
        unsigned short *op0 = (unsigned short *)outp[0];
28848
 
        unsigned char *ep = ip0 + npix * 7 ;
28849
 
        pointer it0 = (pointer)p->in_tables[0];
28850
 
        pointer it1 = (pointer)p->in_tables[1];
28851
 
        pointer it2 = (pointer)p->in_tables[2];
28852
 
        pointer it3 = (pointer)p->in_tables[3];
28853
 
        pointer it4 = (pointer)p->in_tables[4];
28854
 
        pointer it5 = (pointer)p->in_tables[5];
28855
 
        pointer it6 = (pointer)p->in_tables[6];
28856
 
        pointer ot0 = (pointer)p->out_tables[0];
28857
 
        pointer ot1 = (pointer)p->out_tables[1];
28858
 
        pointer ot2 = (pointer)p->out_tables[2];
28859
 
        pointer ot3 = (pointer)p->out_tables[3];
28860
 
        pointer ot4 = (pointer)p->out_tables[4];
28861
 
        pointer ot5 = (pointer)p->out_tables[5];
28862
 
        pointer im_base = (pointer)p->im_table;
28863
 
        
28864
 
        for(;ip0 < ep; ip0 += 7, op0 += 6) {
28865
 
                unsigned int ova0;      /* Output value accumulator */
28866
 
                unsigned int ova1;      /* Output value accumulator */
28867
 
                unsigned int ova2;      /* Output value accumulator */
28868
 
                {
28869
 
                        pointer imp;
28870
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
28871
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
28872
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
28873
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
28874
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
28875
 
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
28876
 
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
28877
 
                        {
28878
 
                                unsigned int ti_i;      /* Interpolation index variable */
28879
 
                                
28880
 
                                ti_i  = IT_IX(it0, ip0[0]);
28881
 
                                wo0   = IT_WO(it0, ip0[0]);
28882
 
                                ti_i += IT_IX(it1, ip0[1]);
28883
 
                                wo1   = IT_WO(it1, ip0[1]);
28884
 
                                ti_i += IT_IX(it2, ip0[2]);
28885
 
                                wo2   = IT_WO(it2, ip0[2]);
28886
 
                                ti_i += IT_IX(it3, ip0[3]);
28887
 
                                wo3   = IT_WO(it3, ip0[3]);
28888
 
                                ti_i += IT_IX(it4, ip0[4]);
28889
 
                                wo4   = IT_WO(it4, ip0[4]);
28890
 
                                ti_i += IT_IX(it5, ip0[5]);
28891
 
                                wo5   = IT_WO(it5, ip0[5]);
28892
 
                                ti_i += IT_IX(it6, ip0[6]);
28893
 
                                wo6   = IT_WO(it6, ip0[6]);
28894
 
                                
28895
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
28896
 
                                
28897
 
                                /* Sort weighting values and vertex offset values */
28898
 
                                CEX(wo0, wo1);
28899
 
                                CEX(wo0, wo2);
28900
 
                                CEX(wo0, wo3);
28901
 
                                CEX(wo0, wo4);
28902
 
                                CEX(wo0, wo5);
28903
 
                                CEX(wo0, wo6);
28904
 
                                CEX(wo1, wo2);
28905
 
                                CEX(wo1, wo3);
28906
 
                                CEX(wo1, wo4);
28907
 
                                CEX(wo1, wo5);
28908
 
                                CEX(wo1, wo6);
28909
 
                                CEX(wo2, wo3);
28910
 
                                CEX(wo2, wo4);
28911
 
                                CEX(wo2, wo5);
28912
 
                                CEX(wo2, wo6);
28913
 
                                CEX(wo3, wo4);
28914
 
                                CEX(wo3, wo5);
28915
 
                                CEX(wo3, wo6);
28916
 
                                CEX(wo4, wo5);
28917
 
                                CEX(wo4, wo6);
28918
 
                                CEX(wo5, wo6);
28919
 
                        }
28920
 
                        {
28921
 
                                unsigned int nvof;      /* Next vertex offset value */
28922
 
                                unsigned int vof;       /* Vertex offset value */
28923
 
                                unsigned int vwe;       /* Vertex weighting */
28924
 
                                
28925
 
                                vof = 0;                                /* First vertex offset is 0 */
28926
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
28927
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
28928
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
28929
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
28930
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
28931
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
28932
 
                                vof += nvof;                    /* Move to next vertex */
28933
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
28934
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
28935
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
28936
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
28937
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
28938
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
28939
 
                                vof += nvof;                    /* Move to next vertex */
28940
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
28941
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
28942
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
28943
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
28944
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
28945
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
28946
 
                                vof += nvof;                    /* Move to next vertex */
28947
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
28948
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
28949
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
28950
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
28951
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
28952
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
28953
 
                                vof += nvof;                    /* Move to next vertex */
28954
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
28955
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
28956
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
28957
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
28958
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
28959
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
28960
 
                                vof += nvof;                    /* Move to next vertex */
28961
 
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
28962
 
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
28963
 
                                vwe = wo4 - wo5;                /* Baricentric weighting */
28964
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
28965
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
28966
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
28967
 
                                vof += nvof;                    /* Move to next vertex */
28968
 
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
28969
 
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
28970
 
                                vwe = wo5 - wo6;                /* Baricentric weighting */
28971
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
28972
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
28973
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
28974
 
                                vof += nvof;                    /* Move to next vertex */
28975
 
                                vwe = wo6;                              /* Baricentric weighting */
28976
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
28977
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
28978
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
28979
 
                        }
28980
 
                }
28981
 
                {
28982
 
                        unsigned int oti;       /* Vertex offset value */
28983
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
28984
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
28985
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
28986
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
28987
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
28988
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
28989
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
28990
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
28991
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
28992
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
28993
 
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
28994
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
28995
 
                }
28996
 
        }
 
28352
        imdi_imp *p = (imdi_imp *)(s->impl);
 
28353
        unsigned char *ip0 = (unsigned char *)inp[0];
 
28354
        unsigned short *op0 = (unsigned short *)outp[0];
 
28355
        unsigned char *ep = ip0 + npix * 7 ;
 
28356
        pointer it0 = (pointer)p->in_tables[0];
 
28357
        pointer it1 = (pointer)p->in_tables[1];
 
28358
        pointer it2 = (pointer)p->in_tables[2];
 
28359
        pointer it3 = (pointer)p->in_tables[3];
 
28360
        pointer it4 = (pointer)p->in_tables[4];
 
28361
        pointer it5 = (pointer)p->in_tables[5];
 
28362
        pointer it6 = (pointer)p->in_tables[6];
 
28363
        pointer ot0 = (pointer)p->out_tables[0];
 
28364
        pointer ot1 = (pointer)p->out_tables[1];
 
28365
        pointer ot2 = (pointer)p->out_tables[2];
 
28366
        pointer ot3 = (pointer)p->out_tables[3];
 
28367
        pointer ot4 = (pointer)p->out_tables[4];
 
28368
        pointer ot5 = (pointer)p->out_tables[5];
 
28369
        pointer im_base = (pointer)p->im_table;
 
28370
 
 
28371
        for(;ip0 < ep; ip0 += 7, op0 += 6) {
 
28372
                unsigned int ova0;      /* Output value accumulator */
 
28373
                unsigned int ova1;      /* Output value accumulator */
 
28374
                unsigned int ova2;      /* Output value accumulator */
 
28375
                {
 
28376
                        pointer imp;
 
28377
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
28378
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
28379
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
28380
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
28381
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
28382
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
 
28383
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
 
28384
                        {
 
28385
                                unsigned int ti_i;      /* Interpolation index variable */
 
28386
 
 
28387
                                ti_i  = IT_IX(it0, ip0[0]);
 
28388
                                wo0   = IT_WO(it0, ip0[0]);
 
28389
                                ti_i += IT_IX(it1, ip0[1]);
 
28390
                                wo1   = IT_WO(it1, ip0[1]);
 
28391
                                ti_i += IT_IX(it2, ip0[2]);
 
28392
                                wo2   = IT_WO(it2, ip0[2]);
 
28393
                                ti_i += IT_IX(it3, ip0[3]);
 
28394
                                wo3   = IT_WO(it3, ip0[3]);
 
28395
                                ti_i += IT_IX(it4, ip0[4]);
 
28396
                                wo4   = IT_WO(it4, ip0[4]);
 
28397
                                ti_i += IT_IX(it5, ip0[5]);
 
28398
                                wo5   = IT_WO(it5, ip0[5]);
 
28399
                                ti_i += IT_IX(it6, ip0[6]);
 
28400
                                wo6   = IT_WO(it6, ip0[6]);
 
28401
 
 
28402
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
28403
 
 
28404
                                /* Sort weighting values and vertex offset values */
 
28405
                                CEX(wo0, wo1);
 
28406
                                CEX(wo0, wo2);
 
28407
                                CEX(wo0, wo3);
 
28408
                                CEX(wo0, wo4);
 
28409
                                CEX(wo0, wo5);
 
28410
                                CEX(wo0, wo6);
 
28411
                                CEX(wo1, wo2);
 
28412
                                CEX(wo1, wo3);
 
28413
                                CEX(wo1, wo4);
 
28414
                                CEX(wo1, wo5);
 
28415
                                CEX(wo1, wo6);
 
28416
                                CEX(wo2, wo3);
 
28417
                                CEX(wo2, wo4);
 
28418
                                CEX(wo2, wo5);
 
28419
                                CEX(wo2, wo6);
 
28420
                                CEX(wo3, wo4);
 
28421
                                CEX(wo3, wo5);
 
28422
                                CEX(wo3, wo6);
 
28423
                                CEX(wo4, wo5);
 
28424
                                CEX(wo4, wo6);
 
28425
                                CEX(wo5, wo6);
 
28426
                        }
 
28427
                        {
 
28428
                                unsigned int nvof;      /* Next vertex offset value */
 
28429
                                unsigned int vof;       /* Vertex offset value */
 
28430
                                unsigned int vwe;       /* Vertex weighting */
 
28431
 
 
28432
                                vof = 0;                                /* First vertex offset is 0 */
 
28433
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
28434
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
28435
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
28436
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
28437
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
28438
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
28439
                                vof += nvof;                    /* Move to next vertex */
 
28440
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
28441
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
28442
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
28443
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
28444
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
28445
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
28446
                                vof += nvof;                    /* Move to next vertex */
 
28447
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
28448
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
28449
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
28450
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
28451
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
28452
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
28453
                                vof += nvof;                    /* Move to next vertex */
 
28454
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
28455
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
28456
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
28457
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
28458
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
28459
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
28460
                                vof += nvof;                    /* Move to next vertex */
 
28461
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
28462
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
28463
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
28464
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
28465
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
28466
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
28467
                                vof += nvof;                    /* Move to next vertex */
 
28468
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
 
28469
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
 
28470
                                vwe = wo4 - wo5;                /* Baricentric weighting */
 
28471
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
28472
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
28473
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
28474
                                vof += nvof;                    /* Move to next vertex */
 
28475
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
 
28476
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
 
28477
                                vwe = wo5 - wo6;                /* Baricentric weighting */
 
28478
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
28479
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
28480
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
28481
                                vof += nvof;                    /* Move to next vertex */
 
28482
                                vwe = wo6;                              /* Baricentric weighting */
 
28483
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
28484
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
28485
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
28486
                        }
 
28487
                }
 
28488
                {
 
28489
                        unsigned int oti;       /* Vertex offset value */
 
28490
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
28491
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
28492
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
28493
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
28494
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
28495
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
28496
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
28497
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
28498
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
28499
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
28500
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
 
28501
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
28502
                }
 
28503
        }
28997
28504
}
28998
28505
#undef IT_WO
28999
28506
#undef IT_IX
29006
28513
imdi_k83_gen(
29007
28514
genspec *g                      /* structure to be initialised */
29008
28515
) {
29009
 
        static unsigned char data[] = {
29010
 
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
29011
 
                0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
29012
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29013
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
29014
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
29015
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
29016
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
29017
 
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
29018
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
29019
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
29020
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
29021
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29022
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29023
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29024
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29025
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
29026
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
29027
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
29028
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
29029
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
29030
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
29031
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
29032
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
29033
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
29034
 
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
29035
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
29036
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
29037
 
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
29038
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29039
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29040
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29041
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29042
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
29043
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
29044
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
29045
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
29046
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
29047
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
29048
 
                0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29049
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
29050
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
29051
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
29052
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
29053
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
29054
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
29055
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
29056
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
29057
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
29058
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29059
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
29060
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
29061
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x37, 0x5f, 0x36, 0x5f, 
29062
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
29063
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
29064
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
29065
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
29066
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
29067
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
29068
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
29069
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29070
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29071
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29072
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29073
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
29074
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x38, 0x33, 
29075
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29076
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29077
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
29078
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
29079
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
29080
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
29081
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
29082
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
29083
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
29084
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
29085
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
29086
 
                0x00, 0xf0, 0x04, 0x08 
29087
 
        };      /* Structure image */
29088
 
        
29089
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
28516
        static unsigned char data[] = {
 
28517
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
28518
                0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
28519
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28520
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
28521
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
28522
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
28523
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
28524
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
28525
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
28526
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
28527
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
28528
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28529
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28530
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28531
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28532
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
28533
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
28534
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
28535
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
28536
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
28537
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
28538
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
28539
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
28540
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
28541
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
28542
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
28543
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
28544
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
28545
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28546
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28547
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28548
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28549
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
28550
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
28551
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
28552
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
28553
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
28554
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
28555
                0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28556
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
28557
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
28558
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
28559
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
28560
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
28561
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
28562
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
28563
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
28564
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
28565
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28566
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
28567
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
28568
                0x2c, 0xf3, 0xdc, 0xb7, 0x37, 0x5f, 0x36, 0x5f,
 
28569
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
28570
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
28571
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
28572
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
28573
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
28574
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
28575
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
28576
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28577
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28578
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28579
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28580
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
28581
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x38, 0x33,
 
28582
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28583
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28584
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
28585
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
28586
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
28587
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
28588
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
28589
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
28590
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
28591
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
28592
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
28593
                0x00, 0xf0, 0x04, 0x08
 
28594
        };      /* Structure image */
 
28595
 
 
28596
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
29090
28597
}
29091
28598
 
29092
28599
static void
29093
28600
imdi_k83_tab(
29094
28601
tabspec *t                      /* structure to be initialised */
29095
28602
) {
29096
 
        static unsigned char data[] = {
29097
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
29098
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
29099
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
29100
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
29101
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
29102
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
29103
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
29104
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
29105
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
29106
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29107
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
29108
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
29109
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
29110
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
29111
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
29112
 
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
29113
 
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
29114
 
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
29115
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29116
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29117
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
29118
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
29119
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
29120
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
29121
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29122
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29123
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29124
 
                0x00, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
29125
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
29126
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
29127
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
29128
 
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 
29129
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
29130
 
        };      /* Structure image */
29131
 
        
29132
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
28603
        static unsigned char data[] = {
 
28604
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
28605
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
28606
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
28607
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
28608
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
28609
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
28610
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
28611
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
28612
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
28613
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28614
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
28615
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
28616
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
28617
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
28618
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
28619
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
28620
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
28621
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
28622
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28623
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28624
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
28625
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
28626
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
28627
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
28628
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28629
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28630
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28631
                0x00, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
28632
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
28633
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
28634
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
28635
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
 
28636
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
28637
        };      /* Structure image */
 
28638
 
 
28639
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
29133
28640
}
29134
28641
 
29135
 
 
29136
 
 
29137
 
 
29138
 
 
29139
 
 
29140
28642
/* Integer Multi-Dimensional Interpolation */
29141
28643
/* Interpolation Kernel Code */
29142
28644
/* Generated by cgen */
29145
28647
 
29146
28648
/* see the Licence.txt file for licencing details.*/
29147
28649
 
29148
 
 
29149
28650
/*
29150
28651
   Interpolation kernel specs:
29151
28652
 
29246
28747
void **inp,             /* pointer to input pointers */
29247
28748
unsigned int npix       /* Number of pixels to process */
29248
28749
) {
29249
 
        imdi_imp *p = (imdi_imp *)(s->impl);
29250
 
        unsigned char *ip0 = (unsigned char *)inp[0];
29251
 
        unsigned short *op0 = (unsigned short *)outp[0];
29252
 
        unsigned char *ep = ip0 + npix * 8 ;
29253
 
        pointer it0 = (pointer)p->in_tables[0];
29254
 
        pointer it1 = (pointer)p->in_tables[1];
29255
 
        pointer it2 = (pointer)p->in_tables[2];
29256
 
        pointer it3 = (pointer)p->in_tables[3];
29257
 
        pointer it4 = (pointer)p->in_tables[4];
29258
 
        pointer it5 = (pointer)p->in_tables[5];
29259
 
        pointer it6 = (pointer)p->in_tables[6];
29260
 
        pointer it7 = (pointer)p->in_tables[7];
29261
 
        pointer ot0 = (pointer)p->out_tables[0];
29262
 
        pointer ot1 = (pointer)p->out_tables[1];
29263
 
        pointer ot2 = (pointer)p->out_tables[2];
29264
 
        pointer ot3 = (pointer)p->out_tables[3];
29265
 
        pointer ot4 = (pointer)p->out_tables[4];
29266
 
        pointer ot5 = (pointer)p->out_tables[5];
29267
 
        pointer im_base = (pointer)p->im_table;
29268
 
        
29269
 
        for(;ip0 < ep; ip0 += 8, op0 += 6) {
29270
 
                unsigned int ova0;      /* Output value accumulator */
29271
 
                unsigned int ova1;      /* Output value accumulator */
29272
 
                unsigned int ova2;      /* Output value accumulator */
29273
 
                {
29274
 
                        pointer imp;
29275
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
29276
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
29277
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
29278
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
29279
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
29280
 
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
29281
 
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
29282
 
                        unsigned int wo7;       /* Weighting value and vertex offset variable */
29283
 
                        {
29284
 
                                unsigned int ti_i;      /* Interpolation index variable */
29285
 
                                
29286
 
                                ti_i  = IT_IX(it0, ip0[0]);
29287
 
                                wo0   = IT_WO(it0, ip0[0]);
29288
 
                                ti_i += IT_IX(it1, ip0[1]);
29289
 
                                wo1   = IT_WO(it1, ip0[1]);
29290
 
                                ti_i += IT_IX(it2, ip0[2]);
29291
 
                                wo2   = IT_WO(it2, ip0[2]);
29292
 
                                ti_i += IT_IX(it3, ip0[3]);
29293
 
                                wo3   = IT_WO(it3, ip0[3]);
29294
 
                                ti_i += IT_IX(it4, ip0[4]);
29295
 
                                wo4   = IT_WO(it4, ip0[4]);
29296
 
                                ti_i += IT_IX(it5, ip0[5]);
29297
 
                                wo5   = IT_WO(it5, ip0[5]);
29298
 
                                ti_i += IT_IX(it6, ip0[6]);
29299
 
                                wo6   = IT_WO(it6, ip0[6]);
29300
 
                                ti_i += IT_IX(it7, ip0[7]);
29301
 
                                wo7   = IT_WO(it7, ip0[7]);
29302
 
                                
29303
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
29304
 
                                
29305
 
                                /* Sort weighting values and vertex offset values */
29306
 
                                CEX(wo0, wo1);
29307
 
                                CEX(wo0, wo2);
29308
 
                                CEX(wo0, wo3);
29309
 
                                CEX(wo0, wo4);
29310
 
                                CEX(wo0, wo5);
29311
 
                                CEX(wo0, wo6);
29312
 
                                CEX(wo0, wo7);
29313
 
                                CEX(wo1, wo2);
29314
 
                                CEX(wo1, wo3);
29315
 
                                CEX(wo1, wo4);
29316
 
                                CEX(wo1, wo5);
29317
 
                                CEX(wo1, wo6);
29318
 
                                CEX(wo1, wo7);
29319
 
                                CEX(wo2, wo3);
29320
 
                                CEX(wo2, wo4);
29321
 
                                CEX(wo2, wo5);
29322
 
                                CEX(wo2, wo6);
29323
 
                                CEX(wo2, wo7);
29324
 
                                CEX(wo3, wo4);
29325
 
                                CEX(wo3, wo5);
29326
 
                                CEX(wo3, wo6);
29327
 
                                CEX(wo3, wo7);
29328
 
                                CEX(wo4, wo5);
29329
 
                                CEX(wo4, wo6);
29330
 
                                CEX(wo4, wo7);
29331
 
                                CEX(wo5, wo6);
29332
 
                                CEX(wo5, wo7);
29333
 
                                CEX(wo6, wo7);
29334
 
                        }
29335
 
                        {
29336
 
                                unsigned int nvof;      /* Next vertex offset value */
29337
 
                                unsigned int vof;       /* Vertex offset value */
29338
 
                                unsigned int vwe;       /* Vertex weighting */
29339
 
                                
29340
 
                                vof = 0;                                /* First vertex offset is 0 */
29341
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
29342
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
29343
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
29344
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
29345
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
29346
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
29347
 
                                vof += nvof;                    /* Move to next vertex */
29348
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
29349
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
29350
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
29351
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
29352
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
29353
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
29354
 
                                vof += nvof;                    /* Move to next vertex */
29355
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
29356
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
29357
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
29358
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
29359
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
29360
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
29361
 
                                vof += nvof;                    /* Move to next vertex */
29362
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
29363
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
29364
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
29365
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
29366
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
29367
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
29368
 
                                vof += nvof;                    /* Move to next vertex */
29369
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
29370
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
29371
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
29372
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
29373
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
29374
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
29375
 
                                vof += nvof;                    /* Move to next vertex */
29376
 
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
29377
 
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
29378
 
                                vwe = wo4 - wo5;                /* Baricentric weighting */
29379
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
29380
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
29381
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
29382
 
                                vof += nvof;                    /* Move to next vertex */
29383
 
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
29384
 
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
29385
 
                                vwe = wo5 - wo6;                /* Baricentric weighting */
29386
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
29387
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
29388
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
29389
 
                                vof += nvof;                    /* Move to next vertex */
29390
 
                                nvof = (wo7 & 0x7fffff);        /* Extract offset value */
29391
 
                                wo7 = (wo7 >> 23);              /* Extract weighting value */
29392
 
                                vwe = wo6 - wo7;                /* Baricentric weighting */
29393
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
29394
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
29395
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
29396
 
                                vof += nvof;                    /* Move to next vertex */
29397
 
                                vwe = wo7;                              /* Baricentric weighting */
29398
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
29399
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
29400
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
29401
 
                        }
29402
 
                }
29403
 
                {
29404
 
                        unsigned int oti;       /* Vertex offset value */
29405
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
29406
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
29407
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
29408
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
29409
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
29410
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
29411
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
29412
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
29413
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
29414
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
29415
 
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
29416
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
29417
 
                }
29418
 
        }
 
28750
        imdi_imp *p = (imdi_imp *)(s->impl);
 
28751
        unsigned char *ip0 = (unsigned char *)inp[0];
 
28752
        unsigned short *op0 = (unsigned short *)outp[0];
 
28753
        unsigned char *ep = ip0 + npix * 8 ;
 
28754
        pointer it0 = (pointer)p->in_tables[0];
 
28755
        pointer it1 = (pointer)p->in_tables[1];
 
28756
        pointer it2 = (pointer)p->in_tables[2];
 
28757
        pointer it3 = (pointer)p->in_tables[3];
 
28758
        pointer it4 = (pointer)p->in_tables[4];
 
28759
        pointer it5 = (pointer)p->in_tables[5];
 
28760
        pointer it6 = (pointer)p->in_tables[6];
 
28761
        pointer it7 = (pointer)p->in_tables[7];
 
28762
        pointer ot0 = (pointer)p->out_tables[0];
 
28763
        pointer ot1 = (pointer)p->out_tables[1];
 
28764
        pointer ot2 = (pointer)p->out_tables[2];
 
28765
        pointer ot3 = (pointer)p->out_tables[3];
 
28766
        pointer ot4 = (pointer)p->out_tables[4];
 
28767
        pointer ot5 = (pointer)p->out_tables[5];
 
28768
        pointer im_base = (pointer)p->im_table;
 
28769
 
 
28770
        for(;ip0 < ep; ip0 += 8, op0 += 6) {
 
28771
                unsigned int ova0;      /* Output value accumulator */
 
28772
                unsigned int ova1;      /* Output value accumulator */
 
28773
                unsigned int ova2;      /* Output value accumulator */
 
28774
                {
 
28775
                        pointer imp;
 
28776
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
28777
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
28778
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
28779
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
28780
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
28781
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
 
28782
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
 
28783
                        unsigned int wo7;       /* Weighting value and vertex offset variable */
 
28784
                        {
 
28785
                                unsigned int ti_i;      /* Interpolation index variable */
 
28786
 
 
28787
                                ti_i  = IT_IX(it0, ip0[0]);
 
28788
                                wo0   = IT_WO(it0, ip0[0]);
 
28789
                                ti_i += IT_IX(it1, ip0[1]);
 
28790
                                wo1   = IT_WO(it1, ip0[1]);
 
28791
                                ti_i += IT_IX(it2, ip0[2]);
 
28792
                                wo2   = IT_WO(it2, ip0[2]);
 
28793
                                ti_i += IT_IX(it3, ip0[3]);
 
28794
                                wo3   = IT_WO(it3, ip0[3]);
 
28795
                                ti_i += IT_IX(it4, ip0[4]);
 
28796
                                wo4   = IT_WO(it4, ip0[4]);
 
28797
                                ti_i += IT_IX(it5, ip0[5]);
 
28798
                                wo5   = IT_WO(it5, ip0[5]);
 
28799
                                ti_i += IT_IX(it6, ip0[6]);
 
28800
                                wo6   = IT_WO(it6, ip0[6]);
 
28801
                                ti_i += IT_IX(it7, ip0[7]);
 
28802
                                wo7   = IT_WO(it7, ip0[7]);
 
28803
 
 
28804
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
28805
 
 
28806
                                /* Sort weighting values and vertex offset values */
 
28807
                                CEX(wo0, wo1);
 
28808
                                CEX(wo0, wo2);
 
28809
                                CEX(wo0, wo3);
 
28810
                                CEX(wo0, wo4);
 
28811
                                CEX(wo0, wo5);
 
28812
                                CEX(wo0, wo6);
 
28813
                                CEX(wo0, wo7);
 
28814
                                CEX(wo1, wo2);
 
28815
                                CEX(wo1, wo3);
 
28816
                                CEX(wo1, wo4);
 
28817
                                CEX(wo1, wo5);
 
28818
                                CEX(wo1, wo6);
 
28819
                                CEX(wo1, wo7);
 
28820
                                CEX(wo2, wo3);
 
28821
                                CEX(wo2, wo4);
 
28822
                                CEX(wo2, wo5);
 
28823
                                CEX(wo2, wo6);
 
28824
                                CEX(wo2, wo7);
 
28825
                                CEX(wo3, wo4);
 
28826
                                CEX(wo3, wo5);
 
28827
                                CEX(wo3, wo6);
 
28828
                                CEX(wo3, wo7);
 
28829
                                CEX(wo4, wo5);
 
28830
                                CEX(wo4, wo6);
 
28831
                                CEX(wo4, wo7);
 
28832
                                CEX(wo5, wo6);
 
28833
                                CEX(wo5, wo7);
 
28834
                                CEX(wo6, wo7);
 
28835
                        }
 
28836
                        {
 
28837
                                unsigned int nvof;      /* Next vertex offset value */
 
28838
                                unsigned int vof;       /* Vertex offset value */
 
28839
                                unsigned int vwe;       /* Vertex weighting */
 
28840
 
 
28841
                                vof = 0;                                /* First vertex offset is 0 */
 
28842
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
28843
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
28844
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
28845
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
28846
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
28847
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
28848
                                vof += nvof;                    /* Move to next vertex */
 
28849
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
28850
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
28851
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
28852
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
28853
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
28854
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
28855
                                vof += nvof;                    /* Move to next vertex */
 
28856
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
28857
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
28858
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
28859
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
28860
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
28861
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
28862
                                vof += nvof;                    /* Move to next vertex */
 
28863
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
28864
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
28865
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
28866
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
28867
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
28868
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
28869
                                vof += nvof;                    /* Move to next vertex */
 
28870
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
28871
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
28872
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
28873
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
28874
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
28875
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
28876
                                vof += nvof;                    /* Move to next vertex */
 
28877
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
 
28878
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
 
28879
                                vwe = wo4 - wo5;                /* Baricentric weighting */
 
28880
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
28881
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
28882
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
28883
                                vof += nvof;                    /* Move to next vertex */
 
28884
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
 
28885
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
 
28886
                                vwe = wo5 - wo6;                /* Baricentric weighting */
 
28887
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
28888
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
28889
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
28890
                                vof += nvof;                    /* Move to next vertex */
 
28891
                                nvof = (wo7 & 0x7fffff);        /* Extract offset value */
 
28892
                                wo7 = (wo7 >> 23);              /* Extract weighting value */
 
28893
                                vwe = wo6 - wo7;                /* Baricentric weighting */
 
28894
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
28895
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
28896
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
28897
                                vof += nvof;                    /* Move to next vertex */
 
28898
                                vwe = wo7;                              /* Baricentric weighting */
 
28899
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
28900
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
28901
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
28902
                        }
 
28903
                }
 
28904
                {
 
28905
                        unsigned int oti;       /* Vertex offset value */
 
28906
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
28907
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
28908
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
28909
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
28910
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
28911
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
28912
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
28913
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
28914
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
28915
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
28916
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
 
28917
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
28918
                }
 
28919
        }
29419
28920
}
29420
28921
#undef IT_WO
29421
28922
#undef IT_IX
29428
28929
imdi_k84_gen(
29429
28930
genspec *g                      /* structure to be initialised */
29430
28931
) {
29431
 
        static unsigned char data[] = {
29432
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
29433
 
                0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
29434
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29435
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
29436
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
29437
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
29438
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
29439
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
29440
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
29441
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
29442
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
29443
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29444
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29445
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29446
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29447
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
29448
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
29449
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
29450
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
29451
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
29452
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
29453
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
29454
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
29455
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
29456
 
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
29457
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
29458
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
29459
 
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
29460
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29461
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29462
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29463
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29464
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
29465
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
29466
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
29467
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
29468
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
29469
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
29470
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29471
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
29472
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
29473
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
29474
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
29475
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
29476
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
29477
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
29478
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
29479
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
29480
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29481
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
29482
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
29483
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x38, 0x5f, 0x36, 0x5f, 
29484
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
29485
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
29486
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
29487
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
29488
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
29489
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
29490
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
29491
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29492
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29493
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29494
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29495
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
29496
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x38, 0x34, 
29497
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29498
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29499
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
29500
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
29501
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
29502
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
29503
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
29504
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
29505
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
29506
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
29507
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
29508
 
                0x00, 0xf0, 0x04, 0x08 
29509
 
        };      /* Structure image */
29510
 
        
29511
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
28932
        static unsigned char data[] = {
 
28933
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
28934
                0x06, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
28935
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28936
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
28937
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
28938
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
28939
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
28940
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
28941
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
28942
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
28943
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
28944
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28945
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28946
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28947
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28948
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
28949
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
28950
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
28951
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
28952
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
28953
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
28954
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
28955
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
28956
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
28957
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
28958
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
28959
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
28960
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
28961
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28962
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28963
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28964
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28965
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
28966
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
28967
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
28968
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
28969
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
28970
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
28971
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28972
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
28973
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
28974
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
28975
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
28976
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
28977
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
28978
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
28979
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
28980
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
28981
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28982
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
28983
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
28984
                0x2c, 0xf3, 0xdc, 0xb7, 0x38, 0x5f, 0x36, 0x5f,
 
28985
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
28986
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
28987
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
28988
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
28989
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
28990
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
28991
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
28992
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28993
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28994
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28995
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28996
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
28997
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x38, 0x34,
 
28998
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
28999
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29000
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
29001
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
29002
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
29003
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
29004
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
29005
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
29006
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
29007
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
29008
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
29009
                0x00, 0xf0, 0x04, 0x08
 
29010
        };      /* Structure image */
 
29011
 
 
29012
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
29512
29013
}
29513
29014
 
29514
29015
static void
29515
29016
imdi_k84_tab(
29516
29017
tabspec *t                      /* structure to be initialised */
29517
29018
) {
29518
 
        static unsigned char data[] = {
29519
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
29520
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
29521
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
29522
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
29523
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
29524
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
29525
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
29526
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
29527
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
29528
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29529
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
29530
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
29531
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
29532
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
29533
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
29534
 
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
29535
 
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
29536
 
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
29537
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29538
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29539
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
29540
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
29541
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
29542
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
29543
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29544
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29545
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29546
 
                0x00, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
29547
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
29548
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
29549
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
29550
 
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 
29551
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
29552
 
        };      /* Structure image */
29553
 
        
29554
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
29019
        static unsigned char data[] = {
 
29020
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
29021
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
29022
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
29023
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
29024
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
29025
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
29026
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
29027
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
29028
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
29029
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29030
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
29031
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
29032
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
29033
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
29034
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
29035
                0x03, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
29036
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
29037
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
29038
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29039
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29040
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
29041
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
29042
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
29043
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
29044
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29045
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29046
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29047
                0x00, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
29048
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
29049
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
29050
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
29051
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
 
29052
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
29053
        };      /* Structure image */
 
29054
 
 
29055
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
29555
29056
}
29556
29057
 
29557
 
 
29558
 
 
29559
 
 
29560
 
 
29561
 
 
29562
29058
/* Integer Multi-Dimensional Interpolation */
29563
29059
/* Interpolation Kernel Code */
29564
29060
/* Generated by cgen */
29567
29063
 
29568
29064
/* see the Licence.txt file for licencing details.*/
29569
29065
 
29570
 
 
29571
29066
/*
29572
29067
   Interpolation kernel specs:
29573
29068
 
29658
29153
void **inp,             /* pointer to input pointers */
29659
29154
unsigned int npix       /* Number of pixels to process */
29660
29155
) {
29661
 
        imdi_imp *p = (imdi_imp *)(s->impl);
29662
 
        unsigned char *ip0 = (unsigned char *)inp[0];
29663
 
        unsigned short *op0 = (unsigned short *)outp[0];
29664
 
        unsigned char *ep = ip0 + npix * 1 ;
29665
 
        pointer it0 = (pointer)p->in_tables[0];
29666
 
        pointer ot0 = (pointer)p->out_tables[0];
29667
 
        pointer ot1 = (pointer)p->out_tables[1];
29668
 
        pointer ot2 = (pointer)p->out_tables[2];
29669
 
        pointer ot3 = (pointer)p->out_tables[3];
29670
 
        pointer ot4 = (pointer)p->out_tables[4];
29671
 
        pointer ot5 = (pointer)p->out_tables[5];
29672
 
        pointer ot6 = (pointer)p->out_tables[6];
29673
 
        pointer sw_base = (pointer)p->sw_table;
29674
 
        pointer im_base = (pointer)p->im_table;
29675
 
        
29676
 
        for(;ip0 < ep; ip0 += 1, op0 += 7) {
29677
 
                unsigned int ova0;      /* Output value accumulator */
29678
 
                unsigned int ova1;      /* Output value accumulator */
29679
 
                unsigned int ova2;      /* Output value accumulator */
29680
 
                unsigned int ova3;      /* Output value partial accumulator */
29681
 
                {
29682
 
                        pointer swp;
29683
 
                        pointer imp;
29684
 
                        {
29685
 
                                unsigned int ti;        /* Simplex+Interpolation index variable */
29686
 
                                
29687
 
                                ti  = IT_IT(it0, ip0[0]);
29688
 
                                
29689
 
                                imp = im_base + IM_O(ti >> 0);          /* Extract interp. index and comp. entry */
29690
 
                                swp = sw_base + SW_O(ti & 0x0); /* Extract simplex index and comp. entry */
29691
 
                        }
29692
 
                        {
29693
 
                                unsigned int vowr;      /* Vertex offset/weight value */
29694
 
                                unsigned int vof;       /* Vertex offset value */
29695
 
                                unsigned int vwe;       /* Vertex weighting */
29696
 
                                
29697
 
                                vowr = SX_WO(swp, 0);   /* Read vertex offset+weighting values */
29698
 
                                vof = (vowr & 0x7f);    /* Extract offset value */
29699
 
                                vwe = (vowr >> 7);      /* Extract weighting value */
29700
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
29701
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
29702
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
29703
 
                                ova3  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
29704
 
                                vowr = SX_WO(swp, 1);   /* Read vertex offset+weighting values */
29705
 
                                vof = (vowr & 0x7f);    /* Extract offset value */
29706
 
                                vwe = (vowr >> 7);      /* Extract weighting value */
29707
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
29708
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
29709
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
29710
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
29711
 
                        }
29712
 
                }
29713
 
                {
29714
 
                        unsigned int oti;       /* Vertex offset value */
29715
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
29716
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
29717
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
29718
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
29719
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
29720
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
29721
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
29722
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
29723
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
29724
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
29725
 
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
29726
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
29727
 
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
29728
 
                        op0[6] = OT_E(ot6, oti);        /* Write result */
29729
 
                }
29730
 
        }
 
29156
        imdi_imp *p = (imdi_imp *)(s->impl);
 
29157
        unsigned char *ip0 = (unsigned char *)inp[0];
 
29158
        unsigned short *op0 = (unsigned short *)outp[0];
 
29159
        unsigned char *ep = ip0 + npix * 1 ;
 
29160
        pointer it0 = (pointer)p->in_tables[0];
 
29161
        pointer ot0 = (pointer)p->out_tables[0];
 
29162
        pointer ot1 = (pointer)p->out_tables[1];
 
29163
        pointer ot2 = (pointer)p->out_tables[2];
 
29164
        pointer ot3 = (pointer)p->out_tables[3];
 
29165
        pointer ot4 = (pointer)p->out_tables[4];
 
29166
        pointer ot5 = (pointer)p->out_tables[5];
 
29167
        pointer ot6 = (pointer)p->out_tables[6];
 
29168
        pointer sw_base = (pointer)p->sw_table;
 
29169
        pointer im_base = (pointer)p->im_table;
 
29170
 
 
29171
        for(;ip0 < ep; ip0 += 1, op0 += 7) {
 
29172
                unsigned int ova0;      /* Output value accumulator */
 
29173
                unsigned int ova1;      /* Output value accumulator */
 
29174
                unsigned int ova2;      /* Output value accumulator */
 
29175
                unsigned int ova3;      /* Output value partial accumulator */
 
29176
                {
 
29177
                        pointer swp;
 
29178
                        pointer imp;
 
29179
                        {
 
29180
                                unsigned int ti;        /* Simplex+Interpolation index variable */
 
29181
 
 
29182
                                ti  = IT_IT(it0, ip0[0]);
 
29183
 
 
29184
                                imp = im_base + IM_O(ti >> 0);          /* Extract interp. index and comp. entry */
 
29185
                                swp = sw_base + SW_O(ti & 0x0); /* Extract simplex index and comp. entry */
 
29186
                        }
 
29187
                        {
 
29188
                                unsigned int vowr;      /* Vertex offset/weight value */
 
29189
                                unsigned int vof;       /* Vertex offset value */
 
29190
                                unsigned int vwe;       /* Vertex weighting */
 
29191
 
 
29192
                                vowr = SX_WO(swp, 0);   /* Read vertex offset+weighting values */
 
29193
                                vof = (vowr & 0x7f);    /* Extract offset value */
 
29194
                                vwe = (vowr >> 7);      /* Extract weighting value */
 
29195
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
29196
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
29197
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
29198
                                ova3  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
29199
                                vowr = SX_WO(swp, 1);   /* Read vertex offset+weighting values */
 
29200
                                vof = (vowr & 0x7f);    /* Extract offset value */
 
29201
                                vwe = (vowr >> 7);      /* Extract weighting value */
 
29202
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
29203
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
29204
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
29205
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
29206
                        }
 
29207
                }
 
29208
                {
 
29209
                        unsigned int oti;       /* Vertex offset value */
 
29210
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
29211
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
29212
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
29213
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
29214
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
29215
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
29216
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
29217
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
29218
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
29219
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
29220
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
 
29221
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
29222
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
 
29223
                        op0[6] = OT_E(ot6, oti);        /* Write result */
 
29224
                }
 
29225
        }
29731
29226
}
29732
29227
#undef IT_IT
29733
29228
#undef SW_O
29741
29236
imdi_k85_gen(
29742
29237
genspec *g                      /* structure to be initialised */
29743
29238
) {
29744
 
        static unsigned char data[] = {
29745
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
29746
 
                0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
29747
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29748
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
29749
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
29750
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
29751
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
29752
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
29753
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
29754
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
29755
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
29756
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29757
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29758
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29759
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29760
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
29761
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
29762
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
29763
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
29764
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
29765
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
29766
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
29767
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
29768
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
29769
 
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
29770
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
29771
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
29772
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
29773
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29774
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29775
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29776
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29777
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
29778
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
29779
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
29780
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
29781
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
29782
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
29783
 
                0xff, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
29784
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
29785
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
29786
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
29787
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
29788
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
29789
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
29790
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
29791
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
29792
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
29793
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29794
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
29795
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
29796
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x31, 0x5f, 0x37, 0x5f, 
29797
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
29798
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
29799
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
29800
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
29801
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
29802
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
29803
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
29804
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29805
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29806
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29807
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29808
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
29809
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x38, 0x35, 
29810
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29811
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29812
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
29813
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
29814
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
29815
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
29816
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
29817
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
29818
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
29819
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
29820
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
29821
 
                0x00, 0xf0, 0x04, 0x08 
29822
 
        };      /* Structure image */
29823
 
        
29824
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
29239
        static unsigned char data[] = {
 
29240
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
29241
                0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
29242
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29243
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
29244
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
29245
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
29246
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
29247
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
29248
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
29249
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
29250
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
29251
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29252
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29253
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29254
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29255
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
29256
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
29257
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
29258
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
29259
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
29260
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
29261
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
29262
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
29263
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
29264
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
29265
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
29266
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
29267
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
29268
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29269
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29270
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29271
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29272
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
29273
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
29274
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
29275
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
29276
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
29277
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
29278
                0xff, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
29279
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
29280
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
29281
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
29282
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
29283
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
29284
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
29285
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
29286
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
29287
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
29288
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29289
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
29290
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
29291
                0x2c, 0xf3, 0xdc, 0xb7, 0x31, 0x5f, 0x37, 0x5f,
 
29292
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
29293
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
29294
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
29295
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
29296
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
29297
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
29298
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
29299
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29300
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29301
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29302
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29303
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
29304
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x38, 0x35,
 
29305
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29306
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29307
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
29308
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
29309
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
29310
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
29311
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
29312
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
29313
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
29314
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
29315
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
29316
                0x00, 0xf0, 0x04, 0x08
 
29317
        };      /* Structure image */
 
29318
 
 
29319
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
29825
29320
}
29826
29321
 
29827
29322
static void
29828
29323
imdi_k85_tab(
29829
29324
tabspec *t                      /* structure to be initialised */
29830
29325
) {
29831
 
        static unsigned char data[] = {
29832
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29833
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
29834
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
29835
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
29836
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
29837
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
29838
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
29839
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
29840
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29841
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29842
 
                0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
29843
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29844
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
29845
 
                0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
29846
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
29847
 
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
29848
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
29849
 
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
29850
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
29851
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
29852
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
29853
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
29854
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
29855
 
                0x06, 0x00, 0x00, 0x00, 0xdc, 0x60, 0xef, 0xb7, 
29856
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29857
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29858
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29859
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
29860
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
29861
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
29862
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
29863
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
29864
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
29865
 
        };      /* Structure image */
29866
 
        
29867
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
29326
        static unsigned char data[] = {
 
29327
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29328
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
29329
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
29330
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
29331
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
29332
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
29333
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
29334
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
29335
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29336
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29337
                0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
29338
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29339
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
29340
                0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
29341
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
29342
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
29343
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
29344
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
29345
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
29346
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
29347
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
29348
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
29349
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
29350
                0x06, 0x00, 0x00, 0x00, 0xdc, 0x60, 0xef, 0xb7,
 
29351
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29352
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29353
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29354
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29355
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
29356
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
29357
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
29358
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
29359
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
29360
        };      /* Structure image */
 
29361
 
 
29362
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
29868
29363
}
29869
29364
 
29870
 
 
29871
 
 
29872
 
 
29873
 
 
29874
 
 
29875
29365
/* Integer Multi-Dimensional Interpolation */
29876
29366
/* Interpolation Kernel Code */
29877
29367
/* Generated by cgen */
29880
29370
 
29881
29371
/* see the Licence.txt file for licencing details.*/
29882
29372
 
29883
 
 
29884
29373
/*
29885
29374
   Interpolation kernel specs:
29886
29375
 
29978
29467
void **inp,             /* pointer to input pointers */
29979
29468
unsigned int npix       /* Number of pixels to process */
29980
29469
) {
29981
 
        imdi_imp *p = (imdi_imp *)(s->impl);
29982
 
        unsigned char *ip0 = (unsigned char *)inp[0];
29983
 
        unsigned short *op0 = (unsigned short *)outp[0];
29984
 
        unsigned char *ep = ip0 + npix * 3 ;
29985
 
        pointer it0 = (pointer)p->in_tables[0];
29986
 
        pointer it1 = (pointer)p->in_tables[1];
29987
 
        pointer it2 = (pointer)p->in_tables[2];
29988
 
        pointer ot0 = (pointer)p->out_tables[0];
29989
 
        pointer ot1 = (pointer)p->out_tables[1];
29990
 
        pointer ot2 = (pointer)p->out_tables[2];
29991
 
        pointer ot3 = (pointer)p->out_tables[3];
29992
 
        pointer ot4 = (pointer)p->out_tables[4];
29993
 
        pointer ot5 = (pointer)p->out_tables[5];
29994
 
        pointer ot6 = (pointer)p->out_tables[6];
29995
 
        pointer sw_base = (pointer)p->sw_table;
29996
 
        pointer im_base = (pointer)p->im_table;
29997
 
        
29998
 
        for(;ip0 < ep; ip0 += 3, op0 += 7) {
29999
 
                unsigned int ova0;      /* Output value accumulator */
30000
 
                unsigned int ova1;      /* Output value accumulator */
30001
 
                unsigned int ova2;      /* Output value accumulator */
30002
 
                unsigned int ova3;      /* Output value partial accumulator */
30003
 
                {
30004
 
                        pointer swp;
30005
 
                        pointer imp;
30006
 
                        {
30007
 
                                unsigned int ti;        /* Simplex+Interpolation index variable */
30008
 
                                
30009
 
                                ti  = IT_IT(it0, ip0[0]);
30010
 
                                ti += IT_IT(it1, ip0[1]);
30011
 
                                ti += IT_IT(it2, ip0[2]);
30012
 
                                
30013
 
                                imp = im_base + IM_O(ti >> 12);         /* Extract interp. index and comp. entry */
30014
 
                                swp = sw_base + SW_O(ti & 0xfff);       /* Extract simplex index and comp. entry */
30015
 
                        }
30016
 
                        {
30017
 
                                unsigned int vof;       /* Vertex offset value */
30018
 
                                unsigned int vwe;       /* Vertex weighting */
30019
 
                                
30020
 
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
30021
 
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
30022
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
30023
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
30024
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
30025
 
                                ova3  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
30026
 
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
30027
 
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
30028
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
30029
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
30030
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
30031
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
30032
 
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
30033
 
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
30034
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
30035
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
30036
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
30037
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
30038
 
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
30039
 
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
30040
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
30041
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
30042
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
30043
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
30044
 
                        }
30045
 
                }
30046
 
                {
30047
 
                        unsigned int oti;       /* Vertex offset value */
30048
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
30049
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
30050
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
30051
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
30052
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
30053
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
30054
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
30055
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
30056
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
30057
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
30058
 
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
30059
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
30060
 
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
30061
 
                        op0[6] = OT_E(ot6, oti);        /* Write result */
30062
 
                }
30063
 
        }
 
29470
        imdi_imp *p = (imdi_imp *)(s->impl);
 
29471
        unsigned char *ip0 = (unsigned char *)inp[0];
 
29472
        unsigned short *op0 = (unsigned short *)outp[0];
 
29473
        unsigned char *ep = ip0 + npix * 3 ;
 
29474
        pointer it0 = (pointer)p->in_tables[0];
 
29475
        pointer it1 = (pointer)p->in_tables[1];
 
29476
        pointer it2 = (pointer)p->in_tables[2];
 
29477
        pointer ot0 = (pointer)p->out_tables[0];
 
29478
        pointer ot1 = (pointer)p->out_tables[1];
 
29479
        pointer ot2 = (pointer)p->out_tables[2];
 
29480
        pointer ot3 = (pointer)p->out_tables[3];
 
29481
        pointer ot4 = (pointer)p->out_tables[4];
 
29482
        pointer ot5 = (pointer)p->out_tables[5];
 
29483
        pointer ot6 = (pointer)p->out_tables[6];
 
29484
        pointer sw_base = (pointer)p->sw_table;
 
29485
        pointer im_base = (pointer)p->im_table;
 
29486
 
 
29487
        for(;ip0 < ep; ip0 += 3, op0 += 7) {
 
29488
                unsigned int ova0;      /* Output value accumulator */
 
29489
                unsigned int ova1;      /* Output value accumulator */
 
29490
                unsigned int ova2;      /* Output value accumulator */
 
29491
                unsigned int ova3;      /* Output value partial accumulator */
 
29492
                {
 
29493
                        pointer swp;
 
29494
                        pointer imp;
 
29495
                        {
 
29496
                                unsigned int ti;        /* Simplex+Interpolation index variable */
 
29497
 
 
29498
                                ti  = IT_IT(it0, ip0[0]);
 
29499
                                ti += IT_IT(it1, ip0[1]);
 
29500
                                ti += IT_IT(it2, ip0[2]);
 
29501
 
 
29502
                                imp = im_base + IM_O(ti >> 12);         /* Extract interp. index and comp. entry */
 
29503
                                swp = sw_base + SW_O(ti & 0xfff);       /* Extract simplex index and comp. entry */
 
29504
                        }
 
29505
                        {
 
29506
                                unsigned int vof;       /* Vertex offset value */
 
29507
                                unsigned int vwe;       /* Vertex weighting */
 
29508
 
 
29509
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
 
29510
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
 
29511
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
29512
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
29513
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
29514
                                ova3  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
29515
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
 
29516
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
 
29517
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
29518
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
29519
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
29520
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
29521
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
 
29522
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
 
29523
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
29524
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
29525
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
29526
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
29527
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
 
29528
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
 
29529
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
29530
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
29531
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
29532
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
29533
                        }
 
29534
                }
 
29535
                {
 
29536
                        unsigned int oti;       /* Vertex offset value */
 
29537
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
29538
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
29539
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
29540
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
29541
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
29542
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
29543
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
29544
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
29545
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
29546
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
29547
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
 
29548
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
29549
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
 
29550
                        op0[6] = OT_E(ot6, oti);        /* Write result */
 
29551
                }
 
29552
        }
30064
29553
}
30065
29554
#undef IT_IT
30066
29555
#undef SW_O
30075
29564
imdi_k86_gen(
30076
29565
genspec *g                      /* structure to be initialised */
30077
29566
) {
30078
 
        static unsigned char data[] = {
30079
 
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
30080
 
                0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
30081
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30082
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
30083
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
30084
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
30085
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
30086
 
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
30087
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
30088
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
30089
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
30090
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30091
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30092
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30093
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30094
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
30095
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
30096
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
30097
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
30098
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
30099
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
30100
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
30101
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
30102
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
30103
 
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
30104
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
30105
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
30106
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
30107
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30108
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30109
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30110
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30111
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
30112
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
30113
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
30114
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
30115
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
30116
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
30117
 
                0x65, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
30118
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
30119
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
30120
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
30121
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
30122
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
30123
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
30124
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
30125
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
30126
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
30127
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30128
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
30129
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
30130
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x33, 0x5f, 0x37, 0x5f, 
30131
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
30132
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
30133
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
30134
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
30135
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
30136
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
30137
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
30138
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30139
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30140
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30141
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30142
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
30143
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x38, 0x36, 
30144
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30145
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30146
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
30147
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
30148
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
30149
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
30150
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
30151
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
30152
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
30153
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
30154
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
30155
 
                0x00, 0xf0, 0x04, 0x08 
30156
 
        };      /* Structure image */
30157
 
        
30158
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
29567
        static unsigned char data[] = {
 
29568
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
29569
                0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
29570
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29571
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
29572
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
29573
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
29574
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
29575
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
29576
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
29577
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
29578
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
29579
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29580
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29581
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29582
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29583
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
29584
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
29585
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
29586
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
29587
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
29588
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
29589
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
29590
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
29591
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
29592
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
29593
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
29594
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
29595
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
29596
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29597
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29598
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29599
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29600
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
29601
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
29602
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
29603
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
29604
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
29605
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
29606
                0x65, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
29607
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
29608
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
29609
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
29610
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
29611
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
29612
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
29613
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
29614
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
29615
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
29616
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29617
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
29618
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
29619
                0x2c, 0xf3, 0xdc, 0xb7, 0x33, 0x5f, 0x37, 0x5f,
 
29620
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
29621
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
29622
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
29623
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
29624
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
29625
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
29626
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
29627
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29628
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29629
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29630
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29631
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
29632
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x38, 0x36,
 
29633
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29634
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29635
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
29636
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
29637
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
29638
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
29639
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
29640
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
29641
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
29642
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
29643
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
29644
                0x00, 0xf0, 0x04, 0x08
 
29645
        };      /* Structure image */
 
29646
 
 
29647
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
30159
29648
}
30160
29649
 
30161
29650
static void
30162
29651
imdi_k86_tab(
30163
29652
tabspec *t                      /* structure to be initialised */
30164
29653
) {
30165
 
        static unsigned char data[] = {
30166
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30167
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
30168
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
30169
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
30170
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
30171
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
30172
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
30173
 
                0x14, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
30174
 
                0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 
30175
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30176
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
30177
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30178
 
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
30179
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
30180
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
30181
 
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
30182
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
30183
 
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
30184
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
30185
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
30186
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
30187
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
30188
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
30189
 
                0x06, 0x00, 0x00, 0x00, 0xdc, 0x60, 0xef, 0xb7, 
30190
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30191
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30192
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30193
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30194
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
30195
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
30196
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
30197
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
30198
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
30199
 
        };      /* Structure image */
30200
 
        
30201
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
29654
        static unsigned char data[] = {
 
29655
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29656
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
29657
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
29658
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
29659
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
29660
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
29661
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
29662
                0x14, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
29663
                0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
 
29664
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29665
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
29666
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29667
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
29668
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
29669
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
29670
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
29671
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
29672
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
29673
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
29674
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
29675
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
29676
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
29677
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
29678
                0x06, 0x00, 0x00, 0x00, 0xdc, 0x60, 0xef, 0xb7,
 
29679
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29680
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29681
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29682
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29683
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
29684
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
29685
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
29686
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
29687
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
29688
        };      /* Structure image */
 
29689
 
 
29690
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
30202
29691
}
30203
29692
 
30204
 
 
30205
 
 
30206
 
 
30207
 
 
30208
 
 
30209
29693
/* Integer Multi-Dimensional Interpolation */
30210
29694
/* Interpolation Kernel Code */
30211
29695
/* Generated by cgen */
30214
29698
 
30215
29699
/* see the Licence.txt file for licencing details.*/
30216
29700
 
30217
 
 
30218
29701
/*
30219
29702
   Interpolation kernel specs:
30220
29703
 
30317
29800
void **inp,             /* pointer to input pointers */
30318
29801
unsigned int npix       /* Number of pixels to process */
30319
29802
) {
30320
 
        imdi_imp *p = (imdi_imp *)(s->impl);
30321
 
        unsigned char *ip0 = (unsigned char *)inp[0];
30322
 
        unsigned short *op0 = (unsigned short *)outp[0];
30323
 
        unsigned char *ep = ip0 + npix * 4 ;
30324
 
        pointer it0 = (pointer)p->in_tables[0];
30325
 
        pointer it1 = (pointer)p->in_tables[1];
30326
 
        pointer it2 = (pointer)p->in_tables[2];
30327
 
        pointer it3 = (pointer)p->in_tables[3];
30328
 
        pointer ot0 = (pointer)p->out_tables[0];
30329
 
        pointer ot1 = (pointer)p->out_tables[1];
30330
 
        pointer ot2 = (pointer)p->out_tables[2];
30331
 
        pointer ot3 = (pointer)p->out_tables[3];
30332
 
        pointer ot4 = (pointer)p->out_tables[4];
30333
 
        pointer ot5 = (pointer)p->out_tables[5];
30334
 
        pointer ot6 = (pointer)p->out_tables[6];
30335
 
        pointer sw_base = (pointer)p->sw_table;
30336
 
        pointer im_base = (pointer)p->im_table;
30337
 
        
30338
 
        for(;ip0 < ep; ip0 += 4, op0 += 7) {
30339
 
                unsigned int ova0;      /* Output value accumulator */
30340
 
                unsigned int ova1;      /* Output value accumulator */
30341
 
                unsigned int ova2;      /* Output value accumulator */
30342
 
                unsigned int ova3;      /* Output value partial accumulator */
30343
 
                {
30344
 
                        pointer swp;
30345
 
                        pointer imp;
30346
 
                        {
30347
 
                                unsigned int ti_s;      /* Simplex index variable */
30348
 
                                unsigned int ti_i;      /* Interpolation index variable */
30349
 
                                
30350
 
                                ti_i  = IT_IX(it0, ip0[0]);
30351
 
                                ti_s  = IT_SX(it0, ip0[0]);
30352
 
                                ti_i += IT_IX(it1, ip0[1]);
30353
 
                                ti_s += IT_SX(it1, ip0[1]);
30354
 
                                ti_i += IT_IX(it2, ip0[2]);
30355
 
                                ti_s += IT_SX(it2, ip0[2]);
30356
 
                                ti_i += IT_IX(it3, ip0[3]);
30357
 
                                ti_s += IT_SX(it3, ip0[3]);
30358
 
                                
30359
 
                                swp = sw_base + SW_O(ti_s);             /* Compute simplex table entry pointer */
30360
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
30361
 
                        }
30362
 
                        {
30363
 
                                unsigned int vof;       /* Vertex offset value */
30364
 
                                unsigned int vwe;       /* Vertex weighting */
30365
 
                                
30366
 
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
30367
 
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
30368
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
30369
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
30370
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
30371
 
                                ova3  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
30372
 
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
30373
 
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
30374
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
30375
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
30376
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
30377
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
30378
 
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
30379
 
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
30380
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
30381
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
30382
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
30383
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
30384
 
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
30385
 
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
30386
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
30387
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
30388
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
30389
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
30390
 
                                vof = SX_VO(swp, 4);    /* Read vertex offset value */
30391
 
                                vwe = SX_WE(swp, 4);    /* Read vertex weighting value */
30392
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
30393
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
30394
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
30395
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
30396
 
                        }
30397
 
                }
30398
 
                {
30399
 
                        unsigned int oti;       /* Vertex offset value */
30400
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
30401
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
30402
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
30403
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
30404
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
30405
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
30406
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
30407
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
30408
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
30409
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
30410
 
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
30411
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
30412
 
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
30413
 
                        op0[6] = OT_E(ot6, oti);        /* Write result */
30414
 
                }
30415
 
        }
 
29803
        imdi_imp *p = (imdi_imp *)(s->impl);
 
29804
        unsigned char *ip0 = (unsigned char *)inp[0];
 
29805
        unsigned short *op0 = (unsigned short *)outp[0];
 
29806
        unsigned char *ep = ip0 + npix * 4 ;
 
29807
        pointer it0 = (pointer)p->in_tables[0];
 
29808
        pointer it1 = (pointer)p->in_tables[1];
 
29809
        pointer it2 = (pointer)p->in_tables[2];
 
29810
        pointer it3 = (pointer)p->in_tables[3];
 
29811
        pointer ot0 = (pointer)p->out_tables[0];
 
29812
        pointer ot1 = (pointer)p->out_tables[1];
 
29813
        pointer ot2 = (pointer)p->out_tables[2];
 
29814
        pointer ot3 = (pointer)p->out_tables[3];
 
29815
        pointer ot4 = (pointer)p->out_tables[4];
 
29816
        pointer ot5 = (pointer)p->out_tables[5];
 
29817
        pointer ot6 = (pointer)p->out_tables[6];
 
29818
        pointer sw_base = (pointer)p->sw_table;
 
29819
        pointer im_base = (pointer)p->im_table;
 
29820
 
 
29821
        for(;ip0 < ep; ip0 += 4, op0 += 7) {
 
29822
                unsigned int ova0;      /* Output value accumulator */
 
29823
                unsigned int ova1;      /* Output value accumulator */
 
29824
                unsigned int ova2;      /* Output value accumulator */
 
29825
                unsigned int ova3;      /* Output value partial accumulator */
 
29826
                {
 
29827
                        pointer swp;
 
29828
                        pointer imp;
 
29829
                        {
 
29830
                                unsigned int ti_s;      /* Simplex index variable */
 
29831
                                unsigned int ti_i;      /* Interpolation index variable */
 
29832
 
 
29833
                                ti_i  = IT_IX(it0, ip0[0]);
 
29834
                                ti_s  = IT_SX(it0, ip0[0]);
 
29835
                                ti_i += IT_IX(it1, ip0[1]);
 
29836
                                ti_s += IT_SX(it1, ip0[1]);
 
29837
                                ti_i += IT_IX(it2, ip0[2]);
 
29838
                                ti_s += IT_SX(it2, ip0[2]);
 
29839
                                ti_i += IT_IX(it3, ip0[3]);
 
29840
                                ti_s += IT_SX(it3, ip0[3]);
 
29841
 
 
29842
                                swp = sw_base + SW_O(ti_s);             /* Compute simplex table entry pointer */
 
29843
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
29844
                        }
 
29845
                        {
 
29846
                                unsigned int vof;       /* Vertex offset value */
 
29847
                                unsigned int vwe;       /* Vertex weighting */
 
29848
 
 
29849
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
 
29850
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
 
29851
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
29852
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
29853
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
29854
                                ova3  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
29855
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
 
29856
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
 
29857
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
29858
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
29859
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
29860
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
29861
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
 
29862
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
 
29863
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
29864
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
29865
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
29866
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
29867
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
 
29868
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
 
29869
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
29870
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
29871
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
29872
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
29873
                                vof = SX_VO(swp, 4);    /* Read vertex offset value */
 
29874
                                vwe = SX_WE(swp, 4);    /* Read vertex weighting value */
 
29875
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
29876
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
29877
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
29878
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
29879
                        }
 
29880
                }
 
29881
                {
 
29882
                        unsigned int oti;       /* Vertex offset value */
 
29883
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
29884
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
29885
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
29886
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
29887
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
29888
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
29889
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
29890
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
29891
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
29892
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
29893
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
 
29894
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
29895
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
 
29896
                        op0[6] = OT_E(ot6, oti);        /* Write result */
 
29897
                }
 
29898
        }
30416
29899
}
30417
29900
#undef IT_IX
30418
29901
#undef IT_SX
30428
29911
imdi_k87_gen(
30429
29912
genspec *g                      /* structure to be initialised */
30430
29913
) {
30431
 
        static unsigned char data[] = {
30432
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
30433
 
                0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
30434
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30435
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
30436
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
30437
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
30438
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
30439
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
30440
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
30441
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
30442
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
30443
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30444
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30445
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30446
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30447
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
30448
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
30449
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
30450
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
30451
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
30452
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
30453
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
30454
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
30455
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
30456
 
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
30457
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
30458
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
30459
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
30460
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30461
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30462
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30463
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30464
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
30465
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
30466
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
30467
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
30468
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
30469
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
30470
 
                0x1f, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 
30471
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
30472
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
30473
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
30474
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
30475
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
30476
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
30477
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
30478
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
30479
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
30480
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30481
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
30482
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
30483
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x34, 0x5f, 0x37, 0x5f, 
30484
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
30485
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
30486
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
30487
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
30488
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
30489
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
30490
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
30491
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30492
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30493
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30494
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30495
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
30496
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x38, 0x37, 
30497
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30498
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30499
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
30500
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
30501
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
30502
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
30503
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
30504
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
30505
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
30506
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
30507
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
30508
 
                0x00, 0xf0, 0x04, 0x08 
30509
 
        };      /* Structure image */
30510
 
        
30511
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
29914
        static unsigned char data[] = {
 
29915
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
29916
                0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
29917
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29918
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
29919
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
29920
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
29921
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
29922
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
29923
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
29924
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
29925
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
29926
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29927
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29928
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29929
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29930
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
29931
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
29932
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
29933
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
29934
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
29935
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
29936
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
29937
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
29938
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
29939
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
29940
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
29941
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
29942
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
29943
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29944
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29945
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29946
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29947
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
29948
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
29949
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
29950
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
29951
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
29952
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
29953
                0x1f, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00,
 
29954
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
29955
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
29956
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
29957
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
29958
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
29959
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
29960
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
29961
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
29962
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
29963
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29964
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
29965
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
29966
                0x2c, 0xf3, 0xdc, 0xb7, 0x34, 0x5f, 0x37, 0x5f,
 
29967
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
29968
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
29969
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
29970
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
29971
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
29972
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
29973
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
29974
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29975
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29976
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29977
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29978
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
29979
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x38, 0x37,
 
29980
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29981
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
29982
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
29983
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
29984
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
29985
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
29986
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
29987
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
29988
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
29989
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
29990
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
29991
                0x00, 0xf0, 0x04, 0x08
 
29992
        };      /* Structure image */
 
29993
 
 
29994
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
30512
29995
}
30513
29996
 
30514
29997
static void
30515
29998
imdi_k87_tab(
30516
29999
tabspec *t                      /* structure to be initialised */
30517
30000
) {
30518
 
        static unsigned char data[] = {
30519
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
30520
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
30521
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
30522
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
30523
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
30524
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
30525
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
30526
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
30527
 
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
30528
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30529
 
                0x14, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
30530
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30531
 
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
30532
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
30533
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
30534
 
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
30535
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
30536
 
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
30537
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
30538
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
30539
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
30540
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
30541
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
30542
 
                0x06, 0x00, 0x00, 0x00, 0xdc, 0x60, 0xef, 0xb7, 
30543
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30544
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30545
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30546
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30547
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
30548
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
30549
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
30550
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
30551
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
30552
 
        };      /* Structure image */
30553
 
        
30554
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
30001
        static unsigned char data[] = {
 
30002
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
30003
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
30004
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
30005
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
30006
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
30007
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
30008
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
30009
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
30010
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
30011
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30012
                0x14, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
30013
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30014
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
30015
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
30016
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
30017
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
30018
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
30019
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
30020
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
30021
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
30022
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
30023
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
30024
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
30025
                0x06, 0x00, 0x00, 0x00, 0xdc, 0x60, 0xef, 0xb7,
 
30026
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30027
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30028
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30029
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30030
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
30031
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
30032
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
30033
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
30034
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
30035
        };      /* Structure image */
 
30036
 
 
30037
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
30555
30038
}
30556
30039
 
30557
 
 
30558
 
 
30559
 
 
30560
 
 
30561
 
 
30562
30040
/* Integer Multi-Dimensional Interpolation */
30563
30041
/* Interpolation Kernel Code */
30564
30042
/* Generated by cgen */
30567
30045
 
30568
30046
/* see the Licence.txt file for licencing details.*/
30569
30047
 
30570
 
 
30571
30048
/*
30572
30049
   Interpolation kernel specs:
30573
30050
 
30665
30142
void **inp,             /* pointer to input pointers */
30666
30143
unsigned int npix       /* Number of pixels to process */
30667
30144
) {
30668
 
        imdi_imp *p = (imdi_imp *)(s->impl);
30669
 
        unsigned char *ip0 = (unsigned char *)inp[0];
30670
 
        unsigned short *op0 = (unsigned short *)outp[0];
30671
 
        unsigned char *ep = ip0 + npix * 5 ;
30672
 
        pointer it0 = (pointer)p->in_tables[0];
30673
 
        pointer it1 = (pointer)p->in_tables[1];
30674
 
        pointer it2 = (pointer)p->in_tables[2];
30675
 
        pointer it3 = (pointer)p->in_tables[3];
30676
 
        pointer it4 = (pointer)p->in_tables[4];
30677
 
        pointer ot0 = (pointer)p->out_tables[0];
30678
 
        pointer ot1 = (pointer)p->out_tables[1];
30679
 
        pointer ot2 = (pointer)p->out_tables[2];
30680
 
        pointer ot3 = (pointer)p->out_tables[3];
30681
 
        pointer ot4 = (pointer)p->out_tables[4];
30682
 
        pointer ot5 = (pointer)p->out_tables[5];
30683
 
        pointer ot6 = (pointer)p->out_tables[6];
30684
 
        pointer im_base = (pointer)p->im_table;
30685
 
        
30686
 
        for(;ip0 < ep; ip0 += 5, op0 += 7) {
30687
 
                unsigned int ova0;      /* Output value accumulator */
30688
 
                unsigned int ova1;      /* Output value accumulator */
30689
 
                unsigned int ova2;      /* Output value accumulator */
30690
 
                unsigned int ova3;      /* Output value partial accumulator */
30691
 
                {
30692
 
                        pointer imp;
30693
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
30694
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
30695
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
30696
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
30697
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
30698
 
                        {
30699
 
                                unsigned int ti_i;      /* Interpolation index variable */
30700
 
                                
30701
 
                                ti_i  = IT_IX(it0, ip0[0]);
30702
 
                                wo0   = IT_WO(it0, ip0[0]);
30703
 
                                ti_i += IT_IX(it1, ip0[1]);
30704
 
                                wo1   = IT_WO(it1, ip0[1]);
30705
 
                                ti_i += IT_IX(it2, ip0[2]);
30706
 
                                wo2   = IT_WO(it2, ip0[2]);
30707
 
                                ti_i += IT_IX(it3, ip0[3]);
30708
 
                                wo3   = IT_WO(it3, ip0[3]);
30709
 
                                ti_i += IT_IX(it4, ip0[4]);
30710
 
                                wo4   = IT_WO(it4, ip0[4]);
30711
 
                                
30712
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
30713
 
                                
30714
 
                                /* Sort weighting values and vertex offset values */
30715
 
                                CEX(wo0, wo1);
30716
 
                                CEX(wo0, wo2);
30717
 
                                CEX(wo0, wo3);
30718
 
                                CEX(wo0, wo4);
30719
 
                                CEX(wo1, wo2);
30720
 
                                CEX(wo1, wo3);
30721
 
                                CEX(wo1, wo4);
30722
 
                                CEX(wo2, wo3);
30723
 
                                CEX(wo2, wo4);
30724
 
                                CEX(wo3, wo4);
30725
 
                        }
30726
 
                        {
30727
 
                                unsigned int nvof;      /* Next vertex offset value */
30728
 
                                unsigned int vof;       /* Vertex offset value */
30729
 
                                unsigned int vwe;       /* Vertex weighting */
30730
 
                                
30731
 
                                vof = 0;                                /* First vertex offset is 0 */
30732
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
30733
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
30734
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
30735
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
30736
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
30737
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
30738
 
                                ova3  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
30739
 
                                vof += nvof;                    /* Move to next vertex */
30740
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
30741
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
30742
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
30743
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
30744
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
30745
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
30746
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
30747
 
                                vof += nvof;                    /* Move to next vertex */
30748
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
30749
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
30750
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
30751
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
30752
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
30753
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
30754
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
30755
 
                                vof += nvof;                    /* Move to next vertex */
30756
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
30757
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
30758
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
30759
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
30760
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
30761
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
30762
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
30763
 
                                vof += nvof;                    /* Move to next vertex */
30764
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
30765
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
30766
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
30767
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
30768
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
30769
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
30770
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
30771
 
                                vof += nvof;                    /* Move to next vertex */
30772
 
                                vwe = wo4;                              /* Baricentric weighting */
30773
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
30774
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
30775
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
30776
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
30777
 
                        }
30778
 
                }
30779
 
                {
30780
 
                        unsigned int oti;       /* Vertex offset value */
30781
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
30782
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
30783
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
30784
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
30785
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
30786
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
30787
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
30788
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
30789
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
30790
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
30791
 
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
30792
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
30793
 
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
30794
 
                        op0[6] = OT_E(ot6, oti);        /* Write result */
30795
 
                }
30796
 
        }
 
30145
        imdi_imp *p = (imdi_imp *)(s->impl);
 
30146
        unsigned char *ip0 = (unsigned char *)inp[0];
 
30147
        unsigned short *op0 = (unsigned short *)outp[0];
 
30148
        unsigned char *ep = ip0 + npix * 5 ;
 
30149
        pointer it0 = (pointer)p->in_tables[0];
 
30150
        pointer it1 = (pointer)p->in_tables[1];
 
30151
        pointer it2 = (pointer)p->in_tables[2];
 
30152
        pointer it3 = (pointer)p->in_tables[3];
 
30153
        pointer it4 = (pointer)p->in_tables[4];
 
30154
        pointer ot0 = (pointer)p->out_tables[0];
 
30155
        pointer ot1 = (pointer)p->out_tables[1];
 
30156
        pointer ot2 = (pointer)p->out_tables[2];
 
30157
        pointer ot3 = (pointer)p->out_tables[3];
 
30158
        pointer ot4 = (pointer)p->out_tables[4];
 
30159
        pointer ot5 = (pointer)p->out_tables[5];
 
30160
        pointer ot6 = (pointer)p->out_tables[6];
 
30161
        pointer im_base = (pointer)p->im_table;
 
30162
 
 
30163
        for(;ip0 < ep; ip0 += 5, op0 += 7) {
 
30164
                unsigned int ova0;      /* Output value accumulator */
 
30165
                unsigned int ova1;      /* Output value accumulator */
 
30166
                unsigned int ova2;      /* Output value accumulator */
 
30167
                unsigned int ova3;      /* Output value partial accumulator */
 
30168
                {
 
30169
                        pointer imp;
 
30170
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
30171
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
30172
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
30173
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
30174
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
30175
                        {
 
30176
                                unsigned int ti_i;      /* Interpolation index variable */
 
30177
 
 
30178
                                ti_i  = IT_IX(it0, ip0[0]);
 
30179
                                wo0   = IT_WO(it0, ip0[0]);
 
30180
                                ti_i += IT_IX(it1, ip0[1]);
 
30181
                                wo1   = IT_WO(it1, ip0[1]);
 
30182
                                ti_i += IT_IX(it2, ip0[2]);
 
30183
                                wo2   = IT_WO(it2, ip0[2]);
 
30184
                                ti_i += IT_IX(it3, ip0[3]);
 
30185
                                wo3   = IT_WO(it3, ip0[3]);
 
30186
                                ti_i += IT_IX(it4, ip0[4]);
 
30187
                                wo4   = IT_WO(it4, ip0[4]);
 
30188
 
 
30189
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
30190
 
 
30191
                                /* Sort weighting values and vertex offset values */
 
30192
                                CEX(wo0, wo1);
 
30193
                                CEX(wo0, wo2);
 
30194
                                CEX(wo0, wo3);
 
30195
                                CEX(wo0, wo4);
 
30196
                                CEX(wo1, wo2);
 
30197
                                CEX(wo1, wo3);
 
30198
                                CEX(wo1, wo4);
 
30199
                                CEX(wo2, wo3);
 
30200
                                CEX(wo2, wo4);
 
30201
                                CEX(wo3, wo4);
 
30202
                        }
 
30203
                        {
 
30204
                                unsigned int nvof;      /* Next vertex offset value */
 
30205
                                unsigned int vof;       /* Vertex offset value */
 
30206
                                unsigned int vwe;       /* Vertex weighting */
 
30207
 
 
30208
                                vof = 0;                                /* First vertex offset is 0 */
 
30209
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
30210
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
30211
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
30212
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
30213
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
30214
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
30215
                                ova3  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
30216
                                vof += nvof;                    /* Move to next vertex */
 
30217
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
30218
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
30219
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
30220
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
30221
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
30222
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
30223
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
30224
                                vof += nvof;                    /* Move to next vertex */
 
30225
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
30226
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
30227
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
30228
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
30229
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
30230
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
30231
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
30232
                                vof += nvof;                    /* Move to next vertex */
 
30233
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
30234
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
30235
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
30236
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
30237
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
30238
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
30239
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
30240
                                vof += nvof;                    /* Move to next vertex */
 
30241
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
30242
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
30243
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
30244
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
30245
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
30246
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
30247
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
30248
                                vof += nvof;                    /* Move to next vertex */
 
30249
                                vwe = wo4;                              /* Baricentric weighting */
 
30250
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
30251
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
30252
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
30253
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
30254
                        }
 
30255
                }
 
30256
                {
 
30257
                        unsigned int oti;       /* Vertex offset value */
 
30258
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
30259
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
30260
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
30261
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
30262
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
30263
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
30264
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
30265
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
30266
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
30267
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
30268
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
 
30269
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
30270
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
 
30271
                        op0[6] = OT_E(ot6, oti);        /* Write result */
 
30272
                }
 
30273
        }
30797
30274
}
30798
30275
#undef IT_WO
30799
30276
#undef IT_IX
30807
30284
imdi_k88_gen(
30808
30285
genspec *g                      /* structure to be initialised */
30809
30286
) {
30810
 
        static unsigned char data[] = {
30811
 
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
30812
 
                0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
30813
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30814
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
30815
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
30816
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
30817
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
30818
 
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
30819
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
30820
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
30821
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
30822
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30823
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30824
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30825
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30826
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
30827
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
30828
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
30829
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
30830
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
30831
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
30832
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
30833
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
30834
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
30835
 
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
30836
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
30837
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
30838
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
30839
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30840
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30841
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30842
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30843
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
30844
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
30845
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
30846
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
30847
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
30848
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
30849
 
                0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30850
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
30851
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
30852
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
30853
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
30854
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
30855
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
30856
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
30857
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
30858
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
30859
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30860
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
30861
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
30862
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x35, 0x5f, 0x37, 0x5f, 
30863
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
30864
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
30865
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
30866
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
30867
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
30868
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
30869
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
30870
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30871
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30872
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30873
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30874
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
30875
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x38, 0x38, 
30876
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30877
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30878
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
30879
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
30880
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
30881
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
30882
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
30883
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
30884
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
30885
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
30886
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
30887
 
                0x00, 0xf0, 0x04, 0x08 
30888
 
        };      /* Structure image */
30889
 
        
30890
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
30287
        static unsigned char data[] = {
 
30288
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
30289
                0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
30290
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30291
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
30292
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
30293
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
30294
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
30295
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
30296
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
30297
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
30298
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
30299
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30300
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30301
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30302
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30303
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
30304
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
30305
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
30306
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
30307
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
30308
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
30309
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
30310
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
30311
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
30312
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
30313
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
30314
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
30315
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
30316
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30317
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30318
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30319
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30320
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
30321
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
30322
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
30323
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
30324
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
30325
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
30326
                0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30327
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
30328
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
30329
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
30330
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
30331
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
30332
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
30333
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
30334
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
30335
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
30336
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30337
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
30338
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
30339
                0x2c, 0xf3, 0xdc, 0xb7, 0x35, 0x5f, 0x37, 0x5f,
 
30340
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
30341
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
30342
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
30343
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
30344
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
30345
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
30346
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
30347
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30348
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30349
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30350
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30351
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
30352
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x38, 0x38,
 
30353
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30354
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30355
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
30356
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
30357
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
30358
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
30359
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
30360
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
30361
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
30362
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
30363
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
30364
                0x00, 0xf0, 0x04, 0x08
 
30365
        };      /* Structure image */
 
30366
 
 
30367
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
30891
30368
}
30892
30369
 
30893
30370
static void
30894
30371
imdi_k88_tab(
30895
30372
tabspec *t                      /* structure to be initialised */
30896
30373
) {
30897
 
        static unsigned char data[] = {
30898
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
30899
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
30900
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
30901
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
30902
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
30903
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
30904
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
30905
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
30906
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
30907
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30908
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
30909
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
30910
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
30911
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
30912
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
30913
 
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
30914
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
30915
 
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
30916
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
30917
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
30918
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
30919
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
30920
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
30921
 
                0x06, 0x00, 0x00, 0x00, 0xdc, 0x60, 0xef, 0xb7, 
30922
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30923
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30924
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30925
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
30926
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
30927
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
30928
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
30929
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
30930
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
30931
 
        };      /* Structure image */
30932
 
        
30933
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
30374
        static unsigned char data[] = {
 
30375
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
30376
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
30377
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
30378
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
30379
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
30380
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
30381
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
30382
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
30383
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
30384
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30385
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
30386
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
30387
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
30388
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
30389
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
30390
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
30391
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
30392
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
30393
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
30394
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
30395
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
30396
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
30397
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
30398
                0x06, 0x00, 0x00, 0x00, 0xdc, 0x60, 0xef, 0xb7,
 
30399
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30400
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30401
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30402
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30403
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
30404
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
30405
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
30406
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
30407
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
30408
        };      /* Structure image */
 
30409
 
 
30410
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
30934
30411
}
30935
30412
 
30936
 
 
30937
 
 
30938
 
 
30939
 
 
30940
 
 
30941
30413
/* Integer Multi-Dimensional Interpolation */
30942
30414
/* Interpolation Kernel Code */
30943
30415
/* Generated by cgen */
30946
30418
 
30947
30419
/* see the Licence.txt file for licencing details.*/
30948
30420
 
30949
 
 
30950
30421
/*
30951
30422
   Interpolation kernel specs:
30952
30423
 
31046
30517
void **inp,             /* pointer to input pointers */
31047
30518
unsigned int npix       /* Number of pixels to process */
31048
30519
) {
31049
 
        imdi_imp *p = (imdi_imp *)(s->impl);
31050
 
        unsigned char *ip0 = (unsigned char *)inp[0];
31051
 
        unsigned short *op0 = (unsigned short *)outp[0];
31052
 
        unsigned char *ep = ip0 + npix * 6 ;
31053
 
        pointer it0 = (pointer)p->in_tables[0];
31054
 
        pointer it1 = (pointer)p->in_tables[1];
31055
 
        pointer it2 = (pointer)p->in_tables[2];
31056
 
        pointer it3 = (pointer)p->in_tables[3];
31057
 
        pointer it4 = (pointer)p->in_tables[4];
31058
 
        pointer it5 = (pointer)p->in_tables[5];
31059
 
        pointer ot0 = (pointer)p->out_tables[0];
31060
 
        pointer ot1 = (pointer)p->out_tables[1];
31061
 
        pointer ot2 = (pointer)p->out_tables[2];
31062
 
        pointer ot3 = (pointer)p->out_tables[3];
31063
 
        pointer ot4 = (pointer)p->out_tables[4];
31064
 
        pointer ot5 = (pointer)p->out_tables[5];
31065
 
        pointer ot6 = (pointer)p->out_tables[6];
31066
 
        pointer im_base = (pointer)p->im_table;
31067
 
        
31068
 
        for(;ip0 < ep; ip0 += 6, op0 += 7) {
31069
 
                unsigned int ova0;      /* Output value accumulator */
31070
 
                unsigned int ova1;      /* Output value accumulator */
31071
 
                unsigned int ova2;      /* Output value accumulator */
31072
 
                unsigned int ova3;      /* Output value partial accumulator */
31073
 
                {
31074
 
                        pointer imp;
31075
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
31076
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
31077
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
31078
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
31079
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
31080
 
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
31081
 
                        {
31082
 
                                unsigned int ti_i;      /* Interpolation index variable */
31083
 
                                
31084
 
                                ti_i  = IT_IX(it0, ip0[0]);
31085
 
                                wo0   = IT_WO(it0, ip0[0]);
31086
 
                                ti_i += IT_IX(it1, ip0[1]);
31087
 
                                wo1   = IT_WO(it1, ip0[1]);
31088
 
                                ti_i += IT_IX(it2, ip0[2]);
31089
 
                                wo2   = IT_WO(it2, ip0[2]);
31090
 
                                ti_i += IT_IX(it3, ip0[3]);
31091
 
                                wo3   = IT_WO(it3, ip0[3]);
31092
 
                                ti_i += IT_IX(it4, ip0[4]);
31093
 
                                wo4   = IT_WO(it4, ip0[4]);
31094
 
                                ti_i += IT_IX(it5, ip0[5]);
31095
 
                                wo5   = IT_WO(it5, ip0[5]);
31096
 
                                
31097
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
31098
 
                                
31099
 
                                /* Sort weighting values and vertex offset values */
31100
 
                                CEX(wo0, wo1);
31101
 
                                CEX(wo0, wo2);
31102
 
                                CEX(wo0, wo3);
31103
 
                                CEX(wo0, wo4);
31104
 
                                CEX(wo0, wo5);
31105
 
                                CEX(wo1, wo2);
31106
 
                                CEX(wo1, wo3);
31107
 
                                CEX(wo1, wo4);
31108
 
                                CEX(wo1, wo5);
31109
 
                                CEX(wo2, wo3);
31110
 
                                CEX(wo2, wo4);
31111
 
                                CEX(wo2, wo5);
31112
 
                                CEX(wo3, wo4);
31113
 
                                CEX(wo3, wo5);
31114
 
                                CEX(wo4, wo5);
31115
 
                        }
31116
 
                        {
31117
 
                                unsigned int nvof;      /* Next vertex offset value */
31118
 
                                unsigned int vof;       /* Vertex offset value */
31119
 
                                unsigned int vwe;       /* Vertex weighting */
31120
 
                                
31121
 
                                vof = 0;                                /* First vertex offset is 0 */
31122
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
31123
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
31124
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
31125
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
31126
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
31127
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
31128
 
                                ova3  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
31129
 
                                vof += nvof;                    /* Move to next vertex */
31130
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
31131
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
31132
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
31133
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
31134
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
31135
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
31136
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
31137
 
                                vof += nvof;                    /* Move to next vertex */
31138
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
31139
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
31140
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
31141
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
31142
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
31143
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
31144
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
31145
 
                                vof += nvof;                    /* Move to next vertex */
31146
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
31147
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
31148
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
31149
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
31150
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
31151
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
31152
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
31153
 
                                vof += nvof;                    /* Move to next vertex */
31154
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
31155
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
31156
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
31157
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
31158
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
31159
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
31160
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
31161
 
                                vof += nvof;                    /* Move to next vertex */
31162
 
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
31163
 
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
31164
 
                                vwe = wo4 - wo5;                /* Baricentric weighting */
31165
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
31166
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
31167
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
31168
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
31169
 
                                vof += nvof;                    /* Move to next vertex */
31170
 
                                vwe = wo5;                              /* Baricentric weighting */
31171
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
31172
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
31173
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
31174
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
31175
 
                        }
31176
 
                }
31177
 
                {
31178
 
                        unsigned int oti;       /* Vertex offset value */
31179
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
31180
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
31181
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
31182
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
31183
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
31184
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
31185
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
31186
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
31187
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
31188
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
31189
 
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
31190
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
31191
 
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
31192
 
                        op0[6] = OT_E(ot6, oti);        /* Write result */
31193
 
                }
31194
 
        }
 
30520
        imdi_imp *p = (imdi_imp *)(s->impl);
 
30521
        unsigned char *ip0 = (unsigned char *)inp[0];
 
30522
        unsigned short *op0 = (unsigned short *)outp[0];
 
30523
        unsigned char *ep = ip0 + npix * 6 ;
 
30524
        pointer it0 = (pointer)p->in_tables[0];
 
30525
        pointer it1 = (pointer)p->in_tables[1];
 
30526
        pointer it2 = (pointer)p->in_tables[2];
 
30527
        pointer it3 = (pointer)p->in_tables[3];
 
30528
        pointer it4 = (pointer)p->in_tables[4];
 
30529
        pointer it5 = (pointer)p->in_tables[5];
 
30530
        pointer ot0 = (pointer)p->out_tables[0];
 
30531
        pointer ot1 = (pointer)p->out_tables[1];
 
30532
        pointer ot2 = (pointer)p->out_tables[2];
 
30533
        pointer ot3 = (pointer)p->out_tables[3];
 
30534
        pointer ot4 = (pointer)p->out_tables[4];
 
30535
        pointer ot5 = (pointer)p->out_tables[5];
 
30536
        pointer ot6 = (pointer)p->out_tables[6];
 
30537
        pointer im_base = (pointer)p->im_table;
 
30538
 
 
30539
        for(;ip0 < ep; ip0 += 6, op0 += 7) {
 
30540
                unsigned int ova0;      /* Output value accumulator */
 
30541
                unsigned int ova1;      /* Output value accumulator */
 
30542
                unsigned int ova2;      /* Output value accumulator */
 
30543
                unsigned int ova3;      /* Output value partial accumulator */
 
30544
                {
 
30545
                        pointer imp;
 
30546
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
30547
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
30548
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
30549
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
30550
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
30551
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
 
30552
                        {
 
30553
                                unsigned int ti_i;      /* Interpolation index variable */
 
30554
 
 
30555
                                ti_i  = IT_IX(it0, ip0[0]);
 
30556
                                wo0   = IT_WO(it0, ip0[0]);
 
30557
                                ti_i += IT_IX(it1, ip0[1]);
 
30558
                                wo1   = IT_WO(it1, ip0[1]);
 
30559
                                ti_i += IT_IX(it2, ip0[2]);
 
30560
                                wo2   = IT_WO(it2, ip0[2]);
 
30561
                                ti_i += IT_IX(it3, ip0[3]);
 
30562
                                wo3   = IT_WO(it3, ip0[3]);
 
30563
                                ti_i += IT_IX(it4, ip0[4]);
 
30564
                                wo4   = IT_WO(it4, ip0[4]);
 
30565
                                ti_i += IT_IX(it5, ip0[5]);
 
30566
                                wo5   = IT_WO(it5, ip0[5]);
 
30567
 
 
30568
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
30569
 
 
30570
                                /* Sort weighting values and vertex offset values */
 
30571
                                CEX(wo0, wo1);
 
30572
                                CEX(wo0, wo2);
 
30573
                                CEX(wo0, wo3);
 
30574
                                CEX(wo0, wo4);
 
30575
                                CEX(wo0, wo5);
 
30576
                                CEX(wo1, wo2);
 
30577
                                CEX(wo1, wo3);
 
30578
                                CEX(wo1, wo4);
 
30579
                                CEX(wo1, wo5);
 
30580
                                CEX(wo2, wo3);
 
30581
                                CEX(wo2, wo4);
 
30582
                                CEX(wo2, wo5);
 
30583
                                CEX(wo3, wo4);
 
30584
                                CEX(wo3, wo5);
 
30585
                                CEX(wo4, wo5);
 
30586
                        }
 
30587
                        {
 
30588
                                unsigned int nvof;      /* Next vertex offset value */
 
30589
                                unsigned int vof;       /* Vertex offset value */
 
30590
                                unsigned int vwe;       /* Vertex weighting */
 
30591
 
 
30592
                                vof = 0;                                /* First vertex offset is 0 */
 
30593
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
30594
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
30595
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
30596
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
30597
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
30598
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
30599
                                ova3  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
30600
                                vof += nvof;                    /* Move to next vertex */
 
30601
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
30602
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
30603
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
30604
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
30605
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
30606
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
30607
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
30608
                                vof += nvof;                    /* Move to next vertex */
 
30609
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
30610
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
30611
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
30612
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
30613
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
30614
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
30615
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
30616
                                vof += nvof;                    /* Move to next vertex */
 
30617
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
30618
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
30619
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
30620
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
30621
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
30622
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
30623
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
30624
                                vof += nvof;                    /* Move to next vertex */
 
30625
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
30626
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
30627
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
30628
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
30629
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
30630
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
30631
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
30632
                                vof += nvof;                    /* Move to next vertex */
 
30633
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
 
30634
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
 
30635
                                vwe = wo4 - wo5;                /* Baricentric weighting */
 
30636
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
30637
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
30638
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
30639
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
30640
                                vof += nvof;                    /* Move to next vertex */
 
30641
                                vwe = wo5;                              /* Baricentric weighting */
 
30642
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
30643
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
30644
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
30645
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
30646
                        }
 
30647
                }
 
30648
                {
 
30649
                        unsigned int oti;       /* Vertex offset value */
 
30650
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
30651
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
30652
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
30653
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
30654
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
30655
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
30656
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
30657
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
30658
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
30659
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
30660
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
 
30661
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
30662
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
 
30663
                        op0[6] = OT_E(ot6, oti);        /* Write result */
 
30664
                }
 
30665
        }
31195
30666
}
31196
30667
#undef IT_WO
31197
30668
#undef IT_IX
31205
30676
imdi_k89_gen(
31206
30677
genspec *g                      /* structure to be initialised */
31207
30678
) {
31208
 
        static unsigned char data[] = {
31209
 
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
31210
 
                0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
31211
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
31212
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
31213
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
31214
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
31215
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
31216
 
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
31217
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
31218
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
31219
 
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
31220
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
31221
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
31222
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
31223
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
31224
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
31225
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
31226
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
31227
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
31228
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
31229
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
31230
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
31231
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
31232
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
31233
 
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
31234
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
31235
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
31236
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
31237
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
31238
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
31239
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
31240
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
31241
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
31242
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
31243
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
31244
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
31245
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
31246
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
31247
 
                0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
31248
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
31249
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
31250
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
31251
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
31252
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
31253
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
31254
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
31255
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
31256
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
31257
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
31258
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
31259
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
31260
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x36, 0x5f, 0x37, 0x5f, 
31261
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
31262
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
31263
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
31264
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
31265
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
31266
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
31267
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
31268
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
31269
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
31270
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
31271
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
31272
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
31273
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x38, 0x39, 
31274
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
31275
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
31276
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
31277
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
31278
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
31279
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
31280
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
31281
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
31282
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
31283
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
31284
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
31285
 
                0x00, 0xf0, 0x04, 0x08 
31286
 
        };      /* Structure image */
31287
 
        
31288
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
30679
        static unsigned char data[] = {
 
30680
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
30681
                0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
30682
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30683
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
30684
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
30685
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
30686
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
30687
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
30688
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
30689
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
30690
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
30691
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30692
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30693
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30694
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30695
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
30696
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
30697
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
30698
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
30699
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
30700
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
30701
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
30702
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
30703
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
30704
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
30705
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
30706
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
30707
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
30708
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30709
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30710
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30711
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30712
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
30713
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
30714
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
30715
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
30716
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
30717
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
30718
                0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30719
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
30720
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
30721
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
30722
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
30723
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
30724
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
30725
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
30726
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
30727
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
30728
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30729
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
30730
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
30731
                0x2c, 0xf3, 0xdc, 0xb7, 0x36, 0x5f, 0x37, 0x5f,
 
30732
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
30733
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
30734
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
30735
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
30736
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
30737
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
30738
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
30739
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30740
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30741
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30742
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30743
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
30744
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x38, 0x39,
 
30745
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30746
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30747
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
30748
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
30749
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
30750
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
30751
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
30752
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
30753
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
30754
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
30755
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
30756
                0x00, 0xf0, 0x04, 0x08
 
30757
        };      /* Structure image */
 
30758
 
 
30759
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
31289
30760
}
31290
30761
 
31291
30762
static void
31292
30763
imdi_k89_tab(
31293
30764
tabspec *t                      /* structure to be initialised */
31294
30765
) {
31295
 
        static unsigned char data[] = {
31296
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
31297
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
31298
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
31299
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
31300
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
31301
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
31302
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
31303
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
31304
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
31305
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
31306
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
31307
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
31308
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
31309
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
31310
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
31311
 
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
31312
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
31313
 
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
31314
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
31315
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
31316
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
31317
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
31318
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
31319
 
                0x06, 0x00, 0x00, 0x00, 0xdc, 0x60, 0xef, 0xb7, 
31320
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
31321
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
31322
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
31323
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
31324
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
31325
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
31326
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
31327
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
31328
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
31329
 
        };      /* Structure image */
31330
 
        
31331
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
30766
        static unsigned char data[] = {
 
30767
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
30768
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
30769
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
30770
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
30771
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
30772
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
30773
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
30774
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
30775
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
30776
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30777
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
30778
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
30779
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
30780
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
30781
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
30782
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
30783
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
30784
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
30785
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
30786
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
30787
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
30788
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
30789
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
30790
                0x06, 0x00, 0x00, 0x00, 0xdc, 0x60, 0xef, 0xb7,
 
30791
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30792
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30793
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30794
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
30795
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
30796
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
30797
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
30798
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
30799
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
30800
        };      /* Structure image */
 
30801
 
 
30802
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
31332
30803
}
31333
30804
 
31334
 
 
31335
 
 
31336
 
 
31337
 
 
31338
 
 
31339
30805
/* Integer Multi-Dimensional Interpolation */
31340
30806
/* Interpolation Kernel Code */
31341
30807
/* Generated by cgen */
31344
30810
 
31345
30811
/* see the Licence.txt file for licencing details.*/
31346
30812
 
31347
 
 
31348
30813
/*
31349
30814
   Interpolation kernel specs:
31350
30815
 
31446
30911
void **inp,             /* pointer to input pointers */
31447
30912
unsigned int npix       /* Number of pixels to process */
31448
30913
) {
31449
 
        imdi_imp *p = (imdi_imp *)(s->impl);
31450
 
        unsigned char *ip0 = (unsigned char *)inp[0];
31451
 
        unsigned short *op0 = (unsigned short *)outp[0];
31452
 
        unsigned char *ep = ip0 + npix * 7 ;
31453
 
        pointer it0 = (pointer)p->in_tables[0];
31454
 
        pointer it1 = (pointer)p->in_tables[1];
31455
 
        pointer it2 = (pointer)p->in_tables[2];
31456
 
        pointer it3 = (pointer)p->in_tables[3];
31457
 
        pointer it4 = (pointer)p->in_tables[4];
31458
 
        pointer it5 = (pointer)p->in_tables[5];
31459
 
        pointer it6 = (pointer)p->in_tables[6];
31460
 
        pointer ot0 = (pointer)p->out_tables[0];
31461
 
        pointer ot1 = (pointer)p->out_tables[1];
31462
 
        pointer ot2 = (pointer)p->out_tables[2];
31463
 
        pointer ot3 = (pointer)p->out_tables[3];
31464
 
        pointer ot4 = (pointer)p->out_tables[4];
31465
 
        pointer ot5 = (pointer)p->out_tables[5];
31466
 
        pointer ot6 = (pointer)p->out_tables[6];
31467
 
        pointer im_base = (pointer)p->im_table;
31468
 
        
31469
 
        for(;ip0 < ep; ip0 += 7, op0 += 7) {
31470
 
                unsigned int ova0;      /* Output value accumulator */
31471
 
                unsigned int ova1;      /* Output value accumulator */
31472
 
                unsigned int ova2;      /* Output value accumulator */
31473
 
                unsigned int ova3;      /* Output value partial accumulator */
31474
 
                {
31475
 
                        pointer imp;
31476
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
31477
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
31478
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
31479
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
31480
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
31481
 
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
31482
 
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
31483
 
                        {
31484
 
                                unsigned int ti_i;      /* Interpolation index variable */
31485
 
                                
31486
 
                                ti_i  = IT_IX(it0, ip0[0]);
31487
 
                                wo0   = IT_WO(it0, ip0[0]);
31488
 
                                ti_i += IT_IX(it1, ip0[1]);
31489
 
                                wo1   = IT_WO(it1, ip0[1]);
31490
 
                                ti_i += IT_IX(it2, ip0[2]);
31491
 
                                wo2   = IT_WO(it2, ip0[2]);
31492
 
                                ti_i += IT_IX(it3, ip0[3]);
31493
 
                                wo3   = IT_WO(it3, ip0[3]);
31494
 
                                ti_i += IT_IX(it4, ip0[4]);
31495
 
                                wo4   = IT_WO(it4, ip0[4]);
31496
 
                                ti_i += IT_IX(it5, ip0[5]);
31497
 
                                wo5   = IT_WO(it5, ip0[5]);
31498
 
                                ti_i += IT_IX(it6, ip0[6]);
31499
 
                                wo6   = IT_WO(it6, ip0[6]);
31500
 
                                
31501
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
31502
 
                                
31503
 
                                /* Sort weighting values and vertex offset values */
31504
 
                                CEX(wo0, wo1);
31505
 
                                CEX(wo0, wo2);
31506
 
                                CEX(wo0, wo3);
31507
 
                                CEX(wo0, wo4);
31508
 
                                CEX(wo0, wo5);
31509
 
                                CEX(wo0, wo6);
31510
 
                                CEX(wo1, wo2);
31511
 
                                CEX(wo1, wo3);
31512
 
                                CEX(wo1, wo4);
31513
 
                                CEX(wo1, wo5);
31514
 
                                CEX(wo1, wo6);
31515
 
                                CEX(wo2, wo3);
31516
 
                                CEX(wo2, wo4);
31517
 
                                CEX(wo2, wo5);
31518
 
                                CEX(wo2, wo6);
31519
 
                                CEX(wo3, wo4);
31520
 
                                CEX(wo3, wo5);
31521
 
                                CEX(wo3, wo6);
31522
 
                                CEX(wo4, wo5);
31523
 
                                CEX(wo4, wo6);
31524
 
                                CEX(wo5, wo6);
31525
 
                        }
31526
 
                        {
31527
 
                                unsigned int nvof;      /* Next vertex offset value */
31528
 
                                unsigned int vof;       /* Vertex offset value */
31529
 
                                unsigned int vwe;       /* Vertex weighting */
31530
 
                                
31531
 
                                vof = 0;                                /* First vertex offset is 0 */
31532
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
31533
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
31534
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
31535
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
31536
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
31537
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
31538
 
                                ova3  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
31539
 
                                vof += nvof;                    /* Move to next vertex */
31540
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
31541
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
31542
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
31543
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
31544
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
31545
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
31546
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
31547
 
                                vof += nvof;                    /* Move to next vertex */
31548
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
31549
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
31550
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
31551
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
31552
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
31553
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
31554
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
31555
 
                                vof += nvof;                    /* Move to next vertex */
31556
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
31557
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
31558
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
31559
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
31560
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
31561
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
31562
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
31563
 
                                vof += nvof;                    /* Move to next vertex */
31564
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
31565
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
31566
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
31567
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
31568
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
31569
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
31570
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
31571
 
                                vof += nvof;                    /* Move to next vertex */
31572
 
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
31573
 
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
31574
 
                                vwe = wo4 - wo5;                /* Baricentric weighting */
31575
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
31576
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
31577
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
31578
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
31579
 
                                vof += nvof;                    /* Move to next vertex */
31580
 
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
31581
 
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
31582
 
                                vwe = wo5 - wo6;                /* Baricentric weighting */
31583
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
31584
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
31585
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
31586
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
31587
 
                                vof += nvof;                    /* Move to next vertex */
31588
 
                                vwe = wo6;                              /* Baricentric weighting */
31589
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
31590
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
31591
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
31592
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
31593
 
                        }
31594
 
                }
31595
 
                {
31596
 
                        unsigned int oti;       /* Vertex offset value */
31597
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
31598
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
31599
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
31600
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
31601
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
31602
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
31603
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
31604
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
31605
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
31606
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
31607
 
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
31608
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
31609
 
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
31610
 
                        op0[6] = OT_E(ot6, oti);        /* Write result */
31611
 
                }
31612
 
        }
 
30914
        imdi_imp *p = (imdi_imp *)(s->impl);
 
30915
        unsigned char *ip0 = (unsigned char *)inp[0];
 
30916
        unsigned short *op0 = (unsigned short *)outp[0];
 
30917
        unsigned char *ep = ip0 + npix * 7 ;
 
30918
        pointer it0 = (pointer)p->in_tables[0];
 
30919
        pointer it1 = (pointer)p->in_tables[1];
 
30920
        pointer it2 = (pointer)p->in_tables[2];
 
30921
        pointer it3 = (pointer)p->in_tables[3];
 
30922
        pointer it4 = (pointer)p->in_tables[4];
 
30923
        pointer it5 = (pointer)p->in_tables[5];
 
30924
        pointer it6 = (pointer)p->in_tables[6];
 
30925
        pointer ot0 = (pointer)p->out_tables[0];
 
30926
        pointer ot1 = (pointer)p->out_tables[1];
 
30927
        pointer ot2 = (pointer)p->out_tables[2];
 
30928
        pointer ot3 = (pointer)p->out_tables[3];
 
30929
        pointer ot4 = (pointer)p->out_tables[4];
 
30930
        pointer ot5 = (pointer)p->out_tables[5];
 
30931
        pointer ot6 = (pointer)p->out_tables[6];
 
30932
        pointer im_base = (pointer)p->im_table;
 
30933
 
 
30934
        for(;ip0 < ep; ip0 += 7, op0 += 7) {
 
30935
                unsigned int ova0;      /* Output value accumulator */
 
30936
                unsigned int ova1;      /* Output value accumulator */
 
30937
                unsigned int ova2;      /* Output value accumulator */
 
30938
                unsigned int ova3;      /* Output value partial accumulator */
 
30939
                {
 
30940
                        pointer imp;
 
30941
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
30942
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
30943
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
30944
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
30945
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
30946
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
 
30947
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
 
30948
                        {
 
30949
                                unsigned int ti_i;      /* Interpolation index variable */
 
30950
 
 
30951
                                ti_i  = IT_IX(it0, ip0[0]);
 
30952
                                wo0   = IT_WO(it0, ip0[0]);
 
30953
                                ti_i += IT_IX(it1, ip0[1]);
 
30954
                                wo1   = IT_WO(it1, ip0[1]);
 
30955
                                ti_i += IT_IX(it2, ip0[2]);
 
30956
                                wo2   = IT_WO(it2, ip0[2]);
 
30957
                                ti_i += IT_IX(it3, ip0[3]);
 
30958
                                wo3   = IT_WO(it3, ip0[3]);
 
30959
                                ti_i += IT_IX(it4, ip0[4]);
 
30960
                                wo4   = IT_WO(it4, ip0[4]);
 
30961
                                ti_i += IT_IX(it5, ip0[5]);
 
30962
                                wo5   = IT_WO(it5, ip0[5]);
 
30963
                                ti_i += IT_IX(it6, ip0[6]);
 
30964
                                wo6   = IT_WO(it6, ip0[6]);
 
30965
 
 
30966
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
30967
 
 
30968
                                /* Sort weighting values and vertex offset values */
 
30969
                                CEX(wo0, wo1);
 
30970
                                CEX(wo0, wo2);
 
30971
                                CEX(wo0, wo3);
 
30972
                                CEX(wo0, wo4);
 
30973
                                CEX(wo0, wo5);
 
30974
                                CEX(wo0, wo6);
 
30975
                                CEX(wo1, wo2);
 
30976
                                CEX(wo1, wo3);
 
30977
                                CEX(wo1, wo4);
 
30978
                                CEX(wo1, wo5);
 
30979
                                CEX(wo1, wo6);
 
30980
                                CEX(wo2, wo3);
 
30981
                                CEX(wo2, wo4);
 
30982
                                CEX(wo2, wo5);
 
30983
                                CEX(wo2, wo6);
 
30984
                                CEX(wo3, wo4);
 
30985
                                CEX(wo3, wo5);
 
30986
                                CEX(wo3, wo6);
 
30987
                                CEX(wo4, wo5);
 
30988
                                CEX(wo4, wo6);
 
30989
                                CEX(wo5, wo6);
 
30990
                        }
 
30991
                        {
 
30992
                                unsigned int nvof;      /* Next vertex offset value */
 
30993
                                unsigned int vof;       /* Vertex offset value */
 
30994
                                unsigned int vwe;       /* Vertex weighting */
 
30995
 
 
30996
                                vof = 0;                                /* First vertex offset is 0 */
 
30997
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
30998
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
30999
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
31000
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
31001
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
31002
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
31003
                                ova3  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
31004
                                vof += nvof;                    /* Move to next vertex */
 
31005
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
31006
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
31007
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
31008
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
31009
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
31010
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
31011
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
31012
                                vof += nvof;                    /* Move to next vertex */
 
31013
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
31014
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
31015
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
31016
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
31017
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
31018
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
31019
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
31020
                                vof += nvof;                    /* Move to next vertex */
 
31021
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
31022
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
31023
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
31024
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
31025
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
31026
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
31027
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
31028
                                vof += nvof;                    /* Move to next vertex */
 
31029
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
31030
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
31031
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
31032
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
31033
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
31034
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
31035
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
31036
                                vof += nvof;                    /* Move to next vertex */
 
31037
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
 
31038
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
 
31039
                                vwe = wo4 - wo5;                /* Baricentric weighting */
 
31040
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
31041
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
31042
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
31043
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
31044
                                vof += nvof;                    /* Move to next vertex */
 
31045
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
 
31046
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
 
31047
                                vwe = wo5 - wo6;                /* Baricentric weighting */
 
31048
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
31049
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
31050
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
31051
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
31052
                                vof += nvof;                    /* Move to next vertex */
 
31053
                                vwe = wo6;                              /* Baricentric weighting */
 
31054
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
31055
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
31056
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
31057
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
31058
                        }
 
31059
                }
 
31060
                {
 
31061
                        unsigned int oti;       /* Vertex offset value */
 
31062
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
31063
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
31064
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
31065
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
31066
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
31067
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
31068
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
31069
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
31070
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
31071
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
31072
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
 
31073
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
31074
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
 
31075
                        op0[6] = OT_E(ot6, oti);        /* Write result */
 
31076
                }
 
31077
        }
31613
31078
}
31614
31079
#undef IT_WO
31615
31080
#undef IT_IX
31623
31088
imdi_k90_gen(
31624
31089
genspec *g                      /* structure to be initialised */
31625
31090
) {
31626
 
        static unsigned char data[] = {
31627
 
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
31628
 
                0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
31629
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
31630
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
31631
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
31632
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
31633
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
31634
 
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
31635
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
31636
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
31637
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
31638
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
31639
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
31640
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
31641
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
31642
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
31643
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
31644
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
31645
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
31646
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
31647
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
31648
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
31649
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
31650
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
31651
 
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
31652
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
31653
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
31654
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
31655
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
31656
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
31657
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
31658
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
31659
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
31660
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
31661
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
31662
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
31663
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
31664
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
31665
 
                0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
31666
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
31667
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
31668
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
31669
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
31670
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
31671
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
31672
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
31673
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
31674
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
31675
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
31676
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
31677
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
31678
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x37, 0x5f, 0x37, 0x5f, 
31679
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
31680
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
31681
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
31682
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
31683
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
31684
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
31685
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
31686
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
31687
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
31688
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
31689
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
31690
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
31691
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x39, 0x30, 
31692
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
31693
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
31694
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
31695
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
31696
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
31697
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
31698
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
31699
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
31700
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
31701
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
31702
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
31703
 
                0x00, 0xf0, 0x04, 0x08 
31704
 
        };      /* Structure image */
31705
 
        
31706
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
31091
        static unsigned char data[] = {
 
31092
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
31093
                0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
31094
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31095
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
31096
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
31097
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
31098
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
31099
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
31100
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
31101
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
31102
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
31103
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31104
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31105
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31106
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31107
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
31108
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
31109
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
31110
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
31111
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
31112
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
31113
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
31114
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
31115
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
31116
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
31117
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
31118
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
31119
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
31120
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31121
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31122
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31123
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31124
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
31125
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
31126
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
31127
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
31128
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
31129
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
31130
                0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31131
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
31132
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
31133
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
31134
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
31135
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
31136
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
31137
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
31138
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
31139
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
31140
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31141
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
31142
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
31143
                0x2c, 0xf3, 0xdc, 0xb7, 0x37, 0x5f, 0x37, 0x5f,
 
31144
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
31145
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
31146
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
31147
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
31148
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
31149
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
31150
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
31151
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31152
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31153
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31154
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31155
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
31156
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x39, 0x30,
 
31157
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31158
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31159
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
31160
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
31161
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
31162
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
31163
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
31164
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
31165
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
31166
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
31167
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
31168
                0x00, 0xf0, 0x04, 0x08
 
31169
        };      /* Structure image */
 
31170
 
 
31171
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
31707
31172
}
31708
31173
 
31709
31174
static void
31710
31175
imdi_k90_tab(
31711
31176
tabspec *t                      /* structure to be initialised */
31712
31177
) {
31713
 
        static unsigned char data[] = {
31714
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
31715
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
31716
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
31717
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
31718
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
31719
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
31720
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
31721
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
31722
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
31723
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
31724
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
31725
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
31726
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
31727
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
31728
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
31729
 
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
31730
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
31731
 
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
31732
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
31733
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
31734
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
31735
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
31736
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
31737
 
                0x06, 0x00, 0x00, 0x00, 0xdc, 0x60, 0xef, 0xb7, 
31738
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
31739
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
31740
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
31741
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
31742
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
31743
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
31744
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
31745
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
31746
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
31747
 
        };      /* Structure image */
31748
 
        
31749
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
31178
        static unsigned char data[] = {
 
31179
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
31180
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
31181
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
31182
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
31183
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
31184
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
31185
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
31186
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
31187
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
31188
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31189
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
31190
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
31191
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
31192
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
31193
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
31194
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
31195
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
31196
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
31197
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
31198
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
31199
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
31200
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
31201
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
31202
                0x06, 0x00, 0x00, 0x00, 0xdc, 0x60, 0xef, 0xb7,
 
31203
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31204
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31205
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31206
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31207
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
31208
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
31209
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
31210
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
31211
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
31212
        };      /* Structure image */
 
31213
 
 
31214
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
31750
31215
}
31751
31216
 
31752
 
 
31753
 
 
31754
 
 
31755
 
 
31756
 
 
31757
31217
/* Integer Multi-Dimensional Interpolation */
31758
31218
/* Interpolation Kernel Code */
31759
31219
/* Generated by cgen */
31762
31222
 
31763
31223
/* see the Licence.txt file for licencing details.*/
31764
31224
 
31765
 
 
31766
31225
/*
31767
31226
   Interpolation kernel specs:
31768
31227
 
31866
31325
void **inp,             /* pointer to input pointers */
31867
31326
unsigned int npix       /* Number of pixels to process */
31868
31327
) {
31869
 
        imdi_imp *p = (imdi_imp *)(s->impl);
31870
 
        unsigned char *ip0 = (unsigned char *)inp[0];
31871
 
        unsigned short *op0 = (unsigned short *)outp[0];
31872
 
        unsigned char *ep = ip0 + npix * 8 ;
31873
 
        pointer it0 = (pointer)p->in_tables[0];
31874
 
        pointer it1 = (pointer)p->in_tables[1];
31875
 
        pointer it2 = (pointer)p->in_tables[2];
31876
 
        pointer it3 = (pointer)p->in_tables[3];
31877
 
        pointer it4 = (pointer)p->in_tables[4];
31878
 
        pointer it5 = (pointer)p->in_tables[5];
31879
 
        pointer it6 = (pointer)p->in_tables[6];
31880
 
        pointer it7 = (pointer)p->in_tables[7];
31881
 
        pointer ot0 = (pointer)p->out_tables[0];
31882
 
        pointer ot1 = (pointer)p->out_tables[1];
31883
 
        pointer ot2 = (pointer)p->out_tables[2];
31884
 
        pointer ot3 = (pointer)p->out_tables[3];
31885
 
        pointer ot4 = (pointer)p->out_tables[4];
31886
 
        pointer ot5 = (pointer)p->out_tables[5];
31887
 
        pointer ot6 = (pointer)p->out_tables[6];
31888
 
        pointer im_base = (pointer)p->im_table;
31889
 
        
31890
 
        for(;ip0 < ep; ip0 += 8, op0 += 7) {
31891
 
                unsigned int ova0;      /* Output value accumulator */
31892
 
                unsigned int ova1;      /* Output value accumulator */
31893
 
                unsigned int ova2;      /* Output value accumulator */
31894
 
                unsigned int ova3;      /* Output value partial accumulator */
31895
 
                {
31896
 
                        pointer imp;
31897
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
31898
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
31899
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
31900
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
31901
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
31902
 
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
31903
 
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
31904
 
                        unsigned int wo7;       /* Weighting value and vertex offset variable */
31905
 
                        {
31906
 
                                unsigned int ti_i;      /* Interpolation index variable */
31907
 
                                
31908
 
                                ti_i  = IT_IX(it0, ip0[0]);
31909
 
                                wo0   = IT_WO(it0, ip0[0]);
31910
 
                                ti_i += IT_IX(it1, ip0[1]);
31911
 
                                wo1   = IT_WO(it1, ip0[1]);
31912
 
                                ti_i += IT_IX(it2, ip0[2]);
31913
 
                                wo2   = IT_WO(it2, ip0[2]);
31914
 
                                ti_i += IT_IX(it3, ip0[3]);
31915
 
                                wo3   = IT_WO(it3, ip0[3]);
31916
 
                                ti_i += IT_IX(it4, ip0[4]);
31917
 
                                wo4   = IT_WO(it4, ip0[4]);
31918
 
                                ti_i += IT_IX(it5, ip0[5]);
31919
 
                                wo5   = IT_WO(it5, ip0[5]);
31920
 
                                ti_i += IT_IX(it6, ip0[6]);
31921
 
                                wo6   = IT_WO(it6, ip0[6]);
31922
 
                                ti_i += IT_IX(it7, ip0[7]);
31923
 
                                wo7   = IT_WO(it7, ip0[7]);
31924
 
                                
31925
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
31926
 
                                
31927
 
                                /* Sort weighting values and vertex offset values */
31928
 
                                CEX(wo0, wo1);
31929
 
                                CEX(wo0, wo2);
31930
 
                                CEX(wo0, wo3);
31931
 
                                CEX(wo0, wo4);
31932
 
                                CEX(wo0, wo5);
31933
 
                                CEX(wo0, wo6);
31934
 
                                CEX(wo0, wo7);
31935
 
                                CEX(wo1, wo2);
31936
 
                                CEX(wo1, wo3);
31937
 
                                CEX(wo1, wo4);
31938
 
                                CEX(wo1, wo5);
31939
 
                                CEX(wo1, wo6);
31940
 
                                CEX(wo1, wo7);
31941
 
                                CEX(wo2, wo3);
31942
 
                                CEX(wo2, wo4);
31943
 
                                CEX(wo2, wo5);
31944
 
                                CEX(wo2, wo6);
31945
 
                                CEX(wo2, wo7);
31946
 
                                CEX(wo3, wo4);
31947
 
                                CEX(wo3, wo5);
31948
 
                                CEX(wo3, wo6);
31949
 
                                CEX(wo3, wo7);
31950
 
                                CEX(wo4, wo5);
31951
 
                                CEX(wo4, wo6);
31952
 
                                CEX(wo4, wo7);
31953
 
                                CEX(wo5, wo6);
31954
 
                                CEX(wo5, wo7);
31955
 
                                CEX(wo6, wo7);
31956
 
                        }
31957
 
                        {
31958
 
                                unsigned int nvof;      /* Next vertex offset value */
31959
 
                                unsigned int vof;       /* Vertex offset value */
31960
 
                                unsigned int vwe;       /* Vertex weighting */
31961
 
                                
31962
 
                                vof = 0;                                /* First vertex offset is 0 */
31963
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
31964
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
31965
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
31966
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
31967
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
31968
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
31969
 
                                ova3  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
31970
 
                                vof += nvof;                    /* Move to next vertex */
31971
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
31972
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
31973
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
31974
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
31975
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
31976
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
31977
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
31978
 
                                vof += nvof;                    /* Move to next vertex */
31979
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
31980
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
31981
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
31982
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
31983
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
31984
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
31985
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
31986
 
                                vof += nvof;                    /* Move to next vertex */
31987
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
31988
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
31989
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
31990
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
31991
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
31992
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
31993
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
31994
 
                                vof += nvof;                    /* Move to next vertex */
31995
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
31996
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
31997
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
31998
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
31999
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
32000
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
32001
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
32002
 
                                vof += nvof;                    /* Move to next vertex */
32003
 
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
32004
 
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
32005
 
                                vwe = wo4 - wo5;                /* Baricentric weighting */
32006
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
32007
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
32008
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
32009
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
32010
 
                                vof += nvof;                    /* Move to next vertex */
32011
 
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
32012
 
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
32013
 
                                vwe = wo5 - wo6;                /* Baricentric weighting */
32014
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
32015
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
32016
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
32017
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
32018
 
                                vof += nvof;                    /* Move to next vertex */
32019
 
                                nvof = (wo7 & 0x7fffff);        /* Extract offset value */
32020
 
                                wo7 = (wo7 >> 23);              /* Extract weighting value */
32021
 
                                vwe = wo6 - wo7;                /* Baricentric weighting */
32022
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
32023
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
32024
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
32025
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
32026
 
                                vof += nvof;                    /* Move to next vertex */
32027
 
                                vwe = wo7;                              /* Baricentric weighting */
32028
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
32029
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
32030
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
32031
 
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
32032
 
                        }
32033
 
                }
32034
 
                {
32035
 
                        unsigned int oti;       /* Vertex offset value */
32036
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
32037
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
32038
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
32039
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
32040
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
32041
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
32042
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
32043
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
32044
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
32045
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
32046
 
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
32047
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
32048
 
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
32049
 
                        op0[6] = OT_E(ot6, oti);        /* Write result */
32050
 
                }
32051
 
        }
 
31328
        imdi_imp *p = (imdi_imp *)(s->impl);
 
31329
        unsigned char *ip0 = (unsigned char *)inp[0];
 
31330
        unsigned short *op0 = (unsigned short *)outp[0];
 
31331
        unsigned char *ep = ip0 + npix * 8 ;
 
31332
        pointer it0 = (pointer)p->in_tables[0];
 
31333
        pointer it1 = (pointer)p->in_tables[1];
 
31334
        pointer it2 = (pointer)p->in_tables[2];
 
31335
        pointer it3 = (pointer)p->in_tables[3];
 
31336
        pointer it4 = (pointer)p->in_tables[4];
 
31337
        pointer it5 = (pointer)p->in_tables[5];
 
31338
        pointer it6 = (pointer)p->in_tables[6];
 
31339
        pointer it7 = (pointer)p->in_tables[7];
 
31340
        pointer ot0 = (pointer)p->out_tables[0];
 
31341
        pointer ot1 = (pointer)p->out_tables[1];
 
31342
        pointer ot2 = (pointer)p->out_tables[2];
 
31343
        pointer ot3 = (pointer)p->out_tables[3];
 
31344
        pointer ot4 = (pointer)p->out_tables[4];
 
31345
        pointer ot5 = (pointer)p->out_tables[5];
 
31346
        pointer ot6 = (pointer)p->out_tables[6];
 
31347
        pointer im_base = (pointer)p->im_table;
 
31348
 
 
31349
        for(;ip0 < ep; ip0 += 8, op0 += 7) {
 
31350
                unsigned int ova0;      /* Output value accumulator */
 
31351
                unsigned int ova1;      /* Output value accumulator */
 
31352
                unsigned int ova2;      /* Output value accumulator */
 
31353
                unsigned int ova3;      /* Output value partial accumulator */
 
31354
                {
 
31355
                        pointer imp;
 
31356
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
31357
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
31358
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
31359
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
31360
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
31361
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
 
31362
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
 
31363
                        unsigned int wo7;       /* Weighting value and vertex offset variable */
 
31364
                        {
 
31365
                                unsigned int ti_i;      /* Interpolation index variable */
 
31366
 
 
31367
                                ti_i  = IT_IX(it0, ip0[0]);
 
31368
                                wo0   = IT_WO(it0, ip0[0]);
 
31369
                                ti_i += IT_IX(it1, ip0[1]);
 
31370
                                wo1   = IT_WO(it1, ip0[1]);
 
31371
                                ti_i += IT_IX(it2, ip0[2]);
 
31372
                                wo2   = IT_WO(it2, ip0[2]);
 
31373
                                ti_i += IT_IX(it3, ip0[3]);
 
31374
                                wo3   = IT_WO(it3, ip0[3]);
 
31375
                                ti_i += IT_IX(it4, ip0[4]);
 
31376
                                wo4   = IT_WO(it4, ip0[4]);
 
31377
                                ti_i += IT_IX(it5, ip0[5]);
 
31378
                                wo5   = IT_WO(it5, ip0[5]);
 
31379
                                ti_i += IT_IX(it6, ip0[6]);
 
31380
                                wo6   = IT_WO(it6, ip0[6]);
 
31381
                                ti_i += IT_IX(it7, ip0[7]);
 
31382
                                wo7   = IT_WO(it7, ip0[7]);
 
31383
 
 
31384
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
31385
 
 
31386
                                /* Sort weighting values and vertex offset values */
 
31387
                                CEX(wo0, wo1);
 
31388
                                CEX(wo0, wo2);
 
31389
                                CEX(wo0, wo3);
 
31390
                                CEX(wo0, wo4);
 
31391
                                CEX(wo0, wo5);
 
31392
                                CEX(wo0, wo6);
 
31393
                                CEX(wo0, wo7);
 
31394
                                CEX(wo1, wo2);
 
31395
                                CEX(wo1, wo3);
 
31396
                                CEX(wo1, wo4);
 
31397
                                CEX(wo1, wo5);
 
31398
                                CEX(wo1, wo6);
 
31399
                                CEX(wo1, wo7);
 
31400
                                CEX(wo2, wo3);
 
31401
                                CEX(wo2, wo4);
 
31402
                                CEX(wo2, wo5);
 
31403
                                CEX(wo2, wo6);
 
31404
                                CEX(wo2, wo7);
 
31405
                                CEX(wo3, wo4);
 
31406
                                CEX(wo3, wo5);
 
31407
                                CEX(wo3, wo6);
 
31408
                                CEX(wo3, wo7);
 
31409
                                CEX(wo4, wo5);
 
31410
                                CEX(wo4, wo6);
 
31411
                                CEX(wo4, wo7);
 
31412
                                CEX(wo5, wo6);
 
31413
                                CEX(wo5, wo7);
 
31414
                                CEX(wo6, wo7);
 
31415
                        }
 
31416
                        {
 
31417
                                unsigned int nvof;      /* Next vertex offset value */
 
31418
                                unsigned int vof;       /* Vertex offset value */
 
31419
                                unsigned int vwe;       /* Vertex weighting */
 
31420
 
 
31421
                                vof = 0;                                /* First vertex offset is 0 */
 
31422
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
31423
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
31424
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
31425
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
31426
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
31427
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
31428
                                ova3  = IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
31429
                                vof += nvof;                    /* Move to next vertex */
 
31430
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
31431
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
31432
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
31433
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
31434
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
31435
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
31436
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
31437
                                vof += nvof;                    /* Move to next vertex */
 
31438
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
31439
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
31440
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
31441
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
31442
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
31443
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
31444
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
31445
                                vof += nvof;                    /* Move to next vertex */
 
31446
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
31447
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
31448
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
31449
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
31450
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
31451
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
31452
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
31453
                                vof += nvof;                    /* Move to next vertex */
 
31454
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
31455
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
31456
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
31457
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
31458
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
31459
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
31460
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
31461
                                vof += nvof;                    /* Move to next vertex */
 
31462
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
 
31463
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
 
31464
                                vwe = wo4 - wo5;                /* Baricentric weighting */
 
31465
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
31466
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
31467
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
31468
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
31469
                                vof += nvof;                    /* Move to next vertex */
 
31470
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
 
31471
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
 
31472
                                vwe = wo5 - wo6;                /* Baricentric weighting */
 
31473
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
31474
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
31475
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
31476
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
31477
                                vof += nvof;                    /* Move to next vertex */
 
31478
                                nvof = (wo7 & 0x7fffff);        /* Extract offset value */
 
31479
                                wo7 = (wo7 >> 23);              /* Extract weighting value */
 
31480
                                vwe = wo6 - wo7;                /* Baricentric weighting */
 
31481
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
31482
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
31483
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
31484
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
31485
                                vof += nvof;                    /* Move to next vertex */
 
31486
                                vwe = wo7;                              /* Baricentric weighting */
 
31487
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
31488
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
31489
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
31490
                                ova3 += IM_PE(imp, vof) * vwe;  /* Accumulate last weighted output values */
 
31491
                        }
 
31492
                }
 
31493
                {
 
31494
                        unsigned int oti;       /* Vertex offset value */
 
31495
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
31496
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
31497
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
31498
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
31499
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
31500
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
31501
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
31502
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
31503
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
31504
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
31505
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
 
31506
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
31507
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
 
31508
                        op0[6] = OT_E(ot6, oti);        /* Write result */
 
31509
                }
 
31510
        }
32052
31511
}
32053
31512
#undef IT_WO
32054
31513
#undef IT_IX
32062
31521
imdi_k91_gen(
32063
31522
genspec *g                      /* structure to be initialised */
32064
31523
) {
32065
 
        static unsigned char data[] = {
32066
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32067
 
                0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
32068
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32069
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32070
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32071
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32072
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32073
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32074
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32075
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32076
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32077
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32078
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32079
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32080
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32081
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32082
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32083
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32084
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32085
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
32086
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
32087
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
32088
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
32089
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
32090
 
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
32091
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
32092
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
32093
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
32094
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32095
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32096
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32097
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32098
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
32099
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
32100
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
32101
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
32102
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
32103
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
32104
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32105
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
32106
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
32107
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
32108
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
32109
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
32110
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
32111
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
32112
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
32113
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
32114
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32115
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
32116
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
32117
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x38, 0x5f, 0x37, 0x5f, 
32118
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
32119
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
32120
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
32121
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
32122
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
32123
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
32124
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
32125
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32126
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32127
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32128
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32129
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
32130
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x39, 0x31, 
32131
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32132
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32133
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
32134
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
32135
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
32136
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
32137
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
32138
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
32139
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
32140
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
32141
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
32142
 
                0x00, 0xf0, 0x04, 0x08 
32143
 
        };      /* Structure image */
32144
 
        
32145
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
31524
        static unsigned char data[] = {
 
31525
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
31526
                0x07, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
31527
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31528
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
31529
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
31530
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
31531
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
31532
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
31533
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
31534
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
31535
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
31536
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31537
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31538
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31539
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31540
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
31541
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
31542
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
31543
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
31544
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
31545
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
31546
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
31547
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
31548
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
31549
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
31550
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
31551
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
31552
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
31553
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31554
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31555
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31556
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31557
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
31558
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
31559
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
31560
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
31561
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
31562
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
31563
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31564
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
31565
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
31566
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
31567
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
31568
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
31569
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
31570
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
31571
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
31572
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
31573
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31574
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
31575
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
31576
                0x2c, 0xf3, 0xdc, 0xb7, 0x38, 0x5f, 0x37, 0x5f,
 
31577
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
31578
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
31579
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
31580
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
31581
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
31582
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
31583
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
31584
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31585
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31586
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31587
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31588
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
31589
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x39, 0x31,
 
31590
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31591
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31592
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
31593
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
31594
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
31595
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
31596
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
31597
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
31598
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
31599
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
31600
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
31601
                0x00, 0xf0, 0x04, 0x08
 
31602
        };      /* Structure image */
 
31603
 
 
31604
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
32146
31605
}
32147
31606
 
32148
31607
static void
32149
31608
imdi_k91_tab(
32150
31609
tabspec *t                      /* structure to be initialised */
32151
31610
) {
32152
 
        static unsigned char data[] = {
32153
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
32154
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
32155
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
32156
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
32157
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
32158
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
32159
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32160
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
32161
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
32162
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32163
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
32164
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
32165
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
32166
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
32167
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
32168
 
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
32169
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32170
 
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
32171
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
32172
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
32173
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
32174
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
32175
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
32176
 
                0x06, 0x00, 0x00, 0x00, 0xdc, 0x60, 0xef, 0xb7, 
32177
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32178
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32179
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32180
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32181
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
32182
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
32183
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
32184
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
32185
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
32186
 
        };      /* Structure image */
32187
 
        
32188
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
31611
        static unsigned char data[] = {
 
31612
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
31613
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
31614
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
31615
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
31616
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
31617
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
31618
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
31619
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
31620
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
31621
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31622
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
31623
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
31624
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
31625
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
31626
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
31627
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
31628
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
31629
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
31630
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
31631
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
31632
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
31633
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
31634
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
31635
                0x06, 0x00, 0x00, 0x00, 0xdc, 0x60, 0xef, 0xb7,
 
31636
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31637
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31638
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31639
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31640
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
31641
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
31642
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
31643
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
31644
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
31645
        };      /* Structure image */
 
31646
 
 
31647
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
32189
31648
}
32190
31649
 
32191
 
 
32192
 
 
32193
 
 
32194
 
 
32195
 
 
32196
31650
/* Integer Multi-Dimensional Interpolation */
32197
31651
/* Interpolation Kernel Code */
32198
31652
/* Generated by cgen */
32201
31655
 
32202
31656
/* see the Licence.txt file for licencing details.*/
32203
31657
 
32204
 
 
32205
31658
/*
32206
31659
   Interpolation kernel specs:
32207
31660
 
32293
31746
void **inp,             /* pointer to input pointers */
32294
31747
unsigned int npix       /* Number of pixels to process */
32295
31748
) {
32296
 
        imdi_imp *p = (imdi_imp *)(s->impl);
32297
 
        unsigned char *ip0 = (unsigned char *)inp[0];
32298
 
        unsigned short *op0 = (unsigned short *)outp[0];
32299
 
        unsigned char *ep = ip0 + npix * 1 ;
32300
 
        pointer it0 = (pointer)p->in_tables[0];
32301
 
        pointer ot0 = (pointer)p->out_tables[0];
32302
 
        pointer ot1 = (pointer)p->out_tables[1];
32303
 
        pointer ot2 = (pointer)p->out_tables[2];
32304
 
        pointer ot3 = (pointer)p->out_tables[3];
32305
 
        pointer ot4 = (pointer)p->out_tables[4];
32306
 
        pointer ot5 = (pointer)p->out_tables[5];
32307
 
        pointer ot6 = (pointer)p->out_tables[6];
32308
 
        pointer ot7 = (pointer)p->out_tables[7];
32309
 
        pointer sw_base = (pointer)p->sw_table;
32310
 
        pointer im_base = (pointer)p->im_table;
32311
 
        
32312
 
        for(;ip0 < ep; ip0 += 1, op0 += 8) {
32313
 
                unsigned int ova0;      /* Output value accumulator */
32314
 
                unsigned int ova1;      /* Output value accumulator */
32315
 
                unsigned int ova2;      /* Output value accumulator */
32316
 
                unsigned int ova3;      /* Output value accumulator */
32317
 
                {
32318
 
                        pointer swp;
32319
 
                        pointer imp;
32320
 
                        {
32321
 
                                unsigned int ti;        /* Simplex+Interpolation index variable */
32322
 
                                
32323
 
                                ti  = IT_IT(it0, ip0[0]);
32324
 
                                
32325
 
                                imp = im_base + IM_O(ti >> 0);          /* Extract interp. index and comp. entry */
32326
 
                                swp = sw_base + SW_O(ti & 0x0); /* Extract simplex index and comp. entry */
32327
 
                        }
32328
 
                        {
32329
 
                                unsigned int vowr;      /* Vertex offset/weight value */
32330
 
                                unsigned int vof;       /* Vertex offset value */
32331
 
                                unsigned int vwe;       /* Vertex weighting */
32332
 
                                
32333
 
                                vowr = SX_WO(swp, 0);   /* Read vertex offset+weighting values */
32334
 
                                vof = (vowr & 0x7f);    /* Extract offset value */
32335
 
                                vwe = (vowr >> 7);      /* Extract weighting value */
32336
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
32337
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
32338
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
32339
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
32340
 
                                vowr = SX_WO(swp, 1);   /* Read vertex offset+weighting values */
32341
 
                                vof = (vowr & 0x7f);    /* Extract offset value */
32342
 
                                vwe = (vowr >> 7);      /* Extract weighting value */
32343
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
32344
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
32345
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
32346
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
32347
 
                        }
32348
 
                }
32349
 
                {
32350
 
                        unsigned int oti;       /* Vertex offset value */
32351
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
32352
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
32353
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
32354
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
32355
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
32356
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
32357
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
32358
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
32359
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
32360
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
32361
 
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
32362
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
32363
 
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
32364
 
                        op0[6] = OT_E(ot6, oti);        /* Write result */
32365
 
                        oti = ((ova3 >> 24) & 0xff);    /* Extract integer part of result */
32366
 
                        op0[7] = OT_E(ot7, oti);        /* Write result */
32367
 
                }
32368
 
        }
 
31749
        imdi_imp *p = (imdi_imp *)(s->impl);
 
31750
        unsigned char *ip0 = (unsigned char *)inp[0];
 
31751
        unsigned short *op0 = (unsigned short *)outp[0];
 
31752
        unsigned char *ep = ip0 + npix * 1 ;
 
31753
        pointer it0 = (pointer)p->in_tables[0];
 
31754
        pointer ot0 = (pointer)p->out_tables[0];
 
31755
        pointer ot1 = (pointer)p->out_tables[1];
 
31756
        pointer ot2 = (pointer)p->out_tables[2];
 
31757
        pointer ot3 = (pointer)p->out_tables[3];
 
31758
        pointer ot4 = (pointer)p->out_tables[4];
 
31759
        pointer ot5 = (pointer)p->out_tables[5];
 
31760
        pointer ot6 = (pointer)p->out_tables[6];
 
31761
        pointer ot7 = (pointer)p->out_tables[7];
 
31762
        pointer sw_base = (pointer)p->sw_table;
 
31763
        pointer im_base = (pointer)p->im_table;
 
31764
 
 
31765
        for(;ip0 < ep; ip0 += 1, op0 += 8) {
 
31766
                unsigned int ova0;      /* Output value accumulator */
 
31767
                unsigned int ova1;      /* Output value accumulator */
 
31768
                unsigned int ova2;      /* Output value accumulator */
 
31769
                unsigned int ova3;      /* Output value accumulator */
 
31770
                {
 
31771
                        pointer swp;
 
31772
                        pointer imp;
 
31773
                        {
 
31774
                                unsigned int ti;        /* Simplex+Interpolation index variable */
 
31775
 
 
31776
                                ti  = IT_IT(it0, ip0[0]);
 
31777
 
 
31778
                                imp = im_base + IM_O(ti >> 0);          /* Extract interp. index and comp. entry */
 
31779
                                swp = sw_base + SW_O(ti & 0x0); /* Extract simplex index and comp. entry */
 
31780
                        }
 
31781
                        {
 
31782
                                unsigned int vowr;      /* Vertex offset/weight value */
 
31783
                                unsigned int vof;       /* Vertex offset value */
 
31784
                                unsigned int vwe;       /* Vertex weighting */
 
31785
 
 
31786
                                vowr = SX_WO(swp, 0);   /* Read vertex offset+weighting values */
 
31787
                                vof = (vowr & 0x7f);    /* Extract offset value */
 
31788
                                vwe = (vowr >> 7);      /* Extract weighting value */
 
31789
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
31790
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
31791
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
31792
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
31793
                                vowr = SX_WO(swp, 1);   /* Read vertex offset+weighting values */
 
31794
                                vof = (vowr & 0x7f);    /* Extract offset value */
 
31795
                                vwe = (vowr >> 7);      /* Extract weighting value */
 
31796
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
31797
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
31798
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
31799
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
31800
                        }
 
31801
                }
 
31802
                {
 
31803
                        unsigned int oti;       /* Vertex offset value */
 
31804
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
31805
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
31806
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
31807
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
31808
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
31809
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
31810
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
31811
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
31812
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
31813
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
31814
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
 
31815
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
31816
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
 
31817
                        op0[6] = OT_E(ot6, oti);        /* Write result */
 
31818
                        oti = ((ova3 >> 24) & 0xff);    /* Extract integer part of result */
 
31819
                        op0[7] = OT_E(ot7, oti);        /* Write result */
 
31820
                }
 
31821
        }
32369
31822
}
32370
31823
#undef IT_IT
32371
31824
#undef SW_O
32378
31831
imdi_k92_gen(
32379
31832
genspec *g                      /* structure to be initialised */
32380
31833
) {
32381
 
        static unsigned char data[] = {
32382
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
32383
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
32384
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32385
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32386
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32387
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32388
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32389
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
32390
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32391
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32392
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32393
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32394
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32395
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32396
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32397
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32398
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32399
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32400
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32401
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
32402
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
32403
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
32404
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
32405
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
32406
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32407
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32408
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32409
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32410
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32411
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32412
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32413
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32414
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
32415
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
32416
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
32417
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
32418
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
32419
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
32420
 
                0xff, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
32421
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
32422
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
32423
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
32424
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
32425
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
32426
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
32427
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
32428
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
32429
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
32430
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32431
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
32432
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
32433
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x31, 0x5f, 0x38, 0x5f, 
32434
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
32435
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
32436
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
32437
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
32438
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
32439
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
32440
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
32441
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32442
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32443
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32444
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32445
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
32446
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x39, 0x32, 
32447
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32448
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32449
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
32450
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
32451
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
32452
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
32453
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
32454
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
32455
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
32456
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
32457
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
32458
 
                0x00, 0xf0, 0x04, 0x08 
32459
 
        };      /* Structure image */
32460
 
        
32461
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
31834
        static unsigned char data[] = {
 
31835
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
31836
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
31837
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31838
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
31839
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
31840
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
31841
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
31842
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
31843
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
31844
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
31845
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
31846
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31847
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31848
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31849
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31850
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
31851
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
31852
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
31853
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
31854
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
31855
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
31856
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
31857
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
31858
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
31859
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
31860
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
31861
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
31862
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
31863
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31864
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31865
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31866
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31867
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
31868
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
31869
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
31870
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
31871
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
31872
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
31873
                0xff, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
31874
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
31875
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
31876
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
31877
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
31878
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
31879
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
31880
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
31881
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
31882
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
31883
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31884
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
31885
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
31886
                0x2c, 0xf3, 0xdc, 0xb7, 0x31, 0x5f, 0x38, 0x5f,
 
31887
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
31888
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
31889
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
31890
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
31891
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
31892
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
31893
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
31894
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31895
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31896
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31897
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31898
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
31899
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x39, 0x32,
 
31900
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31901
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31902
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
31903
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
31904
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
31905
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
31906
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
31907
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
31908
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
31909
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
31910
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
31911
                0x00, 0xf0, 0x04, 0x08
 
31912
        };      /* Structure image */
 
31913
 
 
31914
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
32462
31915
}
32463
31916
 
32464
31917
static void
32465
31918
imdi_k92_tab(
32466
31919
tabspec *t                      /* structure to be initialised */
32467
31920
) {
32468
 
        static unsigned char data[] = {
32469
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32470
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
32471
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
32472
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
32473
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
32474
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
32475
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
32476
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
32477
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32478
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32479
 
                0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
32480
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32481
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
32482
 
                0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
32483
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
32484
 
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
32485
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32486
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
32487
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32488
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32489
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
32490
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
32491
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
32492
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
32493
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32494
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32495
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32496
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32497
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
32498
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
32499
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
32500
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
32501
 
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff 
32502
 
        };      /* Structure image */
32503
 
        
32504
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
31921
        static unsigned char data[] = {
 
31922
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31923
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
31924
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
31925
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
31926
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
31927
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
31928
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
31929
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
31930
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31931
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31932
                0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
31933
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31934
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
31935
                0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
31936
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
31937
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
31938
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
31939
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
31940
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31941
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31942
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
31943
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
31944
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
31945
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
31946
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31947
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31948
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31949
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
31950
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
31951
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
31952
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
31953
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
31954
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff
 
31955
        };      /* Structure image */
 
31956
 
 
31957
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
32505
31958
}
32506
31959
 
32507
 
 
32508
 
 
32509
 
 
32510
 
 
32511
 
 
32512
31960
/* Integer Multi-Dimensional Interpolation */
32513
31961
/* Interpolation Kernel Code */
32514
31962
/* Generated by cgen */
32517
31965
 
32518
31966
/* see the Licence.txt file for licencing details.*/
32519
31967
 
32520
 
 
32521
31968
/*
32522
31969
   Interpolation kernel specs:
32523
31970
 
32616
32063
void **inp,             /* pointer to input pointers */
32617
32064
unsigned int npix       /* Number of pixels to process */
32618
32065
) {
32619
 
        imdi_imp *p = (imdi_imp *)(s->impl);
32620
 
        unsigned char *ip0 = (unsigned char *)inp[0];
32621
 
        unsigned short *op0 = (unsigned short *)outp[0];
32622
 
        unsigned char *ep = ip0 + npix * 3 ;
32623
 
        pointer it0 = (pointer)p->in_tables[0];
32624
 
        pointer it1 = (pointer)p->in_tables[1];
32625
 
        pointer it2 = (pointer)p->in_tables[2];
32626
 
        pointer ot0 = (pointer)p->out_tables[0];
32627
 
        pointer ot1 = (pointer)p->out_tables[1];
32628
 
        pointer ot2 = (pointer)p->out_tables[2];
32629
 
        pointer ot3 = (pointer)p->out_tables[3];
32630
 
        pointer ot4 = (pointer)p->out_tables[4];
32631
 
        pointer ot5 = (pointer)p->out_tables[5];
32632
 
        pointer ot6 = (pointer)p->out_tables[6];
32633
 
        pointer ot7 = (pointer)p->out_tables[7];
32634
 
        pointer sw_base = (pointer)p->sw_table;
32635
 
        pointer im_base = (pointer)p->im_table;
32636
 
        
32637
 
        for(;ip0 < ep; ip0 += 3, op0 += 8) {
32638
 
                unsigned int ova0;      /* Output value accumulator */
32639
 
                unsigned int ova1;      /* Output value accumulator */
32640
 
                unsigned int ova2;      /* Output value accumulator */
32641
 
                unsigned int ova3;      /* Output value accumulator */
32642
 
                {
32643
 
                        pointer swp;
32644
 
                        pointer imp;
32645
 
                        {
32646
 
                                unsigned int ti;        /* Simplex+Interpolation index variable */
32647
 
                                
32648
 
                                ti  = IT_IT(it0, ip0[0]);
32649
 
                                ti += IT_IT(it1, ip0[1]);
32650
 
                                ti += IT_IT(it2, ip0[2]);
32651
 
                                
32652
 
                                imp = im_base + IM_O(ti >> 12);         /* Extract interp. index and comp. entry */
32653
 
                                swp = sw_base + SW_O(ti & 0xfff);       /* Extract simplex index and comp. entry */
32654
 
                        }
32655
 
                        {
32656
 
                                unsigned int vof;       /* Vertex offset value */
32657
 
                                unsigned int vwe;       /* Vertex weighting */
32658
 
                                
32659
 
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
32660
 
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
32661
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
32662
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
32663
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
32664
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
32665
 
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
32666
 
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
32667
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
32668
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
32669
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
32670
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
32671
 
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
32672
 
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
32673
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
32674
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
32675
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
32676
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
32677
 
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
32678
 
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
32679
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
32680
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
32681
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
32682
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
32683
 
                        }
32684
 
                }
32685
 
                {
32686
 
                        unsigned int oti;       /* Vertex offset value */
32687
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
32688
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
32689
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
32690
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
32691
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
32692
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
32693
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
32694
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
32695
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
32696
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
32697
 
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
32698
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
32699
 
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
32700
 
                        op0[6] = OT_E(ot6, oti);        /* Write result */
32701
 
                        oti = ((ova3 >> 24) & 0xff);    /* Extract integer part of result */
32702
 
                        op0[7] = OT_E(ot7, oti);        /* Write result */
32703
 
                }
32704
 
        }
 
32066
        imdi_imp *p = (imdi_imp *)(s->impl);
 
32067
        unsigned char *ip0 = (unsigned char *)inp[0];
 
32068
        unsigned short *op0 = (unsigned short *)outp[0];
 
32069
        unsigned char *ep = ip0 + npix * 3 ;
 
32070
        pointer it0 = (pointer)p->in_tables[0];
 
32071
        pointer it1 = (pointer)p->in_tables[1];
 
32072
        pointer it2 = (pointer)p->in_tables[2];
 
32073
        pointer ot0 = (pointer)p->out_tables[0];
 
32074
        pointer ot1 = (pointer)p->out_tables[1];
 
32075
        pointer ot2 = (pointer)p->out_tables[2];
 
32076
        pointer ot3 = (pointer)p->out_tables[3];
 
32077
        pointer ot4 = (pointer)p->out_tables[4];
 
32078
        pointer ot5 = (pointer)p->out_tables[5];
 
32079
        pointer ot6 = (pointer)p->out_tables[6];
 
32080
        pointer ot7 = (pointer)p->out_tables[7];
 
32081
        pointer sw_base = (pointer)p->sw_table;
 
32082
        pointer im_base = (pointer)p->im_table;
 
32083
 
 
32084
        for(;ip0 < ep; ip0 += 3, op0 += 8) {
 
32085
                unsigned int ova0;      /* Output value accumulator */
 
32086
                unsigned int ova1;      /* Output value accumulator */
 
32087
                unsigned int ova2;      /* Output value accumulator */
 
32088
                unsigned int ova3;      /* Output value accumulator */
 
32089
                {
 
32090
                        pointer swp;
 
32091
                        pointer imp;
 
32092
                        {
 
32093
                                unsigned int ti;        /* Simplex+Interpolation index variable */
 
32094
 
 
32095
                                ti  = IT_IT(it0, ip0[0]);
 
32096
                                ti += IT_IT(it1, ip0[1]);
 
32097
                                ti += IT_IT(it2, ip0[2]);
 
32098
 
 
32099
                                imp = im_base + IM_O(ti >> 12);         /* Extract interp. index and comp. entry */
 
32100
                                swp = sw_base + SW_O(ti & 0xfff);       /* Extract simplex index and comp. entry */
 
32101
                        }
 
32102
                        {
 
32103
                                unsigned int vof;       /* Vertex offset value */
 
32104
                                unsigned int vwe;       /* Vertex weighting */
 
32105
 
 
32106
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
 
32107
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
 
32108
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
32109
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
32110
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
32111
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
32112
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
 
32113
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
 
32114
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
32115
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
32116
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
32117
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
32118
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
 
32119
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
 
32120
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
32121
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
32122
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
32123
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
32124
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
 
32125
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
 
32126
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
32127
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
32128
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
32129
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
32130
                        }
 
32131
                }
 
32132
                {
 
32133
                        unsigned int oti;       /* Vertex offset value */
 
32134
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
32135
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
32136
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
32137
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
32138
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
32139
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
32140
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
32141
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
32142
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
32143
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
32144
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
 
32145
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
32146
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
 
32147
                        op0[6] = OT_E(ot6, oti);        /* Write result */
 
32148
                        oti = ((ova3 >> 24) & 0xff);    /* Extract integer part of result */
 
32149
                        op0[7] = OT_E(ot7, oti);        /* Write result */
 
32150
                }
 
32151
        }
32705
32152
}
32706
32153
#undef IT_IT
32707
32154
#undef SW_O
32715
32162
imdi_k93_gen(
32716
32163
genspec *g                      /* structure to be initialised */
32717
32164
) {
32718
 
        static unsigned char data[] = {
32719
 
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
32720
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
32721
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32722
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32723
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32724
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32725
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32726
 
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
32727
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
32728
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32729
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32730
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32731
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32732
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32733
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32734
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32735
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32736
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32737
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32738
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
32739
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
32740
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
32741
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
32742
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
32743
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32744
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32745
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32746
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32747
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32748
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32749
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32750
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32751
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
32752
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
32753
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
32754
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
32755
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
32756
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
32757
 
                0x65, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
32758
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
32759
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
32760
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
32761
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
32762
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
32763
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
32764
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
32765
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
32766
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
32767
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32768
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
32769
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
32770
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x33, 0x5f, 0x38, 0x5f, 
32771
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
32772
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
32773
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
32774
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
32775
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
32776
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
32777
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
32778
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32779
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32780
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32781
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32782
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
32783
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x39, 0x33, 
32784
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32785
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32786
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
32787
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
32788
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
32789
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
32790
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
32791
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
32792
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
32793
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
32794
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
32795
 
                0x00, 0xf0, 0x04, 0x08 
32796
 
        };      /* Structure image */
32797
 
        
32798
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
32165
        static unsigned char data[] = {
 
32166
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
32167
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
32168
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32169
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32170
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32171
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32172
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32173
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
32174
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
32175
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32176
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32177
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32178
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32179
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32180
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32181
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32182
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32183
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32184
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32185
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
32186
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
32187
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
32188
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
32189
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
32190
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32191
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32192
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32193
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32194
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32195
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32196
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32197
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32198
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
32199
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
32200
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
32201
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
32202
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
32203
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
32204
                0x65, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
32205
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
32206
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
32207
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
32208
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
32209
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
32210
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
32211
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
32212
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
32213
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
32214
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32215
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
32216
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
32217
                0x2c, 0xf3, 0xdc, 0xb7, 0x33, 0x5f, 0x38, 0x5f,
 
32218
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
32219
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
32220
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
32221
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
32222
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
32223
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
32224
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
32225
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32226
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32227
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32228
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32229
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
32230
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x39, 0x33,
 
32231
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32232
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32233
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
32234
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
32235
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
32236
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
32237
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
32238
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
32239
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
32240
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
32241
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
32242
                0x00, 0xf0, 0x04, 0x08
 
32243
        };      /* Structure image */
 
32244
 
 
32245
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
32799
32246
}
32800
32247
 
32801
32248
static void
32802
32249
imdi_k93_tab(
32803
32250
tabspec *t                      /* structure to be initialised */
32804
32251
) {
32805
 
        static unsigned char data[] = {
32806
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32807
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
32808
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
32809
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
32810
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
32811
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
32812
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
32813
 
                0x14, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
32814
 
                0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 
32815
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32816
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
32817
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32818
 
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
32819
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
32820
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
32821
 
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
32822
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
32823
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
32824
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32825
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32826
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
32827
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
32828
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
32829
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
32830
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32831
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32832
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32833
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
32834
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
32835
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
32836
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
32837
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
32838
 
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff 
32839
 
        };      /* Structure image */
32840
 
        
32841
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
32252
        static unsigned char data[] = {
 
32253
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32254
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
32255
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
32256
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
32257
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
32258
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
32259
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
32260
                0x14, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
32261
                0x00, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
 
32262
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32263
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
32264
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32265
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
32266
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
32267
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
32268
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
32269
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32270
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
32271
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32272
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32273
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
32274
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
32275
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
32276
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
32277
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32278
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32279
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32280
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32281
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
32282
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
32283
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
32284
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
32285
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff
 
32286
        };      /* Structure image */
 
32287
 
 
32288
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
32842
32289
}
32843
32290
 
32844
 
 
32845
 
 
32846
 
 
32847
 
 
32848
 
 
32849
32291
/* Integer Multi-Dimensional Interpolation */
32850
32292
/* Interpolation Kernel Code */
32851
32293
/* Generated by cgen */
32854
32296
 
32855
32297
/* see the Licence.txt file for licencing details.*/
32856
32298
 
32857
 
 
32858
32299
/*
32859
32300
   Interpolation kernel specs:
32860
32301
 
32958
32399
void **inp,             /* pointer to input pointers */
32959
32400
unsigned int npix       /* Number of pixels to process */
32960
32401
) {
32961
 
        imdi_imp *p = (imdi_imp *)(s->impl);
32962
 
        unsigned char *ip0 = (unsigned char *)inp[0];
32963
 
        unsigned short *op0 = (unsigned short *)outp[0];
32964
 
        unsigned char *ep = ip0 + npix * 4 ;
32965
 
        pointer it0 = (pointer)p->in_tables[0];
32966
 
        pointer it1 = (pointer)p->in_tables[1];
32967
 
        pointer it2 = (pointer)p->in_tables[2];
32968
 
        pointer it3 = (pointer)p->in_tables[3];
32969
 
        pointer ot0 = (pointer)p->out_tables[0];
32970
 
        pointer ot1 = (pointer)p->out_tables[1];
32971
 
        pointer ot2 = (pointer)p->out_tables[2];
32972
 
        pointer ot3 = (pointer)p->out_tables[3];
32973
 
        pointer ot4 = (pointer)p->out_tables[4];
32974
 
        pointer ot5 = (pointer)p->out_tables[5];
32975
 
        pointer ot6 = (pointer)p->out_tables[6];
32976
 
        pointer ot7 = (pointer)p->out_tables[7];
32977
 
        pointer sw_base = (pointer)p->sw_table;
32978
 
        pointer im_base = (pointer)p->im_table;
32979
 
        
32980
 
        for(;ip0 < ep; ip0 += 4, op0 += 8) {
32981
 
                unsigned int ova0;      /* Output value accumulator */
32982
 
                unsigned int ova1;      /* Output value accumulator */
32983
 
                unsigned int ova2;      /* Output value accumulator */
32984
 
                unsigned int ova3;      /* Output value accumulator */
32985
 
                {
32986
 
                        pointer swp;
32987
 
                        pointer imp;
32988
 
                        {
32989
 
                                unsigned int ti_s;      /* Simplex index variable */
32990
 
                                unsigned int ti_i;      /* Interpolation index variable */
32991
 
                                
32992
 
                                ti_i  = IT_IX(it0, ip0[0]);
32993
 
                                ti_s  = IT_SX(it0, ip0[0]);
32994
 
                                ti_i += IT_IX(it1, ip0[1]);
32995
 
                                ti_s += IT_SX(it1, ip0[1]);
32996
 
                                ti_i += IT_IX(it2, ip0[2]);
32997
 
                                ti_s += IT_SX(it2, ip0[2]);
32998
 
                                ti_i += IT_IX(it3, ip0[3]);
32999
 
                                ti_s += IT_SX(it3, ip0[3]);
33000
 
                                
33001
 
                                swp = sw_base + SW_O(ti_s);             /* Compute simplex table entry pointer */
33002
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
33003
 
                        }
33004
 
                        {
33005
 
                                unsigned int vof;       /* Vertex offset value */
33006
 
                                unsigned int vwe;       /* Vertex weighting */
33007
 
                                
33008
 
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
33009
 
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
33010
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
33011
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
33012
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
33013
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
33014
 
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
33015
 
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
33016
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
33017
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
33018
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
33019
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
33020
 
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
33021
 
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
33022
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
33023
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
33024
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
33025
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
33026
 
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
33027
 
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
33028
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
33029
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
33030
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
33031
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
33032
 
                                vof = SX_VO(swp, 4);    /* Read vertex offset value */
33033
 
                                vwe = SX_WE(swp, 4);    /* Read vertex weighting value */
33034
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
33035
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
33036
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
33037
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
33038
 
                        }
33039
 
                }
33040
 
                {
33041
 
                        unsigned int oti;       /* Vertex offset value */
33042
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
33043
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
33044
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
33045
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
33046
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
33047
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
33048
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
33049
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
33050
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
33051
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
33052
 
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
33053
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
33054
 
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
33055
 
                        op0[6] = OT_E(ot6, oti);        /* Write result */
33056
 
                        oti = ((ova3 >> 24) & 0xff);    /* Extract integer part of result */
33057
 
                        op0[7] = OT_E(ot7, oti);        /* Write result */
33058
 
                }
33059
 
        }
 
32402
        imdi_imp *p = (imdi_imp *)(s->impl);
 
32403
        unsigned char *ip0 = (unsigned char *)inp[0];
 
32404
        unsigned short *op0 = (unsigned short *)outp[0];
 
32405
        unsigned char *ep = ip0 + npix * 4 ;
 
32406
        pointer it0 = (pointer)p->in_tables[0];
 
32407
        pointer it1 = (pointer)p->in_tables[1];
 
32408
        pointer it2 = (pointer)p->in_tables[2];
 
32409
        pointer it3 = (pointer)p->in_tables[3];
 
32410
        pointer ot0 = (pointer)p->out_tables[0];
 
32411
        pointer ot1 = (pointer)p->out_tables[1];
 
32412
        pointer ot2 = (pointer)p->out_tables[2];
 
32413
        pointer ot3 = (pointer)p->out_tables[3];
 
32414
        pointer ot4 = (pointer)p->out_tables[4];
 
32415
        pointer ot5 = (pointer)p->out_tables[5];
 
32416
        pointer ot6 = (pointer)p->out_tables[6];
 
32417
        pointer ot7 = (pointer)p->out_tables[7];
 
32418
        pointer sw_base = (pointer)p->sw_table;
 
32419
        pointer im_base = (pointer)p->im_table;
 
32420
 
 
32421
        for(;ip0 < ep; ip0 += 4, op0 += 8) {
 
32422
                unsigned int ova0;      /* Output value accumulator */
 
32423
                unsigned int ova1;      /* Output value accumulator */
 
32424
                unsigned int ova2;      /* Output value accumulator */
 
32425
                unsigned int ova3;      /* Output value accumulator */
 
32426
                {
 
32427
                        pointer swp;
 
32428
                        pointer imp;
 
32429
                        {
 
32430
                                unsigned int ti_s;      /* Simplex index variable */
 
32431
                                unsigned int ti_i;      /* Interpolation index variable */
 
32432
 
 
32433
                                ti_i  = IT_IX(it0, ip0[0]);
 
32434
                                ti_s  = IT_SX(it0, ip0[0]);
 
32435
                                ti_i += IT_IX(it1, ip0[1]);
 
32436
                                ti_s += IT_SX(it1, ip0[1]);
 
32437
                                ti_i += IT_IX(it2, ip0[2]);
 
32438
                                ti_s += IT_SX(it2, ip0[2]);
 
32439
                                ti_i += IT_IX(it3, ip0[3]);
 
32440
                                ti_s += IT_SX(it3, ip0[3]);
 
32441
 
 
32442
                                swp = sw_base + SW_O(ti_s);             /* Compute simplex table entry pointer */
 
32443
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
32444
                        }
 
32445
                        {
 
32446
                                unsigned int vof;       /* Vertex offset value */
 
32447
                                unsigned int vwe;       /* Vertex weighting */
 
32448
 
 
32449
                                vof = SX_VO(swp, 0);    /* Read vertex offset value */
 
32450
                                vwe = SX_WE(swp, 0);    /* Read vertex weighting value */
 
32451
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
32452
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
32453
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
32454
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
32455
                                vof = SX_VO(swp, 1);    /* Read vertex offset value */
 
32456
                                vwe = SX_WE(swp, 1);    /* Read vertex weighting value */
 
32457
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
32458
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
32459
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
32460
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
32461
                                vof = SX_VO(swp, 2);    /* Read vertex offset value */
 
32462
                                vwe = SX_WE(swp, 2);    /* Read vertex weighting value */
 
32463
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
32464
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
32465
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
32466
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
32467
                                vof = SX_VO(swp, 3);    /* Read vertex offset value */
 
32468
                                vwe = SX_WE(swp, 3);    /* Read vertex weighting value */
 
32469
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
32470
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
32471
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
32472
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
32473
                                vof = SX_VO(swp, 4);    /* Read vertex offset value */
 
32474
                                vwe = SX_WE(swp, 4);    /* Read vertex weighting value */
 
32475
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
32476
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
32477
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
32478
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
32479
                        }
 
32480
                }
 
32481
                {
 
32482
                        unsigned int oti;       /* Vertex offset value */
 
32483
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
32484
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
32485
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
32486
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
32487
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
32488
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
32489
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
32490
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
32491
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
32492
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
32493
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
 
32494
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
32495
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
 
32496
                        op0[6] = OT_E(ot6, oti);        /* Write result */
 
32497
                        oti = ((ova3 >> 24) & 0xff);    /* Extract integer part of result */
 
32498
                        op0[7] = OT_E(ot7, oti);        /* Write result */
 
32499
                }
 
32500
        }
33060
32501
}
33061
32502
#undef IT_IX
33062
32503
#undef IT_SX
33071
32512
imdi_k94_gen(
33072
32513
genspec *g                      /* structure to be initialised */
33073
32514
) {
33074
 
        static unsigned char data[] = {
33075
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
33076
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
33077
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33078
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33079
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33080
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33081
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33082
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
33083
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
33084
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33085
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33086
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33087
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33088
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33089
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33090
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33091
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33092
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33093
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33094
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
33095
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
33096
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
33097
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
33098
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
33099
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33100
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33101
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33102
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33103
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33104
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33105
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33106
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33107
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
33108
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
33109
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
33110
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
33111
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
33112
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
33113
 
                0x1f, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00, 
33114
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
33115
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
33116
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
33117
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
33118
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
33119
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
33120
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
33121
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
33122
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
33123
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33124
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
33125
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
33126
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x34, 0x5f, 0x38, 0x5f, 
33127
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
33128
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
33129
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
33130
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
33131
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
33132
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
33133
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
33134
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33135
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33136
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33137
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33138
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
33139
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x39, 0x34, 
33140
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33141
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33142
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
33143
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
33144
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
33145
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
33146
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
33147
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
33148
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
33149
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
33150
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
33151
 
                0x00, 0xf0, 0x04, 0x08 
33152
 
        };      /* Structure image */
33153
 
        
33154
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
32515
        static unsigned char data[] = {
 
32516
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
32517
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
32518
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32519
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32520
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32521
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32522
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32523
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
32524
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
32525
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32526
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32527
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32528
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32529
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32530
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32531
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32532
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32533
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32534
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32535
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
32536
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
32537
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
32538
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
32539
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
32540
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32541
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32542
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32543
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32544
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32545
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32546
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32547
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32548
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
32549
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
32550
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
32551
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
32552
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
32553
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
32554
                0x1f, 0x00, 0x00, 0x00, 0xff, 0x00, 0x00, 0x00,
 
32555
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
32556
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
32557
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
32558
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
32559
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
32560
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
32561
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
32562
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
32563
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
32564
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32565
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
32566
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
32567
                0x2c, 0xf3, 0xdc, 0xb7, 0x34, 0x5f, 0x38, 0x5f,
 
32568
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
32569
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
32570
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
32571
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
32572
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
32573
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
32574
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
32575
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32576
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32577
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32578
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32579
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
32580
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x39, 0x34,
 
32581
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32582
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32583
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
32584
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
32585
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
32586
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
32587
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
32588
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
32589
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
32590
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
32591
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
32592
                0x00, 0xf0, 0x04, 0x08
 
32593
        };      /* Structure image */
 
32594
 
 
32595
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
33155
32596
}
33156
32597
 
33157
32598
static void
33158
32599
imdi_k94_tab(
33159
32600
tabspec *t                      /* structure to be initialised */
33160
32601
) {
33161
 
        static unsigned char data[] = {
33162
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
33163
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
33164
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
33165
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
33166
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
33167
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
33168
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33169
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
33170
 
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
33171
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33172
 
                0x14, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
33173
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33174
 
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
33175
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
33176
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
33177
 
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
33178
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33179
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
33180
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33181
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33182
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
33183
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
33184
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
33185
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
33186
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33187
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33188
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33189
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33190
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
33191
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
33192
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
33193
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
33194
 
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff 
33195
 
        };      /* Structure image */
33196
 
        
33197
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
32602
        static unsigned char data[] = {
 
32603
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
32604
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
32605
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
32606
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
32607
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
32608
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
32609
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32610
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
32611
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
32612
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32613
                0x14, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
32614
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32615
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
32616
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
32617
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
32618
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
32619
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32620
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
32621
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32622
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32623
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
32624
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
32625
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
32626
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
32627
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32628
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32629
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32630
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32631
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
32632
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
32633
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
32634
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
32635
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff
 
32636
        };      /* Structure image */
 
32637
 
 
32638
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
33198
32639
}
33199
32640
 
33200
 
 
33201
 
 
33202
 
 
33203
 
 
33204
 
 
33205
32641
/* Integer Multi-Dimensional Interpolation */
33206
32642
/* Interpolation Kernel Code */
33207
32643
/* Generated by cgen */
33210
32646
 
33211
32647
/* see the Licence.txt file for licencing details.*/
33212
32648
 
33213
 
 
33214
32649
/*
33215
32650
   Interpolation kernel specs:
33216
32651
 
33309
32744
void **inp,             /* pointer to input pointers */
33310
32745
unsigned int npix       /* Number of pixels to process */
33311
32746
) {
33312
 
        imdi_imp *p = (imdi_imp *)(s->impl);
33313
 
        unsigned char *ip0 = (unsigned char *)inp[0];
33314
 
        unsigned short *op0 = (unsigned short *)outp[0];
33315
 
        unsigned char *ep = ip0 + npix * 5 ;
33316
 
        pointer it0 = (pointer)p->in_tables[0];
33317
 
        pointer it1 = (pointer)p->in_tables[1];
33318
 
        pointer it2 = (pointer)p->in_tables[2];
33319
 
        pointer it3 = (pointer)p->in_tables[3];
33320
 
        pointer it4 = (pointer)p->in_tables[4];
33321
 
        pointer ot0 = (pointer)p->out_tables[0];
33322
 
        pointer ot1 = (pointer)p->out_tables[1];
33323
 
        pointer ot2 = (pointer)p->out_tables[2];
33324
 
        pointer ot3 = (pointer)p->out_tables[3];
33325
 
        pointer ot4 = (pointer)p->out_tables[4];
33326
 
        pointer ot5 = (pointer)p->out_tables[5];
33327
 
        pointer ot6 = (pointer)p->out_tables[6];
33328
 
        pointer ot7 = (pointer)p->out_tables[7];
33329
 
        pointer im_base = (pointer)p->im_table;
33330
 
        
33331
 
        for(;ip0 < ep; ip0 += 5, op0 += 8) {
33332
 
                unsigned int ova0;      /* Output value accumulator */
33333
 
                unsigned int ova1;      /* Output value accumulator */
33334
 
                unsigned int ova2;      /* Output value accumulator */
33335
 
                unsigned int ova3;      /* Output value accumulator */
33336
 
                {
33337
 
                        pointer imp;
33338
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
33339
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
33340
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
33341
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
33342
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
33343
 
                        {
33344
 
                                unsigned int ti_i;      /* Interpolation index variable */
33345
 
                                
33346
 
                                ti_i  = IT_IX(it0, ip0[0]);
33347
 
                                wo0   = IT_WO(it0, ip0[0]);
33348
 
                                ti_i += IT_IX(it1, ip0[1]);
33349
 
                                wo1   = IT_WO(it1, ip0[1]);
33350
 
                                ti_i += IT_IX(it2, ip0[2]);
33351
 
                                wo2   = IT_WO(it2, ip0[2]);
33352
 
                                ti_i += IT_IX(it3, ip0[3]);
33353
 
                                wo3   = IT_WO(it3, ip0[3]);
33354
 
                                ti_i += IT_IX(it4, ip0[4]);
33355
 
                                wo4   = IT_WO(it4, ip0[4]);
33356
 
                                
33357
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
33358
 
                                
33359
 
                                /* Sort weighting values and vertex offset values */
33360
 
                                CEX(wo0, wo1);
33361
 
                                CEX(wo0, wo2);
33362
 
                                CEX(wo0, wo3);
33363
 
                                CEX(wo0, wo4);
33364
 
                                CEX(wo1, wo2);
33365
 
                                CEX(wo1, wo3);
33366
 
                                CEX(wo1, wo4);
33367
 
                                CEX(wo2, wo3);
33368
 
                                CEX(wo2, wo4);
33369
 
                                CEX(wo3, wo4);
33370
 
                        }
33371
 
                        {
33372
 
                                unsigned int nvof;      /* Next vertex offset value */
33373
 
                                unsigned int vof;       /* Vertex offset value */
33374
 
                                unsigned int vwe;       /* Vertex weighting */
33375
 
                                
33376
 
                                vof = 0;                                /* First vertex offset is 0 */
33377
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
33378
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
33379
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
33380
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
33381
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
33382
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
33383
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
33384
 
                                vof += nvof;                    /* Move to next vertex */
33385
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
33386
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
33387
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
33388
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
33389
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
33390
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
33391
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
33392
 
                                vof += nvof;                    /* Move to next vertex */
33393
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
33394
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
33395
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
33396
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
33397
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
33398
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
33399
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
33400
 
                                vof += nvof;                    /* Move to next vertex */
33401
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
33402
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
33403
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
33404
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
33405
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
33406
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
33407
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
33408
 
                                vof += nvof;                    /* Move to next vertex */
33409
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
33410
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
33411
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
33412
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
33413
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
33414
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
33415
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
33416
 
                                vof += nvof;                    /* Move to next vertex */
33417
 
                                vwe = wo4;                              /* Baricentric weighting */
33418
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
33419
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
33420
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
33421
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
33422
 
                        }
33423
 
                }
33424
 
                {
33425
 
                        unsigned int oti;       /* Vertex offset value */
33426
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
33427
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
33428
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
33429
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
33430
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
33431
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
33432
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
33433
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
33434
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
33435
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
33436
 
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
33437
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
33438
 
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
33439
 
                        op0[6] = OT_E(ot6, oti);        /* Write result */
33440
 
                        oti = ((ova3 >> 24) & 0xff);    /* Extract integer part of result */
33441
 
                        op0[7] = OT_E(ot7, oti);        /* Write result */
33442
 
                }
33443
 
        }
 
32747
        imdi_imp *p = (imdi_imp *)(s->impl);
 
32748
        unsigned char *ip0 = (unsigned char *)inp[0];
 
32749
        unsigned short *op0 = (unsigned short *)outp[0];
 
32750
        unsigned char *ep = ip0 + npix * 5 ;
 
32751
        pointer it0 = (pointer)p->in_tables[0];
 
32752
        pointer it1 = (pointer)p->in_tables[1];
 
32753
        pointer it2 = (pointer)p->in_tables[2];
 
32754
        pointer it3 = (pointer)p->in_tables[3];
 
32755
        pointer it4 = (pointer)p->in_tables[4];
 
32756
        pointer ot0 = (pointer)p->out_tables[0];
 
32757
        pointer ot1 = (pointer)p->out_tables[1];
 
32758
        pointer ot2 = (pointer)p->out_tables[2];
 
32759
        pointer ot3 = (pointer)p->out_tables[3];
 
32760
        pointer ot4 = (pointer)p->out_tables[4];
 
32761
        pointer ot5 = (pointer)p->out_tables[5];
 
32762
        pointer ot6 = (pointer)p->out_tables[6];
 
32763
        pointer ot7 = (pointer)p->out_tables[7];
 
32764
        pointer im_base = (pointer)p->im_table;
 
32765
 
 
32766
        for(;ip0 < ep; ip0 += 5, op0 += 8) {
 
32767
                unsigned int ova0;      /* Output value accumulator */
 
32768
                unsigned int ova1;      /* Output value accumulator */
 
32769
                unsigned int ova2;      /* Output value accumulator */
 
32770
                unsigned int ova3;      /* Output value accumulator */
 
32771
                {
 
32772
                        pointer imp;
 
32773
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
32774
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
32775
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
32776
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
32777
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
32778
                        {
 
32779
                                unsigned int ti_i;      /* Interpolation index variable */
 
32780
 
 
32781
                                ti_i  = IT_IX(it0, ip0[0]);
 
32782
                                wo0   = IT_WO(it0, ip0[0]);
 
32783
                                ti_i += IT_IX(it1, ip0[1]);
 
32784
                                wo1   = IT_WO(it1, ip0[1]);
 
32785
                                ti_i += IT_IX(it2, ip0[2]);
 
32786
                                wo2   = IT_WO(it2, ip0[2]);
 
32787
                                ti_i += IT_IX(it3, ip0[3]);
 
32788
                                wo3   = IT_WO(it3, ip0[3]);
 
32789
                                ti_i += IT_IX(it4, ip0[4]);
 
32790
                                wo4   = IT_WO(it4, ip0[4]);
 
32791
 
 
32792
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
32793
 
 
32794
                                /* Sort weighting values and vertex offset values */
 
32795
                                CEX(wo0, wo1);
 
32796
                                CEX(wo0, wo2);
 
32797
                                CEX(wo0, wo3);
 
32798
                                CEX(wo0, wo4);
 
32799
                                CEX(wo1, wo2);
 
32800
                                CEX(wo1, wo3);
 
32801
                                CEX(wo1, wo4);
 
32802
                                CEX(wo2, wo3);
 
32803
                                CEX(wo2, wo4);
 
32804
                                CEX(wo3, wo4);
 
32805
                        }
 
32806
                        {
 
32807
                                unsigned int nvof;      /* Next vertex offset value */
 
32808
                                unsigned int vof;       /* Vertex offset value */
 
32809
                                unsigned int vwe;       /* Vertex weighting */
 
32810
 
 
32811
                                vof = 0;                                /* First vertex offset is 0 */
 
32812
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
32813
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
32814
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
32815
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
32816
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
32817
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
32818
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
32819
                                vof += nvof;                    /* Move to next vertex */
 
32820
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
32821
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
32822
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
32823
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
32824
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
32825
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
32826
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
32827
                                vof += nvof;                    /* Move to next vertex */
 
32828
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
32829
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
32830
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
32831
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
32832
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
32833
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
32834
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
32835
                                vof += nvof;                    /* Move to next vertex */
 
32836
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
32837
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
32838
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
32839
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
32840
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
32841
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
32842
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
32843
                                vof += nvof;                    /* Move to next vertex */
 
32844
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
32845
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
32846
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
32847
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
32848
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
32849
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
32850
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
32851
                                vof += nvof;                    /* Move to next vertex */
 
32852
                                vwe = wo4;                              /* Baricentric weighting */
 
32853
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
32854
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
32855
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
32856
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
32857
                        }
 
32858
                }
 
32859
                {
 
32860
                        unsigned int oti;       /* Vertex offset value */
 
32861
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
32862
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
32863
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
32864
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
32865
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
32866
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
32867
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
32868
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
32869
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
32870
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
32871
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
 
32872
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
32873
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
 
32874
                        op0[6] = OT_E(ot6, oti);        /* Write result */
 
32875
                        oti = ((ova3 >> 24) & 0xff);    /* Extract integer part of result */
 
32876
                        op0[7] = OT_E(ot7, oti);        /* Write result */
 
32877
                }
 
32878
        }
33444
32879
}
33445
32880
#undef IT_WO
33446
32881
#undef IT_IX
33453
32888
imdi_k95_gen(
33454
32889
genspec *g                      /* structure to be initialised */
33455
32890
) {
33456
 
        static unsigned char data[] = {
33457
 
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
33458
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
33459
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33460
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33461
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33462
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33463
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33464
 
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
33465
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
33466
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
33467
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33468
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33469
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33470
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33471
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33472
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33473
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33474
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33475
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33476
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
33477
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
33478
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
33479
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
33480
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
33481
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33482
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33483
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33484
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33485
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33486
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33487
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33488
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33489
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
33490
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
33491
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
33492
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
33493
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
33494
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
33495
 
                0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33496
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
33497
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
33498
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
33499
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
33500
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
33501
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
33502
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
33503
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
33504
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
33505
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33506
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
33507
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
33508
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x35, 0x5f, 0x38, 0x5f, 
33509
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
33510
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
33511
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
33512
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
33513
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
33514
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
33515
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
33516
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33517
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33518
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33519
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33520
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
33521
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x39, 0x35, 
33522
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33523
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33524
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
33525
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
33526
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
33527
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
33528
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
33529
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
33530
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
33531
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
33532
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
33533
 
                0x00, 0xf0, 0x04, 0x08 
33534
 
        };      /* Structure image */
33535
 
        
33536
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
32891
        static unsigned char data[] = {
 
32892
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
32893
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
32894
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32895
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32896
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32897
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32898
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32899
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
32900
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
32901
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
32902
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32903
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32904
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32905
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32906
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32907
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32908
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32909
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32910
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32911
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
32912
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
32913
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
32914
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
32915
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
32916
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32917
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32918
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32919
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32920
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32921
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32922
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32923
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32924
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
32925
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
32926
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
32927
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
32928
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
32929
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
32930
                0x2d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32931
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
32932
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
32933
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
32934
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
32935
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
32936
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
32937
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
32938
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
32939
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
32940
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32941
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
32942
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
32943
                0x2c, 0xf3, 0xdc, 0xb7, 0x35, 0x5f, 0x38, 0x5f,
 
32944
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
32945
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
32946
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
32947
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
32948
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
32949
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
32950
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
32951
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32952
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32953
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32954
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32955
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
32956
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x39, 0x35,
 
32957
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32958
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32959
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
32960
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
32961
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
32962
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
32963
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
32964
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
32965
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
32966
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
32967
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
32968
                0x00, 0xf0, 0x04, 0x08
 
32969
        };      /* Structure image */
 
32970
 
 
32971
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
33537
32972
}
33538
32973
 
33539
32974
static void
33540
32975
imdi_k95_tab(
33541
32976
tabspec *t                      /* structure to be initialised */
33542
32977
) {
33543
 
        static unsigned char data[] = {
33544
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
33545
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
33546
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
33547
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
33548
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
33549
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
33550
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33551
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
33552
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
33553
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33554
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
33555
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
33556
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
33557
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
33558
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
33559
 
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
33560
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33561
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
33562
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33563
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33564
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
33565
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
33566
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
33567
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
33568
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33569
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33570
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33571
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33572
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
33573
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
33574
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
33575
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
33576
 
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff 
33577
 
        };      /* Structure image */
33578
 
        
33579
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
32978
        static unsigned char data[] = {
 
32979
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
32980
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
32981
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
32982
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
32983
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
32984
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
32985
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32986
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
32987
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
32988
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32989
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
32990
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
32991
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
32992
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
32993
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
32994
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
32995
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
32996
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
32997
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32998
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
32999
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
33000
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
33001
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
33002
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
33003
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33004
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33005
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33006
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33007
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
33008
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
33009
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
33010
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
33011
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff
 
33012
        };      /* Structure image */
 
33013
 
 
33014
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
33580
33015
}
33581
33016
 
33582
 
 
33583
 
 
33584
 
 
33585
 
 
33586
 
 
33587
33017
/* Integer Multi-Dimensional Interpolation */
33588
33018
/* Interpolation Kernel Code */
33589
33019
/* Generated by cgen */
33592
33022
 
33593
33023
/* see the Licence.txt file for licencing details.*/
33594
33024
 
33595
 
 
33596
33025
/*
33597
33026
   Interpolation kernel specs:
33598
33027
 
33693
33122
void **inp,             /* pointer to input pointers */
33694
33123
unsigned int npix       /* Number of pixels to process */
33695
33124
) {
33696
 
        imdi_imp *p = (imdi_imp *)(s->impl);
33697
 
        unsigned char *ip0 = (unsigned char *)inp[0];
33698
 
        unsigned short *op0 = (unsigned short *)outp[0];
33699
 
        unsigned char *ep = ip0 + npix * 6 ;
33700
 
        pointer it0 = (pointer)p->in_tables[0];
33701
 
        pointer it1 = (pointer)p->in_tables[1];
33702
 
        pointer it2 = (pointer)p->in_tables[2];
33703
 
        pointer it3 = (pointer)p->in_tables[3];
33704
 
        pointer it4 = (pointer)p->in_tables[4];
33705
 
        pointer it5 = (pointer)p->in_tables[5];
33706
 
        pointer ot0 = (pointer)p->out_tables[0];
33707
 
        pointer ot1 = (pointer)p->out_tables[1];
33708
 
        pointer ot2 = (pointer)p->out_tables[2];
33709
 
        pointer ot3 = (pointer)p->out_tables[3];
33710
 
        pointer ot4 = (pointer)p->out_tables[4];
33711
 
        pointer ot5 = (pointer)p->out_tables[5];
33712
 
        pointer ot6 = (pointer)p->out_tables[6];
33713
 
        pointer ot7 = (pointer)p->out_tables[7];
33714
 
        pointer im_base = (pointer)p->im_table;
33715
 
        
33716
 
        for(;ip0 < ep; ip0 += 6, op0 += 8) {
33717
 
                unsigned int ova0;      /* Output value accumulator */
33718
 
                unsigned int ova1;      /* Output value accumulator */
33719
 
                unsigned int ova2;      /* Output value accumulator */
33720
 
                unsigned int ova3;      /* Output value accumulator */
33721
 
                {
33722
 
                        pointer imp;
33723
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
33724
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
33725
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
33726
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
33727
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
33728
 
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
33729
 
                        {
33730
 
                                unsigned int ti_i;      /* Interpolation index variable */
33731
 
                                
33732
 
                                ti_i  = IT_IX(it0, ip0[0]);
33733
 
                                wo0   = IT_WO(it0, ip0[0]);
33734
 
                                ti_i += IT_IX(it1, ip0[1]);
33735
 
                                wo1   = IT_WO(it1, ip0[1]);
33736
 
                                ti_i += IT_IX(it2, ip0[2]);
33737
 
                                wo2   = IT_WO(it2, ip0[2]);
33738
 
                                ti_i += IT_IX(it3, ip0[3]);
33739
 
                                wo3   = IT_WO(it3, ip0[3]);
33740
 
                                ti_i += IT_IX(it4, ip0[4]);
33741
 
                                wo4   = IT_WO(it4, ip0[4]);
33742
 
                                ti_i += IT_IX(it5, ip0[5]);
33743
 
                                wo5   = IT_WO(it5, ip0[5]);
33744
 
                                
33745
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
33746
 
                                
33747
 
                                /* Sort weighting values and vertex offset values */
33748
 
                                CEX(wo0, wo1);
33749
 
                                CEX(wo0, wo2);
33750
 
                                CEX(wo0, wo3);
33751
 
                                CEX(wo0, wo4);
33752
 
                                CEX(wo0, wo5);
33753
 
                                CEX(wo1, wo2);
33754
 
                                CEX(wo1, wo3);
33755
 
                                CEX(wo1, wo4);
33756
 
                                CEX(wo1, wo5);
33757
 
                                CEX(wo2, wo3);
33758
 
                                CEX(wo2, wo4);
33759
 
                                CEX(wo2, wo5);
33760
 
                                CEX(wo3, wo4);
33761
 
                                CEX(wo3, wo5);
33762
 
                                CEX(wo4, wo5);
33763
 
                        }
33764
 
                        {
33765
 
                                unsigned int nvof;      /* Next vertex offset value */
33766
 
                                unsigned int vof;       /* Vertex offset value */
33767
 
                                unsigned int vwe;       /* Vertex weighting */
33768
 
                                
33769
 
                                vof = 0;                                /* First vertex offset is 0 */
33770
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
33771
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
33772
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
33773
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
33774
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
33775
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
33776
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
33777
 
                                vof += nvof;                    /* Move to next vertex */
33778
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
33779
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
33780
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
33781
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
33782
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
33783
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
33784
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
33785
 
                                vof += nvof;                    /* Move to next vertex */
33786
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
33787
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
33788
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
33789
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
33790
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
33791
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
33792
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
33793
 
                                vof += nvof;                    /* Move to next vertex */
33794
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
33795
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
33796
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
33797
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
33798
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
33799
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
33800
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
33801
 
                                vof += nvof;                    /* Move to next vertex */
33802
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
33803
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
33804
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
33805
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
33806
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
33807
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
33808
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
33809
 
                                vof += nvof;                    /* Move to next vertex */
33810
 
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
33811
 
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
33812
 
                                vwe = wo4 - wo5;                /* Baricentric weighting */
33813
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
33814
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
33815
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
33816
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
33817
 
                                vof += nvof;                    /* Move to next vertex */
33818
 
                                vwe = wo5;                              /* Baricentric weighting */
33819
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
33820
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
33821
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
33822
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
33823
 
                        }
33824
 
                }
33825
 
                {
33826
 
                        unsigned int oti;       /* Vertex offset value */
33827
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
33828
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
33829
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
33830
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
33831
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
33832
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
33833
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
33834
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
33835
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
33836
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
33837
 
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
33838
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
33839
 
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
33840
 
                        op0[6] = OT_E(ot6, oti);        /* Write result */
33841
 
                        oti = ((ova3 >> 24) & 0xff);    /* Extract integer part of result */
33842
 
                        op0[7] = OT_E(ot7, oti);        /* Write result */
33843
 
                }
33844
 
        }
 
33125
        imdi_imp *p = (imdi_imp *)(s->impl);
 
33126
        unsigned char *ip0 = (unsigned char *)inp[0];
 
33127
        unsigned short *op0 = (unsigned short *)outp[0];
 
33128
        unsigned char *ep = ip0 + npix * 6 ;
 
33129
        pointer it0 = (pointer)p->in_tables[0];
 
33130
        pointer it1 = (pointer)p->in_tables[1];
 
33131
        pointer it2 = (pointer)p->in_tables[2];
 
33132
        pointer it3 = (pointer)p->in_tables[3];
 
33133
        pointer it4 = (pointer)p->in_tables[4];
 
33134
        pointer it5 = (pointer)p->in_tables[5];
 
33135
        pointer ot0 = (pointer)p->out_tables[0];
 
33136
        pointer ot1 = (pointer)p->out_tables[1];
 
33137
        pointer ot2 = (pointer)p->out_tables[2];
 
33138
        pointer ot3 = (pointer)p->out_tables[3];
 
33139
        pointer ot4 = (pointer)p->out_tables[4];
 
33140
        pointer ot5 = (pointer)p->out_tables[5];
 
33141
        pointer ot6 = (pointer)p->out_tables[6];
 
33142
        pointer ot7 = (pointer)p->out_tables[7];
 
33143
        pointer im_base = (pointer)p->im_table;
 
33144
 
 
33145
        for(;ip0 < ep; ip0 += 6, op0 += 8) {
 
33146
                unsigned int ova0;      /* Output value accumulator */
 
33147
                unsigned int ova1;      /* Output value accumulator */
 
33148
                unsigned int ova2;      /* Output value accumulator */
 
33149
                unsigned int ova3;      /* Output value accumulator */
 
33150
                {
 
33151
                        pointer imp;
 
33152
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
33153
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
33154
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
33155
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
33156
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
33157
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
 
33158
                        {
 
33159
                                unsigned int ti_i;      /* Interpolation index variable */
 
33160
 
 
33161
                                ti_i  = IT_IX(it0, ip0[0]);
 
33162
                                wo0   = IT_WO(it0, ip0[0]);
 
33163
                                ti_i += IT_IX(it1, ip0[1]);
 
33164
                                wo1   = IT_WO(it1, ip0[1]);
 
33165
                                ti_i += IT_IX(it2, ip0[2]);
 
33166
                                wo2   = IT_WO(it2, ip0[2]);
 
33167
                                ti_i += IT_IX(it3, ip0[3]);
 
33168
                                wo3   = IT_WO(it3, ip0[3]);
 
33169
                                ti_i += IT_IX(it4, ip0[4]);
 
33170
                                wo4   = IT_WO(it4, ip0[4]);
 
33171
                                ti_i += IT_IX(it5, ip0[5]);
 
33172
                                wo5   = IT_WO(it5, ip0[5]);
 
33173
 
 
33174
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
33175
 
 
33176
                                /* Sort weighting values and vertex offset values */
 
33177
                                CEX(wo0, wo1);
 
33178
                                CEX(wo0, wo2);
 
33179
                                CEX(wo0, wo3);
 
33180
                                CEX(wo0, wo4);
 
33181
                                CEX(wo0, wo5);
 
33182
                                CEX(wo1, wo2);
 
33183
                                CEX(wo1, wo3);
 
33184
                                CEX(wo1, wo4);
 
33185
                                CEX(wo1, wo5);
 
33186
                                CEX(wo2, wo3);
 
33187
                                CEX(wo2, wo4);
 
33188
                                CEX(wo2, wo5);
 
33189
                                CEX(wo3, wo4);
 
33190
                                CEX(wo3, wo5);
 
33191
                                CEX(wo4, wo5);
 
33192
                        }
 
33193
                        {
 
33194
                                unsigned int nvof;      /* Next vertex offset value */
 
33195
                                unsigned int vof;       /* Vertex offset value */
 
33196
                                unsigned int vwe;       /* Vertex weighting */
 
33197
 
 
33198
                                vof = 0;                                /* First vertex offset is 0 */
 
33199
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
33200
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
33201
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
33202
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
33203
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
33204
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
33205
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
33206
                                vof += nvof;                    /* Move to next vertex */
 
33207
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
33208
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
33209
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
33210
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
33211
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
33212
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
33213
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
33214
                                vof += nvof;                    /* Move to next vertex */
 
33215
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
33216
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
33217
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
33218
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
33219
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
33220
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
33221
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
33222
                                vof += nvof;                    /* Move to next vertex */
 
33223
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
33224
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
33225
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
33226
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
33227
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
33228
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
33229
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
33230
                                vof += nvof;                    /* Move to next vertex */
 
33231
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
33232
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
33233
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
33234
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
33235
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
33236
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
33237
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
33238
                                vof += nvof;                    /* Move to next vertex */
 
33239
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
 
33240
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
 
33241
                                vwe = wo4 - wo5;                /* Baricentric weighting */
 
33242
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
33243
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
33244
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
33245
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
33246
                                vof += nvof;                    /* Move to next vertex */
 
33247
                                vwe = wo5;                              /* Baricentric weighting */
 
33248
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
33249
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
33250
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
33251
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
33252
                        }
 
33253
                }
 
33254
                {
 
33255
                        unsigned int oti;       /* Vertex offset value */
 
33256
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
33257
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
33258
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
33259
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
33260
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
33261
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
33262
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
33263
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
33264
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
33265
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
33266
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
 
33267
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
33268
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
 
33269
                        op0[6] = OT_E(ot6, oti);        /* Write result */
 
33270
                        oti = ((ova3 >> 24) & 0xff);    /* Extract integer part of result */
 
33271
                        op0[7] = OT_E(ot7, oti);        /* Write result */
 
33272
                }
 
33273
        }
33845
33274
}
33846
33275
#undef IT_WO
33847
33276
#undef IT_IX
33854
33283
imdi_k96_gen(
33855
33284
genspec *g                      /* structure to be initialised */
33856
33285
) {
33857
 
        static unsigned char data[] = {
33858
 
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
33859
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
33860
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33861
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33862
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33863
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33864
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33865
 
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
33866
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
33867
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
33868
 
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33869
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33870
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33871
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33872
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33873
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33874
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33875
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33876
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33877
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
33878
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
33879
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
33880
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
33881
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
33882
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33883
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33884
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33885
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33886
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33887
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33888
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33889
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33890
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
33891
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
33892
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
33893
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
33894
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
33895
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
33896
 
                0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33897
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
33898
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
33899
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
33900
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
33901
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
33902
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
33903
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
33904
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
33905
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
33906
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33907
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
33908
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
33909
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x36, 0x5f, 0x38, 0x5f, 
33910
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
33911
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
33912
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
33913
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
33914
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
33915
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
33916
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
33917
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33918
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33919
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33920
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33921
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
33922
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x39, 0x36, 
33923
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33924
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33925
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
33926
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
33927
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
33928
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
33929
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
33930
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
33931
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
33932
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
33933
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
33934
 
                0x00, 0xf0, 0x04, 0x08 
33935
 
        };      /* Structure image */
33936
 
        
33937
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
33286
        static unsigned char data[] = {
 
33287
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
33288
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
33289
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33290
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
33291
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
33292
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
33293
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
33294
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
33295
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
33296
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
33297
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
33298
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33299
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33300
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33301
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33302
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
33303
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
33304
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
33305
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
33306
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
33307
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
33308
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
33309
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
33310
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
33311
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
33312
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
33313
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
33314
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
33315
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33316
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33317
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33318
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33319
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
33320
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
33321
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
33322
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
33323
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
33324
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
33325
                0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33326
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
33327
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
33328
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
33329
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
33330
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
33331
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
33332
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
33333
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
33334
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
33335
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33336
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
33337
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
33338
                0x2c, 0xf3, 0xdc, 0xb7, 0x36, 0x5f, 0x38, 0x5f,
 
33339
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
33340
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
33341
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
33342
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
33343
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
33344
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
33345
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
33346
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33347
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33348
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33349
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33350
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
33351
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x39, 0x36,
 
33352
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33353
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33354
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
33355
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
33356
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
33357
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
33358
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
33359
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
33360
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
33361
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
33362
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
33363
                0x00, 0xf0, 0x04, 0x08
 
33364
        };      /* Structure image */
 
33365
 
 
33366
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
33938
33367
}
33939
33368
 
33940
33369
static void
33941
33370
imdi_k96_tab(
33942
33371
tabspec *t                      /* structure to be initialised */
33943
33372
) {
33944
 
        static unsigned char data[] = {
33945
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
33946
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
33947
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
33948
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
33949
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
33950
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
33951
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33952
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
33953
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
33954
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33955
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
33956
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
33957
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
33958
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
33959
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
33960
 
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
33961
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
33962
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
33963
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33964
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33965
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
33966
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
33967
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
33968
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
33969
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33970
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33971
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33972
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
33973
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
33974
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
33975
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
33976
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
33977
 
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff 
33978
 
        };      /* Structure image */
33979
 
        
33980
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
33373
        static unsigned char data[] = {
 
33374
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
33375
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
33376
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
33377
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
33378
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
33379
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
33380
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
33381
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
33382
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
33383
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33384
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
33385
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
33386
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
33387
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
33388
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
33389
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
33390
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
33391
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
33392
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33393
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33394
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
33395
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
33396
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
33397
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
33398
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33399
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33400
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33401
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33402
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
33403
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
33404
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
33405
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
33406
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff
 
33407
        };      /* Structure image */
 
33408
 
 
33409
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
33981
33410
}
33982
33411
 
33983
 
 
33984
 
 
33985
 
 
33986
 
 
33987
 
 
33988
33412
/* Integer Multi-Dimensional Interpolation */
33989
33413
/* Interpolation Kernel Code */
33990
33414
/* Generated by cgen */
33993
33417
 
33994
33418
/* see the Licence.txt file for licencing details.*/
33995
33419
 
33996
 
 
33997
33420
/*
33998
33421
   Interpolation kernel specs:
33999
33422
 
34096
33519
void **inp,             /* pointer to input pointers */
34097
33520
unsigned int npix       /* Number of pixels to process */
34098
33521
) {
34099
 
        imdi_imp *p = (imdi_imp *)(s->impl);
34100
 
        unsigned char *ip0 = (unsigned char *)inp[0];
34101
 
        unsigned short *op0 = (unsigned short *)outp[0];
34102
 
        unsigned char *ep = ip0 + npix * 7 ;
34103
 
        pointer it0 = (pointer)p->in_tables[0];
34104
 
        pointer it1 = (pointer)p->in_tables[1];
34105
 
        pointer it2 = (pointer)p->in_tables[2];
34106
 
        pointer it3 = (pointer)p->in_tables[3];
34107
 
        pointer it4 = (pointer)p->in_tables[4];
34108
 
        pointer it5 = (pointer)p->in_tables[5];
34109
 
        pointer it6 = (pointer)p->in_tables[6];
34110
 
        pointer ot0 = (pointer)p->out_tables[0];
34111
 
        pointer ot1 = (pointer)p->out_tables[1];
34112
 
        pointer ot2 = (pointer)p->out_tables[2];
34113
 
        pointer ot3 = (pointer)p->out_tables[3];
34114
 
        pointer ot4 = (pointer)p->out_tables[4];
34115
 
        pointer ot5 = (pointer)p->out_tables[5];
34116
 
        pointer ot6 = (pointer)p->out_tables[6];
34117
 
        pointer ot7 = (pointer)p->out_tables[7];
34118
 
        pointer im_base = (pointer)p->im_table;
34119
 
        
34120
 
        for(;ip0 < ep; ip0 += 7, op0 += 8) {
34121
 
                unsigned int ova0;      /* Output value accumulator */
34122
 
                unsigned int ova1;      /* Output value accumulator */
34123
 
                unsigned int ova2;      /* Output value accumulator */
34124
 
                unsigned int ova3;      /* Output value accumulator */
34125
 
                {
34126
 
                        pointer imp;
34127
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
34128
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
34129
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
34130
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
34131
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
34132
 
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
34133
 
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
34134
 
                        {
34135
 
                                unsigned int ti_i;      /* Interpolation index variable */
34136
 
                                
34137
 
                                ti_i  = IT_IX(it0, ip0[0]);
34138
 
                                wo0   = IT_WO(it0, ip0[0]);
34139
 
                                ti_i += IT_IX(it1, ip0[1]);
34140
 
                                wo1   = IT_WO(it1, ip0[1]);
34141
 
                                ti_i += IT_IX(it2, ip0[2]);
34142
 
                                wo2   = IT_WO(it2, ip0[2]);
34143
 
                                ti_i += IT_IX(it3, ip0[3]);
34144
 
                                wo3   = IT_WO(it3, ip0[3]);
34145
 
                                ti_i += IT_IX(it4, ip0[4]);
34146
 
                                wo4   = IT_WO(it4, ip0[4]);
34147
 
                                ti_i += IT_IX(it5, ip0[5]);
34148
 
                                wo5   = IT_WO(it5, ip0[5]);
34149
 
                                ti_i += IT_IX(it6, ip0[6]);
34150
 
                                wo6   = IT_WO(it6, ip0[6]);
34151
 
                                
34152
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
34153
 
                                
34154
 
                                /* Sort weighting values and vertex offset values */
34155
 
                                CEX(wo0, wo1);
34156
 
                                CEX(wo0, wo2);
34157
 
                                CEX(wo0, wo3);
34158
 
                                CEX(wo0, wo4);
34159
 
                                CEX(wo0, wo5);
34160
 
                                CEX(wo0, wo6);
34161
 
                                CEX(wo1, wo2);
34162
 
                                CEX(wo1, wo3);
34163
 
                                CEX(wo1, wo4);
34164
 
                                CEX(wo1, wo5);
34165
 
                                CEX(wo1, wo6);
34166
 
                                CEX(wo2, wo3);
34167
 
                                CEX(wo2, wo4);
34168
 
                                CEX(wo2, wo5);
34169
 
                                CEX(wo2, wo6);
34170
 
                                CEX(wo3, wo4);
34171
 
                                CEX(wo3, wo5);
34172
 
                                CEX(wo3, wo6);
34173
 
                                CEX(wo4, wo5);
34174
 
                                CEX(wo4, wo6);
34175
 
                                CEX(wo5, wo6);
34176
 
                        }
34177
 
                        {
34178
 
                                unsigned int nvof;      /* Next vertex offset value */
34179
 
                                unsigned int vof;       /* Vertex offset value */
34180
 
                                unsigned int vwe;       /* Vertex weighting */
34181
 
                                
34182
 
                                vof = 0;                                /* First vertex offset is 0 */
34183
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
34184
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
34185
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
34186
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
34187
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
34188
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
34189
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
34190
 
                                vof += nvof;                    /* Move to next vertex */
34191
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
34192
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
34193
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
34194
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
34195
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
34196
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
34197
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
34198
 
                                vof += nvof;                    /* Move to next vertex */
34199
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
34200
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
34201
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
34202
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
34203
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
34204
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
34205
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
34206
 
                                vof += nvof;                    /* Move to next vertex */
34207
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
34208
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
34209
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
34210
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
34211
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
34212
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
34213
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
34214
 
                                vof += nvof;                    /* Move to next vertex */
34215
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
34216
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
34217
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
34218
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
34219
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
34220
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
34221
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
34222
 
                                vof += nvof;                    /* Move to next vertex */
34223
 
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
34224
 
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
34225
 
                                vwe = wo4 - wo5;                /* Baricentric weighting */
34226
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
34227
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
34228
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
34229
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
34230
 
                                vof += nvof;                    /* Move to next vertex */
34231
 
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
34232
 
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
34233
 
                                vwe = wo5 - wo6;                /* Baricentric weighting */
34234
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
34235
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
34236
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
34237
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
34238
 
                                vof += nvof;                    /* Move to next vertex */
34239
 
                                vwe = wo6;                              /* Baricentric weighting */
34240
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
34241
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
34242
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
34243
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
34244
 
                        }
34245
 
                }
34246
 
                {
34247
 
                        unsigned int oti;       /* Vertex offset value */
34248
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
34249
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
34250
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
34251
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
34252
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
34253
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
34254
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
34255
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
34256
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
34257
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
34258
 
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
34259
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
34260
 
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
34261
 
                        op0[6] = OT_E(ot6, oti);        /* Write result */
34262
 
                        oti = ((ova3 >> 24) & 0xff);    /* Extract integer part of result */
34263
 
                        op0[7] = OT_E(ot7, oti);        /* Write result */
34264
 
                }
34265
 
        }
 
33522
        imdi_imp *p = (imdi_imp *)(s->impl);
 
33523
        unsigned char *ip0 = (unsigned char *)inp[0];
 
33524
        unsigned short *op0 = (unsigned short *)outp[0];
 
33525
        unsigned char *ep = ip0 + npix * 7 ;
 
33526
        pointer it0 = (pointer)p->in_tables[0];
 
33527
        pointer it1 = (pointer)p->in_tables[1];
 
33528
        pointer it2 = (pointer)p->in_tables[2];
 
33529
        pointer it3 = (pointer)p->in_tables[3];
 
33530
        pointer it4 = (pointer)p->in_tables[4];
 
33531
        pointer it5 = (pointer)p->in_tables[5];
 
33532
        pointer it6 = (pointer)p->in_tables[6];
 
33533
        pointer ot0 = (pointer)p->out_tables[0];
 
33534
        pointer ot1 = (pointer)p->out_tables[1];
 
33535
        pointer ot2 = (pointer)p->out_tables[2];
 
33536
        pointer ot3 = (pointer)p->out_tables[3];
 
33537
        pointer ot4 = (pointer)p->out_tables[4];
 
33538
        pointer ot5 = (pointer)p->out_tables[5];
 
33539
        pointer ot6 = (pointer)p->out_tables[6];
 
33540
        pointer ot7 = (pointer)p->out_tables[7];
 
33541
        pointer im_base = (pointer)p->im_table;
 
33542
 
 
33543
        for(;ip0 < ep; ip0 += 7, op0 += 8) {
 
33544
                unsigned int ova0;      /* Output value accumulator */
 
33545
                unsigned int ova1;      /* Output value accumulator */
 
33546
                unsigned int ova2;      /* Output value accumulator */
 
33547
                unsigned int ova3;      /* Output value accumulator */
 
33548
                {
 
33549
                        pointer imp;
 
33550
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
33551
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
33552
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
33553
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
33554
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
33555
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
 
33556
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
 
33557
                        {
 
33558
                                unsigned int ti_i;      /* Interpolation index variable */
 
33559
 
 
33560
                                ti_i  = IT_IX(it0, ip0[0]);
 
33561
                                wo0   = IT_WO(it0, ip0[0]);
 
33562
                                ti_i += IT_IX(it1, ip0[1]);
 
33563
                                wo1   = IT_WO(it1, ip0[1]);
 
33564
                                ti_i += IT_IX(it2, ip0[2]);
 
33565
                                wo2   = IT_WO(it2, ip0[2]);
 
33566
                                ti_i += IT_IX(it3, ip0[3]);
 
33567
                                wo3   = IT_WO(it3, ip0[3]);
 
33568
                                ti_i += IT_IX(it4, ip0[4]);
 
33569
                                wo4   = IT_WO(it4, ip0[4]);
 
33570
                                ti_i += IT_IX(it5, ip0[5]);
 
33571
                                wo5   = IT_WO(it5, ip0[5]);
 
33572
                                ti_i += IT_IX(it6, ip0[6]);
 
33573
                                wo6   = IT_WO(it6, ip0[6]);
 
33574
 
 
33575
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
33576
 
 
33577
                                /* Sort weighting values and vertex offset values */
 
33578
                                CEX(wo0, wo1);
 
33579
                                CEX(wo0, wo2);
 
33580
                                CEX(wo0, wo3);
 
33581
                                CEX(wo0, wo4);
 
33582
                                CEX(wo0, wo5);
 
33583
                                CEX(wo0, wo6);
 
33584
                                CEX(wo1, wo2);
 
33585
                                CEX(wo1, wo3);
 
33586
                                CEX(wo1, wo4);
 
33587
                                CEX(wo1, wo5);
 
33588
                                CEX(wo1, wo6);
 
33589
                                CEX(wo2, wo3);
 
33590
                                CEX(wo2, wo4);
 
33591
                                CEX(wo2, wo5);
 
33592
                                CEX(wo2, wo6);
 
33593
                                CEX(wo3, wo4);
 
33594
                                CEX(wo3, wo5);
 
33595
                                CEX(wo3, wo6);
 
33596
                                CEX(wo4, wo5);
 
33597
                                CEX(wo4, wo6);
 
33598
                                CEX(wo5, wo6);
 
33599
                        }
 
33600
                        {
 
33601
                                unsigned int nvof;      /* Next vertex offset value */
 
33602
                                unsigned int vof;       /* Vertex offset value */
 
33603
                                unsigned int vwe;       /* Vertex weighting */
 
33604
 
 
33605
                                vof = 0;                                /* First vertex offset is 0 */
 
33606
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
33607
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
33608
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
33609
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
33610
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
33611
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
33612
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
33613
                                vof += nvof;                    /* Move to next vertex */
 
33614
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
33615
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
33616
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
33617
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
33618
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
33619
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
33620
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
33621
                                vof += nvof;                    /* Move to next vertex */
 
33622
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
33623
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
33624
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
33625
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
33626
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
33627
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
33628
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
33629
                                vof += nvof;                    /* Move to next vertex */
 
33630
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
33631
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
33632
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
33633
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
33634
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
33635
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
33636
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
33637
                                vof += nvof;                    /* Move to next vertex */
 
33638
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
33639
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
33640
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
33641
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
33642
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
33643
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
33644
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
33645
                                vof += nvof;                    /* Move to next vertex */
 
33646
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
 
33647
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
 
33648
                                vwe = wo4 - wo5;                /* Baricentric weighting */
 
33649
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
33650
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
33651
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
33652
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
33653
                                vof += nvof;                    /* Move to next vertex */
 
33654
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
 
33655
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
 
33656
                                vwe = wo5 - wo6;                /* Baricentric weighting */
 
33657
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
33658
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
33659
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
33660
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
33661
                                vof += nvof;                    /* Move to next vertex */
 
33662
                                vwe = wo6;                              /* Baricentric weighting */
 
33663
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
33664
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
33665
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
33666
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
33667
                        }
 
33668
                }
 
33669
                {
 
33670
                        unsigned int oti;       /* Vertex offset value */
 
33671
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
33672
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
33673
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
33674
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
33675
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
33676
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
33677
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
33678
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
33679
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
33680
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
33681
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
 
33682
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
33683
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
 
33684
                        op0[6] = OT_E(ot6, oti);        /* Write result */
 
33685
                        oti = ((ova3 >> 24) & 0xff);    /* Extract integer part of result */
 
33686
                        op0[7] = OT_E(ot7, oti);        /* Write result */
 
33687
                }
 
33688
        }
34266
33689
}
34267
33690
#undef IT_WO
34268
33691
#undef IT_IX
34275
33698
imdi_k97_gen(
34276
33699
genspec *g                      /* structure to be initialised */
34277
33700
) {
34278
 
        static unsigned char data[] = {
34279
 
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
34280
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
34281
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34282
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
34283
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
34284
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
34285
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
34286
 
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
34287
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
34288
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
34289
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
34290
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34291
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34292
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34293
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34294
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
34295
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
34296
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
34297
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
34298
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
34299
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
34300
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
34301
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
34302
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
34303
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
34304
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
34305
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
34306
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
34307
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34308
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34309
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34310
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34311
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
34312
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
34313
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
34314
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
34315
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
34316
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
34317
 
                0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34318
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
34319
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
34320
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
34321
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
34322
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
34323
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
34324
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
34325
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
34326
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
34327
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34328
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
34329
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
34330
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x37, 0x5f, 0x38, 0x5f, 
34331
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
34332
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
34333
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
34334
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
34335
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
34336
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
34337
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
34338
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34339
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34340
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34341
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34342
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
34343
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x39, 0x37, 
34344
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34345
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34346
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
34347
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
34348
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
34349
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
34350
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
34351
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
34352
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
34353
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
34354
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
34355
 
                0x00, 0xf0, 0x04, 0x08 
34356
 
        };      /* Structure image */
34357
 
        
34358
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
33701
        static unsigned char data[] = {
 
33702
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
33703
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
33704
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33705
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
33706
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
33707
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
33708
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
33709
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
33710
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
33711
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
33712
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
33713
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33714
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33715
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33716
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33717
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
33718
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
33719
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
33720
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
33721
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
33722
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
33723
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
33724
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
33725
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
33726
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
33727
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
33728
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
33729
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
33730
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33731
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33732
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33733
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33734
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
33735
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
33736
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
33737
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
33738
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
33739
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
33740
                0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33741
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
33742
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
33743
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
33744
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
33745
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
33746
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
33747
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
33748
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
33749
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
33750
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33751
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
33752
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
33753
                0x2c, 0xf3, 0xdc, 0xb7, 0x37, 0x5f, 0x38, 0x5f,
 
33754
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
33755
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
33756
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
33757
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
33758
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
33759
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
33760
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
33761
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33762
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33763
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33764
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33765
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
33766
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x39, 0x37,
 
33767
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33768
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33769
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
33770
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
33771
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
33772
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
33773
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
33774
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
33775
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
33776
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
33777
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
33778
                0x00, 0xf0, 0x04, 0x08
 
33779
        };      /* Structure image */
 
33780
 
 
33781
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
34359
33782
}
34360
33783
 
34361
33784
static void
34362
33785
imdi_k97_tab(
34363
33786
tabspec *t                      /* structure to be initialised */
34364
33787
) {
34365
 
        static unsigned char data[] = {
34366
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
34367
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
34368
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
34369
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
34370
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
34371
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
34372
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
34373
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
34374
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
34375
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34376
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
34377
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
34378
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
34379
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
34380
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
34381
 
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
34382
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
34383
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
34384
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34385
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34386
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
34387
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
34388
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
34389
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
34390
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34391
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34392
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34393
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34394
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
34395
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
34396
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
34397
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
34398
 
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff 
34399
 
        };      /* Structure image */
34400
 
        
34401
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
33788
        static unsigned char data[] = {
 
33789
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
33790
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
33791
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
33792
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
33793
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
33794
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
33795
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
33796
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
33797
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
33798
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33799
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
33800
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
33801
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
33802
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
33803
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
33804
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
33805
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
33806
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
33807
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33808
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33809
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
33810
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
33811
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
33812
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
33813
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33814
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33815
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33816
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
33817
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
33818
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
33819
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
33820
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
33821
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff
 
33822
        };      /* Structure image */
 
33823
 
 
33824
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
34402
33825
}
34403
33826
 
34404
 
 
34405
 
 
34406
 
 
34407
 
 
34408
 
 
34409
33827
/* Integer Multi-Dimensional Interpolation */
34410
33828
/* Interpolation Kernel Code */
34411
33829
/* Generated by cgen */
34414
33832
 
34415
33833
/* see the Licence.txt file for licencing details.*/
34416
33834
 
34417
 
 
34418
33835
/*
34419
33836
   Interpolation kernel specs:
34420
33837
 
34519
33936
void **inp,             /* pointer to input pointers */
34520
33937
unsigned int npix       /* Number of pixels to process */
34521
33938
) {
34522
 
        imdi_imp *p = (imdi_imp *)(s->impl);
34523
 
        unsigned char *ip0 = (unsigned char *)inp[0];
34524
 
        unsigned short *op0 = (unsigned short *)outp[0];
34525
 
        unsigned char *ep = ip0 + npix * 8 ;
34526
 
        pointer it0 = (pointer)p->in_tables[0];
34527
 
        pointer it1 = (pointer)p->in_tables[1];
34528
 
        pointer it2 = (pointer)p->in_tables[2];
34529
 
        pointer it3 = (pointer)p->in_tables[3];
34530
 
        pointer it4 = (pointer)p->in_tables[4];
34531
 
        pointer it5 = (pointer)p->in_tables[5];
34532
 
        pointer it6 = (pointer)p->in_tables[6];
34533
 
        pointer it7 = (pointer)p->in_tables[7];
34534
 
        pointer ot0 = (pointer)p->out_tables[0];
34535
 
        pointer ot1 = (pointer)p->out_tables[1];
34536
 
        pointer ot2 = (pointer)p->out_tables[2];
34537
 
        pointer ot3 = (pointer)p->out_tables[3];
34538
 
        pointer ot4 = (pointer)p->out_tables[4];
34539
 
        pointer ot5 = (pointer)p->out_tables[5];
34540
 
        pointer ot6 = (pointer)p->out_tables[6];
34541
 
        pointer ot7 = (pointer)p->out_tables[7];
34542
 
        pointer im_base = (pointer)p->im_table;
34543
 
        
34544
 
        for(;ip0 < ep; ip0 += 8, op0 += 8) {
34545
 
                unsigned int ova0;      /* Output value accumulator */
34546
 
                unsigned int ova1;      /* Output value accumulator */
34547
 
                unsigned int ova2;      /* Output value accumulator */
34548
 
                unsigned int ova3;      /* Output value accumulator */
34549
 
                {
34550
 
                        pointer imp;
34551
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
34552
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
34553
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
34554
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
34555
 
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
34556
 
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
34557
 
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
34558
 
                        unsigned int wo7;       /* Weighting value and vertex offset variable */
34559
 
                        {
34560
 
                                unsigned int ti_i;      /* Interpolation index variable */
34561
 
                                
34562
 
                                ti_i  = IT_IX(it0, ip0[0]);
34563
 
                                wo0   = IT_WO(it0, ip0[0]);
34564
 
                                ti_i += IT_IX(it1, ip0[1]);
34565
 
                                wo1   = IT_WO(it1, ip0[1]);
34566
 
                                ti_i += IT_IX(it2, ip0[2]);
34567
 
                                wo2   = IT_WO(it2, ip0[2]);
34568
 
                                ti_i += IT_IX(it3, ip0[3]);
34569
 
                                wo3   = IT_WO(it3, ip0[3]);
34570
 
                                ti_i += IT_IX(it4, ip0[4]);
34571
 
                                wo4   = IT_WO(it4, ip0[4]);
34572
 
                                ti_i += IT_IX(it5, ip0[5]);
34573
 
                                wo5   = IT_WO(it5, ip0[5]);
34574
 
                                ti_i += IT_IX(it6, ip0[6]);
34575
 
                                wo6   = IT_WO(it6, ip0[6]);
34576
 
                                ti_i += IT_IX(it7, ip0[7]);
34577
 
                                wo7   = IT_WO(it7, ip0[7]);
34578
 
                                
34579
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
34580
 
                                
34581
 
                                /* Sort weighting values and vertex offset values */
34582
 
                                CEX(wo0, wo1);
34583
 
                                CEX(wo0, wo2);
34584
 
                                CEX(wo0, wo3);
34585
 
                                CEX(wo0, wo4);
34586
 
                                CEX(wo0, wo5);
34587
 
                                CEX(wo0, wo6);
34588
 
                                CEX(wo0, wo7);
34589
 
                                CEX(wo1, wo2);
34590
 
                                CEX(wo1, wo3);
34591
 
                                CEX(wo1, wo4);
34592
 
                                CEX(wo1, wo5);
34593
 
                                CEX(wo1, wo6);
34594
 
                                CEX(wo1, wo7);
34595
 
                                CEX(wo2, wo3);
34596
 
                                CEX(wo2, wo4);
34597
 
                                CEX(wo2, wo5);
34598
 
                                CEX(wo2, wo6);
34599
 
                                CEX(wo2, wo7);
34600
 
                                CEX(wo3, wo4);
34601
 
                                CEX(wo3, wo5);
34602
 
                                CEX(wo3, wo6);
34603
 
                                CEX(wo3, wo7);
34604
 
                                CEX(wo4, wo5);
34605
 
                                CEX(wo4, wo6);
34606
 
                                CEX(wo4, wo7);
34607
 
                                CEX(wo5, wo6);
34608
 
                                CEX(wo5, wo7);
34609
 
                                CEX(wo6, wo7);
34610
 
                        }
34611
 
                        {
34612
 
                                unsigned int nvof;      /* Next vertex offset value */
34613
 
                                unsigned int vof;       /* Vertex offset value */
34614
 
                                unsigned int vwe;       /* Vertex weighting */
34615
 
                                
34616
 
                                vof = 0;                                /* First vertex offset is 0 */
34617
 
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
34618
 
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
34619
 
                                vwe = 256 - wo0;                /* Baricentric weighting */
34620
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
34621
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
34622
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
34623
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
34624
 
                                vof += nvof;                    /* Move to next vertex */
34625
 
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
34626
 
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
34627
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
34628
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
34629
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
34630
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
34631
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
34632
 
                                vof += nvof;                    /* Move to next vertex */
34633
 
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
34634
 
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
34635
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
34636
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
34637
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
34638
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
34639
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
34640
 
                                vof += nvof;                    /* Move to next vertex */
34641
 
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
34642
 
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
34643
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
34644
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
34645
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
34646
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
34647
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
34648
 
                                vof += nvof;                    /* Move to next vertex */
34649
 
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
34650
 
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
34651
 
                                vwe = wo3 - wo4;                /* Baricentric weighting */
34652
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
34653
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
34654
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
34655
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
34656
 
                                vof += nvof;                    /* Move to next vertex */
34657
 
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
34658
 
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
34659
 
                                vwe = wo4 - wo5;                /* Baricentric weighting */
34660
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
34661
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
34662
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
34663
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
34664
 
                                vof += nvof;                    /* Move to next vertex */
34665
 
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
34666
 
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
34667
 
                                vwe = wo5 - wo6;                /* Baricentric weighting */
34668
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
34669
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
34670
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
34671
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
34672
 
                                vof += nvof;                    /* Move to next vertex */
34673
 
                                nvof = (wo7 & 0x7fffff);        /* Extract offset value */
34674
 
                                wo7 = (wo7 >> 23);              /* Extract weighting value */
34675
 
                                vwe = wo6 - wo7;                /* Baricentric weighting */
34676
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
34677
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
34678
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
34679
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
34680
 
                                vof += nvof;                    /* Move to next vertex */
34681
 
                                vwe = wo7;                              /* Baricentric weighting */
34682
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
34683
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
34684
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
34685
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
34686
 
                        }
34687
 
                }
34688
 
                {
34689
 
                        unsigned int oti;       /* Vertex offset value */
34690
 
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
34691
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
34692
 
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
34693
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
34694
 
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
34695
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
34696
 
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
34697
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
34698
 
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
34699
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
34700
 
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
34701
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
34702
 
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
34703
 
                        op0[6] = OT_E(ot6, oti);        /* Write result */
34704
 
                        oti = ((ova3 >> 24) & 0xff);    /* Extract integer part of result */
34705
 
                        op0[7] = OT_E(ot7, oti);        /* Write result */
34706
 
                }
34707
 
        }
 
33939
        imdi_imp *p = (imdi_imp *)(s->impl);
 
33940
        unsigned char *ip0 = (unsigned char *)inp[0];
 
33941
        unsigned short *op0 = (unsigned short *)outp[0];
 
33942
        unsigned char *ep = ip0 + npix * 8 ;
 
33943
        pointer it0 = (pointer)p->in_tables[0];
 
33944
        pointer it1 = (pointer)p->in_tables[1];
 
33945
        pointer it2 = (pointer)p->in_tables[2];
 
33946
        pointer it3 = (pointer)p->in_tables[3];
 
33947
        pointer it4 = (pointer)p->in_tables[4];
 
33948
        pointer it5 = (pointer)p->in_tables[5];
 
33949
        pointer it6 = (pointer)p->in_tables[6];
 
33950
        pointer it7 = (pointer)p->in_tables[7];
 
33951
        pointer ot0 = (pointer)p->out_tables[0];
 
33952
        pointer ot1 = (pointer)p->out_tables[1];
 
33953
        pointer ot2 = (pointer)p->out_tables[2];
 
33954
        pointer ot3 = (pointer)p->out_tables[3];
 
33955
        pointer ot4 = (pointer)p->out_tables[4];
 
33956
        pointer ot5 = (pointer)p->out_tables[5];
 
33957
        pointer ot6 = (pointer)p->out_tables[6];
 
33958
        pointer ot7 = (pointer)p->out_tables[7];
 
33959
        pointer im_base = (pointer)p->im_table;
 
33960
 
 
33961
        for(;ip0 < ep; ip0 += 8, op0 += 8) {
 
33962
                unsigned int ova0;      /* Output value accumulator */
 
33963
                unsigned int ova1;      /* Output value accumulator */
 
33964
                unsigned int ova2;      /* Output value accumulator */
 
33965
                unsigned int ova3;      /* Output value accumulator */
 
33966
                {
 
33967
                        pointer imp;
 
33968
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
33969
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
33970
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
33971
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
33972
                        unsigned int wo4;       /* Weighting value and vertex offset variable */
 
33973
                        unsigned int wo5;       /* Weighting value and vertex offset variable */
 
33974
                        unsigned int wo6;       /* Weighting value and vertex offset variable */
 
33975
                        unsigned int wo7;       /* Weighting value and vertex offset variable */
 
33976
                        {
 
33977
                                unsigned int ti_i;      /* Interpolation index variable */
 
33978
 
 
33979
                                ti_i  = IT_IX(it0, ip0[0]);
 
33980
                                wo0   = IT_WO(it0, ip0[0]);
 
33981
                                ti_i += IT_IX(it1, ip0[1]);
 
33982
                                wo1   = IT_WO(it1, ip0[1]);
 
33983
                                ti_i += IT_IX(it2, ip0[2]);
 
33984
                                wo2   = IT_WO(it2, ip0[2]);
 
33985
                                ti_i += IT_IX(it3, ip0[3]);
 
33986
                                wo3   = IT_WO(it3, ip0[3]);
 
33987
                                ti_i += IT_IX(it4, ip0[4]);
 
33988
                                wo4   = IT_WO(it4, ip0[4]);
 
33989
                                ti_i += IT_IX(it5, ip0[5]);
 
33990
                                wo5   = IT_WO(it5, ip0[5]);
 
33991
                                ti_i += IT_IX(it6, ip0[6]);
 
33992
                                wo6   = IT_WO(it6, ip0[6]);
 
33993
                                ti_i += IT_IX(it7, ip0[7]);
 
33994
                                wo7   = IT_WO(it7, ip0[7]);
 
33995
 
 
33996
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
33997
 
 
33998
                                /* Sort weighting values and vertex offset values */
 
33999
                                CEX(wo0, wo1);
 
34000
                                CEX(wo0, wo2);
 
34001
                                CEX(wo0, wo3);
 
34002
                                CEX(wo0, wo4);
 
34003
                                CEX(wo0, wo5);
 
34004
                                CEX(wo0, wo6);
 
34005
                                CEX(wo0, wo7);
 
34006
                                CEX(wo1, wo2);
 
34007
                                CEX(wo1, wo3);
 
34008
                                CEX(wo1, wo4);
 
34009
                                CEX(wo1, wo5);
 
34010
                                CEX(wo1, wo6);
 
34011
                                CEX(wo1, wo7);
 
34012
                                CEX(wo2, wo3);
 
34013
                                CEX(wo2, wo4);
 
34014
                                CEX(wo2, wo5);
 
34015
                                CEX(wo2, wo6);
 
34016
                                CEX(wo2, wo7);
 
34017
                                CEX(wo3, wo4);
 
34018
                                CEX(wo3, wo5);
 
34019
                                CEX(wo3, wo6);
 
34020
                                CEX(wo3, wo7);
 
34021
                                CEX(wo4, wo5);
 
34022
                                CEX(wo4, wo6);
 
34023
                                CEX(wo4, wo7);
 
34024
                                CEX(wo5, wo6);
 
34025
                                CEX(wo5, wo7);
 
34026
                                CEX(wo6, wo7);
 
34027
                        }
 
34028
                        {
 
34029
                                unsigned int nvof;      /* Next vertex offset value */
 
34030
                                unsigned int vof;       /* Vertex offset value */
 
34031
                                unsigned int vwe;       /* Vertex weighting */
 
34032
 
 
34033
                                vof = 0;                                /* First vertex offset is 0 */
 
34034
                                nvof = (wo0 & 0x7fffff);        /* Extract offset value */
 
34035
                                wo0 = (wo0 >> 23);              /* Extract weighting value */
 
34036
                                vwe = 256 - wo0;                /* Baricentric weighting */
 
34037
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
34038
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
34039
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
34040
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
34041
                                vof += nvof;                    /* Move to next vertex */
 
34042
                                nvof = (wo1 & 0x7fffff);        /* Extract offset value */
 
34043
                                wo1 = (wo1 >> 23);              /* Extract weighting value */
 
34044
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
34045
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
34046
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
34047
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
34048
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
34049
                                vof += nvof;                    /* Move to next vertex */
 
34050
                                nvof = (wo2 & 0x7fffff);        /* Extract offset value */
 
34051
                                wo2 = (wo2 >> 23);              /* Extract weighting value */
 
34052
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
34053
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
34054
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
34055
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
34056
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
34057
                                vof += nvof;                    /* Move to next vertex */
 
34058
                                nvof = (wo3 & 0x7fffff);        /* Extract offset value */
 
34059
                                wo3 = (wo3 >> 23);              /* Extract weighting value */
 
34060
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
34061
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
34062
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
34063
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
34064
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
34065
                                vof += nvof;                    /* Move to next vertex */
 
34066
                                nvof = (wo4 & 0x7fffff);        /* Extract offset value */
 
34067
                                wo4 = (wo4 >> 23);              /* Extract weighting value */
 
34068
                                vwe = wo3 - wo4;                /* Baricentric weighting */
 
34069
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
34070
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
34071
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
34072
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
34073
                                vof += nvof;                    /* Move to next vertex */
 
34074
                                nvof = (wo5 & 0x7fffff);        /* Extract offset value */
 
34075
                                wo5 = (wo5 >> 23);              /* Extract weighting value */
 
34076
                                vwe = wo4 - wo5;                /* Baricentric weighting */
 
34077
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
34078
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
34079
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
34080
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
34081
                                vof += nvof;                    /* Move to next vertex */
 
34082
                                nvof = (wo6 & 0x7fffff);        /* Extract offset value */
 
34083
                                wo6 = (wo6 >> 23);              /* Extract weighting value */
 
34084
                                vwe = wo5 - wo6;                /* Baricentric weighting */
 
34085
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
34086
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
34087
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
34088
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
34089
                                vof += nvof;                    /* Move to next vertex */
 
34090
                                nvof = (wo7 & 0x7fffff);        /* Extract offset value */
 
34091
                                wo7 = (wo7 >> 23);              /* Extract weighting value */
 
34092
                                vwe = wo6 - wo7;                /* Baricentric weighting */
 
34093
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
34094
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
34095
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
34096
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
34097
                                vof += nvof;                    /* Move to next vertex */
 
34098
                                vwe = wo7;                              /* Baricentric weighting */
 
34099
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
34100
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
34101
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
34102
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
34103
                        }
 
34104
                }
 
34105
                {
 
34106
                        unsigned int oti;       /* Vertex offset value */
 
34107
                        oti = ((ova0 >> 8) & 0xff);     /* Extract integer part of result */
 
34108
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
34109
                        oti = ((ova0 >> 24) & 0xff);    /* Extract integer part of result */
 
34110
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
34111
                        oti = ((ova1 >> 8) & 0xff);     /* Extract integer part of result */
 
34112
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
34113
                        oti = ((ova1 >> 24) & 0xff);    /* Extract integer part of result */
 
34114
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
34115
                        oti = ((ova2 >> 8) & 0xff);     /* Extract integer part of result */
 
34116
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
34117
                        oti = ((ova2 >> 24) & 0xff);    /* Extract integer part of result */
 
34118
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
34119
                        oti = ((ova3 >> 8) & 0xff);     /* Extract integer part of result */
 
34120
                        op0[6] = OT_E(ot6, oti);        /* Write result */
 
34121
                        oti = ((ova3 >> 24) & 0xff);    /* Extract integer part of result */
 
34122
                        op0[7] = OT_E(ot7, oti);        /* Write result */
 
34123
                }
 
34124
        }
34708
34125
}
34709
34126
#undef IT_WO
34710
34127
#undef IT_IX
34717
34134
imdi_k98_gen(
34718
34135
genspec *g                      /* structure to be initialised */
34719
34136
) {
34720
 
        static unsigned char data[] = {
34721
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
34722
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
34723
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34724
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
34725
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
34726
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
34727
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
34728
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
34729
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
34730
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
34731
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
34732
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34733
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34734
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34735
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34736
 
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
34737
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
34738
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
34739
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
34740
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
34741
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
34742
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
34743
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
34744
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
34745
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
34746
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
34747
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
34748
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
34749
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34750
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34751
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34752
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34753
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
34754
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
34755
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
34756
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
34757
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
34758
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
34759
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34760
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
34761
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
34762
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
34763
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
34764
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
34765
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
34766
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
34767
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
34768
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
34769
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34770
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
34771
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
34772
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x38, 0x5f, 0x38, 0x5f, 
34773
 
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66, 
34774
 
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
34775
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
34776
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
34777
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
34778
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
34779
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
34780
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34781
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34782
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34783
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34784
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
34785
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x39, 0x38, 
34786
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34787
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34788
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
34789
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
34790
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
34791
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
34792
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
34793
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
34794
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
34795
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
34796
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
34797
 
                0x00, 0xf0, 0x04, 0x08 
34798
 
        };      /* Structure image */
34799
 
        
34800
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
34137
        static unsigned char data[] = {
 
34138
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
34139
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
34140
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34141
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
34142
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
34143
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
34144
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
34145
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
34146
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
34147
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
34148
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
34149
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34150
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34151
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34152
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34153
                0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
34154
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
34155
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
34156
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
34157
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
34158
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
34159
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
34160
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
34161
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
34162
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
34163
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
34164
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
34165
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
34166
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34167
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34168
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34169
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34170
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
34171
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
34172
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
34173
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
34174
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
34175
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
34176
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34177
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
34178
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
34179
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
34180
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
34181
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
34182
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
34183
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
34184
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
34185
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
34186
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34187
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
34188
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
34189
                0x2c, 0xf3, 0xdc, 0xb7, 0x38, 0x5f, 0x38, 0x5f,
 
34190
                0x69, 0x38, 0x5f, 0x69, 0x31, 0x36, 0x5f, 0x66,
 
34191
                0x00, 0xff, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
34192
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
34193
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
34194
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
34195
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
34196
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
34197
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34198
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34199
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34200
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34201
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
34202
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x39, 0x38,
 
34203
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34204
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34205
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
34206
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
34207
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
34208
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
34209
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
34210
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
34211
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
34212
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
34213
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
34214
                0x00, 0xf0, 0x04, 0x08
 
34215
        };      /* Structure image */
 
34216
 
 
34217
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
34801
34218
}
34802
34219
 
34803
34220
static void
34804
34221
imdi_k98_tab(
34805
34222
tabspec *t                      /* structure to be initialised */
34806
34223
) {
34807
 
        static unsigned char data[] = {
34808
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
34809
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
34810
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
34811
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
34812
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
34813
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
34814
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
34815
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
34816
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
34817
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34818
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
34819
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
34820
 
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
34821
 
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00, 
34822
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
34823
 
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
34824
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
34825
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
34826
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34827
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34828
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
34829
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
34830
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
34831
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
34832
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34833
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34834
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34835
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34836
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
34837
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
34838
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
34839
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
34840
 
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff 
34841
 
        };      /* Structure image */
34842
 
        
34843
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
34224
        static unsigned char data[] = {
 
34225
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
34226
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
34227
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
34228
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
34229
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
34230
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
34231
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
34232
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
34233
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
34234
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34235
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
34236
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
34237
                0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
34238
                0x00, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x00,
 
34239
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
34240
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
34241
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
34242
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
34243
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34244
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34245
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
34246
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
34247
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
34248
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
34249
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34250
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34251
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34252
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34253
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
34254
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
34255
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
34256
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
34257
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff
 
34258
        };      /* Structure image */
 
34259
 
 
34260
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
34844
34261
}
34845
34262
 
34846
 
 
34847
 
 
34848
 
 
34849
 
 
34850
 
 
34851
34263
/* Integer Multi-Dimensional Interpolation */
34852
34264
/* Interpolation Kernel Code */
34853
34265
/* Generated by cgen */
34856
34268
 
34857
34269
/* see the Licence.txt file for licencing details.*/
34858
34270
 
34859
 
 
34860
34271
/*
34861
34272
   Interpolation kernel specs:
34862
34273
 
34930
34341
void **inp,             /* pointer to input pointers */
34931
34342
unsigned int npix       /* Number of pixels to process */
34932
34343
) {
34933
 
        imdi_imp *p = (imdi_imp *)(s->impl);
34934
 
        unsigned short *ip0 = (unsigned short *)inp[0];
34935
 
        unsigned short *op0 = (unsigned short *)outp[0];
34936
 
        unsigned short *ep = ip0 + npix * 1 ;
34937
 
        pointer it0 = (pointer)p->in_tables[0];
34938
 
        pointer ot0 = (pointer)p->out_tables[0];
34939
 
        pointer im_base = (pointer)p->im_table;
34940
 
        
34941
 
        for(;ip0 < ep; ip0 += 1, op0 += 1) {
34942
 
                unsigned int ova0;      /* Output value accumulator */
34943
 
                {
34944
 
                        pointer imp;
34945
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
34946
 
                        {
34947
 
                                unsigned int ti;                /* Input table entry variable */
34948
 
                                unsigned int ti_i;      /* Interpolation index variable */
34949
 
                                
34950
 
                                ti = IT_IT(it0, ip0[0]);
34951
 
                                wo0   = (ti & 0xfffff); /* Extract weighting/vertex offset value */
34952
 
                                ti_i  = (ti >> 20);     /* Extract interpolation table value */
34953
 
                                
34954
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
34955
 
                                
34956
 
                                /* Sort weighting values and vertex offset values */
34957
 
                        }
34958
 
                        {
34959
 
                                unsigned int nvof;      /* Next vertex offset value */
34960
 
                                unsigned int vof;       /* Vertex offset value */
34961
 
                                unsigned int vwe;       /* Vertex weighting */
34962
 
                                
34963
 
                                vof = 0;                                /* First vertex offset is 0 */
34964
 
                                nvof = (wo0 & 0x7);     /* Extract offset value */
34965
 
                                wo0 = (wo0 >> 3);               /* Extract weighting value */
34966
 
                                vwe = 65536 - wo0;              /* Baricentric weighting */
34967
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
34968
 
                                vof += nvof;                    /* Move to next vertex */
34969
 
                                vwe = wo0;                              /* Baricentric weighting */
34970
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
34971
 
                        }
34972
 
                }
34973
 
                {
34974
 
                        unsigned int oti;       /* Vertex offset value */
34975
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
34976
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
34977
 
                }
34978
 
        }
 
34344
        imdi_imp *p = (imdi_imp *)(s->impl);
 
34345
        unsigned short *ip0 = (unsigned short *)inp[0];
 
34346
        unsigned short *op0 = (unsigned short *)outp[0];
 
34347
        unsigned short *ep = ip0 + npix * 1 ;
 
34348
        pointer it0 = (pointer)p->in_tables[0];
 
34349
        pointer ot0 = (pointer)p->out_tables[0];
 
34350
        pointer im_base = (pointer)p->im_table;
 
34351
 
 
34352
        for(;ip0 < ep; ip0 += 1, op0 += 1) {
 
34353
                unsigned int ova0;      /* Output value accumulator */
 
34354
                {
 
34355
                        pointer imp;
 
34356
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
34357
                        {
 
34358
                                unsigned int ti;                /* Input table entry variable */
 
34359
                                unsigned int ti_i;      /* Interpolation index variable */
 
34360
 
 
34361
                                ti = IT_IT(it0, ip0[0]);
 
34362
                                wo0   = (ti & 0xfffff); /* Extract weighting/vertex offset value */
 
34363
                                ti_i  = (ti >> 20);     /* Extract interpolation table value */
 
34364
 
 
34365
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
34366
 
 
34367
                                /* Sort weighting values and vertex offset values */
 
34368
                        }
 
34369
                        {
 
34370
                                unsigned int nvof;      /* Next vertex offset value */
 
34371
                                unsigned int vof;       /* Vertex offset value */
 
34372
                                unsigned int vwe;       /* Vertex weighting */
 
34373
 
 
34374
                                vof = 0;                                /* First vertex offset is 0 */
 
34375
                                nvof = (wo0 & 0x7);     /* Extract offset value */
 
34376
                                wo0 = (wo0 >> 3);               /* Extract weighting value */
 
34377
                                vwe = 65536 - wo0;              /* Baricentric weighting */
 
34378
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
34379
                                vof += nvof;                    /* Move to next vertex */
 
34380
                                vwe = wo0;                              /* Baricentric weighting */
 
34381
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
34382
                        }
 
34383
                }
 
34384
                {
 
34385
                        unsigned int oti;       /* Vertex offset value */
 
34386
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
34387
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
34388
                }
 
34389
        }
34979
34390
}
34980
34391
#undef IT_IT
34981
34392
#undef CEX
34987
34398
imdi_k99_gen(
34988
34399
genspec *g                      /* structure to be initialised */
34989
34400
) {
34990
 
        static unsigned char data[] = {
34991
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
34992
 
                0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
34993
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
34994
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
34995
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
34996
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
34997
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
34998
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
34999
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
35000
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
35001
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
35002
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35003
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35004
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35005
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35006
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35007
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
35008
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
35009
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
35010
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
35011
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35012
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35013
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35014
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35015
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
35016
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
35017
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
35018
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
35019
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35020
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35021
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35022
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35023
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35024
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35025
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35026
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35027
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
35028
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
35029
 
                0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35030
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
35031
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
35032
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
35033
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
35034
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
35035
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
35036
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
35037
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
35038
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
35039
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35040
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
35041
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
35042
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x31, 0x5f, 0x31, 0x5f, 
35043
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
35044
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
35045
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
35046
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
35047
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
35048
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
35049
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
35050
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35051
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35052
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35053
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35054
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
35055
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x39, 0x39, 
35056
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35057
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35058
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
35059
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
35060
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
35061
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
35062
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
35063
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
35064
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
35065
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
35066
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
35067
 
                0x00, 0xf0, 0x04, 0x08 
35068
 
        };      /* Structure image */
35069
 
        
35070
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
34401
        static unsigned char data[] = {
 
34402
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
34403
                0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
34404
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34405
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
34406
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
34407
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
34408
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
34409
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
34410
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
34411
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
34412
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
34413
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34414
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34415
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34416
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34417
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
34418
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
34419
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
34420
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
34421
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
34422
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
34423
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
34424
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
34425
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
34426
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
34427
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
34428
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
34429
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
34430
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34431
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34432
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34433
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34434
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
34435
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
34436
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
34437
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
34438
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
34439
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
34440
                0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34441
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
34442
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
34443
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
34444
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
34445
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
34446
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
34447
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
34448
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
34449
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
34450
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34451
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
34452
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
34453
                0x2c, 0xf3, 0xdc, 0xb7, 0x31, 0x5f, 0x31, 0x5f,
 
34454
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
34455
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
34456
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
34457
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
34458
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
34459
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
34460
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
34461
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34462
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34463
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34464
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34465
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
34466
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x39, 0x39,
 
34467
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34468
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34469
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
34470
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
34471
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
34472
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
34473
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
34474
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
34475
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
34476
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
34477
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
34478
                0x00, 0xf0, 0x04, 0x08
 
34479
        };      /* Structure image */
 
34480
 
 
34481
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
35071
34482
}
35072
34483
 
35073
34484
static void
35074
34485
imdi_k99_tab(
35075
34486
tabspec *t                      /* structure to be initialised */
35076
34487
) {
35077
 
        static unsigned char data[] = {
35078
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35079
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
35080
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
35081
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
35082
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
35083
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
35084
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
35085
 
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
35086
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
35087
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35088
 
                0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 
35089
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
35090
 
                0x11, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
35091
 
                0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
35092
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
35093
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35094
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
35095
 
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
35096
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35097
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35098
 
                0x00, 0x00, 0x00, 0x00, 0xa1, 0xd4, 0xe2, 0xb7, 
35099
 
                0xf4, 0xd5, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
35100
 
                0xff, 0xff, 0xff, 0x31, 0x00, 0x00, 0x00, 0x00, 
35101
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
35102
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35103
 
                0xa0, 0xd6, 0x83, 0xbf, 0x8b, 0x22, 0xe2, 0xb7, 
35104
 
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08, 
35105
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
35106
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35107
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
35108
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
35109
 
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
35110
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
35111
 
        };      /* Structure image */
35112
 
        
35113
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
34488
        static unsigned char data[] = {
 
34489
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34490
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
34491
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
34492
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
34493
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
34494
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
34495
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
34496
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
34497
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
34498
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34499
                0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
 
34500
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
34501
                0x11, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
34502
                0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
34503
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
34504
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34505
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
34506
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
34507
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34508
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34509
                0x00, 0x00, 0x00, 0x00, 0xa1, 0xd4, 0xe2, 0xb7,
 
34510
                0xf4, 0xd5, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
34511
                0xff, 0xff, 0xff, 0x31, 0x00, 0x00, 0x00, 0x00,
 
34512
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
34513
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34514
                0xa0, 0xd6, 0x83, 0xbf, 0x8b, 0x22, 0xe2, 0xb7,
 
34515
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08,
 
34516
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
34517
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
34518
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
34519
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
34520
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
34521
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
34522
        };      /* Structure image */
 
34523
 
 
34524
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
35114
34525
}
35115
34526
 
35116
 
 
35117
 
 
35118
 
 
35119
 
 
35120
 
 
35121
34527
/* Integer Multi-Dimensional Interpolation */
35122
34528
/* Interpolation Kernel Code */
35123
34529
/* Generated by cgen */
35126
34532
 
35127
34533
/* see the Licence.txt file for licencing details.*/
35128
34534
 
35129
 
 
35130
34535
/*
35131
34536
   Interpolation kernel specs:
35132
34537
 
35207
34612
void **inp,             /* pointer to input pointers */
35208
34613
unsigned int npix       /* Number of pixels to process */
35209
34614
) {
35210
 
        imdi_imp *p = (imdi_imp *)(s->impl);
35211
 
        unsigned short *ip0 = (unsigned short *)inp[0];
35212
 
        unsigned short *op0 = (unsigned short *)outp[0];
35213
 
        unsigned short *ep = ip0 + npix * 3 ;
35214
 
        pointer it0 = (pointer)p->in_tables[0];
35215
 
        pointer it1 = (pointer)p->in_tables[1];
35216
 
        pointer it2 = (pointer)p->in_tables[2];
35217
 
        pointer ot0 = (pointer)p->out_tables[0];
35218
 
        pointer im_base = (pointer)p->im_table;
35219
 
        
35220
 
        for(;ip0 < ep; ip0 += 3, op0 += 1) {
35221
 
                unsigned int ova0;      /* Output value accumulator */
35222
 
                {
35223
 
                        pointer imp;
35224
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
35225
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
35226
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
35227
 
                        {
35228
 
                                unsigned int ti_i;      /* Interpolation index variable */
35229
 
                                
35230
 
                                ti_i  = IT_IX(it0, ip0[0]);
35231
 
                                wo0   = IT_WO(it0, ip0[0]);
35232
 
                                ti_i += IT_IX(it1, ip0[1]);
35233
 
                                wo1   = IT_WO(it1, ip0[1]);
35234
 
                                ti_i += IT_IX(it2, ip0[2]);
35235
 
                                wo2   = IT_WO(it2, ip0[2]);
35236
 
                                
35237
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
35238
 
                                
35239
 
                                /* Sort weighting values and vertex offset values */
35240
 
                                CEX(wo0, wo1);
35241
 
                                CEX(wo0, wo2);
35242
 
                                CEX(wo1, wo2);
35243
 
                        }
35244
 
                        {
35245
 
                                unsigned int nvof;      /* Next vertex offset value */
35246
 
                                unsigned int vof;       /* Vertex offset value */
35247
 
                                unsigned int vwe;       /* Vertex weighting */
35248
 
                                
35249
 
                                vof = 0;                                /* First vertex offset is 0 */
35250
 
                                nvof = (wo0 & 0x7fff);  /* Extract offset value */
35251
 
                                wo0 = (wo0 >> 15);              /* Extract weighting value */
35252
 
                                vwe = 65536 - wo0;              /* Baricentric weighting */
35253
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
35254
 
                                vof += nvof;                    /* Move to next vertex */
35255
 
                                nvof = (wo1 & 0x7fff);  /* Extract offset value */
35256
 
                                wo1 = (wo1 >> 15);              /* Extract weighting value */
35257
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
35258
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
35259
 
                                vof += nvof;                    /* Move to next vertex */
35260
 
                                nvof = (wo2 & 0x7fff);  /* Extract offset value */
35261
 
                                wo2 = (wo2 >> 15);              /* Extract weighting value */
35262
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
35263
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
35264
 
                                vof += nvof;                    /* Move to next vertex */
35265
 
                                vwe = wo2;                              /* Baricentric weighting */
35266
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
35267
 
                        }
35268
 
                }
35269
 
                {
35270
 
                        unsigned int oti;       /* Vertex offset value */
35271
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
35272
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
35273
 
                }
35274
 
        }
 
34615
        imdi_imp *p = (imdi_imp *)(s->impl);
 
34616
        unsigned short *ip0 = (unsigned short *)inp[0];
 
34617
        unsigned short *op0 = (unsigned short *)outp[0];
 
34618
        unsigned short *ep = ip0 + npix * 3 ;
 
34619
        pointer it0 = (pointer)p->in_tables[0];
 
34620
        pointer it1 = (pointer)p->in_tables[1];
 
34621
        pointer it2 = (pointer)p->in_tables[2];
 
34622
        pointer ot0 = (pointer)p->out_tables[0];
 
34623
        pointer im_base = (pointer)p->im_table;
 
34624
 
 
34625
        for(;ip0 < ep; ip0 += 3, op0 += 1) {
 
34626
                unsigned int ova0;      /* Output value accumulator */
 
34627
                {
 
34628
                        pointer imp;
 
34629
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
34630
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
34631
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
34632
                        {
 
34633
                                unsigned int ti_i;      /* Interpolation index variable */
 
34634
 
 
34635
                                ti_i  = IT_IX(it0, ip0[0]);
 
34636
                                wo0   = IT_WO(it0, ip0[0]);
 
34637
                                ti_i += IT_IX(it1, ip0[1]);
 
34638
                                wo1   = IT_WO(it1, ip0[1]);
 
34639
                                ti_i += IT_IX(it2, ip0[2]);
 
34640
                                wo2   = IT_WO(it2, ip0[2]);
 
34641
 
 
34642
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
34643
 
 
34644
                                /* Sort weighting values and vertex offset values */
 
34645
                                CEX(wo0, wo1);
 
34646
                                CEX(wo0, wo2);
 
34647
                                CEX(wo1, wo2);
 
34648
                        }
 
34649
                        {
 
34650
                                unsigned int nvof;      /* Next vertex offset value */
 
34651
                                unsigned int vof;       /* Vertex offset value */
 
34652
                                unsigned int vwe;       /* Vertex weighting */
 
34653
 
 
34654
                                vof = 0;                                /* First vertex offset is 0 */
 
34655
                                nvof = (wo0 & 0x7fff);  /* Extract offset value */
 
34656
                                wo0 = (wo0 >> 15);              /* Extract weighting value */
 
34657
                                vwe = 65536 - wo0;              /* Baricentric weighting */
 
34658
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
34659
                                vof += nvof;                    /* Move to next vertex */
 
34660
                                nvof = (wo1 & 0x7fff);  /* Extract offset value */
 
34661
                                wo1 = (wo1 >> 15);              /* Extract weighting value */
 
34662
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
34663
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
34664
                                vof += nvof;                    /* Move to next vertex */
 
34665
                                nvof = (wo2 & 0x7fff);  /* Extract offset value */
 
34666
                                wo2 = (wo2 >> 15);              /* Extract weighting value */
 
34667
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
34668
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
34669
                                vof += nvof;                    /* Move to next vertex */
 
34670
                                vwe = wo2;                              /* Baricentric weighting */
 
34671
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
34672
                        }
 
34673
                }
 
34674
                {
 
34675
                        unsigned int oti;       /* Vertex offset value */
 
34676
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
34677
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
34678
                }
 
34679
        }
35275
34680
}
35276
34681
#undef IT_WO
35277
34682
#undef IT_IX
35284
34689
imdi_k100_gen(
35285
34690
genspec *g                      /* structure to be initialised */
35286
34691
) {
35287
 
        static unsigned char data[] = {
35288
 
                0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
35289
 
                0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
35290
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35291
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35292
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35293
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
35294
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
35295
 
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
35296
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
35297
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
35298
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
35299
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35300
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35301
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35302
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35303
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35304
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35305
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
35306
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
35307
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
35308
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35309
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35310
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35311
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35312
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
35313
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
35314
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
35315
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
35316
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35317
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35318
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35319
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35320
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35321
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35322
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35323
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35324
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
35325
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
35326
 
                0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35327
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
35328
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
35329
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
35330
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
35331
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
35332
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
35333
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
35334
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
35335
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
35336
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35337
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
35338
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
35339
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x33, 0x5f, 0x31, 0x5f, 
35340
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
35341
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
35342
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
35343
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
35344
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
35345
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
35346
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
35347
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35348
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35349
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35350
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35351
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
35352
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x30, 
35353
 
                0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35354
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35355
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
35356
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
35357
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
35358
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
35359
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
35360
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
35361
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
35362
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
35363
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
35364
 
                0x00, 0xf0, 0x04, 0x08 
35365
 
        };      /* Structure image */
35366
 
        
35367
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
34692
        static unsigned char data[] = {
 
34693
                0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
34694
                0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
34695
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34696
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
34697
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
34698
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
34699
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
34700
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
34701
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
34702
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
34703
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
34704
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34705
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34706
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34707
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34708
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
34709
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
34710
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
34711
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
34712
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
34713
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
34714
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
34715
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
34716
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
34717
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
34718
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
34719
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
34720
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
34721
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34722
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34723
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34724
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34725
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
34726
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
34727
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
34728
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
34729
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
34730
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
34731
                0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34732
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
34733
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
34734
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
34735
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
34736
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
34737
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
34738
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
34739
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
34740
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
34741
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34742
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
34743
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
34744
                0x2c, 0xf3, 0xdc, 0xb7, 0x33, 0x5f, 0x31, 0x5f,
 
34745
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
34746
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
34747
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
34748
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
34749
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
34750
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
34751
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
34752
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34753
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34754
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34755
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34756
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
34757
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x30,
 
34758
                0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34759
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34760
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
34761
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
34762
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
34763
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
34764
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
34765
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
34766
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
34767
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
34768
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
34769
                0x00, 0xf0, 0x04, 0x08
 
34770
        };      /* Structure image */
 
34771
 
 
34772
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
35368
34773
}
35369
34774
 
35370
34775
static void
35371
34776
imdi_k100_tab(
35372
34777
tabspec *t                      /* structure to be initialised */
35373
34778
) {
35374
 
        static unsigned char data[] = {
35375
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
35376
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
35377
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
35378
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
35379
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
35380
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
35381
 
                0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
35382
 
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
35383
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
35384
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35385
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
35386
 
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
35387
 
                0x11, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
35388
 
                0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 
35389
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
35390
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35391
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
35392
 
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
35393
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35394
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35395
 
                0x00, 0x00, 0x00, 0x00, 0xa1, 0xd4, 0xe2, 0xb7, 
35396
 
                0xf4, 0xd5, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
35397
 
                0xff, 0xff, 0xff, 0x31, 0x00, 0x00, 0x00, 0x00, 
35398
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
35399
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35400
 
                0xa0, 0xd6, 0x83, 0xbf, 0x8b, 0x22, 0xe2, 0xb7, 
35401
 
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08, 
35402
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
35403
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35404
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
35405
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
35406
 
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
35407
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
35408
 
        };      /* Structure image */
35409
 
        
35410
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
34779
        static unsigned char data[] = {
 
34780
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
34781
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
34782
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
34783
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
34784
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
34785
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
34786
                0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
34787
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
34788
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
34789
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34790
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
34791
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
34792
                0x11, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
34793
                0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00,
 
34794
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
34795
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34796
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
34797
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
34798
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34799
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34800
                0x00, 0x00, 0x00, 0x00, 0xa1, 0xd4, 0xe2, 0xb7,
 
34801
                0xf4, 0xd5, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
34802
                0xff, 0xff, 0xff, 0x31, 0x00, 0x00, 0x00, 0x00,
 
34803
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
34804
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
34805
                0xa0, 0xd6, 0x83, 0xbf, 0x8b, 0x22, 0xe2, 0xb7,
 
34806
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08,
 
34807
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
34808
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
34809
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
34810
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
34811
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
34812
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
34813
        };      /* Structure image */
 
34814
 
 
34815
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
35411
34816
}
35412
34817
 
35413
 
 
35414
 
 
35415
 
 
35416
 
 
35417
 
 
35418
34818
/* Integer Multi-Dimensional Interpolation */
35419
34819
/* Interpolation Kernel Code */
35420
34820
/* Generated by cgen */
35423
34823
 
35424
34824
/* see the Licence.txt file for licencing details.*/
35425
34825
 
35426
 
 
35427
34826
/*
35428
34827
   Interpolation kernel specs:
35429
34828
 
35506
34905
void **inp,             /* pointer to input pointers */
35507
34906
unsigned int npix       /* Number of pixels to process */
35508
34907
) {
35509
 
        imdi_imp *p = (imdi_imp *)(s->impl);
35510
 
        unsigned short *ip0 = (unsigned short *)inp[0];
35511
 
        unsigned short *op0 = (unsigned short *)outp[0];
35512
 
        unsigned short *ep = ip0 + npix * 4 ;
35513
 
        pointer it0 = (pointer)p->in_tables[0];
35514
 
        pointer it1 = (pointer)p->in_tables[1];
35515
 
        pointer it2 = (pointer)p->in_tables[2];
35516
 
        pointer it3 = (pointer)p->in_tables[3];
35517
 
        pointer ot0 = (pointer)p->out_tables[0];
35518
 
        pointer im_base = (pointer)p->im_table;
35519
 
        
35520
 
        for(;ip0 < ep; ip0 += 4, op0 += 1) {
35521
 
                unsigned int ova0;      /* Output value accumulator */
35522
 
                {
35523
 
                        pointer imp;
35524
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
35525
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
35526
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
35527
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
35528
 
                        {
35529
 
                                unsigned int ti_i;      /* Interpolation index variable */
35530
 
                                
35531
 
                                ti_i  = IT_IX(it0, ip0[0]);
35532
 
                                wo0   = IT_WO(it0, ip0[0]);
35533
 
                                ti_i += IT_IX(it1, ip0[1]);
35534
 
                                wo1   = IT_WO(it1, ip0[1]);
35535
 
                                ti_i += IT_IX(it2, ip0[2]);
35536
 
                                wo2   = IT_WO(it2, ip0[2]);
35537
 
                                ti_i += IT_IX(it3, ip0[3]);
35538
 
                                wo3   = IT_WO(it3, ip0[3]);
35539
 
                                
35540
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
35541
 
                                
35542
 
                                /* Sort weighting values and vertex offset values */
35543
 
                                CEX(wo0, wo1);
35544
 
                                CEX(wo0, wo2);
35545
 
                                CEX(wo0, wo3);
35546
 
                                CEX(wo1, wo2);
35547
 
                                CEX(wo1, wo3);
35548
 
                                CEX(wo2, wo3);
35549
 
                        }
35550
 
                        {
35551
 
                                unsigned int nvof;      /* Next vertex offset value */
35552
 
                                unsigned int vof;       /* Vertex offset value */
35553
 
                                unsigned int vwe;       /* Vertex weighting */
35554
 
                                
35555
 
                                vof = 0;                                /* First vertex offset is 0 */
35556
 
                                nvof = (wo0 & 0x7fff);  /* Extract offset value */
35557
 
                                wo0 = (wo0 >> 15);              /* Extract weighting value */
35558
 
                                vwe = 65536 - wo0;              /* Baricentric weighting */
35559
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
35560
 
                                vof += nvof;                    /* Move to next vertex */
35561
 
                                nvof = (wo1 & 0x7fff);  /* Extract offset value */
35562
 
                                wo1 = (wo1 >> 15);              /* Extract weighting value */
35563
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
35564
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
35565
 
                                vof += nvof;                    /* Move to next vertex */
35566
 
                                nvof = (wo2 & 0x7fff);  /* Extract offset value */
35567
 
                                wo2 = (wo2 >> 15);              /* Extract weighting value */
35568
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
35569
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
35570
 
                                vof += nvof;                    /* Move to next vertex */
35571
 
                                nvof = (wo3 & 0x7fff);  /* Extract offset value */
35572
 
                                wo3 = (wo3 >> 15);              /* Extract weighting value */
35573
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
35574
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
35575
 
                                vof += nvof;                    /* Move to next vertex */
35576
 
                                vwe = wo3;                              /* Baricentric weighting */
35577
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
35578
 
                        }
35579
 
                }
35580
 
                {
35581
 
                        unsigned int oti;       /* Vertex offset value */
35582
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
35583
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
35584
 
                }
35585
 
        }
 
34908
        imdi_imp *p = (imdi_imp *)(s->impl);
 
34909
        unsigned short *ip0 = (unsigned short *)inp[0];
 
34910
        unsigned short *op0 = (unsigned short *)outp[0];
 
34911
        unsigned short *ep = ip0 + npix * 4 ;
 
34912
        pointer it0 = (pointer)p->in_tables[0];
 
34913
        pointer it1 = (pointer)p->in_tables[1];
 
34914
        pointer it2 = (pointer)p->in_tables[2];
 
34915
        pointer it3 = (pointer)p->in_tables[3];
 
34916
        pointer ot0 = (pointer)p->out_tables[0];
 
34917
        pointer im_base = (pointer)p->im_table;
 
34918
 
 
34919
        for(;ip0 < ep; ip0 += 4, op0 += 1) {
 
34920
                unsigned int ova0;      /* Output value accumulator */
 
34921
                {
 
34922
                        pointer imp;
 
34923
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
34924
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
34925
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
34926
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
34927
                        {
 
34928
                                unsigned int ti_i;      /* Interpolation index variable */
 
34929
 
 
34930
                                ti_i  = IT_IX(it0, ip0[0]);
 
34931
                                wo0   = IT_WO(it0, ip0[0]);
 
34932
                                ti_i += IT_IX(it1, ip0[1]);
 
34933
                                wo1   = IT_WO(it1, ip0[1]);
 
34934
                                ti_i += IT_IX(it2, ip0[2]);
 
34935
                                wo2   = IT_WO(it2, ip0[2]);
 
34936
                                ti_i += IT_IX(it3, ip0[3]);
 
34937
                                wo3   = IT_WO(it3, ip0[3]);
 
34938
 
 
34939
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
34940
 
 
34941
                                /* Sort weighting values and vertex offset values */
 
34942
                                CEX(wo0, wo1);
 
34943
                                CEX(wo0, wo2);
 
34944
                                CEX(wo0, wo3);
 
34945
                                CEX(wo1, wo2);
 
34946
                                CEX(wo1, wo3);
 
34947
                                CEX(wo2, wo3);
 
34948
                        }
 
34949
                        {
 
34950
                                unsigned int nvof;      /* Next vertex offset value */
 
34951
                                unsigned int vof;       /* Vertex offset value */
 
34952
                                unsigned int vwe;       /* Vertex weighting */
 
34953
 
 
34954
                                vof = 0;                                /* First vertex offset is 0 */
 
34955
                                nvof = (wo0 & 0x7fff);  /* Extract offset value */
 
34956
                                wo0 = (wo0 >> 15);              /* Extract weighting value */
 
34957
                                vwe = 65536 - wo0;              /* Baricentric weighting */
 
34958
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
34959
                                vof += nvof;                    /* Move to next vertex */
 
34960
                                nvof = (wo1 & 0x7fff);  /* Extract offset value */
 
34961
                                wo1 = (wo1 >> 15);              /* Extract weighting value */
 
34962
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
34963
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
34964
                                vof += nvof;                    /* Move to next vertex */
 
34965
                                nvof = (wo2 & 0x7fff);  /* Extract offset value */
 
34966
                                wo2 = (wo2 >> 15);              /* Extract weighting value */
 
34967
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
34968
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
34969
                                vof += nvof;                    /* Move to next vertex */
 
34970
                                nvof = (wo3 & 0x7fff);  /* Extract offset value */
 
34971
                                wo3 = (wo3 >> 15);              /* Extract weighting value */
 
34972
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
34973
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
34974
                                vof += nvof;                    /* Move to next vertex */
 
34975
                                vwe = wo3;                              /* Baricentric weighting */
 
34976
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
34977
                        }
 
34978
                }
 
34979
                {
 
34980
                        unsigned int oti;       /* Vertex offset value */
 
34981
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
34982
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
34983
                }
 
34984
        }
35586
34985
}
35587
34986
#undef IT_WO
35588
34987
#undef IT_IX
35595
34994
imdi_k101_gen(
35596
34995
genspec *g                      /* structure to be initialised */
35597
34996
) {
35598
 
        static unsigned char data[] = {
35599
 
                0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
35600
 
                0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
35601
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35602
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35603
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35604
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
35605
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
35606
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
35607
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
35608
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
35609
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
35610
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35611
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35612
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35613
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35614
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35615
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35616
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
35617
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
35618
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
35619
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35620
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35621
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35622
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35623
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
35624
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
35625
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
35626
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
35627
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35628
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35629
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35630
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35631
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35632
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35633
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35634
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35635
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
35636
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
35637
 
                0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35638
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
35639
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
35640
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
35641
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
35642
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
35643
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
35644
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
35645
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
35646
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
35647
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35648
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
35649
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
35650
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x34, 0x5f, 0x31, 0x5f, 
35651
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
35652
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
35653
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
35654
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
35655
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
35656
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
35657
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
35658
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35659
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35660
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35661
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35662
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
35663
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x30, 
35664
 
                0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35665
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35666
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
35667
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
35668
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
35669
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
35670
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
35671
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
35672
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
35673
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
35674
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
35675
 
                0x00, 0xf0, 0x04, 0x08 
35676
 
        };      /* Structure image */
35677
 
        
35678
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
34997
        static unsigned char data[] = {
 
34998
                0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
34999
                0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
35000
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35001
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
35002
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
35003
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
35004
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
35005
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
35006
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
35007
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
35008
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
35009
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35010
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35011
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35012
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35013
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
35014
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
35015
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
35016
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
35017
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
35018
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
35019
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
35020
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
35021
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
35022
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
35023
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
35024
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
35025
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
35026
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35027
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35028
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35029
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35030
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
35031
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
35032
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
35033
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
35034
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
35035
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
35036
                0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35037
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
35038
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
35039
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
35040
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
35041
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
35042
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
35043
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
35044
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
35045
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
35046
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35047
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
35048
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
35049
                0x2c, 0xf3, 0xdc, 0xb7, 0x34, 0x5f, 0x31, 0x5f,
 
35050
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
35051
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
35052
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
35053
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
35054
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
35055
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
35056
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
35057
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35058
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35059
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35060
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35061
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
35062
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x30,
 
35063
                0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35064
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35065
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
35066
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
35067
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
35068
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
35069
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
35070
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
35071
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
35072
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
35073
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
35074
                0x00, 0xf0, 0x04, 0x08
 
35075
        };      /* Structure image */
 
35076
 
 
35077
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
35679
35078
}
35680
35079
 
35681
35080
static void
35682
35081
imdi_k101_tab(
35683
35082
tabspec *t                      /* structure to be initialised */
35684
35083
) {
35685
 
        static unsigned char data[] = {
35686
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
35687
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
35688
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
35689
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
35690
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
35691
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
35692
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
35693
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
35694
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
35695
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35696
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
35697
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
35698
 
                0x11, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
35699
 
                0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 
35700
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
35701
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35702
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
35703
 
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
35704
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35705
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35706
 
                0x00, 0x00, 0x00, 0x00, 0xa1, 0xd4, 0xe2, 0xb7, 
35707
 
                0xf4, 0xd5, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
35708
 
                0xff, 0xff, 0xff, 0x31, 0x00, 0x00, 0x00, 0x00, 
35709
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
35710
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35711
 
                0xa0, 0xd6, 0x83, 0xbf, 0x8b, 0x22, 0xe2, 0xb7, 
35712
 
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08, 
35713
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
35714
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35715
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
35716
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
35717
 
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
35718
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
35719
 
        };      /* Structure image */
35720
 
        
35721
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
35084
        static unsigned char data[] = {
 
35085
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
35086
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
35087
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
35088
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
35089
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
35090
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
35091
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
35092
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
35093
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
35094
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35095
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
35096
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
35097
                0x11, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
35098
                0x00, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00,
 
35099
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
35100
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35101
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
35102
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
35103
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35104
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35105
                0x00, 0x00, 0x00, 0x00, 0xa1, 0xd4, 0xe2, 0xb7,
 
35106
                0xf4, 0xd5, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
35107
                0xff, 0xff, 0xff, 0x31, 0x00, 0x00, 0x00, 0x00,
 
35108
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
35109
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35110
                0xa0, 0xd6, 0x83, 0xbf, 0x8b, 0x22, 0xe2, 0xb7,
 
35111
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08,
 
35112
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
35113
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
35114
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
35115
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
35116
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
35117
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
35118
        };      /* Structure image */
 
35119
 
 
35120
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
35722
35121
}
35723
35122
 
35724
 
 
35725
 
 
35726
 
 
35727
 
 
35728
 
 
35729
35123
/* Integer Multi-Dimensional Interpolation */
35730
35124
/* Interpolation Kernel Code */
35731
35125
/* Generated by cgen */
35734
35128
 
35735
35129
/* see the Licence.txt file for licencing details.*/
35736
35130
 
35737
 
 
35738
35131
/*
35739
35132
   Interpolation kernel specs:
35740
35133
 
35823
35216
void **inp,             /* pointer to input pointers */
35824
35217
unsigned int npix       /* Number of pixels to process */
35825
35218
) {
35826
 
        imdi_imp *p = (imdi_imp *)(s->impl);
35827
 
        unsigned short *ip0 = (unsigned short *)inp[0];
35828
 
        unsigned short *op0 = (unsigned short *)outp[0];
35829
 
        unsigned short *ep = ip0 + npix * 5 ;
35830
 
        pointer it0 = (pointer)p->in_tables[0];
35831
 
        pointer it1 = (pointer)p->in_tables[1];
35832
 
        pointer it2 = (pointer)p->in_tables[2];
35833
 
        pointer it3 = (pointer)p->in_tables[3];
35834
 
        pointer it4 = (pointer)p->in_tables[4];
35835
 
        pointer ot0 = (pointer)p->out_tables[0];
35836
 
        pointer im_base = (pointer)p->im_table;
35837
 
        
35838
 
        for(;ip0 < ep; ip0 += 5, op0 += 1) {
35839
 
                unsigned int ova0;      /* Output value accumulator */
35840
 
                {
35841
 
                        pointer imp;
35842
 
                        unsigned int we0;       /* Weighting value variable */
35843
 
                        unsigned int vo0;       /* Vertex offset variable */
35844
 
                        unsigned int we1;       /* Weighting value variable */
35845
 
                        unsigned int vo1;       /* Vertex offset variable */
35846
 
                        unsigned int we2;       /* Weighting value variable */
35847
 
                        unsigned int vo2;       /* Vertex offset variable */
35848
 
                        unsigned int we3;       /* Weighting value variable */
35849
 
                        unsigned int vo3;       /* Vertex offset variable */
35850
 
                        unsigned int we4;       /* Weighting value variable */
35851
 
                        unsigned int vo4;       /* Vertex offset variable */
35852
 
                        {
35853
 
                                unsigned int ti_i;      /* Interpolation index variable */
35854
 
                                
35855
 
                                ti_i  = IT_IX(it0, ip0[0]);
35856
 
                                we0   = IT_WE(it0, ip0[0]);
35857
 
                                vo0   = IT_VO(it0, ip0[0]);
35858
 
                                ti_i += IT_IX(it1, ip0[1]);
35859
 
                                we1   = IT_WE(it1, ip0[1]);
35860
 
                                vo1   = IT_VO(it1, ip0[1]);
35861
 
                                ti_i += IT_IX(it2, ip0[2]);
35862
 
                                we2   = IT_WE(it2, ip0[2]);
35863
 
                                vo2   = IT_VO(it2, ip0[2]);
35864
 
                                ti_i += IT_IX(it3, ip0[3]);
35865
 
                                we3   = IT_WE(it3, ip0[3]);
35866
 
                                vo3   = IT_VO(it3, ip0[3]);
35867
 
                                ti_i += IT_IX(it4, ip0[4]);
35868
 
                                we4   = IT_WE(it4, ip0[4]);
35869
 
                                vo4   = IT_VO(it4, ip0[4]);
35870
 
                                
35871
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
35872
 
                                
35873
 
                                /* Sort weighting values and vertex offset values */
35874
 
                                CEX(we0, vo0, we1, vo1);
35875
 
                                CEX(we0, vo0, we2, vo2);
35876
 
                                CEX(we0, vo0, we3, vo3);
35877
 
                                CEX(we0, vo0, we4, vo4);
35878
 
                                CEX(we1, vo1, we2, vo2);
35879
 
                                CEX(we1, vo1, we3, vo3);
35880
 
                                CEX(we1, vo1, we4, vo4);
35881
 
                                CEX(we2, vo2, we3, vo3);
35882
 
                                CEX(we2, vo2, we4, vo4);
35883
 
                                CEX(we3, vo3, we4, vo4);
35884
 
                        }
35885
 
                        {
35886
 
                                unsigned int vof;       /* Vertex offset value */
35887
 
                                unsigned int vwe;       /* Vertex weighting */
35888
 
                                
35889
 
                                vof = 0;                                /* First vertex offset is 0 */
35890
 
                                vwe = 65536 - we0;              /* Baricentric weighting */
35891
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
35892
 
                                vof += vo0;                     /* Move to next vertex */
35893
 
                                vwe = we0 - we1;                /* Baricentric weighting */
35894
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
35895
 
                                vof += vo1;                     /* Move to next vertex */
35896
 
                                vwe = we1 - we2;                /* Baricentric weighting */
35897
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
35898
 
                                vof += vo2;                     /* Move to next vertex */
35899
 
                                vwe = we2 - we3;                /* Baricentric weighting */
35900
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
35901
 
                                vof += vo3;                     /* Move to next vertex */
35902
 
                                vwe = we3 - we4;                /* Baricentric weighting */
35903
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
35904
 
                                vof += vo4;                     /* Move to next vertex */
35905
 
                                vwe = we4;                              /* Baricentric weighting */
35906
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
35907
 
                        }
35908
 
                }
35909
 
                {
35910
 
                        unsigned int oti;       /* Vertex offset value */
35911
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
35912
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
35913
 
                }
35914
 
        }
 
35219
        imdi_imp *p = (imdi_imp *)(s->impl);
 
35220
        unsigned short *ip0 = (unsigned short *)inp[0];
 
35221
        unsigned short *op0 = (unsigned short *)outp[0];
 
35222
        unsigned short *ep = ip0 + npix * 5 ;
 
35223
        pointer it0 = (pointer)p->in_tables[0];
 
35224
        pointer it1 = (pointer)p->in_tables[1];
 
35225
        pointer it2 = (pointer)p->in_tables[2];
 
35226
        pointer it3 = (pointer)p->in_tables[3];
 
35227
        pointer it4 = (pointer)p->in_tables[4];
 
35228
        pointer ot0 = (pointer)p->out_tables[0];
 
35229
        pointer im_base = (pointer)p->im_table;
 
35230
 
 
35231
        for(;ip0 < ep; ip0 += 5, op0 += 1) {
 
35232
                unsigned int ova0;      /* Output value accumulator */
 
35233
                {
 
35234
                        pointer imp;
 
35235
                        unsigned int we0;       /* Weighting value variable */
 
35236
                        unsigned int vo0;       /* Vertex offset variable */
 
35237
                        unsigned int we1;       /* Weighting value variable */
 
35238
                        unsigned int vo1;       /* Vertex offset variable */
 
35239
                        unsigned int we2;       /* Weighting value variable */
 
35240
                        unsigned int vo2;       /* Vertex offset variable */
 
35241
                        unsigned int we3;       /* Weighting value variable */
 
35242
                        unsigned int vo3;       /* Vertex offset variable */
 
35243
                        unsigned int we4;       /* Weighting value variable */
 
35244
                        unsigned int vo4;       /* Vertex offset variable */
 
35245
                        {
 
35246
                                unsigned int ti_i;      /* Interpolation index variable */
 
35247
 
 
35248
                                ti_i  = IT_IX(it0, ip0[0]);
 
35249
                                we0   = IT_WE(it0, ip0[0]);
 
35250
                                vo0   = IT_VO(it0, ip0[0]);
 
35251
                                ti_i += IT_IX(it1, ip0[1]);
 
35252
                                we1   = IT_WE(it1, ip0[1]);
 
35253
                                vo1   = IT_VO(it1, ip0[1]);
 
35254
                                ti_i += IT_IX(it2, ip0[2]);
 
35255
                                we2   = IT_WE(it2, ip0[2]);
 
35256
                                vo2   = IT_VO(it2, ip0[2]);
 
35257
                                ti_i += IT_IX(it3, ip0[3]);
 
35258
                                we3   = IT_WE(it3, ip0[3]);
 
35259
                                vo3   = IT_VO(it3, ip0[3]);
 
35260
                                ti_i += IT_IX(it4, ip0[4]);
 
35261
                                we4   = IT_WE(it4, ip0[4]);
 
35262
                                vo4   = IT_VO(it4, ip0[4]);
 
35263
 
 
35264
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
35265
 
 
35266
                                /* Sort weighting values and vertex offset values */
 
35267
                                CEX(we0, vo0, we1, vo1);
 
35268
                                CEX(we0, vo0, we2, vo2);
 
35269
                                CEX(we0, vo0, we3, vo3);
 
35270
                                CEX(we0, vo0, we4, vo4);
 
35271
                                CEX(we1, vo1, we2, vo2);
 
35272
                                CEX(we1, vo1, we3, vo3);
 
35273
                                CEX(we1, vo1, we4, vo4);
 
35274
                                CEX(we2, vo2, we3, vo3);
 
35275
                                CEX(we2, vo2, we4, vo4);
 
35276
                                CEX(we3, vo3, we4, vo4);
 
35277
                        }
 
35278
                        {
 
35279
                                unsigned int vof;       /* Vertex offset value */
 
35280
                                unsigned int vwe;       /* Vertex weighting */
 
35281
 
 
35282
                                vof = 0;                                /* First vertex offset is 0 */
 
35283
                                vwe = 65536 - we0;              /* Baricentric weighting */
 
35284
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
35285
                                vof += vo0;                     /* Move to next vertex */
 
35286
                                vwe = we0 - we1;                /* Baricentric weighting */
 
35287
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
35288
                                vof += vo1;                     /* Move to next vertex */
 
35289
                                vwe = we1 - we2;                /* Baricentric weighting */
 
35290
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
35291
                                vof += vo2;                     /* Move to next vertex */
 
35292
                                vwe = we2 - we3;                /* Baricentric weighting */
 
35293
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
35294
                                vof += vo3;                     /* Move to next vertex */
 
35295
                                vwe = we3 - we4;                /* Baricentric weighting */
 
35296
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
35297
                                vof += vo4;                     /* Move to next vertex */
 
35298
                                vwe = we4;                              /* Baricentric weighting */
 
35299
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
35300
                        }
 
35301
                }
 
35302
                {
 
35303
                        unsigned int oti;       /* Vertex offset value */
 
35304
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
35305
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
35306
                }
 
35307
        }
35915
35308
}
35916
35309
#undef IT_WE
35917
35310
#undef IT_VO
35925
35318
imdi_k102_gen(
35926
35319
genspec *g                      /* structure to be initialised */
35927
35320
) {
35928
 
        static unsigned char data[] = {
35929
 
                0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
35930
 
                0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
35931
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35932
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35933
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35934
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35935
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
35936
 
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
35937
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
35938
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
35939
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
35940
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35941
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35942
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35943
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35944
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35945
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35946
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35947
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
35948
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
35949
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35950
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35951
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35952
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35953
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
35954
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
35955
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
35956
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
35957
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35958
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35959
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35960
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35961
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35962
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35963
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35964
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
35965
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
35966
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
35967
 
                0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35968
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
35969
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
35970
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
35971
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
35972
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
35973
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
35974
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
35975
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
35976
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
35977
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35978
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
35979
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
35980
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x35, 0x5f, 0x31, 0x5f, 
35981
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
35982
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
35983
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
35984
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
35985
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
35986
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
35987
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
35988
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35989
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35990
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35991
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35992
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
35993
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x30, 
35994
 
                0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35995
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
35996
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
35997
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
35998
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
35999
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
36000
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
36001
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
36002
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
36003
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
36004
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
36005
 
                0x00, 0xf0, 0x04, 0x08 
36006
 
        };      /* Structure image */
36007
 
        
36008
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
35321
        static unsigned char data[] = {
 
35322
                0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
35323
                0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
35324
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35325
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
35326
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
35327
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
35328
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
35329
                0x08, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
35330
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
35331
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
35332
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
35333
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35334
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35335
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35336
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35337
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
35338
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
35339
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
35340
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
35341
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
35342
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
35343
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
35344
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
35345
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
35346
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
35347
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
35348
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
35349
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
35350
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35351
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35352
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35353
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35354
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
35355
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
35356
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
35357
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
35358
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
35359
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
35360
                0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35361
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
35362
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
35363
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
35364
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
35365
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
35366
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
35367
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
35368
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
35369
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
35370
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35371
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
35372
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
35373
                0x2c, 0xf3, 0xdc, 0xb7, 0x35, 0x5f, 0x31, 0x5f,
 
35374
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
35375
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
35376
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
35377
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
35378
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
35379
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
35380
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
35381
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35382
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35383
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35384
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35385
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
35386
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x30,
 
35387
                0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35388
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35389
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
35390
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
35391
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
35392
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
35393
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
35394
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
35395
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
35396
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
35397
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
35398
                0x00, 0xf0, 0x04, 0x08
 
35399
        };      /* Structure image */
 
35400
 
 
35401
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
36009
35402
}
36010
35403
 
36011
35404
static void
36012
35405
imdi_k102_tab(
36013
35406
tabspec *t                      /* structure to be initialised */
36014
35407
) {
36015
 
        static unsigned char data[] = {
36016
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
36017
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
36018
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
36019
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
36020
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
36021
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
36022
 
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 
36023
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
36024
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
36025
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36026
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
36027
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
36028
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
36029
 
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
36030
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
36031
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36032
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
36033
 
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
36034
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36035
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36036
 
                0x00, 0x00, 0x00, 0x00, 0xa1, 0xd4, 0xe2, 0xb7, 
36037
 
                0xf4, 0xd5, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
36038
 
                0xff, 0xff, 0xff, 0x31, 0x00, 0x00, 0x00, 0x00, 
36039
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
36040
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36041
 
                0xa0, 0xd6, 0x83, 0xbf, 0x8b, 0x22, 0xe2, 0xb7, 
36042
 
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08, 
36043
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
36044
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
36045
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
36046
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
36047
 
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
36048
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
36049
 
        };      /* Structure image */
36050
 
        
36051
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
35408
        static unsigned char data[] = {
 
35409
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
35410
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
35411
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
35412
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
35413
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
35414
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
35415
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
 
35416
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
35417
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
35418
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35419
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
35420
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
35421
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
35422
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
35423
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
35424
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35425
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
35426
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
35427
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35428
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35429
                0x00, 0x00, 0x00, 0x00, 0xa1, 0xd4, 0xe2, 0xb7,
 
35430
                0xf4, 0xd5, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
35431
                0xff, 0xff, 0xff, 0x31, 0x00, 0x00, 0x00, 0x00,
 
35432
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
35433
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35434
                0xa0, 0xd6, 0x83, 0xbf, 0x8b, 0x22, 0xe2, 0xb7,
 
35435
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08,
 
35436
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
35437
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
35438
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
35439
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
35440
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
35441
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
35442
        };      /* Structure image */
 
35443
 
 
35444
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
36052
35445
}
36053
35446
 
36054
 
 
36055
 
 
36056
 
 
36057
 
 
36058
 
 
36059
35447
/* Integer Multi-Dimensional Interpolation */
36060
35448
/* Interpolation Kernel Code */
36061
35449
/* Generated by cgen */
36064
35452
 
36065
35453
/* see the Licence.txt file for licencing details.*/
36066
35454
 
36067
 
 
36068
35455
/*
36069
35456
   Interpolation kernel specs:
36070
35457
 
36155
35542
void **inp,             /* pointer to input pointers */
36156
35543
unsigned int npix       /* Number of pixels to process */
36157
35544
) {
36158
 
        imdi_imp *p = (imdi_imp *)(s->impl);
36159
 
        unsigned short *ip0 = (unsigned short *)inp[0];
36160
 
        unsigned short *op0 = (unsigned short *)outp[0];
36161
 
        unsigned short *ep = ip0 + npix * 6 ;
36162
 
        pointer it0 = (pointer)p->in_tables[0];
36163
 
        pointer it1 = (pointer)p->in_tables[1];
36164
 
        pointer it2 = (pointer)p->in_tables[2];
36165
 
        pointer it3 = (pointer)p->in_tables[3];
36166
 
        pointer it4 = (pointer)p->in_tables[4];
36167
 
        pointer it5 = (pointer)p->in_tables[5];
36168
 
        pointer ot0 = (pointer)p->out_tables[0];
36169
 
        pointer im_base = (pointer)p->im_table;
36170
 
        
36171
 
        for(;ip0 < ep; ip0 += 6, op0 += 1) {
36172
 
                unsigned int ova0;      /* Output value accumulator */
36173
 
                {
36174
 
                        pointer imp;
36175
 
                        unsigned int we0;       /* Weighting value variable */
36176
 
                        unsigned int vo0;       /* Vertex offset variable */
36177
 
                        unsigned int we1;       /* Weighting value variable */
36178
 
                        unsigned int vo1;       /* Vertex offset variable */
36179
 
                        unsigned int we2;       /* Weighting value variable */
36180
 
                        unsigned int vo2;       /* Vertex offset variable */
36181
 
                        unsigned int we3;       /* Weighting value variable */
36182
 
                        unsigned int vo3;       /* Vertex offset variable */
36183
 
                        unsigned int we4;       /* Weighting value variable */
36184
 
                        unsigned int vo4;       /* Vertex offset variable */
36185
 
                        unsigned int we5;       /* Weighting value variable */
36186
 
                        unsigned int vo5;       /* Vertex offset variable */
36187
 
                        {
36188
 
                                unsigned int ti_i;      /* Interpolation index variable */
36189
 
                                
36190
 
                                ti_i  = IT_IX(it0, ip0[0]);
36191
 
                                we0   = IT_WE(it0, ip0[0]);
36192
 
                                vo0   = IT_VO(it0, ip0[0]);
36193
 
                                ti_i += IT_IX(it1, ip0[1]);
36194
 
                                we1   = IT_WE(it1, ip0[1]);
36195
 
                                vo1   = IT_VO(it1, ip0[1]);
36196
 
                                ti_i += IT_IX(it2, ip0[2]);
36197
 
                                we2   = IT_WE(it2, ip0[2]);
36198
 
                                vo2   = IT_VO(it2, ip0[2]);
36199
 
                                ti_i += IT_IX(it3, ip0[3]);
36200
 
                                we3   = IT_WE(it3, ip0[3]);
36201
 
                                vo3   = IT_VO(it3, ip0[3]);
36202
 
                                ti_i += IT_IX(it4, ip0[4]);
36203
 
                                we4   = IT_WE(it4, ip0[4]);
36204
 
                                vo4   = IT_VO(it4, ip0[4]);
36205
 
                                ti_i += IT_IX(it5, ip0[5]);
36206
 
                                we5   = IT_WE(it5, ip0[5]);
36207
 
                                vo5   = IT_VO(it5, ip0[5]);
36208
 
                                
36209
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
36210
 
                                
36211
 
                                /* Sort weighting values and vertex offset values */
36212
 
                                CEX(we0, vo0, we1, vo1);
36213
 
                                CEX(we0, vo0, we2, vo2);
36214
 
                                CEX(we0, vo0, we3, vo3);
36215
 
                                CEX(we0, vo0, we4, vo4);
36216
 
                                CEX(we0, vo0, we5, vo5);
36217
 
                                CEX(we1, vo1, we2, vo2);
36218
 
                                CEX(we1, vo1, we3, vo3);
36219
 
                                CEX(we1, vo1, we4, vo4);
36220
 
                                CEX(we1, vo1, we5, vo5);
36221
 
                                CEX(we2, vo2, we3, vo3);
36222
 
                                CEX(we2, vo2, we4, vo4);
36223
 
                                CEX(we2, vo2, we5, vo5);
36224
 
                                CEX(we3, vo3, we4, vo4);
36225
 
                                CEX(we3, vo3, we5, vo5);
36226
 
                                CEX(we4, vo4, we5, vo5);
36227
 
                        }
36228
 
                        {
36229
 
                                unsigned int vof;       /* Vertex offset value */
36230
 
                                unsigned int vwe;       /* Vertex weighting */
36231
 
                                
36232
 
                                vof = 0;                                /* First vertex offset is 0 */
36233
 
                                vwe = 65536 - we0;              /* Baricentric weighting */
36234
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
36235
 
                                vof += vo0;                     /* Move to next vertex */
36236
 
                                vwe = we0 - we1;                /* Baricentric weighting */
36237
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
36238
 
                                vof += vo1;                     /* Move to next vertex */
36239
 
                                vwe = we1 - we2;                /* Baricentric weighting */
36240
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
36241
 
                                vof += vo2;                     /* Move to next vertex */
36242
 
                                vwe = we2 - we3;                /* Baricentric weighting */
36243
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
36244
 
                                vof += vo3;                     /* Move to next vertex */
36245
 
                                vwe = we3 - we4;                /* Baricentric weighting */
36246
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
36247
 
                                vof += vo4;                     /* Move to next vertex */
36248
 
                                vwe = we4 - we5;                /* Baricentric weighting */
36249
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
36250
 
                                vof += vo5;                     /* Move to next vertex */
36251
 
                                vwe = we5;                              /* Baricentric weighting */
36252
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
36253
 
                        }
36254
 
                }
36255
 
                {
36256
 
                        unsigned int oti;       /* Vertex offset value */
36257
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
36258
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
36259
 
                }
36260
 
        }
 
35545
        imdi_imp *p = (imdi_imp *)(s->impl);
 
35546
        unsigned short *ip0 = (unsigned short *)inp[0];
 
35547
        unsigned short *op0 = (unsigned short *)outp[0];
 
35548
        unsigned short *ep = ip0 + npix * 6 ;
 
35549
        pointer it0 = (pointer)p->in_tables[0];
 
35550
        pointer it1 = (pointer)p->in_tables[1];
 
35551
        pointer it2 = (pointer)p->in_tables[2];
 
35552
        pointer it3 = (pointer)p->in_tables[3];
 
35553
        pointer it4 = (pointer)p->in_tables[4];
 
35554
        pointer it5 = (pointer)p->in_tables[5];
 
35555
        pointer ot0 = (pointer)p->out_tables[0];
 
35556
        pointer im_base = (pointer)p->im_table;
 
35557
 
 
35558
        for(;ip0 < ep; ip0 += 6, op0 += 1) {
 
35559
                unsigned int ova0;      /* Output value accumulator */
 
35560
                {
 
35561
                        pointer imp;
 
35562
                        unsigned int we0;       /* Weighting value variable */
 
35563
                        unsigned int vo0;       /* Vertex offset variable */
 
35564
                        unsigned int we1;       /* Weighting value variable */
 
35565
                        unsigned int vo1;       /* Vertex offset variable */
 
35566
                        unsigned int we2;       /* Weighting value variable */
 
35567
                        unsigned int vo2;       /* Vertex offset variable */
 
35568
                        unsigned int we3;       /* Weighting value variable */
 
35569
                        unsigned int vo3;       /* Vertex offset variable */
 
35570
                        unsigned int we4;       /* Weighting value variable */
 
35571
                        unsigned int vo4;       /* Vertex offset variable */
 
35572
                        unsigned int we5;       /* Weighting value variable */
 
35573
                        unsigned int vo5;       /* Vertex offset variable */
 
35574
                        {
 
35575
                                unsigned int ti_i;      /* Interpolation index variable */
 
35576
 
 
35577
                                ti_i  = IT_IX(it0, ip0[0]);
 
35578
                                we0   = IT_WE(it0, ip0[0]);
 
35579
                                vo0   = IT_VO(it0, ip0[0]);
 
35580
                                ti_i += IT_IX(it1, ip0[1]);
 
35581
                                we1   = IT_WE(it1, ip0[1]);
 
35582
                                vo1   = IT_VO(it1, ip0[1]);
 
35583
                                ti_i += IT_IX(it2, ip0[2]);
 
35584
                                we2   = IT_WE(it2, ip0[2]);
 
35585
                                vo2   = IT_VO(it2, ip0[2]);
 
35586
                                ti_i += IT_IX(it3, ip0[3]);
 
35587
                                we3   = IT_WE(it3, ip0[3]);
 
35588
                                vo3   = IT_VO(it3, ip0[3]);
 
35589
                                ti_i += IT_IX(it4, ip0[4]);
 
35590
                                we4   = IT_WE(it4, ip0[4]);
 
35591
                                vo4   = IT_VO(it4, ip0[4]);
 
35592
                                ti_i += IT_IX(it5, ip0[5]);
 
35593
                                we5   = IT_WE(it5, ip0[5]);
 
35594
                                vo5   = IT_VO(it5, ip0[5]);
 
35595
 
 
35596
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
35597
 
 
35598
                                /* Sort weighting values and vertex offset values */
 
35599
                                CEX(we0, vo0, we1, vo1);
 
35600
                                CEX(we0, vo0, we2, vo2);
 
35601
                                CEX(we0, vo0, we3, vo3);
 
35602
                                CEX(we0, vo0, we4, vo4);
 
35603
                                CEX(we0, vo0, we5, vo5);
 
35604
                                CEX(we1, vo1, we2, vo2);
 
35605
                                CEX(we1, vo1, we3, vo3);
 
35606
                                CEX(we1, vo1, we4, vo4);
 
35607
                                CEX(we1, vo1, we5, vo5);
 
35608
                                CEX(we2, vo2, we3, vo3);
 
35609
                                CEX(we2, vo2, we4, vo4);
 
35610
                                CEX(we2, vo2, we5, vo5);
 
35611
                                CEX(we3, vo3, we4, vo4);
 
35612
                                CEX(we3, vo3, we5, vo5);
 
35613
                                CEX(we4, vo4, we5, vo5);
 
35614
                        }
 
35615
                        {
 
35616
                                unsigned int vof;       /* Vertex offset value */
 
35617
                                unsigned int vwe;       /* Vertex weighting */
 
35618
 
 
35619
                                vof = 0;                                /* First vertex offset is 0 */
 
35620
                                vwe = 65536 - we0;              /* Baricentric weighting */
 
35621
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
35622
                                vof += vo0;                     /* Move to next vertex */
 
35623
                                vwe = we0 - we1;                /* Baricentric weighting */
 
35624
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
35625
                                vof += vo1;                     /* Move to next vertex */
 
35626
                                vwe = we1 - we2;                /* Baricentric weighting */
 
35627
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
35628
                                vof += vo2;                     /* Move to next vertex */
 
35629
                                vwe = we2 - we3;                /* Baricentric weighting */
 
35630
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
35631
                                vof += vo3;                     /* Move to next vertex */
 
35632
                                vwe = we3 - we4;                /* Baricentric weighting */
 
35633
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
35634
                                vof += vo4;                     /* Move to next vertex */
 
35635
                                vwe = we4 - we5;                /* Baricentric weighting */
 
35636
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
35637
                                vof += vo5;                     /* Move to next vertex */
 
35638
                                vwe = we5;                              /* Baricentric weighting */
 
35639
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
35640
                        }
 
35641
                }
 
35642
                {
 
35643
                        unsigned int oti;       /* Vertex offset value */
 
35644
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
35645
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
35646
                }
 
35647
        }
36261
35648
}
36262
35649
#undef IT_WE
36263
35650
#undef IT_VO
36271
35658
imdi_k103_gen(
36272
35659
genspec *g                      /* structure to be initialised */
36273
35660
) {
36274
 
        static unsigned char data[] = {
36275
 
                0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
36276
 
                0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
36277
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36278
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
36279
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
36280
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
36281
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
36282
 
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
36283
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
36284
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
36285
 
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
36286
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36287
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36288
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36289
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36290
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
36291
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
36292
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
36293
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
36294
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
36295
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
36296
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
36297
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
36298
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
36299
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
36300
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
36301
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
36302
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
36303
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36304
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36305
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36306
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36307
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
36308
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
36309
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
36310
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
36311
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
36312
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
36313
 
                0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36314
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
36315
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
36316
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
36317
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
36318
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
36319
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
36320
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
36321
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
36322
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
36323
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36324
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
36325
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
36326
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x36, 0x5f, 0x31, 0x5f, 
36327
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
36328
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
36329
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
36330
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
36331
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
36332
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
36333
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
36334
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36335
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36336
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36337
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36338
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
36339
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x30, 
36340
 
                0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36341
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36342
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
36343
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
36344
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
36345
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
36346
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
36347
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
36348
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
36349
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
36350
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
36351
 
                0x00, 0xf0, 0x04, 0x08 
36352
 
        };      /* Structure image */
36353
 
        
36354
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
35661
        static unsigned char data[] = {
 
35662
                0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
35663
                0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
35664
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35665
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
35666
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
35667
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
35668
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
35669
                0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
35670
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
35671
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
35672
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
35673
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35674
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35675
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35676
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35677
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
35678
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
35679
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
35680
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
35681
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
35682
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
35683
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
35684
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
35685
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
35686
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
35687
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
35688
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
35689
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
35690
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35691
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35692
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35693
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35694
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
35695
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
35696
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
35697
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
35698
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
35699
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
35700
                0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35701
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
35702
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
35703
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
35704
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
35705
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
35706
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
35707
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
35708
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
35709
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
35710
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35711
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
35712
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
35713
                0x2c, 0xf3, 0xdc, 0xb7, 0x36, 0x5f, 0x31, 0x5f,
 
35714
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
35715
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
35716
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
35717
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
35718
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
35719
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
35720
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
35721
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35722
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35723
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35724
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35725
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
35726
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x30,
 
35727
                0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35728
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35729
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
35730
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
35731
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
35732
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
35733
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
35734
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
35735
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
35736
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
35737
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
35738
                0x00, 0xf0, 0x04, 0x08
 
35739
        };      /* Structure image */
 
35740
 
 
35741
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
36355
35742
}
36356
35743
 
36357
35744
static void
36358
35745
imdi_k103_tab(
36359
35746
tabspec *t                      /* structure to be initialised */
36360
35747
) {
36361
 
        static unsigned char data[] = {
36362
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
36363
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
36364
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
36365
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
36366
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
36367
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
36368
 
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 
36369
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
36370
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
36371
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36372
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
36373
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
36374
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
36375
 
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
36376
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
36377
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36378
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
36379
 
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
36380
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36381
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36382
 
                0x00, 0x00, 0x00, 0x00, 0xa1, 0xd4, 0xe2, 0xb7, 
36383
 
                0xf4, 0xd5, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
36384
 
                0xff, 0xff, 0xff, 0x31, 0x00, 0x00, 0x00, 0x00, 
36385
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
36386
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36387
 
                0xa0, 0xd6, 0x83, 0xbf, 0x8b, 0x22, 0xe2, 0xb7, 
36388
 
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08, 
36389
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
36390
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
36391
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
36392
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
36393
 
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
36394
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
36395
 
        };      /* Structure image */
36396
 
        
36397
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
35748
        static unsigned char data[] = {
 
35749
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
35750
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
35751
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
35752
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
35753
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
35754
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
35755
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
 
35756
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
35757
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
35758
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35759
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
35760
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
35761
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
35762
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
35763
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
35764
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35765
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
35766
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
35767
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35768
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35769
                0x00, 0x00, 0x00, 0x00, 0xa1, 0xd4, 0xe2, 0xb7,
 
35770
                0xf4, 0xd5, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
35771
                0xff, 0xff, 0xff, 0x31, 0x00, 0x00, 0x00, 0x00,
 
35772
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
35773
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
35774
                0xa0, 0xd6, 0x83, 0xbf, 0x8b, 0x22, 0xe2, 0xb7,
 
35775
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08,
 
35776
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
35777
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
35778
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
35779
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
35780
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
35781
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
35782
        };      /* Structure image */
 
35783
 
 
35784
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
36398
35785
}
36399
35786
 
36400
 
 
36401
 
 
36402
 
 
36403
 
 
36404
 
 
36405
35787
/* Integer Multi-Dimensional Interpolation */
36406
35788
/* Interpolation Kernel Code */
36407
35789
/* Generated by cgen */
36410
35792
 
36411
35793
/* see the Licence.txt file for licencing details.*/
36412
35794
 
36413
 
 
36414
35795
/*
36415
35796
   Interpolation kernel specs:
36416
35797
 
36503
35884
void **inp,             /* pointer to input pointers */
36504
35885
unsigned int npix       /* Number of pixels to process */
36505
35886
) {
36506
 
        imdi_imp *p = (imdi_imp *)(s->impl);
36507
 
        unsigned short *ip0 = (unsigned short *)inp[0];
36508
 
        unsigned short *op0 = (unsigned short *)outp[0];
36509
 
        unsigned short *ep = ip0 + npix * 7 ;
36510
 
        pointer it0 = (pointer)p->in_tables[0];
36511
 
        pointer it1 = (pointer)p->in_tables[1];
36512
 
        pointer it2 = (pointer)p->in_tables[2];
36513
 
        pointer it3 = (pointer)p->in_tables[3];
36514
 
        pointer it4 = (pointer)p->in_tables[4];
36515
 
        pointer it5 = (pointer)p->in_tables[5];
36516
 
        pointer it6 = (pointer)p->in_tables[6];
36517
 
        pointer ot0 = (pointer)p->out_tables[0];
36518
 
        pointer im_base = (pointer)p->im_table;
36519
 
        
36520
 
        for(;ip0 < ep; ip0 += 7, op0 += 1) {
36521
 
                unsigned int ova0;      /* Output value accumulator */
36522
 
                {
36523
 
                        pointer imp;
36524
 
                        unsigned int we0;       /* Weighting value variable */
36525
 
                        unsigned int vo0;       /* Vertex offset variable */
36526
 
                        unsigned int we1;       /* Weighting value variable */
36527
 
                        unsigned int vo1;       /* Vertex offset variable */
36528
 
                        unsigned int we2;       /* Weighting value variable */
36529
 
                        unsigned int vo2;       /* Vertex offset variable */
36530
 
                        unsigned int we3;       /* Weighting value variable */
36531
 
                        unsigned int vo3;       /* Vertex offset variable */
36532
 
                        unsigned int we4;       /* Weighting value variable */
36533
 
                        unsigned int vo4;       /* Vertex offset variable */
36534
 
                        unsigned int we5;       /* Weighting value variable */
36535
 
                        unsigned int vo5;       /* Vertex offset variable */
36536
 
                        unsigned int we6;       /* Weighting value variable */
36537
 
                        unsigned int vo6;       /* Vertex offset variable */
36538
 
                        {
36539
 
                                unsigned int ti_i;      /* Interpolation index variable */
36540
 
                                
36541
 
                                ti_i  = IT_IX(it0, ip0[0]);
36542
 
                                we0   = IT_WE(it0, ip0[0]);
36543
 
                                vo0   = IT_VO(it0, ip0[0]);
36544
 
                                ti_i += IT_IX(it1, ip0[1]);
36545
 
                                we1   = IT_WE(it1, ip0[1]);
36546
 
                                vo1   = IT_VO(it1, ip0[1]);
36547
 
                                ti_i += IT_IX(it2, ip0[2]);
36548
 
                                we2   = IT_WE(it2, ip0[2]);
36549
 
                                vo2   = IT_VO(it2, ip0[2]);
36550
 
                                ti_i += IT_IX(it3, ip0[3]);
36551
 
                                we3   = IT_WE(it3, ip0[3]);
36552
 
                                vo3   = IT_VO(it3, ip0[3]);
36553
 
                                ti_i += IT_IX(it4, ip0[4]);
36554
 
                                we4   = IT_WE(it4, ip0[4]);
36555
 
                                vo4   = IT_VO(it4, ip0[4]);
36556
 
                                ti_i += IT_IX(it5, ip0[5]);
36557
 
                                we5   = IT_WE(it5, ip0[5]);
36558
 
                                vo5   = IT_VO(it5, ip0[5]);
36559
 
                                ti_i += IT_IX(it6, ip0[6]);
36560
 
                                we6   = IT_WE(it6, ip0[6]);
36561
 
                                vo6   = IT_VO(it6, ip0[6]);
36562
 
                                
36563
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
36564
 
                                
36565
 
                                /* Sort weighting values and vertex offset values */
36566
 
                                CEX(we0, vo0, we1, vo1);
36567
 
                                CEX(we0, vo0, we2, vo2);
36568
 
                                CEX(we0, vo0, we3, vo3);
36569
 
                                CEX(we0, vo0, we4, vo4);
36570
 
                                CEX(we0, vo0, we5, vo5);
36571
 
                                CEX(we0, vo0, we6, vo6);
36572
 
                                CEX(we1, vo1, we2, vo2);
36573
 
                                CEX(we1, vo1, we3, vo3);
36574
 
                                CEX(we1, vo1, we4, vo4);
36575
 
                                CEX(we1, vo1, we5, vo5);
36576
 
                                CEX(we1, vo1, we6, vo6);
36577
 
                                CEX(we2, vo2, we3, vo3);
36578
 
                                CEX(we2, vo2, we4, vo4);
36579
 
                                CEX(we2, vo2, we5, vo5);
36580
 
                                CEX(we2, vo2, we6, vo6);
36581
 
                                CEX(we3, vo3, we4, vo4);
36582
 
                                CEX(we3, vo3, we5, vo5);
36583
 
                                CEX(we3, vo3, we6, vo6);
36584
 
                                CEX(we4, vo4, we5, vo5);
36585
 
                                CEX(we4, vo4, we6, vo6);
36586
 
                                CEX(we5, vo5, we6, vo6);
36587
 
                        }
36588
 
                        {
36589
 
                                unsigned int vof;       /* Vertex offset value */
36590
 
                                unsigned int vwe;       /* Vertex weighting */
36591
 
                                
36592
 
                                vof = 0;                                /* First vertex offset is 0 */
36593
 
                                vwe = 65536 - we0;              /* Baricentric weighting */
36594
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
36595
 
                                vof += vo0;                     /* Move to next vertex */
36596
 
                                vwe = we0 - we1;                /* Baricentric weighting */
36597
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
36598
 
                                vof += vo1;                     /* Move to next vertex */
36599
 
                                vwe = we1 - we2;                /* Baricentric weighting */
36600
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
36601
 
                                vof += vo2;                     /* Move to next vertex */
36602
 
                                vwe = we2 - we3;                /* Baricentric weighting */
36603
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
36604
 
                                vof += vo3;                     /* Move to next vertex */
36605
 
                                vwe = we3 - we4;                /* Baricentric weighting */
36606
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
36607
 
                                vof += vo4;                     /* Move to next vertex */
36608
 
                                vwe = we4 - we5;                /* Baricentric weighting */
36609
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
36610
 
                                vof += vo5;                     /* Move to next vertex */
36611
 
                                vwe = we5 - we6;                /* Baricentric weighting */
36612
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
36613
 
                                vof += vo6;                     /* Move to next vertex */
36614
 
                                vwe = we6;                              /* Baricentric weighting */
36615
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
36616
 
                        }
36617
 
                }
36618
 
                {
36619
 
                        unsigned int oti;       /* Vertex offset value */
36620
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
36621
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
36622
 
                }
36623
 
        }
 
35887
        imdi_imp *p = (imdi_imp *)(s->impl);
 
35888
        unsigned short *ip0 = (unsigned short *)inp[0];
 
35889
        unsigned short *op0 = (unsigned short *)outp[0];
 
35890
        unsigned short *ep = ip0 + npix * 7 ;
 
35891
        pointer it0 = (pointer)p->in_tables[0];
 
35892
        pointer it1 = (pointer)p->in_tables[1];
 
35893
        pointer it2 = (pointer)p->in_tables[2];
 
35894
        pointer it3 = (pointer)p->in_tables[3];
 
35895
        pointer it4 = (pointer)p->in_tables[4];
 
35896
        pointer it5 = (pointer)p->in_tables[5];
 
35897
        pointer it6 = (pointer)p->in_tables[6];
 
35898
        pointer ot0 = (pointer)p->out_tables[0];
 
35899
        pointer im_base = (pointer)p->im_table;
 
35900
 
 
35901
        for(;ip0 < ep; ip0 += 7, op0 += 1) {
 
35902
                unsigned int ova0;      /* Output value accumulator */
 
35903
                {
 
35904
                        pointer imp;
 
35905
                        unsigned int we0;       /* Weighting value variable */
 
35906
                        unsigned int vo0;       /* Vertex offset variable */
 
35907
                        unsigned int we1;       /* Weighting value variable */
 
35908
                        unsigned int vo1;       /* Vertex offset variable */
 
35909
                        unsigned int we2;       /* Weighting value variable */
 
35910
                        unsigned int vo2;       /* Vertex offset variable */
 
35911
                        unsigned int we3;       /* Weighting value variable */
 
35912
                        unsigned int vo3;       /* Vertex offset variable */
 
35913
                        unsigned int we4;       /* Weighting value variable */
 
35914
                        unsigned int vo4;       /* Vertex offset variable */
 
35915
                        unsigned int we5;       /* Weighting value variable */
 
35916
                        unsigned int vo5;       /* Vertex offset variable */
 
35917
                        unsigned int we6;       /* Weighting value variable */
 
35918
                        unsigned int vo6;       /* Vertex offset variable */
 
35919
                        {
 
35920
                                unsigned int ti_i;      /* Interpolation index variable */
 
35921
 
 
35922
                                ti_i  = IT_IX(it0, ip0[0]);
 
35923
                                we0   = IT_WE(it0, ip0[0]);
 
35924
                                vo0   = IT_VO(it0, ip0[0]);
 
35925
                                ti_i += IT_IX(it1, ip0[1]);
 
35926
                                we1   = IT_WE(it1, ip0[1]);
 
35927
                                vo1   = IT_VO(it1, ip0[1]);
 
35928
                                ti_i += IT_IX(it2, ip0[2]);
 
35929
                                we2   = IT_WE(it2, ip0[2]);
 
35930
                                vo2   = IT_VO(it2, ip0[2]);
 
35931
                                ti_i += IT_IX(it3, ip0[3]);
 
35932
                                we3   = IT_WE(it3, ip0[3]);
 
35933
                                vo3   = IT_VO(it3, ip0[3]);
 
35934
                                ti_i += IT_IX(it4, ip0[4]);
 
35935
                                we4   = IT_WE(it4, ip0[4]);
 
35936
                                vo4   = IT_VO(it4, ip0[4]);
 
35937
                                ti_i += IT_IX(it5, ip0[5]);
 
35938
                                we5   = IT_WE(it5, ip0[5]);
 
35939
                                vo5   = IT_VO(it5, ip0[5]);
 
35940
                                ti_i += IT_IX(it6, ip0[6]);
 
35941
                                we6   = IT_WE(it6, ip0[6]);
 
35942
                                vo6   = IT_VO(it6, ip0[6]);
 
35943
 
 
35944
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
35945
 
 
35946
                                /* Sort weighting values and vertex offset values */
 
35947
                                CEX(we0, vo0, we1, vo1);
 
35948
                                CEX(we0, vo0, we2, vo2);
 
35949
                                CEX(we0, vo0, we3, vo3);
 
35950
                                CEX(we0, vo0, we4, vo4);
 
35951
                                CEX(we0, vo0, we5, vo5);
 
35952
                                CEX(we0, vo0, we6, vo6);
 
35953
                                CEX(we1, vo1, we2, vo2);
 
35954
                                CEX(we1, vo1, we3, vo3);
 
35955
                                CEX(we1, vo1, we4, vo4);
 
35956
                                CEX(we1, vo1, we5, vo5);
 
35957
                                CEX(we1, vo1, we6, vo6);
 
35958
                                CEX(we2, vo2, we3, vo3);
 
35959
                                CEX(we2, vo2, we4, vo4);
 
35960
                                CEX(we2, vo2, we5, vo5);
 
35961
                                CEX(we2, vo2, we6, vo6);
 
35962
                                CEX(we3, vo3, we4, vo4);
 
35963
                                CEX(we3, vo3, we5, vo5);
 
35964
                                CEX(we3, vo3, we6, vo6);
 
35965
                                CEX(we4, vo4, we5, vo5);
 
35966
                                CEX(we4, vo4, we6, vo6);
 
35967
                                CEX(we5, vo5, we6, vo6);
 
35968
                        }
 
35969
                        {
 
35970
                                unsigned int vof;       /* Vertex offset value */
 
35971
                                unsigned int vwe;       /* Vertex weighting */
 
35972
 
 
35973
                                vof = 0;                                /* First vertex offset is 0 */
 
35974
                                vwe = 65536 - we0;              /* Baricentric weighting */
 
35975
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
35976
                                vof += vo0;                     /* Move to next vertex */
 
35977
                                vwe = we0 - we1;                /* Baricentric weighting */
 
35978
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
35979
                                vof += vo1;                     /* Move to next vertex */
 
35980
                                vwe = we1 - we2;                /* Baricentric weighting */
 
35981
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
35982
                                vof += vo2;                     /* Move to next vertex */
 
35983
                                vwe = we2 - we3;                /* Baricentric weighting */
 
35984
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
35985
                                vof += vo3;                     /* Move to next vertex */
 
35986
                                vwe = we3 - we4;                /* Baricentric weighting */
 
35987
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
35988
                                vof += vo4;                     /* Move to next vertex */
 
35989
                                vwe = we4 - we5;                /* Baricentric weighting */
 
35990
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
35991
                                vof += vo5;                     /* Move to next vertex */
 
35992
                                vwe = we5 - we6;                /* Baricentric weighting */
 
35993
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
35994
                                vof += vo6;                     /* Move to next vertex */
 
35995
                                vwe = we6;                              /* Baricentric weighting */
 
35996
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
35997
                        }
 
35998
                }
 
35999
                {
 
36000
                        unsigned int oti;       /* Vertex offset value */
 
36001
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
36002
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
36003
                }
 
36004
        }
36624
36005
}
36625
36006
#undef IT_WE
36626
36007
#undef IT_VO
36634
36015
imdi_k104_gen(
36635
36016
genspec *g                      /* structure to be initialised */
36636
36017
) {
36637
 
        static unsigned char data[] = {
36638
 
                0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
36639
 
                0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
36640
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36641
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
36642
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
36643
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
36644
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
36645
 
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
36646
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
36647
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
36648
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
36649
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36650
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36651
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36652
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36653
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
36654
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
36655
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
36656
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
36657
 
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
36658
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
36659
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
36660
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
36661
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
36662
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
36663
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
36664
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
36665
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
36666
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36667
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36668
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36669
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36670
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
36671
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
36672
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
36673
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
36674
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
36675
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
36676
 
                0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36677
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
36678
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
36679
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
36680
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
36681
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
36682
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
36683
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
36684
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
36685
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
36686
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36687
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
36688
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
36689
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x37, 0x5f, 0x31, 0x5f, 
36690
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
36691
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
36692
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
36693
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
36694
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
36695
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
36696
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
36697
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36698
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36699
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36700
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36701
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
36702
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x30, 
36703
 
                0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36704
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36705
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
36706
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
36707
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
36708
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
36709
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
36710
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
36711
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
36712
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
36713
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
36714
 
                0x00, 0xf0, 0x04, 0x08 
36715
 
        };      /* Structure image */
36716
 
        
36717
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
36018
        static unsigned char data[] = {
 
36019
                0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
36020
                0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
36021
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36022
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36023
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36024
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36025
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36026
                0x08, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
36027
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
36028
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
36029
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
36030
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36031
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36032
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36033
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36034
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36035
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36036
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36037
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36038
                0x08, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
36039
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36040
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36041
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36042
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36043
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
36044
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
36045
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
36046
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
36047
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36048
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36049
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36050
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36051
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36052
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36053
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36054
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36055
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
36056
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
36057
                0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36058
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
36059
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
36060
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
36061
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
36062
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
36063
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
36064
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
36065
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
36066
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
36067
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36068
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
36069
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
36070
                0x2c, 0xf3, 0xdc, 0xb7, 0x37, 0x5f, 0x31, 0x5f,
 
36071
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
36072
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
36073
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
36074
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
36075
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
36076
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
36077
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
36078
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36079
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36080
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36081
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36082
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
36083
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x30,
 
36084
                0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36085
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36086
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
36087
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
36088
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
36089
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
36090
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
36091
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
36092
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
36093
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
36094
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
36095
                0x00, 0xf0, 0x04, 0x08
 
36096
        };      /* Structure image */
 
36097
 
 
36098
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
36718
36099
}
36719
36100
 
36720
36101
static void
36721
36102
imdi_k104_tab(
36722
36103
tabspec *t                      /* structure to be initialised */
36723
36104
) {
36724
 
        static unsigned char data[] = {
36725
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
36726
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
36727
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
36728
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
36729
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
36730
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
36731
 
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 
36732
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
36733
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
36734
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36735
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
36736
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
36737
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
36738
 
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
36739
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
36740
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36741
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
36742
 
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
36743
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36744
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36745
 
                0x00, 0x00, 0x00, 0x00, 0xa1, 0xd4, 0xe2, 0xb7, 
36746
 
                0xf4, 0xd5, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
36747
 
                0xff, 0xff, 0xff, 0x31, 0x00, 0x00, 0x00, 0x00, 
36748
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
36749
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
36750
 
                0xa0, 0xd6, 0x83, 0xbf, 0x8b, 0x22, 0xe2, 0xb7, 
36751
 
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08, 
36752
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
36753
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
36754
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
36755
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
36756
 
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
36757
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
36758
 
        };      /* Structure image */
36759
 
        
36760
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
36105
        static unsigned char data[] = {
 
36106
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
36107
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
36108
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
36109
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
36110
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
36111
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
36112
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
 
36113
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
36114
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
36115
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36116
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
36117
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
36118
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
36119
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
36120
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
36121
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36122
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
36123
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
36124
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36125
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36126
                0x00, 0x00, 0x00, 0x00, 0xa1, 0xd4, 0xe2, 0xb7,
 
36127
                0xf4, 0xd5, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
36128
                0xff, 0xff, 0xff, 0x31, 0x00, 0x00, 0x00, 0x00,
 
36129
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
36130
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36131
                0xa0, 0xd6, 0x83, 0xbf, 0x8b, 0x22, 0xe2, 0xb7,
 
36132
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08,
 
36133
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
36134
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36135
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
36136
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
36137
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
36138
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
36139
        };      /* Structure image */
 
36140
 
 
36141
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
36761
36142
}
36762
36143
 
36763
 
 
36764
 
 
36765
 
 
36766
 
 
36767
 
 
36768
36144
/* Integer Multi-Dimensional Interpolation */
36769
36145
/* Interpolation Kernel Code */
36770
36146
/* Generated by cgen */
36773
36149
 
36774
36150
/* see the Licence.txt file for licencing details.*/
36775
36151
 
36776
 
 
36777
36152
/*
36778
36153
   Interpolation kernel specs:
36779
36154
 
36868
36243
void **inp,             /* pointer to input pointers */
36869
36244
unsigned int npix       /* Number of pixels to process */
36870
36245
) {
36871
 
        imdi_imp *p = (imdi_imp *)(s->impl);
36872
 
        unsigned short *ip0 = (unsigned short *)inp[0];
36873
 
        unsigned short *op0 = (unsigned short *)outp[0];
36874
 
        unsigned short *ep = ip0 + npix * 8 ;
36875
 
        pointer it0 = (pointer)p->in_tables[0];
36876
 
        pointer it1 = (pointer)p->in_tables[1];
36877
 
        pointer it2 = (pointer)p->in_tables[2];
36878
 
        pointer it3 = (pointer)p->in_tables[3];
36879
 
        pointer it4 = (pointer)p->in_tables[4];
36880
 
        pointer it5 = (pointer)p->in_tables[5];
36881
 
        pointer it6 = (pointer)p->in_tables[6];
36882
 
        pointer it7 = (pointer)p->in_tables[7];
36883
 
        pointer ot0 = (pointer)p->out_tables[0];
36884
 
        pointer im_base = (pointer)p->im_table;
36885
 
        
36886
 
        for(;ip0 < ep; ip0 += 8, op0 += 1) {
36887
 
                unsigned int ova0;      /* Output value accumulator */
36888
 
                {
36889
 
                        pointer imp;
36890
 
                        unsigned int we0;       /* Weighting value variable */
36891
 
                        unsigned int vo0;       /* Vertex offset variable */
36892
 
                        unsigned int we1;       /* Weighting value variable */
36893
 
                        unsigned int vo1;       /* Vertex offset variable */
36894
 
                        unsigned int we2;       /* Weighting value variable */
36895
 
                        unsigned int vo2;       /* Vertex offset variable */
36896
 
                        unsigned int we3;       /* Weighting value variable */
36897
 
                        unsigned int vo3;       /* Vertex offset variable */
36898
 
                        unsigned int we4;       /* Weighting value variable */
36899
 
                        unsigned int vo4;       /* Vertex offset variable */
36900
 
                        unsigned int we5;       /* Weighting value variable */
36901
 
                        unsigned int vo5;       /* Vertex offset variable */
36902
 
                        unsigned int we6;       /* Weighting value variable */
36903
 
                        unsigned int vo6;       /* Vertex offset variable */
36904
 
                        unsigned int we7;       /* Weighting value variable */
36905
 
                        unsigned int vo7;       /* Vertex offset variable */
36906
 
                        {
36907
 
                                unsigned int ti_i;      /* Interpolation index variable */
36908
 
                                
36909
 
                                ti_i  = IT_IX(it0, ip0[0]);
36910
 
                                we0   = IT_WE(it0, ip0[0]);
36911
 
                                vo0   = IT_VO(it0, ip0[0]);
36912
 
                                ti_i += IT_IX(it1, ip0[1]);
36913
 
                                we1   = IT_WE(it1, ip0[1]);
36914
 
                                vo1   = IT_VO(it1, ip0[1]);
36915
 
                                ti_i += IT_IX(it2, ip0[2]);
36916
 
                                we2   = IT_WE(it2, ip0[2]);
36917
 
                                vo2   = IT_VO(it2, ip0[2]);
36918
 
                                ti_i += IT_IX(it3, ip0[3]);
36919
 
                                we3   = IT_WE(it3, ip0[3]);
36920
 
                                vo3   = IT_VO(it3, ip0[3]);
36921
 
                                ti_i += IT_IX(it4, ip0[4]);
36922
 
                                we4   = IT_WE(it4, ip0[4]);
36923
 
                                vo4   = IT_VO(it4, ip0[4]);
36924
 
                                ti_i += IT_IX(it5, ip0[5]);
36925
 
                                we5   = IT_WE(it5, ip0[5]);
36926
 
                                vo5   = IT_VO(it5, ip0[5]);
36927
 
                                ti_i += IT_IX(it6, ip0[6]);
36928
 
                                we6   = IT_WE(it6, ip0[6]);
36929
 
                                vo6   = IT_VO(it6, ip0[6]);
36930
 
                                ti_i += IT_IX(it7, ip0[7]);
36931
 
                                we7   = IT_WE(it7, ip0[7]);
36932
 
                                vo7   = IT_VO(it7, ip0[7]);
36933
 
                                
36934
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
36935
 
                                
36936
 
                                /* Sort weighting values and vertex offset values */
36937
 
                                CEX(we0, vo0, we1, vo1);
36938
 
                                CEX(we0, vo0, we2, vo2);
36939
 
                                CEX(we0, vo0, we3, vo3);
36940
 
                                CEX(we0, vo0, we4, vo4);
36941
 
                                CEX(we0, vo0, we5, vo5);
36942
 
                                CEX(we0, vo0, we6, vo6);
36943
 
                                CEX(we0, vo0, we7, vo7);
36944
 
                                CEX(we1, vo1, we2, vo2);
36945
 
                                CEX(we1, vo1, we3, vo3);
36946
 
                                CEX(we1, vo1, we4, vo4);
36947
 
                                CEX(we1, vo1, we5, vo5);
36948
 
                                CEX(we1, vo1, we6, vo6);
36949
 
                                CEX(we1, vo1, we7, vo7);
36950
 
                                CEX(we2, vo2, we3, vo3);
36951
 
                                CEX(we2, vo2, we4, vo4);
36952
 
                                CEX(we2, vo2, we5, vo5);
36953
 
                                CEX(we2, vo2, we6, vo6);
36954
 
                                CEX(we2, vo2, we7, vo7);
36955
 
                                CEX(we3, vo3, we4, vo4);
36956
 
                                CEX(we3, vo3, we5, vo5);
36957
 
                                CEX(we3, vo3, we6, vo6);
36958
 
                                CEX(we3, vo3, we7, vo7);
36959
 
                                CEX(we4, vo4, we5, vo5);
36960
 
                                CEX(we4, vo4, we6, vo6);
36961
 
                                CEX(we4, vo4, we7, vo7);
36962
 
                                CEX(we5, vo5, we6, vo6);
36963
 
                                CEX(we5, vo5, we7, vo7);
36964
 
                                CEX(we6, vo6, we7, vo7);
36965
 
                        }
36966
 
                        {
36967
 
                                unsigned int vof;       /* Vertex offset value */
36968
 
                                unsigned int vwe;       /* Vertex weighting */
36969
 
                                
36970
 
                                vof = 0;                                /* First vertex offset is 0 */
36971
 
                                vwe = 65536 - we0;              /* Baricentric weighting */
36972
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
36973
 
                                vof += vo0;                     /* Move to next vertex */
36974
 
                                vwe = we0 - we1;                /* Baricentric weighting */
36975
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
36976
 
                                vof += vo1;                     /* Move to next vertex */
36977
 
                                vwe = we1 - we2;                /* Baricentric weighting */
36978
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
36979
 
                                vof += vo2;                     /* Move to next vertex */
36980
 
                                vwe = we2 - we3;                /* Baricentric weighting */
36981
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
36982
 
                                vof += vo3;                     /* Move to next vertex */
36983
 
                                vwe = we3 - we4;                /* Baricentric weighting */
36984
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
36985
 
                                vof += vo4;                     /* Move to next vertex */
36986
 
                                vwe = we4 - we5;                /* Baricentric weighting */
36987
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
36988
 
                                vof += vo5;                     /* Move to next vertex */
36989
 
                                vwe = we5 - we6;                /* Baricentric weighting */
36990
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
36991
 
                                vof += vo6;                     /* Move to next vertex */
36992
 
                                vwe = we6 - we7;                /* Baricentric weighting */
36993
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
36994
 
                                vof += vo7;                     /* Move to next vertex */
36995
 
                                vwe = we7;                              /* Baricentric weighting */
36996
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
36997
 
                        }
36998
 
                }
36999
 
                {
37000
 
                        unsigned int oti;       /* Vertex offset value */
37001
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
37002
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
37003
 
                }
37004
 
        }
 
36246
        imdi_imp *p = (imdi_imp *)(s->impl);
 
36247
        unsigned short *ip0 = (unsigned short *)inp[0];
 
36248
        unsigned short *op0 = (unsigned short *)outp[0];
 
36249
        unsigned short *ep = ip0 + npix * 8 ;
 
36250
        pointer it0 = (pointer)p->in_tables[0];
 
36251
        pointer it1 = (pointer)p->in_tables[1];
 
36252
        pointer it2 = (pointer)p->in_tables[2];
 
36253
        pointer it3 = (pointer)p->in_tables[3];
 
36254
        pointer it4 = (pointer)p->in_tables[4];
 
36255
        pointer it5 = (pointer)p->in_tables[5];
 
36256
        pointer it6 = (pointer)p->in_tables[6];
 
36257
        pointer it7 = (pointer)p->in_tables[7];
 
36258
        pointer ot0 = (pointer)p->out_tables[0];
 
36259
        pointer im_base = (pointer)p->im_table;
 
36260
 
 
36261
        for(;ip0 < ep; ip0 += 8, op0 += 1) {
 
36262
                unsigned int ova0;      /* Output value accumulator */
 
36263
                {
 
36264
                        pointer imp;
 
36265
                        unsigned int we0;       /* Weighting value variable */
 
36266
                        unsigned int vo0;       /* Vertex offset variable */
 
36267
                        unsigned int we1;       /* Weighting value variable */
 
36268
                        unsigned int vo1;       /* Vertex offset variable */
 
36269
                        unsigned int we2;       /* Weighting value variable */
 
36270
                        unsigned int vo2;       /* Vertex offset variable */
 
36271
                        unsigned int we3;       /* Weighting value variable */
 
36272
                        unsigned int vo3;       /* Vertex offset variable */
 
36273
                        unsigned int we4;       /* Weighting value variable */
 
36274
                        unsigned int vo4;       /* Vertex offset variable */
 
36275
                        unsigned int we5;       /* Weighting value variable */
 
36276
                        unsigned int vo5;       /* Vertex offset variable */
 
36277
                        unsigned int we6;       /* Weighting value variable */
 
36278
                        unsigned int vo6;       /* Vertex offset variable */
 
36279
                        unsigned int we7;       /* Weighting value variable */
 
36280
                        unsigned int vo7;       /* Vertex offset variable */
 
36281
                        {
 
36282
                                unsigned int ti_i;      /* Interpolation index variable */
 
36283
 
 
36284
                                ti_i  = IT_IX(it0, ip0[0]);
 
36285
                                we0   = IT_WE(it0, ip0[0]);
 
36286
                                vo0   = IT_VO(it0, ip0[0]);
 
36287
                                ti_i += IT_IX(it1, ip0[1]);
 
36288
                                we1   = IT_WE(it1, ip0[1]);
 
36289
                                vo1   = IT_VO(it1, ip0[1]);
 
36290
                                ti_i += IT_IX(it2, ip0[2]);
 
36291
                                we2   = IT_WE(it2, ip0[2]);
 
36292
                                vo2   = IT_VO(it2, ip0[2]);
 
36293
                                ti_i += IT_IX(it3, ip0[3]);
 
36294
                                we3   = IT_WE(it3, ip0[3]);
 
36295
                                vo3   = IT_VO(it3, ip0[3]);
 
36296
                                ti_i += IT_IX(it4, ip0[4]);
 
36297
                                we4   = IT_WE(it4, ip0[4]);
 
36298
                                vo4   = IT_VO(it4, ip0[4]);
 
36299
                                ti_i += IT_IX(it5, ip0[5]);
 
36300
                                we5   = IT_WE(it5, ip0[5]);
 
36301
                                vo5   = IT_VO(it5, ip0[5]);
 
36302
                                ti_i += IT_IX(it6, ip0[6]);
 
36303
                                we6   = IT_WE(it6, ip0[6]);
 
36304
                                vo6   = IT_VO(it6, ip0[6]);
 
36305
                                ti_i += IT_IX(it7, ip0[7]);
 
36306
                                we7   = IT_WE(it7, ip0[7]);
 
36307
                                vo7   = IT_VO(it7, ip0[7]);
 
36308
 
 
36309
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
36310
 
 
36311
                                /* Sort weighting values and vertex offset values */
 
36312
                                CEX(we0, vo0, we1, vo1);
 
36313
                                CEX(we0, vo0, we2, vo2);
 
36314
                                CEX(we0, vo0, we3, vo3);
 
36315
                                CEX(we0, vo0, we4, vo4);
 
36316
                                CEX(we0, vo0, we5, vo5);
 
36317
                                CEX(we0, vo0, we6, vo6);
 
36318
                                CEX(we0, vo0, we7, vo7);
 
36319
                                CEX(we1, vo1, we2, vo2);
 
36320
                                CEX(we1, vo1, we3, vo3);
 
36321
                                CEX(we1, vo1, we4, vo4);
 
36322
                                CEX(we1, vo1, we5, vo5);
 
36323
                                CEX(we1, vo1, we6, vo6);
 
36324
                                CEX(we1, vo1, we7, vo7);
 
36325
                                CEX(we2, vo2, we3, vo3);
 
36326
                                CEX(we2, vo2, we4, vo4);
 
36327
                                CEX(we2, vo2, we5, vo5);
 
36328
                                CEX(we2, vo2, we6, vo6);
 
36329
                                CEX(we2, vo2, we7, vo7);
 
36330
                                CEX(we3, vo3, we4, vo4);
 
36331
                                CEX(we3, vo3, we5, vo5);
 
36332
                                CEX(we3, vo3, we6, vo6);
 
36333
                                CEX(we3, vo3, we7, vo7);
 
36334
                                CEX(we4, vo4, we5, vo5);
 
36335
                                CEX(we4, vo4, we6, vo6);
 
36336
                                CEX(we4, vo4, we7, vo7);
 
36337
                                CEX(we5, vo5, we6, vo6);
 
36338
                                CEX(we5, vo5, we7, vo7);
 
36339
                                CEX(we6, vo6, we7, vo7);
 
36340
                        }
 
36341
                        {
 
36342
                                unsigned int vof;       /* Vertex offset value */
 
36343
                                unsigned int vwe;       /* Vertex weighting */
 
36344
 
 
36345
                                vof = 0;                                /* First vertex offset is 0 */
 
36346
                                vwe = 65536 - we0;              /* Baricentric weighting */
 
36347
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
36348
                                vof += vo0;                     /* Move to next vertex */
 
36349
                                vwe = we0 - we1;                /* Baricentric weighting */
 
36350
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
36351
                                vof += vo1;                     /* Move to next vertex */
 
36352
                                vwe = we1 - we2;                /* Baricentric weighting */
 
36353
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
36354
                                vof += vo2;                     /* Move to next vertex */
 
36355
                                vwe = we2 - we3;                /* Baricentric weighting */
 
36356
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
36357
                                vof += vo3;                     /* Move to next vertex */
 
36358
                                vwe = we3 - we4;                /* Baricentric weighting */
 
36359
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
36360
                                vof += vo4;                     /* Move to next vertex */
 
36361
                                vwe = we4 - we5;                /* Baricentric weighting */
 
36362
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
36363
                                vof += vo5;                     /* Move to next vertex */
 
36364
                                vwe = we5 - we6;                /* Baricentric weighting */
 
36365
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
36366
                                vof += vo6;                     /* Move to next vertex */
 
36367
                                vwe = we6 - we7;                /* Baricentric weighting */
 
36368
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
36369
                                vof += vo7;                     /* Move to next vertex */
 
36370
                                vwe = we7;                              /* Baricentric weighting */
 
36371
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
36372
                        }
 
36373
                }
 
36374
                {
 
36375
                        unsigned int oti;       /* Vertex offset value */
 
36376
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
36377
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
36378
                }
 
36379
        }
37005
36380
}
37006
36381
#undef IT_WE
37007
36382
#undef IT_VO
37015
36390
imdi_k105_gen(
37016
36391
genspec *g                      /* structure to be initialised */
37017
36392
) {
37018
 
        static unsigned char data[] = {
37019
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
37020
 
                0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
37021
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37022
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37023
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37024
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37025
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37026
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
37027
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
37028
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
37029
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
37030
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37031
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37032
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37033
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37034
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37035
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37036
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37037
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37038
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
37039
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37040
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37041
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37042
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37043
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
37044
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
37045
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
37046
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
37047
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37048
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37049
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37050
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37051
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37052
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37053
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37054
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37055
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
37056
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
37057
 
                0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37058
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
37059
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
37060
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
37061
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
37062
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
37063
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
37064
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
37065
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
37066
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
37067
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37068
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
37069
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
37070
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x38, 0x5f, 0x31, 0x5f, 
37071
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
37072
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
37073
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
37074
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
37075
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
37076
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
37077
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
37078
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37079
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37080
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37081
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37082
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
37083
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x30, 
37084
 
                0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37085
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37086
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
37087
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
37088
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
37089
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
37090
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
37091
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
37092
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
37093
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
37094
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
37095
 
                0x00, 0xf0, 0x04, 0x08 
37096
 
        };      /* Structure image */
37097
 
        
37098
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
36393
        static unsigned char data[] = {
 
36394
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
36395
                0x01, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
36396
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36397
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36398
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36399
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36400
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36401
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
36402
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
36403
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
36404
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
36405
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36406
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36407
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36408
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36409
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36410
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36411
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36412
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36413
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
36414
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36415
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36416
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36417
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36418
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
36419
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
36420
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
36421
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
36422
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36423
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36424
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36425
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36426
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36427
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36428
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36429
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36430
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
36431
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
36432
                0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36433
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
36434
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
36435
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
36436
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
36437
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
36438
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
36439
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
36440
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
36441
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
36442
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36443
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
36444
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
36445
                0x2c, 0xf3, 0xdc, 0xb7, 0x38, 0x5f, 0x31, 0x5f,
 
36446
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
36447
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
36448
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
36449
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
36450
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
36451
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
36452
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
36453
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36454
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36455
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36456
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36457
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
36458
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x30,
 
36459
                0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36460
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36461
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
36462
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
36463
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
36464
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
36465
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
36466
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
36467
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
36468
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
36469
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
36470
                0x00, 0xf0, 0x04, 0x08
 
36471
        };      /* Structure image */
 
36472
 
 
36473
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
37099
36474
}
37100
36475
 
37101
36476
static void
37102
36477
imdi_k105_tab(
37103
36478
tabspec *t                      /* structure to be initialised */
37104
36479
) {
37105
 
        static unsigned char data[] = {
37106
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
37107
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
37108
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
37109
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
37110
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
37111
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
37112
 
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 
37113
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
37114
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
37115
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37116
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
37117
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
37118
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
37119
 
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
37120
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
37121
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37122
 
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
37123
 
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
37124
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37125
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37126
 
                0x00, 0x00, 0x00, 0x00, 0xa1, 0xd4, 0xe2, 0xb7, 
37127
 
                0xf4, 0xd5, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
37128
 
                0xff, 0xff, 0xff, 0x31, 0x00, 0x00, 0x00, 0x00, 
37129
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
37130
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37131
 
                0xa0, 0xd6, 0x83, 0xbf, 0x8b, 0x22, 0xe2, 0xb7, 
37132
 
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08, 
37133
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
37134
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37135
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
37136
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
37137
 
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
37138
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
37139
 
        };      /* Structure image */
37140
 
        
37141
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
36480
        static unsigned char data[] = {
 
36481
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
36482
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
36483
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
36484
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
36485
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
36486
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
36487
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
 
36488
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
36489
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
36490
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36491
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
36492
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
36493
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
36494
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
36495
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
36496
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36497
                0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
36498
                0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
36499
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36500
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36501
                0x00, 0x00, 0x00, 0x00, 0xa1, 0xd4, 0xe2, 0xb7,
 
36502
                0xf4, 0xd5, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
36503
                0xff, 0xff, 0xff, 0x31, 0x00, 0x00, 0x00, 0x00,
 
36504
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
36505
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36506
                0xa0, 0xd6, 0x83, 0xbf, 0x8b, 0x22, 0xe2, 0xb7,
 
36507
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08,
 
36508
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
36509
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36510
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
36511
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
36512
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
36513
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
36514
        };      /* Structure image */
 
36515
 
 
36516
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
37142
36517
}
37143
36518
 
37144
 
 
37145
 
 
37146
 
 
37147
 
 
37148
 
 
37149
36519
/* Integer Multi-Dimensional Interpolation */
37150
36520
/* Interpolation Kernel Code */
37151
36521
/* Generated by cgen */
37154
36524
 
37155
36525
/* see the Licence.txt file for licencing details.*/
37156
36526
 
37157
 
 
37158
36527
/*
37159
36528
   Interpolation kernel specs:
37160
36529
 
37232
36601
void **inp,             /* pointer to input pointers */
37233
36602
unsigned int npix       /* Number of pixels to process */
37234
36603
) {
37235
 
        imdi_imp *p = (imdi_imp *)(s->impl);
37236
 
        unsigned short *ip0 = (unsigned short *)inp[0];
37237
 
        unsigned short *op0 = (unsigned short *)outp[0];
37238
 
        unsigned short *ep = ip0 + npix * 1 ;
37239
 
        pointer it0 = (pointer)p->in_tables[0];
37240
 
        pointer ot0 = (pointer)p->out_tables[0];
37241
 
        pointer ot1 = (pointer)p->out_tables[1];
37242
 
        pointer ot2 = (pointer)p->out_tables[2];
37243
 
        pointer im_base = (pointer)p->im_table;
37244
 
        
37245
 
        for(;ip0 < ep; ip0 += 1, op0 += 3) {
37246
 
                unsigned int ova0;      /* Output value accumulator */
37247
 
                unsigned int ova1;      /* Output value accumulator */
37248
 
                unsigned int ova2;      /* Output value accumulator */
37249
 
                {
37250
 
                        pointer imp;
37251
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
37252
 
                        {
37253
 
                                unsigned int ti;                /* Input table entry variable */
37254
 
                                unsigned int ti_i;      /* Interpolation index variable */
37255
 
                                
37256
 
                                ti = IT_IT(it0, ip0[0]);
37257
 
                                wo0   = (ti & 0x1fffff);        /* Extract weighting/vertex offset value */
37258
 
                                ti_i  = (ti >> 21);     /* Extract interpolation table value */
37259
 
                                
37260
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
37261
 
                                
37262
 
                                /* Sort weighting values and vertex offset values */
37263
 
                        }
37264
 
                        {
37265
 
                                unsigned int nvof;      /* Next vertex offset value */
37266
 
                                unsigned int vof;       /* Vertex offset value */
37267
 
                                unsigned int vwe;       /* Vertex weighting */
37268
 
                                
37269
 
                                vof = 0;                                /* First vertex offset is 0 */
37270
 
                                nvof = (wo0 & 0xf);     /* Extract offset value */
37271
 
                                wo0 = (wo0 >> 4);               /* Extract weighting value */
37272
 
                                vwe = 65536 - wo0;              /* Baricentric weighting */
37273
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
37274
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
37275
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
37276
 
                                vof += nvof;                    /* Move to next vertex */
37277
 
                                vwe = wo0;                              /* Baricentric weighting */
37278
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
37279
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
37280
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
37281
 
                        }
37282
 
                }
37283
 
                {
37284
 
                        unsigned int oti;       /* Vertex offset value */
37285
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
37286
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
37287
 
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
37288
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
37289
 
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
37290
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
37291
 
                }
37292
 
        }
 
36604
        imdi_imp *p = (imdi_imp *)(s->impl);
 
36605
        unsigned short *ip0 = (unsigned short *)inp[0];
 
36606
        unsigned short *op0 = (unsigned short *)outp[0];
 
36607
        unsigned short *ep = ip0 + npix * 1 ;
 
36608
        pointer it0 = (pointer)p->in_tables[0];
 
36609
        pointer ot0 = (pointer)p->out_tables[0];
 
36610
        pointer ot1 = (pointer)p->out_tables[1];
 
36611
        pointer ot2 = (pointer)p->out_tables[2];
 
36612
        pointer im_base = (pointer)p->im_table;
 
36613
 
 
36614
        for(;ip0 < ep; ip0 += 1, op0 += 3) {
 
36615
                unsigned int ova0;      /* Output value accumulator */
 
36616
                unsigned int ova1;      /* Output value accumulator */
 
36617
                unsigned int ova2;      /* Output value accumulator */
 
36618
                {
 
36619
                        pointer imp;
 
36620
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
36621
                        {
 
36622
                                unsigned int ti;                /* Input table entry variable */
 
36623
                                unsigned int ti_i;      /* Interpolation index variable */
 
36624
 
 
36625
                                ti = IT_IT(it0, ip0[0]);
 
36626
                                wo0   = (ti & 0x1fffff);        /* Extract weighting/vertex offset value */
 
36627
                                ti_i  = (ti >> 21);     /* Extract interpolation table value */
 
36628
 
 
36629
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
36630
 
 
36631
                                /* Sort weighting values and vertex offset values */
 
36632
                        }
 
36633
                        {
 
36634
                                unsigned int nvof;      /* Next vertex offset value */
 
36635
                                unsigned int vof;       /* Vertex offset value */
 
36636
                                unsigned int vwe;       /* Vertex weighting */
 
36637
 
 
36638
                                vof = 0;                                /* First vertex offset is 0 */
 
36639
                                nvof = (wo0 & 0xf);     /* Extract offset value */
 
36640
                                wo0 = (wo0 >> 4);               /* Extract weighting value */
 
36641
                                vwe = 65536 - wo0;              /* Baricentric weighting */
 
36642
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
36643
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
36644
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
36645
                                vof += nvof;                    /* Move to next vertex */
 
36646
                                vwe = wo0;                              /* Baricentric weighting */
 
36647
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
36648
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
36649
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
36650
                        }
 
36651
                }
 
36652
                {
 
36653
                        unsigned int oti;       /* Vertex offset value */
 
36654
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
36655
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
36656
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
 
36657
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
36658
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
 
36659
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
36660
                }
 
36661
        }
37293
36662
}
37294
36663
#undef IT_IT
37295
36664
#undef CEX
37301
36670
imdi_k106_gen(
37302
36671
genspec *g                      /* structure to be initialised */
37303
36672
) {
37304
 
        static unsigned char data[] = {
37305
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
37306
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
37307
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37308
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37309
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37310
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37311
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37312
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
37313
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
37314
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
37315
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
37316
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37317
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37318
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37319
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37320
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37321
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37322
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37323
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37324
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
37325
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37326
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37327
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37328
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37329
 
                0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
37330
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
37331
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
37332
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
37333
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37334
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37335
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37336
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37337
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37338
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37339
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37340
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37341
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
37342
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
37343
 
                0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37344
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
37345
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
37346
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
37347
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
37348
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
37349
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
37350
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
37351
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
37352
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
37353
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37354
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
37355
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
37356
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x31, 0x5f, 0x33, 0x5f, 
37357
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
37358
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
37359
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
37360
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
37361
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
37362
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
37363
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
37364
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37365
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37366
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37367
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37368
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
37369
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x30, 
37370
 
                0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37371
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37372
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
37373
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
37374
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
37375
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
37376
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
37377
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
37378
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
37379
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
37380
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
37381
 
                0x00, 0xf0, 0x04, 0x08 
37382
 
        };      /* Structure image */
37383
 
        
37384
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
36673
        static unsigned char data[] = {
 
36674
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
36675
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
36676
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36677
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36678
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36679
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36680
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36681
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
36682
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
36683
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
36684
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
36685
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36686
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36687
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36688
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36689
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36690
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36691
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36692
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36693
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
36694
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36695
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36696
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36697
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36698
                0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
36699
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
36700
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
36701
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
36702
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36703
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36704
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36705
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36706
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36707
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36708
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36709
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36710
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
36711
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
36712
                0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36713
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
36714
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
36715
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
36716
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
36717
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
36718
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
36719
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
36720
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
36721
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
36722
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36723
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
36724
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
36725
                0x2c, 0xf3, 0xdc, 0xb7, 0x31, 0x5f, 0x33, 0x5f,
 
36726
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
36727
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
36728
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
36729
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
36730
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
36731
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
36732
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
36733
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36734
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36735
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36736
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36737
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
36738
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x30,
 
36739
                0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36740
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36741
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
36742
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
36743
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
36744
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
36745
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
36746
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
36747
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
36748
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
36749
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
36750
                0x00, 0xf0, 0x04, 0x08
 
36751
        };      /* Structure image */
 
36752
 
 
36753
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
37385
36754
}
37386
36755
 
37387
36756
static void
37388
36757
imdi_k106_tab(
37389
36758
tabspec *t                      /* structure to be initialised */
37390
36759
) {
37391
 
        static unsigned char data[] = {
37392
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37393
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
37394
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
37395
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
37396
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
37397
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
37398
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
37399
 
                0x0b, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
37400
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
37401
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37402
 
                0x14, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 
37403
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
37404
 
                0x11, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
37405
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
37406
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
37407
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37408
 
                0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
37409
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
37410
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37411
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37412
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
37413
 
                0x02, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
37414
 
                0xff, 0xff, 0xff, 0x33, 0x00, 0x00, 0x00, 0x00, 
37415
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
37416
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37417
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37418
 
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08, 
37419
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
37420
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37421
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37422
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
37423
 
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
37424
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
37425
 
        };      /* Structure image */
37426
 
        
37427
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
36760
        static unsigned char data[] = {
 
36761
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36762
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
36763
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
36764
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
36765
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
36766
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
36767
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
36768
                0x0b, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
36769
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
36770
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36771
                0x14, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00,
 
36772
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
36773
                0x11, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
36774
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
36775
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
36776
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36777
                0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
36778
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
36779
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36780
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36781
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
36782
                0x02, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
36783
                0xff, 0xff, 0xff, 0x33, 0x00, 0x00, 0x00, 0x00,
 
36784
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
36785
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36786
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36787
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08,
 
36788
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
36789
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36790
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36791
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
36792
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
36793
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
36794
        };      /* Structure image */
 
36795
 
 
36796
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
37428
36797
}
37429
36798
 
37430
 
 
37431
 
 
37432
 
 
37433
 
 
37434
 
 
37435
36799
/* Integer Multi-Dimensional Interpolation */
37436
36800
/* Interpolation Kernel Code */
37437
36801
/* Generated by cgen */
37440
36804
 
37441
36805
/* see the Licence.txt file for licencing details.*/
37442
36806
 
37443
 
 
37444
36807
/*
37445
36808
   Interpolation kernel specs:
37446
36809
 
37525
36888
void **inp,             /* pointer to input pointers */
37526
36889
unsigned int npix       /* Number of pixels to process */
37527
36890
) {
37528
 
        imdi_imp *p = (imdi_imp *)(s->impl);
37529
 
        unsigned short *ip0 = (unsigned short *)inp[0];
37530
 
        unsigned short *op0 = (unsigned short *)outp[0];
37531
 
        unsigned short *ep = ip0 + npix * 3 ;
37532
 
        pointer it0 = (pointer)p->in_tables[0];
37533
 
        pointer it1 = (pointer)p->in_tables[1];
37534
 
        pointer it2 = (pointer)p->in_tables[2];
37535
 
        pointer ot0 = (pointer)p->out_tables[0];
37536
 
        pointer ot1 = (pointer)p->out_tables[1];
37537
 
        pointer ot2 = (pointer)p->out_tables[2];
37538
 
        pointer im_base = (pointer)p->im_table;
37539
 
        
37540
 
        for(;ip0 < ep; ip0 += 3, op0 += 3) {
37541
 
                unsigned int ova0;      /* Output value accumulator */
37542
 
                unsigned int ova1;      /* Output value accumulator */
37543
 
                unsigned int ova2;      /* Output value accumulator */
37544
 
                {
37545
 
                        pointer imp;
37546
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
37547
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
37548
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
37549
 
                        {
37550
 
                                unsigned int ti_i;      /* Interpolation index variable */
37551
 
                                
37552
 
                                ti_i  = IT_IX(it0, ip0[0]);
37553
 
                                wo0   = IT_WO(it0, ip0[0]);
37554
 
                                ti_i += IT_IX(it1, ip0[1]);
37555
 
                                wo1   = IT_WO(it1, ip0[1]);
37556
 
                                ti_i += IT_IX(it2, ip0[2]);
37557
 
                                wo2   = IT_WO(it2, ip0[2]);
37558
 
                                
37559
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
37560
 
                                
37561
 
                                /* Sort weighting values and vertex offset values */
37562
 
                                CEX(wo0, wo1);
37563
 
                                CEX(wo0, wo2);
37564
 
                                CEX(wo1, wo2);
37565
 
                        }
37566
 
                        {
37567
 
                                unsigned int nvof;      /* Next vertex offset value */
37568
 
                                unsigned int vof;       /* Vertex offset value */
37569
 
                                unsigned int vwe;       /* Vertex weighting */
37570
 
                                
37571
 
                                vof = 0;                                /* First vertex offset is 0 */
37572
 
                                nvof = (wo0 & 0x7fff);  /* Extract offset value */
37573
 
                                wo0 = (wo0 >> 15);              /* Extract weighting value */
37574
 
                                vwe = 65536 - wo0;              /* Baricentric weighting */
37575
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
37576
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
37577
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
37578
 
                                vof += nvof;                    /* Move to next vertex */
37579
 
                                nvof = (wo1 & 0x7fff);  /* Extract offset value */
37580
 
                                wo1 = (wo1 >> 15);              /* Extract weighting value */
37581
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
37582
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
37583
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
37584
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
37585
 
                                vof += nvof;                    /* Move to next vertex */
37586
 
                                nvof = (wo2 & 0x7fff);  /* Extract offset value */
37587
 
                                wo2 = (wo2 >> 15);              /* Extract weighting value */
37588
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
37589
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
37590
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
37591
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
37592
 
                                vof += nvof;                    /* Move to next vertex */
37593
 
                                vwe = wo2;                              /* Baricentric weighting */
37594
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
37595
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
37596
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
37597
 
                        }
37598
 
                }
37599
 
                {
37600
 
                        unsigned int oti;       /* Vertex offset value */
37601
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
37602
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
37603
 
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
37604
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
37605
 
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
37606
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
37607
 
                }
37608
 
        }
 
36891
        imdi_imp *p = (imdi_imp *)(s->impl);
 
36892
        unsigned short *ip0 = (unsigned short *)inp[0];
 
36893
        unsigned short *op0 = (unsigned short *)outp[0];
 
36894
        unsigned short *ep = ip0 + npix * 3 ;
 
36895
        pointer it0 = (pointer)p->in_tables[0];
 
36896
        pointer it1 = (pointer)p->in_tables[1];
 
36897
        pointer it2 = (pointer)p->in_tables[2];
 
36898
        pointer ot0 = (pointer)p->out_tables[0];
 
36899
        pointer ot1 = (pointer)p->out_tables[1];
 
36900
        pointer ot2 = (pointer)p->out_tables[2];
 
36901
        pointer im_base = (pointer)p->im_table;
 
36902
 
 
36903
        for(;ip0 < ep; ip0 += 3, op0 += 3) {
 
36904
                unsigned int ova0;      /* Output value accumulator */
 
36905
                unsigned int ova1;      /* Output value accumulator */
 
36906
                unsigned int ova2;      /* Output value accumulator */
 
36907
                {
 
36908
                        pointer imp;
 
36909
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
36910
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
36911
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
36912
                        {
 
36913
                                unsigned int ti_i;      /* Interpolation index variable */
 
36914
 
 
36915
                                ti_i  = IT_IX(it0, ip0[0]);
 
36916
                                wo0   = IT_WO(it0, ip0[0]);
 
36917
                                ti_i += IT_IX(it1, ip0[1]);
 
36918
                                wo1   = IT_WO(it1, ip0[1]);
 
36919
                                ti_i += IT_IX(it2, ip0[2]);
 
36920
                                wo2   = IT_WO(it2, ip0[2]);
 
36921
 
 
36922
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
36923
 
 
36924
                                /* Sort weighting values and vertex offset values */
 
36925
                                CEX(wo0, wo1);
 
36926
                                CEX(wo0, wo2);
 
36927
                                CEX(wo1, wo2);
 
36928
                        }
 
36929
                        {
 
36930
                                unsigned int nvof;      /* Next vertex offset value */
 
36931
                                unsigned int vof;       /* Vertex offset value */
 
36932
                                unsigned int vwe;       /* Vertex weighting */
 
36933
 
 
36934
                                vof = 0;                                /* First vertex offset is 0 */
 
36935
                                nvof = (wo0 & 0x7fff);  /* Extract offset value */
 
36936
                                wo0 = (wo0 >> 15);              /* Extract weighting value */
 
36937
                                vwe = 65536 - wo0;              /* Baricentric weighting */
 
36938
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
36939
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
36940
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
36941
                                vof += nvof;                    /* Move to next vertex */
 
36942
                                nvof = (wo1 & 0x7fff);  /* Extract offset value */
 
36943
                                wo1 = (wo1 >> 15);              /* Extract weighting value */
 
36944
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
36945
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
36946
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
36947
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
36948
                                vof += nvof;                    /* Move to next vertex */
 
36949
                                nvof = (wo2 & 0x7fff);  /* Extract offset value */
 
36950
                                wo2 = (wo2 >> 15);              /* Extract weighting value */
 
36951
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
36952
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
36953
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
36954
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
36955
                                vof += nvof;                    /* Move to next vertex */
 
36956
                                vwe = wo2;                              /* Baricentric weighting */
 
36957
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
36958
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
36959
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
36960
                        }
 
36961
                }
 
36962
                {
 
36963
                        unsigned int oti;       /* Vertex offset value */
 
36964
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
36965
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
36966
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
 
36967
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
36968
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
 
36969
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
36970
                }
 
36971
        }
37609
36972
}
37610
36973
#undef IT_WO
37611
36974
#undef IT_IX
37618
36981
imdi_k107_gen(
37619
36982
genspec *g                      /* structure to be initialised */
37620
36983
) {
37621
 
        static unsigned char data[] = {
37622
 
                0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
37623
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
37624
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37625
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37626
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37627
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37628
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37629
 
                0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
37630
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
37631
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
37632
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
37633
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37634
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37635
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37636
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37637
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37638
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37639
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37640
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37641
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
37642
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37643
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37644
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37645
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37646
 
                0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
37647
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
37648
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
37649
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
37650
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37651
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37652
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37653
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37654
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37655
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37656
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37657
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37658
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
37659
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
37660
 
                0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37661
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
37662
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
37663
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
37664
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
37665
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
37666
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
37667
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
37668
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
37669
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
37670
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37671
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
37672
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
37673
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x33, 0x5f, 0x33, 0x5f, 
37674
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
37675
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
37676
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
37677
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
37678
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
37679
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
37680
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
37681
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37682
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37683
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37684
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37685
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
37686
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x30, 
37687
 
                0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37688
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37689
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
37690
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
37691
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
37692
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
37693
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
37694
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
37695
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
37696
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
37697
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
37698
 
                0x00, 0xf0, 0x04, 0x08 
37699
 
        };      /* Structure image */
37700
 
        
37701
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
36984
        static unsigned char data[] = {
 
36985
                0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
36986
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
36987
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36988
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36989
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36990
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36991
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
36992
                0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
36993
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
36994
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
36995
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
36996
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36997
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36998
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
36999
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37000
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37001
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37002
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37003
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37004
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
37005
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37006
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37007
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37008
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37009
                0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
37010
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
37011
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
37012
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
37013
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37014
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37015
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37016
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37017
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37018
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37019
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37020
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37021
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
37022
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
37023
                0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37024
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
37025
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
37026
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
37027
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
37028
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
37029
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
37030
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
37031
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
37032
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
37033
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37034
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
37035
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
37036
                0x2c, 0xf3, 0xdc, 0xb7, 0x33, 0x5f, 0x33, 0x5f,
 
37037
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
37038
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
37039
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
37040
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
37041
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
37042
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
37043
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
37044
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37045
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37046
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37047
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37048
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
37049
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x30,
 
37050
                0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37051
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37052
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
37053
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
37054
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
37055
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
37056
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
37057
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
37058
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
37059
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
37060
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
37061
                0x00, 0xf0, 0x04, 0x08
 
37062
        };      /* Structure image */
 
37063
 
 
37064
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
37702
37065
}
37703
37066
 
37704
37067
static void
37705
37068
imdi_k107_tab(
37706
37069
tabspec *t                      /* structure to be initialised */
37707
37070
) {
37708
 
        static unsigned char data[] = {
37709
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
37710
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
37711
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
37712
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
37713
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
37714
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
37715
 
                0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
37716
 
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
37717
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
37718
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37719
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
37720
 
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
37721
 
                0x11, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
37722
 
                0x04, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 
37723
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
37724
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37725
 
                0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
37726
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
37727
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37728
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37729
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
37730
 
                0x02, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
37731
 
                0xff, 0xff, 0xff, 0x33, 0x00, 0x00, 0x00, 0x00, 
37732
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
37733
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37734
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37735
 
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08, 
37736
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
37737
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37738
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37739
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
37740
 
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
37741
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
37742
 
        };      /* Structure image */
37743
 
        
37744
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
37071
        static unsigned char data[] = {
 
37072
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
37073
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
37074
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
37075
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
37076
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
37077
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
37078
                0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
37079
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
37080
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
37081
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37082
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
37083
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
37084
                0x11, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
37085
                0x04, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00,
 
37086
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
37087
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37088
                0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
37089
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
37090
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37091
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37092
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
37093
                0x02, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
37094
                0xff, 0xff, 0xff, 0x33, 0x00, 0x00, 0x00, 0x00,
 
37095
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
37096
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37097
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37098
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08,
 
37099
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
37100
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37101
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37102
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
37103
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
37104
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
37105
        };      /* Structure image */
 
37106
 
 
37107
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
37745
37108
}
37746
37109
 
37747
 
 
37748
 
 
37749
 
 
37750
 
 
37751
 
 
37752
37110
/* Integer Multi-Dimensional Interpolation */
37753
37111
/* Interpolation Kernel Code */
37754
37112
/* Generated by cgen */
37757
37115
 
37758
37116
/* see the Licence.txt file for licencing details.*/
37759
37117
 
37760
 
 
37761
37118
/*
37762
37119
   Interpolation kernel specs:
37763
37120
 
37844
37201
void **inp,             /* pointer to input pointers */
37845
37202
unsigned int npix       /* Number of pixels to process */
37846
37203
) {
37847
 
        imdi_imp *p = (imdi_imp *)(s->impl);
37848
 
        unsigned short *ip0 = (unsigned short *)inp[0];
37849
 
        unsigned short *op0 = (unsigned short *)outp[0];
37850
 
        unsigned short *ep = ip0 + npix * 4 ;
37851
 
        pointer it0 = (pointer)p->in_tables[0];
37852
 
        pointer it1 = (pointer)p->in_tables[1];
37853
 
        pointer it2 = (pointer)p->in_tables[2];
37854
 
        pointer it3 = (pointer)p->in_tables[3];
37855
 
        pointer ot0 = (pointer)p->out_tables[0];
37856
 
        pointer ot1 = (pointer)p->out_tables[1];
37857
 
        pointer ot2 = (pointer)p->out_tables[2];
37858
 
        pointer im_base = (pointer)p->im_table;
37859
 
        
37860
 
        for(;ip0 < ep; ip0 += 4, op0 += 3) {
37861
 
                unsigned int ova0;      /* Output value accumulator */
37862
 
                unsigned int ova1;      /* Output value accumulator */
37863
 
                unsigned int ova2;      /* Output value accumulator */
37864
 
                {
37865
 
                        pointer imp;
37866
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
37867
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
37868
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
37869
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
37870
 
                        {
37871
 
                                unsigned int ti_i;      /* Interpolation index variable */
37872
 
                                
37873
 
                                ti_i  = IT_IX(it0, ip0[0]);
37874
 
                                wo0   = IT_WO(it0, ip0[0]);
37875
 
                                ti_i += IT_IX(it1, ip0[1]);
37876
 
                                wo1   = IT_WO(it1, ip0[1]);
37877
 
                                ti_i += IT_IX(it2, ip0[2]);
37878
 
                                wo2   = IT_WO(it2, ip0[2]);
37879
 
                                ti_i += IT_IX(it3, ip0[3]);
37880
 
                                wo3   = IT_WO(it3, ip0[3]);
37881
 
                                
37882
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
37883
 
                                
37884
 
                                /* Sort weighting values and vertex offset values */
37885
 
                                CEX(wo0, wo1);
37886
 
                                CEX(wo0, wo2);
37887
 
                                CEX(wo0, wo3);
37888
 
                                CEX(wo1, wo2);
37889
 
                                CEX(wo1, wo3);
37890
 
                                CEX(wo2, wo3);
37891
 
                        }
37892
 
                        {
37893
 
                                unsigned int nvof;      /* Next vertex offset value */
37894
 
                                unsigned int vof;       /* Vertex offset value */
37895
 
                                unsigned int vwe;       /* Vertex weighting */
37896
 
                                
37897
 
                                vof = 0;                                /* First vertex offset is 0 */
37898
 
                                nvof = (wo0 & 0x7fff);  /* Extract offset value */
37899
 
                                wo0 = (wo0 >> 15);              /* Extract weighting value */
37900
 
                                vwe = 65536 - wo0;              /* Baricentric weighting */
37901
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
37902
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
37903
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
37904
 
                                vof += nvof;                    /* Move to next vertex */
37905
 
                                nvof = (wo1 & 0x7fff);  /* Extract offset value */
37906
 
                                wo1 = (wo1 >> 15);              /* Extract weighting value */
37907
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
37908
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
37909
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
37910
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
37911
 
                                vof += nvof;                    /* Move to next vertex */
37912
 
                                nvof = (wo2 & 0x7fff);  /* Extract offset value */
37913
 
                                wo2 = (wo2 >> 15);              /* Extract weighting value */
37914
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
37915
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
37916
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
37917
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
37918
 
                                vof += nvof;                    /* Move to next vertex */
37919
 
                                nvof = (wo3 & 0x7fff);  /* Extract offset value */
37920
 
                                wo3 = (wo3 >> 15);              /* Extract weighting value */
37921
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
37922
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
37923
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
37924
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
37925
 
                                vof += nvof;                    /* Move to next vertex */
37926
 
                                vwe = wo3;                              /* Baricentric weighting */
37927
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
37928
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
37929
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
37930
 
                        }
37931
 
                }
37932
 
                {
37933
 
                        unsigned int oti;       /* Vertex offset value */
37934
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
37935
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
37936
 
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
37937
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
37938
 
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
37939
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
37940
 
                }
37941
 
        }
 
37204
        imdi_imp *p = (imdi_imp *)(s->impl);
 
37205
        unsigned short *ip0 = (unsigned short *)inp[0];
 
37206
        unsigned short *op0 = (unsigned short *)outp[0];
 
37207
        unsigned short *ep = ip0 + npix * 4 ;
 
37208
        pointer it0 = (pointer)p->in_tables[0];
 
37209
        pointer it1 = (pointer)p->in_tables[1];
 
37210
        pointer it2 = (pointer)p->in_tables[2];
 
37211
        pointer it3 = (pointer)p->in_tables[3];
 
37212
        pointer ot0 = (pointer)p->out_tables[0];
 
37213
        pointer ot1 = (pointer)p->out_tables[1];
 
37214
        pointer ot2 = (pointer)p->out_tables[2];
 
37215
        pointer im_base = (pointer)p->im_table;
 
37216
 
 
37217
        for(;ip0 < ep; ip0 += 4, op0 += 3) {
 
37218
                unsigned int ova0;      /* Output value accumulator */
 
37219
                unsigned int ova1;      /* Output value accumulator */
 
37220
                unsigned int ova2;      /* Output value accumulator */
 
37221
                {
 
37222
                        pointer imp;
 
37223
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
37224
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
37225
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
37226
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
37227
                        {
 
37228
                                unsigned int ti_i;      /* Interpolation index variable */
 
37229
 
 
37230
                                ti_i  = IT_IX(it0, ip0[0]);
 
37231
                                wo0   = IT_WO(it0, ip0[0]);
 
37232
                                ti_i += IT_IX(it1, ip0[1]);
 
37233
                                wo1   = IT_WO(it1, ip0[1]);
 
37234
                                ti_i += IT_IX(it2, ip0[2]);
 
37235
                                wo2   = IT_WO(it2, ip0[2]);
 
37236
                                ti_i += IT_IX(it3, ip0[3]);
 
37237
                                wo3   = IT_WO(it3, ip0[3]);
 
37238
 
 
37239
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
37240
 
 
37241
                                /* Sort weighting values and vertex offset values */
 
37242
                                CEX(wo0, wo1);
 
37243
                                CEX(wo0, wo2);
 
37244
                                CEX(wo0, wo3);
 
37245
                                CEX(wo1, wo2);
 
37246
                                CEX(wo1, wo3);
 
37247
                                CEX(wo2, wo3);
 
37248
                        }
 
37249
                        {
 
37250
                                unsigned int nvof;      /* Next vertex offset value */
 
37251
                                unsigned int vof;       /* Vertex offset value */
 
37252
                                unsigned int vwe;       /* Vertex weighting */
 
37253
 
 
37254
                                vof = 0;                                /* First vertex offset is 0 */
 
37255
                                nvof = (wo0 & 0x7fff);  /* Extract offset value */
 
37256
                                wo0 = (wo0 >> 15);              /* Extract weighting value */
 
37257
                                vwe = 65536 - wo0;              /* Baricentric weighting */
 
37258
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
37259
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
37260
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
37261
                                vof += nvof;                    /* Move to next vertex */
 
37262
                                nvof = (wo1 & 0x7fff);  /* Extract offset value */
 
37263
                                wo1 = (wo1 >> 15);              /* Extract weighting value */
 
37264
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
37265
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
37266
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
37267
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
37268
                                vof += nvof;                    /* Move to next vertex */
 
37269
                                nvof = (wo2 & 0x7fff);  /* Extract offset value */
 
37270
                                wo2 = (wo2 >> 15);              /* Extract weighting value */
 
37271
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
37272
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
37273
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
37274
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
37275
                                vof += nvof;                    /* Move to next vertex */
 
37276
                                nvof = (wo3 & 0x7fff);  /* Extract offset value */
 
37277
                                wo3 = (wo3 >> 15);              /* Extract weighting value */
 
37278
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
37279
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
37280
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
37281
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
37282
                                vof += nvof;                    /* Move to next vertex */
 
37283
                                vwe = wo3;                              /* Baricentric weighting */
 
37284
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
37285
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
37286
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
37287
                        }
 
37288
                }
 
37289
                {
 
37290
                        unsigned int oti;       /* Vertex offset value */
 
37291
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
37292
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
37293
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
 
37294
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
37295
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
 
37296
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
37297
                }
 
37298
        }
37942
37299
}
37943
37300
#undef IT_WO
37944
37301
#undef IT_IX
37951
37308
imdi_k108_gen(
37952
37309
genspec *g                      /* structure to be initialised */
37953
37310
) {
37954
 
        static unsigned char data[] = {
37955
 
                0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
37956
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
37957
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37958
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37959
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37960
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37961
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37962
 
                0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
37963
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
37964
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
37965
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
37966
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37967
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37968
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37969
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37970
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37971
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37972
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37973
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37974
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
37975
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37976
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37977
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37978
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37979
 
                0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
37980
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
37981
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
37982
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
37983
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37984
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37985
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37986
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37987
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37988
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37989
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37990
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
37991
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
37992
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
37993
 
                0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
37994
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
37995
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
37996
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
37997
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
37998
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
37999
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
38000
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
38001
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
38002
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
38003
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38004
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
38005
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
38006
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x34, 0x5f, 0x33, 0x5f, 
38007
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
38008
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
38009
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
38010
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
38011
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
38012
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
38013
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
38014
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38015
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38016
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38017
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38018
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
38019
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x30, 
38020
 
                0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38021
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38022
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
38023
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
38024
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
38025
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
38026
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
38027
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
38028
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
38029
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
38030
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
38031
 
                0x00, 0xf0, 0x04, 0x08 
38032
 
        };      /* Structure image */
38033
 
        
38034
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
37311
        static unsigned char data[] = {
 
37312
                0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
37313
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
37314
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37315
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37316
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37317
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37318
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37319
                0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
37320
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
37321
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
37322
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
37323
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37324
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37325
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37326
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37327
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37328
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37329
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37330
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37331
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
37332
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37333
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37334
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37335
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37336
                0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
37337
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
37338
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
37339
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
37340
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37341
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37342
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37343
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37344
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37345
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37346
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37347
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37348
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
37349
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
37350
                0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37351
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
37352
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
37353
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
37354
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
37355
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
37356
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
37357
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
37358
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
37359
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
37360
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37361
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
37362
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
37363
                0x2c, 0xf3, 0xdc, 0xb7, 0x34, 0x5f, 0x33, 0x5f,
 
37364
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
37365
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
37366
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
37367
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
37368
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
37369
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
37370
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
37371
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37372
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37373
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37374
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37375
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
37376
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x30,
 
37377
                0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37378
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37379
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
37380
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
37381
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
37382
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
37383
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
37384
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
37385
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
37386
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
37387
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
37388
                0x00, 0xf0, 0x04, 0x08
 
37389
        };      /* Structure image */
 
37390
 
 
37391
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
38035
37392
}
38036
37393
 
38037
37394
static void
38038
37395
imdi_k108_tab(
38039
37396
tabspec *t                      /* structure to be initialised */
38040
37397
) {
38041
 
        static unsigned char data[] = {
38042
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
38043
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
38044
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
38045
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
38046
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
38047
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
38048
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
38049
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
38050
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
38051
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38052
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
38053
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
38054
 
                0x11, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
38055
 
                0x04, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 
38056
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
38057
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38058
 
                0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
38059
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
38060
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38061
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38062
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
38063
 
                0x02, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
38064
 
                0xff, 0xff, 0xff, 0x33, 0x00, 0x00, 0x00, 0x00, 
38065
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
38066
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38067
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38068
 
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08, 
38069
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
38070
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
38071
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
38072
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
38073
 
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
38074
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
38075
 
        };      /* Structure image */
38076
 
        
38077
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
37398
        static unsigned char data[] = {
 
37399
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
37400
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
37401
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
37402
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
37403
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
37404
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
37405
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
37406
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
37407
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
37408
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37409
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
37410
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
37411
                0x11, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
37412
                0x04, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00,
 
37413
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
37414
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37415
                0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
37416
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
37417
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37418
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37419
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
37420
                0x02, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
37421
                0xff, 0xff, 0xff, 0x33, 0x00, 0x00, 0x00, 0x00,
 
37422
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
37423
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37424
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37425
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08,
 
37426
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
37427
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37428
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37429
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
37430
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
37431
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
37432
        };      /* Structure image */
 
37433
 
 
37434
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
38078
37435
}
38079
37436
 
38080
 
 
38081
 
 
38082
 
 
38083
 
 
38084
 
 
38085
37437
/* Integer Multi-Dimensional Interpolation */
38086
37438
/* Interpolation Kernel Code */
38087
37439
/* Generated by cgen */
38090
37442
 
38091
37443
/* see the Licence.txt file for licencing details.*/
38092
37444
 
38093
 
 
38094
37445
/*
38095
37446
   Interpolation kernel specs:
38096
37447
 
38183
37534
void **inp,             /* pointer to input pointers */
38184
37535
unsigned int npix       /* Number of pixels to process */
38185
37536
) {
38186
 
        imdi_imp *p = (imdi_imp *)(s->impl);
38187
 
        unsigned short *ip0 = (unsigned short *)inp[0];
38188
 
        unsigned short *op0 = (unsigned short *)outp[0];
38189
 
        unsigned short *ep = ip0 + npix * 5 ;
38190
 
        pointer it0 = (pointer)p->in_tables[0];
38191
 
        pointer it1 = (pointer)p->in_tables[1];
38192
 
        pointer it2 = (pointer)p->in_tables[2];
38193
 
        pointer it3 = (pointer)p->in_tables[3];
38194
 
        pointer it4 = (pointer)p->in_tables[4];
38195
 
        pointer ot0 = (pointer)p->out_tables[0];
38196
 
        pointer ot1 = (pointer)p->out_tables[1];
38197
 
        pointer ot2 = (pointer)p->out_tables[2];
38198
 
        pointer im_base = (pointer)p->im_table;
38199
 
        
38200
 
        for(;ip0 < ep; ip0 += 5, op0 += 3) {
38201
 
                unsigned int ova0;      /* Output value accumulator */
38202
 
                unsigned int ova1;      /* Output value accumulator */
38203
 
                unsigned int ova2;      /* Output value accumulator */
38204
 
                {
38205
 
                        pointer imp;
38206
 
                        unsigned int we0;       /* Weighting value variable */
38207
 
                        unsigned int vo0;       /* Vertex offset variable */
38208
 
                        unsigned int we1;       /* Weighting value variable */
38209
 
                        unsigned int vo1;       /* Vertex offset variable */
38210
 
                        unsigned int we2;       /* Weighting value variable */
38211
 
                        unsigned int vo2;       /* Vertex offset variable */
38212
 
                        unsigned int we3;       /* Weighting value variable */
38213
 
                        unsigned int vo3;       /* Vertex offset variable */
38214
 
                        unsigned int we4;       /* Weighting value variable */
38215
 
                        unsigned int vo4;       /* Vertex offset variable */
38216
 
                        {
38217
 
                                unsigned int ti_i;      /* Interpolation index variable */
38218
 
                                
38219
 
                                ti_i  = IT_IX(it0, ip0[0]);
38220
 
                                we0   = IT_WE(it0, ip0[0]);
38221
 
                                vo0   = IT_VO(it0, ip0[0]);
38222
 
                                ti_i += IT_IX(it1, ip0[1]);
38223
 
                                we1   = IT_WE(it1, ip0[1]);
38224
 
                                vo1   = IT_VO(it1, ip0[1]);
38225
 
                                ti_i += IT_IX(it2, ip0[2]);
38226
 
                                we2   = IT_WE(it2, ip0[2]);
38227
 
                                vo2   = IT_VO(it2, ip0[2]);
38228
 
                                ti_i += IT_IX(it3, ip0[3]);
38229
 
                                we3   = IT_WE(it3, ip0[3]);
38230
 
                                vo3   = IT_VO(it3, ip0[3]);
38231
 
                                ti_i += IT_IX(it4, ip0[4]);
38232
 
                                we4   = IT_WE(it4, ip0[4]);
38233
 
                                vo4   = IT_VO(it4, ip0[4]);
38234
 
                                
38235
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
38236
 
                                
38237
 
                                /* Sort weighting values and vertex offset values */
38238
 
                                CEX(we0, vo0, we1, vo1);
38239
 
                                CEX(we0, vo0, we2, vo2);
38240
 
                                CEX(we0, vo0, we3, vo3);
38241
 
                                CEX(we0, vo0, we4, vo4);
38242
 
                                CEX(we1, vo1, we2, vo2);
38243
 
                                CEX(we1, vo1, we3, vo3);
38244
 
                                CEX(we1, vo1, we4, vo4);
38245
 
                                CEX(we2, vo2, we3, vo3);
38246
 
                                CEX(we2, vo2, we4, vo4);
38247
 
                                CEX(we3, vo3, we4, vo4);
38248
 
                        }
38249
 
                        {
38250
 
                                unsigned int vof;       /* Vertex offset value */
38251
 
                                unsigned int vwe;       /* Vertex weighting */
38252
 
                                
38253
 
                                vof = 0;                                /* First vertex offset is 0 */
38254
 
                                vwe = 65536 - we0;              /* Baricentric weighting */
38255
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
38256
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
38257
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
38258
 
                                vof += vo0;                     /* Move to next vertex */
38259
 
                                vwe = we0 - we1;                /* Baricentric weighting */
38260
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
38261
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
38262
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
38263
 
                                vof += vo1;                     /* Move to next vertex */
38264
 
                                vwe = we1 - we2;                /* Baricentric weighting */
38265
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
38266
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
38267
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
38268
 
                                vof += vo2;                     /* Move to next vertex */
38269
 
                                vwe = we2 - we3;                /* Baricentric weighting */
38270
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
38271
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
38272
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
38273
 
                                vof += vo3;                     /* Move to next vertex */
38274
 
                                vwe = we3 - we4;                /* Baricentric weighting */
38275
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
38276
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
38277
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
38278
 
                                vof += vo4;                     /* Move to next vertex */
38279
 
                                vwe = we4;                              /* Baricentric weighting */
38280
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
38281
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
38282
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
38283
 
                        }
38284
 
                }
38285
 
                {
38286
 
                        unsigned int oti;       /* Vertex offset value */
38287
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
38288
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
38289
 
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
38290
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
38291
 
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
38292
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
38293
 
                }
38294
 
        }
 
37537
        imdi_imp *p = (imdi_imp *)(s->impl);
 
37538
        unsigned short *ip0 = (unsigned short *)inp[0];
 
37539
        unsigned short *op0 = (unsigned short *)outp[0];
 
37540
        unsigned short *ep = ip0 + npix * 5 ;
 
37541
        pointer it0 = (pointer)p->in_tables[0];
 
37542
        pointer it1 = (pointer)p->in_tables[1];
 
37543
        pointer it2 = (pointer)p->in_tables[2];
 
37544
        pointer it3 = (pointer)p->in_tables[3];
 
37545
        pointer it4 = (pointer)p->in_tables[4];
 
37546
        pointer ot0 = (pointer)p->out_tables[0];
 
37547
        pointer ot1 = (pointer)p->out_tables[1];
 
37548
        pointer ot2 = (pointer)p->out_tables[2];
 
37549
        pointer im_base = (pointer)p->im_table;
 
37550
 
 
37551
        for(;ip0 < ep; ip0 += 5, op0 += 3) {
 
37552
                unsigned int ova0;      /* Output value accumulator */
 
37553
                unsigned int ova1;      /* Output value accumulator */
 
37554
                unsigned int ova2;      /* Output value accumulator */
 
37555
                {
 
37556
                        pointer imp;
 
37557
                        unsigned int we0;       /* Weighting value variable */
 
37558
                        unsigned int vo0;       /* Vertex offset variable */
 
37559
                        unsigned int we1;       /* Weighting value variable */
 
37560
                        unsigned int vo1;       /* Vertex offset variable */
 
37561
                        unsigned int we2;       /* Weighting value variable */
 
37562
                        unsigned int vo2;       /* Vertex offset variable */
 
37563
                        unsigned int we3;       /* Weighting value variable */
 
37564
                        unsigned int vo3;       /* Vertex offset variable */
 
37565
                        unsigned int we4;       /* Weighting value variable */
 
37566
                        unsigned int vo4;       /* Vertex offset variable */
 
37567
                        {
 
37568
                                unsigned int ti_i;      /* Interpolation index variable */
 
37569
 
 
37570
                                ti_i  = IT_IX(it0, ip0[0]);
 
37571
                                we0   = IT_WE(it0, ip0[0]);
 
37572
                                vo0   = IT_VO(it0, ip0[0]);
 
37573
                                ti_i += IT_IX(it1, ip0[1]);
 
37574
                                we1   = IT_WE(it1, ip0[1]);
 
37575
                                vo1   = IT_VO(it1, ip0[1]);
 
37576
                                ti_i += IT_IX(it2, ip0[2]);
 
37577
                                we2   = IT_WE(it2, ip0[2]);
 
37578
                                vo2   = IT_VO(it2, ip0[2]);
 
37579
                                ti_i += IT_IX(it3, ip0[3]);
 
37580
                                we3   = IT_WE(it3, ip0[3]);
 
37581
                                vo3   = IT_VO(it3, ip0[3]);
 
37582
                                ti_i += IT_IX(it4, ip0[4]);
 
37583
                                we4   = IT_WE(it4, ip0[4]);
 
37584
                                vo4   = IT_VO(it4, ip0[4]);
 
37585
 
 
37586
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
37587
 
 
37588
                                /* Sort weighting values and vertex offset values */
 
37589
                                CEX(we0, vo0, we1, vo1);
 
37590
                                CEX(we0, vo0, we2, vo2);
 
37591
                                CEX(we0, vo0, we3, vo3);
 
37592
                                CEX(we0, vo0, we4, vo4);
 
37593
                                CEX(we1, vo1, we2, vo2);
 
37594
                                CEX(we1, vo1, we3, vo3);
 
37595
                                CEX(we1, vo1, we4, vo4);
 
37596
                                CEX(we2, vo2, we3, vo3);
 
37597
                                CEX(we2, vo2, we4, vo4);
 
37598
                                CEX(we3, vo3, we4, vo4);
 
37599
                        }
 
37600
                        {
 
37601
                                unsigned int vof;       /* Vertex offset value */
 
37602
                                unsigned int vwe;       /* Vertex weighting */
 
37603
 
 
37604
                                vof = 0;                                /* First vertex offset is 0 */
 
37605
                                vwe = 65536 - we0;              /* Baricentric weighting */
 
37606
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
37607
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
37608
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
37609
                                vof += vo0;                     /* Move to next vertex */
 
37610
                                vwe = we0 - we1;                /* Baricentric weighting */
 
37611
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
37612
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
37613
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
37614
                                vof += vo1;                     /* Move to next vertex */
 
37615
                                vwe = we1 - we2;                /* Baricentric weighting */
 
37616
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
37617
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
37618
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
37619
                                vof += vo2;                     /* Move to next vertex */
 
37620
                                vwe = we2 - we3;                /* Baricentric weighting */
 
37621
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
37622
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
37623
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
37624
                                vof += vo3;                     /* Move to next vertex */
 
37625
                                vwe = we3 - we4;                /* Baricentric weighting */
 
37626
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
37627
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
37628
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
37629
                                vof += vo4;                     /* Move to next vertex */
 
37630
                                vwe = we4;                              /* Baricentric weighting */
 
37631
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
37632
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
37633
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
37634
                        }
 
37635
                }
 
37636
                {
 
37637
                        unsigned int oti;       /* Vertex offset value */
 
37638
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
37639
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
37640
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
 
37641
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
37642
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
 
37643
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
37644
                }
 
37645
        }
38295
37646
}
38296
37647
#undef IT_WE
38297
37648
#undef IT_VO
38305
37656
imdi_k109_gen(
38306
37657
genspec *g                      /* structure to be initialised */
38307
37658
) {
38308
 
        static unsigned char data[] = {
38309
 
                0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
38310
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
38311
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38312
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
38313
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
38314
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
38315
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
38316
 
                0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
38317
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
38318
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
38319
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
38320
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38321
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38322
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38323
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38324
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
38325
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
38326
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
38327
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
38328
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
38329
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
38330
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
38331
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
38332
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
38333
 
                0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
38334
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
38335
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
38336
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
38337
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38338
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38339
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38340
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38341
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
38342
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
38343
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
38344
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
38345
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
38346
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
38347
 
                0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38348
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
38349
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
38350
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
38351
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
38352
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
38353
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
38354
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
38355
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
38356
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
38357
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38358
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
38359
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
38360
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x35, 0x5f, 0x33, 0x5f, 
38361
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
38362
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
38363
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
38364
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
38365
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
38366
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
38367
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
38368
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38369
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38370
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38371
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38372
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
38373
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x30, 
38374
 
                0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38375
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38376
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
38377
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
38378
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
38379
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
38380
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
38381
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
38382
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
38383
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
38384
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
38385
 
                0x00, 0xf0, 0x04, 0x08 
38386
 
        };      /* Structure image */
38387
 
        
38388
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
37659
        static unsigned char data[] = {
 
37660
                0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
37661
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
37662
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37663
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37664
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37665
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37666
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37667
                0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
37668
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
37669
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
37670
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
37671
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37672
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37673
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37674
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37675
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37676
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37677
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37678
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37679
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
37680
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37681
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37682
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37683
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37684
                0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
37685
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
37686
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
37687
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
37688
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37689
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37690
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37691
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37692
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37693
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37694
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37695
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37696
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
37697
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
37698
                0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37699
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
37700
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
37701
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
37702
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
37703
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
37704
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
37705
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
37706
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
37707
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
37708
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37709
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
37710
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
37711
                0x2c, 0xf3, 0xdc, 0xb7, 0x35, 0x5f, 0x33, 0x5f,
 
37712
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
37713
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
37714
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
37715
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
37716
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
37717
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
37718
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
37719
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37720
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37721
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37722
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37723
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
37724
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x30,
 
37725
                0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37726
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37727
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
37728
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
37729
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
37730
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
37731
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
37732
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
37733
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
37734
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
37735
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
37736
                0x00, 0xf0, 0x04, 0x08
 
37737
        };      /* Structure image */
 
37738
 
 
37739
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
38389
37740
}
38390
37741
 
38391
37742
static void
38392
37743
imdi_k109_tab(
38393
37744
tabspec *t                      /* structure to be initialised */
38394
37745
) {
38395
 
        static unsigned char data[] = {
38396
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
38397
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
38398
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
38399
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
38400
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
38401
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
38402
 
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 
38403
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
38404
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
38405
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38406
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
38407
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
38408
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
38409
 
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
38410
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
38411
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38412
 
                0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
38413
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
38414
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38415
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38416
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
38417
 
                0x02, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
38418
 
                0xff, 0xff, 0xff, 0x33, 0x00, 0x00, 0x00, 0x00, 
38419
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
38420
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38421
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38422
 
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08, 
38423
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
38424
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
38425
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
38426
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
38427
 
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
38428
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
38429
 
        };      /* Structure image */
38430
 
        
38431
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
37746
        static unsigned char data[] = {
 
37747
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
37748
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
37749
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
37750
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
37751
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
37752
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
37753
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
 
37754
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
37755
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
37756
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37757
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
37758
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
37759
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
37760
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
37761
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
37762
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37763
                0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
37764
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
37765
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37766
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37767
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
37768
                0x02, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
37769
                0xff, 0xff, 0xff, 0x33, 0x00, 0x00, 0x00, 0x00,
 
37770
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
37771
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37772
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
37773
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08,
 
37774
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
37775
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37776
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
37777
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
37778
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
37779
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
37780
        };      /* Structure image */
 
37781
 
 
37782
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
38432
37783
}
38433
37784
 
38434
 
 
38435
 
 
38436
 
 
38437
 
 
38438
 
 
38439
37785
/* Integer Multi-Dimensional Interpolation */
38440
37786
/* Interpolation Kernel Code */
38441
37787
/* Generated by cgen */
38444
37790
 
38445
37791
/* see the Licence.txt file for licencing details.*/
38446
37792
 
38447
 
 
38448
37793
/*
38449
37794
   Interpolation kernel specs:
38450
37795
 
38539
37884
void **inp,             /* pointer to input pointers */
38540
37885
unsigned int npix       /* Number of pixels to process */
38541
37886
) {
38542
 
        imdi_imp *p = (imdi_imp *)(s->impl);
38543
 
        unsigned short *ip0 = (unsigned short *)inp[0];
38544
 
        unsigned short *op0 = (unsigned short *)outp[0];
38545
 
        unsigned short *ep = ip0 + npix * 6 ;
38546
 
        pointer it0 = (pointer)p->in_tables[0];
38547
 
        pointer it1 = (pointer)p->in_tables[1];
38548
 
        pointer it2 = (pointer)p->in_tables[2];
38549
 
        pointer it3 = (pointer)p->in_tables[3];
38550
 
        pointer it4 = (pointer)p->in_tables[4];
38551
 
        pointer it5 = (pointer)p->in_tables[5];
38552
 
        pointer ot0 = (pointer)p->out_tables[0];
38553
 
        pointer ot1 = (pointer)p->out_tables[1];
38554
 
        pointer ot2 = (pointer)p->out_tables[2];
38555
 
        pointer im_base = (pointer)p->im_table;
38556
 
        
38557
 
        for(;ip0 < ep; ip0 += 6, op0 += 3) {
38558
 
                unsigned int ova0;      /* Output value accumulator */
38559
 
                unsigned int ova1;      /* Output value accumulator */
38560
 
                unsigned int ova2;      /* Output value accumulator */
38561
 
                {
38562
 
                        pointer imp;
38563
 
                        unsigned int we0;       /* Weighting value variable */
38564
 
                        unsigned int vo0;       /* Vertex offset variable */
38565
 
                        unsigned int we1;       /* Weighting value variable */
38566
 
                        unsigned int vo1;       /* Vertex offset variable */
38567
 
                        unsigned int we2;       /* Weighting value variable */
38568
 
                        unsigned int vo2;       /* Vertex offset variable */
38569
 
                        unsigned int we3;       /* Weighting value variable */
38570
 
                        unsigned int vo3;       /* Vertex offset variable */
38571
 
                        unsigned int we4;       /* Weighting value variable */
38572
 
                        unsigned int vo4;       /* Vertex offset variable */
38573
 
                        unsigned int we5;       /* Weighting value variable */
38574
 
                        unsigned int vo5;       /* Vertex offset variable */
38575
 
                        {
38576
 
                                unsigned int ti_i;      /* Interpolation index variable */
38577
 
                                
38578
 
                                ti_i  = IT_IX(it0, ip0[0]);
38579
 
                                we0   = IT_WE(it0, ip0[0]);
38580
 
                                vo0   = IT_VO(it0, ip0[0]);
38581
 
                                ti_i += IT_IX(it1, ip0[1]);
38582
 
                                we1   = IT_WE(it1, ip0[1]);
38583
 
                                vo1   = IT_VO(it1, ip0[1]);
38584
 
                                ti_i += IT_IX(it2, ip0[2]);
38585
 
                                we2   = IT_WE(it2, ip0[2]);
38586
 
                                vo2   = IT_VO(it2, ip0[2]);
38587
 
                                ti_i += IT_IX(it3, ip0[3]);
38588
 
                                we3   = IT_WE(it3, ip0[3]);
38589
 
                                vo3   = IT_VO(it3, ip0[3]);
38590
 
                                ti_i += IT_IX(it4, ip0[4]);
38591
 
                                we4   = IT_WE(it4, ip0[4]);
38592
 
                                vo4   = IT_VO(it4, ip0[4]);
38593
 
                                ti_i += IT_IX(it5, ip0[5]);
38594
 
                                we5   = IT_WE(it5, ip0[5]);
38595
 
                                vo5   = IT_VO(it5, ip0[5]);
38596
 
                                
38597
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
38598
 
                                
38599
 
                                /* Sort weighting values and vertex offset values */
38600
 
                                CEX(we0, vo0, we1, vo1);
38601
 
                                CEX(we0, vo0, we2, vo2);
38602
 
                                CEX(we0, vo0, we3, vo3);
38603
 
                                CEX(we0, vo0, we4, vo4);
38604
 
                                CEX(we0, vo0, we5, vo5);
38605
 
                                CEX(we1, vo1, we2, vo2);
38606
 
                                CEX(we1, vo1, we3, vo3);
38607
 
                                CEX(we1, vo1, we4, vo4);
38608
 
                                CEX(we1, vo1, we5, vo5);
38609
 
                                CEX(we2, vo2, we3, vo3);
38610
 
                                CEX(we2, vo2, we4, vo4);
38611
 
                                CEX(we2, vo2, we5, vo5);
38612
 
                                CEX(we3, vo3, we4, vo4);
38613
 
                                CEX(we3, vo3, we5, vo5);
38614
 
                                CEX(we4, vo4, we5, vo5);
38615
 
                        }
38616
 
                        {
38617
 
                                unsigned int vof;       /* Vertex offset value */
38618
 
                                unsigned int vwe;       /* Vertex weighting */
38619
 
                                
38620
 
                                vof = 0;                                /* First vertex offset is 0 */
38621
 
                                vwe = 65536 - we0;              /* Baricentric weighting */
38622
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
38623
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
38624
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
38625
 
                                vof += vo0;                     /* Move to next vertex */
38626
 
                                vwe = we0 - we1;                /* Baricentric weighting */
38627
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
38628
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
38629
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
38630
 
                                vof += vo1;                     /* Move to next vertex */
38631
 
                                vwe = we1 - we2;                /* Baricentric weighting */
38632
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
38633
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
38634
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
38635
 
                                vof += vo2;                     /* Move to next vertex */
38636
 
                                vwe = we2 - we3;                /* Baricentric weighting */
38637
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
38638
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
38639
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
38640
 
                                vof += vo3;                     /* Move to next vertex */
38641
 
                                vwe = we3 - we4;                /* Baricentric weighting */
38642
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
38643
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
38644
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
38645
 
                                vof += vo4;                     /* Move to next vertex */
38646
 
                                vwe = we4 - we5;                /* Baricentric weighting */
38647
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
38648
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
38649
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
38650
 
                                vof += vo5;                     /* Move to next vertex */
38651
 
                                vwe = we5;                              /* Baricentric weighting */
38652
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
38653
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
38654
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
38655
 
                        }
38656
 
                }
38657
 
                {
38658
 
                        unsigned int oti;       /* Vertex offset value */
38659
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
38660
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
38661
 
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
38662
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
38663
 
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
38664
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
38665
 
                }
38666
 
        }
 
37887
        imdi_imp *p = (imdi_imp *)(s->impl);
 
37888
        unsigned short *ip0 = (unsigned short *)inp[0];
 
37889
        unsigned short *op0 = (unsigned short *)outp[0];
 
37890
        unsigned short *ep = ip0 + npix * 6 ;
 
37891
        pointer it0 = (pointer)p->in_tables[0];
 
37892
        pointer it1 = (pointer)p->in_tables[1];
 
37893
        pointer it2 = (pointer)p->in_tables[2];
 
37894
        pointer it3 = (pointer)p->in_tables[3];
 
37895
        pointer it4 = (pointer)p->in_tables[4];
 
37896
        pointer it5 = (pointer)p->in_tables[5];
 
37897
        pointer ot0 = (pointer)p->out_tables[0];
 
37898
        pointer ot1 = (pointer)p->out_tables[1];
 
37899
        pointer ot2 = (pointer)p->out_tables[2];
 
37900
        pointer im_base = (pointer)p->im_table;
 
37901
 
 
37902
        for(;ip0 < ep; ip0 += 6, op0 += 3) {
 
37903
                unsigned int ova0;      /* Output value accumulator */
 
37904
                unsigned int ova1;      /* Output value accumulator */
 
37905
                unsigned int ova2;      /* Output value accumulator */
 
37906
                {
 
37907
                        pointer imp;
 
37908
                        unsigned int we0;       /* Weighting value variable */
 
37909
                        unsigned int vo0;       /* Vertex offset variable */
 
37910
                        unsigned int we1;       /* Weighting value variable */
 
37911
                        unsigned int vo1;       /* Vertex offset variable */
 
37912
                        unsigned int we2;       /* Weighting value variable */
 
37913
                        unsigned int vo2;       /* Vertex offset variable */
 
37914
                        unsigned int we3;       /* Weighting value variable */
 
37915
                        unsigned int vo3;       /* Vertex offset variable */
 
37916
                        unsigned int we4;       /* Weighting value variable */
 
37917
                        unsigned int vo4;       /* Vertex offset variable */
 
37918
                        unsigned int we5;       /* Weighting value variable */
 
37919
                        unsigned int vo5;       /* Vertex offset variable */
 
37920
                        {
 
37921
                                unsigned int ti_i;      /* Interpolation index variable */
 
37922
 
 
37923
                                ti_i  = IT_IX(it0, ip0[0]);
 
37924
                                we0   = IT_WE(it0, ip0[0]);
 
37925
                                vo0   = IT_VO(it0, ip0[0]);
 
37926
                                ti_i += IT_IX(it1, ip0[1]);
 
37927
                                we1   = IT_WE(it1, ip0[1]);
 
37928
                                vo1   = IT_VO(it1, ip0[1]);
 
37929
                                ti_i += IT_IX(it2, ip0[2]);
 
37930
                                we2   = IT_WE(it2, ip0[2]);
 
37931
                                vo2   = IT_VO(it2, ip0[2]);
 
37932
                                ti_i += IT_IX(it3, ip0[3]);
 
37933
                                we3   = IT_WE(it3, ip0[3]);
 
37934
                                vo3   = IT_VO(it3, ip0[3]);
 
37935
                                ti_i += IT_IX(it4, ip0[4]);
 
37936
                                we4   = IT_WE(it4, ip0[4]);
 
37937
                                vo4   = IT_VO(it4, ip0[4]);
 
37938
                                ti_i += IT_IX(it5, ip0[5]);
 
37939
                                we5   = IT_WE(it5, ip0[5]);
 
37940
                                vo5   = IT_VO(it5, ip0[5]);
 
37941
 
 
37942
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
37943
 
 
37944
                                /* Sort weighting values and vertex offset values */
 
37945
                                CEX(we0, vo0, we1, vo1);
 
37946
                                CEX(we0, vo0, we2, vo2);
 
37947
                                CEX(we0, vo0, we3, vo3);
 
37948
                                CEX(we0, vo0, we4, vo4);
 
37949
                                CEX(we0, vo0, we5, vo5);
 
37950
                                CEX(we1, vo1, we2, vo2);
 
37951
                                CEX(we1, vo1, we3, vo3);
 
37952
                                CEX(we1, vo1, we4, vo4);
 
37953
                                CEX(we1, vo1, we5, vo5);
 
37954
                                CEX(we2, vo2, we3, vo3);
 
37955
                                CEX(we2, vo2, we4, vo4);
 
37956
                                CEX(we2, vo2, we5, vo5);
 
37957
                                CEX(we3, vo3, we4, vo4);
 
37958
                                CEX(we3, vo3, we5, vo5);
 
37959
                                CEX(we4, vo4, we5, vo5);
 
37960
                        }
 
37961
                        {
 
37962
                                unsigned int vof;       /* Vertex offset value */
 
37963
                                unsigned int vwe;       /* Vertex weighting */
 
37964
 
 
37965
                                vof = 0;                                /* First vertex offset is 0 */
 
37966
                                vwe = 65536 - we0;              /* Baricentric weighting */
 
37967
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
37968
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
37969
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
37970
                                vof += vo0;                     /* Move to next vertex */
 
37971
                                vwe = we0 - we1;                /* Baricentric weighting */
 
37972
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
37973
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
37974
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
37975
                                vof += vo1;                     /* Move to next vertex */
 
37976
                                vwe = we1 - we2;                /* Baricentric weighting */
 
37977
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
37978
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
37979
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
37980
                                vof += vo2;                     /* Move to next vertex */
 
37981
                                vwe = we2 - we3;                /* Baricentric weighting */
 
37982
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
37983
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
37984
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
37985
                                vof += vo3;                     /* Move to next vertex */
 
37986
                                vwe = we3 - we4;                /* Baricentric weighting */
 
37987
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
37988
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
37989
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
37990
                                vof += vo4;                     /* Move to next vertex */
 
37991
                                vwe = we4 - we5;                /* Baricentric weighting */
 
37992
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
37993
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
37994
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
37995
                                vof += vo5;                     /* Move to next vertex */
 
37996
                                vwe = we5;                              /* Baricentric weighting */
 
37997
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
37998
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
37999
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
38000
                        }
 
38001
                }
 
38002
                {
 
38003
                        unsigned int oti;       /* Vertex offset value */
 
38004
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
38005
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
38006
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
 
38007
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
38008
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
 
38009
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
38010
                }
 
38011
        }
38667
38012
}
38668
38013
#undef IT_WE
38669
38014
#undef IT_VO
38677
38022
imdi_k110_gen(
38678
38023
genspec *g                      /* structure to be initialised */
38679
38024
) {
38680
 
        static unsigned char data[] = {
38681
 
                0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
38682
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
38683
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38684
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
38685
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
38686
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
38687
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
38688
 
                0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
38689
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
38690
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
38691
 
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
38692
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38693
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38694
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38695
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38696
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
38697
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
38698
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
38699
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
38700
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
38701
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
38702
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
38703
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
38704
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
38705
 
                0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
38706
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
38707
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
38708
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
38709
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38710
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38711
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38712
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38713
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
38714
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
38715
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
38716
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
38717
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
38718
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
38719
 
                0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38720
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
38721
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
38722
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
38723
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
38724
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
38725
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
38726
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
38727
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
38728
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
38729
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38730
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
38731
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
38732
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x36, 0x5f, 0x33, 0x5f, 
38733
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
38734
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
38735
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
38736
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
38737
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
38738
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
38739
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
38740
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38741
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38742
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38743
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38744
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
38745
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x31, 
38746
 
                0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38747
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38748
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
38749
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
38750
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
38751
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
38752
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
38753
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
38754
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
38755
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
38756
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
38757
 
                0x00, 0xf0, 0x04, 0x08 
38758
 
        };      /* Structure image */
38759
 
        
38760
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
38025
        static unsigned char data[] = {
 
38026
                0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
38027
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
38028
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38029
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38030
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38031
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38032
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38033
                0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
38034
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
38035
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
38036
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
38037
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38038
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38039
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38040
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38041
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38042
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38043
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38044
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38045
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
38046
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38047
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38048
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38049
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38050
                0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
38051
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
38052
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
38053
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
38054
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38055
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38056
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38057
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38058
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38059
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38060
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38061
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38062
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
38063
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
38064
                0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38065
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
38066
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
38067
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
38068
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
38069
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
38070
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
38071
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
38072
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
38073
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
38074
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38075
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
38076
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
38077
                0x2c, 0xf3, 0xdc, 0xb7, 0x36, 0x5f, 0x33, 0x5f,
 
38078
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
38079
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
38080
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
38081
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
38082
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
38083
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
38084
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
38085
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38086
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38087
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38088
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38089
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
38090
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x31,
 
38091
                0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38092
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38093
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
38094
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
38095
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
38096
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
38097
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
38098
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
38099
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
38100
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
38101
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
38102
                0x00, 0xf0, 0x04, 0x08
 
38103
        };      /* Structure image */
 
38104
 
 
38105
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
38761
38106
}
38762
38107
 
38763
38108
static void
38764
38109
imdi_k110_tab(
38765
38110
tabspec *t                      /* structure to be initialised */
38766
38111
) {
38767
 
        static unsigned char data[] = {
38768
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
38769
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
38770
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
38771
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
38772
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
38773
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
38774
 
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 
38775
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
38776
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
38777
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38778
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
38779
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
38780
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
38781
 
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
38782
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
38783
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38784
 
                0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
38785
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
38786
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38787
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38788
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
38789
 
                0x02, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
38790
 
                0xff, 0xff, 0xff, 0x33, 0x00, 0x00, 0x00, 0x00, 
38791
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
38792
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38793
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
38794
 
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08, 
38795
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
38796
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
38797
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
38798
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
38799
 
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
38800
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
38801
 
        };      /* Structure image */
38802
 
        
38803
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
38112
        static unsigned char data[] = {
 
38113
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
38114
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
38115
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
38116
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
38117
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
38118
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
38119
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
 
38120
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
38121
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
38122
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38123
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
38124
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
38125
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
38126
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
38127
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
38128
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38129
                0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
38130
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
38131
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38132
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38133
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
38134
                0x02, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
38135
                0xff, 0xff, 0xff, 0x33, 0x00, 0x00, 0x00, 0x00,
 
38136
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
38137
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38138
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38139
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08,
 
38140
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
38141
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38142
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38143
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
38144
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
38145
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
38146
        };      /* Structure image */
 
38147
 
 
38148
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
38804
38149
}
38805
38150
 
38806
 
 
38807
 
 
38808
 
 
38809
 
 
38810
 
 
38811
38151
/* Integer Multi-Dimensional Interpolation */
38812
38152
/* Interpolation Kernel Code */
38813
38153
/* Generated by cgen */
38816
38156
 
38817
38157
/* see the Licence.txt file for licencing details.*/
38818
38158
 
38819
 
 
38820
38159
/*
38821
38160
   Interpolation kernel specs:
38822
38161
 
38913
38252
void **inp,             /* pointer to input pointers */
38914
38253
unsigned int npix       /* Number of pixels to process */
38915
38254
) {
38916
 
        imdi_imp *p = (imdi_imp *)(s->impl);
38917
 
        unsigned short *ip0 = (unsigned short *)inp[0];
38918
 
        unsigned short *op0 = (unsigned short *)outp[0];
38919
 
        unsigned short *ep = ip0 + npix * 7 ;
38920
 
        pointer it0 = (pointer)p->in_tables[0];
38921
 
        pointer it1 = (pointer)p->in_tables[1];
38922
 
        pointer it2 = (pointer)p->in_tables[2];
38923
 
        pointer it3 = (pointer)p->in_tables[3];
38924
 
        pointer it4 = (pointer)p->in_tables[4];
38925
 
        pointer it5 = (pointer)p->in_tables[5];
38926
 
        pointer it6 = (pointer)p->in_tables[6];
38927
 
        pointer ot0 = (pointer)p->out_tables[0];
38928
 
        pointer ot1 = (pointer)p->out_tables[1];
38929
 
        pointer ot2 = (pointer)p->out_tables[2];
38930
 
        pointer im_base = (pointer)p->im_table;
38931
 
        
38932
 
        for(;ip0 < ep; ip0 += 7, op0 += 3) {
38933
 
                unsigned int ova0;      /* Output value accumulator */
38934
 
                unsigned int ova1;      /* Output value accumulator */
38935
 
                unsigned int ova2;      /* Output value accumulator */
38936
 
                {
38937
 
                        pointer imp;
38938
 
                        unsigned int we0;       /* Weighting value variable */
38939
 
                        unsigned int vo0;       /* Vertex offset variable */
38940
 
                        unsigned int we1;       /* Weighting value variable */
38941
 
                        unsigned int vo1;       /* Vertex offset variable */
38942
 
                        unsigned int we2;       /* Weighting value variable */
38943
 
                        unsigned int vo2;       /* Vertex offset variable */
38944
 
                        unsigned int we3;       /* Weighting value variable */
38945
 
                        unsigned int vo3;       /* Vertex offset variable */
38946
 
                        unsigned int we4;       /* Weighting value variable */
38947
 
                        unsigned int vo4;       /* Vertex offset variable */
38948
 
                        unsigned int we5;       /* Weighting value variable */
38949
 
                        unsigned int vo5;       /* Vertex offset variable */
38950
 
                        unsigned int we6;       /* Weighting value variable */
38951
 
                        unsigned int vo6;       /* Vertex offset variable */
38952
 
                        {
38953
 
                                unsigned int ti_i;      /* Interpolation index variable */
38954
 
                                
38955
 
                                ti_i  = IT_IX(it0, ip0[0]);
38956
 
                                we0   = IT_WE(it0, ip0[0]);
38957
 
                                vo0   = IT_VO(it0, ip0[0]);
38958
 
                                ti_i += IT_IX(it1, ip0[1]);
38959
 
                                we1   = IT_WE(it1, ip0[1]);
38960
 
                                vo1   = IT_VO(it1, ip0[1]);
38961
 
                                ti_i += IT_IX(it2, ip0[2]);
38962
 
                                we2   = IT_WE(it2, ip0[2]);
38963
 
                                vo2   = IT_VO(it2, ip0[2]);
38964
 
                                ti_i += IT_IX(it3, ip0[3]);
38965
 
                                we3   = IT_WE(it3, ip0[3]);
38966
 
                                vo3   = IT_VO(it3, ip0[3]);
38967
 
                                ti_i += IT_IX(it4, ip0[4]);
38968
 
                                we4   = IT_WE(it4, ip0[4]);
38969
 
                                vo4   = IT_VO(it4, ip0[4]);
38970
 
                                ti_i += IT_IX(it5, ip0[5]);
38971
 
                                we5   = IT_WE(it5, ip0[5]);
38972
 
                                vo5   = IT_VO(it5, ip0[5]);
38973
 
                                ti_i += IT_IX(it6, ip0[6]);
38974
 
                                we6   = IT_WE(it6, ip0[6]);
38975
 
                                vo6   = IT_VO(it6, ip0[6]);
38976
 
                                
38977
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
38978
 
                                
38979
 
                                /* Sort weighting values and vertex offset values */
38980
 
                                CEX(we0, vo0, we1, vo1);
38981
 
                                CEX(we0, vo0, we2, vo2);
38982
 
                                CEX(we0, vo0, we3, vo3);
38983
 
                                CEX(we0, vo0, we4, vo4);
38984
 
                                CEX(we0, vo0, we5, vo5);
38985
 
                                CEX(we0, vo0, we6, vo6);
38986
 
                                CEX(we1, vo1, we2, vo2);
38987
 
                                CEX(we1, vo1, we3, vo3);
38988
 
                                CEX(we1, vo1, we4, vo4);
38989
 
                                CEX(we1, vo1, we5, vo5);
38990
 
                                CEX(we1, vo1, we6, vo6);
38991
 
                                CEX(we2, vo2, we3, vo3);
38992
 
                                CEX(we2, vo2, we4, vo4);
38993
 
                                CEX(we2, vo2, we5, vo5);
38994
 
                                CEX(we2, vo2, we6, vo6);
38995
 
                                CEX(we3, vo3, we4, vo4);
38996
 
                                CEX(we3, vo3, we5, vo5);
38997
 
                                CEX(we3, vo3, we6, vo6);
38998
 
                                CEX(we4, vo4, we5, vo5);
38999
 
                                CEX(we4, vo4, we6, vo6);
39000
 
                                CEX(we5, vo5, we6, vo6);
39001
 
                        }
39002
 
                        {
39003
 
                                unsigned int vof;       /* Vertex offset value */
39004
 
                                unsigned int vwe;       /* Vertex weighting */
39005
 
                                
39006
 
                                vof = 0;                                /* First vertex offset is 0 */
39007
 
                                vwe = 65536 - we0;              /* Baricentric weighting */
39008
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
39009
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
39010
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
39011
 
                                vof += vo0;                     /* Move to next vertex */
39012
 
                                vwe = we0 - we1;                /* Baricentric weighting */
39013
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
39014
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
39015
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
39016
 
                                vof += vo1;                     /* Move to next vertex */
39017
 
                                vwe = we1 - we2;                /* Baricentric weighting */
39018
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
39019
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
39020
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
39021
 
                                vof += vo2;                     /* Move to next vertex */
39022
 
                                vwe = we2 - we3;                /* Baricentric weighting */
39023
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
39024
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
39025
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
39026
 
                                vof += vo3;                     /* Move to next vertex */
39027
 
                                vwe = we3 - we4;                /* Baricentric weighting */
39028
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
39029
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
39030
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
39031
 
                                vof += vo4;                     /* Move to next vertex */
39032
 
                                vwe = we4 - we5;                /* Baricentric weighting */
39033
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
39034
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
39035
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
39036
 
                                vof += vo5;                     /* Move to next vertex */
39037
 
                                vwe = we5 - we6;                /* Baricentric weighting */
39038
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
39039
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
39040
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
39041
 
                                vof += vo6;                     /* Move to next vertex */
39042
 
                                vwe = we6;                              /* Baricentric weighting */
39043
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
39044
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
39045
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
39046
 
                        }
39047
 
                }
39048
 
                {
39049
 
                        unsigned int oti;       /* Vertex offset value */
39050
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
39051
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
39052
 
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
39053
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
39054
 
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
39055
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
39056
 
                }
39057
 
        }
 
38255
        imdi_imp *p = (imdi_imp *)(s->impl);
 
38256
        unsigned short *ip0 = (unsigned short *)inp[0];
 
38257
        unsigned short *op0 = (unsigned short *)outp[0];
 
38258
        unsigned short *ep = ip0 + npix * 7 ;
 
38259
        pointer it0 = (pointer)p->in_tables[0];
 
38260
        pointer it1 = (pointer)p->in_tables[1];
 
38261
        pointer it2 = (pointer)p->in_tables[2];
 
38262
        pointer it3 = (pointer)p->in_tables[3];
 
38263
        pointer it4 = (pointer)p->in_tables[4];
 
38264
        pointer it5 = (pointer)p->in_tables[5];
 
38265
        pointer it6 = (pointer)p->in_tables[6];
 
38266
        pointer ot0 = (pointer)p->out_tables[0];
 
38267
        pointer ot1 = (pointer)p->out_tables[1];
 
38268
        pointer ot2 = (pointer)p->out_tables[2];
 
38269
        pointer im_base = (pointer)p->im_table;
 
38270
 
 
38271
        for(;ip0 < ep; ip0 += 7, op0 += 3) {
 
38272
                unsigned int ova0;      /* Output value accumulator */
 
38273
                unsigned int ova1;      /* Output value accumulator */
 
38274
                unsigned int ova2;      /* Output value accumulator */
 
38275
                {
 
38276
                        pointer imp;
 
38277
                        unsigned int we0;       /* Weighting value variable */
 
38278
                        unsigned int vo0;       /* Vertex offset variable */
 
38279
                        unsigned int we1;       /* Weighting value variable */
 
38280
                        unsigned int vo1;       /* Vertex offset variable */
 
38281
                        unsigned int we2;       /* Weighting value variable */
 
38282
                        unsigned int vo2;       /* Vertex offset variable */
 
38283
                        unsigned int we3;       /* Weighting value variable */
 
38284
                        unsigned int vo3;       /* Vertex offset variable */
 
38285
                        unsigned int we4;       /* Weighting value variable */
 
38286
                        unsigned int vo4;       /* Vertex offset variable */
 
38287
                        unsigned int we5;       /* Weighting value variable */
 
38288
                        unsigned int vo5;       /* Vertex offset variable */
 
38289
                        unsigned int we6;       /* Weighting value variable */
 
38290
                        unsigned int vo6;       /* Vertex offset variable */
 
38291
                        {
 
38292
                                unsigned int ti_i;      /* Interpolation index variable */
 
38293
 
 
38294
                                ti_i  = IT_IX(it0, ip0[0]);
 
38295
                                we0   = IT_WE(it0, ip0[0]);
 
38296
                                vo0   = IT_VO(it0, ip0[0]);
 
38297
                                ti_i += IT_IX(it1, ip0[1]);
 
38298
                                we1   = IT_WE(it1, ip0[1]);
 
38299
                                vo1   = IT_VO(it1, ip0[1]);
 
38300
                                ti_i += IT_IX(it2, ip0[2]);
 
38301
                                we2   = IT_WE(it2, ip0[2]);
 
38302
                                vo2   = IT_VO(it2, ip0[2]);
 
38303
                                ti_i += IT_IX(it3, ip0[3]);
 
38304
                                we3   = IT_WE(it3, ip0[3]);
 
38305
                                vo3   = IT_VO(it3, ip0[3]);
 
38306
                                ti_i += IT_IX(it4, ip0[4]);
 
38307
                                we4   = IT_WE(it4, ip0[4]);
 
38308
                                vo4   = IT_VO(it4, ip0[4]);
 
38309
                                ti_i += IT_IX(it5, ip0[5]);
 
38310
                                we5   = IT_WE(it5, ip0[5]);
 
38311
                                vo5   = IT_VO(it5, ip0[5]);
 
38312
                                ti_i += IT_IX(it6, ip0[6]);
 
38313
                                we6   = IT_WE(it6, ip0[6]);
 
38314
                                vo6   = IT_VO(it6, ip0[6]);
 
38315
 
 
38316
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
38317
 
 
38318
                                /* Sort weighting values and vertex offset values */
 
38319
                                CEX(we0, vo0, we1, vo1);
 
38320
                                CEX(we0, vo0, we2, vo2);
 
38321
                                CEX(we0, vo0, we3, vo3);
 
38322
                                CEX(we0, vo0, we4, vo4);
 
38323
                                CEX(we0, vo0, we5, vo5);
 
38324
                                CEX(we0, vo0, we6, vo6);
 
38325
                                CEX(we1, vo1, we2, vo2);
 
38326
                                CEX(we1, vo1, we3, vo3);
 
38327
                                CEX(we1, vo1, we4, vo4);
 
38328
                                CEX(we1, vo1, we5, vo5);
 
38329
                                CEX(we1, vo1, we6, vo6);
 
38330
                                CEX(we2, vo2, we3, vo3);
 
38331
                                CEX(we2, vo2, we4, vo4);
 
38332
                                CEX(we2, vo2, we5, vo5);
 
38333
                                CEX(we2, vo2, we6, vo6);
 
38334
                                CEX(we3, vo3, we4, vo4);
 
38335
                                CEX(we3, vo3, we5, vo5);
 
38336
                                CEX(we3, vo3, we6, vo6);
 
38337
                                CEX(we4, vo4, we5, vo5);
 
38338
                                CEX(we4, vo4, we6, vo6);
 
38339
                                CEX(we5, vo5, we6, vo6);
 
38340
                        }
 
38341
                        {
 
38342
                                unsigned int vof;       /* Vertex offset value */
 
38343
                                unsigned int vwe;       /* Vertex weighting */
 
38344
 
 
38345
                                vof = 0;                                /* First vertex offset is 0 */
 
38346
                                vwe = 65536 - we0;              /* Baricentric weighting */
 
38347
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
38348
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
38349
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
38350
                                vof += vo0;                     /* Move to next vertex */
 
38351
                                vwe = we0 - we1;                /* Baricentric weighting */
 
38352
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
38353
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
38354
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
38355
                                vof += vo1;                     /* Move to next vertex */
 
38356
                                vwe = we1 - we2;                /* Baricentric weighting */
 
38357
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
38358
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
38359
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
38360
                                vof += vo2;                     /* Move to next vertex */
 
38361
                                vwe = we2 - we3;                /* Baricentric weighting */
 
38362
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
38363
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
38364
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
38365
                                vof += vo3;                     /* Move to next vertex */
 
38366
                                vwe = we3 - we4;                /* Baricentric weighting */
 
38367
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
38368
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
38369
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
38370
                                vof += vo4;                     /* Move to next vertex */
 
38371
                                vwe = we4 - we5;                /* Baricentric weighting */
 
38372
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
38373
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
38374
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
38375
                                vof += vo5;                     /* Move to next vertex */
 
38376
                                vwe = we5 - we6;                /* Baricentric weighting */
 
38377
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
38378
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
38379
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
38380
                                vof += vo6;                     /* Move to next vertex */
 
38381
                                vwe = we6;                              /* Baricentric weighting */
 
38382
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
38383
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
38384
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
38385
                        }
 
38386
                }
 
38387
                {
 
38388
                        unsigned int oti;       /* Vertex offset value */
 
38389
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
38390
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
38391
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
 
38392
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
38393
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
 
38394
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
38395
                }
 
38396
        }
39058
38397
}
39059
38398
#undef IT_WE
39060
38399
#undef IT_VO
39068
38407
imdi_k111_gen(
39069
38408
genspec *g                      /* structure to be initialised */
39070
38409
) {
39071
 
        static unsigned char data[] = {
39072
 
                0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
39073
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
39074
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39075
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39076
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39077
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39078
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39079
 
                0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
39080
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
39081
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
39082
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
39083
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39084
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39085
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39086
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39087
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39088
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39089
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39090
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39091
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
39092
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39093
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39094
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39095
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39096
 
                0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
39097
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
39098
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
39099
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
39100
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39101
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39102
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39103
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39104
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39105
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39106
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39107
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39108
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
39109
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
39110
 
                0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39111
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
39112
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
39113
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
39114
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
39115
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
39116
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
39117
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
39118
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
39119
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
39120
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39121
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
39122
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
39123
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x37, 0x5f, 0x33, 0x5f, 
39124
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
39125
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
39126
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
39127
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
39128
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
39129
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
39130
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
39131
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39132
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39133
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39134
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39135
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
39136
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x31, 
39137
 
                0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39138
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39139
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
39140
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
39141
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
39142
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
39143
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
39144
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
39145
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
39146
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
39147
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
39148
 
                0x00, 0xf0, 0x04, 0x08 
39149
 
        };      /* Structure image */
39150
 
        
39151
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
38410
        static unsigned char data[] = {
 
38411
                0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
38412
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
38413
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38414
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38415
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38416
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38417
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38418
                0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
38419
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
38420
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
38421
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
38422
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38423
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38424
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38425
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38426
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38427
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38428
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38429
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38430
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
38431
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38432
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38433
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38434
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38435
                0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
38436
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
38437
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
38438
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
38439
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38440
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38441
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38442
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38443
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38444
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38445
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38446
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38447
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
38448
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
38449
                0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38450
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
38451
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
38452
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
38453
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
38454
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
38455
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
38456
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
38457
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
38458
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
38459
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38460
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
38461
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
38462
                0x2c, 0xf3, 0xdc, 0xb7, 0x37, 0x5f, 0x33, 0x5f,
 
38463
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
38464
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
38465
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
38466
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
38467
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
38468
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
38469
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
38470
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38471
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38472
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38473
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38474
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
38475
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x31,
 
38476
                0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38477
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38478
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
38479
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
38480
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
38481
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
38482
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
38483
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
38484
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
38485
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
38486
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
38487
                0x00, 0xf0, 0x04, 0x08
 
38488
        };      /* Structure image */
 
38489
 
 
38490
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
39152
38491
}
39153
38492
 
39154
38493
static void
39155
38494
imdi_k111_tab(
39156
38495
tabspec *t                      /* structure to be initialised */
39157
38496
) {
39158
 
        static unsigned char data[] = {
39159
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
39160
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
39161
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
39162
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
39163
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
39164
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
39165
 
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 
39166
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
39167
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
39168
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39169
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
39170
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
39171
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
39172
 
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
39173
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
39174
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39175
 
                0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
39176
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
39177
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39178
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39179
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
39180
 
                0x02, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
39181
 
                0xff, 0xff, 0xff, 0x33, 0x00, 0x00, 0x00, 0x00, 
39182
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
39183
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39184
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39185
 
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08, 
39186
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
39187
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39188
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39189
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
39190
 
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
39191
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
39192
 
        };      /* Structure image */
39193
 
        
39194
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
38497
        static unsigned char data[] = {
 
38498
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
38499
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
38500
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
38501
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
38502
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
38503
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
38504
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
 
38505
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
38506
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
38507
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38508
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
38509
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
38510
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
38511
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
38512
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
38513
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38514
                0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
38515
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
38516
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38517
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38518
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
38519
                0x02, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
38520
                0xff, 0xff, 0xff, 0x33, 0x00, 0x00, 0x00, 0x00,
 
38521
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
38522
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38523
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38524
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08,
 
38525
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
38526
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38527
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38528
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
38529
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
38530
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
38531
        };      /* Structure image */
 
38532
 
 
38533
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
39195
38534
}
39196
38535
 
39197
 
 
39198
 
 
39199
 
 
39200
 
 
39201
 
 
39202
38536
/* Integer Multi-Dimensional Interpolation */
39203
38537
/* Interpolation Kernel Code */
39204
38538
/* Generated by cgen */
39207
38541
 
39208
38542
/* see the Licence.txt file for licencing details.*/
39209
38543
 
39210
 
 
39211
38544
/*
39212
38545
   Interpolation kernel specs:
39213
38546
 
39306
38639
void **inp,             /* pointer to input pointers */
39307
38640
unsigned int npix       /* Number of pixels to process */
39308
38641
) {
39309
 
        imdi_imp *p = (imdi_imp *)(s->impl);
39310
 
        unsigned short *ip0 = (unsigned short *)inp[0];
39311
 
        unsigned short *op0 = (unsigned short *)outp[0];
39312
 
        unsigned short *ep = ip0 + npix * 8 ;
39313
 
        pointer it0 = (pointer)p->in_tables[0];
39314
 
        pointer it1 = (pointer)p->in_tables[1];
39315
 
        pointer it2 = (pointer)p->in_tables[2];
39316
 
        pointer it3 = (pointer)p->in_tables[3];
39317
 
        pointer it4 = (pointer)p->in_tables[4];
39318
 
        pointer it5 = (pointer)p->in_tables[5];
39319
 
        pointer it6 = (pointer)p->in_tables[6];
39320
 
        pointer it7 = (pointer)p->in_tables[7];
39321
 
        pointer ot0 = (pointer)p->out_tables[0];
39322
 
        pointer ot1 = (pointer)p->out_tables[1];
39323
 
        pointer ot2 = (pointer)p->out_tables[2];
39324
 
        pointer im_base = (pointer)p->im_table;
39325
 
        
39326
 
        for(;ip0 < ep; ip0 += 8, op0 += 3) {
39327
 
                unsigned int ova0;      /* Output value accumulator */
39328
 
                unsigned int ova1;      /* Output value accumulator */
39329
 
                unsigned int ova2;      /* Output value accumulator */
39330
 
                {
39331
 
                        pointer imp;
39332
 
                        unsigned int we0;       /* Weighting value variable */
39333
 
                        unsigned int vo0;       /* Vertex offset variable */
39334
 
                        unsigned int we1;       /* Weighting value variable */
39335
 
                        unsigned int vo1;       /* Vertex offset variable */
39336
 
                        unsigned int we2;       /* Weighting value variable */
39337
 
                        unsigned int vo2;       /* Vertex offset variable */
39338
 
                        unsigned int we3;       /* Weighting value variable */
39339
 
                        unsigned int vo3;       /* Vertex offset variable */
39340
 
                        unsigned int we4;       /* Weighting value variable */
39341
 
                        unsigned int vo4;       /* Vertex offset variable */
39342
 
                        unsigned int we5;       /* Weighting value variable */
39343
 
                        unsigned int vo5;       /* Vertex offset variable */
39344
 
                        unsigned int we6;       /* Weighting value variable */
39345
 
                        unsigned int vo6;       /* Vertex offset variable */
39346
 
                        unsigned int we7;       /* Weighting value variable */
39347
 
                        unsigned int vo7;       /* Vertex offset variable */
39348
 
                        {
39349
 
                                unsigned int ti_i;      /* Interpolation index variable */
39350
 
                                
39351
 
                                ti_i  = IT_IX(it0, ip0[0]);
39352
 
                                we0   = IT_WE(it0, ip0[0]);
39353
 
                                vo0   = IT_VO(it0, ip0[0]);
39354
 
                                ti_i += IT_IX(it1, ip0[1]);
39355
 
                                we1   = IT_WE(it1, ip0[1]);
39356
 
                                vo1   = IT_VO(it1, ip0[1]);
39357
 
                                ti_i += IT_IX(it2, ip0[2]);
39358
 
                                we2   = IT_WE(it2, ip0[2]);
39359
 
                                vo2   = IT_VO(it2, ip0[2]);
39360
 
                                ti_i += IT_IX(it3, ip0[3]);
39361
 
                                we3   = IT_WE(it3, ip0[3]);
39362
 
                                vo3   = IT_VO(it3, ip0[3]);
39363
 
                                ti_i += IT_IX(it4, ip0[4]);
39364
 
                                we4   = IT_WE(it4, ip0[4]);
39365
 
                                vo4   = IT_VO(it4, ip0[4]);
39366
 
                                ti_i += IT_IX(it5, ip0[5]);
39367
 
                                we5   = IT_WE(it5, ip0[5]);
39368
 
                                vo5   = IT_VO(it5, ip0[5]);
39369
 
                                ti_i += IT_IX(it6, ip0[6]);
39370
 
                                we6   = IT_WE(it6, ip0[6]);
39371
 
                                vo6   = IT_VO(it6, ip0[6]);
39372
 
                                ti_i += IT_IX(it7, ip0[7]);
39373
 
                                we7   = IT_WE(it7, ip0[7]);
39374
 
                                vo7   = IT_VO(it7, ip0[7]);
39375
 
                                
39376
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
39377
 
                                
39378
 
                                /* Sort weighting values and vertex offset values */
39379
 
                                CEX(we0, vo0, we1, vo1);
39380
 
                                CEX(we0, vo0, we2, vo2);
39381
 
                                CEX(we0, vo0, we3, vo3);
39382
 
                                CEX(we0, vo0, we4, vo4);
39383
 
                                CEX(we0, vo0, we5, vo5);
39384
 
                                CEX(we0, vo0, we6, vo6);
39385
 
                                CEX(we0, vo0, we7, vo7);
39386
 
                                CEX(we1, vo1, we2, vo2);
39387
 
                                CEX(we1, vo1, we3, vo3);
39388
 
                                CEX(we1, vo1, we4, vo4);
39389
 
                                CEX(we1, vo1, we5, vo5);
39390
 
                                CEX(we1, vo1, we6, vo6);
39391
 
                                CEX(we1, vo1, we7, vo7);
39392
 
                                CEX(we2, vo2, we3, vo3);
39393
 
                                CEX(we2, vo2, we4, vo4);
39394
 
                                CEX(we2, vo2, we5, vo5);
39395
 
                                CEX(we2, vo2, we6, vo6);
39396
 
                                CEX(we2, vo2, we7, vo7);
39397
 
                                CEX(we3, vo3, we4, vo4);
39398
 
                                CEX(we3, vo3, we5, vo5);
39399
 
                                CEX(we3, vo3, we6, vo6);
39400
 
                                CEX(we3, vo3, we7, vo7);
39401
 
                                CEX(we4, vo4, we5, vo5);
39402
 
                                CEX(we4, vo4, we6, vo6);
39403
 
                                CEX(we4, vo4, we7, vo7);
39404
 
                                CEX(we5, vo5, we6, vo6);
39405
 
                                CEX(we5, vo5, we7, vo7);
39406
 
                                CEX(we6, vo6, we7, vo7);
39407
 
                        }
39408
 
                        {
39409
 
                                unsigned int vof;       /* Vertex offset value */
39410
 
                                unsigned int vwe;       /* Vertex weighting */
39411
 
                                
39412
 
                                vof = 0;                                /* First vertex offset is 0 */
39413
 
                                vwe = 65536 - we0;              /* Baricentric weighting */
39414
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
39415
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
39416
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
39417
 
                                vof += vo0;                     /* Move to next vertex */
39418
 
                                vwe = we0 - we1;                /* Baricentric weighting */
39419
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
39420
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
39421
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
39422
 
                                vof += vo1;                     /* Move to next vertex */
39423
 
                                vwe = we1 - we2;                /* Baricentric weighting */
39424
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
39425
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
39426
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
39427
 
                                vof += vo2;                     /* Move to next vertex */
39428
 
                                vwe = we2 - we3;                /* Baricentric weighting */
39429
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
39430
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
39431
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
39432
 
                                vof += vo3;                     /* Move to next vertex */
39433
 
                                vwe = we3 - we4;                /* Baricentric weighting */
39434
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
39435
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
39436
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
39437
 
                                vof += vo4;                     /* Move to next vertex */
39438
 
                                vwe = we4 - we5;                /* Baricentric weighting */
39439
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
39440
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
39441
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
39442
 
                                vof += vo5;                     /* Move to next vertex */
39443
 
                                vwe = we5 - we6;                /* Baricentric weighting */
39444
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
39445
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
39446
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
39447
 
                                vof += vo6;                     /* Move to next vertex */
39448
 
                                vwe = we6 - we7;                /* Baricentric weighting */
39449
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
39450
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
39451
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
39452
 
                                vof += vo7;                     /* Move to next vertex */
39453
 
                                vwe = we7;                              /* Baricentric weighting */
39454
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
39455
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
39456
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
39457
 
                        }
39458
 
                }
39459
 
                {
39460
 
                        unsigned int oti;       /* Vertex offset value */
39461
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
39462
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
39463
 
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
39464
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
39465
 
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
39466
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
39467
 
                }
39468
 
        }
 
38642
        imdi_imp *p = (imdi_imp *)(s->impl);
 
38643
        unsigned short *ip0 = (unsigned short *)inp[0];
 
38644
        unsigned short *op0 = (unsigned short *)outp[0];
 
38645
        unsigned short *ep = ip0 + npix * 8 ;
 
38646
        pointer it0 = (pointer)p->in_tables[0];
 
38647
        pointer it1 = (pointer)p->in_tables[1];
 
38648
        pointer it2 = (pointer)p->in_tables[2];
 
38649
        pointer it3 = (pointer)p->in_tables[3];
 
38650
        pointer it4 = (pointer)p->in_tables[4];
 
38651
        pointer it5 = (pointer)p->in_tables[5];
 
38652
        pointer it6 = (pointer)p->in_tables[6];
 
38653
        pointer it7 = (pointer)p->in_tables[7];
 
38654
        pointer ot0 = (pointer)p->out_tables[0];
 
38655
        pointer ot1 = (pointer)p->out_tables[1];
 
38656
        pointer ot2 = (pointer)p->out_tables[2];
 
38657
        pointer im_base = (pointer)p->im_table;
 
38658
 
 
38659
        for(;ip0 < ep; ip0 += 8, op0 += 3) {
 
38660
                unsigned int ova0;      /* Output value accumulator */
 
38661
                unsigned int ova1;      /* Output value accumulator */
 
38662
                unsigned int ova2;      /* Output value accumulator */
 
38663
                {
 
38664
                        pointer imp;
 
38665
                        unsigned int we0;       /* Weighting value variable */
 
38666
                        unsigned int vo0;       /* Vertex offset variable */
 
38667
                        unsigned int we1;       /* Weighting value variable */
 
38668
                        unsigned int vo1;       /* Vertex offset variable */
 
38669
                        unsigned int we2;       /* Weighting value variable */
 
38670
                        unsigned int vo2;       /* Vertex offset variable */
 
38671
                        unsigned int we3;       /* Weighting value variable */
 
38672
                        unsigned int vo3;       /* Vertex offset variable */
 
38673
                        unsigned int we4;       /* Weighting value variable */
 
38674
                        unsigned int vo4;       /* Vertex offset variable */
 
38675
                        unsigned int we5;       /* Weighting value variable */
 
38676
                        unsigned int vo5;       /* Vertex offset variable */
 
38677
                        unsigned int we6;       /* Weighting value variable */
 
38678
                        unsigned int vo6;       /* Vertex offset variable */
 
38679
                        unsigned int we7;       /* Weighting value variable */
 
38680
                        unsigned int vo7;       /* Vertex offset variable */
 
38681
                        {
 
38682
                                unsigned int ti_i;      /* Interpolation index variable */
 
38683
 
 
38684
                                ti_i  = IT_IX(it0, ip0[0]);
 
38685
                                we0   = IT_WE(it0, ip0[0]);
 
38686
                                vo0   = IT_VO(it0, ip0[0]);
 
38687
                                ti_i += IT_IX(it1, ip0[1]);
 
38688
                                we1   = IT_WE(it1, ip0[1]);
 
38689
                                vo1   = IT_VO(it1, ip0[1]);
 
38690
                                ti_i += IT_IX(it2, ip0[2]);
 
38691
                                we2   = IT_WE(it2, ip0[2]);
 
38692
                                vo2   = IT_VO(it2, ip0[2]);
 
38693
                                ti_i += IT_IX(it3, ip0[3]);
 
38694
                                we3   = IT_WE(it3, ip0[3]);
 
38695
                                vo3   = IT_VO(it3, ip0[3]);
 
38696
                                ti_i += IT_IX(it4, ip0[4]);
 
38697
                                we4   = IT_WE(it4, ip0[4]);
 
38698
                                vo4   = IT_VO(it4, ip0[4]);
 
38699
                                ti_i += IT_IX(it5, ip0[5]);
 
38700
                                we5   = IT_WE(it5, ip0[5]);
 
38701
                                vo5   = IT_VO(it5, ip0[5]);
 
38702
                                ti_i += IT_IX(it6, ip0[6]);
 
38703
                                we6   = IT_WE(it6, ip0[6]);
 
38704
                                vo6   = IT_VO(it6, ip0[6]);
 
38705
                                ti_i += IT_IX(it7, ip0[7]);
 
38706
                                we7   = IT_WE(it7, ip0[7]);
 
38707
                                vo7   = IT_VO(it7, ip0[7]);
 
38708
 
 
38709
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
38710
 
 
38711
                                /* Sort weighting values and vertex offset values */
 
38712
                                CEX(we0, vo0, we1, vo1);
 
38713
                                CEX(we0, vo0, we2, vo2);
 
38714
                                CEX(we0, vo0, we3, vo3);
 
38715
                                CEX(we0, vo0, we4, vo4);
 
38716
                                CEX(we0, vo0, we5, vo5);
 
38717
                                CEX(we0, vo0, we6, vo6);
 
38718
                                CEX(we0, vo0, we7, vo7);
 
38719
                                CEX(we1, vo1, we2, vo2);
 
38720
                                CEX(we1, vo1, we3, vo3);
 
38721
                                CEX(we1, vo1, we4, vo4);
 
38722
                                CEX(we1, vo1, we5, vo5);
 
38723
                                CEX(we1, vo1, we6, vo6);
 
38724
                                CEX(we1, vo1, we7, vo7);
 
38725
                                CEX(we2, vo2, we3, vo3);
 
38726
                                CEX(we2, vo2, we4, vo4);
 
38727
                                CEX(we2, vo2, we5, vo5);
 
38728
                                CEX(we2, vo2, we6, vo6);
 
38729
                                CEX(we2, vo2, we7, vo7);
 
38730
                                CEX(we3, vo3, we4, vo4);
 
38731
                                CEX(we3, vo3, we5, vo5);
 
38732
                                CEX(we3, vo3, we6, vo6);
 
38733
                                CEX(we3, vo3, we7, vo7);
 
38734
                                CEX(we4, vo4, we5, vo5);
 
38735
                                CEX(we4, vo4, we6, vo6);
 
38736
                                CEX(we4, vo4, we7, vo7);
 
38737
                                CEX(we5, vo5, we6, vo6);
 
38738
                                CEX(we5, vo5, we7, vo7);
 
38739
                                CEX(we6, vo6, we7, vo7);
 
38740
                        }
 
38741
                        {
 
38742
                                unsigned int vof;       /* Vertex offset value */
 
38743
                                unsigned int vwe;       /* Vertex weighting */
 
38744
 
 
38745
                                vof = 0;                                /* First vertex offset is 0 */
 
38746
                                vwe = 65536 - we0;              /* Baricentric weighting */
 
38747
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
38748
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
38749
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
38750
                                vof += vo0;                     /* Move to next vertex */
 
38751
                                vwe = we0 - we1;                /* Baricentric weighting */
 
38752
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
38753
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
38754
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
38755
                                vof += vo1;                     /* Move to next vertex */
 
38756
                                vwe = we1 - we2;                /* Baricentric weighting */
 
38757
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
38758
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
38759
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
38760
                                vof += vo2;                     /* Move to next vertex */
 
38761
                                vwe = we2 - we3;                /* Baricentric weighting */
 
38762
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
38763
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
38764
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
38765
                                vof += vo3;                     /* Move to next vertex */
 
38766
                                vwe = we3 - we4;                /* Baricentric weighting */
 
38767
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
38768
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
38769
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
38770
                                vof += vo4;                     /* Move to next vertex */
 
38771
                                vwe = we4 - we5;                /* Baricentric weighting */
 
38772
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
38773
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
38774
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
38775
                                vof += vo5;                     /* Move to next vertex */
 
38776
                                vwe = we5 - we6;                /* Baricentric weighting */
 
38777
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
38778
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
38779
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
38780
                                vof += vo6;                     /* Move to next vertex */
 
38781
                                vwe = we6 - we7;                /* Baricentric weighting */
 
38782
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
38783
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
38784
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
38785
                                vof += vo7;                     /* Move to next vertex */
 
38786
                                vwe = we7;                              /* Baricentric weighting */
 
38787
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
38788
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
38789
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
38790
                        }
 
38791
                }
 
38792
                {
 
38793
                        unsigned int oti;       /* Vertex offset value */
 
38794
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
38795
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
38796
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
 
38797
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
38798
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
 
38799
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
38800
                }
 
38801
        }
39469
38802
}
39470
38803
#undef IT_WE
39471
38804
#undef IT_VO
39479
38812
imdi_k112_gen(
39480
38813
genspec *g                      /* structure to be initialised */
39481
38814
) {
39482
 
        static unsigned char data[] = {
39483
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
39484
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
39485
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39486
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39487
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39488
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39489
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39490
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
39491
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
39492
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
39493
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
39494
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39495
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39496
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39497
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39498
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39499
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39500
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39501
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39502
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
39503
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39504
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39505
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39506
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39507
 
                0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
39508
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
39509
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
39510
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
39511
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39512
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39513
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39514
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39515
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39516
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39517
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39518
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39519
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
39520
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
39521
 
                0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39522
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
39523
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
39524
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
39525
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
39526
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
39527
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
39528
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
39529
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
39530
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
39531
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39532
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
39533
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
39534
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x38, 0x5f, 0x33, 0x5f, 
39535
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
39536
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
39537
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
39538
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
39539
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
39540
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
39541
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
39542
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39543
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39544
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39545
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39546
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
39547
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x31, 
39548
 
                0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39549
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39550
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
39551
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
39552
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
39553
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
39554
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
39555
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
39556
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
39557
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
39558
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
39559
 
                0x00, 0xf0, 0x04, 0x08 
39560
 
        };      /* Structure image */
39561
 
        
39562
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
38815
        static unsigned char data[] = {
 
38816
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
38817
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
38818
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38819
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38820
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38821
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38822
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38823
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
38824
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
38825
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
38826
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
38827
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38828
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38829
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38830
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38831
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38832
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38833
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38834
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38835
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
38836
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38837
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38838
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38839
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38840
                0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
38841
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
38842
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
38843
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
38844
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38845
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38846
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38847
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38848
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38849
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38850
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38851
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38852
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
38853
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
38854
                0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38855
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
38856
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
38857
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
38858
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
38859
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
38860
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
38861
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
38862
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
38863
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
38864
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38865
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
38866
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
38867
                0x2c, 0xf3, 0xdc, 0xb7, 0x38, 0x5f, 0x33, 0x5f,
 
38868
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
38869
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
38870
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
38871
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
38872
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
38873
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
38874
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
38875
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38876
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38877
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38878
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38879
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
38880
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x31,
 
38881
                0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38882
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38883
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
38884
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
38885
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
38886
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
38887
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
38888
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
38889
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
38890
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
38891
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
38892
                0x00, 0xf0, 0x04, 0x08
 
38893
        };      /* Structure image */
 
38894
 
 
38895
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
39563
38896
}
39564
38897
 
39565
38898
static void
39566
38899
imdi_k112_tab(
39567
38900
tabspec *t                      /* structure to be initialised */
39568
38901
) {
39569
 
        static unsigned char data[] = {
39570
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
39571
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
39572
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
39573
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
39574
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
39575
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
39576
 
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 
39577
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
39578
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
39579
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39580
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
39581
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
39582
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
39583
 
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
39584
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
39585
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39586
 
                0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
39587
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
39588
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39589
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39590
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
39591
 
                0x02, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
39592
 
                0xff, 0xff, 0xff, 0x33, 0x00, 0x00, 0x00, 0x00, 
39593
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
39594
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39595
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39596
 
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08, 
39597
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
39598
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39599
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39600
 
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
39601
 
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
39602
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
39603
 
        };      /* Structure image */
39604
 
        
39605
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
38902
        static unsigned char data[] = {
 
38903
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
38904
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
38905
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
38906
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
38907
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
38908
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
38909
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
 
38910
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
38911
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
38912
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38913
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
38914
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
38915
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
38916
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
38917
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
38918
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38919
                0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
38920
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
38921
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38922
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38923
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
38924
                0x02, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
38925
                0xff, 0xff, 0xff, 0x33, 0x00, 0x00, 0x00, 0x00,
 
38926
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
38927
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38928
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
38929
                0xf4, 0xd5, 0x83, 0xbf, 0x52, 0xca, 0x04, 0x08,
 
38930
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
38931
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38932
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
38933
                0x14, 0xda, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
38934
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
38935
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
38936
        };      /* Structure image */
 
38937
 
 
38938
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
39606
38939
}
39607
38940
 
39608
 
 
39609
 
 
39610
 
 
39611
 
 
39612
 
 
39613
38941
/* Integer Multi-Dimensional Interpolation */
39614
38942
/* Interpolation Kernel Code */
39615
38943
/* Generated by cgen */
39618
38946
 
39619
38947
/* see the Licence.txt file for licencing details.*/
39620
38948
 
39621
 
 
39622
38949
/*
39623
38950
   Interpolation kernel specs:
39624
38951
 
39698
39025
void **inp,             /* pointer to input pointers */
39699
39026
unsigned int npix       /* Number of pixels to process */
39700
39027
) {
39701
 
        imdi_imp *p = (imdi_imp *)(s->impl);
39702
 
        unsigned short *ip0 = (unsigned short *)inp[0];
39703
 
        unsigned short *op0 = (unsigned short *)outp[0];
39704
 
        unsigned short *ep = ip0 + npix * 1 ;
39705
 
        pointer it0 = (pointer)p->in_tables[0];
39706
 
        pointer ot0 = (pointer)p->out_tables[0];
39707
 
        pointer ot1 = (pointer)p->out_tables[1];
39708
 
        pointer ot2 = (pointer)p->out_tables[2];
39709
 
        pointer ot3 = (pointer)p->out_tables[3];
39710
 
        pointer im_base = (pointer)p->im_table;
39711
 
        
39712
 
        for(;ip0 < ep; ip0 += 1, op0 += 4) {
39713
 
                unsigned int ova0;      /* Output value accumulator */
39714
 
                unsigned int ova1;      /* Output value accumulator */
39715
 
                unsigned int ova2;      /* Output value accumulator */
39716
 
                unsigned int ova3;      /* Output value accumulator */
39717
 
                {
39718
 
                        pointer imp;
39719
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
39720
 
                        {
39721
 
                                unsigned int ti;                /* Input table entry variable */
39722
 
                                unsigned int ti_i;      /* Interpolation index variable */
39723
 
                                
39724
 
                                ti = IT_IT(it0, ip0[0]);
39725
 
                                wo0   = (ti & 0xfffff); /* Extract weighting/vertex offset value */
39726
 
                                ti_i  = (ti >> 20);     /* Extract interpolation table value */
39727
 
                                
39728
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
39729
 
                                
39730
 
                                /* Sort weighting values and vertex offset values */
39731
 
                        }
39732
 
                        {
39733
 
                                unsigned int nvof;      /* Next vertex offset value */
39734
 
                                unsigned int vof;       /* Vertex offset value */
39735
 
                                unsigned int vwe;       /* Vertex weighting */
39736
 
                                
39737
 
                                vof = 0;                                /* First vertex offset is 0 */
39738
 
                                nvof = (wo0 & 0x7);     /* Extract offset value */
39739
 
                                wo0 = (wo0 >> 3);               /* Extract weighting value */
39740
 
                                vwe = 65536 - wo0;              /* Baricentric weighting */
39741
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
39742
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
39743
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
39744
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
39745
 
                                vof += nvof;                    /* Move to next vertex */
39746
 
                                vwe = wo0;                              /* Baricentric weighting */
39747
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
39748
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
39749
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
39750
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
39751
 
                        }
39752
 
                }
39753
 
                {
39754
 
                        unsigned int oti;       /* Vertex offset value */
39755
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
39756
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
39757
 
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
39758
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
39759
 
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
39760
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
39761
 
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
39762
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
39763
 
                }
39764
 
        }
 
39028
        imdi_imp *p = (imdi_imp *)(s->impl);
 
39029
        unsigned short *ip0 = (unsigned short *)inp[0];
 
39030
        unsigned short *op0 = (unsigned short *)outp[0];
 
39031
        unsigned short *ep = ip0 + npix * 1 ;
 
39032
        pointer it0 = (pointer)p->in_tables[0];
 
39033
        pointer ot0 = (pointer)p->out_tables[0];
 
39034
        pointer ot1 = (pointer)p->out_tables[1];
 
39035
        pointer ot2 = (pointer)p->out_tables[2];
 
39036
        pointer ot3 = (pointer)p->out_tables[3];
 
39037
        pointer im_base = (pointer)p->im_table;
 
39038
 
 
39039
        for(;ip0 < ep; ip0 += 1, op0 += 4) {
 
39040
                unsigned int ova0;      /* Output value accumulator */
 
39041
                unsigned int ova1;      /* Output value accumulator */
 
39042
                unsigned int ova2;      /* Output value accumulator */
 
39043
                unsigned int ova3;      /* Output value accumulator */
 
39044
                {
 
39045
                        pointer imp;
 
39046
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
39047
                        {
 
39048
                                unsigned int ti;                /* Input table entry variable */
 
39049
                                unsigned int ti_i;      /* Interpolation index variable */
 
39050
 
 
39051
                                ti = IT_IT(it0, ip0[0]);
 
39052
                                wo0   = (ti & 0xfffff); /* Extract weighting/vertex offset value */
 
39053
                                ti_i  = (ti >> 20);     /* Extract interpolation table value */
 
39054
 
 
39055
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
39056
 
 
39057
                                /* Sort weighting values and vertex offset values */
 
39058
                        }
 
39059
                        {
 
39060
                                unsigned int nvof;      /* Next vertex offset value */
 
39061
                                unsigned int vof;       /* Vertex offset value */
 
39062
                                unsigned int vwe;       /* Vertex weighting */
 
39063
 
 
39064
                                vof = 0;                                /* First vertex offset is 0 */
 
39065
                                nvof = (wo0 & 0x7);     /* Extract offset value */
 
39066
                                wo0 = (wo0 >> 3);               /* Extract weighting value */
 
39067
                                vwe = 65536 - wo0;              /* Baricentric weighting */
 
39068
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
39069
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
39070
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
39071
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
39072
                                vof += nvof;                    /* Move to next vertex */
 
39073
                                vwe = wo0;                              /* Baricentric weighting */
 
39074
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
39075
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
39076
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
39077
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
39078
                        }
 
39079
                }
 
39080
                {
 
39081
                        unsigned int oti;       /* Vertex offset value */
 
39082
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
39083
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
39084
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
 
39085
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
39086
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
 
39087
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
39088
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
 
39089
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
39090
                }
 
39091
        }
39765
39092
}
39766
39093
#undef IT_IT
39767
39094
#undef CEX
39773
39100
imdi_k113_gen(
39774
39101
genspec *g                      /* structure to be initialised */
39775
39102
) {
39776
 
        static unsigned char data[] = {
39777
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
39778
 
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
39779
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39780
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39781
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39782
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39783
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39784
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
39785
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
39786
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
39787
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
39788
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39789
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39790
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39791
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39792
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39793
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39794
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39795
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39796
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
39797
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39798
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39799
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39800
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39801
 
                0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
39802
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
39803
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
39804
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
39805
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39806
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39807
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39808
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39809
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39810
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39811
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39812
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39813
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
39814
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
39815
 
                0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39816
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
39817
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
39818
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
39819
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
39820
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
39821
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
39822
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
39823
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
39824
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
39825
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39826
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
39827
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
39828
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x31, 0x5f, 0x34, 0x5f, 
39829
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
39830
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
39831
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
39832
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
39833
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
39834
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
39835
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
39836
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39837
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39838
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39839
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39840
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
39841
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x31, 
39842
 
                0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39843
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39844
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
39845
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
39846
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
39847
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
39848
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
39849
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
39850
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
39851
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
39852
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
39853
 
                0x00, 0xf0, 0x04, 0x08 
39854
 
        };      /* Structure image */
39855
 
        
39856
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
39103
        static unsigned char data[] = {
 
39104
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
39105
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
39106
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39107
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39108
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39109
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39110
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39111
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
39112
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
39113
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
39114
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
39115
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39116
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39117
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39118
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39119
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39120
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39121
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39122
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39123
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
39124
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39125
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39126
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39127
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39128
                0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
39129
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
39130
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
39131
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
39132
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39133
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39134
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39135
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39136
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39137
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39138
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39139
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39140
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
39141
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
39142
                0xff, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39143
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
39144
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
39145
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
39146
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
39147
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
39148
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
39149
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
39150
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
39151
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
39152
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39153
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
39154
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
39155
                0x2c, 0xf3, 0xdc, 0xb7, 0x31, 0x5f, 0x34, 0x5f,
 
39156
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
39157
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
39158
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
39159
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
39160
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
39161
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
39162
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
39163
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39164
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39165
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39166
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39167
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
39168
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x31,
 
39169
                0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39170
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39171
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
39172
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
39173
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
39174
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
39175
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
39176
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
39177
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
39178
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
39179
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
39180
                0x00, 0xf0, 0x04, 0x08
 
39181
        };      /* Structure image */
 
39182
 
 
39183
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
39857
39184
}
39858
39185
 
39859
39186
static void
39860
39187
imdi_k113_tab(
39861
39188
tabspec *t                      /* structure to be initialised */
39862
39189
) {
39863
 
        static unsigned char data[] = {
39864
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39865
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
39866
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
39867
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
39868
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
39869
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
39870
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
39871
 
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
39872
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
39873
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39874
 
                0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 
39875
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
39876
 
                0x11, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
39877
 
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
39878
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
39879
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39880
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
39881
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
39882
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39883
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39884
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
39885
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
39886
 
                0xff, 0xff, 0xff, 0x34, 0x00, 0x00, 0x00, 0x00, 
39887
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
39888
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39889
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
39890
 
                0x00, 0x00, 0x00, 0x00, 0x52, 0xca, 0x04, 0x08, 
39891
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
39892
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39893
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
39894
 
                0x10, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
39895
 
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
39896
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
39897
 
        };      /* Structure image */
39898
 
        
39899
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
39190
        static unsigned char data[] = {
 
39191
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39192
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
39193
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
39194
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
39195
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
39196
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
39197
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
39198
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
39199
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
39200
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39201
                0x14, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00,
 
39202
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
39203
                0x11, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
39204
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
39205
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
39206
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39207
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
39208
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
39209
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39210
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39211
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
39212
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
39213
                0xff, 0xff, 0xff, 0x34, 0x00, 0x00, 0x00, 0x00,
 
39214
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
39215
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39216
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39217
                0x00, 0x00, 0x00, 0x00, 0x52, 0xca, 0x04, 0x08,
 
39218
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
39219
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39220
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39221
                0x10, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
39222
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
39223
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
39224
        };      /* Structure image */
 
39225
 
 
39226
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
39900
39227
}
39901
39228
 
39902
 
 
39903
 
 
39904
 
 
39905
 
 
39906
 
 
39907
39229
/* Integer Multi-Dimensional Interpolation */
39908
39230
/* Interpolation Kernel Code */
39909
39231
/* Generated by cgen */
39912
39234
 
39913
39235
/* see the Licence.txt file for licencing details.*/
39914
39236
 
39915
 
 
39916
39237
/*
39917
39238
   Interpolation kernel specs:
39918
39239
 
39999
39320
void **inp,             /* pointer to input pointers */
40000
39321
unsigned int npix       /* Number of pixels to process */
40001
39322
) {
40002
 
        imdi_imp *p = (imdi_imp *)(s->impl);
40003
 
        unsigned short *ip0 = (unsigned short *)inp[0];
40004
 
        unsigned short *op0 = (unsigned short *)outp[0];
40005
 
        unsigned short *ep = ip0 + npix * 3 ;
40006
 
        pointer it0 = (pointer)p->in_tables[0];
40007
 
        pointer it1 = (pointer)p->in_tables[1];
40008
 
        pointer it2 = (pointer)p->in_tables[2];
40009
 
        pointer ot0 = (pointer)p->out_tables[0];
40010
 
        pointer ot1 = (pointer)p->out_tables[1];
40011
 
        pointer ot2 = (pointer)p->out_tables[2];
40012
 
        pointer ot3 = (pointer)p->out_tables[3];
40013
 
        pointer im_base = (pointer)p->im_table;
40014
 
        
40015
 
        for(;ip0 < ep; ip0 += 3, op0 += 4) {
40016
 
                unsigned int ova0;      /* Output value accumulator */
40017
 
                unsigned int ova1;      /* Output value accumulator */
40018
 
                unsigned int ova2;      /* Output value accumulator */
40019
 
                unsigned int ova3;      /* Output value accumulator */
40020
 
                {
40021
 
                        pointer imp;
40022
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
40023
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
40024
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
40025
 
                        {
40026
 
                                unsigned int ti_i;      /* Interpolation index variable */
40027
 
                                
40028
 
                                ti_i  = IT_IX(it0, ip0[0]);
40029
 
                                wo0   = IT_WO(it0, ip0[0]);
40030
 
                                ti_i += IT_IX(it1, ip0[1]);
40031
 
                                wo1   = IT_WO(it1, ip0[1]);
40032
 
                                ti_i += IT_IX(it2, ip0[2]);
40033
 
                                wo2   = IT_WO(it2, ip0[2]);
40034
 
                                
40035
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
40036
 
                                
40037
 
                                /* Sort weighting values and vertex offset values */
40038
 
                                CEX(wo0, wo1);
40039
 
                                CEX(wo0, wo2);
40040
 
                                CEX(wo1, wo2);
40041
 
                        }
40042
 
                        {
40043
 
                                unsigned int nvof;      /* Next vertex offset value */
40044
 
                                unsigned int vof;       /* Vertex offset value */
40045
 
                                unsigned int vwe;       /* Vertex weighting */
40046
 
                                
40047
 
                                vof = 0;                                /* First vertex offset is 0 */
40048
 
                                nvof = (wo0 & 0x7fff);  /* Extract offset value */
40049
 
                                wo0 = (wo0 >> 15);              /* Extract weighting value */
40050
 
                                vwe = 65536 - wo0;              /* Baricentric weighting */
40051
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
40052
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
40053
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
40054
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
40055
 
                                vof += nvof;                    /* Move to next vertex */
40056
 
                                nvof = (wo1 & 0x7fff);  /* Extract offset value */
40057
 
                                wo1 = (wo1 >> 15);              /* Extract weighting value */
40058
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
40059
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
40060
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
40061
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
40062
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
40063
 
                                vof += nvof;                    /* Move to next vertex */
40064
 
                                nvof = (wo2 & 0x7fff);  /* Extract offset value */
40065
 
                                wo2 = (wo2 >> 15);              /* Extract weighting value */
40066
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
40067
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
40068
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
40069
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
40070
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
40071
 
                                vof += nvof;                    /* Move to next vertex */
40072
 
                                vwe = wo2;                              /* Baricentric weighting */
40073
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
40074
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
40075
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
40076
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
40077
 
                        }
40078
 
                }
40079
 
                {
40080
 
                        unsigned int oti;       /* Vertex offset value */
40081
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
40082
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
40083
 
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
40084
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
40085
 
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
40086
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
40087
 
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
40088
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
40089
 
                }
40090
 
        }
 
39323
        imdi_imp *p = (imdi_imp *)(s->impl);
 
39324
        unsigned short *ip0 = (unsigned short *)inp[0];
 
39325
        unsigned short *op0 = (unsigned short *)outp[0];
 
39326
        unsigned short *ep = ip0 + npix * 3 ;
 
39327
        pointer it0 = (pointer)p->in_tables[0];
 
39328
        pointer it1 = (pointer)p->in_tables[1];
 
39329
        pointer it2 = (pointer)p->in_tables[2];
 
39330
        pointer ot0 = (pointer)p->out_tables[0];
 
39331
        pointer ot1 = (pointer)p->out_tables[1];
 
39332
        pointer ot2 = (pointer)p->out_tables[2];
 
39333
        pointer ot3 = (pointer)p->out_tables[3];
 
39334
        pointer im_base = (pointer)p->im_table;
 
39335
 
 
39336
        for(;ip0 < ep; ip0 += 3, op0 += 4) {
 
39337
                unsigned int ova0;      /* Output value accumulator */
 
39338
                unsigned int ova1;      /* Output value accumulator */
 
39339
                unsigned int ova2;      /* Output value accumulator */
 
39340
                unsigned int ova3;      /* Output value accumulator */
 
39341
                {
 
39342
                        pointer imp;
 
39343
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
39344
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
39345
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
39346
                        {
 
39347
                                unsigned int ti_i;      /* Interpolation index variable */
 
39348
 
 
39349
                                ti_i  = IT_IX(it0, ip0[0]);
 
39350
                                wo0   = IT_WO(it0, ip0[0]);
 
39351
                                ti_i += IT_IX(it1, ip0[1]);
 
39352
                                wo1   = IT_WO(it1, ip0[1]);
 
39353
                                ti_i += IT_IX(it2, ip0[2]);
 
39354
                                wo2   = IT_WO(it2, ip0[2]);
 
39355
 
 
39356
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
39357
 
 
39358
                                /* Sort weighting values and vertex offset values */
 
39359
                                CEX(wo0, wo1);
 
39360
                                CEX(wo0, wo2);
 
39361
                                CEX(wo1, wo2);
 
39362
                        }
 
39363
                        {
 
39364
                                unsigned int nvof;      /* Next vertex offset value */
 
39365
                                unsigned int vof;       /* Vertex offset value */
 
39366
                                unsigned int vwe;       /* Vertex weighting */
 
39367
 
 
39368
                                vof = 0;                                /* First vertex offset is 0 */
 
39369
                                nvof = (wo0 & 0x7fff);  /* Extract offset value */
 
39370
                                wo0 = (wo0 >> 15);              /* Extract weighting value */
 
39371
                                vwe = 65536 - wo0;              /* Baricentric weighting */
 
39372
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
39373
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
39374
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
39375
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
39376
                                vof += nvof;                    /* Move to next vertex */
 
39377
                                nvof = (wo1 & 0x7fff);  /* Extract offset value */
 
39378
                                wo1 = (wo1 >> 15);              /* Extract weighting value */
 
39379
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
39380
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
39381
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
39382
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
39383
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
39384
                                vof += nvof;                    /* Move to next vertex */
 
39385
                                nvof = (wo2 & 0x7fff);  /* Extract offset value */
 
39386
                                wo2 = (wo2 >> 15);              /* Extract weighting value */
 
39387
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
39388
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
39389
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
39390
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
39391
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
39392
                                vof += nvof;                    /* Move to next vertex */
 
39393
                                vwe = wo2;                              /* Baricentric weighting */
 
39394
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
39395
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
39396
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
39397
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
39398
                        }
 
39399
                }
 
39400
                {
 
39401
                        unsigned int oti;       /* Vertex offset value */
 
39402
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
39403
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
39404
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
 
39405
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
39406
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
 
39407
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
39408
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
 
39409
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
39410
                }
 
39411
        }
40091
39412
}
40092
39413
#undef IT_WO
40093
39414
#undef IT_IX
40100
39421
imdi_k114_gen(
40101
39422
genspec *g                      /* structure to be initialised */
40102
39423
) {
40103
 
        static unsigned char data[] = {
40104
 
                0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
40105
 
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
40106
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40107
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40108
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40109
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40110
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40111
 
                0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
40112
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
40113
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
40114
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
40115
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40116
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40117
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40118
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40119
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40120
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40121
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40122
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40123
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
40124
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40125
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40126
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40127
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40128
 
                0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
40129
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
40130
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
40131
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
40132
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40133
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40134
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40135
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40136
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40137
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40138
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40139
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40140
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
40141
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
40142
 
                0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40143
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
40144
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
40145
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
40146
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
40147
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
40148
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
40149
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
40150
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
40151
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
40152
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40153
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
40154
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
40155
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x33, 0x5f, 0x34, 0x5f, 
40156
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
40157
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
40158
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
40159
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
40160
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
40161
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
40162
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
40163
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40164
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40165
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40166
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40167
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
40168
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x31, 
40169
 
                0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40170
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40171
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
40172
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
40173
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
40174
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
40175
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
40176
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
40177
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
40178
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
40179
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
40180
 
                0x00, 0xf0, 0x04, 0x08 
40181
 
        };      /* Structure image */
40182
 
        
40183
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
39424
        static unsigned char data[] = {
 
39425
                0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
39426
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
39427
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39428
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39429
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39430
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39431
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39432
                0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
39433
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
39434
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
39435
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
39436
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39437
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39438
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39439
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39440
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39441
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39442
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39443
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39444
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
39445
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39446
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39447
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39448
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39449
                0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
39450
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
39451
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
39452
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
39453
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39454
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39455
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39456
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39457
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39458
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39459
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39460
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39461
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
39462
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
39463
                0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39464
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
39465
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
39466
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
39467
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
39468
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
39469
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
39470
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
39471
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
39472
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
39473
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39474
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
39475
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
39476
                0x2c, 0xf3, 0xdc, 0xb7, 0x33, 0x5f, 0x34, 0x5f,
 
39477
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
39478
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
39479
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
39480
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
39481
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
39482
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
39483
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
39484
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39485
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39486
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39487
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39488
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
39489
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x31,
 
39490
                0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39491
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39492
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
39493
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
39494
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
39495
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
39496
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
39497
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
39498
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
39499
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
39500
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
39501
                0x00, 0xf0, 0x04, 0x08
 
39502
        };      /* Structure image */
 
39503
 
 
39504
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
40184
39505
}
40185
39506
 
40186
39507
static void
40187
39508
imdi_k114_tab(
40188
39509
tabspec *t                      /* structure to be initialised */
40189
39510
) {
40190
 
        static unsigned char data[] = {
40191
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
40192
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
40193
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
40194
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
40195
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
40196
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
40197
 
                0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
40198
 
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
40199
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
40200
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40201
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
40202
 
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
40203
 
                0x11, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
40204
 
                0x04, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 
40205
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
40206
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40207
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
40208
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
40209
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40210
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40211
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
40212
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
40213
 
                0xff, 0xff, 0xff, 0x34, 0x00, 0x00, 0x00, 0x00, 
40214
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
40215
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40216
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40217
 
                0x00, 0x00, 0x00, 0x00, 0x52, 0xca, 0x04, 0x08, 
40218
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
40219
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40220
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40221
 
                0x10, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
40222
 
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
40223
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
40224
 
        };      /* Structure image */
40225
 
        
40226
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
39511
        static unsigned char data[] = {
 
39512
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
39513
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
39514
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
39515
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
39516
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
39517
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
39518
                0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
39519
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
39520
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
39521
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39522
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
39523
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
39524
                0x11, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
39525
                0x04, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00,
 
39526
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
39527
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39528
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
39529
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
39530
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39531
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39532
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
39533
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
39534
                0xff, 0xff, 0xff, 0x34, 0x00, 0x00, 0x00, 0x00,
 
39535
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
39536
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39537
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39538
                0x00, 0x00, 0x00, 0x00, 0x52, 0xca, 0x04, 0x08,
 
39539
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
39540
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39541
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39542
                0x10, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
39543
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
39544
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
39545
        };      /* Structure image */
 
39546
 
 
39547
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
40227
39548
}
40228
39549
 
40229
 
 
40230
 
 
40231
 
 
40232
 
 
40233
 
 
40234
39550
/* Integer Multi-Dimensional Interpolation */
40235
39551
/* Interpolation Kernel Code */
40236
39552
/* Generated by cgen */
40239
39555
 
40240
39556
/* see the Licence.txt file for licencing details.*/
40241
39557
 
40242
 
 
40243
39558
/*
40244
39559
   Interpolation kernel specs:
40245
39560
 
40328
39643
void **inp,             /* pointer to input pointers */
40329
39644
unsigned int npix       /* Number of pixels to process */
40330
39645
) {
40331
 
        imdi_imp *p = (imdi_imp *)(s->impl);
40332
 
        unsigned short *ip0 = (unsigned short *)inp[0];
40333
 
        unsigned short *op0 = (unsigned short *)outp[0];
40334
 
        unsigned short *ep = ip0 + npix * 4 ;
40335
 
        pointer it0 = (pointer)p->in_tables[0];
40336
 
        pointer it1 = (pointer)p->in_tables[1];
40337
 
        pointer it2 = (pointer)p->in_tables[2];
40338
 
        pointer it3 = (pointer)p->in_tables[3];
40339
 
        pointer ot0 = (pointer)p->out_tables[0];
40340
 
        pointer ot1 = (pointer)p->out_tables[1];
40341
 
        pointer ot2 = (pointer)p->out_tables[2];
40342
 
        pointer ot3 = (pointer)p->out_tables[3];
40343
 
        pointer im_base = (pointer)p->im_table;
40344
 
        
40345
 
        for(;ip0 < ep; ip0 += 4, op0 += 4) {
40346
 
                unsigned int ova0;      /* Output value accumulator */
40347
 
                unsigned int ova1;      /* Output value accumulator */
40348
 
                unsigned int ova2;      /* Output value accumulator */
40349
 
                unsigned int ova3;      /* Output value accumulator */
40350
 
                {
40351
 
                        pointer imp;
40352
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
40353
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
40354
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
40355
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
40356
 
                        {
40357
 
                                unsigned int ti_i;      /* Interpolation index variable */
40358
 
                                
40359
 
                                ti_i  = IT_IX(it0, ip0[0]);
40360
 
                                wo0   = IT_WO(it0, ip0[0]);
40361
 
                                ti_i += IT_IX(it1, ip0[1]);
40362
 
                                wo1   = IT_WO(it1, ip0[1]);
40363
 
                                ti_i += IT_IX(it2, ip0[2]);
40364
 
                                wo2   = IT_WO(it2, ip0[2]);
40365
 
                                ti_i += IT_IX(it3, ip0[3]);
40366
 
                                wo3   = IT_WO(it3, ip0[3]);
40367
 
                                
40368
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
40369
 
                                
40370
 
                                /* Sort weighting values and vertex offset values */
40371
 
                                CEX(wo0, wo1);
40372
 
                                CEX(wo0, wo2);
40373
 
                                CEX(wo0, wo3);
40374
 
                                CEX(wo1, wo2);
40375
 
                                CEX(wo1, wo3);
40376
 
                                CEX(wo2, wo3);
40377
 
                        }
40378
 
                        {
40379
 
                                unsigned int nvof;      /* Next vertex offset value */
40380
 
                                unsigned int vof;       /* Vertex offset value */
40381
 
                                unsigned int vwe;       /* Vertex weighting */
40382
 
                                
40383
 
                                vof = 0;                                /* First vertex offset is 0 */
40384
 
                                nvof = (wo0 & 0x7fff);  /* Extract offset value */
40385
 
                                wo0 = (wo0 >> 15);              /* Extract weighting value */
40386
 
                                vwe = 65536 - wo0;              /* Baricentric weighting */
40387
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
40388
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
40389
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
40390
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
40391
 
                                vof += nvof;                    /* Move to next vertex */
40392
 
                                nvof = (wo1 & 0x7fff);  /* Extract offset value */
40393
 
                                wo1 = (wo1 >> 15);              /* Extract weighting value */
40394
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
40395
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
40396
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
40397
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
40398
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
40399
 
                                vof += nvof;                    /* Move to next vertex */
40400
 
                                nvof = (wo2 & 0x7fff);  /* Extract offset value */
40401
 
                                wo2 = (wo2 >> 15);              /* Extract weighting value */
40402
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
40403
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
40404
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
40405
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
40406
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
40407
 
                                vof += nvof;                    /* Move to next vertex */
40408
 
                                nvof = (wo3 & 0x7fff);  /* Extract offset value */
40409
 
                                wo3 = (wo3 >> 15);              /* Extract weighting value */
40410
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
40411
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
40412
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
40413
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
40414
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
40415
 
                                vof += nvof;                    /* Move to next vertex */
40416
 
                                vwe = wo3;                              /* Baricentric weighting */
40417
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
40418
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
40419
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
40420
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
40421
 
                        }
40422
 
                }
40423
 
                {
40424
 
                        unsigned int oti;       /* Vertex offset value */
40425
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
40426
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
40427
 
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
40428
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
40429
 
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
40430
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
40431
 
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
40432
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
40433
 
                }
40434
 
        }
 
39646
        imdi_imp *p = (imdi_imp *)(s->impl);
 
39647
        unsigned short *ip0 = (unsigned short *)inp[0];
 
39648
        unsigned short *op0 = (unsigned short *)outp[0];
 
39649
        unsigned short *ep = ip0 + npix * 4 ;
 
39650
        pointer it0 = (pointer)p->in_tables[0];
 
39651
        pointer it1 = (pointer)p->in_tables[1];
 
39652
        pointer it2 = (pointer)p->in_tables[2];
 
39653
        pointer it3 = (pointer)p->in_tables[3];
 
39654
        pointer ot0 = (pointer)p->out_tables[0];
 
39655
        pointer ot1 = (pointer)p->out_tables[1];
 
39656
        pointer ot2 = (pointer)p->out_tables[2];
 
39657
        pointer ot3 = (pointer)p->out_tables[3];
 
39658
        pointer im_base = (pointer)p->im_table;
 
39659
 
 
39660
        for(;ip0 < ep; ip0 += 4, op0 += 4) {
 
39661
                unsigned int ova0;      /* Output value accumulator */
 
39662
                unsigned int ova1;      /* Output value accumulator */
 
39663
                unsigned int ova2;      /* Output value accumulator */
 
39664
                unsigned int ova3;      /* Output value accumulator */
 
39665
                {
 
39666
                        pointer imp;
 
39667
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
39668
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
39669
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
39670
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
39671
                        {
 
39672
                                unsigned int ti_i;      /* Interpolation index variable */
 
39673
 
 
39674
                                ti_i  = IT_IX(it0, ip0[0]);
 
39675
                                wo0   = IT_WO(it0, ip0[0]);
 
39676
                                ti_i += IT_IX(it1, ip0[1]);
 
39677
                                wo1   = IT_WO(it1, ip0[1]);
 
39678
                                ti_i += IT_IX(it2, ip0[2]);
 
39679
                                wo2   = IT_WO(it2, ip0[2]);
 
39680
                                ti_i += IT_IX(it3, ip0[3]);
 
39681
                                wo3   = IT_WO(it3, ip0[3]);
 
39682
 
 
39683
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
39684
 
 
39685
                                /* Sort weighting values and vertex offset values */
 
39686
                                CEX(wo0, wo1);
 
39687
                                CEX(wo0, wo2);
 
39688
                                CEX(wo0, wo3);
 
39689
                                CEX(wo1, wo2);
 
39690
                                CEX(wo1, wo3);
 
39691
                                CEX(wo2, wo3);
 
39692
                        }
 
39693
                        {
 
39694
                                unsigned int nvof;      /* Next vertex offset value */
 
39695
                                unsigned int vof;       /* Vertex offset value */
 
39696
                                unsigned int vwe;       /* Vertex weighting */
 
39697
 
 
39698
                                vof = 0;                                /* First vertex offset is 0 */
 
39699
                                nvof = (wo0 & 0x7fff);  /* Extract offset value */
 
39700
                                wo0 = (wo0 >> 15);              /* Extract weighting value */
 
39701
                                vwe = 65536 - wo0;              /* Baricentric weighting */
 
39702
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
39703
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
39704
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
39705
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
39706
                                vof += nvof;                    /* Move to next vertex */
 
39707
                                nvof = (wo1 & 0x7fff);  /* Extract offset value */
 
39708
                                wo1 = (wo1 >> 15);              /* Extract weighting value */
 
39709
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
39710
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
39711
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
39712
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
39713
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
39714
                                vof += nvof;                    /* Move to next vertex */
 
39715
                                nvof = (wo2 & 0x7fff);  /* Extract offset value */
 
39716
                                wo2 = (wo2 >> 15);              /* Extract weighting value */
 
39717
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
39718
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
39719
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
39720
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
39721
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
39722
                                vof += nvof;                    /* Move to next vertex */
 
39723
                                nvof = (wo3 & 0x7fff);  /* Extract offset value */
 
39724
                                wo3 = (wo3 >> 15);              /* Extract weighting value */
 
39725
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
39726
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
39727
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
39728
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
39729
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
39730
                                vof += nvof;                    /* Move to next vertex */
 
39731
                                vwe = wo3;                              /* Baricentric weighting */
 
39732
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
39733
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
39734
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
39735
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
39736
                        }
 
39737
                }
 
39738
                {
 
39739
                        unsigned int oti;       /* Vertex offset value */
 
39740
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
39741
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
39742
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
 
39743
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
39744
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
 
39745
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
39746
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
 
39747
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
39748
                }
 
39749
        }
40435
39750
}
40436
39751
#undef IT_WO
40437
39752
#undef IT_IX
40444
39759
imdi_k115_gen(
40445
39760
genspec *g                      /* structure to be initialised */
40446
39761
) {
40447
 
        static unsigned char data[] = {
40448
 
                0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
40449
 
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
40450
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40451
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40452
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40453
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40454
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40455
 
                0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
40456
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
40457
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
40458
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
40459
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40460
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40461
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40462
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40463
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40464
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40465
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40466
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40467
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
40468
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40469
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40470
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40471
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40472
 
                0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
40473
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
40474
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
40475
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
40476
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40477
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40478
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40479
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40480
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40481
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40482
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40483
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40484
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
40485
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
40486
 
                0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40487
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
40488
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
40489
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
40490
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
40491
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
40492
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
40493
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
40494
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
40495
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
40496
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40497
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
40498
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
40499
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x34, 0x5f, 0x34, 0x5f, 
40500
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
40501
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
40502
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
40503
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
40504
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
40505
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
40506
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
40507
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40508
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40509
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40510
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40511
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
40512
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x31, 
40513
 
                0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40514
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40515
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
40516
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
40517
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
40518
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
40519
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
40520
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
40521
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
40522
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
40523
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
40524
 
                0x00, 0xf0, 0x04, 0x08 
40525
 
        };      /* Structure image */
40526
 
        
40527
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
39762
        static unsigned char data[] = {
 
39763
                0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
39764
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
39765
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39766
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39767
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39768
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39769
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39770
                0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
39771
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
39772
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
39773
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
39774
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39775
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39776
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39777
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39778
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39779
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39780
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39781
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39782
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
39783
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39784
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39785
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39786
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39787
                0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
39788
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
39789
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
39790
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
39791
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39792
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39793
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39794
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39795
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39796
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39797
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39798
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39799
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
39800
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
39801
                0x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39802
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
39803
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
39804
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
39805
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
39806
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
39807
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
39808
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
39809
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
39810
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
39811
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39812
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
39813
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
39814
                0x2c, 0xf3, 0xdc, 0xb7, 0x34, 0x5f, 0x34, 0x5f,
 
39815
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
39816
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
39817
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
39818
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
39819
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
39820
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
39821
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
39822
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39823
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39824
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39825
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39826
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
39827
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x31,
 
39828
                0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39829
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39830
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
39831
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
39832
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
39833
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
39834
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
39835
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
39836
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
39837
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
39838
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
39839
                0x00, 0xf0, 0x04, 0x08
 
39840
        };      /* Structure image */
 
39841
 
 
39842
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
40528
39843
}
40529
39844
 
40530
39845
static void
40531
39846
imdi_k115_tab(
40532
39847
tabspec *t                      /* structure to be initialised */
40533
39848
) {
40534
 
        static unsigned char data[] = {
40535
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
40536
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
40537
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
40538
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
40539
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
40540
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
40541
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
40542
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
40543
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
40544
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40545
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
40546
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
40547
 
                0x11, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
40548
 
                0x04, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 
40549
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
40550
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40551
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
40552
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
40553
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40554
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40555
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
40556
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
40557
 
                0xff, 0xff, 0xff, 0x34, 0x00, 0x00, 0x00, 0x00, 
40558
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
40559
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40560
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40561
 
                0x00, 0x00, 0x00, 0x00, 0x52, 0xca, 0x04, 0x08, 
40562
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
40563
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40564
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40565
 
                0x10, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
40566
 
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
40567
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
40568
 
        };      /* Structure image */
40569
 
        
40570
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
39849
        static unsigned char data[] = {
 
39850
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
39851
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
39852
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
39853
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
39854
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
39855
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
39856
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
39857
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
39858
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
39859
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39860
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
39861
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
39862
                0x11, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
39863
                0x04, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00,
 
39864
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
39865
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39866
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
39867
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
39868
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39869
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39870
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
39871
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
39872
                0xff, 0xff, 0xff, 0x34, 0x00, 0x00, 0x00, 0x00,
 
39873
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
39874
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39875
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
39876
                0x00, 0x00, 0x00, 0x00, 0x52, 0xca, 0x04, 0x08,
 
39877
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
39878
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39879
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
39880
                0x10, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
39881
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
39882
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
39883
        };      /* Structure image */
 
39884
 
 
39885
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
40571
39886
}
40572
39887
 
40573
 
 
40574
 
 
40575
 
 
40576
 
 
40577
 
 
40578
39888
/* Integer Multi-Dimensional Interpolation */
40579
39889
/* Interpolation Kernel Code */
40580
39890
/* Generated by cgen */
40583
39893
 
40584
39894
/* see the Licence.txt file for licencing details.*/
40585
39895
 
40586
 
 
40587
39896
/*
40588
39897
   Interpolation kernel specs:
40589
39898
 
40678
39987
void **inp,             /* pointer to input pointers */
40679
39988
unsigned int npix       /* Number of pixels to process */
40680
39989
) {
40681
 
        imdi_imp *p = (imdi_imp *)(s->impl);
40682
 
        unsigned short *ip0 = (unsigned short *)inp[0];
40683
 
        unsigned short *op0 = (unsigned short *)outp[0];
40684
 
        unsigned short *ep = ip0 + npix * 5 ;
40685
 
        pointer it0 = (pointer)p->in_tables[0];
40686
 
        pointer it1 = (pointer)p->in_tables[1];
40687
 
        pointer it2 = (pointer)p->in_tables[2];
40688
 
        pointer it3 = (pointer)p->in_tables[3];
40689
 
        pointer it4 = (pointer)p->in_tables[4];
40690
 
        pointer ot0 = (pointer)p->out_tables[0];
40691
 
        pointer ot1 = (pointer)p->out_tables[1];
40692
 
        pointer ot2 = (pointer)p->out_tables[2];
40693
 
        pointer ot3 = (pointer)p->out_tables[3];
40694
 
        pointer im_base = (pointer)p->im_table;
40695
 
        
40696
 
        for(;ip0 < ep; ip0 += 5, op0 += 4) {
40697
 
                unsigned int ova0;      /* Output value accumulator */
40698
 
                unsigned int ova1;      /* Output value accumulator */
40699
 
                unsigned int ova2;      /* Output value accumulator */
40700
 
                unsigned int ova3;      /* Output value accumulator */
40701
 
                {
40702
 
                        pointer imp;
40703
 
                        unsigned int we0;       /* Weighting value variable */
40704
 
                        unsigned int vo0;       /* Vertex offset variable */
40705
 
                        unsigned int we1;       /* Weighting value variable */
40706
 
                        unsigned int vo1;       /* Vertex offset variable */
40707
 
                        unsigned int we2;       /* Weighting value variable */
40708
 
                        unsigned int vo2;       /* Vertex offset variable */
40709
 
                        unsigned int we3;       /* Weighting value variable */
40710
 
                        unsigned int vo3;       /* Vertex offset variable */
40711
 
                        unsigned int we4;       /* Weighting value variable */
40712
 
                        unsigned int vo4;       /* Vertex offset variable */
40713
 
                        {
40714
 
                                unsigned int ti_i;      /* Interpolation index variable */
40715
 
                                
40716
 
                                ti_i  = IT_IX(it0, ip0[0]);
40717
 
                                we0   = IT_WE(it0, ip0[0]);
40718
 
                                vo0   = IT_VO(it0, ip0[0]);
40719
 
                                ti_i += IT_IX(it1, ip0[1]);
40720
 
                                we1   = IT_WE(it1, ip0[1]);
40721
 
                                vo1   = IT_VO(it1, ip0[1]);
40722
 
                                ti_i += IT_IX(it2, ip0[2]);
40723
 
                                we2   = IT_WE(it2, ip0[2]);
40724
 
                                vo2   = IT_VO(it2, ip0[2]);
40725
 
                                ti_i += IT_IX(it3, ip0[3]);
40726
 
                                we3   = IT_WE(it3, ip0[3]);
40727
 
                                vo3   = IT_VO(it3, ip0[3]);
40728
 
                                ti_i += IT_IX(it4, ip0[4]);
40729
 
                                we4   = IT_WE(it4, ip0[4]);
40730
 
                                vo4   = IT_VO(it4, ip0[4]);
40731
 
                                
40732
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
40733
 
                                
40734
 
                                /* Sort weighting values and vertex offset values */
40735
 
                                CEX(we0, vo0, we1, vo1);
40736
 
                                CEX(we0, vo0, we2, vo2);
40737
 
                                CEX(we0, vo0, we3, vo3);
40738
 
                                CEX(we0, vo0, we4, vo4);
40739
 
                                CEX(we1, vo1, we2, vo2);
40740
 
                                CEX(we1, vo1, we3, vo3);
40741
 
                                CEX(we1, vo1, we4, vo4);
40742
 
                                CEX(we2, vo2, we3, vo3);
40743
 
                                CEX(we2, vo2, we4, vo4);
40744
 
                                CEX(we3, vo3, we4, vo4);
40745
 
                        }
40746
 
                        {
40747
 
                                unsigned int vof;       /* Vertex offset value */
40748
 
                                unsigned int vwe;       /* Vertex weighting */
40749
 
                                
40750
 
                                vof = 0;                                /* First vertex offset is 0 */
40751
 
                                vwe = 65536 - we0;              /* Baricentric weighting */
40752
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
40753
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
40754
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
40755
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
40756
 
                                vof += vo0;                     /* Move to next vertex */
40757
 
                                vwe = we0 - we1;                /* Baricentric weighting */
40758
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
40759
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
40760
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
40761
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
40762
 
                                vof += vo1;                     /* Move to next vertex */
40763
 
                                vwe = we1 - we2;                /* Baricentric weighting */
40764
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
40765
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
40766
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
40767
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
40768
 
                                vof += vo2;                     /* Move to next vertex */
40769
 
                                vwe = we2 - we3;                /* Baricentric weighting */
40770
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
40771
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
40772
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
40773
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
40774
 
                                vof += vo3;                     /* Move to next vertex */
40775
 
                                vwe = we3 - we4;                /* Baricentric weighting */
40776
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
40777
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
40778
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
40779
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
40780
 
                                vof += vo4;                     /* Move to next vertex */
40781
 
                                vwe = we4;                              /* Baricentric weighting */
40782
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
40783
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
40784
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
40785
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
40786
 
                        }
40787
 
                }
40788
 
                {
40789
 
                        unsigned int oti;       /* Vertex offset value */
40790
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
40791
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
40792
 
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
40793
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
40794
 
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
40795
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
40796
 
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
40797
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
40798
 
                }
40799
 
        }
 
39990
        imdi_imp *p = (imdi_imp *)(s->impl);
 
39991
        unsigned short *ip0 = (unsigned short *)inp[0];
 
39992
        unsigned short *op0 = (unsigned short *)outp[0];
 
39993
        unsigned short *ep = ip0 + npix * 5 ;
 
39994
        pointer it0 = (pointer)p->in_tables[0];
 
39995
        pointer it1 = (pointer)p->in_tables[1];
 
39996
        pointer it2 = (pointer)p->in_tables[2];
 
39997
        pointer it3 = (pointer)p->in_tables[3];
 
39998
        pointer it4 = (pointer)p->in_tables[4];
 
39999
        pointer ot0 = (pointer)p->out_tables[0];
 
40000
        pointer ot1 = (pointer)p->out_tables[1];
 
40001
        pointer ot2 = (pointer)p->out_tables[2];
 
40002
        pointer ot3 = (pointer)p->out_tables[3];
 
40003
        pointer im_base = (pointer)p->im_table;
 
40004
 
 
40005
        for(;ip0 < ep; ip0 += 5, op0 += 4) {
 
40006
                unsigned int ova0;      /* Output value accumulator */
 
40007
                unsigned int ova1;      /* Output value accumulator */
 
40008
                unsigned int ova2;      /* Output value accumulator */
 
40009
                unsigned int ova3;      /* Output value accumulator */
 
40010
                {
 
40011
                        pointer imp;
 
40012
                        unsigned int we0;       /* Weighting value variable */
 
40013
                        unsigned int vo0;       /* Vertex offset variable */
 
40014
                        unsigned int we1;       /* Weighting value variable */
 
40015
                        unsigned int vo1;       /* Vertex offset variable */
 
40016
                        unsigned int we2;       /* Weighting value variable */
 
40017
                        unsigned int vo2;       /* Vertex offset variable */
 
40018
                        unsigned int we3;       /* Weighting value variable */
 
40019
                        unsigned int vo3;       /* Vertex offset variable */
 
40020
                        unsigned int we4;       /* Weighting value variable */
 
40021
                        unsigned int vo4;       /* Vertex offset variable */
 
40022
                        {
 
40023
                                unsigned int ti_i;      /* Interpolation index variable */
 
40024
 
 
40025
                                ti_i  = IT_IX(it0, ip0[0]);
 
40026
                                we0   = IT_WE(it0, ip0[0]);
 
40027
                                vo0   = IT_VO(it0, ip0[0]);
 
40028
                                ti_i += IT_IX(it1, ip0[1]);
 
40029
                                we1   = IT_WE(it1, ip0[1]);
 
40030
                                vo1   = IT_VO(it1, ip0[1]);
 
40031
                                ti_i += IT_IX(it2, ip0[2]);
 
40032
                                we2   = IT_WE(it2, ip0[2]);
 
40033
                                vo2   = IT_VO(it2, ip0[2]);
 
40034
                                ti_i += IT_IX(it3, ip0[3]);
 
40035
                                we3   = IT_WE(it3, ip0[3]);
 
40036
                                vo3   = IT_VO(it3, ip0[3]);
 
40037
                                ti_i += IT_IX(it4, ip0[4]);
 
40038
                                we4   = IT_WE(it4, ip0[4]);
 
40039
                                vo4   = IT_VO(it4, ip0[4]);
 
40040
 
 
40041
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
40042
 
 
40043
                                /* Sort weighting values and vertex offset values */
 
40044
                                CEX(we0, vo0, we1, vo1);
 
40045
                                CEX(we0, vo0, we2, vo2);
 
40046
                                CEX(we0, vo0, we3, vo3);
 
40047
                                CEX(we0, vo0, we4, vo4);
 
40048
                                CEX(we1, vo1, we2, vo2);
 
40049
                                CEX(we1, vo1, we3, vo3);
 
40050
                                CEX(we1, vo1, we4, vo4);
 
40051
                                CEX(we2, vo2, we3, vo3);
 
40052
                                CEX(we2, vo2, we4, vo4);
 
40053
                                CEX(we3, vo3, we4, vo4);
 
40054
                        }
 
40055
                        {
 
40056
                                unsigned int vof;       /* Vertex offset value */
 
40057
                                unsigned int vwe;       /* Vertex weighting */
 
40058
 
 
40059
                                vof = 0;                                /* First vertex offset is 0 */
 
40060
                                vwe = 65536 - we0;              /* Baricentric weighting */
 
40061
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
40062
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
40063
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
40064
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
40065
                                vof += vo0;                     /* Move to next vertex */
 
40066
                                vwe = we0 - we1;                /* Baricentric weighting */
 
40067
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
40068
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
40069
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
40070
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
40071
                                vof += vo1;                     /* Move to next vertex */
 
40072
                                vwe = we1 - we2;                /* Baricentric weighting */
 
40073
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
40074
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
40075
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
40076
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
40077
                                vof += vo2;                     /* Move to next vertex */
 
40078
                                vwe = we2 - we3;                /* Baricentric weighting */
 
40079
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
40080
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
40081
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
40082
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
40083
                                vof += vo3;                     /* Move to next vertex */
 
40084
                                vwe = we3 - we4;                /* Baricentric weighting */
 
40085
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
40086
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
40087
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
40088
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
40089
                                vof += vo4;                     /* Move to next vertex */
 
40090
                                vwe = we4;                              /* Baricentric weighting */
 
40091
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
40092
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
40093
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
40094
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
40095
                        }
 
40096
                }
 
40097
                {
 
40098
                        unsigned int oti;       /* Vertex offset value */
 
40099
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
40100
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
40101
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
 
40102
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
40103
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
 
40104
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
40105
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
 
40106
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
40107
                }
 
40108
        }
40800
40109
}
40801
40110
#undef IT_WE
40802
40111
#undef IT_VO
40810
40119
imdi_k116_gen(
40811
40120
genspec *g                      /* structure to be initialised */
40812
40121
) {
40813
 
        static unsigned char data[] = {
40814
 
                0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
40815
 
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
40816
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40817
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40818
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40819
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40820
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40821
 
                0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
40822
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
40823
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
40824
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
40825
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40826
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40827
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40828
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40829
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40830
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40831
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40832
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40833
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
40834
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40835
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40836
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40837
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40838
 
                0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
40839
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
40840
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
40841
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
40842
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40843
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40844
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40845
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40846
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40847
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40848
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40849
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40850
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
40851
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
40852
 
                0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40853
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
40854
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
40855
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
40856
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
40857
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
40858
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
40859
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
40860
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
40861
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
40862
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40863
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
40864
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
40865
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x35, 0x5f, 0x34, 0x5f, 
40866
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
40867
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
40868
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
40869
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
40870
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
40871
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
40872
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
40873
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40874
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40875
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40876
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40877
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
40878
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x31, 
40879
 
                0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40880
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40881
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
40882
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
40883
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
40884
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
40885
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
40886
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
40887
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
40888
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
40889
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
40890
 
                0x00, 0xf0, 0x04, 0x08 
40891
 
        };      /* Structure image */
40892
 
        
40893
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
40122
        static unsigned char data[] = {
 
40123
                0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
40124
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
40125
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40126
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40127
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40128
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40129
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40130
                0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
40131
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
40132
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
40133
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
40134
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40135
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40136
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40137
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40138
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40139
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40140
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40141
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40142
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
40143
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40144
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40145
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40146
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40147
                0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
40148
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
40149
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
40150
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
40151
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40152
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40153
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40154
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40155
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40156
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40157
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40158
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40159
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
40160
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
40161
                0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40162
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
40163
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
40164
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
40165
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
40166
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
40167
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
40168
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
40169
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
40170
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
40171
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40172
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
40173
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
40174
                0x2c, 0xf3, 0xdc, 0xb7, 0x35, 0x5f, 0x34, 0x5f,
 
40175
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
40176
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
40177
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
40178
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
40179
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
40180
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
40181
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
40182
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40183
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40184
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40185
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40186
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
40187
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x31,
 
40188
                0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40189
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40190
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
40191
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
40192
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
40193
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
40194
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
40195
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
40196
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
40197
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
40198
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
40199
                0x00, 0xf0, 0x04, 0x08
 
40200
        };      /* Structure image */
 
40201
 
 
40202
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
40894
40203
}
40895
40204
 
40896
40205
static void
40897
40206
imdi_k116_tab(
40898
40207
tabspec *t                      /* structure to be initialised */
40899
40208
) {
40900
 
        static unsigned char data[] = {
40901
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
40902
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
40903
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
40904
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
40905
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
40906
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
40907
 
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 
40908
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
40909
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
40910
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40911
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
40912
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
40913
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
40914
 
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
40915
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
40916
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40917
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
40918
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
40919
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40920
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40921
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
40922
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
40923
 
                0xff, 0xff, 0xff, 0x34, 0x00, 0x00, 0x00, 0x00, 
40924
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
40925
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40926
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
40927
 
                0x00, 0x00, 0x00, 0x00, 0x52, 0xca, 0x04, 0x08, 
40928
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
40929
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40930
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
40931
 
                0x10, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
40932
 
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
40933
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
40934
 
        };      /* Structure image */
40935
 
        
40936
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
40209
        static unsigned char data[] = {
 
40210
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
40211
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
40212
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
40213
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
40214
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
40215
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
40216
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
 
40217
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
40218
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
40219
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40220
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
40221
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
40222
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
40223
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
40224
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
40225
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40226
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
40227
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
40228
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40229
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40230
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
40231
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
40232
                0xff, 0xff, 0xff, 0x34, 0x00, 0x00, 0x00, 0x00,
 
40233
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
40234
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40235
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40236
                0x00, 0x00, 0x00, 0x00, 0x52, 0xca, 0x04, 0x08,
 
40237
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
40238
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40239
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40240
                0x10, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
40241
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
40242
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
40243
        };      /* Structure image */
 
40244
 
 
40245
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
40937
40246
}
40938
40247
 
40939
 
 
40940
 
 
40941
 
 
40942
 
 
40943
 
 
40944
40248
/* Integer Multi-Dimensional Interpolation */
40945
40249
/* Interpolation Kernel Code */
40946
40250
/* Generated by cgen */
40949
40253
 
40950
40254
/* see the Licence.txt file for licencing details.*/
40951
40255
 
40952
 
 
40953
40256
/*
40954
40257
   Interpolation kernel specs:
40955
40258
 
41046
40349
void **inp,             /* pointer to input pointers */
41047
40350
unsigned int npix       /* Number of pixels to process */
41048
40351
) {
41049
 
        imdi_imp *p = (imdi_imp *)(s->impl);
41050
 
        unsigned short *ip0 = (unsigned short *)inp[0];
41051
 
        unsigned short *op0 = (unsigned short *)outp[0];
41052
 
        unsigned short *ep = ip0 + npix * 6 ;
41053
 
        pointer it0 = (pointer)p->in_tables[0];
41054
 
        pointer it1 = (pointer)p->in_tables[1];
41055
 
        pointer it2 = (pointer)p->in_tables[2];
41056
 
        pointer it3 = (pointer)p->in_tables[3];
41057
 
        pointer it4 = (pointer)p->in_tables[4];
41058
 
        pointer it5 = (pointer)p->in_tables[5];
41059
 
        pointer ot0 = (pointer)p->out_tables[0];
41060
 
        pointer ot1 = (pointer)p->out_tables[1];
41061
 
        pointer ot2 = (pointer)p->out_tables[2];
41062
 
        pointer ot3 = (pointer)p->out_tables[3];
41063
 
        pointer im_base = (pointer)p->im_table;
41064
 
        
41065
 
        for(;ip0 < ep; ip0 += 6, op0 += 4) {
41066
 
                unsigned int ova0;      /* Output value accumulator */
41067
 
                unsigned int ova1;      /* Output value accumulator */
41068
 
                unsigned int ova2;      /* Output value accumulator */
41069
 
                unsigned int ova3;      /* Output value accumulator */
41070
 
                {
41071
 
                        pointer imp;
41072
 
                        unsigned int we0;       /* Weighting value variable */
41073
 
                        unsigned int vo0;       /* Vertex offset variable */
41074
 
                        unsigned int we1;       /* Weighting value variable */
41075
 
                        unsigned int vo1;       /* Vertex offset variable */
41076
 
                        unsigned int we2;       /* Weighting value variable */
41077
 
                        unsigned int vo2;       /* Vertex offset variable */
41078
 
                        unsigned int we3;       /* Weighting value variable */
41079
 
                        unsigned int vo3;       /* Vertex offset variable */
41080
 
                        unsigned int we4;       /* Weighting value variable */
41081
 
                        unsigned int vo4;       /* Vertex offset variable */
41082
 
                        unsigned int we5;       /* Weighting value variable */
41083
 
                        unsigned int vo5;       /* Vertex offset variable */
41084
 
                        {
41085
 
                                unsigned int ti_i;      /* Interpolation index variable */
41086
 
                                
41087
 
                                ti_i  = IT_IX(it0, ip0[0]);
41088
 
                                we0   = IT_WE(it0, ip0[0]);
41089
 
                                vo0   = IT_VO(it0, ip0[0]);
41090
 
                                ti_i += IT_IX(it1, ip0[1]);
41091
 
                                we1   = IT_WE(it1, ip0[1]);
41092
 
                                vo1   = IT_VO(it1, ip0[1]);
41093
 
                                ti_i += IT_IX(it2, ip0[2]);
41094
 
                                we2   = IT_WE(it2, ip0[2]);
41095
 
                                vo2   = IT_VO(it2, ip0[2]);
41096
 
                                ti_i += IT_IX(it3, ip0[3]);
41097
 
                                we3   = IT_WE(it3, ip0[3]);
41098
 
                                vo3   = IT_VO(it3, ip0[3]);
41099
 
                                ti_i += IT_IX(it4, ip0[4]);
41100
 
                                we4   = IT_WE(it4, ip0[4]);
41101
 
                                vo4   = IT_VO(it4, ip0[4]);
41102
 
                                ti_i += IT_IX(it5, ip0[5]);
41103
 
                                we5   = IT_WE(it5, ip0[5]);
41104
 
                                vo5   = IT_VO(it5, ip0[5]);
41105
 
                                
41106
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
41107
 
                                
41108
 
                                /* Sort weighting values and vertex offset values */
41109
 
                                CEX(we0, vo0, we1, vo1);
41110
 
                                CEX(we0, vo0, we2, vo2);
41111
 
                                CEX(we0, vo0, we3, vo3);
41112
 
                                CEX(we0, vo0, we4, vo4);
41113
 
                                CEX(we0, vo0, we5, vo5);
41114
 
                                CEX(we1, vo1, we2, vo2);
41115
 
                                CEX(we1, vo1, we3, vo3);
41116
 
                                CEX(we1, vo1, we4, vo4);
41117
 
                                CEX(we1, vo1, we5, vo5);
41118
 
                                CEX(we2, vo2, we3, vo3);
41119
 
                                CEX(we2, vo2, we4, vo4);
41120
 
                                CEX(we2, vo2, we5, vo5);
41121
 
                                CEX(we3, vo3, we4, vo4);
41122
 
                                CEX(we3, vo3, we5, vo5);
41123
 
                                CEX(we4, vo4, we5, vo5);
41124
 
                        }
41125
 
                        {
41126
 
                                unsigned int vof;       /* Vertex offset value */
41127
 
                                unsigned int vwe;       /* Vertex weighting */
41128
 
                                
41129
 
                                vof = 0;                                /* First vertex offset is 0 */
41130
 
                                vwe = 65536 - we0;              /* Baricentric weighting */
41131
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
41132
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
41133
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
41134
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
41135
 
                                vof += vo0;                     /* Move to next vertex */
41136
 
                                vwe = we0 - we1;                /* Baricentric weighting */
41137
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
41138
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
41139
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
41140
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
41141
 
                                vof += vo1;                     /* Move to next vertex */
41142
 
                                vwe = we1 - we2;                /* Baricentric weighting */
41143
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
41144
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
41145
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
41146
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
41147
 
                                vof += vo2;                     /* Move to next vertex */
41148
 
                                vwe = we2 - we3;                /* Baricentric weighting */
41149
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
41150
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
41151
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
41152
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
41153
 
                                vof += vo3;                     /* Move to next vertex */
41154
 
                                vwe = we3 - we4;                /* Baricentric weighting */
41155
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
41156
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
41157
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
41158
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
41159
 
                                vof += vo4;                     /* Move to next vertex */
41160
 
                                vwe = we4 - we5;                /* Baricentric weighting */
41161
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
41162
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
41163
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
41164
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
41165
 
                                vof += vo5;                     /* Move to next vertex */
41166
 
                                vwe = we5;                              /* Baricentric weighting */
41167
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
41168
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
41169
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
41170
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
41171
 
                        }
41172
 
                }
41173
 
                {
41174
 
                        unsigned int oti;       /* Vertex offset value */
41175
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
41176
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
41177
 
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
41178
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
41179
 
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
41180
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
41181
 
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
41182
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
41183
 
                }
41184
 
        }
 
40352
        imdi_imp *p = (imdi_imp *)(s->impl);
 
40353
        unsigned short *ip0 = (unsigned short *)inp[0];
 
40354
        unsigned short *op0 = (unsigned short *)outp[0];
 
40355
        unsigned short *ep = ip0 + npix * 6 ;
 
40356
        pointer it0 = (pointer)p->in_tables[0];
 
40357
        pointer it1 = (pointer)p->in_tables[1];
 
40358
        pointer it2 = (pointer)p->in_tables[2];
 
40359
        pointer it3 = (pointer)p->in_tables[3];
 
40360
        pointer it4 = (pointer)p->in_tables[4];
 
40361
        pointer it5 = (pointer)p->in_tables[5];
 
40362
        pointer ot0 = (pointer)p->out_tables[0];
 
40363
        pointer ot1 = (pointer)p->out_tables[1];
 
40364
        pointer ot2 = (pointer)p->out_tables[2];
 
40365
        pointer ot3 = (pointer)p->out_tables[3];
 
40366
        pointer im_base = (pointer)p->im_table;
 
40367
 
 
40368
        for(;ip0 < ep; ip0 += 6, op0 += 4) {
 
40369
                unsigned int ova0;      /* Output value accumulator */
 
40370
                unsigned int ova1;      /* Output value accumulator */
 
40371
                unsigned int ova2;      /* Output value accumulator */
 
40372
                unsigned int ova3;      /* Output value accumulator */
 
40373
                {
 
40374
                        pointer imp;
 
40375
                        unsigned int we0;       /* Weighting value variable */
 
40376
                        unsigned int vo0;       /* Vertex offset variable */
 
40377
                        unsigned int we1;       /* Weighting value variable */
 
40378
                        unsigned int vo1;       /* Vertex offset variable */
 
40379
                        unsigned int we2;       /* Weighting value variable */
 
40380
                        unsigned int vo2;       /* Vertex offset variable */
 
40381
                        unsigned int we3;       /* Weighting value variable */
 
40382
                        unsigned int vo3;       /* Vertex offset variable */
 
40383
                        unsigned int we4;       /* Weighting value variable */
 
40384
                        unsigned int vo4;       /* Vertex offset variable */
 
40385
                        unsigned int we5;       /* Weighting value variable */
 
40386
                        unsigned int vo5;       /* Vertex offset variable */
 
40387
                        {
 
40388
                                unsigned int ti_i;      /* Interpolation index variable */
 
40389
 
 
40390
                                ti_i  = IT_IX(it0, ip0[0]);
 
40391
                                we0   = IT_WE(it0, ip0[0]);
 
40392
                                vo0   = IT_VO(it0, ip0[0]);
 
40393
                                ti_i += IT_IX(it1, ip0[1]);
 
40394
                                we1   = IT_WE(it1, ip0[1]);
 
40395
                                vo1   = IT_VO(it1, ip0[1]);
 
40396
                                ti_i += IT_IX(it2, ip0[2]);
 
40397
                                we2   = IT_WE(it2, ip0[2]);
 
40398
                                vo2   = IT_VO(it2, ip0[2]);
 
40399
                                ti_i += IT_IX(it3, ip0[3]);
 
40400
                                we3   = IT_WE(it3, ip0[3]);
 
40401
                                vo3   = IT_VO(it3, ip0[3]);
 
40402
                                ti_i += IT_IX(it4, ip0[4]);
 
40403
                                we4   = IT_WE(it4, ip0[4]);
 
40404
                                vo4   = IT_VO(it4, ip0[4]);
 
40405
                                ti_i += IT_IX(it5, ip0[5]);
 
40406
                                we5   = IT_WE(it5, ip0[5]);
 
40407
                                vo5   = IT_VO(it5, ip0[5]);
 
40408
 
 
40409
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
40410
 
 
40411
                                /* Sort weighting values and vertex offset values */
 
40412
                                CEX(we0, vo0, we1, vo1);
 
40413
                                CEX(we0, vo0, we2, vo2);
 
40414
                                CEX(we0, vo0, we3, vo3);
 
40415
                                CEX(we0, vo0, we4, vo4);
 
40416
                                CEX(we0, vo0, we5, vo5);
 
40417
                                CEX(we1, vo1, we2, vo2);
 
40418
                                CEX(we1, vo1, we3, vo3);
 
40419
                                CEX(we1, vo1, we4, vo4);
 
40420
                                CEX(we1, vo1, we5, vo5);
 
40421
                                CEX(we2, vo2, we3, vo3);
 
40422
                                CEX(we2, vo2, we4, vo4);
 
40423
                                CEX(we2, vo2, we5, vo5);
 
40424
                                CEX(we3, vo3, we4, vo4);
 
40425
                                CEX(we3, vo3, we5, vo5);
 
40426
                                CEX(we4, vo4, we5, vo5);
 
40427
                        }
 
40428
                        {
 
40429
                                unsigned int vof;       /* Vertex offset value */
 
40430
                                unsigned int vwe;       /* Vertex weighting */
 
40431
 
 
40432
                                vof = 0;                                /* First vertex offset is 0 */
 
40433
                                vwe = 65536 - we0;              /* Baricentric weighting */
 
40434
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
40435
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
40436
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
40437
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
40438
                                vof += vo0;                     /* Move to next vertex */
 
40439
                                vwe = we0 - we1;                /* Baricentric weighting */
 
40440
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
40441
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
40442
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
40443
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
40444
                                vof += vo1;                     /* Move to next vertex */
 
40445
                                vwe = we1 - we2;                /* Baricentric weighting */
 
40446
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
40447
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
40448
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
40449
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
40450
                                vof += vo2;                     /* Move to next vertex */
 
40451
                                vwe = we2 - we3;                /* Baricentric weighting */
 
40452
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
40453
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
40454
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
40455
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
40456
                                vof += vo3;                     /* Move to next vertex */
 
40457
                                vwe = we3 - we4;                /* Baricentric weighting */
 
40458
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
40459
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
40460
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
40461
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
40462
                                vof += vo4;                     /* Move to next vertex */
 
40463
                                vwe = we4 - we5;                /* Baricentric weighting */
 
40464
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
40465
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
40466
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
40467
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
40468
                                vof += vo5;                     /* Move to next vertex */
 
40469
                                vwe = we5;                              /* Baricentric weighting */
 
40470
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
40471
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
40472
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
40473
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
40474
                        }
 
40475
                }
 
40476
                {
 
40477
                        unsigned int oti;       /* Vertex offset value */
 
40478
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
40479
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
40480
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
 
40481
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
40482
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
 
40483
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
40484
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
 
40485
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
40486
                }
 
40487
        }
41185
40488
}
41186
40489
#undef IT_WE
41187
40490
#undef IT_VO
41195
40498
imdi_k117_gen(
41196
40499
genspec *g                      /* structure to be initialised */
41197
40500
) {
41198
 
        static unsigned char data[] = {
41199
 
                0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
41200
 
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
41201
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41202
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
41203
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
41204
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
41205
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
41206
 
                0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
41207
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
41208
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
41209
 
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
41210
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41211
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41212
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41213
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41214
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
41215
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
41216
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
41217
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
41218
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
41219
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
41220
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
41221
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
41222
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
41223
 
                0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
41224
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
41225
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
41226
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
41227
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41228
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41229
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41230
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41231
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
41232
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
41233
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
41234
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
41235
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
41236
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
41237
 
                0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41238
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
41239
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
41240
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
41241
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
41242
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
41243
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
41244
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
41245
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
41246
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
41247
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41248
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
41249
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
41250
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x36, 0x5f, 0x34, 0x5f, 
41251
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
41252
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
41253
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
41254
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
41255
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
41256
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
41257
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
41258
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41259
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41260
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41261
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41262
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
41263
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x31, 
41264
 
                0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41265
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41266
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
41267
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
41268
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
41269
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
41270
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
41271
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
41272
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
41273
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
41274
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
41275
 
                0x00, 0xf0, 0x04, 0x08 
41276
 
        };      /* Structure image */
41277
 
        
41278
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
40501
        static unsigned char data[] = {
 
40502
                0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
40503
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
40504
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40505
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40506
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40507
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40508
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40509
                0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
40510
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
40511
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
40512
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
40513
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40514
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40515
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40516
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40517
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40518
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40519
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40520
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40521
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
40522
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40523
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40524
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40525
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40526
                0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
40527
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
40528
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
40529
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
40530
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40531
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40532
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40533
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40534
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40535
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40536
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40537
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40538
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
40539
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
40540
                0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40541
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
40542
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
40543
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
40544
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
40545
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
40546
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
40547
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
40548
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
40549
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
40550
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40551
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
40552
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
40553
                0x2c, 0xf3, 0xdc, 0xb7, 0x36, 0x5f, 0x34, 0x5f,
 
40554
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
40555
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
40556
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
40557
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
40558
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
40559
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
40560
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
40561
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40562
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40563
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40564
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40565
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
40566
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x31,
 
40567
                0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40568
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40569
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
40570
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
40571
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
40572
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
40573
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
40574
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
40575
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
40576
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
40577
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
40578
                0x00, 0xf0, 0x04, 0x08
 
40579
        };      /* Structure image */
 
40580
 
 
40581
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
41279
40582
}
41280
40583
 
41281
40584
static void
41282
40585
imdi_k117_tab(
41283
40586
tabspec *t                      /* structure to be initialised */
41284
40587
) {
41285
 
        static unsigned char data[] = {
41286
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
41287
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
41288
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
41289
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
41290
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
41291
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
41292
 
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 
41293
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
41294
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
41295
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41296
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
41297
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
41298
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
41299
 
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
41300
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
41301
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41302
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
41303
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
41304
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41305
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41306
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
41307
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
41308
 
                0xff, 0xff, 0xff, 0x34, 0x00, 0x00, 0x00, 0x00, 
41309
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
41310
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41311
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41312
 
                0x00, 0x00, 0x00, 0x00, 0x52, 0xca, 0x04, 0x08, 
41313
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
41314
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
41315
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
41316
 
                0x10, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
41317
 
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
41318
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
41319
 
        };      /* Structure image */
41320
 
        
41321
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
40588
        static unsigned char data[] = {
 
40589
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
40590
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
40591
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
40592
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
40593
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
40594
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
40595
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
 
40596
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
40597
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
40598
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40599
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
40600
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
40601
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
40602
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
40603
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
40604
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40605
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
40606
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
40607
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40608
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40609
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
40610
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
40611
                0xff, 0xff, 0xff, 0x34, 0x00, 0x00, 0x00, 0x00,
 
40612
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
40613
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40614
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40615
                0x00, 0x00, 0x00, 0x00, 0x52, 0xca, 0x04, 0x08,
 
40616
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
40617
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40618
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40619
                0x10, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
40620
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
40621
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
40622
        };      /* Structure image */
 
40623
 
 
40624
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
41322
40625
}
41323
40626
 
41324
 
 
41325
 
 
41326
 
 
41327
 
 
41328
 
 
41329
40627
/* Integer Multi-Dimensional Interpolation */
41330
40628
/* Interpolation Kernel Code */
41331
40629
/* Generated by cgen */
41334
40632
 
41335
40633
/* see the Licence.txt file for licencing details.*/
41336
40634
 
41337
 
 
41338
40635
/*
41339
40636
   Interpolation kernel specs:
41340
40637
 
41433
40730
void **inp,             /* pointer to input pointers */
41434
40731
unsigned int npix       /* Number of pixels to process */
41435
40732
) {
41436
 
        imdi_imp *p = (imdi_imp *)(s->impl);
41437
 
        unsigned short *ip0 = (unsigned short *)inp[0];
41438
 
        unsigned short *op0 = (unsigned short *)outp[0];
41439
 
        unsigned short *ep = ip0 + npix * 7 ;
41440
 
        pointer it0 = (pointer)p->in_tables[0];
41441
 
        pointer it1 = (pointer)p->in_tables[1];
41442
 
        pointer it2 = (pointer)p->in_tables[2];
41443
 
        pointer it3 = (pointer)p->in_tables[3];
41444
 
        pointer it4 = (pointer)p->in_tables[4];
41445
 
        pointer it5 = (pointer)p->in_tables[5];
41446
 
        pointer it6 = (pointer)p->in_tables[6];
41447
 
        pointer ot0 = (pointer)p->out_tables[0];
41448
 
        pointer ot1 = (pointer)p->out_tables[1];
41449
 
        pointer ot2 = (pointer)p->out_tables[2];
41450
 
        pointer ot3 = (pointer)p->out_tables[3];
41451
 
        pointer im_base = (pointer)p->im_table;
41452
 
        
41453
 
        for(;ip0 < ep; ip0 += 7, op0 += 4) {
41454
 
                unsigned int ova0;      /* Output value accumulator */
41455
 
                unsigned int ova1;      /* Output value accumulator */
41456
 
                unsigned int ova2;      /* Output value accumulator */
41457
 
                unsigned int ova3;      /* Output value accumulator */
41458
 
                {
41459
 
                        pointer imp;
41460
 
                        unsigned int we0;       /* Weighting value variable */
41461
 
                        unsigned int vo0;       /* Vertex offset variable */
41462
 
                        unsigned int we1;       /* Weighting value variable */
41463
 
                        unsigned int vo1;       /* Vertex offset variable */
41464
 
                        unsigned int we2;       /* Weighting value variable */
41465
 
                        unsigned int vo2;       /* Vertex offset variable */
41466
 
                        unsigned int we3;       /* Weighting value variable */
41467
 
                        unsigned int vo3;       /* Vertex offset variable */
41468
 
                        unsigned int we4;       /* Weighting value variable */
41469
 
                        unsigned int vo4;       /* Vertex offset variable */
41470
 
                        unsigned int we5;       /* Weighting value variable */
41471
 
                        unsigned int vo5;       /* Vertex offset variable */
41472
 
                        unsigned int we6;       /* Weighting value variable */
41473
 
                        unsigned int vo6;       /* Vertex offset variable */
41474
 
                        {
41475
 
                                unsigned int ti_i;      /* Interpolation index variable */
41476
 
                                
41477
 
                                ti_i  = IT_IX(it0, ip0[0]);
41478
 
                                we0   = IT_WE(it0, ip0[0]);
41479
 
                                vo0   = IT_VO(it0, ip0[0]);
41480
 
                                ti_i += IT_IX(it1, ip0[1]);
41481
 
                                we1   = IT_WE(it1, ip0[1]);
41482
 
                                vo1   = IT_VO(it1, ip0[1]);
41483
 
                                ti_i += IT_IX(it2, ip0[2]);
41484
 
                                we2   = IT_WE(it2, ip0[2]);
41485
 
                                vo2   = IT_VO(it2, ip0[2]);
41486
 
                                ti_i += IT_IX(it3, ip0[3]);
41487
 
                                we3   = IT_WE(it3, ip0[3]);
41488
 
                                vo3   = IT_VO(it3, ip0[3]);
41489
 
                                ti_i += IT_IX(it4, ip0[4]);
41490
 
                                we4   = IT_WE(it4, ip0[4]);
41491
 
                                vo4   = IT_VO(it4, ip0[4]);
41492
 
                                ti_i += IT_IX(it5, ip0[5]);
41493
 
                                we5   = IT_WE(it5, ip0[5]);
41494
 
                                vo5   = IT_VO(it5, ip0[5]);
41495
 
                                ti_i += IT_IX(it6, ip0[6]);
41496
 
                                we6   = IT_WE(it6, ip0[6]);
41497
 
                                vo6   = IT_VO(it6, ip0[6]);
41498
 
                                
41499
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
41500
 
                                
41501
 
                                /* Sort weighting values and vertex offset values */
41502
 
                                CEX(we0, vo0, we1, vo1);
41503
 
                                CEX(we0, vo0, we2, vo2);
41504
 
                                CEX(we0, vo0, we3, vo3);
41505
 
                                CEX(we0, vo0, we4, vo4);
41506
 
                                CEX(we0, vo0, we5, vo5);
41507
 
                                CEX(we0, vo0, we6, vo6);
41508
 
                                CEX(we1, vo1, we2, vo2);
41509
 
                                CEX(we1, vo1, we3, vo3);
41510
 
                                CEX(we1, vo1, we4, vo4);
41511
 
                                CEX(we1, vo1, we5, vo5);
41512
 
                                CEX(we1, vo1, we6, vo6);
41513
 
                                CEX(we2, vo2, we3, vo3);
41514
 
                                CEX(we2, vo2, we4, vo4);
41515
 
                                CEX(we2, vo2, we5, vo5);
41516
 
                                CEX(we2, vo2, we6, vo6);
41517
 
                                CEX(we3, vo3, we4, vo4);
41518
 
                                CEX(we3, vo3, we5, vo5);
41519
 
                                CEX(we3, vo3, we6, vo6);
41520
 
                                CEX(we4, vo4, we5, vo5);
41521
 
                                CEX(we4, vo4, we6, vo6);
41522
 
                                CEX(we5, vo5, we6, vo6);
41523
 
                        }
41524
 
                        {
41525
 
                                unsigned int vof;       /* Vertex offset value */
41526
 
                                unsigned int vwe;       /* Vertex weighting */
41527
 
                                
41528
 
                                vof = 0;                                /* First vertex offset is 0 */
41529
 
                                vwe = 65536 - we0;              /* Baricentric weighting */
41530
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
41531
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
41532
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
41533
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
41534
 
                                vof += vo0;                     /* Move to next vertex */
41535
 
                                vwe = we0 - we1;                /* Baricentric weighting */
41536
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
41537
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
41538
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
41539
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
41540
 
                                vof += vo1;                     /* Move to next vertex */
41541
 
                                vwe = we1 - we2;                /* Baricentric weighting */
41542
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
41543
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
41544
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
41545
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
41546
 
                                vof += vo2;                     /* Move to next vertex */
41547
 
                                vwe = we2 - we3;                /* Baricentric weighting */
41548
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
41549
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
41550
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
41551
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
41552
 
                                vof += vo3;                     /* Move to next vertex */
41553
 
                                vwe = we3 - we4;                /* Baricentric weighting */
41554
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
41555
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
41556
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
41557
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
41558
 
                                vof += vo4;                     /* Move to next vertex */
41559
 
                                vwe = we4 - we5;                /* Baricentric weighting */
41560
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
41561
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
41562
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
41563
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
41564
 
                                vof += vo5;                     /* Move to next vertex */
41565
 
                                vwe = we5 - we6;                /* Baricentric weighting */
41566
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
41567
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
41568
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
41569
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
41570
 
                                vof += vo6;                     /* Move to next vertex */
41571
 
                                vwe = we6;                              /* Baricentric weighting */
41572
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
41573
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
41574
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
41575
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
41576
 
                        }
41577
 
                }
41578
 
                {
41579
 
                        unsigned int oti;       /* Vertex offset value */
41580
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
41581
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
41582
 
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
41583
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
41584
 
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
41585
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
41586
 
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
41587
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
41588
 
                }
41589
 
        }
 
40733
        imdi_imp *p = (imdi_imp *)(s->impl);
 
40734
        unsigned short *ip0 = (unsigned short *)inp[0];
 
40735
        unsigned short *op0 = (unsigned short *)outp[0];
 
40736
        unsigned short *ep = ip0 + npix * 7 ;
 
40737
        pointer it0 = (pointer)p->in_tables[0];
 
40738
        pointer it1 = (pointer)p->in_tables[1];
 
40739
        pointer it2 = (pointer)p->in_tables[2];
 
40740
        pointer it3 = (pointer)p->in_tables[3];
 
40741
        pointer it4 = (pointer)p->in_tables[4];
 
40742
        pointer it5 = (pointer)p->in_tables[5];
 
40743
        pointer it6 = (pointer)p->in_tables[6];
 
40744
        pointer ot0 = (pointer)p->out_tables[0];
 
40745
        pointer ot1 = (pointer)p->out_tables[1];
 
40746
        pointer ot2 = (pointer)p->out_tables[2];
 
40747
        pointer ot3 = (pointer)p->out_tables[3];
 
40748
        pointer im_base = (pointer)p->im_table;
 
40749
 
 
40750
        for(;ip0 < ep; ip0 += 7, op0 += 4) {
 
40751
                unsigned int ova0;      /* Output value accumulator */
 
40752
                unsigned int ova1;      /* Output value accumulator */
 
40753
                unsigned int ova2;      /* Output value accumulator */
 
40754
                unsigned int ova3;      /* Output value accumulator */
 
40755
                {
 
40756
                        pointer imp;
 
40757
                        unsigned int we0;       /* Weighting value variable */
 
40758
                        unsigned int vo0;       /* Vertex offset variable */
 
40759
                        unsigned int we1;       /* Weighting value variable */
 
40760
                        unsigned int vo1;       /* Vertex offset variable */
 
40761
                        unsigned int we2;       /* Weighting value variable */
 
40762
                        unsigned int vo2;       /* Vertex offset variable */
 
40763
                        unsigned int we3;       /* Weighting value variable */
 
40764
                        unsigned int vo3;       /* Vertex offset variable */
 
40765
                        unsigned int we4;       /* Weighting value variable */
 
40766
                        unsigned int vo4;       /* Vertex offset variable */
 
40767
                        unsigned int we5;       /* Weighting value variable */
 
40768
                        unsigned int vo5;       /* Vertex offset variable */
 
40769
                        unsigned int we6;       /* Weighting value variable */
 
40770
                        unsigned int vo6;       /* Vertex offset variable */
 
40771
                        {
 
40772
                                unsigned int ti_i;      /* Interpolation index variable */
 
40773
 
 
40774
                                ti_i  = IT_IX(it0, ip0[0]);
 
40775
                                we0   = IT_WE(it0, ip0[0]);
 
40776
                                vo0   = IT_VO(it0, ip0[0]);
 
40777
                                ti_i += IT_IX(it1, ip0[1]);
 
40778
                                we1   = IT_WE(it1, ip0[1]);
 
40779
                                vo1   = IT_VO(it1, ip0[1]);
 
40780
                                ti_i += IT_IX(it2, ip0[2]);
 
40781
                                we2   = IT_WE(it2, ip0[2]);
 
40782
                                vo2   = IT_VO(it2, ip0[2]);
 
40783
                                ti_i += IT_IX(it3, ip0[3]);
 
40784
                                we3   = IT_WE(it3, ip0[3]);
 
40785
                                vo3   = IT_VO(it3, ip0[3]);
 
40786
                                ti_i += IT_IX(it4, ip0[4]);
 
40787
                                we4   = IT_WE(it4, ip0[4]);
 
40788
                                vo4   = IT_VO(it4, ip0[4]);
 
40789
                                ti_i += IT_IX(it5, ip0[5]);
 
40790
                                we5   = IT_WE(it5, ip0[5]);
 
40791
                                vo5   = IT_VO(it5, ip0[5]);
 
40792
                                ti_i += IT_IX(it6, ip0[6]);
 
40793
                                we6   = IT_WE(it6, ip0[6]);
 
40794
                                vo6   = IT_VO(it6, ip0[6]);
 
40795
 
 
40796
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
40797
 
 
40798
                                /* Sort weighting values and vertex offset values */
 
40799
                                CEX(we0, vo0, we1, vo1);
 
40800
                                CEX(we0, vo0, we2, vo2);
 
40801
                                CEX(we0, vo0, we3, vo3);
 
40802
                                CEX(we0, vo0, we4, vo4);
 
40803
                                CEX(we0, vo0, we5, vo5);
 
40804
                                CEX(we0, vo0, we6, vo6);
 
40805
                                CEX(we1, vo1, we2, vo2);
 
40806
                                CEX(we1, vo1, we3, vo3);
 
40807
                                CEX(we1, vo1, we4, vo4);
 
40808
                                CEX(we1, vo1, we5, vo5);
 
40809
                                CEX(we1, vo1, we6, vo6);
 
40810
                                CEX(we2, vo2, we3, vo3);
 
40811
                                CEX(we2, vo2, we4, vo4);
 
40812
                                CEX(we2, vo2, we5, vo5);
 
40813
                                CEX(we2, vo2, we6, vo6);
 
40814
                                CEX(we3, vo3, we4, vo4);
 
40815
                                CEX(we3, vo3, we5, vo5);
 
40816
                                CEX(we3, vo3, we6, vo6);
 
40817
                                CEX(we4, vo4, we5, vo5);
 
40818
                                CEX(we4, vo4, we6, vo6);
 
40819
                                CEX(we5, vo5, we6, vo6);
 
40820
                        }
 
40821
                        {
 
40822
                                unsigned int vof;       /* Vertex offset value */
 
40823
                                unsigned int vwe;       /* Vertex weighting */
 
40824
 
 
40825
                                vof = 0;                                /* First vertex offset is 0 */
 
40826
                                vwe = 65536 - we0;              /* Baricentric weighting */
 
40827
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
40828
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
40829
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
40830
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
40831
                                vof += vo0;                     /* Move to next vertex */
 
40832
                                vwe = we0 - we1;                /* Baricentric weighting */
 
40833
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
40834
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
40835
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
40836
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
40837
                                vof += vo1;                     /* Move to next vertex */
 
40838
                                vwe = we1 - we2;                /* Baricentric weighting */
 
40839
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
40840
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
40841
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
40842
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
40843
                                vof += vo2;                     /* Move to next vertex */
 
40844
                                vwe = we2 - we3;                /* Baricentric weighting */
 
40845
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
40846
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
40847
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
40848
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
40849
                                vof += vo3;                     /* Move to next vertex */
 
40850
                                vwe = we3 - we4;                /* Baricentric weighting */
 
40851
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
40852
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
40853
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
40854
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
40855
                                vof += vo4;                     /* Move to next vertex */
 
40856
                                vwe = we4 - we5;                /* Baricentric weighting */
 
40857
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
40858
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
40859
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
40860
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
40861
                                vof += vo5;                     /* Move to next vertex */
 
40862
                                vwe = we5 - we6;                /* Baricentric weighting */
 
40863
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
40864
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
40865
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
40866
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
40867
                                vof += vo6;                     /* Move to next vertex */
 
40868
                                vwe = we6;                              /* Baricentric weighting */
 
40869
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
40870
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
40871
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
40872
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
40873
                        }
 
40874
                }
 
40875
                {
 
40876
                        unsigned int oti;       /* Vertex offset value */
 
40877
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
40878
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
40879
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
 
40880
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
40881
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
 
40882
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
40883
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
 
40884
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
40885
                }
 
40886
        }
41590
40887
}
41591
40888
#undef IT_WE
41592
40889
#undef IT_VO
41600
40897
imdi_k118_gen(
41601
40898
genspec *g                      /* structure to be initialised */
41602
40899
) {
41603
 
        static unsigned char data[] = {
41604
 
                0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
41605
 
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
41606
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41607
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
41608
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
41609
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
41610
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
41611
 
                0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
41612
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
41613
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
41614
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
41615
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41616
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41617
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41618
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41619
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
41620
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
41621
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
41622
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
41623
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
41624
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
41625
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
41626
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
41627
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
41628
 
                0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
41629
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
41630
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
41631
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
41632
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41633
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41634
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41635
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41636
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
41637
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
41638
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
41639
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
41640
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
41641
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
41642
 
                0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41643
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
41644
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
41645
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
41646
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
41647
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
41648
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
41649
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
41650
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
41651
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
41652
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41653
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
41654
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
41655
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x37, 0x5f, 0x34, 0x5f, 
41656
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
41657
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
41658
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
41659
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
41660
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
41661
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
41662
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
41663
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41664
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41665
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41666
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41667
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
41668
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x31, 
41669
 
                0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41670
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41671
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
41672
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
41673
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
41674
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
41675
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
41676
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
41677
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
41678
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
41679
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
41680
 
                0x00, 0xf0, 0x04, 0x08 
41681
 
        };      /* Structure image */
41682
 
        
41683
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
40900
        static unsigned char data[] = {
 
40901
                0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
40902
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
40903
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40904
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40905
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40906
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40907
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40908
                0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
40909
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
40910
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
40911
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
40912
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40913
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40914
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40915
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40916
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40917
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40918
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40919
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40920
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
40921
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40922
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40923
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40924
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40925
                0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
40926
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
40927
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
40928
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
40929
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40930
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40931
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40932
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40933
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40934
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40935
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40936
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
40937
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
40938
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
40939
                0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40940
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
40941
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
40942
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
40943
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
40944
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
40945
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
40946
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
40947
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
40948
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
40949
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40950
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
40951
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
40952
                0x2c, 0xf3, 0xdc, 0xb7, 0x37, 0x5f, 0x34, 0x5f,
 
40953
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
40954
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
40955
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
40956
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
40957
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
40958
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
40959
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
40960
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40961
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40962
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40963
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40964
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
40965
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x31,
 
40966
                0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40967
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40968
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
40969
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
40970
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
40971
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
40972
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
40973
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
40974
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
40975
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
40976
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
40977
                0x00, 0xf0, 0x04, 0x08
 
40978
        };      /* Structure image */
 
40979
 
 
40980
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
41684
40981
}
41685
40982
 
41686
40983
static void
41687
40984
imdi_k118_tab(
41688
40985
tabspec *t                      /* structure to be initialised */
41689
40986
) {
41690
 
        static unsigned char data[] = {
41691
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
41692
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
41693
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
41694
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
41695
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
41696
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
41697
 
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 
41698
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
41699
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
41700
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41701
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
41702
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
41703
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
41704
 
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
41705
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
41706
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41707
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
41708
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
41709
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41710
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41711
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
41712
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
41713
 
                0xff, 0xff, 0xff, 0x34, 0x00, 0x00, 0x00, 0x00, 
41714
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
41715
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41716
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
41717
 
                0x00, 0x00, 0x00, 0x00, 0x52, 0xca, 0x04, 0x08, 
41718
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
41719
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
41720
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
41721
 
                0x10, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
41722
 
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
41723
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
41724
 
        };      /* Structure image */
41725
 
        
41726
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
40987
        static unsigned char data[] = {
 
40988
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
40989
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
40990
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
40991
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
40992
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
40993
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
40994
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
 
40995
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
40996
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
40997
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
40998
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
40999
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
41000
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
41001
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
41002
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
41003
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41004
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
41005
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
41006
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41007
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41008
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
41009
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
41010
                0xff, 0xff, 0xff, 0x34, 0x00, 0x00, 0x00, 0x00,
 
41011
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
41012
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41013
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41014
                0x00, 0x00, 0x00, 0x00, 0x52, 0xca, 0x04, 0x08,
 
41015
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
41016
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41017
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41018
                0x10, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
41019
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
41020
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
41021
        };      /* Structure image */
 
41022
 
 
41023
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
41727
41024
}
41728
41025
 
41729
 
 
41730
 
 
41731
 
 
41732
 
 
41733
 
 
41734
41026
/* Integer Multi-Dimensional Interpolation */
41735
41027
/* Interpolation Kernel Code */
41736
41028
/* Generated by cgen */
41739
41031
 
41740
41032
/* see the Licence.txt file for licencing details.*/
41741
41033
 
41742
 
 
41743
41034
/*
41744
41035
   Interpolation kernel specs:
41745
41036
 
41840
41131
void **inp,             /* pointer to input pointers */
41841
41132
unsigned int npix       /* Number of pixels to process */
41842
41133
) {
41843
 
        imdi_imp *p = (imdi_imp *)(s->impl);
41844
 
        unsigned short *ip0 = (unsigned short *)inp[0];
41845
 
        unsigned short *op0 = (unsigned short *)outp[0];
41846
 
        unsigned short *ep = ip0 + npix * 8 ;
41847
 
        pointer it0 = (pointer)p->in_tables[0];
41848
 
        pointer it1 = (pointer)p->in_tables[1];
41849
 
        pointer it2 = (pointer)p->in_tables[2];
41850
 
        pointer it3 = (pointer)p->in_tables[3];
41851
 
        pointer it4 = (pointer)p->in_tables[4];
41852
 
        pointer it5 = (pointer)p->in_tables[5];
41853
 
        pointer it6 = (pointer)p->in_tables[6];
41854
 
        pointer it7 = (pointer)p->in_tables[7];
41855
 
        pointer ot0 = (pointer)p->out_tables[0];
41856
 
        pointer ot1 = (pointer)p->out_tables[1];
41857
 
        pointer ot2 = (pointer)p->out_tables[2];
41858
 
        pointer ot3 = (pointer)p->out_tables[3];
41859
 
        pointer im_base = (pointer)p->im_table;
41860
 
        
41861
 
        for(;ip0 < ep; ip0 += 8, op0 += 4) {
41862
 
                unsigned int ova0;      /* Output value accumulator */
41863
 
                unsigned int ova1;      /* Output value accumulator */
41864
 
                unsigned int ova2;      /* Output value accumulator */
41865
 
                unsigned int ova3;      /* Output value accumulator */
41866
 
                {
41867
 
                        pointer imp;
41868
 
                        unsigned int we0;       /* Weighting value variable */
41869
 
                        unsigned int vo0;       /* Vertex offset variable */
41870
 
                        unsigned int we1;       /* Weighting value variable */
41871
 
                        unsigned int vo1;       /* Vertex offset variable */
41872
 
                        unsigned int we2;       /* Weighting value variable */
41873
 
                        unsigned int vo2;       /* Vertex offset variable */
41874
 
                        unsigned int we3;       /* Weighting value variable */
41875
 
                        unsigned int vo3;       /* Vertex offset variable */
41876
 
                        unsigned int we4;       /* Weighting value variable */
41877
 
                        unsigned int vo4;       /* Vertex offset variable */
41878
 
                        unsigned int we5;       /* Weighting value variable */
41879
 
                        unsigned int vo5;       /* Vertex offset variable */
41880
 
                        unsigned int we6;       /* Weighting value variable */
41881
 
                        unsigned int vo6;       /* Vertex offset variable */
41882
 
                        unsigned int we7;       /* Weighting value variable */
41883
 
                        unsigned int vo7;       /* Vertex offset variable */
41884
 
                        {
41885
 
                                unsigned int ti_i;      /* Interpolation index variable */
41886
 
                                
41887
 
                                ti_i  = IT_IX(it0, ip0[0]);
41888
 
                                we0   = IT_WE(it0, ip0[0]);
41889
 
                                vo0   = IT_VO(it0, ip0[0]);
41890
 
                                ti_i += IT_IX(it1, ip0[1]);
41891
 
                                we1   = IT_WE(it1, ip0[1]);
41892
 
                                vo1   = IT_VO(it1, ip0[1]);
41893
 
                                ti_i += IT_IX(it2, ip0[2]);
41894
 
                                we2   = IT_WE(it2, ip0[2]);
41895
 
                                vo2   = IT_VO(it2, ip0[2]);
41896
 
                                ti_i += IT_IX(it3, ip0[3]);
41897
 
                                we3   = IT_WE(it3, ip0[3]);
41898
 
                                vo3   = IT_VO(it3, ip0[3]);
41899
 
                                ti_i += IT_IX(it4, ip0[4]);
41900
 
                                we4   = IT_WE(it4, ip0[4]);
41901
 
                                vo4   = IT_VO(it4, ip0[4]);
41902
 
                                ti_i += IT_IX(it5, ip0[5]);
41903
 
                                we5   = IT_WE(it5, ip0[5]);
41904
 
                                vo5   = IT_VO(it5, ip0[5]);
41905
 
                                ti_i += IT_IX(it6, ip0[6]);
41906
 
                                we6   = IT_WE(it6, ip0[6]);
41907
 
                                vo6   = IT_VO(it6, ip0[6]);
41908
 
                                ti_i += IT_IX(it7, ip0[7]);
41909
 
                                we7   = IT_WE(it7, ip0[7]);
41910
 
                                vo7   = IT_VO(it7, ip0[7]);
41911
 
                                
41912
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
41913
 
                                
41914
 
                                /* Sort weighting values and vertex offset values */
41915
 
                                CEX(we0, vo0, we1, vo1);
41916
 
                                CEX(we0, vo0, we2, vo2);
41917
 
                                CEX(we0, vo0, we3, vo3);
41918
 
                                CEX(we0, vo0, we4, vo4);
41919
 
                                CEX(we0, vo0, we5, vo5);
41920
 
                                CEX(we0, vo0, we6, vo6);
41921
 
                                CEX(we0, vo0, we7, vo7);
41922
 
                                CEX(we1, vo1, we2, vo2);
41923
 
                                CEX(we1, vo1, we3, vo3);
41924
 
                                CEX(we1, vo1, we4, vo4);
41925
 
                                CEX(we1, vo1, we5, vo5);
41926
 
                                CEX(we1, vo1, we6, vo6);
41927
 
                                CEX(we1, vo1, we7, vo7);
41928
 
                                CEX(we2, vo2, we3, vo3);
41929
 
                                CEX(we2, vo2, we4, vo4);
41930
 
                                CEX(we2, vo2, we5, vo5);
41931
 
                                CEX(we2, vo2, we6, vo6);
41932
 
                                CEX(we2, vo2, we7, vo7);
41933
 
                                CEX(we3, vo3, we4, vo4);
41934
 
                                CEX(we3, vo3, we5, vo5);
41935
 
                                CEX(we3, vo3, we6, vo6);
41936
 
                                CEX(we3, vo3, we7, vo7);
41937
 
                                CEX(we4, vo4, we5, vo5);
41938
 
                                CEX(we4, vo4, we6, vo6);
41939
 
                                CEX(we4, vo4, we7, vo7);
41940
 
                                CEX(we5, vo5, we6, vo6);
41941
 
                                CEX(we5, vo5, we7, vo7);
41942
 
                                CEX(we6, vo6, we7, vo7);
41943
 
                        }
41944
 
                        {
41945
 
                                unsigned int vof;       /* Vertex offset value */
41946
 
                                unsigned int vwe;       /* Vertex weighting */
41947
 
                                
41948
 
                                vof = 0;                                /* First vertex offset is 0 */
41949
 
                                vwe = 65536 - we0;              /* Baricentric weighting */
41950
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
41951
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
41952
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
41953
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
41954
 
                                vof += vo0;                     /* Move to next vertex */
41955
 
                                vwe = we0 - we1;                /* Baricentric weighting */
41956
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
41957
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
41958
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
41959
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
41960
 
                                vof += vo1;                     /* Move to next vertex */
41961
 
                                vwe = we1 - we2;                /* Baricentric weighting */
41962
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
41963
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
41964
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
41965
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
41966
 
                                vof += vo2;                     /* Move to next vertex */
41967
 
                                vwe = we2 - we3;                /* Baricentric weighting */
41968
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
41969
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
41970
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
41971
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
41972
 
                                vof += vo3;                     /* Move to next vertex */
41973
 
                                vwe = we3 - we4;                /* Baricentric weighting */
41974
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
41975
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
41976
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
41977
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
41978
 
                                vof += vo4;                     /* Move to next vertex */
41979
 
                                vwe = we4 - we5;                /* Baricentric weighting */
41980
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
41981
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
41982
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
41983
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
41984
 
                                vof += vo5;                     /* Move to next vertex */
41985
 
                                vwe = we5 - we6;                /* Baricentric weighting */
41986
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
41987
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
41988
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
41989
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
41990
 
                                vof += vo6;                     /* Move to next vertex */
41991
 
                                vwe = we6 - we7;                /* Baricentric weighting */
41992
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
41993
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
41994
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
41995
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
41996
 
                                vof += vo7;                     /* Move to next vertex */
41997
 
                                vwe = we7;                              /* Baricentric weighting */
41998
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
41999
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
42000
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
42001
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
42002
 
                        }
42003
 
                }
42004
 
                {
42005
 
                        unsigned int oti;       /* Vertex offset value */
42006
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
42007
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
42008
 
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
42009
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
42010
 
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
42011
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
42012
 
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
42013
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
42014
 
                }
42015
 
        }
 
41134
        imdi_imp *p = (imdi_imp *)(s->impl);
 
41135
        unsigned short *ip0 = (unsigned short *)inp[0];
 
41136
        unsigned short *op0 = (unsigned short *)outp[0];
 
41137
        unsigned short *ep = ip0 + npix * 8 ;
 
41138
        pointer it0 = (pointer)p->in_tables[0];
 
41139
        pointer it1 = (pointer)p->in_tables[1];
 
41140
        pointer it2 = (pointer)p->in_tables[2];
 
41141
        pointer it3 = (pointer)p->in_tables[3];
 
41142
        pointer it4 = (pointer)p->in_tables[4];
 
41143
        pointer it5 = (pointer)p->in_tables[5];
 
41144
        pointer it6 = (pointer)p->in_tables[6];
 
41145
        pointer it7 = (pointer)p->in_tables[7];
 
41146
        pointer ot0 = (pointer)p->out_tables[0];
 
41147
        pointer ot1 = (pointer)p->out_tables[1];
 
41148
        pointer ot2 = (pointer)p->out_tables[2];
 
41149
        pointer ot3 = (pointer)p->out_tables[3];
 
41150
        pointer im_base = (pointer)p->im_table;
 
41151
 
 
41152
        for(;ip0 < ep; ip0 += 8, op0 += 4) {
 
41153
                unsigned int ova0;      /* Output value accumulator */
 
41154
                unsigned int ova1;      /* Output value accumulator */
 
41155
                unsigned int ova2;      /* Output value accumulator */
 
41156
                unsigned int ova3;      /* Output value accumulator */
 
41157
                {
 
41158
                        pointer imp;
 
41159
                        unsigned int we0;       /* Weighting value variable */
 
41160
                        unsigned int vo0;       /* Vertex offset variable */
 
41161
                        unsigned int we1;       /* Weighting value variable */
 
41162
                        unsigned int vo1;       /* Vertex offset variable */
 
41163
                        unsigned int we2;       /* Weighting value variable */
 
41164
                        unsigned int vo2;       /* Vertex offset variable */
 
41165
                        unsigned int we3;       /* Weighting value variable */
 
41166
                        unsigned int vo3;       /* Vertex offset variable */
 
41167
                        unsigned int we4;       /* Weighting value variable */
 
41168
                        unsigned int vo4;       /* Vertex offset variable */
 
41169
                        unsigned int we5;       /* Weighting value variable */
 
41170
                        unsigned int vo5;       /* Vertex offset variable */
 
41171
                        unsigned int we6;       /* Weighting value variable */
 
41172
                        unsigned int vo6;       /* Vertex offset variable */
 
41173
                        unsigned int we7;       /* Weighting value variable */
 
41174
                        unsigned int vo7;       /* Vertex offset variable */
 
41175
                        {
 
41176
                                unsigned int ti_i;      /* Interpolation index variable */
 
41177
 
 
41178
                                ti_i  = IT_IX(it0, ip0[0]);
 
41179
                                we0   = IT_WE(it0, ip0[0]);
 
41180
                                vo0   = IT_VO(it0, ip0[0]);
 
41181
                                ti_i += IT_IX(it1, ip0[1]);
 
41182
                                we1   = IT_WE(it1, ip0[1]);
 
41183
                                vo1   = IT_VO(it1, ip0[1]);
 
41184
                                ti_i += IT_IX(it2, ip0[2]);
 
41185
                                we2   = IT_WE(it2, ip0[2]);
 
41186
                                vo2   = IT_VO(it2, ip0[2]);
 
41187
                                ti_i += IT_IX(it3, ip0[3]);
 
41188
                                we3   = IT_WE(it3, ip0[3]);
 
41189
                                vo3   = IT_VO(it3, ip0[3]);
 
41190
                                ti_i += IT_IX(it4, ip0[4]);
 
41191
                                we4   = IT_WE(it4, ip0[4]);
 
41192
                                vo4   = IT_VO(it4, ip0[4]);
 
41193
                                ti_i += IT_IX(it5, ip0[5]);
 
41194
                                we5   = IT_WE(it5, ip0[5]);
 
41195
                                vo5   = IT_VO(it5, ip0[5]);
 
41196
                                ti_i += IT_IX(it6, ip0[6]);
 
41197
                                we6   = IT_WE(it6, ip0[6]);
 
41198
                                vo6   = IT_VO(it6, ip0[6]);
 
41199
                                ti_i += IT_IX(it7, ip0[7]);
 
41200
                                we7   = IT_WE(it7, ip0[7]);
 
41201
                                vo7   = IT_VO(it7, ip0[7]);
 
41202
 
 
41203
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
41204
 
 
41205
                                /* Sort weighting values and vertex offset values */
 
41206
                                CEX(we0, vo0, we1, vo1);
 
41207
                                CEX(we0, vo0, we2, vo2);
 
41208
                                CEX(we0, vo0, we3, vo3);
 
41209
                                CEX(we0, vo0, we4, vo4);
 
41210
                                CEX(we0, vo0, we5, vo5);
 
41211
                                CEX(we0, vo0, we6, vo6);
 
41212
                                CEX(we0, vo0, we7, vo7);
 
41213
                                CEX(we1, vo1, we2, vo2);
 
41214
                                CEX(we1, vo1, we3, vo3);
 
41215
                                CEX(we1, vo1, we4, vo4);
 
41216
                                CEX(we1, vo1, we5, vo5);
 
41217
                                CEX(we1, vo1, we6, vo6);
 
41218
                                CEX(we1, vo1, we7, vo7);
 
41219
                                CEX(we2, vo2, we3, vo3);
 
41220
                                CEX(we2, vo2, we4, vo4);
 
41221
                                CEX(we2, vo2, we5, vo5);
 
41222
                                CEX(we2, vo2, we6, vo6);
 
41223
                                CEX(we2, vo2, we7, vo7);
 
41224
                                CEX(we3, vo3, we4, vo4);
 
41225
                                CEX(we3, vo3, we5, vo5);
 
41226
                                CEX(we3, vo3, we6, vo6);
 
41227
                                CEX(we3, vo3, we7, vo7);
 
41228
                                CEX(we4, vo4, we5, vo5);
 
41229
                                CEX(we4, vo4, we6, vo6);
 
41230
                                CEX(we4, vo4, we7, vo7);
 
41231
                                CEX(we5, vo5, we6, vo6);
 
41232
                                CEX(we5, vo5, we7, vo7);
 
41233
                                CEX(we6, vo6, we7, vo7);
 
41234
                        }
 
41235
                        {
 
41236
                                unsigned int vof;       /* Vertex offset value */
 
41237
                                unsigned int vwe;       /* Vertex weighting */
 
41238
 
 
41239
                                vof = 0;                                /* First vertex offset is 0 */
 
41240
                                vwe = 65536 - we0;              /* Baricentric weighting */
 
41241
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
41242
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
41243
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
41244
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
41245
                                vof += vo0;                     /* Move to next vertex */
 
41246
                                vwe = we0 - we1;                /* Baricentric weighting */
 
41247
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
41248
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
41249
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
41250
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
41251
                                vof += vo1;                     /* Move to next vertex */
 
41252
                                vwe = we1 - we2;                /* Baricentric weighting */
 
41253
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
41254
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
41255
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
41256
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
41257
                                vof += vo2;                     /* Move to next vertex */
 
41258
                                vwe = we2 - we3;                /* Baricentric weighting */
 
41259
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
41260
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
41261
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
41262
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
41263
                                vof += vo3;                     /* Move to next vertex */
 
41264
                                vwe = we3 - we4;                /* Baricentric weighting */
 
41265
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
41266
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
41267
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
41268
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
41269
                                vof += vo4;                     /* Move to next vertex */
 
41270
                                vwe = we4 - we5;                /* Baricentric weighting */
 
41271
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
41272
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
41273
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
41274
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
41275
                                vof += vo5;                     /* Move to next vertex */
 
41276
                                vwe = we5 - we6;                /* Baricentric weighting */
 
41277
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
41278
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
41279
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
41280
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
41281
                                vof += vo6;                     /* Move to next vertex */
 
41282
                                vwe = we6 - we7;                /* Baricentric weighting */
 
41283
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
41284
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
41285
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
41286
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
41287
                                vof += vo7;                     /* Move to next vertex */
 
41288
                                vwe = we7;                              /* Baricentric weighting */
 
41289
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
41290
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
41291
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
41292
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
41293
                        }
 
41294
                }
 
41295
                {
 
41296
                        unsigned int oti;       /* Vertex offset value */
 
41297
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
41298
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
41299
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
 
41300
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
41301
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
 
41302
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
41303
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
 
41304
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
41305
                }
 
41306
        }
42016
41307
}
42017
41308
#undef IT_WE
42018
41309
#undef IT_VO
42026
41317
imdi_k119_gen(
42027
41318
genspec *g                      /* structure to be initialised */
42028
41319
) {
42029
 
        static unsigned char data[] = {
42030
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
42031
 
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
42032
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42033
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42034
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42035
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42036
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42037
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
42038
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
42039
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
42040
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
42041
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42042
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42043
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42044
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42045
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42046
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42047
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42048
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42049
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
42050
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42051
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42052
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42053
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42054
 
                0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
42055
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
42056
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
42057
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
42058
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42059
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42060
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42061
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42062
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42063
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42064
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42065
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42066
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
42067
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
42068
 
                0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42069
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
42070
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
42071
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
42072
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
42073
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
42074
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
42075
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
42076
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
42077
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
42078
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42079
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
42080
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
42081
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x38, 0x5f, 0x34, 0x5f, 
42082
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
42083
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
42084
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
42085
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
42086
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
42087
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
42088
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
42089
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42090
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42091
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42092
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42093
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
42094
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x31, 
42095
 
                0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42096
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42097
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
42098
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
42099
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
42100
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
42101
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
42102
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
42103
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
42104
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
42105
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
42106
 
                0x00, 0xf0, 0x04, 0x08 
42107
 
        };      /* Structure image */
42108
 
        
42109
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
41320
        static unsigned char data[] = {
 
41321
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
41322
                0x04, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
41323
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41324
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41325
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41326
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41327
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41328
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
41329
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
41330
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
41331
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
41332
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41333
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41334
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41335
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41336
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41337
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41338
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41339
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41340
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
41341
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41342
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41343
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41344
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41345
                0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
41346
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
41347
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
41348
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
41349
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41350
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41351
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41352
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41353
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41354
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41355
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41356
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41357
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
41358
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
41359
                0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41360
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
41361
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
41362
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
41363
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
41364
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
41365
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
41366
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
41367
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
41368
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
41369
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41370
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
41371
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
41372
                0x2c, 0xf3, 0xdc, 0xb7, 0x38, 0x5f, 0x34, 0x5f,
 
41373
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
41374
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
41375
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
41376
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
41377
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
41378
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
41379
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
41380
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41381
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41382
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41383
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41384
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
41385
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x31,
 
41386
                0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41387
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41388
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
41389
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
41390
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
41391
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
41392
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
41393
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
41394
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
41395
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
41396
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
41397
                0x00, 0xf0, 0x04, 0x08
 
41398
        };      /* Structure image */
 
41399
 
 
41400
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
42110
41401
}
42111
41402
 
42112
41403
static void
42113
41404
imdi_k119_tab(
42114
41405
tabspec *t                      /* structure to be initialised */
42115
41406
) {
42116
 
        static unsigned char data[] = {
42117
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
42118
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
42119
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
42120
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
42121
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
42122
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
42123
 
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 
42124
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
42125
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
42126
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42127
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
42128
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
42129
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
42130
 
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
42131
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
42132
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42133
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
42134
 
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
42135
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42136
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42137
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
42138
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
42139
 
                0xff, 0xff, 0xff, 0x34, 0x00, 0x00, 0x00, 0x00, 
42140
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
42141
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42142
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42143
 
                0x00, 0x00, 0x00, 0x00, 0x52, 0xca, 0x04, 0x08, 
42144
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
42145
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42146
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42147
 
                0x10, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
42148
 
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
42149
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
42150
 
        };      /* Structure image */
42151
 
        
42152
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
41407
        static unsigned char data[] = {
 
41408
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
41409
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
41410
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
41411
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
41412
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
41413
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
41414
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
 
41415
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
41416
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
41417
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41418
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
41419
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
41420
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
41421
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
41422
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
41423
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41424
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
41425
                0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
41426
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41427
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41428
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
41429
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
41430
                0xff, 0xff, 0xff, 0x34, 0x00, 0x00, 0x00, 0x00,
 
41431
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
41432
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41433
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41434
                0x00, 0x00, 0x00, 0x00, 0x52, 0xca, 0x04, 0x08,
 
41435
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
41436
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41437
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41438
                0x10, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
41439
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
41440
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
41441
        };      /* Structure image */
 
41442
 
 
41443
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
42153
41444
}
42154
41445
 
42155
 
 
42156
 
 
42157
 
 
42158
 
 
42159
 
 
42160
41446
/* Integer Multi-Dimensional Interpolation */
42161
41447
/* Interpolation Kernel Code */
42162
41448
/* Generated by cgen */
42165
41451
 
42166
41452
/* see the Licence.txt file for licencing details.*/
42167
41453
 
42168
 
 
42169
41454
/*
42170
41455
   Interpolation kernel specs:
42171
41456
 
42247
41532
void **inp,             /* pointer to input pointers */
42248
41533
unsigned int npix       /* Number of pixels to process */
42249
41534
) {
42250
 
        imdi_imp *p = (imdi_imp *)(s->impl);
42251
 
        unsigned short *ip0 = (unsigned short *)inp[0];
42252
 
        unsigned short *op0 = (unsigned short *)outp[0];
42253
 
        unsigned short *ep = ip0 + npix * 1 ;
42254
 
        pointer it0 = (pointer)p->in_tables[0];
42255
 
        pointer ot0 = (pointer)p->out_tables[0];
42256
 
        pointer ot1 = (pointer)p->out_tables[1];
42257
 
        pointer ot2 = (pointer)p->out_tables[2];
42258
 
        pointer ot3 = (pointer)p->out_tables[3];
42259
 
        pointer ot4 = (pointer)p->out_tables[4];
42260
 
        pointer im_base = (pointer)p->im_table;
42261
 
        
42262
 
        for(;ip0 < ep; ip0 += 1, op0 += 5) {
42263
 
                unsigned int ova0;      /* Output value accumulator */
42264
 
                unsigned int ova1;      /* Output value accumulator */
42265
 
                unsigned int ova2;      /* Output value accumulator */
42266
 
                unsigned int ova3;      /* Output value accumulator */
42267
 
                unsigned int ova4;      /* Output value accumulator */
42268
 
                {
42269
 
                        pointer imp;
42270
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
42271
 
                        {
42272
 
                                unsigned int ti;                /* Input table entry variable */
42273
 
                                unsigned int ti_i;      /* Interpolation index variable */
42274
 
                                
42275
 
                                ti = IT_IT(it0, ip0[0]);
42276
 
                                wo0   = (ti & 0x3fffff);        /* Extract weighting/vertex offset value */
42277
 
                                ti_i  = (ti >> 22);     /* Extract interpolation table value */
42278
 
                                
42279
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
42280
 
                                
42281
 
                                /* Sort weighting values and vertex offset values */
42282
 
                        }
42283
 
                        {
42284
 
                                unsigned int nvof;      /* Next vertex offset value */
42285
 
                                unsigned int vof;       /* Vertex offset value */
42286
 
                                unsigned int vwe;       /* Vertex weighting */
42287
 
                                
42288
 
                                vof = 0;                                /* First vertex offset is 0 */
42289
 
                                nvof = (wo0 & 0x1f);    /* Extract offset value */
42290
 
                                wo0 = (wo0 >> 5);               /* Extract weighting value */
42291
 
                                vwe = 65536 - wo0;              /* Baricentric weighting */
42292
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
42293
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
42294
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
42295
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
42296
 
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
42297
 
                                vof += nvof;                    /* Move to next vertex */
42298
 
                                vwe = wo0;                              /* Baricentric weighting */
42299
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
42300
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
42301
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
42302
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
42303
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
42304
 
                        }
42305
 
                }
42306
 
                {
42307
 
                        unsigned int oti;       /* Vertex offset value */
42308
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
42309
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
42310
 
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
42311
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
42312
 
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
42313
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
42314
 
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
42315
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
42316
 
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
42317
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
42318
 
                }
42319
 
        }
 
41535
        imdi_imp *p = (imdi_imp *)(s->impl);
 
41536
        unsigned short *ip0 = (unsigned short *)inp[0];
 
41537
        unsigned short *op0 = (unsigned short *)outp[0];
 
41538
        unsigned short *ep = ip0 + npix * 1 ;
 
41539
        pointer it0 = (pointer)p->in_tables[0];
 
41540
        pointer ot0 = (pointer)p->out_tables[0];
 
41541
        pointer ot1 = (pointer)p->out_tables[1];
 
41542
        pointer ot2 = (pointer)p->out_tables[2];
 
41543
        pointer ot3 = (pointer)p->out_tables[3];
 
41544
        pointer ot4 = (pointer)p->out_tables[4];
 
41545
        pointer im_base = (pointer)p->im_table;
 
41546
 
 
41547
        for(;ip0 < ep; ip0 += 1, op0 += 5) {
 
41548
                unsigned int ova0;      /* Output value accumulator */
 
41549
                unsigned int ova1;      /* Output value accumulator */
 
41550
                unsigned int ova2;      /* Output value accumulator */
 
41551
                unsigned int ova3;      /* Output value accumulator */
 
41552
                unsigned int ova4;      /* Output value accumulator */
 
41553
                {
 
41554
                        pointer imp;
 
41555
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
41556
                        {
 
41557
                                unsigned int ti;                /* Input table entry variable */
 
41558
                                unsigned int ti_i;      /* Interpolation index variable */
 
41559
 
 
41560
                                ti = IT_IT(it0, ip0[0]);
 
41561
                                wo0   = (ti & 0x3fffff);        /* Extract weighting/vertex offset value */
 
41562
                                ti_i  = (ti >> 22);     /* Extract interpolation table value */
 
41563
 
 
41564
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
41565
 
 
41566
                                /* Sort weighting values and vertex offset values */
 
41567
                        }
 
41568
                        {
 
41569
                                unsigned int nvof;      /* Next vertex offset value */
 
41570
                                unsigned int vof;       /* Vertex offset value */
 
41571
                                unsigned int vwe;       /* Vertex weighting */
 
41572
 
 
41573
                                vof = 0;                                /* First vertex offset is 0 */
 
41574
                                nvof = (wo0 & 0x1f);    /* Extract offset value */
 
41575
                                wo0 = (wo0 >> 5);               /* Extract weighting value */
 
41576
                                vwe = 65536 - wo0;              /* Baricentric weighting */
 
41577
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
41578
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
41579
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
41580
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
41581
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
41582
                                vof += nvof;                    /* Move to next vertex */
 
41583
                                vwe = wo0;                              /* Baricentric weighting */
 
41584
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
41585
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
41586
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
41587
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
41588
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
41589
                        }
 
41590
                }
 
41591
                {
 
41592
                        unsigned int oti;       /* Vertex offset value */
 
41593
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
41594
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
41595
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
 
41596
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
41597
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
 
41598
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
41599
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
 
41600
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
41601
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
 
41602
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
41603
                }
 
41604
        }
42320
41605
}
42321
41606
#undef IT_IT
42322
41607
#undef CEX
42328
41613
imdi_k120_gen(
42329
41614
genspec *g                      /* structure to be initialised */
42330
41615
) {
42331
 
        static unsigned char data[] = {
42332
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
42333
 
                0x05, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
42334
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42335
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42336
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42337
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42338
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42339
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
42340
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
42341
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
42342
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
42343
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42344
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42345
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42346
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42347
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42348
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42349
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42350
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42351
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
42352
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42353
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42354
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42355
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42356
 
                0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
42357
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
42358
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
42359
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
42360
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42361
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42362
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42363
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42364
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42365
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42366
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42367
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42368
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
42369
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
42370
 
                0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42371
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
42372
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
42373
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
42374
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
42375
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
42376
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
42377
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
42378
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
42379
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
42380
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42381
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
42382
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
42383
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x31, 0x5f, 0x35, 0x5f, 
42384
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
42385
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
42386
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
42387
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
42388
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
42389
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
42390
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
42391
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42392
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42393
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42394
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42395
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
42396
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x32, 
42397
 
                0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42398
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42399
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
42400
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
42401
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
42402
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
42403
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
42404
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
42405
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
42406
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
42407
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
42408
 
                0x00, 0xf0, 0x04, 0x08 
42409
 
        };      /* Structure image */
42410
 
        
42411
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
41616
        static unsigned char data[] = {
 
41617
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
41618
                0x05, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
41619
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41620
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41621
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41622
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41623
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41624
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
41625
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
41626
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
41627
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
41628
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41629
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41630
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41631
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41632
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41633
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41634
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41635
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41636
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
41637
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41638
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41639
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41640
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41641
                0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
41642
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
41643
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
41644
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
41645
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41646
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41647
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41648
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41649
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41650
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41651
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41652
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41653
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
41654
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
41655
                0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41656
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
41657
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
41658
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
41659
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
41660
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
41661
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
41662
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
41663
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
41664
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
41665
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41666
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
41667
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
41668
                0x2c, 0xf3, 0xdc, 0xb7, 0x31, 0x5f, 0x35, 0x5f,
 
41669
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
41670
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
41671
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
41672
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
41673
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
41674
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
41675
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
41676
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41677
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41678
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41679
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41680
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
41681
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x32,
 
41682
                0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41683
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41684
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
41685
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
41686
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
41687
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
41688
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
41689
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
41690
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
41691
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
41692
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
41693
                0x00, 0xf0, 0x04, 0x08
 
41694
        };      /* Structure image */
 
41695
 
 
41696
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
42412
41697
}
42413
41698
 
42414
41699
static void
42415
41700
imdi_k120_tab(
42416
41701
tabspec *t                      /* structure to be initialised */
42417
41702
) {
42418
 
        static unsigned char data[] = {
42419
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42420
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
42421
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
42422
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
42423
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
42424
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
42425
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
42426
 
                0x0a, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
42427
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
42428
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42429
 
                0x14, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 
42430
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
42431
 
                0x11, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
42432
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
42433
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
42434
 
                0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42435
 
                0x0a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
42436
 
                0x02, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
42437
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42438
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42439
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
42440
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
42441
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42442
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
42443
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42444
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42445
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42446
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
42447
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42448
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42449
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42450
 
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
42451
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
42452
 
        };      /* Structure image */
42453
 
        
42454
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
41703
        static unsigned char data[] = {
 
41704
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41705
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
41706
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
41707
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
41708
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
41709
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
41710
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
41711
                0x0a, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
41712
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
41713
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41714
                0x14, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00,
 
41715
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
41716
                0x11, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
41717
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
41718
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
41719
                0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41720
                0x0a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
41721
                0x02, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
41722
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41723
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41724
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
41725
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
41726
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41727
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
41728
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41729
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41730
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41731
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
41732
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41733
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41734
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41735
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
41736
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
41737
        };      /* Structure image */
 
41738
 
 
41739
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
42455
41740
}
42456
41741
 
42457
 
 
42458
 
 
42459
 
 
42460
 
 
42461
 
 
42462
41742
/* Integer Multi-Dimensional Interpolation */
42463
41743
/* Interpolation Kernel Code */
42464
41744
/* Generated by cgen */
42467
41747
 
42468
41748
/* see the Licence.txt file for licencing details.*/
42469
41749
 
42470
 
 
42471
41750
/*
42472
41751
   Interpolation kernel specs:
42473
41752
 
42556
41835
void **inp,             /* pointer to input pointers */
42557
41836
unsigned int npix       /* Number of pixels to process */
42558
41837
) {
42559
 
        imdi_imp *p = (imdi_imp *)(s->impl);
42560
 
        unsigned short *ip0 = (unsigned short *)inp[0];
42561
 
        unsigned short *op0 = (unsigned short *)outp[0];
42562
 
        unsigned short *ep = ip0 + npix * 3 ;
42563
 
        pointer it0 = (pointer)p->in_tables[0];
42564
 
        pointer it1 = (pointer)p->in_tables[1];
42565
 
        pointer it2 = (pointer)p->in_tables[2];
42566
 
        pointer ot0 = (pointer)p->out_tables[0];
42567
 
        pointer ot1 = (pointer)p->out_tables[1];
42568
 
        pointer ot2 = (pointer)p->out_tables[2];
42569
 
        pointer ot3 = (pointer)p->out_tables[3];
42570
 
        pointer ot4 = (pointer)p->out_tables[4];
42571
 
        pointer im_base = (pointer)p->im_table;
42572
 
        
42573
 
        for(;ip0 < ep; ip0 += 3, op0 += 5) {
42574
 
                unsigned int ova0;      /* Output value accumulator */
42575
 
                unsigned int ova1;      /* Output value accumulator */
42576
 
                unsigned int ova2;      /* Output value accumulator */
42577
 
                unsigned int ova3;      /* Output value accumulator */
42578
 
                unsigned int ova4;      /* Output value accumulator */
42579
 
                {
42580
 
                        pointer imp;
42581
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
42582
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
42583
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
42584
 
                        {
42585
 
                                unsigned int ti_i;      /* Interpolation index variable */
42586
 
                                
42587
 
                                ti_i  = IT_IX(it0, ip0[0]);
42588
 
                                wo0   = IT_WO(it0, ip0[0]);
42589
 
                                ti_i += IT_IX(it1, ip0[1]);
42590
 
                                wo1   = IT_WO(it1, ip0[1]);
42591
 
                                ti_i += IT_IX(it2, ip0[2]);
42592
 
                                wo2   = IT_WO(it2, ip0[2]);
42593
 
                                
42594
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
42595
 
                                
42596
 
                                /* Sort weighting values and vertex offset values */
42597
 
                                CEX(wo0, wo1);
42598
 
                                CEX(wo0, wo2);
42599
 
                                CEX(wo1, wo2);
42600
 
                        }
42601
 
                        {
42602
 
                                unsigned int nvof;      /* Next vertex offset value */
42603
 
                                unsigned int vof;       /* Vertex offset value */
42604
 
                                unsigned int vwe;       /* Vertex weighting */
42605
 
                                
42606
 
                                vof = 0;                                /* First vertex offset is 0 */
42607
 
                                nvof = (wo0 & 0x7fff);  /* Extract offset value */
42608
 
                                wo0 = (wo0 >> 15);              /* Extract weighting value */
42609
 
                                vwe = 65536 - wo0;              /* Baricentric weighting */
42610
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
42611
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
42612
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
42613
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
42614
 
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
42615
 
                                vof += nvof;                    /* Move to next vertex */
42616
 
                                nvof = (wo1 & 0x7fff);  /* Extract offset value */
42617
 
                                wo1 = (wo1 >> 15);              /* Extract weighting value */
42618
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
42619
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
42620
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
42621
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
42622
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
42623
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
42624
 
                                vof += nvof;                    /* Move to next vertex */
42625
 
                                nvof = (wo2 & 0x7fff);  /* Extract offset value */
42626
 
                                wo2 = (wo2 >> 15);              /* Extract weighting value */
42627
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
42628
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
42629
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
42630
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
42631
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
42632
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
42633
 
                                vof += nvof;                    /* Move to next vertex */
42634
 
                                vwe = wo2;                              /* Baricentric weighting */
42635
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
42636
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
42637
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
42638
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
42639
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
42640
 
                        }
42641
 
                }
42642
 
                {
42643
 
                        unsigned int oti;       /* Vertex offset value */
42644
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
42645
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
42646
 
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
42647
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
42648
 
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
42649
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
42650
 
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
42651
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
42652
 
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
42653
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
42654
 
                }
42655
 
        }
 
41838
        imdi_imp *p = (imdi_imp *)(s->impl);
 
41839
        unsigned short *ip0 = (unsigned short *)inp[0];
 
41840
        unsigned short *op0 = (unsigned short *)outp[0];
 
41841
        unsigned short *ep = ip0 + npix * 3 ;
 
41842
        pointer it0 = (pointer)p->in_tables[0];
 
41843
        pointer it1 = (pointer)p->in_tables[1];
 
41844
        pointer it2 = (pointer)p->in_tables[2];
 
41845
        pointer ot0 = (pointer)p->out_tables[0];
 
41846
        pointer ot1 = (pointer)p->out_tables[1];
 
41847
        pointer ot2 = (pointer)p->out_tables[2];
 
41848
        pointer ot3 = (pointer)p->out_tables[3];
 
41849
        pointer ot4 = (pointer)p->out_tables[4];
 
41850
        pointer im_base = (pointer)p->im_table;
 
41851
 
 
41852
        for(;ip0 < ep; ip0 += 3, op0 += 5) {
 
41853
                unsigned int ova0;      /* Output value accumulator */
 
41854
                unsigned int ova1;      /* Output value accumulator */
 
41855
                unsigned int ova2;      /* Output value accumulator */
 
41856
                unsigned int ova3;      /* Output value accumulator */
 
41857
                unsigned int ova4;      /* Output value accumulator */
 
41858
                {
 
41859
                        pointer imp;
 
41860
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
41861
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
41862
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
41863
                        {
 
41864
                                unsigned int ti_i;      /* Interpolation index variable */
 
41865
 
 
41866
                                ti_i  = IT_IX(it0, ip0[0]);
 
41867
                                wo0   = IT_WO(it0, ip0[0]);
 
41868
                                ti_i += IT_IX(it1, ip0[1]);
 
41869
                                wo1   = IT_WO(it1, ip0[1]);
 
41870
                                ti_i += IT_IX(it2, ip0[2]);
 
41871
                                wo2   = IT_WO(it2, ip0[2]);
 
41872
 
 
41873
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
41874
 
 
41875
                                /* Sort weighting values and vertex offset values */
 
41876
                                CEX(wo0, wo1);
 
41877
                                CEX(wo0, wo2);
 
41878
                                CEX(wo1, wo2);
 
41879
                        }
 
41880
                        {
 
41881
                                unsigned int nvof;      /* Next vertex offset value */
 
41882
                                unsigned int vof;       /* Vertex offset value */
 
41883
                                unsigned int vwe;       /* Vertex weighting */
 
41884
 
 
41885
                                vof = 0;                                /* First vertex offset is 0 */
 
41886
                                nvof = (wo0 & 0x7fff);  /* Extract offset value */
 
41887
                                wo0 = (wo0 >> 15);              /* Extract weighting value */
 
41888
                                vwe = 65536 - wo0;              /* Baricentric weighting */
 
41889
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
41890
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
41891
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
41892
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
41893
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
41894
                                vof += nvof;                    /* Move to next vertex */
 
41895
                                nvof = (wo1 & 0x7fff);  /* Extract offset value */
 
41896
                                wo1 = (wo1 >> 15);              /* Extract weighting value */
 
41897
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
41898
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
41899
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
41900
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
41901
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
41902
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
41903
                                vof += nvof;                    /* Move to next vertex */
 
41904
                                nvof = (wo2 & 0x7fff);  /* Extract offset value */
 
41905
                                wo2 = (wo2 >> 15);              /* Extract weighting value */
 
41906
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
41907
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
41908
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
41909
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
41910
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
41911
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
41912
                                vof += nvof;                    /* Move to next vertex */
 
41913
                                vwe = wo2;                              /* Baricentric weighting */
 
41914
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
41915
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
41916
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
41917
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
41918
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
41919
                        }
 
41920
                }
 
41921
                {
 
41922
                        unsigned int oti;       /* Vertex offset value */
 
41923
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
41924
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
41925
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
 
41926
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
41927
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
 
41928
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
41929
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
 
41930
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
41931
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
 
41932
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
41933
                }
 
41934
        }
42656
41935
}
42657
41936
#undef IT_WO
42658
41937
#undef IT_IX
42665
41944
imdi_k121_gen(
42666
41945
genspec *g                      /* structure to be initialised */
42667
41946
) {
42668
 
        static unsigned char data[] = {
42669
 
                0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
42670
 
                0x05, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
42671
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42672
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42673
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42674
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42675
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42676
 
                0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
42677
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
42678
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
42679
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
42680
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42681
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42682
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42683
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42684
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42685
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42686
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42687
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42688
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
42689
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42690
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42691
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42692
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42693
 
                0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
42694
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
42695
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
42696
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
42697
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42698
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42699
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42700
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42701
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42702
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42703
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42704
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42705
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
42706
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
42707
 
                0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42708
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
42709
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
42710
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
42711
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
42712
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
42713
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
42714
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
42715
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
42716
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
42717
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42718
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
42719
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
42720
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x33, 0x5f, 0x35, 0x5f, 
42721
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
42722
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
42723
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
42724
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
42725
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
42726
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
42727
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
42728
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42729
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42730
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42731
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42732
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
42733
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x32, 
42734
 
                0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42735
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42736
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
42737
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
42738
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
42739
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
42740
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
42741
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
42742
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
42743
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
42744
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
42745
 
                0x00, 0xf0, 0x04, 0x08 
42746
 
        };      /* Structure image */
42747
 
        
42748
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
41947
        static unsigned char data[] = {
 
41948
                0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
41949
                0x05, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
41950
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41951
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41952
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41953
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41954
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41955
                0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
41956
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
41957
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
41958
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
41959
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41960
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41961
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41962
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41963
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41964
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41965
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41966
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41967
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
41968
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41969
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41970
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41971
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41972
                0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
41973
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
41974
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
41975
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
41976
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41977
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41978
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41979
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41980
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41981
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41982
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41983
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
41984
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
41985
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
41986
                0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41987
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
41988
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
41989
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
41990
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
41991
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
41992
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
41993
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
41994
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
41995
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
41996
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
41997
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
41998
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
41999
                0x2c, 0xf3, 0xdc, 0xb7, 0x33, 0x5f, 0x35, 0x5f,
 
42000
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
42001
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
42002
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
42003
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
42004
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
42005
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
42006
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
42007
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42008
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42009
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42010
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42011
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
42012
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x32,
 
42013
                0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42014
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42015
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
42016
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
42017
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
42018
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
42019
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
42020
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
42021
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
42022
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
42023
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
42024
                0x00, 0xf0, 0x04, 0x08
 
42025
        };      /* Structure image */
 
42026
 
 
42027
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
42749
42028
}
42750
42029
 
42751
42030
static void
42752
42031
imdi_k121_tab(
42753
42032
tabspec *t                      /* structure to be initialised */
42754
42033
) {
42755
 
        static unsigned char data[] = {
42756
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
42757
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
42758
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
42759
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
42760
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
42761
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
42762
 
                0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
42763
 
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
42764
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
42765
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42766
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
42767
 
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
42768
 
                0x11, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
42769
 
                0x04, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 
42770
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
42771
 
                0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42772
 
                0x0a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
42773
 
                0x02, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
42774
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42775
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42776
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
42777
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
42778
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42779
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
42780
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42781
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42782
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
42783
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
42784
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42785
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42786
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
42787
 
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
42788
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
42789
 
        };      /* Structure image */
42790
 
        
42791
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
42034
        static unsigned char data[] = {
 
42035
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
42036
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
42037
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
42038
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
42039
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
42040
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
42041
                0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
42042
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
42043
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
42044
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42045
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
42046
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
42047
                0x11, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
42048
                0x04, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00,
 
42049
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
42050
                0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42051
                0x0a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
42052
                0x02, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
42053
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42054
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42055
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
42056
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
42057
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42058
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
42059
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42060
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42061
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42062
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
42063
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
42064
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
42065
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
42066
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
42067
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
42068
        };      /* Structure image */
 
42069
 
 
42070
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
42792
42071
}
42793
42072
 
42794
 
 
42795
 
 
42796
 
 
42797
 
 
42798
 
 
42799
42073
/* Integer Multi-Dimensional Interpolation */
42800
42074
/* Interpolation Kernel Code */
42801
42075
/* Generated by cgen */
42804
42078
 
42805
42079
/* see the Licence.txt file for licencing details.*/
42806
42080
 
42807
 
 
42808
42081
/*
42809
42082
   Interpolation kernel specs:
42810
42083
 
42895
42168
void **inp,             /* pointer to input pointers */
42896
42169
unsigned int npix       /* Number of pixels to process */
42897
42170
) {
42898
 
        imdi_imp *p = (imdi_imp *)(s->impl);
42899
 
        unsigned short *ip0 = (unsigned short *)inp[0];
42900
 
        unsigned short *op0 = (unsigned short *)outp[0];
42901
 
        unsigned short *ep = ip0 + npix * 4 ;
42902
 
        pointer it0 = (pointer)p->in_tables[0];
42903
 
        pointer it1 = (pointer)p->in_tables[1];
42904
 
        pointer it2 = (pointer)p->in_tables[2];
42905
 
        pointer it3 = (pointer)p->in_tables[3];
42906
 
        pointer ot0 = (pointer)p->out_tables[0];
42907
 
        pointer ot1 = (pointer)p->out_tables[1];
42908
 
        pointer ot2 = (pointer)p->out_tables[2];
42909
 
        pointer ot3 = (pointer)p->out_tables[3];
42910
 
        pointer ot4 = (pointer)p->out_tables[4];
42911
 
        pointer im_base = (pointer)p->im_table;
42912
 
        
42913
 
        for(;ip0 < ep; ip0 += 4, op0 += 5) {
42914
 
                unsigned int ova0;      /* Output value accumulator */
42915
 
                unsigned int ova1;      /* Output value accumulator */
42916
 
                unsigned int ova2;      /* Output value accumulator */
42917
 
                unsigned int ova3;      /* Output value accumulator */
42918
 
                unsigned int ova4;      /* Output value accumulator */
42919
 
                {
42920
 
                        pointer imp;
42921
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
42922
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
42923
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
42924
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
42925
 
                        {
42926
 
                                unsigned int ti_i;      /* Interpolation index variable */
42927
 
                                
42928
 
                                ti_i  = IT_IX(it0, ip0[0]);
42929
 
                                wo0   = IT_WO(it0, ip0[0]);
42930
 
                                ti_i += IT_IX(it1, ip0[1]);
42931
 
                                wo1   = IT_WO(it1, ip0[1]);
42932
 
                                ti_i += IT_IX(it2, ip0[2]);
42933
 
                                wo2   = IT_WO(it2, ip0[2]);
42934
 
                                ti_i += IT_IX(it3, ip0[3]);
42935
 
                                wo3   = IT_WO(it3, ip0[3]);
42936
 
                                
42937
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
42938
 
                                
42939
 
                                /* Sort weighting values and vertex offset values */
42940
 
                                CEX(wo0, wo1);
42941
 
                                CEX(wo0, wo2);
42942
 
                                CEX(wo0, wo3);
42943
 
                                CEX(wo1, wo2);
42944
 
                                CEX(wo1, wo3);
42945
 
                                CEX(wo2, wo3);
42946
 
                        }
42947
 
                        {
42948
 
                                unsigned int nvof;      /* Next vertex offset value */
42949
 
                                unsigned int vof;       /* Vertex offset value */
42950
 
                                unsigned int vwe;       /* Vertex weighting */
42951
 
                                
42952
 
                                vof = 0;                                /* First vertex offset is 0 */
42953
 
                                nvof = (wo0 & 0x7fff);  /* Extract offset value */
42954
 
                                wo0 = (wo0 >> 15);              /* Extract weighting value */
42955
 
                                vwe = 65536 - wo0;              /* Baricentric weighting */
42956
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
42957
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
42958
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
42959
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
42960
 
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
42961
 
                                vof += nvof;                    /* Move to next vertex */
42962
 
                                nvof = (wo1 & 0x7fff);  /* Extract offset value */
42963
 
                                wo1 = (wo1 >> 15);              /* Extract weighting value */
42964
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
42965
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
42966
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
42967
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
42968
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
42969
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
42970
 
                                vof += nvof;                    /* Move to next vertex */
42971
 
                                nvof = (wo2 & 0x7fff);  /* Extract offset value */
42972
 
                                wo2 = (wo2 >> 15);              /* Extract weighting value */
42973
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
42974
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
42975
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
42976
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
42977
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
42978
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
42979
 
                                vof += nvof;                    /* Move to next vertex */
42980
 
                                nvof = (wo3 & 0x7fff);  /* Extract offset value */
42981
 
                                wo3 = (wo3 >> 15);              /* Extract weighting value */
42982
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
42983
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
42984
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
42985
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
42986
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
42987
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
42988
 
                                vof += nvof;                    /* Move to next vertex */
42989
 
                                vwe = wo3;                              /* Baricentric weighting */
42990
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
42991
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
42992
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
42993
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
42994
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
42995
 
                        }
42996
 
                }
42997
 
                {
42998
 
                        unsigned int oti;       /* Vertex offset value */
42999
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
43000
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
43001
 
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
43002
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
43003
 
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
43004
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
43005
 
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
43006
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
43007
 
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
43008
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
43009
 
                }
43010
 
        }
 
42171
        imdi_imp *p = (imdi_imp *)(s->impl);
 
42172
        unsigned short *ip0 = (unsigned short *)inp[0];
 
42173
        unsigned short *op0 = (unsigned short *)outp[0];
 
42174
        unsigned short *ep = ip0 + npix * 4 ;
 
42175
        pointer it0 = (pointer)p->in_tables[0];
 
42176
        pointer it1 = (pointer)p->in_tables[1];
 
42177
        pointer it2 = (pointer)p->in_tables[2];
 
42178
        pointer it3 = (pointer)p->in_tables[3];
 
42179
        pointer ot0 = (pointer)p->out_tables[0];
 
42180
        pointer ot1 = (pointer)p->out_tables[1];
 
42181
        pointer ot2 = (pointer)p->out_tables[2];
 
42182
        pointer ot3 = (pointer)p->out_tables[3];
 
42183
        pointer ot4 = (pointer)p->out_tables[4];
 
42184
        pointer im_base = (pointer)p->im_table;
 
42185
 
 
42186
        for(;ip0 < ep; ip0 += 4, op0 += 5) {
 
42187
                unsigned int ova0;      /* Output value accumulator */
 
42188
                unsigned int ova1;      /* Output value accumulator */
 
42189
                unsigned int ova2;      /* Output value accumulator */
 
42190
                unsigned int ova3;      /* Output value accumulator */
 
42191
                unsigned int ova4;      /* Output value accumulator */
 
42192
                {
 
42193
                        pointer imp;
 
42194
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
42195
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
42196
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
42197
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
42198
                        {
 
42199
                                unsigned int ti_i;      /* Interpolation index variable */
 
42200
 
 
42201
                                ti_i  = IT_IX(it0, ip0[0]);
 
42202
                                wo0   = IT_WO(it0, ip0[0]);
 
42203
                                ti_i += IT_IX(it1, ip0[1]);
 
42204
                                wo1   = IT_WO(it1, ip0[1]);
 
42205
                                ti_i += IT_IX(it2, ip0[2]);
 
42206
                                wo2   = IT_WO(it2, ip0[2]);
 
42207
                                ti_i += IT_IX(it3, ip0[3]);
 
42208
                                wo3   = IT_WO(it3, ip0[3]);
 
42209
 
 
42210
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
42211
 
 
42212
                                /* Sort weighting values and vertex offset values */
 
42213
                                CEX(wo0, wo1);
 
42214
                                CEX(wo0, wo2);
 
42215
                                CEX(wo0, wo3);
 
42216
                                CEX(wo1, wo2);
 
42217
                                CEX(wo1, wo3);
 
42218
                                CEX(wo2, wo3);
 
42219
                        }
 
42220
                        {
 
42221
                                unsigned int nvof;      /* Next vertex offset value */
 
42222
                                unsigned int vof;       /* Vertex offset value */
 
42223
                                unsigned int vwe;       /* Vertex weighting */
 
42224
 
 
42225
                                vof = 0;                                /* First vertex offset is 0 */
 
42226
                                nvof = (wo0 & 0x7fff);  /* Extract offset value */
 
42227
                                wo0 = (wo0 >> 15);              /* Extract weighting value */
 
42228
                                vwe = 65536 - wo0;              /* Baricentric weighting */
 
42229
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
42230
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
42231
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
42232
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
42233
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
42234
                                vof += nvof;                    /* Move to next vertex */
 
42235
                                nvof = (wo1 & 0x7fff);  /* Extract offset value */
 
42236
                                wo1 = (wo1 >> 15);              /* Extract weighting value */
 
42237
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
42238
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
42239
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
42240
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
42241
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
42242
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
42243
                                vof += nvof;                    /* Move to next vertex */
 
42244
                                nvof = (wo2 & 0x7fff);  /* Extract offset value */
 
42245
                                wo2 = (wo2 >> 15);              /* Extract weighting value */
 
42246
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
42247
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
42248
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
42249
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
42250
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
42251
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
42252
                                vof += nvof;                    /* Move to next vertex */
 
42253
                                nvof = (wo3 & 0x7fff);  /* Extract offset value */
 
42254
                                wo3 = (wo3 >> 15);              /* Extract weighting value */
 
42255
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
42256
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
42257
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
42258
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
42259
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
42260
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
42261
                                vof += nvof;                    /* Move to next vertex */
 
42262
                                vwe = wo3;                              /* Baricentric weighting */
 
42263
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
42264
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
42265
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
42266
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
42267
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
42268
                        }
 
42269
                }
 
42270
                {
 
42271
                        unsigned int oti;       /* Vertex offset value */
 
42272
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
42273
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
42274
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
 
42275
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
42276
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
 
42277
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
42278
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
 
42279
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
42280
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
 
42281
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
42282
                }
 
42283
        }
43011
42284
}
43012
42285
#undef IT_WO
43013
42286
#undef IT_IX
43020
42293
imdi_k122_gen(
43021
42294
genspec *g                      /* structure to be initialised */
43022
42295
) {
43023
 
        static unsigned char data[] = {
43024
 
                0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
43025
 
                0x05, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
43026
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43027
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43028
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43029
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43030
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43031
 
                0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
43032
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
43033
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
43034
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
43035
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43036
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43037
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43038
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43039
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43040
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43041
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43042
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43043
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
43044
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43045
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43046
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43047
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43048
 
                0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
43049
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
43050
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
43051
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
43052
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43053
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43054
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43055
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43056
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43057
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43058
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43059
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43060
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
43061
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
43062
 
                0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43063
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
43064
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
43065
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
43066
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
43067
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
43068
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
43069
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
43070
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
43071
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
43072
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43073
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
43074
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
43075
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x34, 0x5f, 0x35, 0x5f, 
43076
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
43077
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
43078
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
43079
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
43080
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
43081
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
43082
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
43083
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43084
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43085
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43086
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43087
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
43088
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x32, 
43089
 
                0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43090
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43091
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
43092
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
43093
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
43094
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
43095
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
43096
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
43097
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
43098
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
43099
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
43100
 
                0x00, 0xf0, 0x04, 0x08 
43101
 
        };      /* Structure image */
43102
 
        
43103
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
42296
        static unsigned char data[] = {
 
42297
                0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
42298
                0x05, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
42299
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42300
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
42301
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
42302
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
42303
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
42304
                0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
42305
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
42306
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
42307
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
42308
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42309
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42310
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42311
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42312
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
42313
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
42314
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
42315
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
42316
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
42317
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
42318
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
42319
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
42320
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
42321
                0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
42322
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
42323
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
42324
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
42325
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42326
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42327
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42328
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42329
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
42330
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
42331
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
42332
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
42333
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
42334
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
42335
                0x12, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42336
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
42337
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
42338
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
42339
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
42340
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
42341
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
42342
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
42343
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
42344
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
42345
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42346
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
42347
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
42348
                0x2c, 0xf3, 0xdc, 0xb7, 0x34, 0x5f, 0x35, 0x5f,
 
42349
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
42350
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
42351
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
42352
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
42353
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
42354
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
42355
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
42356
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42357
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42358
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42359
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42360
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
42361
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x32,
 
42362
                0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42363
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42364
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
42365
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
42366
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
42367
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
42368
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
42369
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
42370
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
42371
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
42372
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
42373
                0x00, 0xf0, 0x04, 0x08
 
42374
        };      /* Structure image */
 
42375
 
 
42376
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
43104
42377
}
43105
42378
 
43106
42379
static void
43107
42380
imdi_k122_tab(
43108
42381
tabspec *t                      /* structure to be initialised */
43109
42382
) {
43110
 
        static unsigned char data[] = {
43111
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
43112
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
43113
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
43114
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
43115
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
43116
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
43117
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
43118
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
43119
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
43120
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43121
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
43122
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
43123
 
                0x11, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
43124
 
                0x04, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 
43125
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
43126
 
                0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43127
 
                0x0a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
43128
 
                0x02, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
43129
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43130
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43131
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
43132
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
43133
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43134
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
43135
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43136
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43137
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43138
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
43139
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43140
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43141
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43142
 
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
43143
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
43144
 
        };      /* Structure image */
43145
 
        
43146
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
42383
        static unsigned char data[] = {
 
42384
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
42385
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
42386
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
42387
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
42388
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
42389
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
42390
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
42391
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
42392
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
42393
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42394
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
42395
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
42396
                0x11, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
42397
                0x04, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00,
 
42398
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
42399
                0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42400
                0x0a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
42401
                0x02, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
42402
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42403
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42404
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
42405
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
42406
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42407
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
42408
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42409
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42410
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42411
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
42412
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
42413
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
42414
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
42415
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
42416
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
42417
        };      /* Structure image */
 
42418
 
 
42419
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
43147
42420
}
43148
42421
 
43149
 
 
43150
 
 
43151
 
 
43152
 
 
43153
 
 
43154
42422
/* Integer Multi-Dimensional Interpolation */
43155
42423
/* Interpolation Kernel Code */
43156
42424
/* Generated by cgen */
43159
42427
 
43160
42428
/* see the Licence.txt file for licencing details.*/
43161
42429
 
43162
 
 
43163
42430
/*
43164
42431
   Interpolation kernel specs:
43165
42432
 
43256
42523
void **inp,             /* pointer to input pointers */
43257
42524
unsigned int npix       /* Number of pixels to process */
43258
42525
) {
43259
 
        imdi_imp *p = (imdi_imp *)(s->impl);
43260
 
        unsigned short *ip0 = (unsigned short *)inp[0];
43261
 
        unsigned short *op0 = (unsigned short *)outp[0];
43262
 
        unsigned short *ep = ip0 + npix * 5 ;
43263
 
        pointer it0 = (pointer)p->in_tables[0];
43264
 
        pointer it1 = (pointer)p->in_tables[1];
43265
 
        pointer it2 = (pointer)p->in_tables[2];
43266
 
        pointer it3 = (pointer)p->in_tables[3];
43267
 
        pointer it4 = (pointer)p->in_tables[4];
43268
 
        pointer ot0 = (pointer)p->out_tables[0];
43269
 
        pointer ot1 = (pointer)p->out_tables[1];
43270
 
        pointer ot2 = (pointer)p->out_tables[2];
43271
 
        pointer ot3 = (pointer)p->out_tables[3];
43272
 
        pointer ot4 = (pointer)p->out_tables[4];
43273
 
        pointer im_base = (pointer)p->im_table;
43274
 
        
43275
 
        for(;ip0 < ep; ip0 += 5, op0 += 5) {
43276
 
                unsigned int ova0;      /* Output value accumulator */
43277
 
                unsigned int ova1;      /* Output value accumulator */
43278
 
                unsigned int ova2;      /* Output value accumulator */
43279
 
                unsigned int ova3;      /* Output value accumulator */
43280
 
                unsigned int ova4;      /* Output value accumulator */
43281
 
                {
43282
 
                        pointer imp;
43283
 
                        unsigned int we0;       /* Weighting value variable */
43284
 
                        unsigned int vo0;       /* Vertex offset variable */
43285
 
                        unsigned int we1;       /* Weighting value variable */
43286
 
                        unsigned int vo1;       /* Vertex offset variable */
43287
 
                        unsigned int we2;       /* Weighting value variable */
43288
 
                        unsigned int vo2;       /* Vertex offset variable */
43289
 
                        unsigned int we3;       /* Weighting value variable */
43290
 
                        unsigned int vo3;       /* Vertex offset variable */
43291
 
                        unsigned int we4;       /* Weighting value variable */
43292
 
                        unsigned int vo4;       /* Vertex offset variable */
43293
 
                        {
43294
 
                                unsigned int ti_i;      /* Interpolation index variable */
43295
 
                                
43296
 
                                ti_i  = IT_IX(it0, ip0[0]);
43297
 
                                we0   = IT_WE(it0, ip0[0]);
43298
 
                                vo0   = IT_VO(it0, ip0[0]);
43299
 
                                ti_i += IT_IX(it1, ip0[1]);
43300
 
                                we1   = IT_WE(it1, ip0[1]);
43301
 
                                vo1   = IT_VO(it1, ip0[1]);
43302
 
                                ti_i += IT_IX(it2, ip0[2]);
43303
 
                                we2   = IT_WE(it2, ip0[2]);
43304
 
                                vo2   = IT_VO(it2, ip0[2]);
43305
 
                                ti_i += IT_IX(it3, ip0[3]);
43306
 
                                we3   = IT_WE(it3, ip0[3]);
43307
 
                                vo3   = IT_VO(it3, ip0[3]);
43308
 
                                ti_i += IT_IX(it4, ip0[4]);
43309
 
                                we4   = IT_WE(it4, ip0[4]);
43310
 
                                vo4   = IT_VO(it4, ip0[4]);
43311
 
                                
43312
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
43313
 
                                
43314
 
                                /* Sort weighting values and vertex offset values */
43315
 
                                CEX(we0, vo0, we1, vo1);
43316
 
                                CEX(we0, vo0, we2, vo2);
43317
 
                                CEX(we0, vo0, we3, vo3);
43318
 
                                CEX(we0, vo0, we4, vo4);
43319
 
                                CEX(we1, vo1, we2, vo2);
43320
 
                                CEX(we1, vo1, we3, vo3);
43321
 
                                CEX(we1, vo1, we4, vo4);
43322
 
                                CEX(we2, vo2, we3, vo3);
43323
 
                                CEX(we2, vo2, we4, vo4);
43324
 
                                CEX(we3, vo3, we4, vo4);
43325
 
                        }
43326
 
                        {
43327
 
                                unsigned int vof;       /* Vertex offset value */
43328
 
                                unsigned int vwe;       /* Vertex weighting */
43329
 
                                
43330
 
                                vof = 0;                                /* First vertex offset is 0 */
43331
 
                                vwe = 65536 - we0;              /* Baricentric weighting */
43332
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
43333
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
43334
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
43335
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
43336
 
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
43337
 
                                vof += vo0;                     /* Move to next vertex */
43338
 
                                vwe = we0 - we1;                /* Baricentric weighting */
43339
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
43340
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
43341
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
43342
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
43343
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
43344
 
                                vof += vo1;                     /* Move to next vertex */
43345
 
                                vwe = we1 - we2;                /* Baricentric weighting */
43346
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
43347
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
43348
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
43349
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
43350
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
43351
 
                                vof += vo2;                     /* Move to next vertex */
43352
 
                                vwe = we2 - we3;                /* Baricentric weighting */
43353
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
43354
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
43355
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
43356
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
43357
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
43358
 
                                vof += vo3;                     /* Move to next vertex */
43359
 
                                vwe = we3 - we4;                /* Baricentric weighting */
43360
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
43361
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
43362
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
43363
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
43364
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
43365
 
                                vof += vo4;                     /* Move to next vertex */
43366
 
                                vwe = we4;                              /* Baricentric weighting */
43367
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
43368
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
43369
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
43370
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
43371
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
43372
 
                        }
43373
 
                }
43374
 
                {
43375
 
                        unsigned int oti;       /* Vertex offset value */
43376
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
43377
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
43378
 
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
43379
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
43380
 
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
43381
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
43382
 
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
43383
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
43384
 
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
43385
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
43386
 
                }
43387
 
        }
 
42526
        imdi_imp *p = (imdi_imp *)(s->impl);
 
42527
        unsigned short *ip0 = (unsigned short *)inp[0];
 
42528
        unsigned short *op0 = (unsigned short *)outp[0];
 
42529
        unsigned short *ep = ip0 + npix * 5 ;
 
42530
        pointer it0 = (pointer)p->in_tables[0];
 
42531
        pointer it1 = (pointer)p->in_tables[1];
 
42532
        pointer it2 = (pointer)p->in_tables[2];
 
42533
        pointer it3 = (pointer)p->in_tables[3];
 
42534
        pointer it4 = (pointer)p->in_tables[4];
 
42535
        pointer ot0 = (pointer)p->out_tables[0];
 
42536
        pointer ot1 = (pointer)p->out_tables[1];
 
42537
        pointer ot2 = (pointer)p->out_tables[2];
 
42538
        pointer ot3 = (pointer)p->out_tables[3];
 
42539
        pointer ot4 = (pointer)p->out_tables[4];
 
42540
        pointer im_base = (pointer)p->im_table;
 
42541
 
 
42542
        for(;ip0 < ep; ip0 += 5, op0 += 5) {
 
42543
                unsigned int ova0;      /* Output value accumulator */
 
42544
                unsigned int ova1;      /* Output value accumulator */
 
42545
                unsigned int ova2;      /* Output value accumulator */
 
42546
                unsigned int ova3;      /* Output value accumulator */
 
42547
                unsigned int ova4;      /* Output value accumulator */
 
42548
                {
 
42549
                        pointer imp;
 
42550
                        unsigned int we0;       /* Weighting value variable */
 
42551
                        unsigned int vo0;       /* Vertex offset variable */
 
42552
                        unsigned int we1;       /* Weighting value variable */
 
42553
                        unsigned int vo1;       /* Vertex offset variable */
 
42554
                        unsigned int we2;       /* Weighting value variable */
 
42555
                        unsigned int vo2;       /* Vertex offset variable */
 
42556
                        unsigned int we3;       /* Weighting value variable */
 
42557
                        unsigned int vo3;       /* Vertex offset variable */
 
42558
                        unsigned int we4;       /* Weighting value variable */
 
42559
                        unsigned int vo4;       /* Vertex offset variable */
 
42560
                        {
 
42561
                                unsigned int ti_i;      /* Interpolation index variable */
 
42562
 
 
42563
                                ti_i  = IT_IX(it0, ip0[0]);
 
42564
                                we0   = IT_WE(it0, ip0[0]);
 
42565
                                vo0   = IT_VO(it0, ip0[0]);
 
42566
                                ti_i += IT_IX(it1, ip0[1]);
 
42567
                                we1   = IT_WE(it1, ip0[1]);
 
42568
                                vo1   = IT_VO(it1, ip0[1]);
 
42569
                                ti_i += IT_IX(it2, ip0[2]);
 
42570
                                we2   = IT_WE(it2, ip0[2]);
 
42571
                                vo2   = IT_VO(it2, ip0[2]);
 
42572
                                ti_i += IT_IX(it3, ip0[3]);
 
42573
                                we3   = IT_WE(it3, ip0[3]);
 
42574
                                vo3   = IT_VO(it3, ip0[3]);
 
42575
                                ti_i += IT_IX(it4, ip0[4]);
 
42576
                                we4   = IT_WE(it4, ip0[4]);
 
42577
                                vo4   = IT_VO(it4, ip0[4]);
 
42578
 
 
42579
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
42580
 
 
42581
                                /* Sort weighting values and vertex offset values */
 
42582
                                CEX(we0, vo0, we1, vo1);
 
42583
                                CEX(we0, vo0, we2, vo2);
 
42584
                                CEX(we0, vo0, we3, vo3);
 
42585
                                CEX(we0, vo0, we4, vo4);
 
42586
                                CEX(we1, vo1, we2, vo2);
 
42587
                                CEX(we1, vo1, we3, vo3);
 
42588
                                CEX(we1, vo1, we4, vo4);
 
42589
                                CEX(we2, vo2, we3, vo3);
 
42590
                                CEX(we2, vo2, we4, vo4);
 
42591
                                CEX(we3, vo3, we4, vo4);
 
42592
                        }
 
42593
                        {
 
42594
                                unsigned int vof;       /* Vertex offset value */
 
42595
                                unsigned int vwe;       /* Vertex weighting */
 
42596
 
 
42597
                                vof = 0;                                /* First vertex offset is 0 */
 
42598
                                vwe = 65536 - we0;              /* Baricentric weighting */
 
42599
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
42600
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
42601
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
42602
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
42603
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
42604
                                vof += vo0;                     /* Move to next vertex */
 
42605
                                vwe = we0 - we1;                /* Baricentric weighting */
 
42606
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
42607
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
42608
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
42609
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
42610
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
42611
                                vof += vo1;                     /* Move to next vertex */
 
42612
                                vwe = we1 - we2;                /* Baricentric weighting */
 
42613
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
42614
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
42615
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
42616
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
42617
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
42618
                                vof += vo2;                     /* Move to next vertex */
 
42619
                                vwe = we2 - we3;                /* Baricentric weighting */
 
42620
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
42621
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
42622
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
42623
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
42624
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
42625
                                vof += vo3;                     /* Move to next vertex */
 
42626
                                vwe = we3 - we4;                /* Baricentric weighting */
 
42627
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
42628
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
42629
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
42630
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
42631
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
42632
                                vof += vo4;                     /* Move to next vertex */
 
42633
                                vwe = we4;                              /* Baricentric weighting */
 
42634
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
42635
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
42636
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
42637
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
42638
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
42639
                        }
 
42640
                }
 
42641
                {
 
42642
                        unsigned int oti;       /* Vertex offset value */
 
42643
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
42644
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
42645
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
 
42646
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
42647
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
 
42648
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
42649
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
 
42650
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
42651
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
 
42652
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
42653
                }
 
42654
        }
43388
42655
}
43389
42656
#undef IT_WE
43390
42657
#undef IT_VO
43398
42665
imdi_k123_gen(
43399
42666
genspec *g                      /* structure to be initialised */
43400
42667
) {
43401
 
        static unsigned char data[] = {
43402
 
                0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
43403
 
                0x05, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
43404
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43405
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43406
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43407
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43408
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43409
 
                0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
43410
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
43411
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
43412
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
43413
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43414
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43415
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43416
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43417
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43418
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43419
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43420
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43421
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
43422
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43423
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43424
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43425
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43426
 
                0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
43427
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
43428
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
43429
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
43430
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43431
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43432
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43433
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43434
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43435
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43436
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43437
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43438
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
43439
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
43440
 
                0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43441
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
43442
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
43443
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
43444
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
43445
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
43446
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
43447
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
43448
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
43449
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
43450
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43451
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
43452
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
43453
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x35, 0x5f, 0x35, 0x5f, 
43454
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
43455
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
43456
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
43457
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
43458
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
43459
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
43460
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
43461
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43462
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43463
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43464
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43465
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
43466
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x32, 
43467
 
                0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43468
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43469
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
43470
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
43471
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
43472
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
43473
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
43474
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
43475
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
43476
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
43477
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
43478
 
                0x00, 0xf0, 0x04, 0x08 
43479
 
        };      /* Structure image */
43480
 
        
43481
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
42668
        static unsigned char data[] = {
 
42669
                0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
42670
                0x05, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
42671
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42672
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
42673
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
42674
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
42675
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
42676
                0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
42677
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
42678
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
42679
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
42680
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42681
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42682
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42683
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42684
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
42685
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
42686
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
42687
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
42688
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
42689
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
42690
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
42691
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
42692
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
42693
                0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
42694
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
42695
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
42696
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
42697
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42698
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42699
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42700
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42701
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
42702
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
42703
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
42704
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
42705
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
42706
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
42707
                0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42708
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
42709
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
42710
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
42711
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
42712
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
42713
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
42714
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
42715
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
42716
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
42717
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42718
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
42719
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
42720
                0x2c, 0xf3, 0xdc, 0xb7, 0x35, 0x5f, 0x35, 0x5f,
 
42721
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
42722
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
42723
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
42724
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
42725
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
42726
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
42727
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
42728
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42729
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42730
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42731
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42732
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
42733
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x32,
 
42734
                0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42735
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42736
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
42737
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
42738
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
42739
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
42740
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
42741
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
42742
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
42743
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
42744
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
42745
                0x00, 0xf0, 0x04, 0x08
 
42746
        };      /* Structure image */
 
42747
 
 
42748
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
43482
42749
}
43483
42750
 
43484
42751
static void
43485
42752
imdi_k123_tab(
43486
42753
tabspec *t                      /* structure to be initialised */
43487
42754
) {
43488
 
        static unsigned char data[] = {
43489
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
43490
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
43491
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
43492
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
43493
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
43494
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
43495
 
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 
43496
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
43497
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
43498
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43499
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
43500
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
43501
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
43502
 
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
43503
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
43504
 
                0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43505
 
                0x0a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
43506
 
                0x02, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
43507
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43508
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43509
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
43510
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
43511
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43512
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
43513
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43514
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43515
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43516
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
43517
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43518
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43519
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43520
 
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
43521
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
43522
 
        };      /* Structure image */
43523
 
        
43524
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
42755
        static unsigned char data[] = {
 
42756
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
42757
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
42758
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
42759
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
42760
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
42761
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
42762
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
 
42763
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
42764
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
42765
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42766
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
42767
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
42768
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
42769
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
42770
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
42771
                0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42772
                0x0a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
42773
                0x02, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
42774
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42775
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42776
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
42777
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
42778
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42779
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
42780
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42781
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42782
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
42783
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
42784
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
42785
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
42786
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
42787
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
42788
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
42789
        };      /* Structure image */
 
42790
 
 
42791
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
43525
42792
}
43526
42793
 
43527
 
 
43528
 
 
43529
 
 
43530
 
 
43531
 
 
43532
42794
/* Integer Multi-Dimensional Interpolation */
43533
42795
/* Interpolation Kernel Code */
43534
42796
/* Generated by cgen */
43537
42799
 
43538
42800
/* see the Licence.txt file for licencing details.*/
43539
42801
 
43540
 
 
43541
42802
/*
43542
42803
   Interpolation kernel specs:
43543
42804
 
43636
42897
void **inp,             /* pointer to input pointers */
43637
42898
unsigned int npix       /* Number of pixels to process */
43638
42899
) {
43639
 
        imdi_imp *p = (imdi_imp *)(s->impl);
43640
 
        unsigned short *ip0 = (unsigned short *)inp[0];
43641
 
        unsigned short *op0 = (unsigned short *)outp[0];
43642
 
        unsigned short *ep = ip0 + npix * 6 ;
43643
 
        pointer it0 = (pointer)p->in_tables[0];
43644
 
        pointer it1 = (pointer)p->in_tables[1];
43645
 
        pointer it2 = (pointer)p->in_tables[2];
43646
 
        pointer it3 = (pointer)p->in_tables[3];
43647
 
        pointer it4 = (pointer)p->in_tables[4];
43648
 
        pointer it5 = (pointer)p->in_tables[5];
43649
 
        pointer ot0 = (pointer)p->out_tables[0];
43650
 
        pointer ot1 = (pointer)p->out_tables[1];
43651
 
        pointer ot2 = (pointer)p->out_tables[2];
43652
 
        pointer ot3 = (pointer)p->out_tables[3];
43653
 
        pointer ot4 = (pointer)p->out_tables[4];
43654
 
        pointer im_base = (pointer)p->im_table;
43655
 
        
43656
 
        for(;ip0 < ep; ip0 += 6, op0 += 5) {
43657
 
                unsigned int ova0;      /* Output value accumulator */
43658
 
                unsigned int ova1;      /* Output value accumulator */
43659
 
                unsigned int ova2;      /* Output value accumulator */
43660
 
                unsigned int ova3;      /* Output value accumulator */
43661
 
                unsigned int ova4;      /* Output value accumulator */
43662
 
                {
43663
 
                        pointer imp;
43664
 
                        unsigned int we0;       /* Weighting value variable */
43665
 
                        unsigned int vo0;       /* Vertex offset variable */
43666
 
                        unsigned int we1;       /* Weighting value variable */
43667
 
                        unsigned int vo1;       /* Vertex offset variable */
43668
 
                        unsigned int we2;       /* Weighting value variable */
43669
 
                        unsigned int vo2;       /* Vertex offset variable */
43670
 
                        unsigned int we3;       /* Weighting value variable */
43671
 
                        unsigned int vo3;       /* Vertex offset variable */
43672
 
                        unsigned int we4;       /* Weighting value variable */
43673
 
                        unsigned int vo4;       /* Vertex offset variable */
43674
 
                        unsigned int we5;       /* Weighting value variable */
43675
 
                        unsigned int vo5;       /* Vertex offset variable */
43676
 
                        {
43677
 
                                unsigned int ti_i;      /* Interpolation index variable */
43678
 
                                
43679
 
                                ti_i  = IT_IX(it0, ip0[0]);
43680
 
                                we0   = IT_WE(it0, ip0[0]);
43681
 
                                vo0   = IT_VO(it0, ip0[0]);
43682
 
                                ti_i += IT_IX(it1, ip0[1]);
43683
 
                                we1   = IT_WE(it1, ip0[1]);
43684
 
                                vo1   = IT_VO(it1, ip0[1]);
43685
 
                                ti_i += IT_IX(it2, ip0[2]);
43686
 
                                we2   = IT_WE(it2, ip0[2]);
43687
 
                                vo2   = IT_VO(it2, ip0[2]);
43688
 
                                ti_i += IT_IX(it3, ip0[3]);
43689
 
                                we3   = IT_WE(it3, ip0[3]);
43690
 
                                vo3   = IT_VO(it3, ip0[3]);
43691
 
                                ti_i += IT_IX(it4, ip0[4]);
43692
 
                                we4   = IT_WE(it4, ip0[4]);
43693
 
                                vo4   = IT_VO(it4, ip0[4]);
43694
 
                                ti_i += IT_IX(it5, ip0[5]);
43695
 
                                we5   = IT_WE(it5, ip0[5]);
43696
 
                                vo5   = IT_VO(it5, ip0[5]);
43697
 
                                
43698
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
43699
 
                                
43700
 
                                /* Sort weighting values and vertex offset values */
43701
 
                                CEX(we0, vo0, we1, vo1);
43702
 
                                CEX(we0, vo0, we2, vo2);
43703
 
                                CEX(we0, vo0, we3, vo3);
43704
 
                                CEX(we0, vo0, we4, vo4);
43705
 
                                CEX(we0, vo0, we5, vo5);
43706
 
                                CEX(we1, vo1, we2, vo2);
43707
 
                                CEX(we1, vo1, we3, vo3);
43708
 
                                CEX(we1, vo1, we4, vo4);
43709
 
                                CEX(we1, vo1, we5, vo5);
43710
 
                                CEX(we2, vo2, we3, vo3);
43711
 
                                CEX(we2, vo2, we4, vo4);
43712
 
                                CEX(we2, vo2, we5, vo5);
43713
 
                                CEX(we3, vo3, we4, vo4);
43714
 
                                CEX(we3, vo3, we5, vo5);
43715
 
                                CEX(we4, vo4, we5, vo5);
43716
 
                        }
43717
 
                        {
43718
 
                                unsigned int vof;       /* Vertex offset value */
43719
 
                                unsigned int vwe;       /* Vertex weighting */
43720
 
                                
43721
 
                                vof = 0;                                /* First vertex offset is 0 */
43722
 
                                vwe = 65536 - we0;              /* Baricentric weighting */
43723
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
43724
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
43725
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
43726
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
43727
 
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
43728
 
                                vof += vo0;                     /* Move to next vertex */
43729
 
                                vwe = we0 - we1;                /* Baricentric weighting */
43730
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
43731
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
43732
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
43733
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
43734
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
43735
 
                                vof += vo1;                     /* Move to next vertex */
43736
 
                                vwe = we1 - we2;                /* Baricentric weighting */
43737
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
43738
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
43739
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
43740
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
43741
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
43742
 
                                vof += vo2;                     /* Move to next vertex */
43743
 
                                vwe = we2 - we3;                /* Baricentric weighting */
43744
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
43745
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
43746
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
43747
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
43748
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
43749
 
                                vof += vo3;                     /* Move to next vertex */
43750
 
                                vwe = we3 - we4;                /* Baricentric weighting */
43751
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
43752
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
43753
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
43754
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
43755
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
43756
 
                                vof += vo4;                     /* Move to next vertex */
43757
 
                                vwe = we4 - we5;                /* Baricentric weighting */
43758
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
43759
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
43760
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
43761
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
43762
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
43763
 
                                vof += vo5;                     /* Move to next vertex */
43764
 
                                vwe = we5;                              /* Baricentric weighting */
43765
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
43766
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
43767
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
43768
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
43769
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
43770
 
                        }
43771
 
                }
43772
 
                {
43773
 
                        unsigned int oti;       /* Vertex offset value */
43774
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
43775
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
43776
 
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
43777
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
43778
 
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
43779
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
43780
 
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
43781
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
43782
 
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
43783
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
43784
 
                }
43785
 
        }
 
42900
        imdi_imp *p = (imdi_imp *)(s->impl);
 
42901
        unsigned short *ip0 = (unsigned short *)inp[0];
 
42902
        unsigned short *op0 = (unsigned short *)outp[0];
 
42903
        unsigned short *ep = ip0 + npix * 6 ;
 
42904
        pointer it0 = (pointer)p->in_tables[0];
 
42905
        pointer it1 = (pointer)p->in_tables[1];
 
42906
        pointer it2 = (pointer)p->in_tables[2];
 
42907
        pointer it3 = (pointer)p->in_tables[3];
 
42908
        pointer it4 = (pointer)p->in_tables[4];
 
42909
        pointer it5 = (pointer)p->in_tables[5];
 
42910
        pointer ot0 = (pointer)p->out_tables[0];
 
42911
        pointer ot1 = (pointer)p->out_tables[1];
 
42912
        pointer ot2 = (pointer)p->out_tables[2];
 
42913
        pointer ot3 = (pointer)p->out_tables[3];
 
42914
        pointer ot4 = (pointer)p->out_tables[4];
 
42915
        pointer im_base = (pointer)p->im_table;
 
42916
 
 
42917
        for(;ip0 < ep; ip0 += 6, op0 += 5) {
 
42918
                unsigned int ova0;      /* Output value accumulator */
 
42919
                unsigned int ova1;      /* Output value accumulator */
 
42920
                unsigned int ova2;      /* Output value accumulator */
 
42921
                unsigned int ova3;      /* Output value accumulator */
 
42922
                unsigned int ova4;      /* Output value accumulator */
 
42923
                {
 
42924
                        pointer imp;
 
42925
                        unsigned int we0;       /* Weighting value variable */
 
42926
                        unsigned int vo0;       /* Vertex offset variable */
 
42927
                        unsigned int we1;       /* Weighting value variable */
 
42928
                        unsigned int vo1;       /* Vertex offset variable */
 
42929
                        unsigned int we2;       /* Weighting value variable */
 
42930
                        unsigned int vo2;       /* Vertex offset variable */
 
42931
                        unsigned int we3;       /* Weighting value variable */
 
42932
                        unsigned int vo3;       /* Vertex offset variable */
 
42933
                        unsigned int we4;       /* Weighting value variable */
 
42934
                        unsigned int vo4;       /* Vertex offset variable */
 
42935
                        unsigned int we5;       /* Weighting value variable */
 
42936
                        unsigned int vo5;       /* Vertex offset variable */
 
42937
                        {
 
42938
                                unsigned int ti_i;      /* Interpolation index variable */
 
42939
 
 
42940
                                ti_i  = IT_IX(it0, ip0[0]);
 
42941
                                we0   = IT_WE(it0, ip0[0]);
 
42942
                                vo0   = IT_VO(it0, ip0[0]);
 
42943
                                ti_i += IT_IX(it1, ip0[1]);
 
42944
                                we1   = IT_WE(it1, ip0[1]);
 
42945
                                vo1   = IT_VO(it1, ip0[1]);
 
42946
                                ti_i += IT_IX(it2, ip0[2]);
 
42947
                                we2   = IT_WE(it2, ip0[2]);
 
42948
                                vo2   = IT_VO(it2, ip0[2]);
 
42949
                                ti_i += IT_IX(it3, ip0[3]);
 
42950
                                we3   = IT_WE(it3, ip0[3]);
 
42951
                                vo3   = IT_VO(it3, ip0[3]);
 
42952
                                ti_i += IT_IX(it4, ip0[4]);
 
42953
                                we4   = IT_WE(it4, ip0[4]);
 
42954
                                vo4   = IT_VO(it4, ip0[4]);
 
42955
                                ti_i += IT_IX(it5, ip0[5]);
 
42956
                                we5   = IT_WE(it5, ip0[5]);
 
42957
                                vo5   = IT_VO(it5, ip0[5]);
 
42958
 
 
42959
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
42960
 
 
42961
                                /* Sort weighting values and vertex offset values */
 
42962
                                CEX(we0, vo0, we1, vo1);
 
42963
                                CEX(we0, vo0, we2, vo2);
 
42964
                                CEX(we0, vo0, we3, vo3);
 
42965
                                CEX(we0, vo0, we4, vo4);
 
42966
                                CEX(we0, vo0, we5, vo5);
 
42967
                                CEX(we1, vo1, we2, vo2);
 
42968
                                CEX(we1, vo1, we3, vo3);
 
42969
                                CEX(we1, vo1, we4, vo4);
 
42970
                                CEX(we1, vo1, we5, vo5);
 
42971
                                CEX(we2, vo2, we3, vo3);
 
42972
                                CEX(we2, vo2, we4, vo4);
 
42973
                                CEX(we2, vo2, we5, vo5);
 
42974
                                CEX(we3, vo3, we4, vo4);
 
42975
                                CEX(we3, vo3, we5, vo5);
 
42976
                                CEX(we4, vo4, we5, vo5);
 
42977
                        }
 
42978
                        {
 
42979
                                unsigned int vof;       /* Vertex offset value */
 
42980
                                unsigned int vwe;       /* Vertex weighting */
 
42981
 
 
42982
                                vof = 0;                                /* First vertex offset is 0 */
 
42983
                                vwe = 65536 - we0;              /* Baricentric weighting */
 
42984
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
42985
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
42986
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
42987
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
42988
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
42989
                                vof += vo0;                     /* Move to next vertex */
 
42990
                                vwe = we0 - we1;                /* Baricentric weighting */
 
42991
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
42992
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
42993
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
42994
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
42995
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
42996
                                vof += vo1;                     /* Move to next vertex */
 
42997
                                vwe = we1 - we2;                /* Baricentric weighting */
 
42998
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
42999
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
43000
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
43001
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
43002
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
43003
                                vof += vo2;                     /* Move to next vertex */
 
43004
                                vwe = we2 - we3;                /* Baricentric weighting */
 
43005
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
43006
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
43007
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
43008
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
43009
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
43010
                                vof += vo3;                     /* Move to next vertex */
 
43011
                                vwe = we3 - we4;                /* Baricentric weighting */
 
43012
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
43013
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
43014
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
43015
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
43016
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
43017
                                vof += vo4;                     /* Move to next vertex */
 
43018
                                vwe = we4 - we5;                /* Baricentric weighting */
 
43019
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
43020
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
43021
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
43022
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
43023
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
43024
                                vof += vo5;                     /* Move to next vertex */
 
43025
                                vwe = we5;                              /* Baricentric weighting */
 
43026
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
43027
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
43028
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
43029
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
43030
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
43031
                        }
 
43032
                }
 
43033
                {
 
43034
                        unsigned int oti;       /* Vertex offset value */
 
43035
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
43036
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
43037
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
 
43038
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
43039
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
 
43040
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
43041
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
 
43042
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
43043
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
 
43044
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
43045
                }
 
43046
        }
43786
43047
}
43787
43048
#undef IT_WE
43788
43049
#undef IT_VO
43796
43057
imdi_k124_gen(
43797
43058
genspec *g                      /* structure to be initialised */
43798
43059
) {
43799
 
        static unsigned char data[] = {
43800
 
                0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
43801
 
                0x05, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
43802
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43803
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43804
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43805
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43806
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43807
 
                0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
43808
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
43809
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
43810
 
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
43811
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43812
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43813
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43814
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43815
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43816
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43817
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43818
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43819
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
43820
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43821
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43822
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43823
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43824
 
                0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
43825
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
43826
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
43827
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
43828
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43829
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43830
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43831
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43832
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43833
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43834
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43835
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43836
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
43837
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
43838
 
                0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43839
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
43840
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
43841
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
43842
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
43843
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
43844
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
43845
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
43846
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
43847
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
43848
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43849
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
43850
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
43851
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x36, 0x5f, 0x35, 0x5f, 
43852
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
43853
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
43854
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
43855
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
43856
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
43857
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
43858
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
43859
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43860
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43861
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43862
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43863
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
43864
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x32, 
43865
 
                0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43866
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43867
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
43868
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
43869
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
43870
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
43871
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
43872
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
43873
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
43874
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
43875
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
43876
 
                0x00, 0xf0, 0x04, 0x08 
43877
 
        };      /* Structure image */
43878
 
        
43879
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
43060
        static unsigned char data[] = {
 
43061
                0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
43062
                0x05, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
43063
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43064
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43065
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43066
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43067
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43068
                0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
43069
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
43070
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
43071
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
43072
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43073
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43074
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43075
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43076
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43077
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43078
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43079
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43080
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
43081
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43082
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43083
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43084
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43085
                0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
43086
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
43087
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
43088
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
43089
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43090
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43091
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43092
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43093
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43094
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43095
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43096
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43097
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
43098
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
43099
                0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43100
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
43101
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
43102
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
43103
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
43104
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
43105
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
43106
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
43107
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
43108
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
43109
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43110
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
43111
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
43112
                0x2c, 0xf3, 0xdc, 0xb7, 0x36, 0x5f, 0x35, 0x5f,
 
43113
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
43114
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
43115
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
43116
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
43117
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
43118
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
43119
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
43120
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43121
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43122
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43123
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43124
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
43125
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x32,
 
43126
                0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43127
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43128
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
43129
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
43130
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
43131
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
43132
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
43133
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
43134
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
43135
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
43136
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
43137
                0x00, 0xf0, 0x04, 0x08
 
43138
        };      /* Structure image */
 
43139
 
 
43140
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
43880
43141
}
43881
43142
 
43882
43143
static void
43883
43144
imdi_k124_tab(
43884
43145
tabspec *t                      /* structure to be initialised */
43885
43146
) {
43886
 
        static unsigned char data[] = {
43887
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
43888
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
43889
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
43890
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
43891
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
43892
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
43893
 
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 
43894
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
43895
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
43896
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43897
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
43898
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
43899
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
43900
 
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
43901
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
43902
 
                0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43903
 
                0x0a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
43904
 
                0x02, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
43905
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43906
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43907
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
43908
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
43909
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43910
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
43911
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43912
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43913
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
43914
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
43915
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43916
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43917
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
43918
 
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
43919
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
43920
 
        };      /* Structure image */
43921
 
        
43922
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
43147
        static unsigned char data[] = {
 
43148
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
43149
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
43150
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
43151
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
43152
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
43153
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
43154
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
 
43155
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
43156
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
43157
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43158
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
43159
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
43160
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
43161
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
43162
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
43163
                0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43164
                0x0a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
43165
                0x02, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
43166
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43167
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43168
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
43169
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
43170
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43171
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
43172
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43173
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43174
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43175
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
43176
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43177
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43178
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43179
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
43180
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
43181
        };      /* Structure image */
 
43182
 
 
43183
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
43923
43184
}
43924
43185
 
43925
 
 
43926
 
 
43927
 
 
43928
 
 
43929
 
 
43930
43186
/* Integer Multi-Dimensional Interpolation */
43931
43187
/* Interpolation Kernel Code */
43932
43188
/* Generated by cgen */
43935
43191
 
43936
43192
/* see the Licence.txt file for licencing details.*/
43937
43193
 
43938
 
 
43939
43194
/*
43940
43195
   Interpolation kernel specs:
43941
43196
 
44036
43291
void **inp,             /* pointer to input pointers */
44037
43292
unsigned int npix       /* Number of pixels to process */
44038
43293
) {
44039
 
        imdi_imp *p = (imdi_imp *)(s->impl);
44040
 
        unsigned short *ip0 = (unsigned short *)inp[0];
44041
 
        unsigned short *op0 = (unsigned short *)outp[0];
44042
 
        unsigned short *ep = ip0 + npix * 7 ;
44043
 
        pointer it0 = (pointer)p->in_tables[0];
44044
 
        pointer it1 = (pointer)p->in_tables[1];
44045
 
        pointer it2 = (pointer)p->in_tables[2];
44046
 
        pointer it3 = (pointer)p->in_tables[3];
44047
 
        pointer it4 = (pointer)p->in_tables[4];
44048
 
        pointer it5 = (pointer)p->in_tables[5];
44049
 
        pointer it6 = (pointer)p->in_tables[6];
44050
 
        pointer ot0 = (pointer)p->out_tables[0];
44051
 
        pointer ot1 = (pointer)p->out_tables[1];
44052
 
        pointer ot2 = (pointer)p->out_tables[2];
44053
 
        pointer ot3 = (pointer)p->out_tables[3];
44054
 
        pointer ot4 = (pointer)p->out_tables[4];
44055
 
        pointer im_base = (pointer)p->im_table;
44056
 
        
44057
 
        for(;ip0 < ep; ip0 += 7, op0 += 5) {
44058
 
                unsigned int ova0;      /* Output value accumulator */
44059
 
                unsigned int ova1;      /* Output value accumulator */
44060
 
                unsigned int ova2;      /* Output value accumulator */
44061
 
                unsigned int ova3;      /* Output value accumulator */
44062
 
                unsigned int ova4;      /* Output value accumulator */
44063
 
                {
44064
 
                        pointer imp;
44065
 
                        unsigned int we0;       /* Weighting value variable */
44066
 
                        unsigned int vo0;       /* Vertex offset variable */
44067
 
                        unsigned int we1;       /* Weighting value variable */
44068
 
                        unsigned int vo1;       /* Vertex offset variable */
44069
 
                        unsigned int we2;       /* Weighting value variable */
44070
 
                        unsigned int vo2;       /* Vertex offset variable */
44071
 
                        unsigned int we3;       /* Weighting value variable */
44072
 
                        unsigned int vo3;       /* Vertex offset variable */
44073
 
                        unsigned int we4;       /* Weighting value variable */
44074
 
                        unsigned int vo4;       /* Vertex offset variable */
44075
 
                        unsigned int we5;       /* Weighting value variable */
44076
 
                        unsigned int vo5;       /* Vertex offset variable */
44077
 
                        unsigned int we6;       /* Weighting value variable */
44078
 
                        unsigned int vo6;       /* Vertex offset variable */
44079
 
                        {
44080
 
                                unsigned int ti_i;      /* Interpolation index variable */
44081
 
                                
44082
 
                                ti_i  = IT_IX(it0, ip0[0]);
44083
 
                                we0   = IT_WE(it0, ip0[0]);
44084
 
                                vo0   = IT_VO(it0, ip0[0]);
44085
 
                                ti_i += IT_IX(it1, ip0[1]);
44086
 
                                we1   = IT_WE(it1, ip0[1]);
44087
 
                                vo1   = IT_VO(it1, ip0[1]);
44088
 
                                ti_i += IT_IX(it2, ip0[2]);
44089
 
                                we2   = IT_WE(it2, ip0[2]);
44090
 
                                vo2   = IT_VO(it2, ip0[2]);
44091
 
                                ti_i += IT_IX(it3, ip0[3]);
44092
 
                                we3   = IT_WE(it3, ip0[3]);
44093
 
                                vo3   = IT_VO(it3, ip0[3]);
44094
 
                                ti_i += IT_IX(it4, ip0[4]);
44095
 
                                we4   = IT_WE(it4, ip0[4]);
44096
 
                                vo4   = IT_VO(it4, ip0[4]);
44097
 
                                ti_i += IT_IX(it5, ip0[5]);
44098
 
                                we5   = IT_WE(it5, ip0[5]);
44099
 
                                vo5   = IT_VO(it5, ip0[5]);
44100
 
                                ti_i += IT_IX(it6, ip0[6]);
44101
 
                                we6   = IT_WE(it6, ip0[6]);
44102
 
                                vo6   = IT_VO(it6, ip0[6]);
44103
 
                                
44104
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
44105
 
                                
44106
 
                                /* Sort weighting values and vertex offset values */
44107
 
                                CEX(we0, vo0, we1, vo1);
44108
 
                                CEX(we0, vo0, we2, vo2);
44109
 
                                CEX(we0, vo0, we3, vo3);
44110
 
                                CEX(we0, vo0, we4, vo4);
44111
 
                                CEX(we0, vo0, we5, vo5);
44112
 
                                CEX(we0, vo0, we6, vo6);
44113
 
                                CEX(we1, vo1, we2, vo2);
44114
 
                                CEX(we1, vo1, we3, vo3);
44115
 
                                CEX(we1, vo1, we4, vo4);
44116
 
                                CEX(we1, vo1, we5, vo5);
44117
 
                                CEX(we1, vo1, we6, vo6);
44118
 
                                CEX(we2, vo2, we3, vo3);
44119
 
                                CEX(we2, vo2, we4, vo4);
44120
 
                                CEX(we2, vo2, we5, vo5);
44121
 
                                CEX(we2, vo2, we6, vo6);
44122
 
                                CEX(we3, vo3, we4, vo4);
44123
 
                                CEX(we3, vo3, we5, vo5);
44124
 
                                CEX(we3, vo3, we6, vo6);
44125
 
                                CEX(we4, vo4, we5, vo5);
44126
 
                                CEX(we4, vo4, we6, vo6);
44127
 
                                CEX(we5, vo5, we6, vo6);
44128
 
                        }
44129
 
                        {
44130
 
                                unsigned int vof;       /* Vertex offset value */
44131
 
                                unsigned int vwe;       /* Vertex weighting */
44132
 
                                
44133
 
                                vof = 0;                                /* First vertex offset is 0 */
44134
 
                                vwe = 65536 - we0;              /* Baricentric weighting */
44135
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
44136
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
44137
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
44138
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
44139
 
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
44140
 
                                vof += vo0;                     /* Move to next vertex */
44141
 
                                vwe = we0 - we1;                /* Baricentric weighting */
44142
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
44143
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
44144
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
44145
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
44146
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
44147
 
                                vof += vo1;                     /* Move to next vertex */
44148
 
                                vwe = we1 - we2;                /* Baricentric weighting */
44149
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
44150
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
44151
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
44152
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
44153
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
44154
 
                                vof += vo2;                     /* Move to next vertex */
44155
 
                                vwe = we2 - we3;                /* Baricentric weighting */
44156
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
44157
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
44158
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
44159
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
44160
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
44161
 
                                vof += vo3;                     /* Move to next vertex */
44162
 
                                vwe = we3 - we4;                /* Baricentric weighting */
44163
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
44164
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
44165
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
44166
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
44167
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
44168
 
                                vof += vo4;                     /* Move to next vertex */
44169
 
                                vwe = we4 - we5;                /* Baricentric weighting */
44170
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
44171
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
44172
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
44173
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
44174
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
44175
 
                                vof += vo5;                     /* Move to next vertex */
44176
 
                                vwe = we5 - we6;                /* Baricentric weighting */
44177
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
44178
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
44179
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
44180
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
44181
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
44182
 
                                vof += vo6;                     /* Move to next vertex */
44183
 
                                vwe = we6;                              /* Baricentric weighting */
44184
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
44185
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
44186
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
44187
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
44188
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
44189
 
                        }
44190
 
                }
44191
 
                {
44192
 
                        unsigned int oti;       /* Vertex offset value */
44193
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
44194
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
44195
 
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
44196
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
44197
 
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
44198
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
44199
 
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
44200
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
44201
 
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
44202
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
44203
 
                }
44204
 
        }
 
43294
        imdi_imp *p = (imdi_imp *)(s->impl);
 
43295
        unsigned short *ip0 = (unsigned short *)inp[0];
 
43296
        unsigned short *op0 = (unsigned short *)outp[0];
 
43297
        unsigned short *ep = ip0 + npix * 7 ;
 
43298
        pointer it0 = (pointer)p->in_tables[0];
 
43299
        pointer it1 = (pointer)p->in_tables[1];
 
43300
        pointer it2 = (pointer)p->in_tables[2];
 
43301
        pointer it3 = (pointer)p->in_tables[3];
 
43302
        pointer it4 = (pointer)p->in_tables[4];
 
43303
        pointer it5 = (pointer)p->in_tables[5];
 
43304
        pointer it6 = (pointer)p->in_tables[6];
 
43305
        pointer ot0 = (pointer)p->out_tables[0];
 
43306
        pointer ot1 = (pointer)p->out_tables[1];
 
43307
        pointer ot2 = (pointer)p->out_tables[2];
 
43308
        pointer ot3 = (pointer)p->out_tables[3];
 
43309
        pointer ot4 = (pointer)p->out_tables[4];
 
43310
        pointer im_base = (pointer)p->im_table;
 
43311
 
 
43312
        for(;ip0 < ep; ip0 += 7, op0 += 5) {
 
43313
                unsigned int ova0;      /* Output value accumulator */
 
43314
                unsigned int ova1;      /* Output value accumulator */
 
43315
                unsigned int ova2;      /* Output value accumulator */
 
43316
                unsigned int ova3;      /* Output value accumulator */
 
43317
                unsigned int ova4;      /* Output value accumulator */
 
43318
                {
 
43319
                        pointer imp;
 
43320
                        unsigned int we0;       /* Weighting value variable */
 
43321
                        unsigned int vo0;       /* Vertex offset variable */
 
43322
                        unsigned int we1;       /* Weighting value variable */
 
43323
                        unsigned int vo1;       /* Vertex offset variable */
 
43324
                        unsigned int we2;       /* Weighting value variable */
 
43325
                        unsigned int vo2;       /* Vertex offset variable */
 
43326
                        unsigned int we3;       /* Weighting value variable */
 
43327
                        unsigned int vo3;       /* Vertex offset variable */
 
43328
                        unsigned int we4;       /* Weighting value variable */
 
43329
                        unsigned int vo4;       /* Vertex offset variable */
 
43330
                        unsigned int we5;       /* Weighting value variable */
 
43331
                        unsigned int vo5;       /* Vertex offset variable */
 
43332
                        unsigned int we6;       /* Weighting value variable */
 
43333
                        unsigned int vo6;       /* Vertex offset variable */
 
43334
                        {
 
43335
                                unsigned int ti_i;      /* Interpolation index variable */
 
43336
 
 
43337
                                ti_i  = IT_IX(it0, ip0[0]);
 
43338
                                we0   = IT_WE(it0, ip0[0]);
 
43339
                                vo0   = IT_VO(it0, ip0[0]);
 
43340
                                ti_i += IT_IX(it1, ip0[1]);
 
43341
                                we1   = IT_WE(it1, ip0[1]);
 
43342
                                vo1   = IT_VO(it1, ip0[1]);
 
43343
                                ti_i += IT_IX(it2, ip0[2]);
 
43344
                                we2   = IT_WE(it2, ip0[2]);
 
43345
                                vo2   = IT_VO(it2, ip0[2]);
 
43346
                                ti_i += IT_IX(it3, ip0[3]);
 
43347
                                we3   = IT_WE(it3, ip0[3]);
 
43348
                                vo3   = IT_VO(it3, ip0[3]);
 
43349
                                ti_i += IT_IX(it4, ip0[4]);
 
43350
                                we4   = IT_WE(it4, ip0[4]);
 
43351
                                vo4   = IT_VO(it4, ip0[4]);
 
43352
                                ti_i += IT_IX(it5, ip0[5]);
 
43353
                                we5   = IT_WE(it5, ip0[5]);
 
43354
                                vo5   = IT_VO(it5, ip0[5]);
 
43355
                                ti_i += IT_IX(it6, ip0[6]);
 
43356
                                we6   = IT_WE(it6, ip0[6]);
 
43357
                                vo6   = IT_VO(it6, ip0[6]);
 
43358
 
 
43359
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
43360
 
 
43361
                                /* Sort weighting values and vertex offset values */
 
43362
                                CEX(we0, vo0, we1, vo1);
 
43363
                                CEX(we0, vo0, we2, vo2);
 
43364
                                CEX(we0, vo0, we3, vo3);
 
43365
                                CEX(we0, vo0, we4, vo4);
 
43366
                                CEX(we0, vo0, we5, vo5);
 
43367
                                CEX(we0, vo0, we6, vo6);
 
43368
                                CEX(we1, vo1, we2, vo2);
 
43369
                                CEX(we1, vo1, we3, vo3);
 
43370
                                CEX(we1, vo1, we4, vo4);
 
43371
                                CEX(we1, vo1, we5, vo5);
 
43372
                                CEX(we1, vo1, we6, vo6);
 
43373
                                CEX(we2, vo2, we3, vo3);
 
43374
                                CEX(we2, vo2, we4, vo4);
 
43375
                                CEX(we2, vo2, we5, vo5);
 
43376
                                CEX(we2, vo2, we6, vo6);
 
43377
                                CEX(we3, vo3, we4, vo4);
 
43378
                                CEX(we3, vo3, we5, vo5);
 
43379
                                CEX(we3, vo3, we6, vo6);
 
43380
                                CEX(we4, vo4, we5, vo5);
 
43381
                                CEX(we4, vo4, we6, vo6);
 
43382
                                CEX(we5, vo5, we6, vo6);
 
43383
                        }
 
43384
                        {
 
43385
                                unsigned int vof;       /* Vertex offset value */
 
43386
                                unsigned int vwe;       /* Vertex weighting */
 
43387
 
 
43388
                                vof = 0;                                /* First vertex offset is 0 */
 
43389
                                vwe = 65536 - we0;              /* Baricentric weighting */
 
43390
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
43391
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
43392
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
43393
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
43394
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
43395
                                vof += vo0;                     /* Move to next vertex */
 
43396
                                vwe = we0 - we1;                /* Baricentric weighting */
 
43397
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
43398
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
43399
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
43400
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
43401
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
43402
                                vof += vo1;                     /* Move to next vertex */
 
43403
                                vwe = we1 - we2;                /* Baricentric weighting */
 
43404
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
43405
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
43406
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
43407
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
43408
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
43409
                                vof += vo2;                     /* Move to next vertex */
 
43410
                                vwe = we2 - we3;                /* Baricentric weighting */
 
43411
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
43412
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
43413
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
43414
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
43415
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
43416
                                vof += vo3;                     /* Move to next vertex */
 
43417
                                vwe = we3 - we4;                /* Baricentric weighting */
 
43418
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
43419
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
43420
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
43421
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
43422
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
43423
                                vof += vo4;                     /* Move to next vertex */
 
43424
                                vwe = we4 - we5;                /* Baricentric weighting */
 
43425
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
43426
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
43427
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
43428
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
43429
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
43430
                                vof += vo5;                     /* Move to next vertex */
 
43431
                                vwe = we5 - we6;                /* Baricentric weighting */
 
43432
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
43433
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
43434
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
43435
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
43436
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
43437
                                vof += vo6;                     /* Move to next vertex */
 
43438
                                vwe = we6;                              /* Baricentric weighting */
 
43439
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
43440
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
43441
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
43442
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
43443
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
43444
                        }
 
43445
                }
 
43446
                {
 
43447
                        unsigned int oti;       /* Vertex offset value */
 
43448
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
43449
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
43450
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
 
43451
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
43452
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
 
43453
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
43454
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
 
43455
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
43456
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
 
43457
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
43458
                }
 
43459
        }
44205
43460
}
44206
43461
#undef IT_WE
44207
43462
#undef IT_VO
44215
43470
imdi_k125_gen(
44216
43471
genspec *g                      /* structure to be initialised */
44217
43472
) {
44218
 
        static unsigned char data[] = {
44219
 
                0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
44220
 
                0x05, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
44221
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44222
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44223
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44224
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44225
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44226
 
                0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
44227
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
44228
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
44229
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
44230
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44231
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44232
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44233
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44234
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44235
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44236
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44237
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44238
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
44239
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44240
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44241
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44242
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44243
 
                0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
44244
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
44245
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
44246
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
44247
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44248
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44249
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44250
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44251
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44252
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44253
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44254
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44255
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
44256
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
44257
 
                0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44258
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
44259
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
44260
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
44261
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
44262
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
44263
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
44264
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
44265
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
44266
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
44267
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44268
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
44269
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
44270
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x37, 0x5f, 0x35, 0x5f, 
44271
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
44272
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
44273
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
44274
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
44275
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
44276
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
44277
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
44278
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44279
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44280
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44281
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44282
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
44283
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x32, 
44284
 
                0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44285
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44286
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
44287
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
44288
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
44289
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
44290
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
44291
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
44292
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
44293
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
44294
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
44295
 
                0x00, 0xf0, 0x04, 0x08 
44296
 
        };      /* Structure image */
44297
 
        
44298
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
43473
        static unsigned char data[] = {
 
43474
                0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
43475
                0x05, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
43476
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43477
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43478
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43479
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43480
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43481
                0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
43482
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
43483
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
43484
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
43485
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43486
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43487
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43488
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43489
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43490
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43491
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43492
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43493
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
43494
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43495
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43496
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43497
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43498
                0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
43499
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
43500
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
43501
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
43502
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43503
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43504
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43505
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43506
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43507
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43508
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43509
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43510
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
43511
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
43512
                0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43513
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
43514
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
43515
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
43516
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
43517
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
43518
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
43519
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
43520
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
43521
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
43522
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43523
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
43524
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
43525
                0x2c, 0xf3, 0xdc, 0xb7, 0x37, 0x5f, 0x35, 0x5f,
 
43526
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
43527
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
43528
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
43529
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
43530
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
43531
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
43532
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
43533
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43534
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43535
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43536
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43537
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
43538
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x32,
 
43539
                0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43540
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43541
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
43542
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
43543
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
43544
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
43545
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
43546
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
43547
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
43548
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
43549
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
43550
                0x00, 0xf0, 0x04, 0x08
 
43551
        };      /* Structure image */
 
43552
 
 
43553
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
44299
43554
}
44300
43555
 
44301
43556
static void
44302
43557
imdi_k125_tab(
44303
43558
tabspec *t                      /* structure to be initialised */
44304
43559
) {
44305
 
        static unsigned char data[] = {
44306
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
44307
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
44308
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
44309
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
44310
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
44311
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
44312
 
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 
44313
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
44314
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
44315
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44316
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
44317
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
44318
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
44319
 
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
44320
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
44321
 
                0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44322
 
                0x0a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
44323
 
                0x02, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
44324
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44325
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44326
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
44327
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
44328
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44329
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
44330
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44331
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44332
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44333
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
44334
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44335
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44336
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44337
 
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
44338
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
44339
 
        };      /* Structure image */
44340
 
        
44341
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
43560
        static unsigned char data[] = {
 
43561
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
43562
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
43563
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
43564
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
43565
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
43566
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
43567
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
 
43568
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
43569
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
43570
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43571
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
43572
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
43573
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
43574
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
43575
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
43576
                0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43577
                0x0a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
43578
                0x02, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
43579
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43580
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43581
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
43582
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
43583
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43584
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
43585
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43586
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43587
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43588
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
43589
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43590
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43591
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43592
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
43593
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
43594
        };      /* Structure image */
 
43595
 
 
43596
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
44342
43597
}
44343
43598
 
44344
 
 
44345
 
 
44346
 
 
44347
 
 
44348
 
 
44349
43599
/* Integer Multi-Dimensional Interpolation */
44350
43600
/* Interpolation Kernel Code */
44351
43601
/* Generated by cgen */
44354
43604
 
44355
43605
/* see the Licence.txt file for licencing details.*/
44356
43606
 
44357
 
 
44358
43607
/*
44359
43608
   Interpolation kernel specs:
44360
43609
 
44457
43706
void **inp,             /* pointer to input pointers */
44458
43707
unsigned int npix       /* Number of pixels to process */
44459
43708
) {
44460
 
        imdi_imp *p = (imdi_imp *)(s->impl);
44461
 
        unsigned short *ip0 = (unsigned short *)inp[0];
44462
 
        unsigned short *op0 = (unsigned short *)outp[0];
44463
 
        unsigned short *ep = ip0 + npix * 8 ;
44464
 
        pointer it0 = (pointer)p->in_tables[0];
44465
 
        pointer it1 = (pointer)p->in_tables[1];
44466
 
        pointer it2 = (pointer)p->in_tables[2];
44467
 
        pointer it3 = (pointer)p->in_tables[3];
44468
 
        pointer it4 = (pointer)p->in_tables[4];
44469
 
        pointer it5 = (pointer)p->in_tables[5];
44470
 
        pointer it6 = (pointer)p->in_tables[6];
44471
 
        pointer it7 = (pointer)p->in_tables[7];
44472
 
        pointer ot0 = (pointer)p->out_tables[0];
44473
 
        pointer ot1 = (pointer)p->out_tables[1];
44474
 
        pointer ot2 = (pointer)p->out_tables[2];
44475
 
        pointer ot3 = (pointer)p->out_tables[3];
44476
 
        pointer ot4 = (pointer)p->out_tables[4];
44477
 
        pointer im_base = (pointer)p->im_table;
44478
 
        
44479
 
        for(;ip0 < ep; ip0 += 8, op0 += 5) {
44480
 
                unsigned int ova0;      /* Output value accumulator */
44481
 
                unsigned int ova1;      /* Output value accumulator */
44482
 
                unsigned int ova2;      /* Output value accumulator */
44483
 
                unsigned int ova3;      /* Output value accumulator */
44484
 
                unsigned int ova4;      /* Output value accumulator */
44485
 
                {
44486
 
                        pointer imp;
44487
 
                        unsigned int we0;       /* Weighting value variable */
44488
 
                        unsigned int vo0;       /* Vertex offset variable */
44489
 
                        unsigned int we1;       /* Weighting value variable */
44490
 
                        unsigned int vo1;       /* Vertex offset variable */
44491
 
                        unsigned int we2;       /* Weighting value variable */
44492
 
                        unsigned int vo2;       /* Vertex offset variable */
44493
 
                        unsigned int we3;       /* Weighting value variable */
44494
 
                        unsigned int vo3;       /* Vertex offset variable */
44495
 
                        unsigned int we4;       /* Weighting value variable */
44496
 
                        unsigned int vo4;       /* Vertex offset variable */
44497
 
                        unsigned int we5;       /* Weighting value variable */
44498
 
                        unsigned int vo5;       /* Vertex offset variable */
44499
 
                        unsigned int we6;       /* Weighting value variable */
44500
 
                        unsigned int vo6;       /* Vertex offset variable */
44501
 
                        unsigned int we7;       /* Weighting value variable */
44502
 
                        unsigned int vo7;       /* Vertex offset variable */
44503
 
                        {
44504
 
                                unsigned int ti_i;      /* Interpolation index variable */
44505
 
                                
44506
 
                                ti_i  = IT_IX(it0, ip0[0]);
44507
 
                                we0   = IT_WE(it0, ip0[0]);
44508
 
                                vo0   = IT_VO(it0, ip0[0]);
44509
 
                                ti_i += IT_IX(it1, ip0[1]);
44510
 
                                we1   = IT_WE(it1, ip0[1]);
44511
 
                                vo1   = IT_VO(it1, ip0[1]);
44512
 
                                ti_i += IT_IX(it2, ip0[2]);
44513
 
                                we2   = IT_WE(it2, ip0[2]);
44514
 
                                vo2   = IT_VO(it2, ip0[2]);
44515
 
                                ti_i += IT_IX(it3, ip0[3]);
44516
 
                                we3   = IT_WE(it3, ip0[3]);
44517
 
                                vo3   = IT_VO(it3, ip0[3]);
44518
 
                                ti_i += IT_IX(it4, ip0[4]);
44519
 
                                we4   = IT_WE(it4, ip0[4]);
44520
 
                                vo4   = IT_VO(it4, ip0[4]);
44521
 
                                ti_i += IT_IX(it5, ip0[5]);
44522
 
                                we5   = IT_WE(it5, ip0[5]);
44523
 
                                vo5   = IT_VO(it5, ip0[5]);
44524
 
                                ti_i += IT_IX(it6, ip0[6]);
44525
 
                                we6   = IT_WE(it6, ip0[6]);
44526
 
                                vo6   = IT_VO(it6, ip0[6]);
44527
 
                                ti_i += IT_IX(it7, ip0[7]);
44528
 
                                we7   = IT_WE(it7, ip0[7]);
44529
 
                                vo7   = IT_VO(it7, ip0[7]);
44530
 
                                
44531
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
44532
 
                                
44533
 
                                /* Sort weighting values and vertex offset values */
44534
 
                                CEX(we0, vo0, we1, vo1);
44535
 
                                CEX(we0, vo0, we2, vo2);
44536
 
                                CEX(we0, vo0, we3, vo3);
44537
 
                                CEX(we0, vo0, we4, vo4);
44538
 
                                CEX(we0, vo0, we5, vo5);
44539
 
                                CEX(we0, vo0, we6, vo6);
44540
 
                                CEX(we0, vo0, we7, vo7);
44541
 
                                CEX(we1, vo1, we2, vo2);
44542
 
                                CEX(we1, vo1, we3, vo3);
44543
 
                                CEX(we1, vo1, we4, vo4);
44544
 
                                CEX(we1, vo1, we5, vo5);
44545
 
                                CEX(we1, vo1, we6, vo6);
44546
 
                                CEX(we1, vo1, we7, vo7);
44547
 
                                CEX(we2, vo2, we3, vo3);
44548
 
                                CEX(we2, vo2, we4, vo4);
44549
 
                                CEX(we2, vo2, we5, vo5);
44550
 
                                CEX(we2, vo2, we6, vo6);
44551
 
                                CEX(we2, vo2, we7, vo7);
44552
 
                                CEX(we3, vo3, we4, vo4);
44553
 
                                CEX(we3, vo3, we5, vo5);
44554
 
                                CEX(we3, vo3, we6, vo6);
44555
 
                                CEX(we3, vo3, we7, vo7);
44556
 
                                CEX(we4, vo4, we5, vo5);
44557
 
                                CEX(we4, vo4, we6, vo6);
44558
 
                                CEX(we4, vo4, we7, vo7);
44559
 
                                CEX(we5, vo5, we6, vo6);
44560
 
                                CEX(we5, vo5, we7, vo7);
44561
 
                                CEX(we6, vo6, we7, vo7);
44562
 
                        }
44563
 
                        {
44564
 
                                unsigned int vof;       /* Vertex offset value */
44565
 
                                unsigned int vwe;       /* Vertex weighting */
44566
 
                                
44567
 
                                vof = 0;                                /* First vertex offset is 0 */
44568
 
                                vwe = 65536 - we0;              /* Baricentric weighting */
44569
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
44570
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
44571
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
44572
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
44573
 
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
44574
 
                                vof += vo0;                     /* Move to next vertex */
44575
 
                                vwe = we0 - we1;                /* Baricentric weighting */
44576
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
44577
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
44578
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
44579
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
44580
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
44581
 
                                vof += vo1;                     /* Move to next vertex */
44582
 
                                vwe = we1 - we2;                /* Baricentric weighting */
44583
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
44584
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
44585
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
44586
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
44587
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
44588
 
                                vof += vo2;                     /* Move to next vertex */
44589
 
                                vwe = we2 - we3;                /* Baricentric weighting */
44590
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
44591
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
44592
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
44593
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
44594
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
44595
 
                                vof += vo3;                     /* Move to next vertex */
44596
 
                                vwe = we3 - we4;                /* Baricentric weighting */
44597
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
44598
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
44599
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
44600
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
44601
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
44602
 
                                vof += vo4;                     /* Move to next vertex */
44603
 
                                vwe = we4 - we5;                /* Baricentric weighting */
44604
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
44605
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
44606
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
44607
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
44608
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
44609
 
                                vof += vo5;                     /* Move to next vertex */
44610
 
                                vwe = we5 - we6;                /* Baricentric weighting */
44611
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
44612
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
44613
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
44614
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
44615
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
44616
 
                                vof += vo6;                     /* Move to next vertex */
44617
 
                                vwe = we6 - we7;                /* Baricentric weighting */
44618
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
44619
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
44620
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
44621
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
44622
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
44623
 
                                vof += vo7;                     /* Move to next vertex */
44624
 
                                vwe = we7;                              /* Baricentric weighting */
44625
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
44626
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
44627
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
44628
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
44629
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
44630
 
                        }
44631
 
                }
44632
 
                {
44633
 
                        unsigned int oti;       /* Vertex offset value */
44634
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
44635
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
44636
 
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
44637
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
44638
 
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
44639
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
44640
 
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
44641
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
44642
 
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
44643
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
44644
 
                }
44645
 
        }
 
43709
        imdi_imp *p = (imdi_imp *)(s->impl);
 
43710
        unsigned short *ip0 = (unsigned short *)inp[0];
 
43711
        unsigned short *op0 = (unsigned short *)outp[0];
 
43712
        unsigned short *ep = ip0 + npix * 8 ;
 
43713
        pointer it0 = (pointer)p->in_tables[0];
 
43714
        pointer it1 = (pointer)p->in_tables[1];
 
43715
        pointer it2 = (pointer)p->in_tables[2];
 
43716
        pointer it3 = (pointer)p->in_tables[3];
 
43717
        pointer it4 = (pointer)p->in_tables[4];
 
43718
        pointer it5 = (pointer)p->in_tables[5];
 
43719
        pointer it6 = (pointer)p->in_tables[6];
 
43720
        pointer it7 = (pointer)p->in_tables[7];
 
43721
        pointer ot0 = (pointer)p->out_tables[0];
 
43722
        pointer ot1 = (pointer)p->out_tables[1];
 
43723
        pointer ot2 = (pointer)p->out_tables[2];
 
43724
        pointer ot3 = (pointer)p->out_tables[3];
 
43725
        pointer ot4 = (pointer)p->out_tables[4];
 
43726
        pointer im_base = (pointer)p->im_table;
 
43727
 
 
43728
        for(;ip0 < ep; ip0 += 8, op0 += 5) {
 
43729
                unsigned int ova0;      /* Output value accumulator */
 
43730
                unsigned int ova1;      /* Output value accumulator */
 
43731
                unsigned int ova2;      /* Output value accumulator */
 
43732
                unsigned int ova3;      /* Output value accumulator */
 
43733
                unsigned int ova4;      /* Output value accumulator */
 
43734
                {
 
43735
                        pointer imp;
 
43736
                        unsigned int we0;       /* Weighting value variable */
 
43737
                        unsigned int vo0;       /* Vertex offset variable */
 
43738
                        unsigned int we1;       /* Weighting value variable */
 
43739
                        unsigned int vo1;       /* Vertex offset variable */
 
43740
                        unsigned int we2;       /* Weighting value variable */
 
43741
                        unsigned int vo2;       /* Vertex offset variable */
 
43742
                        unsigned int we3;       /* Weighting value variable */
 
43743
                        unsigned int vo3;       /* Vertex offset variable */
 
43744
                        unsigned int we4;       /* Weighting value variable */
 
43745
                        unsigned int vo4;       /* Vertex offset variable */
 
43746
                        unsigned int we5;       /* Weighting value variable */
 
43747
                        unsigned int vo5;       /* Vertex offset variable */
 
43748
                        unsigned int we6;       /* Weighting value variable */
 
43749
                        unsigned int vo6;       /* Vertex offset variable */
 
43750
                        unsigned int we7;       /* Weighting value variable */
 
43751
                        unsigned int vo7;       /* Vertex offset variable */
 
43752
                        {
 
43753
                                unsigned int ti_i;      /* Interpolation index variable */
 
43754
 
 
43755
                                ti_i  = IT_IX(it0, ip0[0]);
 
43756
                                we0   = IT_WE(it0, ip0[0]);
 
43757
                                vo0   = IT_VO(it0, ip0[0]);
 
43758
                                ti_i += IT_IX(it1, ip0[1]);
 
43759
                                we1   = IT_WE(it1, ip0[1]);
 
43760
                                vo1   = IT_VO(it1, ip0[1]);
 
43761
                                ti_i += IT_IX(it2, ip0[2]);
 
43762
                                we2   = IT_WE(it2, ip0[2]);
 
43763
                                vo2   = IT_VO(it2, ip0[2]);
 
43764
                                ti_i += IT_IX(it3, ip0[3]);
 
43765
                                we3   = IT_WE(it3, ip0[3]);
 
43766
                                vo3   = IT_VO(it3, ip0[3]);
 
43767
                                ti_i += IT_IX(it4, ip0[4]);
 
43768
                                we4   = IT_WE(it4, ip0[4]);
 
43769
                                vo4   = IT_VO(it4, ip0[4]);
 
43770
                                ti_i += IT_IX(it5, ip0[5]);
 
43771
                                we5   = IT_WE(it5, ip0[5]);
 
43772
                                vo5   = IT_VO(it5, ip0[5]);
 
43773
                                ti_i += IT_IX(it6, ip0[6]);
 
43774
                                we6   = IT_WE(it6, ip0[6]);
 
43775
                                vo6   = IT_VO(it6, ip0[6]);
 
43776
                                ti_i += IT_IX(it7, ip0[7]);
 
43777
                                we7   = IT_WE(it7, ip0[7]);
 
43778
                                vo7   = IT_VO(it7, ip0[7]);
 
43779
 
 
43780
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
43781
 
 
43782
                                /* Sort weighting values and vertex offset values */
 
43783
                                CEX(we0, vo0, we1, vo1);
 
43784
                                CEX(we0, vo0, we2, vo2);
 
43785
                                CEX(we0, vo0, we3, vo3);
 
43786
                                CEX(we0, vo0, we4, vo4);
 
43787
                                CEX(we0, vo0, we5, vo5);
 
43788
                                CEX(we0, vo0, we6, vo6);
 
43789
                                CEX(we0, vo0, we7, vo7);
 
43790
                                CEX(we1, vo1, we2, vo2);
 
43791
                                CEX(we1, vo1, we3, vo3);
 
43792
                                CEX(we1, vo1, we4, vo4);
 
43793
                                CEX(we1, vo1, we5, vo5);
 
43794
                                CEX(we1, vo1, we6, vo6);
 
43795
                                CEX(we1, vo1, we7, vo7);
 
43796
                                CEX(we2, vo2, we3, vo3);
 
43797
                                CEX(we2, vo2, we4, vo4);
 
43798
                                CEX(we2, vo2, we5, vo5);
 
43799
                                CEX(we2, vo2, we6, vo6);
 
43800
                                CEX(we2, vo2, we7, vo7);
 
43801
                                CEX(we3, vo3, we4, vo4);
 
43802
                                CEX(we3, vo3, we5, vo5);
 
43803
                                CEX(we3, vo3, we6, vo6);
 
43804
                                CEX(we3, vo3, we7, vo7);
 
43805
                                CEX(we4, vo4, we5, vo5);
 
43806
                                CEX(we4, vo4, we6, vo6);
 
43807
                                CEX(we4, vo4, we7, vo7);
 
43808
                                CEX(we5, vo5, we6, vo6);
 
43809
                                CEX(we5, vo5, we7, vo7);
 
43810
                                CEX(we6, vo6, we7, vo7);
 
43811
                        }
 
43812
                        {
 
43813
                                unsigned int vof;       /* Vertex offset value */
 
43814
                                unsigned int vwe;       /* Vertex weighting */
 
43815
 
 
43816
                                vof = 0;                                /* First vertex offset is 0 */
 
43817
                                vwe = 65536 - we0;              /* Baricentric weighting */
 
43818
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
43819
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
43820
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
43821
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
43822
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
43823
                                vof += vo0;                     /* Move to next vertex */
 
43824
                                vwe = we0 - we1;                /* Baricentric weighting */
 
43825
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
43826
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
43827
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
43828
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
43829
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
43830
                                vof += vo1;                     /* Move to next vertex */
 
43831
                                vwe = we1 - we2;                /* Baricentric weighting */
 
43832
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
43833
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
43834
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
43835
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
43836
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
43837
                                vof += vo2;                     /* Move to next vertex */
 
43838
                                vwe = we2 - we3;                /* Baricentric weighting */
 
43839
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
43840
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
43841
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
43842
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
43843
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
43844
                                vof += vo3;                     /* Move to next vertex */
 
43845
                                vwe = we3 - we4;                /* Baricentric weighting */
 
43846
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
43847
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
43848
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
43849
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
43850
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
43851
                                vof += vo4;                     /* Move to next vertex */
 
43852
                                vwe = we4 - we5;                /* Baricentric weighting */
 
43853
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
43854
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
43855
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
43856
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
43857
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
43858
                                vof += vo5;                     /* Move to next vertex */
 
43859
                                vwe = we5 - we6;                /* Baricentric weighting */
 
43860
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
43861
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
43862
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
43863
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
43864
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
43865
                                vof += vo6;                     /* Move to next vertex */
 
43866
                                vwe = we6 - we7;                /* Baricentric weighting */
 
43867
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
43868
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
43869
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
43870
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
43871
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
43872
                                vof += vo7;                     /* Move to next vertex */
 
43873
                                vwe = we7;                              /* Baricentric weighting */
 
43874
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
43875
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
43876
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
43877
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
43878
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
43879
                        }
 
43880
                }
 
43881
                {
 
43882
                        unsigned int oti;       /* Vertex offset value */
 
43883
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
43884
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
43885
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
 
43886
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
43887
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
 
43888
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
43889
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
 
43890
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
43891
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
 
43892
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
43893
                }
 
43894
        }
44646
43895
}
44647
43896
#undef IT_WE
44648
43897
#undef IT_VO
44656
43905
imdi_k126_gen(
44657
43906
genspec *g                      /* structure to be initialised */
44658
43907
) {
44659
 
        static unsigned char data[] = {
44660
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
44661
 
                0x05, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
44662
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44663
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44664
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44665
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44666
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44667
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
44668
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
44669
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
44670
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
44671
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44672
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44673
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44674
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44675
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44676
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44677
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44678
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44679
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
44680
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44681
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44682
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44683
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44684
 
                0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
44685
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
44686
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
44687
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
44688
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44689
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44690
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44691
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44692
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44693
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44694
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44695
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44696
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
44697
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
44698
 
                0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44699
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
44700
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
44701
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
44702
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
44703
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
44704
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
44705
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
44706
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
44707
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
44708
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44709
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
44710
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
44711
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x38, 0x5f, 0x35, 0x5f, 
44712
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
44713
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
44714
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
44715
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
44716
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
44717
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
44718
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
44719
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44720
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44721
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44722
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44723
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
44724
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x32, 
44725
 
                0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44726
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44727
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
44728
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
44729
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
44730
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
44731
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
44732
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
44733
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
44734
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
44735
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
44736
 
                0x00, 0xf0, 0x04, 0x08 
44737
 
        };      /* Structure image */
44738
 
        
44739
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
43908
        static unsigned char data[] = {
 
43909
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
43910
                0x05, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
43911
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43912
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43913
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43914
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43915
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43916
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
43917
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
43918
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
43919
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
43920
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43921
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43922
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43923
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43924
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43925
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43926
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43927
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43928
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
43929
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43930
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43931
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43932
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43933
                0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
43934
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
43935
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
43936
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
43937
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43938
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43939
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43940
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43941
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43942
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43943
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43944
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
43945
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
43946
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
43947
                0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43948
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
43949
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
43950
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
43951
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
43952
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
43953
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
43954
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
43955
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
43956
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
43957
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43958
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
43959
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
43960
                0x2c, 0xf3, 0xdc, 0xb7, 0x38, 0x5f, 0x35, 0x5f,
 
43961
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
43962
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
43963
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
43964
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
43965
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
43966
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
43967
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
43968
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43969
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43970
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43971
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43972
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
43973
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x32,
 
43974
                0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43975
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
43976
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
43977
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
43978
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
43979
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
43980
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
43981
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
43982
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
43983
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
43984
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
43985
                0x00, 0xf0, 0x04, 0x08
 
43986
        };      /* Structure image */
 
43987
 
 
43988
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
44740
43989
}
44741
43990
 
44742
43991
static void
44743
43992
imdi_k126_tab(
44744
43993
tabspec *t                      /* structure to be initialised */
44745
43994
) {
44746
 
        static unsigned char data[] = {
44747
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
44748
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
44749
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
44750
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
44751
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
44752
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
44753
 
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 
44754
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
44755
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
44756
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44757
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
44758
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
44759
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
44760
 
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
44761
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
44762
 
                0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44763
 
                0x0a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
44764
 
                0x02, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
44765
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44766
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44767
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
44768
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
44769
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44770
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
44771
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44772
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44773
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44774
 
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf, 
44775
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44776
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44777
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44778
 
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff, 
44779
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
44780
 
        };      /* Structure image */
44781
 
        
44782
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
43995
        static unsigned char data[] = {
 
43996
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
43997
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
43998
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
43999
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
44000
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
44001
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
44002
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
 
44003
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
44004
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
44005
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44006
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
44007
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
44008
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
44009
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
44010
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
44011
                0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44012
                0x0a, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
44013
                0x02, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
44014
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44015
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44016
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
44017
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
44018
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44019
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
44020
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44021
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44022
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44023
                0xdc, 0xd6, 0x83, 0xbf, 0x14, 0xda, 0x83, 0xbf,
 
44024
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44025
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44026
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44027
                0x22, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff,
 
44028
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
44029
        };      /* Structure image */
 
44030
 
 
44031
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
44783
44032
}
44784
44033
 
44785
 
 
44786
 
 
44787
 
 
44788
 
 
44789
 
 
44790
44034
/* Integer Multi-Dimensional Interpolation */
44791
44035
/* Interpolation Kernel Code */
44792
44036
/* Generated by cgen */
44795
44039
 
44796
44040
/* see the Licence.txt file for licencing details.*/
44797
44041
 
44798
 
 
44799
44042
/*
44800
44043
   Interpolation kernel specs:
44801
44044
 
44879
44122
void **inp,             /* pointer to input pointers */
44880
44123
unsigned int npix       /* Number of pixels to process */
44881
44124
) {
44882
 
        imdi_imp *p = (imdi_imp *)(s->impl);
44883
 
        unsigned short *ip0 = (unsigned short *)inp[0];
44884
 
        unsigned short *op0 = (unsigned short *)outp[0];
44885
 
        unsigned short *ep = ip0 + npix * 1 ;
44886
 
        pointer it0 = (pointer)p->in_tables[0];
44887
 
        pointer ot0 = (pointer)p->out_tables[0];
44888
 
        pointer ot1 = (pointer)p->out_tables[1];
44889
 
        pointer ot2 = (pointer)p->out_tables[2];
44890
 
        pointer ot3 = (pointer)p->out_tables[3];
44891
 
        pointer ot4 = (pointer)p->out_tables[4];
44892
 
        pointer ot5 = (pointer)p->out_tables[5];
44893
 
        pointer im_base = (pointer)p->im_table;
44894
 
        
44895
 
        for(;ip0 < ep; ip0 += 1, op0 += 6) {
44896
 
                unsigned int ova0;      /* Output value accumulator */
44897
 
                unsigned int ova1;      /* Output value accumulator */
44898
 
                unsigned int ova2;      /* Output value accumulator */
44899
 
                unsigned int ova3;      /* Output value accumulator */
44900
 
                unsigned int ova4;      /* Output value accumulator */
44901
 
                unsigned int ova5;      /* Output value accumulator */
44902
 
                {
44903
 
                        pointer imp;
44904
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
44905
 
                        {
44906
 
                                unsigned int ti;                /* Input table entry variable */
44907
 
                                unsigned int ti_i;      /* Interpolation index variable */
44908
 
                                
44909
 
                                ti = IT_IT(it0, ip0[0]);
44910
 
                                wo0   = (ti & 0x1fffff);        /* Extract weighting/vertex offset value */
44911
 
                                ti_i  = (ti >> 21);     /* Extract interpolation table value */
44912
 
                                
44913
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
44914
 
                                
44915
 
                                /* Sort weighting values and vertex offset values */
44916
 
                        }
44917
 
                        {
44918
 
                                unsigned int nvof;      /* Next vertex offset value */
44919
 
                                unsigned int vof;       /* Vertex offset value */
44920
 
                                unsigned int vwe;       /* Vertex weighting */
44921
 
                                
44922
 
                                vof = 0;                                /* First vertex offset is 0 */
44923
 
                                nvof = (wo0 & 0xf);     /* Extract offset value */
44924
 
                                wo0 = (wo0 >> 4);               /* Extract weighting value */
44925
 
                                vwe = 65536 - wo0;              /* Baricentric weighting */
44926
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
44927
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
44928
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
44929
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
44930
 
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
44931
 
                                ova5  = IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
44932
 
                                vof += nvof;                    /* Move to next vertex */
44933
 
                                vwe = wo0;                              /* Baricentric weighting */
44934
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
44935
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
44936
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
44937
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
44938
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
44939
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
44940
 
                        }
44941
 
                }
44942
 
                {
44943
 
                        unsigned int oti;       /* Vertex offset value */
44944
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
44945
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
44946
 
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
44947
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
44948
 
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
44949
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
44950
 
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
44951
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
44952
 
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
44953
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
44954
 
                        oti = ((ova5 >> 16) & 0xffff);  /* Extract integer part of result */
44955
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
44956
 
                }
44957
 
        }
 
44125
        imdi_imp *p = (imdi_imp *)(s->impl);
 
44126
        unsigned short *ip0 = (unsigned short *)inp[0];
 
44127
        unsigned short *op0 = (unsigned short *)outp[0];
 
44128
        unsigned short *ep = ip0 + npix * 1 ;
 
44129
        pointer it0 = (pointer)p->in_tables[0];
 
44130
        pointer ot0 = (pointer)p->out_tables[0];
 
44131
        pointer ot1 = (pointer)p->out_tables[1];
 
44132
        pointer ot2 = (pointer)p->out_tables[2];
 
44133
        pointer ot3 = (pointer)p->out_tables[3];
 
44134
        pointer ot4 = (pointer)p->out_tables[4];
 
44135
        pointer ot5 = (pointer)p->out_tables[5];
 
44136
        pointer im_base = (pointer)p->im_table;
 
44137
 
 
44138
        for(;ip0 < ep; ip0 += 1, op0 += 6) {
 
44139
                unsigned int ova0;      /* Output value accumulator */
 
44140
                unsigned int ova1;      /* Output value accumulator */
 
44141
                unsigned int ova2;      /* Output value accumulator */
 
44142
                unsigned int ova3;      /* Output value accumulator */
 
44143
                unsigned int ova4;      /* Output value accumulator */
 
44144
                unsigned int ova5;      /* Output value accumulator */
 
44145
                {
 
44146
                        pointer imp;
 
44147
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
44148
                        {
 
44149
                                unsigned int ti;                /* Input table entry variable */
 
44150
                                unsigned int ti_i;      /* Interpolation index variable */
 
44151
 
 
44152
                                ti = IT_IT(it0, ip0[0]);
 
44153
                                wo0   = (ti & 0x1fffff);        /* Extract weighting/vertex offset value */
 
44154
                                ti_i  = (ti >> 21);     /* Extract interpolation table value */
 
44155
 
 
44156
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
44157
 
 
44158
                                /* Sort weighting values and vertex offset values */
 
44159
                        }
 
44160
                        {
 
44161
                                unsigned int nvof;      /* Next vertex offset value */
 
44162
                                unsigned int vof;       /* Vertex offset value */
 
44163
                                unsigned int vwe;       /* Vertex weighting */
 
44164
 
 
44165
                                vof = 0;                                /* First vertex offset is 0 */
 
44166
                                nvof = (wo0 & 0xf);     /* Extract offset value */
 
44167
                                wo0 = (wo0 >> 4);               /* Extract weighting value */
 
44168
                                vwe = 65536 - wo0;              /* Baricentric weighting */
 
44169
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
44170
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
44171
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
44172
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
44173
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
44174
                                ova5  = IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
44175
                                vof += nvof;                    /* Move to next vertex */
 
44176
                                vwe = wo0;                              /* Baricentric weighting */
 
44177
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
44178
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
44179
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
44180
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
44181
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
44182
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
44183
                        }
 
44184
                }
 
44185
                {
 
44186
                        unsigned int oti;       /* Vertex offset value */
 
44187
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
44188
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
44189
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
 
44190
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
44191
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
 
44192
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
44193
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
 
44194
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
44195
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
 
44196
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
44197
                        oti = ((ova5 >> 16) & 0xffff);  /* Extract integer part of result */
 
44198
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
44199
                }
 
44200
        }
44958
44201
}
44959
44202
#undef IT_IT
44960
44203
#undef CEX
44966
44209
imdi_k127_gen(
44967
44210
genspec *g                      /* structure to be initialised */
44968
44211
) {
44969
 
        static unsigned char data[] = {
44970
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
44971
 
                0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
44972
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44973
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44974
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44975
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44976
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44977
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
44978
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
44979
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
44980
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
44981
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44982
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44983
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44984
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44985
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44986
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44987
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44988
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44989
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
44990
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44991
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44992
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44993
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
44994
 
                0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
44995
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
44996
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
44997
 
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
44998
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
44999
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45000
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45001
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45002
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
45003
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
45004
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
45005
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
45006
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
45007
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
45008
 
                0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45009
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
45010
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
45011
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
45012
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
45013
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
45014
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
45015
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
45016
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
45017
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
45018
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45019
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
45020
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
45021
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x31, 0x5f, 0x36, 0x5f, 
45022
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
45023
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
45024
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
45025
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
45026
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
45027
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
45028
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
45029
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45030
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45031
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45032
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45033
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
45034
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x32, 
45035
 
                0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45036
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45037
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
45038
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
45039
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
45040
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
45041
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
45042
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
45043
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
45044
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
45045
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
45046
 
                0x00, 0xf0, 0x04, 0x08 
45047
 
        };      /* Structure image */
45048
 
        
45049
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
44212
        static unsigned char data[] = {
 
44213
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
44214
                0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
44215
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44216
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44217
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44218
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44219
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44220
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
44221
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
44222
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
44223
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
44224
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44225
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44226
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44227
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44228
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44229
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44230
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44231
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44232
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
44233
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44234
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44235
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44236
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44237
                0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
44238
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
44239
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
44240
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
44241
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44242
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44243
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44244
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44245
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44246
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44247
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44248
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44249
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
44250
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
44251
                0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44252
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
44253
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
44254
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
44255
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
44256
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
44257
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
44258
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
44259
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
44260
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
44261
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44262
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
44263
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
44264
                0x2c, 0xf3, 0xdc, 0xb7, 0x31, 0x5f, 0x36, 0x5f,
 
44265
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
44266
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
44267
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
44268
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
44269
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
44270
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
44271
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
44272
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44273
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44274
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44275
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44276
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
44277
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x32,
 
44278
                0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44279
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44280
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
44281
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
44282
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
44283
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
44284
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
44285
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
44286
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
44287
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
44288
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
44289
                0x00, 0xf0, 0x04, 0x08
 
44290
        };      /* Structure image */
 
44291
 
 
44292
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
45050
44293
}
45051
44294
 
45052
44295
static void
45053
44296
imdi_k127_tab(
45054
44297
tabspec *t                      /* structure to be initialised */
45055
44298
) {
45056
 
        static unsigned char data[] = {
45057
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45058
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
45059
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
45060
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
45061
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
45062
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
45063
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
45064
 
                0x0b, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
45065
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
45066
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45067
 
                0x14, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 
45068
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
45069
 
                0x11, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
45070
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
45071
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
45072
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45073
 
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
45074
 
                0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
45075
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45076
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45077
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
45078
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
45079
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
45080
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
45081
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45082
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45083
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45084
 
                0x00, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
45085
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
45086
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
45087
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
45088
 
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 
45089
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
45090
 
        };      /* Structure image */
45091
 
        
45092
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
44299
        static unsigned char data[] = {
 
44300
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44301
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
44302
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
44303
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
44304
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
44305
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
44306
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
44307
                0x0b, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
44308
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
44309
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44310
                0x14, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00,
 
44311
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
44312
                0x11, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
44313
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
44314
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
44315
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44316
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
44317
                0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
44318
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44319
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44320
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
44321
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
44322
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
44323
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
44324
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44325
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44326
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44327
                0x00, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
44328
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44329
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44330
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44331
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
 
44332
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
44333
        };      /* Structure image */
 
44334
 
 
44335
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
45093
44336
}
45094
44337
 
45095
 
 
45096
 
 
45097
 
 
45098
 
 
45099
 
 
45100
44338
/* Integer Multi-Dimensional Interpolation */
45101
44339
/* Interpolation Kernel Code */
45102
44340
/* Generated by cgen */
45105
44343
 
45106
44344
/* see the Licence.txt file for licencing details.*/
45107
44345
 
45108
 
 
45109
44346
/*
45110
44347
   Interpolation kernel specs:
45111
44348
 
45196
44433
void **inp,             /* pointer to input pointers */
45197
44434
unsigned int npix       /* Number of pixels to process */
45198
44435
) {
45199
 
        imdi_imp *p = (imdi_imp *)(s->impl);
45200
 
        unsigned short *ip0 = (unsigned short *)inp[0];
45201
 
        unsigned short *op0 = (unsigned short *)outp[0];
45202
 
        unsigned short *ep = ip0 + npix * 3 ;
45203
 
        pointer it0 = (pointer)p->in_tables[0];
45204
 
        pointer it1 = (pointer)p->in_tables[1];
45205
 
        pointer it2 = (pointer)p->in_tables[2];
45206
 
        pointer ot0 = (pointer)p->out_tables[0];
45207
 
        pointer ot1 = (pointer)p->out_tables[1];
45208
 
        pointer ot2 = (pointer)p->out_tables[2];
45209
 
        pointer ot3 = (pointer)p->out_tables[3];
45210
 
        pointer ot4 = (pointer)p->out_tables[4];
45211
 
        pointer ot5 = (pointer)p->out_tables[5];
45212
 
        pointer im_base = (pointer)p->im_table;
45213
 
        
45214
 
        for(;ip0 < ep; ip0 += 3, op0 += 6) {
45215
 
                unsigned int ova0;      /* Output value accumulator */
45216
 
                unsigned int ova1;      /* Output value accumulator */
45217
 
                unsigned int ova2;      /* Output value accumulator */
45218
 
                unsigned int ova3;      /* Output value accumulator */
45219
 
                unsigned int ova4;      /* Output value accumulator */
45220
 
                unsigned int ova5;      /* Output value accumulator */
45221
 
                {
45222
 
                        pointer imp;
45223
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
45224
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
45225
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
45226
 
                        {
45227
 
                                unsigned int ti_i;      /* Interpolation index variable */
45228
 
                                
45229
 
                                ti_i  = IT_IX(it0, ip0[0]);
45230
 
                                wo0   = IT_WO(it0, ip0[0]);
45231
 
                                ti_i += IT_IX(it1, ip0[1]);
45232
 
                                wo1   = IT_WO(it1, ip0[1]);
45233
 
                                ti_i += IT_IX(it2, ip0[2]);
45234
 
                                wo2   = IT_WO(it2, ip0[2]);
45235
 
                                
45236
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
45237
 
                                
45238
 
                                /* Sort weighting values and vertex offset values */
45239
 
                                CEX(wo0, wo1);
45240
 
                                CEX(wo0, wo2);
45241
 
                                CEX(wo1, wo2);
45242
 
                        }
45243
 
                        {
45244
 
                                unsigned int nvof;      /* Next vertex offset value */
45245
 
                                unsigned int vof;       /* Vertex offset value */
45246
 
                                unsigned int vwe;       /* Vertex weighting */
45247
 
                                
45248
 
                                vof = 0;                                /* First vertex offset is 0 */
45249
 
                                nvof = (wo0 & 0x7fff);  /* Extract offset value */
45250
 
                                wo0 = (wo0 >> 15);              /* Extract weighting value */
45251
 
                                vwe = 65536 - wo0;              /* Baricentric weighting */
45252
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
45253
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
45254
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
45255
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
45256
 
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
45257
 
                                ova5  = IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
45258
 
                                vof += nvof;                    /* Move to next vertex */
45259
 
                                nvof = (wo1 & 0x7fff);  /* Extract offset value */
45260
 
                                wo1 = (wo1 >> 15);              /* Extract weighting value */
45261
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
45262
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
45263
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
45264
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
45265
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
45266
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
45267
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
45268
 
                                vof += nvof;                    /* Move to next vertex */
45269
 
                                nvof = (wo2 & 0x7fff);  /* Extract offset value */
45270
 
                                wo2 = (wo2 >> 15);              /* Extract weighting value */
45271
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
45272
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
45273
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
45274
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
45275
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
45276
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
45277
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
45278
 
                                vof += nvof;                    /* Move to next vertex */
45279
 
                                vwe = wo2;                              /* Baricentric weighting */
45280
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
45281
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
45282
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
45283
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
45284
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
45285
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
45286
 
                        }
45287
 
                }
45288
 
                {
45289
 
                        unsigned int oti;       /* Vertex offset value */
45290
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
45291
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
45292
 
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
45293
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
45294
 
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
45295
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
45296
 
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
45297
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
45298
 
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
45299
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
45300
 
                        oti = ((ova5 >> 16) & 0xffff);  /* Extract integer part of result */
45301
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
45302
 
                }
45303
 
        }
 
44436
        imdi_imp *p = (imdi_imp *)(s->impl);
 
44437
        unsigned short *ip0 = (unsigned short *)inp[0];
 
44438
        unsigned short *op0 = (unsigned short *)outp[0];
 
44439
        unsigned short *ep = ip0 + npix * 3 ;
 
44440
        pointer it0 = (pointer)p->in_tables[0];
 
44441
        pointer it1 = (pointer)p->in_tables[1];
 
44442
        pointer it2 = (pointer)p->in_tables[2];
 
44443
        pointer ot0 = (pointer)p->out_tables[0];
 
44444
        pointer ot1 = (pointer)p->out_tables[1];
 
44445
        pointer ot2 = (pointer)p->out_tables[2];
 
44446
        pointer ot3 = (pointer)p->out_tables[3];
 
44447
        pointer ot4 = (pointer)p->out_tables[4];
 
44448
        pointer ot5 = (pointer)p->out_tables[5];
 
44449
        pointer im_base = (pointer)p->im_table;
 
44450
 
 
44451
        for(;ip0 < ep; ip0 += 3, op0 += 6) {
 
44452
                unsigned int ova0;      /* Output value accumulator */
 
44453
                unsigned int ova1;      /* Output value accumulator */
 
44454
                unsigned int ova2;      /* Output value accumulator */
 
44455
                unsigned int ova3;      /* Output value accumulator */
 
44456
                unsigned int ova4;      /* Output value accumulator */
 
44457
                unsigned int ova5;      /* Output value accumulator */
 
44458
                {
 
44459
                        pointer imp;
 
44460
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
44461
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
44462
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
44463
                        {
 
44464
                                unsigned int ti_i;      /* Interpolation index variable */
 
44465
 
 
44466
                                ti_i  = IT_IX(it0, ip0[0]);
 
44467
                                wo0   = IT_WO(it0, ip0[0]);
 
44468
                                ti_i += IT_IX(it1, ip0[1]);
 
44469
                                wo1   = IT_WO(it1, ip0[1]);
 
44470
                                ti_i += IT_IX(it2, ip0[2]);
 
44471
                                wo2   = IT_WO(it2, ip0[2]);
 
44472
 
 
44473
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
44474
 
 
44475
                                /* Sort weighting values and vertex offset values */
 
44476
                                CEX(wo0, wo1);
 
44477
                                CEX(wo0, wo2);
 
44478
                                CEX(wo1, wo2);
 
44479
                        }
 
44480
                        {
 
44481
                                unsigned int nvof;      /* Next vertex offset value */
 
44482
                                unsigned int vof;       /* Vertex offset value */
 
44483
                                unsigned int vwe;       /* Vertex weighting */
 
44484
 
 
44485
                                vof = 0;                                /* First vertex offset is 0 */
 
44486
                                nvof = (wo0 & 0x7fff);  /* Extract offset value */
 
44487
                                wo0 = (wo0 >> 15);              /* Extract weighting value */
 
44488
                                vwe = 65536 - wo0;              /* Baricentric weighting */
 
44489
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
44490
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
44491
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
44492
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
44493
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
44494
                                ova5  = IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
44495
                                vof += nvof;                    /* Move to next vertex */
 
44496
                                nvof = (wo1 & 0x7fff);  /* Extract offset value */
 
44497
                                wo1 = (wo1 >> 15);              /* Extract weighting value */
 
44498
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
44499
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
44500
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
44501
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
44502
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
44503
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
44504
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
44505
                                vof += nvof;                    /* Move to next vertex */
 
44506
                                nvof = (wo2 & 0x7fff);  /* Extract offset value */
 
44507
                                wo2 = (wo2 >> 15);              /* Extract weighting value */
 
44508
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
44509
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
44510
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
44511
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
44512
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
44513
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
44514
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
44515
                                vof += nvof;                    /* Move to next vertex */
 
44516
                                vwe = wo2;                              /* Baricentric weighting */
 
44517
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
44518
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
44519
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
44520
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
44521
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
44522
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
44523
                        }
 
44524
                }
 
44525
                {
 
44526
                        unsigned int oti;       /* Vertex offset value */
 
44527
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
44528
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
44529
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
 
44530
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
44531
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
 
44532
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
44533
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
 
44534
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
44535
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
 
44536
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
44537
                        oti = ((ova5 >> 16) & 0xffff);  /* Extract integer part of result */
 
44538
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
44539
                }
 
44540
        }
45304
44541
}
45305
44542
#undef IT_WO
45306
44543
#undef IT_IX
45313
44550
imdi_k128_gen(
45314
44551
genspec *g                      /* structure to be initialised */
45315
44552
) {
45316
 
        static unsigned char data[] = {
45317
 
                0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
45318
 
                0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
45319
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45320
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
45321
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
45322
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
45323
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
45324
 
                0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
45325
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
45326
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
45327
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
45328
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45329
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45330
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45331
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45332
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
45333
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
45334
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
45335
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
45336
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
45337
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
45338
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
45339
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
45340
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
45341
 
                0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
45342
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
45343
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
45344
 
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
45345
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45346
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45347
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45348
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45349
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
45350
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
45351
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
45352
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
45353
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
45354
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
45355
 
                0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45356
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
45357
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
45358
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
45359
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
45360
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
45361
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
45362
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
45363
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
45364
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
45365
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45366
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
45367
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
45368
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x33, 0x5f, 0x36, 0x5f, 
45369
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
45370
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
45371
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
45372
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
45373
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
45374
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
45375
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
45376
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45377
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45378
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45379
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45380
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
45381
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x32, 
45382
 
                0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45383
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45384
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
45385
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
45386
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
45387
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
45388
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
45389
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
45390
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
45391
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
45392
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
45393
 
                0x00, 0xf0, 0x04, 0x08 
45394
 
        };      /* Structure image */
45395
 
        
45396
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
44553
        static unsigned char data[] = {
 
44554
                0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
44555
                0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
44556
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44557
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44558
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44559
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44560
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44561
                0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
44562
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
44563
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
44564
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
44565
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44566
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44567
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44568
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44569
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44570
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44571
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44572
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44573
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
44574
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44575
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44576
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44577
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44578
                0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
44579
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
44580
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
44581
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
44582
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44583
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44584
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44585
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44586
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44587
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44588
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44589
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44590
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
44591
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
44592
                0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44593
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
44594
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
44595
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
44596
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
44597
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
44598
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
44599
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
44600
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
44601
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
44602
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44603
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
44604
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
44605
                0x2c, 0xf3, 0xdc, 0xb7, 0x33, 0x5f, 0x36, 0x5f,
 
44606
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
44607
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
44608
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
44609
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
44610
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
44611
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
44612
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
44613
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44614
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44615
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44616
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44617
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
44618
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x32,
 
44619
                0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44620
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44621
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
44622
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
44623
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
44624
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
44625
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
44626
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
44627
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
44628
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
44629
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
44630
                0x00, 0xf0, 0x04, 0x08
 
44631
        };      /* Structure image */
 
44632
 
 
44633
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
45397
44634
}
45398
44635
 
45399
44636
static void
45400
44637
imdi_k128_tab(
45401
44638
tabspec *t                      /* structure to be initialised */
45402
44639
) {
45403
 
        static unsigned char data[] = {
45404
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
45405
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
45406
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
45407
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
45408
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
45409
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
45410
 
                0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
45411
 
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
45412
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
45413
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45414
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
45415
 
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
45416
 
                0x11, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
45417
 
                0x04, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 
45418
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
45419
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45420
 
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
45421
 
                0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
45422
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45423
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45424
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
45425
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
45426
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
45427
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
45428
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45429
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45430
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45431
 
                0x00, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
45432
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
45433
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
45434
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
45435
 
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 
45436
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
45437
 
        };      /* Structure image */
45438
 
        
45439
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
44640
        static unsigned char data[] = {
 
44641
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
44642
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
44643
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
44644
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
44645
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
44646
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
44647
                0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
44648
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
44649
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
44650
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44651
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
44652
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
44653
                0x11, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
44654
                0x04, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00,
 
44655
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
44656
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44657
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
44658
                0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
44659
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44660
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44661
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
44662
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
44663
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
44664
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
44665
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44666
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44667
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44668
                0x00, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
44669
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44670
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44671
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44672
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
 
44673
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
44674
        };      /* Structure image */
 
44675
 
 
44676
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
45440
44677
}
45441
44678
 
45442
 
 
45443
 
 
45444
 
 
45445
 
 
45446
 
 
45447
44679
/* Integer Multi-Dimensional Interpolation */
45448
44680
/* Interpolation Kernel Code */
45449
44681
/* Generated by cgen */
45452
44684
 
45453
44685
/* see the Licence.txt file for licencing details.*/
45454
44686
 
45455
 
 
45456
44687
/*
45457
44688
   Interpolation kernel specs:
45458
44689
 
45545
44776
void **inp,             /* pointer to input pointers */
45546
44777
unsigned int npix       /* Number of pixels to process */
45547
44778
) {
45548
 
        imdi_imp *p = (imdi_imp *)(s->impl);
45549
 
        unsigned short *ip0 = (unsigned short *)inp[0];
45550
 
        unsigned short *op0 = (unsigned short *)outp[0];
45551
 
        unsigned short *ep = ip0 + npix * 4 ;
45552
 
        pointer it0 = (pointer)p->in_tables[0];
45553
 
        pointer it1 = (pointer)p->in_tables[1];
45554
 
        pointer it2 = (pointer)p->in_tables[2];
45555
 
        pointer it3 = (pointer)p->in_tables[3];
45556
 
        pointer ot0 = (pointer)p->out_tables[0];
45557
 
        pointer ot1 = (pointer)p->out_tables[1];
45558
 
        pointer ot2 = (pointer)p->out_tables[2];
45559
 
        pointer ot3 = (pointer)p->out_tables[3];
45560
 
        pointer ot4 = (pointer)p->out_tables[4];
45561
 
        pointer ot5 = (pointer)p->out_tables[5];
45562
 
        pointer im_base = (pointer)p->im_table;
45563
 
        
45564
 
        for(;ip0 < ep; ip0 += 4, op0 += 6) {
45565
 
                unsigned int ova0;      /* Output value accumulator */
45566
 
                unsigned int ova1;      /* Output value accumulator */
45567
 
                unsigned int ova2;      /* Output value accumulator */
45568
 
                unsigned int ova3;      /* Output value accumulator */
45569
 
                unsigned int ova4;      /* Output value accumulator */
45570
 
                unsigned int ova5;      /* Output value accumulator */
45571
 
                {
45572
 
                        pointer imp;
45573
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
45574
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
45575
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
45576
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
45577
 
                        {
45578
 
                                unsigned int ti_i;      /* Interpolation index variable */
45579
 
                                
45580
 
                                ti_i  = IT_IX(it0, ip0[0]);
45581
 
                                wo0   = IT_WO(it0, ip0[0]);
45582
 
                                ti_i += IT_IX(it1, ip0[1]);
45583
 
                                wo1   = IT_WO(it1, ip0[1]);
45584
 
                                ti_i += IT_IX(it2, ip0[2]);
45585
 
                                wo2   = IT_WO(it2, ip0[2]);
45586
 
                                ti_i += IT_IX(it3, ip0[3]);
45587
 
                                wo3   = IT_WO(it3, ip0[3]);
45588
 
                                
45589
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
45590
 
                                
45591
 
                                /* Sort weighting values and vertex offset values */
45592
 
                                CEX(wo0, wo1);
45593
 
                                CEX(wo0, wo2);
45594
 
                                CEX(wo0, wo3);
45595
 
                                CEX(wo1, wo2);
45596
 
                                CEX(wo1, wo3);
45597
 
                                CEX(wo2, wo3);
45598
 
                        }
45599
 
                        {
45600
 
                                unsigned int nvof;      /* Next vertex offset value */
45601
 
                                unsigned int vof;       /* Vertex offset value */
45602
 
                                unsigned int vwe;       /* Vertex weighting */
45603
 
                                
45604
 
                                vof = 0;                                /* First vertex offset is 0 */
45605
 
                                nvof = (wo0 & 0x7fff);  /* Extract offset value */
45606
 
                                wo0 = (wo0 >> 15);              /* Extract weighting value */
45607
 
                                vwe = 65536 - wo0;              /* Baricentric weighting */
45608
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
45609
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
45610
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
45611
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
45612
 
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
45613
 
                                ova5  = IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
45614
 
                                vof += nvof;                    /* Move to next vertex */
45615
 
                                nvof = (wo1 & 0x7fff);  /* Extract offset value */
45616
 
                                wo1 = (wo1 >> 15);              /* Extract weighting value */
45617
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
45618
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
45619
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
45620
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
45621
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
45622
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
45623
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
45624
 
                                vof += nvof;                    /* Move to next vertex */
45625
 
                                nvof = (wo2 & 0x7fff);  /* Extract offset value */
45626
 
                                wo2 = (wo2 >> 15);              /* Extract weighting value */
45627
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
45628
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
45629
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
45630
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
45631
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
45632
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
45633
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
45634
 
                                vof += nvof;                    /* Move to next vertex */
45635
 
                                nvof = (wo3 & 0x7fff);  /* Extract offset value */
45636
 
                                wo3 = (wo3 >> 15);              /* Extract weighting value */
45637
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
45638
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
45639
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
45640
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
45641
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
45642
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
45643
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
45644
 
                                vof += nvof;                    /* Move to next vertex */
45645
 
                                vwe = wo3;                              /* Baricentric weighting */
45646
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
45647
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
45648
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
45649
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
45650
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
45651
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
45652
 
                        }
45653
 
                }
45654
 
                {
45655
 
                        unsigned int oti;       /* Vertex offset value */
45656
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
45657
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
45658
 
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
45659
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
45660
 
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
45661
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
45662
 
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
45663
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
45664
 
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
45665
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
45666
 
                        oti = ((ova5 >> 16) & 0xffff);  /* Extract integer part of result */
45667
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
45668
 
                }
45669
 
        }
 
44779
        imdi_imp *p = (imdi_imp *)(s->impl);
 
44780
        unsigned short *ip0 = (unsigned short *)inp[0];
 
44781
        unsigned short *op0 = (unsigned short *)outp[0];
 
44782
        unsigned short *ep = ip0 + npix * 4 ;
 
44783
        pointer it0 = (pointer)p->in_tables[0];
 
44784
        pointer it1 = (pointer)p->in_tables[1];
 
44785
        pointer it2 = (pointer)p->in_tables[2];
 
44786
        pointer it3 = (pointer)p->in_tables[3];
 
44787
        pointer ot0 = (pointer)p->out_tables[0];
 
44788
        pointer ot1 = (pointer)p->out_tables[1];
 
44789
        pointer ot2 = (pointer)p->out_tables[2];
 
44790
        pointer ot3 = (pointer)p->out_tables[3];
 
44791
        pointer ot4 = (pointer)p->out_tables[4];
 
44792
        pointer ot5 = (pointer)p->out_tables[5];
 
44793
        pointer im_base = (pointer)p->im_table;
 
44794
 
 
44795
        for(;ip0 < ep; ip0 += 4, op0 += 6) {
 
44796
                unsigned int ova0;      /* Output value accumulator */
 
44797
                unsigned int ova1;      /* Output value accumulator */
 
44798
                unsigned int ova2;      /* Output value accumulator */
 
44799
                unsigned int ova3;      /* Output value accumulator */
 
44800
                unsigned int ova4;      /* Output value accumulator */
 
44801
                unsigned int ova5;      /* Output value accumulator */
 
44802
                {
 
44803
                        pointer imp;
 
44804
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
44805
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
44806
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
44807
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
44808
                        {
 
44809
                                unsigned int ti_i;      /* Interpolation index variable */
 
44810
 
 
44811
                                ti_i  = IT_IX(it0, ip0[0]);
 
44812
                                wo0   = IT_WO(it0, ip0[0]);
 
44813
                                ti_i += IT_IX(it1, ip0[1]);
 
44814
                                wo1   = IT_WO(it1, ip0[1]);
 
44815
                                ti_i += IT_IX(it2, ip0[2]);
 
44816
                                wo2   = IT_WO(it2, ip0[2]);
 
44817
                                ti_i += IT_IX(it3, ip0[3]);
 
44818
                                wo3   = IT_WO(it3, ip0[3]);
 
44819
 
 
44820
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
44821
 
 
44822
                                /* Sort weighting values and vertex offset values */
 
44823
                                CEX(wo0, wo1);
 
44824
                                CEX(wo0, wo2);
 
44825
                                CEX(wo0, wo3);
 
44826
                                CEX(wo1, wo2);
 
44827
                                CEX(wo1, wo3);
 
44828
                                CEX(wo2, wo3);
 
44829
                        }
 
44830
                        {
 
44831
                                unsigned int nvof;      /* Next vertex offset value */
 
44832
                                unsigned int vof;       /* Vertex offset value */
 
44833
                                unsigned int vwe;       /* Vertex weighting */
 
44834
 
 
44835
                                vof = 0;                                /* First vertex offset is 0 */
 
44836
                                nvof = (wo0 & 0x7fff);  /* Extract offset value */
 
44837
                                wo0 = (wo0 >> 15);              /* Extract weighting value */
 
44838
                                vwe = 65536 - wo0;              /* Baricentric weighting */
 
44839
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
44840
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
44841
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
44842
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
44843
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
44844
                                ova5  = IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
44845
                                vof += nvof;                    /* Move to next vertex */
 
44846
                                nvof = (wo1 & 0x7fff);  /* Extract offset value */
 
44847
                                wo1 = (wo1 >> 15);              /* Extract weighting value */
 
44848
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
44849
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
44850
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
44851
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
44852
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
44853
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
44854
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
44855
                                vof += nvof;                    /* Move to next vertex */
 
44856
                                nvof = (wo2 & 0x7fff);  /* Extract offset value */
 
44857
                                wo2 = (wo2 >> 15);              /* Extract weighting value */
 
44858
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
44859
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
44860
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
44861
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
44862
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
44863
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
44864
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
44865
                                vof += nvof;                    /* Move to next vertex */
 
44866
                                nvof = (wo3 & 0x7fff);  /* Extract offset value */
 
44867
                                wo3 = (wo3 >> 15);              /* Extract weighting value */
 
44868
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
44869
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
44870
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
44871
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
44872
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
44873
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
44874
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
44875
                                vof += nvof;                    /* Move to next vertex */
 
44876
                                vwe = wo3;                              /* Baricentric weighting */
 
44877
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
44878
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
44879
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
44880
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
44881
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
44882
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
44883
                        }
 
44884
                }
 
44885
                {
 
44886
                        unsigned int oti;       /* Vertex offset value */
 
44887
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
44888
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
44889
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
 
44890
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
44891
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
 
44892
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
44893
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
 
44894
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
44895
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
 
44896
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
44897
                        oti = ((ova5 >> 16) & 0xffff);  /* Extract integer part of result */
 
44898
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
44899
                }
 
44900
        }
45670
44901
}
45671
44902
#undef IT_WO
45672
44903
#undef IT_IX
45679
44910
imdi_k129_gen(
45680
44911
genspec *g                      /* structure to be initialised */
45681
44912
) {
45682
 
        static unsigned char data[] = {
45683
 
                0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
45684
 
                0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
45685
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45686
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
45687
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
45688
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
45689
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
45690
 
                0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
45691
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
45692
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
45693
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
45694
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45695
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45696
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45697
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45698
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
45699
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
45700
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
45701
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
45702
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
45703
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
45704
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
45705
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
45706
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
45707
 
                0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
45708
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
45709
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
45710
 
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
45711
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45712
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45713
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45714
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45715
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
45716
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
45717
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
45718
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
45719
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
45720
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
45721
 
                0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45722
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
45723
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
45724
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
45725
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
45726
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
45727
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
45728
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
45729
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
45730
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
45731
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45732
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
45733
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
45734
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x34, 0x5f, 0x36, 0x5f, 
45735
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
45736
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
45737
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
45738
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
45739
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
45740
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
45741
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
45742
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45743
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45744
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45745
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45746
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
45747
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x32, 
45748
 
                0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45749
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45750
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
45751
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
45752
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
45753
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
45754
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
45755
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
45756
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
45757
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
45758
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
45759
 
                0x00, 0xf0, 0x04, 0x08 
45760
 
        };      /* Structure image */
45761
 
        
45762
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
44913
        static unsigned char data[] = {
 
44914
                0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
44915
                0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
44916
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44917
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44918
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44919
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44920
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44921
                0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
44922
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
44923
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
44924
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
44925
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44926
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44927
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44928
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44929
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44930
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44931
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44932
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44933
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
44934
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44935
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44936
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44937
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44938
                0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
44939
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
44940
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
44941
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
44942
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44943
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44944
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44945
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44946
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44947
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44948
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44949
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
44950
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
44951
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
44952
                0x15, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44953
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
44954
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
44955
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
44956
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
44957
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
44958
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
44959
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
44960
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
44961
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
44962
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44963
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
44964
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
44965
                0x2c, 0xf3, 0xdc, 0xb7, 0x34, 0x5f, 0x36, 0x5f,
 
44966
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
44967
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
44968
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
44969
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
44970
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
44971
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
44972
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
44973
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44974
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44975
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44976
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44977
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
44978
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x32,
 
44979
                0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44980
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
44981
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
44982
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
44983
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
44984
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
44985
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
44986
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
44987
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
44988
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
44989
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
44990
                0x00, 0xf0, 0x04, 0x08
 
44991
        };      /* Structure image */
 
44992
 
 
44993
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
45763
44994
}
45764
44995
 
45765
44996
static void
45766
44997
imdi_k129_tab(
45767
44998
tabspec *t                      /* structure to be initialised */
45768
44999
) {
45769
 
        static unsigned char data[] = {
45770
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
45771
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
45772
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
45773
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
45774
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
45775
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
45776
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
45777
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
45778
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
45779
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45780
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
45781
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
45782
 
                0x11, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
45783
 
                0x04, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 
45784
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
45785
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45786
 
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
45787
 
                0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
45788
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45789
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45790
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
45791
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
45792
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
45793
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
45794
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45795
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45796
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
45797
 
                0x00, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
45798
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
45799
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
45800
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
45801
 
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 
45802
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
45803
 
        };      /* Structure image */
45804
 
        
45805
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
45000
        static unsigned char data[] = {
 
45001
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
45002
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
45003
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
45004
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
45005
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
45006
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
45007
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
45008
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
45009
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
45010
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45011
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
45012
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
45013
                0x11, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
45014
                0x04, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00,
 
45015
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
45016
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45017
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
45018
                0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
45019
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45020
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45021
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
45022
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
45023
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
45024
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
45025
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45026
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45027
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45028
                0x00, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
45029
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
45030
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
45031
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
45032
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
 
45033
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
45034
        };      /* Structure image */
 
45035
 
 
45036
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
45806
45037
}
45807
45038
 
45808
 
 
45809
 
 
45810
 
 
45811
 
 
45812
 
 
45813
45039
/* Integer Multi-Dimensional Interpolation */
45814
45040
/* Interpolation Kernel Code */
45815
45041
/* Generated by cgen */
45818
45044
 
45819
45045
/* see the Licence.txt file for licencing details.*/
45820
45046
 
45821
 
 
45822
45047
/*
45823
45048
   Interpolation kernel specs:
45824
45049
 
45917
45142
void **inp,             /* pointer to input pointers */
45918
45143
unsigned int npix       /* Number of pixels to process */
45919
45144
) {
45920
 
        imdi_imp *p = (imdi_imp *)(s->impl);
45921
 
        unsigned short *ip0 = (unsigned short *)inp[0];
45922
 
        unsigned short *op0 = (unsigned short *)outp[0];
45923
 
        unsigned short *ep = ip0 + npix * 5 ;
45924
 
        pointer it0 = (pointer)p->in_tables[0];
45925
 
        pointer it1 = (pointer)p->in_tables[1];
45926
 
        pointer it2 = (pointer)p->in_tables[2];
45927
 
        pointer it3 = (pointer)p->in_tables[3];
45928
 
        pointer it4 = (pointer)p->in_tables[4];
45929
 
        pointer ot0 = (pointer)p->out_tables[0];
45930
 
        pointer ot1 = (pointer)p->out_tables[1];
45931
 
        pointer ot2 = (pointer)p->out_tables[2];
45932
 
        pointer ot3 = (pointer)p->out_tables[3];
45933
 
        pointer ot4 = (pointer)p->out_tables[4];
45934
 
        pointer ot5 = (pointer)p->out_tables[5];
45935
 
        pointer im_base = (pointer)p->im_table;
45936
 
        
45937
 
        for(;ip0 < ep; ip0 += 5, op0 += 6) {
45938
 
                unsigned int ova0;      /* Output value accumulator */
45939
 
                unsigned int ova1;      /* Output value accumulator */
45940
 
                unsigned int ova2;      /* Output value accumulator */
45941
 
                unsigned int ova3;      /* Output value accumulator */
45942
 
                unsigned int ova4;      /* Output value accumulator */
45943
 
                unsigned int ova5;      /* Output value accumulator */
45944
 
                {
45945
 
                        pointer imp;
45946
 
                        unsigned int we0;       /* Weighting value variable */
45947
 
                        unsigned int vo0;       /* Vertex offset variable */
45948
 
                        unsigned int we1;       /* Weighting value variable */
45949
 
                        unsigned int vo1;       /* Vertex offset variable */
45950
 
                        unsigned int we2;       /* Weighting value variable */
45951
 
                        unsigned int vo2;       /* Vertex offset variable */
45952
 
                        unsigned int we3;       /* Weighting value variable */
45953
 
                        unsigned int vo3;       /* Vertex offset variable */
45954
 
                        unsigned int we4;       /* Weighting value variable */
45955
 
                        unsigned int vo4;       /* Vertex offset variable */
45956
 
                        {
45957
 
                                unsigned int ti_i;      /* Interpolation index variable */
45958
 
                                
45959
 
                                ti_i  = IT_IX(it0, ip0[0]);
45960
 
                                we0   = IT_WE(it0, ip0[0]);
45961
 
                                vo0   = IT_VO(it0, ip0[0]);
45962
 
                                ti_i += IT_IX(it1, ip0[1]);
45963
 
                                we1   = IT_WE(it1, ip0[1]);
45964
 
                                vo1   = IT_VO(it1, ip0[1]);
45965
 
                                ti_i += IT_IX(it2, ip0[2]);
45966
 
                                we2   = IT_WE(it2, ip0[2]);
45967
 
                                vo2   = IT_VO(it2, ip0[2]);
45968
 
                                ti_i += IT_IX(it3, ip0[3]);
45969
 
                                we3   = IT_WE(it3, ip0[3]);
45970
 
                                vo3   = IT_VO(it3, ip0[3]);
45971
 
                                ti_i += IT_IX(it4, ip0[4]);
45972
 
                                we4   = IT_WE(it4, ip0[4]);
45973
 
                                vo4   = IT_VO(it4, ip0[4]);
45974
 
                                
45975
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
45976
 
                                
45977
 
                                /* Sort weighting values and vertex offset values */
45978
 
                                CEX(we0, vo0, we1, vo1);
45979
 
                                CEX(we0, vo0, we2, vo2);
45980
 
                                CEX(we0, vo0, we3, vo3);
45981
 
                                CEX(we0, vo0, we4, vo4);
45982
 
                                CEX(we1, vo1, we2, vo2);
45983
 
                                CEX(we1, vo1, we3, vo3);
45984
 
                                CEX(we1, vo1, we4, vo4);
45985
 
                                CEX(we2, vo2, we3, vo3);
45986
 
                                CEX(we2, vo2, we4, vo4);
45987
 
                                CEX(we3, vo3, we4, vo4);
45988
 
                        }
45989
 
                        {
45990
 
                                unsigned int vof;       /* Vertex offset value */
45991
 
                                unsigned int vwe;       /* Vertex weighting */
45992
 
                                
45993
 
                                vof = 0;                                /* First vertex offset is 0 */
45994
 
                                vwe = 65536 - we0;              /* Baricentric weighting */
45995
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
45996
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
45997
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
45998
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
45999
 
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
46000
 
                                ova5  = IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
46001
 
                                vof += vo0;                     /* Move to next vertex */
46002
 
                                vwe = we0 - we1;                /* Baricentric weighting */
46003
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
46004
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
46005
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
46006
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
46007
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
46008
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
46009
 
                                vof += vo1;                     /* Move to next vertex */
46010
 
                                vwe = we1 - we2;                /* Baricentric weighting */
46011
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
46012
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
46013
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
46014
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
46015
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
46016
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
46017
 
                                vof += vo2;                     /* Move to next vertex */
46018
 
                                vwe = we2 - we3;                /* Baricentric weighting */
46019
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
46020
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
46021
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
46022
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
46023
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
46024
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
46025
 
                                vof += vo3;                     /* Move to next vertex */
46026
 
                                vwe = we3 - we4;                /* Baricentric weighting */
46027
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
46028
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
46029
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
46030
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
46031
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
46032
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
46033
 
                                vof += vo4;                     /* Move to next vertex */
46034
 
                                vwe = we4;                              /* Baricentric weighting */
46035
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
46036
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
46037
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
46038
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
46039
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
46040
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
46041
 
                        }
46042
 
                }
46043
 
                {
46044
 
                        unsigned int oti;       /* Vertex offset value */
46045
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
46046
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
46047
 
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
46048
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
46049
 
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
46050
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
46051
 
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
46052
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
46053
 
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
46054
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
46055
 
                        oti = ((ova5 >> 16) & 0xffff);  /* Extract integer part of result */
46056
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
46057
 
                }
46058
 
        }
 
45145
        imdi_imp *p = (imdi_imp *)(s->impl);
 
45146
        unsigned short *ip0 = (unsigned short *)inp[0];
 
45147
        unsigned short *op0 = (unsigned short *)outp[0];
 
45148
        unsigned short *ep = ip0 + npix * 5 ;
 
45149
        pointer it0 = (pointer)p->in_tables[0];
 
45150
        pointer it1 = (pointer)p->in_tables[1];
 
45151
        pointer it2 = (pointer)p->in_tables[2];
 
45152
        pointer it3 = (pointer)p->in_tables[3];
 
45153
        pointer it4 = (pointer)p->in_tables[4];
 
45154
        pointer ot0 = (pointer)p->out_tables[0];
 
45155
        pointer ot1 = (pointer)p->out_tables[1];
 
45156
        pointer ot2 = (pointer)p->out_tables[2];
 
45157
        pointer ot3 = (pointer)p->out_tables[3];
 
45158
        pointer ot4 = (pointer)p->out_tables[4];
 
45159
        pointer ot5 = (pointer)p->out_tables[5];
 
45160
        pointer im_base = (pointer)p->im_table;
 
45161
 
 
45162
        for(;ip0 < ep; ip0 += 5, op0 += 6) {
 
45163
                unsigned int ova0;      /* Output value accumulator */
 
45164
                unsigned int ova1;      /* Output value accumulator */
 
45165
                unsigned int ova2;      /* Output value accumulator */
 
45166
                unsigned int ova3;      /* Output value accumulator */
 
45167
                unsigned int ova4;      /* Output value accumulator */
 
45168
                unsigned int ova5;      /* Output value accumulator */
 
45169
                {
 
45170
                        pointer imp;
 
45171
                        unsigned int we0;       /* Weighting value variable */
 
45172
                        unsigned int vo0;       /* Vertex offset variable */
 
45173
                        unsigned int we1;       /* Weighting value variable */
 
45174
                        unsigned int vo1;       /* Vertex offset variable */
 
45175
                        unsigned int we2;       /* Weighting value variable */
 
45176
                        unsigned int vo2;       /* Vertex offset variable */
 
45177
                        unsigned int we3;       /* Weighting value variable */
 
45178
                        unsigned int vo3;       /* Vertex offset variable */
 
45179
                        unsigned int we4;       /* Weighting value variable */
 
45180
                        unsigned int vo4;       /* Vertex offset variable */
 
45181
                        {
 
45182
                                unsigned int ti_i;      /* Interpolation index variable */
 
45183
 
 
45184
                                ti_i  = IT_IX(it0, ip0[0]);
 
45185
                                we0   = IT_WE(it0, ip0[0]);
 
45186
                                vo0   = IT_VO(it0, ip0[0]);
 
45187
                                ti_i += IT_IX(it1, ip0[1]);
 
45188
                                we1   = IT_WE(it1, ip0[1]);
 
45189
                                vo1   = IT_VO(it1, ip0[1]);
 
45190
                                ti_i += IT_IX(it2, ip0[2]);
 
45191
                                we2   = IT_WE(it2, ip0[2]);
 
45192
                                vo2   = IT_VO(it2, ip0[2]);
 
45193
                                ti_i += IT_IX(it3, ip0[3]);
 
45194
                                we3   = IT_WE(it3, ip0[3]);
 
45195
                                vo3   = IT_VO(it3, ip0[3]);
 
45196
                                ti_i += IT_IX(it4, ip0[4]);
 
45197
                                we4   = IT_WE(it4, ip0[4]);
 
45198
                                vo4   = IT_VO(it4, ip0[4]);
 
45199
 
 
45200
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
45201
 
 
45202
                                /* Sort weighting values and vertex offset values */
 
45203
                                CEX(we0, vo0, we1, vo1);
 
45204
                                CEX(we0, vo0, we2, vo2);
 
45205
                                CEX(we0, vo0, we3, vo3);
 
45206
                                CEX(we0, vo0, we4, vo4);
 
45207
                                CEX(we1, vo1, we2, vo2);
 
45208
                                CEX(we1, vo1, we3, vo3);
 
45209
                                CEX(we1, vo1, we4, vo4);
 
45210
                                CEX(we2, vo2, we3, vo3);
 
45211
                                CEX(we2, vo2, we4, vo4);
 
45212
                                CEX(we3, vo3, we4, vo4);
 
45213
                        }
 
45214
                        {
 
45215
                                unsigned int vof;       /* Vertex offset value */
 
45216
                                unsigned int vwe;       /* Vertex weighting */
 
45217
 
 
45218
                                vof = 0;                                /* First vertex offset is 0 */
 
45219
                                vwe = 65536 - we0;              /* Baricentric weighting */
 
45220
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
45221
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
45222
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
45223
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
45224
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
45225
                                ova5  = IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
45226
                                vof += vo0;                     /* Move to next vertex */
 
45227
                                vwe = we0 - we1;                /* Baricentric weighting */
 
45228
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
45229
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
45230
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
45231
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
45232
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
45233
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
45234
                                vof += vo1;                     /* Move to next vertex */
 
45235
                                vwe = we1 - we2;                /* Baricentric weighting */
 
45236
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
45237
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
45238
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
45239
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
45240
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
45241
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
45242
                                vof += vo2;                     /* Move to next vertex */
 
45243
                                vwe = we2 - we3;                /* Baricentric weighting */
 
45244
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
45245
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
45246
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
45247
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
45248
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
45249
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
45250
                                vof += vo3;                     /* Move to next vertex */
 
45251
                                vwe = we3 - we4;                /* Baricentric weighting */
 
45252
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
45253
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
45254
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
45255
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
45256
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
45257
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
45258
                                vof += vo4;                     /* Move to next vertex */
 
45259
                                vwe = we4;                              /* Baricentric weighting */
 
45260
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
45261
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
45262
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
45263
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
45264
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
45265
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
45266
                        }
 
45267
                }
 
45268
                {
 
45269
                        unsigned int oti;       /* Vertex offset value */
 
45270
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
45271
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
45272
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
 
45273
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
45274
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
 
45275
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
45276
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
 
45277
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
45278
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
 
45279
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
45280
                        oti = ((ova5 >> 16) & 0xffff);  /* Extract integer part of result */
 
45281
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
45282
                }
 
45283
        }
46059
45284
}
46060
45285
#undef IT_WE
46061
45286
#undef IT_VO
46069
45294
imdi_k130_gen(
46070
45295
genspec *g                      /* structure to be initialised */
46071
45296
) {
46072
 
        static unsigned char data[] = {
46073
 
                0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
46074
 
                0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
46075
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46076
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46077
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46078
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46079
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46080
 
                0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
46081
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
46082
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
46083
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
46084
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46085
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46086
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46087
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46088
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46089
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46090
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46091
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46092
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
46093
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46094
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46095
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46096
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46097
 
                0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
46098
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
46099
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
46100
 
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
46101
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46102
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46103
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46104
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46105
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46106
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46107
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46108
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46109
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
46110
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
46111
 
                0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46112
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
46113
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
46114
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
46115
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
46116
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
46117
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
46118
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
46119
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
46120
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
46121
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46122
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
46123
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
46124
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x35, 0x5f, 0x36, 0x5f, 
46125
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
46126
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
46127
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
46128
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
46129
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
46130
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
46131
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
46132
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46133
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46134
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46135
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46136
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
46137
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x33, 
46138
 
                0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46139
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46140
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
46141
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
46142
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
46143
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
46144
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
46145
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
46146
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
46147
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
46148
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
46149
 
                0x00, 0xf0, 0x04, 0x08 
46150
 
        };      /* Structure image */
46151
 
        
46152
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
45297
        static unsigned char data[] = {
 
45298
                0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
45299
                0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
45300
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45301
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
45302
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
45303
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
45304
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
45305
                0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
45306
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
45307
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
45308
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
45309
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45310
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45311
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45312
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45313
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
45314
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
45315
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
45316
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
45317
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
45318
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
45319
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
45320
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
45321
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
45322
                0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
45323
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
45324
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
45325
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
45326
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45327
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45328
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45329
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45330
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
45331
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
45332
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
45333
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
45334
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
45335
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
45336
                0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45337
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
45338
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
45339
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
45340
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
45341
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
45342
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
45343
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
45344
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
45345
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
45346
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45347
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
45348
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
45349
                0x2c, 0xf3, 0xdc, 0xb7, 0x35, 0x5f, 0x36, 0x5f,
 
45350
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
45351
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
45352
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
45353
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
45354
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
45355
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
45356
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
45357
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45358
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45359
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45360
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45361
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
45362
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x33,
 
45363
                0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45364
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45365
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
45366
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
45367
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
45368
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
45369
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
45370
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
45371
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
45372
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
45373
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
45374
                0x00, 0xf0, 0x04, 0x08
 
45375
        };      /* Structure image */
 
45376
 
 
45377
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
46153
45378
}
46154
45379
 
46155
45380
static void
46156
45381
imdi_k130_tab(
46157
45382
tabspec *t                      /* structure to be initialised */
46158
45383
) {
46159
 
        static unsigned char data[] = {
46160
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
46161
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
46162
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
46163
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
46164
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
46165
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
46166
 
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 
46167
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
46168
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
46169
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46170
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
46171
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
46172
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
46173
 
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
46174
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
46175
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46176
 
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
46177
 
                0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
46178
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46179
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46180
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
46181
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
46182
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
46183
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
46184
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46185
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46186
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46187
 
                0x00, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
46188
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46189
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46190
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46191
 
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 
46192
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
46193
 
        };      /* Structure image */
46194
 
        
46195
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
45384
        static unsigned char data[] = {
 
45385
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
45386
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
45387
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
45388
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
45389
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
45390
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
45391
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
 
45392
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
45393
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
45394
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45395
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
45396
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
45397
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
45398
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
45399
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
45400
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45401
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
45402
                0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
45403
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45404
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45405
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
45406
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
45407
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
45408
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
45409
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45410
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45411
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45412
                0x00, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
45413
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
45414
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
45415
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
45416
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
 
45417
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
45418
        };      /* Structure image */
 
45419
 
 
45420
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
46196
45421
}
46197
45422
 
46198
 
 
46199
 
 
46200
 
 
46201
 
 
46202
 
 
46203
45423
/* Integer Multi-Dimensional Interpolation */
46204
45424
/* Interpolation Kernel Code */
46205
45425
/* Generated by cgen */
46208
45428
 
46209
45429
/* see the Licence.txt file for licencing details.*/
46210
45430
 
46211
 
 
46212
45431
/*
46213
45432
   Interpolation kernel specs:
46214
45433
 
46309
45528
void **inp,             /* pointer to input pointers */
46310
45529
unsigned int npix       /* Number of pixels to process */
46311
45530
) {
46312
 
        imdi_imp *p = (imdi_imp *)(s->impl);
46313
 
        unsigned short *ip0 = (unsigned short *)inp[0];
46314
 
        unsigned short *op0 = (unsigned short *)outp[0];
46315
 
        unsigned short *ep = ip0 + npix * 6 ;
46316
 
        pointer it0 = (pointer)p->in_tables[0];
46317
 
        pointer it1 = (pointer)p->in_tables[1];
46318
 
        pointer it2 = (pointer)p->in_tables[2];
46319
 
        pointer it3 = (pointer)p->in_tables[3];
46320
 
        pointer it4 = (pointer)p->in_tables[4];
46321
 
        pointer it5 = (pointer)p->in_tables[5];
46322
 
        pointer ot0 = (pointer)p->out_tables[0];
46323
 
        pointer ot1 = (pointer)p->out_tables[1];
46324
 
        pointer ot2 = (pointer)p->out_tables[2];
46325
 
        pointer ot3 = (pointer)p->out_tables[3];
46326
 
        pointer ot4 = (pointer)p->out_tables[4];
46327
 
        pointer ot5 = (pointer)p->out_tables[5];
46328
 
        pointer im_base = (pointer)p->im_table;
46329
 
        
46330
 
        for(;ip0 < ep; ip0 += 6, op0 += 6) {
46331
 
                unsigned int ova0;      /* Output value accumulator */
46332
 
                unsigned int ova1;      /* Output value accumulator */
46333
 
                unsigned int ova2;      /* Output value accumulator */
46334
 
                unsigned int ova3;      /* Output value accumulator */
46335
 
                unsigned int ova4;      /* Output value accumulator */
46336
 
                unsigned int ova5;      /* Output value accumulator */
46337
 
                {
46338
 
                        pointer imp;
46339
 
                        unsigned int we0;       /* Weighting value variable */
46340
 
                        unsigned int vo0;       /* Vertex offset variable */
46341
 
                        unsigned int we1;       /* Weighting value variable */
46342
 
                        unsigned int vo1;       /* Vertex offset variable */
46343
 
                        unsigned int we2;       /* Weighting value variable */
46344
 
                        unsigned int vo2;       /* Vertex offset variable */
46345
 
                        unsigned int we3;       /* Weighting value variable */
46346
 
                        unsigned int vo3;       /* Vertex offset variable */
46347
 
                        unsigned int we4;       /* Weighting value variable */
46348
 
                        unsigned int vo4;       /* Vertex offset variable */
46349
 
                        unsigned int we5;       /* Weighting value variable */
46350
 
                        unsigned int vo5;       /* Vertex offset variable */
46351
 
                        {
46352
 
                                unsigned int ti_i;      /* Interpolation index variable */
46353
 
                                
46354
 
                                ti_i  = IT_IX(it0, ip0[0]);
46355
 
                                we0   = IT_WE(it0, ip0[0]);
46356
 
                                vo0   = IT_VO(it0, ip0[0]);
46357
 
                                ti_i += IT_IX(it1, ip0[1]);
46358
 
                                we1   = IT_WE(it1, ip0[1]);
46359
 
                                vo1   = IT_VO(it1, ip0[1]);
46360
 
                                ti_i += IT_IX(it2, ip0[2]);
46361
 
                                we2   = IT_WE(it2, ip0[2]);
46362
 
                                vo2   = IT_VO(it2, ip0[2]);
46363
 
                                ti_i += IT_IX(it3, ip0[3]);
46364
 
                                we3   = IT_WE(it3, ip0[3]);
46365
 
                                vo3   = IT_VO(it3, ip0[3]);
46366
 
                                ti_i += IT_IX(it4, ip0[4]);
46367
 
                                we4   = IT_WE(it4, ip0[4]);
46368
 
                                vo4   = IT_VO(it4, ip0[4]);
46369
 
                                ti_i += IT_IX(it5, ip0[5]);
46370
 
                                we5   = IT_WE(it5, ip0[5]);
46371
 
                                vo5   = IT_VO(it5, ip0[5]);
46372
 
                                
46373
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
46374
 
                                
46375
 
                                /* Sort weighting values and vertex offset values */
46376
 
                                CEX(we0, vo0, we1, vo1);
46377
 
                                CEX(we0, vo0, we2, vo2);
46378
 
                                CEX(we0, vo0, we3, vo3);
46379
 
                                CEX(we0, vo0, we4, vo4);
46380
 
                                CEX(we0, vo0, we5, vo5);
46381
 
                                CEX(we1, vo1, we2, vo2);
46382
 
                                CEX(we1, vo1, we3, vo3);
46383
 
                                CEX(we1, vo1, we4, vo4);
46384
 
                                CEX(we1, vo1, we5, vo5);
46385
 
                                CEX(we2, vo2, we3, vo3);
46386
 
                                CEX(we2, vo2, we4, vo4);
46387
 
                                CEX(we2, vo2, we5, vo5);
46388
 
                                CEX(we3, vo3, we4, vo4);
46389
 
                                CEX(we3, vo3, we5, vo5);
46390
 
                                CEX(we4, vo4, we5, vo5);
46391
 
                        }
46392
 
                        {
46393
 
                                unsigned int vof;       /* Vertex offset value */
46394
 
                                unsigned int vwe;       /* Vertex weighting */
46395
 
                                
46396
 
                                vof = 0;                                /* First vertex offset is 0 */
46397
 
                                vwe = 65536 - we0;              /* Baricentric weighting */
46398
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
46399
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
46400
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
46401
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
46402
 
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
46403
 
                                ova5  = IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
46404
 
                                vof += vo0;                     /* Move to next vertex */
46405
 
                                vwe = we0 - we1;                /* Baricentric weighting */
46406
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
46407
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
46408
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
46409
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
46410
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
46411
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
46412
 
                                vof += vo1;                     /* Move to next vertex */
46413
 
                                vwe = we1 - we2;                /* Baricentric weighting */
46414
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
46415
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
46416
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
46417
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
46418
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
46419
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
46420
 
                                vof += vo2;                     /* Move to next vertex */
46421
 
                                vwe = we2 - we3;                /* Baricentric weighting */
46422
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
46423
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
46424
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
46425
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
46426
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
46427
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
46428
 
                                vof += vo3;                     /* Move to next vertex */
46429
 
                                vwe = we3 - we4;                /* Baricentric weighting */
46430
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
46431
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
46432
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
46433
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
46434
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
46435
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
46436
 
                                vof += vo4;                     /* Move to next vertex */
46437
 
                                vwe = we4 - we5;                /* Baricentric weighting */
46438
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
46439
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
46440
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
46441
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
46442
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
46443
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
46444
 
                                vof += vo5;                     /* Move to next vertex */
46445
 
                                vwe = we5;                              /* Baricentric weighting */
46446
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
46447
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
46448
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
46449
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
46450
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
46451
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
46452
 
                        }
46453
 
                }
46454
 
                {
46455
 
                        unsigned int oti;       /* Vertex offset value */
46456
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
46457
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
46458
 
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
46459
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
46460
 
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
46461
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
46462
 
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
46463
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
46464
 
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
46465
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
46466
 
                        oti = ((ova5 >> 16) & 0xffff);  /* Extract integer part of result */
46467
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
46468
 
                }
46469
 
        }
 
45531
        imdi_imp *p = (imdi_imp *)(s->impl);
 
45532
        unsigned short *ip0 = (unsigned short *)inp[0];
 
45533
        unsigned short *op0 = (unsigned short *)outp[0];
 
45534
        unsigned short *ep = ip0 + npix * 6 ;
 
45535
        pointer it0 = (pointer)p->in_tables[0];
 
45536
        pointer it1 = (pointer)p->in_tables[1];
 
45537
        pointer it2 = (pointer)p->in_tables[2];
 
45538
        pointer it3 = (pointer)p->in_tables[3];
 
45539
        pointer it4 = (pointer)p->in_tables[4];
 
45540
        pointer it5 = (pointer)p->in_tables[5];
 
45541
        pointer ot0 = (pointer)p->out_tables[0];
 
45542
        pointer ot1 = (pointer)p->out_tables[1];
 
45543
        pointer ot2 = (pointer)p->out_tables[2];
 
45544
        pointer ot3 = (pointer)p->out_tables[3];
 
45545
        pointer ot4 = (pointer)p->out_tables[4];
 
45546
        pointer ot5 = (pointer)p->out_tables[5];
 
45547
        pointer im_base = (pointer)p->im_table;
 
45548
 
 
45549
        for(;ip0 < ep; ip0 += 6, op0 += 6) {
 
45550
                unsigned int ova0;      /* Output value accumulator */
 
45551
                unsigned int ova1;      /* Output value accumulator */
 
45552
                unsigned int ova2;      /* Output value accumulator */
 
45553
                unsigned int ova3;      /* Output value accumulator */
 
45554
                unsigned int ova4;      /* Output value accumulator */
 
45555
                unsigned int ova5;      /* Output value accumulator */
 
45556
                {
 
45557
                        pointer imp;
 
45558
                        unsigned int we0;       /* Weighting value variable */
 
45559
                        unsigned int vo0;       /* Vertex offset variable */
 
45560
                        unsigned int we1;       /* Weighting value variable */
 
45561
                        unsigned int vo1;       /* Vertex offset variable */
 
45562
                        unsigned int we2;       /* Weighting value variable */
 
45563
                        unsigned int vo2;       /* Vertex offset variable */
 
45564
                        unsigned int we3;       /* Weighting value variable */
 
45565
                        unsigned int vo3;       /* Vertex offset variable */
 
45566
                        unsigned int we4;       /* Weighting value variable */
 
45567
                        unsigned int vo4;       /* Vertex offset variable */
 
45568
                        unsigned int we5;       /* Weighting value variable */
 
45569
                        unsigned int vo5;       /* Vertex offset variable */
 
45570
                        {
 
45571
                                unsigned int ti_i;      /* Interpolation index variable */
 
45572
 
 
45573
                                ti_i  = IT_IX(it0, ip0[0]);
 
45574
                                we0   = IT_WE(it0, ip0[0]);
 
45575
                                vo0   = IT_VO(it0, ip0[0]);
 
45576
                                ti_i += IT_IX(it1, ip0[1]);
 
45577
                                we1   = IT_WE(it1, ip0[1]);
 
45578
                                vo1   = IT_VO(it1, ip0[1]);
 
45579
                                ti_i += IT_IX(it2, ip0[2]);
 
45580
                                we2   = IT_WE(it2, ip0[2]);
 
45581
                                vo2   = IT_VO(it2, ip0[2]);
 
45582
                                ti_i += IT_IX(it3, ip0[3]);
 
45583
                                we3   = IT_WE(it3, ip0[3]);
 
45584
                                vo3   = IT_VO(it3, ip0[3]);
 
45585
                                ti_i += IT_IX(it4, ip0[4]);
 
45586
                                we4   = IT_WE(it4, ip0[4]);
 
45587
                                vo4   = IT_VO(it4, ip0[4]);
 
45588
                                ti_i += IT_IX(it5, ip0[5]);
 
45589
                                we5   = IT_WE(it5, ip0[5]);
 
45590
                                vo5   = IT_VO(it5, ip0[5]);
 
45591
 
 
45592
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
45593
 
 
45594
                                /* Sort weighting values and vertex offset values */
 
45595
                                CEX(we0, vo0, we1, vo1);
 
45596
                                CEX(we0, vo0, we2, vo2);
 
45597
                                CEX(we0, vo0, we3, vo3);
 
45598
                                CEX(we0, vo0, we4, vo4);
 
45599
                                CEX(we0, vo0, we5, vo5);
 
45600
                                CEX(we1, vo1, we2, vo2);
 
45601
                                CEX(we1, vo1, we3, vo3);
 
45602
                                CEX(we1, vo1, we4, vo4);
 
45603
                                CEX(we1, vo1, we5, vo5);
 
45604
                                CEX(we2, vo2, we3, vo3);
 
45605
                                CEX(we2, vo2, we4, vo4);
 
45606
                                CEX(we2, vo2, we5, vo5);
 
45607
                                CEX(we3, vo3, we4, vo4);
 
45608
                                CEX(we3, vo3, we5, vo5);
 
45609
                                CEX(we4, vo4, we5, vo5);
 
45610
                        }
 
45611
                        {
 
45612
                                unsigned int vof;       /* Vertex offset value */
 
45613
                                unsigned int vwe;       /* Vertex weighting */
 
45614
 
 
45615
                                vof = 0;                                /* First vertex offset is 0 */
 
45616
                                vwe = 65536 - we0;              /* Baricentric weighting */
 
45617
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
45618
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
45619
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
45620
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
45621
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
45622
                                ova5  = IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
45623
                                vof += vo0;                     /* Move to next vertex */
 
45624
                                vwe = we0 - we1;                /* Baricentric weighting */
 
45625
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
45626
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
45627
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
45628
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
45629
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
45630
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
45631
                                vof += vo1;                     /* Move to next vertex */
 
45632
                                vwe = we1 - we2;                /* Baricentric weighting */
 
45633
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
45634
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
45635
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
45636
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
45637
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
45638
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
45639
                                vof += vo2;                     /* Move to next vertex */
 
45640
                                vwe = we2 - we3;                /* Baricentric weighting */
 
45641
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
45642
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
45643
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
45644
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
45645
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
45646
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
45647
                                vof += vo3;                     /* Move to next vertex */
 
45648
                                vwe = we3 - we4;                /* Baricentric weighting */
 
45649
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
45650
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
45651
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
45652
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
45653
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
45654
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
45655
                                vof += vo4;                     /* Move to next vertex */
 
45656
                                vwe = we4 - we5;                /* Baricentric weighting */
 
45657
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
45658
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
45659
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
45660
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
45661
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
45662
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
45663
                                vof += vo5;                     /* Move to next vertex */
 
45664
                                vwe = we5;                              /* Baricentric weighting */
 
45665
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
45666
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
45667
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
45668
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
45669
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
45670
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
45671
                        }
 
45672
                }
 
45673
                {
 
45674
                        unsigned int oti;       /* Vertex offset value */
 
45675
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
45676
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
45677
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
 
45678
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
45679
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
 
45680
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
45681
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
 
45682
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
45683
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
 
45684
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
45685
                        oti = ((ova5 >> 16) & 0xffff);  /* Extract integer part of result */
 
45686
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
45687
                }
 
45688
        }
46470
45689
}
46471
45690
#undef IT_WE
46472
45691
#undef IT_VO
46480
45699
imdi_k131_gen(
46481
45700
genspec *g                      /* structure to be initialised */
46482
45701
) {
46483
 
        static unsigned char data[] = {
46484
 
                0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
46485
 
                0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
46486
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46487
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46488
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46489
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46490
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46491
 
                0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
46492
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
46493
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
46494
 
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
46495
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46496
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46497
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46498
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46499
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46500
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46501
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46502
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46503
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
46504
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46505
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46506
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46507
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46508
 
                0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
46509
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
46510
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
46511
 
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
46512
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46513
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46514
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46515
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46516
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46517
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46518
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46519
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46520
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
46521
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
46522
 
                0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46523
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
46524
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
46525
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
46526
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
46527
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
46528
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
46529
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
46530
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
46531
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
46532
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46533
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
46534
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
46535
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x36, 0x5f, 0x36, 0x5f, 
46536
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
46537
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
46538
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
46539
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
46540
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
46541
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
46542
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
46543
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46544
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46545
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46546
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46547
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
46548
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x33, 
46549
 
                0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46550
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46551
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
46552
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
46553
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
46554
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
46555
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
46556
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
46557
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
46558
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
46559
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
46560
 
                0x00, 0xf0, 0x04, 0x08 
46561
 
        };      /* Structure image */
46562
 
        
46563
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
45702
        static unsigned char data[] = {
 
45703
                0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
45704
                0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
45705
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45706
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
45707
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
45708
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
45709
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
45710
                0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
45711
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
45712
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
45713
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
45714
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45715
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45716
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45717
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45718
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
45719
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
45720
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
45721
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
45722
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
45723
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
45724
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
45725
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
45726
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
45727
                0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
45728
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
45729
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
45730
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
45731
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45732
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45733
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45734
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45735
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
45736
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
45737
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
45738
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
45739
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
45740
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
45741
                0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45742
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
45743
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
45744
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
45745
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
45746
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
45747
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
45748
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
45749
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
45750
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
45751
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45752
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
45753
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
45754
                0x2c, 0xf3, 0xdc, 0xb7, 0x36, 0x5f, 0x36, 0x5f,
 
45755
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
45756
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
45757
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
45758
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
45759
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
45760
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
45761
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
45762
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45763
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45764
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45765
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45766
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
45767
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x33,
 
45768
                0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45769
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45770
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
45771
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
45772
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
45773
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
45774
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
45775
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
45776
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
45777
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
45778
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
45779
                0x00, 0xf0, 0x04, 0x08
 
45780
        };      /* Structure image */
 
45781
 
 
45782
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
46564
45783
}
46565
45784
 
46566
45785
static void
46567
45786
imdi_k131_tab(
46568
45787
tabspec *t                      /* structure to be initialised */
46569
45788
) {
46570
 
        static unsigned char data[] = {
46571
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
46572
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
46573
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
46574
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
46575
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
46576
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
46577
 
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 
46578
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
46579
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
46580
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46581
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
46582
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
46583
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
46584
 
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
46585
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
46586
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46587
 
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
46588
 
                0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
46589
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46590
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46591
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
46592
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
46593
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
46594
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
46595
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46596
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46597
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46598
 
                0x00, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
46599
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46600
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46601
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46602
 
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 
46603
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
46604
 
        };      /* Structure image */
46605
 
        
46606
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
45789
        static unsigned char data[] = {
 
45790
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
45791
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
45792
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
45793
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
45794
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
45795
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
45796
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
 
45797
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
45798
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
45799
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45800
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
45801
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
45802
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
45803
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
45804
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
45805
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45806
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
45807
                0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
45808
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45809
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45810
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
45811
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
45812
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
45813
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
45814
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45815
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45816
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
45817
                0x00, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
45818
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
45819
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
45820
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
45821
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
 
45822
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
45823
        };      /* Structure image */
 
45824
 
 
45825
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
46607
45826
}
46608
45827
 
46609
 
 
46610
 
 
46611
 
 
46612
 
 
46613
 
 
46614
45828
/* Integer Multi-Dimensional Interpolation */
46615
45829
/* Interpolation Kernel Code */
46616
45830
/* Generated by cgen */
46619
45833
 
46620
45834
/* see the Licence.txt file for licencing details.*/
46621
45835
 
46622
 
 
46623
45836
/*
46624
45837
   Interpolation kernel specs:
46625
45838
 
46722
45935
void **inp,             /* pointer to input pointers */
46723
45936
unsigned int npix       /* Number of pixels to process */
46724
45937
) {
46725
 
        imdi_imp *p = (imdi_imp *)(s->impl);
46726
 
        unsigned short *ip0 = (unsigned short *)inp[0];
46727
 
        unsigned short *op0 = (unsigned short *)outp[0];
46728
 
        unsigned short *ep = ip0 + npix * 7 ;
46729
 
        pointer it0 = (pointer)p->in_tables[0];
46730
 
        pointer it1 = (pointer)p->in_tables[1];
46731
 
        pointer it2 = (pointer)p->in_tables[2];
46732
 
        pointer it3 = (pointer)p->in_tables[3];
46733
 
        pointer it4 = (pointer)p->in_tables[4];
46734
 
        pointer it5 = (pointer)p->in_tables[5];
46735
 
        pointer it6 = (pointer)p->in_tables[6];
46736
 
        pointer ot0 = (pointer)p->out_tables[0];
46737
 
        pointer ot1 = (pointer)p->out_tables[1];
46738
 
        pointer ot2 = (pointer)p->out_tables[2];
46739
 
        pointer ot3 = (pointer)p->out_tables[3];
46740
 
        pointer ot4 = (pointer)p->out_tables[4];
46741
 
        pointer ot5 = (pointer)p->out_tables[5];
46742
 
        pointer im_base = (pointer)p->im_table;
46743
 
        
46744
 
        for(;ip0 < ep; ip0 += 7, op0 += 6) {
46745
 
                unsigned int ova0;      /* Output value accumulator */
46746
 
                unsigned int ova1;      /* Output value accumulator */
46747
 
                unsigned int ova2;      /* Output value accumulator */
46748
 
                unsigned int ova3;      /* Output value accumulator */
46749
 
                unsigned int ova4;      /* Output value accumulator */
46750
 
                unsigned int ova5;      /* Output value accumulator */
46751
 
                {
46752
 
                        pointer imp;
46753
 
                        unsigned int we0;       /* Weighting value variable */
46754
 
                        unsigned int vo0;       /* Vertex offset variable */
46755
 
                        unsigned int we1;       /* Weighting value variable */
46756
 
                        unsigned int vo1;       /* Vertex offset variable */
46757
 
                        unsigned int we2;       /* Weighting value variable */
46758
 
                        unsigned int vo2;       /* Vertex offset variable */
46759
 
                        unsigned int we3;       /* Weighting value variable */
46760
 
                        unsigned int vo3;       /* Vertex offset variable */
46761
 
                        unsigned int we4;       /* Weighting value variable */
46762
 
                        unsigned int vo4;       /* Vertex offset variable */
46763
 
                        unsigned int we5;       /* Weighting value variable */
46764
 
                        unsigned int vo5;       /* Vertex offset variable */
46765
 
                        unsigned int we6;       /* Weighting value variable */
46766
 
                        unsigned int vo6;       /* Vertex offset variable */
46767
 
                        {
46768
 
                                unsigned int ti_i;      /* Interpolation index variable */
46769
 
                                
46770
 
                                ti_i  = IT_IX(it0, ip0[0]);
46771
 
                                we0   = IT_WE(it0, ip0[0]);
46772
 
                                vo0   = IT_VO(it0, ip0[0]);
46773
 
                                ti_i += IT_IX(it1, ip0[1]);
46774
 
                                we1   = IT_WE(it1, ip0[1]);
46775
 
                                vo1   = IT_VO(it1, ip0[1]);
46776
 
                                ti_i += IT_IX(it2, ip0[2]);
46777
 
                                we2   = IT_WE(it2, ip0[2]);
46778
 
                                vo2   = IT_VO(it2, ip0[2]);
46779
 
                                ti_i += IT_IX(it3, ip0[3]);
46780
 
                                we3   = IT_WE(it3, ip0[3]);
46781
 
                                vo3   = IT_VO(it3, ip0[3]);
46782
 
                                ti_i += IT_IX(it4, ip0[4]);
46783
 
                                we4   = IT_WE(it4, ip0[4]);
46784
 
                                vo4   = IT_VO(it4, ip0[4]);
46785
 
                                ti_i += IT_IX(it5, ip0[5]);
46786
 
                                we5   = IT_WE(it5, ip0[5]);
46787
 
                                vo5   = IT_VO(it5, ip0[5]);
46788
 
                                ti_i += IT_IX(it6, ip0[6]);
46789
 
                                we6   = IT_WE(it6, ip0[6]);
46790
 
                                vo6   = IT_VO(it6, ip0[6]);
46791
 
                                
46792
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
46793
 
                                
46794
 
                                /* Sort weighting values and vertex offset values */
46795
 
                                CEX(we0, vo0, we1, vo1);
46796
 
                                CEX(we0, vo0, we2, vo2);
46797
 
                                CEX(we0, vo0, we3, vo3);
46798
 
                                CEX(we0, vo0, we4, vo4);
46799
 
                                CEX(we0, vo0, we5, vo5);
46800
 
                                CEX(we0, vo0, we6, vo6);
46801
 
                                CEX(we1, vo1, we2, vo2);
46802
 
                                CEX(we1, vo1, we3, vo3);
46803
 
                                CEX(we1, vo1, we4, vo4);
46804
 
                                CEX(we1, vo1, we5, vo5);
46805
 
                                CEX(we1, vo1, we6, vo6);
46806
 
                                CEX(we2, vo2, we3, vo3);
46807
 
                                CEX(we2, vo2, we4, vo4);
46808
 
                                CEX(we2, vo2, we5, vo5);
46809
 
                                CEX(we2, vo2, we6, vo6);
46810
 
                                CEX(we3, vo3, we4, vo4);
46811
 
                                CEX(we3, vo3, we5, vo5);
46812
 
                                CEX(we3, vo3, we6, vo6);
46813
 
                                CEX(we4, vo4, we5, vo5);
46814
 
                                CEX(we4, vo4, we6, vo6);
46815
 
                                CEX(we5, vo5, we6, vo6);
46816
 
                        }
46817
 
                        {
46818
 
                                unsigned int vof;       /* Vertex offset value */
46819
 
                                unsigned int vwe;       /* Vertex weighting */
46820
 
                                
46821
 
                                vof = 0;                                /* First vertex offset is 0 */
46822
 
                                vwe = 65536 - we0;              /* Baricentric weighting */
46823
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
46824
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
46825
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
46826
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
46827
 
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
46828
 
                                ova5  = IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
46829
 
                                vof += vo0;                     /* Move to next vertex */
46830
 
                                vwe = we0 - we1;                /* Baricentric weighting */
46831
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
46832
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
46833
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
46834
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
46835
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
46836
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
46837
 
                                vof += vo1;                     /* Move to next vertex */
46838
 
                                vwe = we1 - we2;                /* Baricentric weighting */
46839
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
46840
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
46841
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
46842
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
46843
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
46844
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
46845
 
                                vof += vo2;                     /* Move to next vertex */
46846
 
                                vwe = we2 - we3;                /* Baricentric weighting */
46847
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
46848
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
46849
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
46850
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
46851
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
46852
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
46853
 
                                vof += vo3;                     /* Move to next vertex */
46854
 
                                vwe = we3 - we4;                /* Baricentric weighting */
46855
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
46856
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
46857
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
46858
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
46859
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
46860
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
46861
 
                                vof += vo4;                     /* Move to next vertex */
46862
 
                                vwe = we4 - we5;                /* Baricentric weighting */
46863
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
46864
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
46865
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
46866
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
46867
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
46868
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
46869
 
                                vof += vo5;                     /* Move to next vertex */
46870
 
                                vwe = we5 - we6;                /* Baricentric weighting */
46871
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
46872
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
46873
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
46874
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
46875
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
46876
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
46877
 
                                vof += vo6;                     /* Move to next vertex */
46878
 
                                vwe = we6;                              /* Baricentric weighting */
46879
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
46880
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
46881
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
46882
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
46883
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
46884
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
46885
 
                        }
46886
 
                }
46887
 
                {
46888
 
                        unsigned int oti;       /* Vertex offset value */
46889
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
46890
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
46891
 
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
46892
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
46893
 
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
46894
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
46895
 
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
46896
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
46897
 
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
46898
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
46899
 
                        oti = ((ova5 >> 16) & 0xffff);  /* Extract integer part of result */
46900
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
46901
 
                }
46902
 
        }
 
45938
        imdi_imp *p = (imdi_imp *)(s->impl);
 
45939
        unsigned short *ip0 = (unsigned short *)inp[0];
 
45940
        unsigned short *op0 = (unsigned short *)outp[0];
 
45941
        unsigned short *ep = ip0 + npix * 7 ;
 
45942
        pointer it0 = (pointer)p->in_tables[0];
 
45943
        pointer it1 = (pointer)p->in_tables[1];
 
45944
        pointer it2 = (pointer)p->in_tables[2];
 
45945
        pointer it3 = (pointer)p->in_tables[3];
 
45946
        pointer it4 = (pointer)p->in_tables[4];
 
45947
        pointer it5 = (pointer)p->in_tables[5];
 
45948
        pointer it6 = (pointer)p->in_tables[6];
 
45949
        pointer ot0 = (pointer)p->out_tables[0];
 
45950
        pointer ot1 = (pointer)p->out_tables[1];
 
45951
        pointer ot2 = (pointer)p->out_tables[2];
 
45952
        pointer ot3 = (pointer)p->out_tables[3];
 
45953
        pointer ot4 = (pointer)p->out_tables[4];
 
45954
        pointer ot5 = (pointer)p->out_tables[5];
 
45955
        pointer im_base = (pointer)p->im_table;
 
45956
 
 
45957
        for(;ip0 < ep; ip0 += 7, op0 += 6) {
 
45958
                unsigned int ova0;      /* Output value accumulator */
 
45959
                unsigned int ova1;      /* Output value accumulator */
 
45960
                unsigned int ova2;      /* Output value accumulator */
 
45961
                unsigned int ova3;      /* Output value accumulator */
 
45962
                unsigned int ova4;      /* Output value accumulator */
 
45963
                unsigned int ova5;      /* Output value accumulator */
 
45964
                {
 
45965
                        pointer imp;
 
45966
                        unsigned int we0;       /* Weighting value variable */
 
45967
                        unsigned int vo0;       /* Vertex offset variable */
 
45968
                        unsigned int we1;       /* Weighting value variable */
 
45969
                        unsigned int vo1;       /* Vertex offset variable */
 
45970
                        unsigned int we2;       /* Weighting value variable */
 
45971
                        unsigned int vo2;       /* Vertex offset variable */
 
45972
                        unsigned int we3;       /* Weighting value variable */
 
45973
                        unsigned int vo3;       /* Vertex offset variable */
 
45974
                        unsigned int we4;       /* Weighting value variable */
 
45975
                        unsigned int vo4;       /* Vertex offset variable */
 
45976
                        unsigned int we5;       /* Weighting value variable */
 
45977
                        unsigned int vo5;       /* Vertex offset variable */
 
45978
                        unsigned int we6;       /* Weighting value variable */
 
45979
                        unsigned int vo6;       /* Vertex offset variable */
 
45980
                        {
 
45981
                                unsigned int ti_i;      /* Interpolation index variable */
 
45982
 
 
45983
                                ti_i  = IT_IX(it0, ip0[0]);
 
45984
                                we0   = IT_WE(it0, ip0[0]);
 
45985
                                vo0   = IT_VO(it0, ip0[0]);
 
45986
                                ti_i += IT_IX(it1, ip0[1]);
 
45987
                                we1   = IT_WE(it1, ip0[1]);
 
45988
                                vo1   = IT_VO(it1, ip0[1]);
 
45989
                                ti_i += IT_IX(it2, ip0[2]);
 
45990
                                we2   = IT_WE(it2, ip0[2]);
 
45991
                                vo2   = IT_VO(it2, ip0[2]);
 
45992
                                ti_i += IT_IX(it3, ip0[3]);
 
45993
                                we3   = IT_WE(it3, ip0[3]);
 
45994
                                vo3   = IT_VO(it3, ip0[3]);
 
45995
                                ti_i += IT_IX(it4, ip0[4]);
 
45996
                                we4   = IT_WE(it4, ip0[4]);
 
45997
                                vo4   = IT_VO(it4, ip0[4]);
 
45998
                                ti_i += IT_IX(it5, ip0[5]);
 
45999
                                we5   = IT_WE(it5, ip0[5]);
 
46000
                                vo5   = IT_VO(it5, ip0[5]);
 
46001
                                ti_i += IT_IX(it6, ip0[6]);
 
46002
                                we6   = IT_WE(it6, ip0[6]);
 
46003
                                vo6   = IT_VO(it6, ip0[6]);
 
46004
 
 
46005
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
46006
 
 
46007
                                /* Sort weighting values and vertex offset values */
 
46008
                                CEX(we0, vo0, we1, vo1);
 
46009
                                CEX(we0, vo0, we2, vo2);
 
46010
                                CEX(we0, vo0, we3, vo3);
 
46011
                                CEX(we0, vo0, we4, vo4);
 
46012
                                CEX(we0, vo0, we5, vo5);
 
46013
                                CEX(we0, vo0, we6, vo6);
 
46014
                                CEX(we1, vo1, we2, vo2);
 
46015
                                CEX(we1, vo1, we3, vo3);
 
46016
                                CEX(we1, vo1, we4, vo4);
 
46017
                                CEX(we1, vo1, we5, vo5);
 
46018
                                CEX(we1, vo1, we6, vo6);
 
46019
                                CEX(we2, vo2, we3, vo3);
 
46020
                                CEX(we2, vo2, we4, vo4);
 
46021
                                CEX(we2, vo2, we5, vo5);
 
46022
                                CEX(we2, vo2, we6, vo6);
 
46023
                                CEX(we3, vo3, we4, vo4);
 
46024
                                CEX(we3, vo3, we5, vo5);
 
46025
                                CEX(we3, vo3, we6, vo6);
 
46026
                                CEX(we4, vo4, we5, vo5);
 
46027
                                CEX(we4, vo4, we6, vo6);
 
46028
                                CEX(we5, vo5, we6, vo6);
 
46029
                        }
 
46030
                        {
 
46031
                                unsigned int vof;       /* Vertex offset value */
 
46032
                                unsigned int vwe;       /* Vertex weighting */
 
46033
 
 
46034
                                vof = 0;                                /* First vertex offset is 0 */
 
46035
                                vwe = 65536 - we0;              /* Baricentric weighting */
 
46036
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
46037
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
46038
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
46039
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
46040
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
46041
                                ova5  = IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
46042
                                vof += vo0;                     /* Move to next vertex */
 
46043
                                vwe = we0 - we1;                /* Baricentric weighting */
 
46044
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
46045
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
46046
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
46047
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
46048
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
46049
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
46050
                                vof += vo1;                     /* Move to next vertex */
 
46051
                                vwe = we1 - we2;                /* Baricentric weighting */
 
46052
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
46053
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
46054
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
46055
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
46056
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
46057
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
46058
                                vof += vo2;                     /* Move to next vertex */
 
46059
                                vwe = we2 - we3;                /* Baricentric weighting */
 
46060
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
46061
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
46062
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
46063
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
46064
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
46065
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
46066
                                vof += vo3;                     /* Move to next vertex */
 
46067
                                vwe = we3 - we4;                /* Baricentric weighting */
 
46068
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
46069
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
46070
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
46071
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
46072
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
46073
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
46074
                                vof += vo4;                     /* Move to next vertex */
 
46075
                                vwe = we4 - we5;                /* Baricentric weighting */
 
46076
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
46077
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
46078
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
46079
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
46080
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
46081
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
46082
                                vof += vo5;                     /* Move to next vertex */
 
46083
                                vwe = we5 - we6;                /* Baricentric weighting */
 
46084
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
46085
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
46086
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
46087
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
46088
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
46089
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
46090
                                vof += vo6;                     /* Move to next vertex */
 
46091
                                vwe = we6;                              /* Baricentric weighting */
 
46092
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
46093
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
46094
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
46095
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
46096
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
46097
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
46098
                        }
 
46099
                }
 
46100
                {
 
46101
                        unsigned int oti;       /* Vertex offset value */
 
46102
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
46103
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
46104
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
 
46105
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
46106
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
 
46107
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
46108
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
 
46109
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
46110
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
 
46111
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
46112
                        oti = ((ova5 >> 16) & 0xffff);  /* Extract integer part of result */
 
46113
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
46114
                }
 
46115
        }
46903
46116
}
46904
46117
#undef IT_WE
46905
46118
#undef IT_VO
46913
46126
imdi_k132_gen(
46914
46127
genspec *g                      /* structure to be initialised */
46915
46128
) {
46916
 
        static unsigned char data[] = {
46917
 
                0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
46918
 
                0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
46919
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46920
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46921
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46922
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46923
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46924
 
                0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
46925
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
46926
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
46927
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
46928
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46929
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46930
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46931
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46932
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46933
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46934
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46935
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46936
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
46937
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46938
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46939
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46940
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46941
 
                0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
46942
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
46943
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
46944
 
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
46945
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46946
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46947
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46948
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46949
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46950
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46951
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46952
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
46953
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
46954
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
46955
 
                0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46956
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
46957
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
46958
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
46959
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
46960
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
46961
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
46962
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
46963
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
46964
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
46965
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46966
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
46967
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
46968
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x37, 0x5f, 0x36, 0x5f, 
46969
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
46970
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
46971
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
46972
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
46973
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
46974
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
46975
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
46976
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46977
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46978
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46979
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46980
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
46981
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x33, 
46982
 
                0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46983
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
46984
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
46985
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
46986
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
46987
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
46988
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
46989
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
46990
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
46991
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
46992
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
46993
 
                0x00, 0xf0, 0x04, 0x08 
46994
 
        };      /* Structure image */
46995
 
        
46996
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
46129
        static unsigned char data[] = {
 
46130
                0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
46131
                0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
46132
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46133
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46134
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46135
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46136
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46137
                0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
46138
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
46139
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
46140
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
46141
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46142
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46143
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46144
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46145
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46146
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46147
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46148
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46149
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
46150
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46151
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46152
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46153
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46154
                0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
46155
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
46156
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
46157
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
46158
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46159
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46160
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46161
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46162
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46163
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46164
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46165
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46166
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
46167
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
46168
                0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46169
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
46170
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
46171
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
46172
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
46173
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
46174
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
46175
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
46176
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
46177
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
46178
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46179
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
46180
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
46181
                0x2c, 0xf3, 0xdc, 0xb7, 0x37, 0x5f, 0x36, 0x5f,
 
46182
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
46183
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
46184
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
46185
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
46186
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
46187
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
46188
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
46189
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46190
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46191
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46192
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46193
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
46194
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x33,
 
46195
                0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46196
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46197
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
46198
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
46199
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
46200
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
46201
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
46202
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
46203
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
46204
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
46205
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
46206
                0x00, 0xf0, 0x04, 0x08
 
46207
        };      /* Structure image */
 
46208
 
 
46209
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
46997
46210
}
46998
46211
 
46999
46212
static void
47000
46213
imdi_k132_tab(
47001
46214
tabspec *t                      /* structure to be initialised */
47002
46215
) {
47003
 
        static unsigned char data[] = {
47004
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
47005
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
47006
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
47007
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
47008
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
47009
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
47010
 
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 
47011
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
47012
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
47013
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47014
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
47015
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
47016
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
47017
 
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
47018
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
47019
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47020
 
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
47021
 
                0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
47022
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47023
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47024
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
47025
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
47026
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
47027
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
47028
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47029
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47030
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47031
 
                0x00, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
47032
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
47033
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
47034
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
47035
 
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 
47036
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
47037
 
        };      /* Structure image */
47038
 
        
47039
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
46216
        static unsigned char data[] = {
 
46217
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
46218
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
46219
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
46220
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
46221
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
46222
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
46223
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
 
46224
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
46225
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
46226
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46227
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
46228
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
46229
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
46230
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
46231
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
46232
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46233
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
46234
                0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
46235
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46236
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46237
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
46238
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
46239
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
46240
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
46241
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46242
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46243
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46244
                0x00, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
46245
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46246
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46247
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46248
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
 
46249
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
46250
        };      /* Structure image */
 
46251
 
 
46252
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
47040
46253
}
47041
46254
 
47042
 
 
47043
 
 
47044
 
 
47045
 
 
47046
 
 
47047
46255
/* Integer Multi-Dimensional Interpolation */
47048
46256
/* Interpolation Kernel Code */
47049
46257
/* Generated by cgen */
47052
46260
 
47053
46261
/* see the Licence.txt file for licencing details.*/
47054
46262
 
47055
 
 
47056
46263
/*
47057
46264
   Interpolation kernel specs:
47058
46265
 
47157
46364
void **inp,             /* pointer to input pointers */
47158
46365
unsigned int npix       /* Number of pixels to process */
47159
46366
) {
47160
 
        imdi_imp *p = (imdi_imp *)(s->impl);
47161
 
        unsigned short *ip0 = (unsigned short *)inp[0];
47162
 
        unsigned short *op0 = (unsigned short *)outp[0];
47163
 
        unsigned short *ep = ip0 + npix * 8 ;
47164
 
        pointer it0 = (pointer)p->in_tables[0];
47165
 
        pointer it1 = (pointer)p->in_tables[1];
47166
 
        pointer it2 = (pointer)p->in_tables[2];
47167
 
        pointer it3 = (pointer)p->in_tables[3];
47168
 
        pointer it4 = (pointer)p->in_tables[4];
47169
 
        pointer it5 = (pointer)p->in_tables[5];
47170
 
        pointer it6 = (pointer)p->in_tables[6];
47171
 
        pointer it7 = (pointer)p->in_tables[7];
47172
 
        pointer ot0 = (pointer)p->out_tables[0];
47173
 
        pointer ot1 = (pointer)p->out_tables[1];
47174
 
        pointer ot2 = (pointer)p->out_tables[2];
47175
 
        pointer ot3 = (pointer)p->out_tables[3];
47176
 
        pointer ot4 = (pointer)p->out_tables[4];
47177
 
        pointer ot5 = (pointer)p->out_tables[5];
47178
 
        pointer im_base = (pointer)p->im_table;
47179
 
        
47180
 
        for(;ip0 < ep; ip0 += 8, op0 += 6) {
47181
 
                unsigned int ova0;      /* Output value accumulator */
47182
 
                unsigned int ova1;      /* Output value accumulator */
47183
 
                unsigned int ova2;      /* Output value accumulator */
47184
 
                unsigned int ova3;      /* Output value accumulator */
47185
 
                unsigned int ova4;      /* Output value accumulator */
47186
 
                unsigned int ova5;      /* Output value accumulator */
47187
 
                {
47188
 
                        pointer imp;
47189
 
                        unsigned int we0;       /* Weighting value variable */
47190
 
                        unsigned int vo0;       /* Vertex offset variable */
47191
 
                        unsigned int we1;       /* Weighting value variable */
47192
 
                        unsigned int vo1;       /* Vertex offset variable */
47193
 
                        unsigned int we2;       /* Weighting value variable */
47194
 
                        unsigned int vo2;       /* Vertex offset variable */
47195
 
                        unsigned int we3;       /* Weighting value variable */
47196
 
                        unsigned int vo3;       /* Vertex offset variable */
47197
 
                        unsigned int we4;       /* Weighting value variable */
47198
 
                        unsigned int vo4;       /* Vertex offset variable */
47199
 
                        unsigned int we5;       /* Weighting value variable */
47200
 
                        unsigned int vo5;       /* Vertex offset variable */
47201
 
                        unsigned int we6;       /* Weighting value variable */
47202
 
                        unsigned int vo6;       /* Vertex offset variable */
47203
 
                        unsigned int we7;       /* Weighting value variable */
47204
 
                        unsigned int vo7;       /* Vertex offset variable */
47205
 
                        {
47206
 
                                unsigned int ti_i;      /* Interpolation index variable */
47207
 
                                
47208
 
                                ti_i  = IT_IX(it0, ip0[0]);
47209
 
                                we0   = IT_WE(it0, ip0[0]);
47210
 
                                vo0   = IT_VO(it0, ip0[0]);
47211
 
                                ti_i += IT_IX(it1, ip0[1]);
47212
 
                                we1   = IT_WE(it1, ip0[1]);
47213
 
                                vo1   = IT_VO(it1, ip0[1]);
47214
 
                                ti_i += IT_IX(it2, ip0[2]);
47215
 
                                we2   = IT_WE(it2, ip0[2]);
47216
 
                                vo2   = IT_VO(it2, ip0[2]);
47217
 
                                ti_i += IT_IX(it3, ip0[3]);
47218
 
                                we3   = IT_WE(it3, ip0[3]);
47219
 
                                vo3   = IT_VO(it3, ip0[3]);
47220
 
                                ti_i += IT_IX(it4, ip0[4]);
47221
 
                                we4   = IT_WE(it4, ip0[4]);
47222
 
                                vo4   = IT_VO(it4, ip0[4]);
47223
 
                                ti_i += IT_IX(it5, ip0[5]);
47224
 
                                we5   = IT_WE(it5, ip0[5]);
47225
 
                                vo5   = IT_VO(it5, ip0[5]);
47226
 
                                ti_i += IT_IX(it6, ip0[6]);
47227
 
                                we6   = IT_WE(it6, ip0[6]);
47228
 
                                vo6   = IT_VO(it6, ip0[6]);
47229
 
                                ti_i += IT_IX(it7, ip0[7]);
47230
 
                                we7   = IT_WE(it7, ip0[7]);
47231
 
                                vo7   = IT_VO(it7, ip0[7]);
47232
 
                                
47233
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
47234
 
                                
47235
 
                                /* Sort weighting values and vertex offset values */
47236
 
                                CEX(we0, vo0, we1, vo1);
47237
 
                                CEX(we0, vo0, we2, vo2);
47238
 
                                CEX(we0, vo0, we3, vo3);
47239
 
                                CEX(we0, vo0, we4, vo4);
47240
 
                                CEX(we0, vo0, we5, vo5);
47241
 
                                CEX(we0, vo0, we6, vo6);
47242
 
                                CEX(we0, vo0, we7, vo7);
47243
 
                                CEX(we1, vo1, we2, vo2);
47244
 
                                CEX(we1, vo1, we3, vo3);
47245
 
                                CEX(we1, vo1, we4, vo4);
47246
 
                                CEX(we1, vo1, we5, vo5);
47247
 
                                CEX(we1, vo1, we6, vo6);
47248
 
                                CEX(we1, vo1, we7, vo7);
47249
 
                                CEX(we2, vo2, we3, vo3);
47250
 
                                CEX(we2, vo2, we4, vo4);
47251
 
                                CEX(we2, vo2, we5, vo5);
47252
 
                                CEX(we2, vo2, we6, vo6);
47253
 
                                CEX(we2, vo2, we7, vo7);
47254
 
                                CEX(we3, vo3, we4, vo4);
47255
 
                                CEX(we3, vo3, we5, vo5);
47256
 
                                CEX(we3, vo3, we6, vo6);
47257
 
                                CEX(we3, vo3, we7, vo7);
47258
 
                                CEX(we4, vo4, we5, vo5);
47259
 
                                CEX(we4, vo4, we6, vo6);
47260
 
                                CEX(we4, vo4, we7, vo7);
47261
 
                                CEX(we5, vo5, we6, vo6);
47262
 
                                CEX(we5, vo5, we7, vo7);
47263
 
                                CEX(we6, vo6, we7, vo7);
47264
 
                        }
47265
 
                        {
47266
 
                                unsigned int vof;       /* Vertex offset value */
47267
 
                                unsigned int vwe;       /* Vertex weighting */
47268
 
                                
47269
 
                                vof = 0;                                /* First vertex offset is 0 */
47270
 
                                vwe = 65536 - we0;              /* Baricentric weighting */
47271
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
47272
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
47273
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
47274
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
47275
 
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
47276
 
                                ova5  = IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
47277
 
                                vof += vo0;                     /* Move to next vertex */
47278
 
                                vwe = we0 - we1;                /* Baricentric weighting */
47279
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
47280
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
47281
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
47282
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
47283
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
47284
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
47285
 
                                vof += vo1;                     /* Move to next vertex */
47286
 
                                vwe = we1 - we2;                /* Baricentric weighting */
47287
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
47288
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
47289
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
47290
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
47291
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
47292
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
47293
 
                                vof += vo2;                     /* Move to next vertex */
47294
 
                                vwe = we2 - we3;                /* Baricentric weighting */
47295
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
47296
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
47297
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
47298
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
47299
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
47300
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
47301
 
                                vof += vo3;                     /* Move to next vertex */
47302
 
                                vwe = we3 - we4;                /* Baricentric weighting */
47303
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
47304
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
47305
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
47306
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
47307
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
47308
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
47309
 
                                vof += vo4;                     /* Move to next vertex */
47310
 
                                vwe = we4 - we5;                /* Baricentric weighting */
47311
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
47312
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
47313
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
47314
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
47315
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
47316
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
47317
 
                                vof += vo5;                     /* Move to next vertex */
47318
 
                                vwe = we5 - we6;                /* Baricentric weighting */
47319
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
47320
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
47321
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
47322
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
47323
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
47324
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
47325
 
                                vof += vo6;                     /* Move to next vertex */
47326
 
                                vwe = we6 - we7;                /* Baricentric weighting */
47327
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
47328
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
47329
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
47330
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
47331
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
47332
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
47333
 
                                vof += vo7;                     /* Move to next vertex */
47334
 
                                vwe = we7;                              /* Baricentric weighting */
47335
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
47336
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
47337
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
47338
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
47339
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
47340
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
47341
 
                        }
47342
 
                }
47343
 
                {
47344
 
                        unsigned int oti;       /* Vertex offset value */
47345
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
47346
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
47347
 
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
47348
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
47349
 
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
47350
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
47351
 
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
47352
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
47353
 
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
47354
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
47355
 
                        oti = ((ova5 >> 16) & 0xffff);  /* Extract integer part of result */
47356
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
47357
 
                }
47358
 
        }
 
46367
        imdi_imp *p = (imdi_imp *)(s->impl);
 
46368
        unsigned short *ip0 = (unsigned short *)inp[0];
 
46369
        unsigned short *op0 = (unsigned short *)outp[0];
 
46370
        unsigned short *ep = ip0 + npix * 8 ;
 
46371
        pointer it0 = (pointer)p->in_tables[0];
 
46372
        pointer it1 = (pointer)p->in_tables[1];
 
46373
        pointer it2 = (pointer)p->in_tables[2];
 
46374
        pointer it3 = (pointer)p->in_tables[3];
 
46375
        pointer it4 = (pointer)p->in_tables[4];
 
46376
        pointer it5 = (pointer)p->in_tables[5];
 
46377
        pointer it6 = (pointer)p->in_tables[6];
 
46378
        pointer it7 = (pointer)p->in_tables[7];
 
46379
        pointer ot0 = (pointer)p->out_tables[0];
 
46380
        pointer ot1 = (pointer)p->out_tables[1];
 
46381
        pointer ot2 = (pointer)p->out_tables[2];
 
46382
        pointer ot3 = (pointer)p->out_tables[3];
 
46383
        pointer ot4 = (pointer)p->out_tables[4];
 
46384
        pointer ot5 = (pointer)p->out_tables[5];
 
46385
        pointer im_base = (pointer)p->im_table;
 
46386
 
 
46387
        for(;ip0 < ep; ip0 += 8, op0 += 6) {
 
46388
                unsigned int ova0;      /* Output value accumulator */
 
46389
                unsigned int ova1;      /* Output value accumulator */
 
46390
                unsigned int ova2;      /* Output value accumulator */
 
46391
                unsigned int ova3;      /* Output value accumulator */
 
46392
                unsigned int ova4;      /* Output value accumulator */
 
46393
                unsigned int ova5;      /* Output value accumulator */
 
46394
                {
 
46395
                        pointer imp;
 
46396
                        unsigned int we0;       /* Weighting value variable */
 
46397
                        unsigned int vo0;       /* Vertex offset variable */
 
46398
                        unsigned int we1;       /* Weighting value variable */
 
46399
                        unsigned int vo1;       /* Vertex offset variable */
 
46400
                        unsigned int we2;       /* Weighting value variable */
 
46401
                        unsigned int vo2;       /* Vertex offset variable */
 
46402
                        unsigned int we3;       /* Weighting value variable */
 
46403
                        unsigned int vo3;       /* Vertex offset variable */
 
46404
                        unsigned int we4;       /* Weighting value variable */
 
46405
                        unsigned int vo4;       /* Vertex offset variable */
 
46406
                        unsigned int we5;       /* Weighting value variable */
 
46407
                        unsigned int vo5;       /* Vertex offset variable */
 
46408
                        unsigned int we6;       /* Weighting value variable */
 
46409
                        unsigned int vo6;       /* Vertex offset variable */
 
46410
                        unsigned int we7;       /* Weighting value variable */
 
46411
                        unsigned int vo7;       /* Vertex offset variable */
 
46412
                        {
 
46413
                                unsigned int ti_i;      /* Interpolation index variable */
 
46414
 
 
46415
                                ti_i  = IT_IX(it0, ip0[0]);
 
46416
                                we0   = IT_WE(it0, ip0[0]);
 
46417
                                vo0   = IT_VO(it0, ip0[0]);
 
46418
                                ti_i += IT_IX(it1, ip0[1]);
 
46419
                                we1   = IT_WE(it1, ip0[1]);
 
46420
                                vo1   = IT_VO(it1, ip0[1]);
 
46421
                                ti_i += IT_IX(it2, ip0[2]);
 
46422
                                we2   = IT_WE(it2, ip0[2]);
 
46423
                                vo2   = IT_VO(it2, ip0[2]);
 
46424
                                ti_i += IT_IX(it3, ip0[3]);
 
46425
                                we3   = IT_WE(it3, ip0[3]);
 
46426
                                vo3   = IT_VO(it3, ip0[3]);
 
46427
                                ti_i += IT_IX(it4, ip0[4]);
 
46428
                                we4   = IT_WE(it4, ip0[4]);
 
46429
                                vo4   = IT_VO(it4, ip0[4]);
 
46430
                                ti_i += IT_IX(it5, ip0[5]);
 
46431
                                we5   = IT_WE(it5, ip0[5]);
 
46432
                                vo5   = IT_VO(it5, ip0[5]);
 
46433
                                ti_i += IT_IX(it6, ip0[6]);
 
46434
                                we6   = IT_WE(it6, ip0[6]);
 
46435
                                vo6   = IT_VO(it6, ip0[6]);
 
46436
                                ti_i += IT_IX(it7, ip0[7]);
 
46437
                                we7   = IT_WE(it7, ip0[7]);
 
46438
                                vo7   = IT_VO(it7, ip0[7]);
 
46439
 
 
46440
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
46441
 
 
46442
                                /* Sort weighting values and vertex offset values */
 
46443
                                CEX(we0, vo0, we1, vo1);
 
46444
                                CEX(we0, vo0, we2, vo2);
 
46445
                                CEX(we0, vo0, we3, vo3);
 
46446
                                CEX(we0, vo0, we4, vo4);
 
46447
                                CEX(we0, vo0, we5, vo5);
 
46448
                                CEX(we0, vo0, we6, vo6);
 
46449
                                CEX(we0, vo0, we7, vo7);
 
46450
                                CEX(we1, vo1, we2, vo2);
 
46451
                                CEX(we1, vo1, we3, vo3);
 
46452
                                CEX(we1, vo1, we4, vo4);
 
46453
                                CEX(we1, vo1, we5, vo5);
 
46454
                                CEX(we1, vo1, we6, vo6);
 
46455
                                CEX(we1, vo1, we7, vo7);
 
46456
                                CEX(we2, vo2, we3, vo3);
 
46457
                                CEX(we2, vo2, we4, vo4);
 
46458
                                CEX(we2, vo2, we5, vo5);
 
46459
                                CEX(we2, vo2, we6, vo6);
 
46460
                                CEX(we2, vo2, we7, vo7);
 
46461
                                CEX(we3, vo3, we4, vo4);
 
46462
                                CEX(we3, vo3, we5, vo5);
 
46463
                                CEX(we3, vo3, we6, vo6);
 
46464
                                CEX(we3, vo3, we7, vo7);
 
46465
                                CEX(we4, vo4, we5, vo5);
 
46466
                                CEX(we4, vo4, we6, vo6);
 
46467
                                CEX(we4, vo4, we7, vo7);
 
46468
                                CEX(we5, vo5, we6, vo6);
 
46469
                                CEX(we5, vo5, we7, vo7);
 
46470
                                CEX(we6, vo6, we7, vo7);
 
46471
                        }
 
46472
                        {
 
46473
                                unsigned int vof;       /* Vertex offset value */
 
46474
                                unsigned int vwe;       /* Vertex weighting */
 
46475
 
 
46476
                                vof = 0;                                /* First vertex offset is 0 */
 
46477
                                vwe = 65536 - we0;              /* Baricentric weighting */
 
46478
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
46479
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
46480
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
46481
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
46482
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
46483
                                ova5  = IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
46484
                                vof += vo0;                     /* Move to next vertex */
 
46485
                                vwe = we0 - we1;                /* Baricentric weighting */
 
46486
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
46487
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
46488
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
46489
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
46490
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
46491
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
46492
                                vof += vo1;                     /* Move to next vertex */
 
46493
                                vwe = we1 - we2;                /* Baricentric weighting */
 
46494
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
46495
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
46496
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
46497
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
46498
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
46499
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
46500
                                vof += vo2;                     /* Move to next vertex */
 
46501
                                vwe = we2 - we3;                /* Baricentric weighting */
 
46502
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
46503
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
46504
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
46505
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
46506
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
46507
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
46508
                                vof += vo3;                     /* Move to next vertex */
 
46509
                                vwe = we3 - we4;                /* Baricentric weighting */
 
46510
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
46511
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
46512
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
46513
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
46514
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
46515
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
46516
                                vof += vo4;                     /* Move to next vertex */
 
46517
                                vwe = we4 - we5;                /* Baricentric weighting */
 
46518
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
46519
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
46520
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
46521
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
46522
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
46523
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
46524
                                vof += vo5;                     /* Move to next vertex */
 
46525
                                vwe = we5 - we6;                /* Baricentric weighting */
 
46526
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
46527
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
46528
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
46529
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
46530
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
46531
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
46532
                                vof += vo6;                     /* Move to next vertex */
 
46533
                                vwe = we6 - we7;                /* Baricentric weighting */
 
46534
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
46535
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
46536
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
46537
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
46538
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
46539
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
46540
                                vof += vo7;                     /* Move to next vertex */
 
46541
                                vwe = we7;                              /* Baricentric weighting */
 
46542
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
46543
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
46544
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
46545
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
46546
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
46547
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
46548
                        }
 
46549
                }
 
46550
                {
 
46551
                        unsigned int oti;       /* Vertex offset value */
 
46552
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
46553
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
46554
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
 
46555
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
46556
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
 
46557
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
46558
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
 
46559
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
46560
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
 
46561
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
46562
                        oti = ((ova5 >> 16) & 0xffff);  /* Extract integer part of result */
 
46563
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
46564
                }
 
46565
        }
47359
46566
}
47360
46567
#undef IT_WE
47361
46568
#undef IT_VO
47369
46576
imdi_k133_gen(
47370
46577
genspec *g                      /* structure to be initialised */
47371
46578
) {
47372
 
        static unsigned char data[] = {
47373
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
47374
 
                0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
47375
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47376
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
47377
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
47378
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
47379
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
47380
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
47381
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
47382
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
47383
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
47384
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47385
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47386
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47387
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47388
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
47389
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
47390
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
47391
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
47392
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
47393
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
47394
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
47395
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
47396
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
47397
 
                0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
47398
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
47399
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
47400
 
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
47401
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47402
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47403
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47404
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47405
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
47406
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
47407
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
47408
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
47409
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
47410
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
47411
 
                0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47412
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
47413
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
47414
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
47415
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
47416
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
47417
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
47418
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
47419
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
47420
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
47421
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47422
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
47423
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
47424
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x38, 0x5f, 0x36, 0x5f, 
47425
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
47426
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
47427
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
47428
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
47429
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
47430
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
47431
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
47432
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47433
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47434
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47435
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47436
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
47437
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x33, 
47438
 
                0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47439
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47440
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
47441
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
47442
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
47443
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
47444
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
47445
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
47446
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
47447
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
47448
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
47449
 
                0x00, 0xf0, 0x04, 0x08 
47450
 
        };      /* Structure image */
47451
 
        
47452
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
46579
        static unsigned char data[] = {
 
46580
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
46581
                0x06, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
46582
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46583
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46584
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46585
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46586
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46587
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
46588
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
46589
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
46590
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
46591
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46592
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46593
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46594
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46595
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46596
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46597
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46598
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46599
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
46600
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46601
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46602
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46603
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46604
                0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
46605
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
46606
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
46607
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
46608
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46609
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46610
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46611
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46612
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46613
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46614
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46615
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46616
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
46617
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
46618
                0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46619
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
46620
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
46621
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
46622
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
46623
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
46624
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
46625
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
46626
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
46627
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
46628
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46629
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
46630
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
46631
                0x2c, 0xf3, 0xdc, 0xb7, 0x38, 0x5f, 0x36, 0x5f,
 
46632
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
46633
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
46634
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
46635
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
46636
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
46637
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
46638
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
46639
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46640
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46641
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46642
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46643
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
46644
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x33,
 
46645
                0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46646
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46647
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
46648
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
46649
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
46650
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
46651
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
46652
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
46653
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
46654
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
46655
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
46656
                0x00, 0xf0, 0x04, 0x08
 
46657
        };      /* Structure image */
 
46658
 
 
46659
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
47453
46660
}
47454
46661
 
47455
46662
static void
47456
46663
imdi_k133_tab(
47457
46664
tabspec *t                      /* structure to be initialised */
47458
46665
) {
47459
 
        static unsigned char data[] = {
47460
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
47461
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
47462
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
47463
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
47464
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
47465
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
47466
 
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 
47467
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
47468
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
47469
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47470
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
47471
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
47472
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
47473
 
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
47474
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
47475
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47476
 
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
47477
 
                0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
47478
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47479
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47480
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
47481
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
47482
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
47483
 
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7, 
47484
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47485
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47486
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47487
 
                0x00, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf, 
47488
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
47489
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
47490
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
47491
 
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 
47492
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
47493
 
        };      /* Structure image */
47494
 
        
47495
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
46666
        static unsigned char data[] = {
 
46667
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
46668
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
46669
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
46670
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
46671
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
46672
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
46673
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
 
46674
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
46675
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
46676
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46677
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
46678
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
46679
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
46680
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
46681
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
46682
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46683
                0x0c, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
46684
                0x02, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
46685
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46686
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46687
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
46688
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
46689
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
46690
                0xff, 0xff, 0xff, 0xff, 0xdc, 0x60, 0xef, 0xb7,
 
46691
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46692
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46693
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46694
                0x00, 0x00, 0x00, 0x00, 0x14, 0xda, 0x83, 0xbf,
 
46695
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46696
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46697
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46698
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
 
46699
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
46700
        };      /* Structure image */
 
46701
 
 
46702
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
47496
46703
}
47497
46704
 
47498
 
 
47499
 
 
47500
 
 
47501
 
 
47502
 
 
47503
46705
/* Integer Multi-Dimensional Interpolation */
47504
46706
/* Interpolation Kernel Code */
47505
46707
/* Generated by cgen */
47508
46710
 
47509
46711
/* see the Licence.txt file for licencing details.*/
47510
46712
 
47511
 
 
47512
46713
/*
47513
46714
   Interpolation kernel specs:
47514
46715
 
47594
46795
void **inp,             /* pointer to input pointers */
47595
46796
unsigned int npix       /* Number of pixels to process */
47596
46797
) {
47597
 
        imdi_imp *p = (imdi_imp *)(s->impl);
47598
 
        unsigned short *ip0 = (unsigned short *)inp[0];
47599
 
        unsigned short *op0 = (unsigned short *)outp[0];
47600
 
        unsigned short *ep = ip0 + npix * 1 ;
47601
 
        pointer it0 = (pointer)p->in_tables[0];
47602
 
        pointer ot0 = (pointer)p->out_tables[0];
47603
 
        pointer ot1 = (pointer)p->out_tables[1];
47604
 
        pointer ot2 = (pointer)p->out_tables[2];
47605
 
        pointer ot3 = (pointer)p->out_tables[3];
47606
 
        pointer ot4 = (pointer)p->out_tables[4];
47607
 
        pointer ot5 = (pointer)p->out_tables[5];
47608
 
        pointer ot6 = (pointer)p->out_tables[6];
47609
 
        pointer im_base = (pointer)p->im_table;
47610
 
        
47611
 
        for(;ip0 < ep; ip0 += 1, op0 += 7) {
47612
 
                unsigned int ova0;      /* Output value accumulator */
47613
 
                unsigned int ova1;      /* Output value accumulator */
47614
 
                unsigned int ova2;      /* Output value accumulator */
47615
 
                unsigned int ova3;      /* Output value accumulator */
47616
 
                unsigned int ova4;      /* Output value accumulator */
47617
 
                unsigned int ova5;      /* Output value accumulator */
47618
 
                unsigned int ova6;      /* Output value accumulator */
47619
 
                {
47620
 
                        pointer imp;
47621
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
47622
 
                        {
47623
 
                                unsigned int ti;                /* Input table entry variable */
47624
 
                                unsigned int ti_i;      /* Interpolation index variable */
47625
 
                                
47626
 
                                ti = IT_IT(it0, ip0[0]);
47627
 
                                wo0   = (ti & 0x3fffff);        /* Extract weighting/vertex offset value */
47628
 
                                ti_i  = (ti >> 22);     /* Extract interpolation table value */
47629
 
                                
47630
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
47631
 
                                
47632
 
                                /* Sort weighting values and vertex offset values */
47633
 
                        }
47634
 
                        {
47635
 
                                unsigned int nvof;      /* Next vertex offset value */
47636
 
                                unsigned int vof;       /* Vertex offset value */
47637
 
                                unsigned int vwe;       /* Vertex weighting */
47638
 
                                
47639
 
                                vof = 0;                                /* First vertex offset is 0 */
47640
 
                                nvof = (wo0 & 0x1f);    /* Extract offset value */
47641
 
                                wo0 = (wo0 >> 5);               /* Extract weighting value */
47642
 
                                vwe = 65536 - wo0;              /* Baricentric weighting */
47643
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
47644
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
47645
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
47646
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
47647
 
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
47648
 
                                ova5  = IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
47649
 
                                ova6  = IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
47650
 
                                vof += nvof;                    /* Move to next vertex */
47651
 
                                vwe = wo0;                              /* Baricentric weighting */
47652
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
47653
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
47654
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
47655
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
47656
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
47657
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
47658
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
47659
 
                        }
47660
 
                }
47661
 
                {
47662
 
                        unsigned int oti;       /* Vertex offset value */
47663
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
47664
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
47665
 
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
47666
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
47667
 
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
47668
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
47669
 
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
47670
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
47671
 
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
47672
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
47673
 
                        oti = ((ova5 >> 16) & 0xffff);  /* Extract integer part of result */
47674
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
47675
 
                        oti = ((ova6 >> 16) & 0xffff);  /* Extract integer part of result */
47676
 
                        op0[6] = OT_E(ot6, oti);        /* Write result */
47677
 
                }
47678
 
        }
 
46798
        imdi_imp *p = (imdi_imp *)(s->impl);
 
46799
        unsigned short *ip0 = (unsigned short *)inp[0];
 
46800
        unsigned short *op0 = (unsigned short *)outp[0];
 
46801
        unsigned short *ep = ip0 + npix * 1 ;
 
46802
        pointer it0 = (pointer)p->in_tables[0];
 
46803
        pointer ot0 = (pointer)p->out_tables[0];
 
46804
        pointer ot1 = (pointer)p->out_tables[1];
 
46805
        pointer ot2 = (pointer)p->out_tables[2];
 
46806
        pointer ot3 = (pointer)p->out_tables[3];
 
46807
        pointer ot4 = (pointer)p->out_tables[4];
 
46808
        pointer ot5 = (pointer)p->out_tables[5];
 
46809
        pointer ot6 = (pointer)p->out_tables[6];
 
46810
        pointer im_base = (pointer)p->im_table;
 
46811
 
 
46812
        for(;ip0 < ep; ip0 += 1, op0 += 7) {
 
46813
                unsigned int ova0;      /* Output value accumulator */
 
46814
                unsigned int ova1;      /* Output value accumulator */
 
46815
                unsigned int ova2;      /* Output value accumulator */
 
46816
                unsigned int ova3;      /* Output value accumulator */
 
46817
                unsigned int ova4;      /* Output value accumulator */
 
46818
                unsigned int ova5;      /* Output value accumulator */
 
46819
                unsigned int ova6;      /* Output value accumulator */
 
46820
                {
 
46821
                        pointer imp;
 
46822
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
46823
                        {
 
46824
                                unsigned int ti;                /* Input table entry variable */
 
46825
                                unsigned int ti_i;      /* Interpolation index variable */
 
46826
 
 
46827
                                ti = IT_IT(it0, ip0[0]);
 
46828
                                wo0   = (ti & 0x3fffff);        /* Extract weighting/vertex offset value */
 
46829
                                ti_i  = (ti >> 22);     /* Extract interpolation table value */
 
46830
 
 
46831
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
46832
 
 
46833
                                /* Sort weighting values and vertex offset values */
 
46834
                        }
 
46835
                        {
 
46836
                                unsigned int nvof;      /* Next vertex offset value */
 
46837
                                unsigned int vof;       /* Vertex offset value */
 
46838
                                unsigned int vwe;       /* Vertex weighting */
 
46839
 
 
46840
                                vof = 0;                                /* First vertex offset is 0 */
 
46841
                                nvof = (wo0 & 0x1f);    /* Extract offset value */
 
46842
                                wo0 = (wo0 >> 5);               /* Extract weighting value */
 
46843
                                vwe = 65536 - wo0;              /* Baricentric weighting */
 
46844
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
46845
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
46846
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
46847
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
46848
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
46849
                                ova5  = IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
46850
                                ova6  = IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
46851
                                vof += nvof;                    /* Move to next vertex */
 
46852
                                vwe = wo0;                              /* Baricentric weighting */
 
46853
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
46854
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
46855
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
46856
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
46857
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
46858
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
46859
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
46860
                        }
 
46861
                }
 
46862
                {
 
46863
                        unsigned int oti;       /* Vertex offset value */
 
46864
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
46865
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
46866
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
 
46867
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
46868
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
 
46869
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
46870
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
 
46871
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
46872
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
 
46873
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
46874
                        oti = ((ova5 >> 16) & 0xffff);  /* Extract integer part of result */
 
46875
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
46876
                        oti = ((ova6 >> 16) & 0xffff);  /* Extract integer part of result */
 
46877
                        op0[6] = OT_E(ot6, oti);        /* Write result */
 
46878
                }
 
46879
        }
47679
46880
}
47680
46881
#undef IT_IT
47681
46882
#undef CEX
47687
46888
imdi_k134_gen(
47688
46889
genspec *g                      /* structure to be initialised */
47689
46890
) {
47690
 
        static unsigned char data[] = {
47691
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
47692
 
                0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
47693
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47694
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
47695
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
47696
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
47697
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
47698
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
47699
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
47700
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
47701
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
47702
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47703
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47704
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47705
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47706
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
47707
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
47708
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
47709
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
47710
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
47711
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
47712
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
47713
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
47714
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
47715
 
                0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
47716
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
47717
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
47718
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
47719
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47720
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47721
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47722
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47723
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
47724
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
47725
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
47726
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
47727
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
47728
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
47729
 
                0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47730
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
47731
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
47732
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
47733
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
47734
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
47735
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
47736
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
47737
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
47738
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
47739
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47740
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
47741
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
47742
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x31, 0x5f, 0x37, 0x5f, 
47743
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
47744
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
47745
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
47746
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
47747
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
47748
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
47749
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
47750
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47751
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47752
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47753
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47754
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
47755
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x33, 
47756
 
                0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47757
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47758
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
47759
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
47760
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
47761
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
47762
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
47763
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
47764
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
47765
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
47766
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
47767
 
                0x00, 0xf0, 0x04, 0x08 
47768
 
        };      /* Structure image */
47769
 
        
47770
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
46891
        static unsigned char data[] = {
 
46892
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
46893
                0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
46894
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46895
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46896
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46897
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46898
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46899
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
46900
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
46901
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
46902
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
46903
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46904
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46905
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46906
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46907
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46908
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46909
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46910
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46911
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
46912
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46913
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46914
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46915
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46916
                0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
46917
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
46918
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
46919
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
46920
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46921
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46922
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46923
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46924
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46925
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46926
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46927
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
46928
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
46929
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
46930
                0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46931
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
46932
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
46933
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
46934
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
46935
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
46936
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
46937
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
46938
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
46939
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
46940
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46941
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
46942
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
46943
                0x2c, 0xf3, 0xdc, 0xb7, 0x31, 0x5f, 0x37, 0x5f,
 
46944
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
46945
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
46946
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
46947
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
46948
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
46949
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
46950
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
46951
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46952
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46953
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46954
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46955
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
46956
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x33,
 
46957
                0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46958
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46959
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
46960
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
46961
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
46962
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
46963
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
46964
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
46965
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
46966
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
46967
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
46968
                0x00, 0xf0, 0x04, 0x08
 
46969
        };      /* Structure image */
 
46970
 
 
46971
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
47771
46972
}
47772
46973
 
47773
46974
static void
47774
46975
imdi_k134_tab(
47775
46976
tabspec *t                      /* structure to be initialised */
47776
46977
) {
47777
 
        static unsigned char data[] = {
47778
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47779
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
47780
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
47781
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
47782
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
47783
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
47784
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
47785
 
                0x0a, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
47786
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
47787
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47788
 
                0x14, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00, 
47789
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
47790
 
                0x11, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
47791
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
47792
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
47793
 
                0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47794
 
                0x0e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
47795
 
                0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
47796
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47797
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47798
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
47799
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
47800
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
47801
 
                0x06, 0x00, 0x00, 0x00, 0xdc, 0x60, 0xef, 0xb7, 
47802
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47803
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47804
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47805
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
47806
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
47807
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
47808
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
47809
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
47810
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
47811
 
        };      /* Structure image */
47812
 
        
47813
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
46978
        static unsigned char data[] = {
 
46979
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46980
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
46981
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
46982
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
46983
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
46984
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
46985
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
46986
                0x0a, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
46987
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
46988
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46989
                0x14, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00,
 
46990
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
46991
                0x11, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
46992
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
46993
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
46994
                0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46995
                0x0e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
46996
                0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
46997
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46998
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
46999
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
47000
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
47001
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
47002
                0x06, 0x00, 0x00, 0x00, 0xdc, 0x60, 0xef, 0xb7,
 
47003
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47004
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47005
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47006
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47007
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
47008
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
47009
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
47010
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
47011
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
47012
        };      /* Structure image */
 
47013
 
 
47014
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
47814
47015
}
47815
47016
 
47816
 
 
47817
 
 
47818
 
 
47819
 
 
47820
 
 
47821
47017
/* Integer Multi-Dimensional Interpolation */
47822
47018
/* Interpolation Kernel Code */
47823
47019
/* Generated by cgen */
47826
47022
 
47827
47023
/* see the Licence.txt file for licencing details.*/
47828
47024
 
47829
 
 
47830
47025
/*
47831
47026
   Interpolation kernel specs:
47832
47027
 
47919
47114
void **inp,             /* pointer to input pointers */
47920
47115
unsigned int npix       /* Number of pixels to process */
47921
47116
) {
47922
 
        imdi_imp *p = (imdi_imp *)(s->impl);
47923
 
        unsigned short *ip0 = (unsigned short *)inp[0];
47924
 
        unsigned short *op0 = (unsigned short *)outp[0];
47925
 
        unsigned short *ep = ip0 + npix * 3 ;
47926
 
        pointer it0 = (pointer)p->in_tables[0];
47927
 
        pointer it1 = (pointer)p->in_tables[1];
47928
 
        pointer it2 = (pointer)p->in_tables[2];
47929
 
        pointer ot0 = (pointer)p->out_tables[0];
47930
 
        pointer ot1 = (pointer)p->out_tables[1];
47931
 
        pointer ot2 = (pointer)p->out_tables[2];
47932
 
        pointer ot3 = (pointer)p->out_tables[3];
47933
 
        pointer ot4 = (pointer)p->out_tables[4];
47934
 
        pointer ot5 = (pointer)p->out_tables[5];
47935
 
        pointer ot6 = (pointer)p->out_tables[6];
47936
 
        pointer im_base = (pointer)p->im_table;
47937
 
        
47938
 
        for(;ip0 < ep; ip0 += 3, op0 += 7) {
47939
 
                unsigned int ova0;      /* Output value accumulator */
47940
 
                unsigned int ova1;      /* Output value accumulator */
47941
 
                unsigned int ova2;      /* Output value accumulator */
47942
 
                unsigned int ova3;      /* Output value accumulator */
47943
 
                unsigned int ova4;      /* Output value accumulator */
47944
 
                unsigned int ova5;      /* Output value accumulator */
47945
 
                unsigned int ova6;      /* Output value accumulator */
47946
 
                {
47947
 
                        pointer imp;
47948
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
47949
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
47950
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
47951
 
                        {
47952
 
                                unsigned int ti_i;      /* Interpolation index variable */
47953
 
                                
47954
 
                                ti_i  = IT_IX(it0, ip0[0]);
47955
 
                                wo0   = IT_WO(it0, ip0[0]);
47956
 
                                ti_i += IT_IX(it1, ip0[1]);
47957
 
                                wo1   = IT_WO(it1, ip0[1]);
47958
 
                                ti_i += IT_IX(it2, ip0[2]);
47959
 
                                wo2   = IT_WO(it2, ip0[2]);
47960
 
                                
47961
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
47962
 
                                
47963
 
                                /* Sort weighting values and vertex offset values */
47964
 
                                CEX(wo0, wo1);
47965
 
                                CEX(wo0, wo2);
47966
 
                                CEX(wo1, wo2);
47967
 
                        }
47968
 
                        {
47969
 
                                unsigned int nvof;      /* Next vertex offset value */
47970
 
                                unsigned int vof;       /* Vertex offset value */
47971
 
                                unsigned int vwe;       /* Vertex weighting */
47972
 
                                
47973
 
                                vof = 0;                                /* First vertex offset is 0 */
47974
 
                                nvof = (wo0 & 0x7fff);  /* Extract offset value */
47975
 
                                wo0 = (wo0 >> 15);              /* Extract weighting value */
47976
 
                                vwe = 65536 - wo0;              /* Baricentric weighting */
47977
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
47978
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
47979
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
47980
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
47981
 
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
47982
 
                                ova5  = IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
47983
 
                                ova6  = IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
47984
 
                                vof += nvof;                    /* Move to next vertex */
47985
 
                                nvof = (wo1 & 0x7fff);  /* Extract offset value */
47986
 
                                wo1 = (wo1 >> 15);              /* Extract weighting value */
47987
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
47988
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
47989
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
47990
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
47991
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
47992
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
47993
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
47994
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
47995
 
                                vof += nvof;                    /* Move to next vertex */
47996
 
                                nvof = (wo2 & 0x7fff);  /* Extract offset value */
47997
 
                                wo2 = (wo2 >> 15);              /* Extract weighting value */
47998
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
47999
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
48000
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
48001
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
48002
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
48003
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
48004
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
48005
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
48006
 
                                vof += nvof;                    /* Move to next vertex */
48007
 
                                vwe = wo2;                              /* Baricentric weighting */
48008
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
48009
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
48010
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
48011
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
48012
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
48013
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
48014
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
48015
 
                        }
48016
 
                }
48017
 
                {
48018
 
                        unsigned int oti;       /* Vertex offset value */
48019
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
48020
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
48021
 
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
48022
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
48023
 
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
48024
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
48025
 
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
48026
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
48027
 
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
48028
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
48029
 
                        oti = ((ova5 >> 16) & 0xffff);  /* Extract integer part of result */
48030
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
48031
 
                        oti = ((ova6 >> 16) & 0xffff);  /* Extract integer part of result */
48032
 
                        op0[6] = OT_E(ot6, oti);        /* Write result */
48033
 
                }
48034
 
        }
 
47117
        imdi_imp *p = (imdi_imp *)(s->impl);
 
47118
        unsigned short *ip0 = (unsigned short *)inp[0];
 
47119
        unsigned short *op0 = (unsigned short *)outp[0];
 
47120
        unsigned short *ep = ip0 + npix * 3 ;
 
47121
        pointer it0 = (pointer)p->in_tables[0];
 
47122
        pointer it1 = (pointer)p->in_tables[1];
 
47123
        pointer it2 = (pointer)p->in_tables[2];
 
47124
        pointer ot0 = (pointer)p->out_tables[0];
 
47125
        pointer ot1 = (pointer)p->out_tables[1];
 
47126
        pointer ot2 = (pointer)p->out_tables[2];
 
47127
        pointer ot3 = (pointer)p->out_tables[3];
 
47128
        pointer ot4 = (pointer)p->out_tables[4];
 
47129
        pointer ot5 = (pointer)p->out_tables[5];
 
47130
        pointer ot6 = (pointer)p->out_tables[6];
 
47131
        pointer im_base = (pointer)p->im_table;
 
47132
 
 
47133
        for(;ip0 < ep; ip0 += 3, op0 += 7) {
 
47134
                unsigned int ova0;      /* Output value accumulator */
 
47135
                unsigned int ova1;      /* Output value accumulator */
 
47136
                unsigned int ova2;      /* Output value accumulator */
 
47137
                unsigned int ova3;      /* Output value accumulator */
 
47138
                unsigned int ova4;      /* Output value accumulator */
 
47139
                unsigned int ova5;      /* Output value accumulator */
 
47140
                unsigned int ova6;      /* Output value accumulator */
 
47141
                {
 
47142
                        pointer imp;
 
47143
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
47144
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
47145
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
47146
                        {
 
47147
                                unsigned int ti_i;      /* Interpolation index variable */
 
47148
 
 
47149
                                ti_i  = IT_IX(it0, ip0[0]);
 
47150
                                wo0   = IT_WO(it0, ip0[0]);
 
47151
                                ti_i += IT_IX(it1, ip0[1]);
 
47152
                                wo1   = IT_WO(it1, ip0[1]);
 
47153
                                ti_i += IT_IX(it2, ip0[2]);
 
47154
                                wo2   = IT_WO(it2, ip0[2]);
 
47155
 
 
47156
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
47157
 
 
47158
                                /* Sort weighting values and vertex offset values */
 
47159
                                CEX(wo0, wo1);
 
47160
                                CEX(wo0, wo2);
 
47161
                                CEX(wo1, wo2);
 
47162
                        }
 
47163
                        {
 
47164
                                unsigned int nvof;      /* Next vertex offset value */
 
47165
                                unsigned int vof;       /* Vertex offset value */
 
47166
                                unsigned int vwe;       /* Vertex weighting */
 
47167
 
 
47168
                                vof = 0;                                /* First vertex offset is 0 */
 
47169
                                nvof = (wo0 & 0x7fff);  /* Extract offset value */
 
47170
                                wo0 = (wo0 >> 15);              /* Extract weighting value */
 
47171
                                vwe = 65536 - wo0;              /* Baricentric weighting */
 
47172
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
47173
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
47174
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
47175
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
47176
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
47177
                                ova5  = IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
47178
                                ova6  = IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
47179
                                vof += nvof;                    /* Move to next vertex */
 
47180
                                nvof = (wo1 & 0x7fff);  /* Extract offset value */
 
47181
                                wo1 = (wo1 >> 15);              /* Extract weighting value */
 
47182
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
47183
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
47184
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
47185
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
47186
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
47187
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
47188
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
47189
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
47190
                                vof += nvof;                    /* Move to next vertex */
 
47191
                                nvof = (wo2 & 0x7fff);  /* Extract offset value */
 
47192
                                wo2 = (wo2 >> 15);              /* Extract weighting value */
 
47193
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
47194
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
47195
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
47196
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
47197
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
47198
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
47199
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
47200
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
47201
                                vof += nvof;                    /* Move to next vertex */
 
47202
                                vwe = wo2;                              /* Baricentric weighting */
 
47203
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
47204
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
47205
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
47206
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
47207
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
47208
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
47209
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
47210
                        }
 
47211
                }
 
47212
                {
 
47213
                        unsigned int oti;       /* Vertex offset value */
 
47214
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
47215
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
47216
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
 
47217
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
47218
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
 
47219
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
47220
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
 
47221
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
47222
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
 
47223
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
47224
                        oti = ((ova5 >> 16) & 0xffff);  /* Extract integer part of result */
 
47225
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
47226
                        oti = ((ova6 >> 16) & 0xffff);  /* Extract integer part of result */
 
47227
                        op0[6] = OT_E(ot6, oti);        /* Write result */
 
47228
                }
 
47229
        }
48035
47230
}
48036
47231
#undef IT_WO
48037
47232
#undef IT_IX
48044
47239
imdi_k135_gen(
48045
47240
genspec *g                      /* structure to be initialised */
48046
47241
) {
48047
 
        static unsigned char data[] = {
48048
 
                0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
48049
 
                0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
48050
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48051
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48052
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48053
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48054
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48055
 
                0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
48056
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
48057
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
48058
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
48059
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48060
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48061
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48062
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48063
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48064
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48065
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48066
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48067
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
48068
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48069
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48070
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48071
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48072
 
                0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
48073
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
48074
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
48075
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
48076
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48077
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48078
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48079
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48080
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48081
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48082
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48083
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48084
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
48085
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
48086
 
                0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48087
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
48088
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
48089
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
48090
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
48091
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
48092
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
48093
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
48094
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
48095
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
48096
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48097
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
48098
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
48099
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x33, 0x5f, 0x37, 0x5f, 
48100
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
48101
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
48102
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
48103
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
48104
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
48105
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
48106
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
48107
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48108
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48109
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48110
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48111
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
48112
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x33, 
48113
 
                0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48114
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48115
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
48116
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
48117
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
48118
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
48119
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
48120
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
48121
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
48122
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
48123
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
48124
 
                0x00, 0xf0, 0x04, 0x08 
48125
 
        };      /* Structure image */
48126
 
        
48127
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
47242
        static unsigned char data[] = {
 
47243
                0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
47244
                0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
47245
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47246
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
47247
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
47248
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
47249
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
47250
                0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
47251
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
47252
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
47253
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
47254
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47255
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47256
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47257
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47258
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
47259
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
47260
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
47261
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
47262
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
47263
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
47264
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
47265
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
47266
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
47267
                0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
47268
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
47269
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
47270
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
47271
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47272
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47273
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47274
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47275
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
47276
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
47277
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
47278
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
47279
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
47280
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
47281
                0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47282
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
47283
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
47284
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
47285
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
47286
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
47287
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
47288
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
47289
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
47290
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
47291
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47292
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
47293
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
47294
                0x2c, 0xf3, 0xdc, 0xb7, 0x33, 0x5f, 0x37, 0x5f,
 
47295
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
47296
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
47297
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
47298
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
47299
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
47300
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
47301
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
47302
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47303
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47304
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47305
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47306
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
47307
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x33,
 
47308
                0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47309
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47310
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
47311
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
47312
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
47313
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
47314
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
47315
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
47316
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
47317
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
47318
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
47319
                0x00, 0xf0, 0x04, 0x08
 
47320
        };      /* Structure image */
 
47321
 
 
47322
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
48128
47323
}
48129
47324
 
48130
47325
static void
48131
47326
imdi_k135_tab(
48132
47327
tabspec *t                      /* structure to be initialised */
48133
47328
) {
48134
 
        static unsigned char data[] = {
48135
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
48136
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
48137
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
48138
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
48139
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
48140
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
48141
 
                0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
48142
 
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
48143
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
48144
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48145
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
48146
 
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
48147
 
                0x11, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
48148
 
                0x04, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 
48149
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
48150
 
                0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48151
 
                0x0e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
48152
 
                0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
48153
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48154
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48155
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
48156
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
48157
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
48158
 
                0x06, 0x00, 0x00, 0x00, 0xdc, 0x60, 0xef, 0xb7, 
48159
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48160
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48161
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48162
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48163
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48164
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48165
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48166
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48167
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
48168
 
        };      /* Structure image */
48169
 
        
48170
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
47329
        static unsigned char data[] = {
 
47330
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
47331
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
47332
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
47333
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
47334
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
47335
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
47336
                0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
47337
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
47338
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
47339
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47340
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
47341
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
47342
                0x11, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
47343
                0x04, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00,
 
47344
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
47345
                0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47346
                0x0e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
47347
                0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
47348
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47349
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47350
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
47351
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
47352
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
47353
                0x06, 0x00, 0x00, 0x00, 0xdc, 0x60, 0xef, 0xb7,
 
47354
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47355
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47356
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47357
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47358
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
47359
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
47360
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
47361
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
47362
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
47363
        };      /* Structure image */
 
47364
 
 
47365
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
48171
47366
}
48172
47367
 
48173
 
 
48174
 
 
48175
 
 
48176
 
 
48177
 
 
48178
47368
/* Integer Multi-Dimensional Interpolation */
48179
47369
/* Interpolation Kernel Code */
48180
47370
/* Generated by cgen */
48183
47373
 
48184
47374
/* see the Licence.txt file for licencing details.*/
48185
47375
 
48186
 
 
48187
47376
/*
48188
47377
   Interpolation kernel specs:
48189
47378
 
48282
47471
void **inp,             /* pointer to input pointers */
48283
47472
unsigned int npix       /* Number of pixels to process */
48284
47473
) {
48285
 
        imdi_imp *p = (imdi_imp *)(s->impl);
48286
 
        unsigned short *ip0 = (unsigned short *)inp[0];
48287
 
        unsigned short *op0 = (unsigned short *)outp[0];
48288
 
        unsigned short *ep = ip0 + npix * 4 ;
48289
 
        pointer it0 = (pointer)p->in_tables[0];
48290
 
        pointer it1 = (pointer)p->in_tables[1];
48291
 
        pointer it2 = (pointer)p->in_tables[2];
48292
 
        pointer it3 = (pointer)p->in_tables[3];
48293
 
        pointer ot0 = (pointer)p->out_tables[0];
48294
 
        pointer ot1 = (pointer)p->out_tables[1];
48295
 
        pointer ot2 = (pointer)p->out_tables[2];
48296
 
        pointer ot3 = (pointer)p->out_tables[3];
48297
 
        pointer ot4 = (pointer)p->out_tables[4];
48298
 
        pointer ot5 = (pointer)p->out_tables[5];
48299
 
        pointer ot6 = (pointer)p->out_tables[6];
48300
 
        pointer im_base = (pointer)p->im_table;
48301
 
        
48302
 
        for(;ip0 < ep; ip0 += 4, op0 += 7) {
48303
 
                unsigned int ova0;      /* Output value accumulator */
48304
 
                unsigned int ova1;      /* Output value accumulator */
48305
 
                unsigned int ova2;      /* Output value accumulator */
48306
 
                unsigned int ova3;      /* Output value accumulator */
48307
 
                unsigned int ova4;      /* Output value accumulator */
48308
 
                unsigned int ova5;      /* Output value accumulator */
48309
 
                unsigned int ova6;      /* Output value accumulator */
48310
 
                {
48311
 
                        pointer imp;
48312
 
                        unsigned int we0;       /* Weighting value variable */
48313
 
                        unsigned int vo0;       /* Vertex offset variable */
48314
 
                        unsigned int we1;       /* Weighting value variable */
48315
 
                        unsigned int vo1;       /* Vertex offset variable */
48316
 
                        unsigned int we2;       /* Weighting value variable */
48317
 
                        unsigned int vo2;       /* Vertex offset variable */
48318
 
                        unsigned int we3;       /* Weighting value variable */
48319
 
                        unsigned int vo3;       /* Vertex offset variable */
48320
 
                        {
48321
 
                                unsigned int ti_i;      /* Interpolation index variable */
48322
 
                                
48323
 
                                ti_i  = IT_IX(it0, ip0[0]);
48324
 
                                we0   = IT_WE(it0, ip0[0]);
48325
 
                                vo0   = IT_VO(it0, ip0[0]);
48326
 
                                ti_i += IT_IX(it1, ip0[1]);
48327
 
                                we1   = IT_WE(it1, ip0[1]);
48328
 
                                vo1   = IT_VO(it1, ip0[1]);
48329
 
                                ti_i += IT_IX(it2, ip0[2]);
48330
 
                                we2   = IT_WE(it2, ip0[2]);
48331
 
                                vo2   = IT_VO(it2, ip0[2]);
48332
 
                                ti_i += IT_IX(it3, ip0[3]);
48333
 
                                we3   = IT_WE(it3, ip0[3]);
48334
 
                                vo3   = IT_VO(it3, ip0[3]);
48335
 
                                
48336
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
48337
 
                                
48338
 
                                /* Sort weighting values and vertex offset values */
48339
 
                                CEX(we0, vo0, we1, vo1);
48340
 
                                CEX(we0, vo0, we2, vo2);
48341
 
                                CEX(we0, vo0, we3, vo3);
48342
 
                                CEX(we1, vo1, we2, vo2);
48343
 
                                CEX(we1, vo1, we3, vo3);
48344
 
                                CEX(we2, vo2, we3, vo3);
48345
 
                        }
48346
 
                        {
48347
 
                                unsigned int vof;       /* Vertex offset value */
48348
 
                                unsigned int vwe;       /* Vertex weighting */
48349
 
                                
48350
 
                                vof = 0;                                /* First vertex offset is 0 */
48351
 
                                vwe = 65536 - we0;              /* Baricentric weighting */
48352
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
48353
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
48354
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
48355
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
48356
 
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
48357
 
                                ova5  = IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
48358
 
                                ova6  = IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
48359
 
                                vof += vo0;                     /* Move to next vertex */
48360
 
                                vwe = we0 - we1;                /* Baricentric weighting */
48361
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
48362
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
48363
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
48364
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
48365
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
48366
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
48367
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
48368
 
                                vof += vo1;                     /* Move to next vertex */
48369
 
                                vwe = we1 - we2;                /* Baricentric weighting */
48370
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
48371
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
48372
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
48373
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
48374
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
48375
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
48376
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
48377
 
                                vof += vo2;                     /* Move to next vertex */
48378
 
                                vwe = we2 - we3;                /* Baricentric weighting */
48379
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
48380
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
48381
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
48382
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
48383
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
48384
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
48385
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
48386
 
                                vof += vo3;                     /* Move to next vertex */
48387
 
                                vwe = we3;                              /* Baricentric weighting */
48388
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
48389
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
48390
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
48391
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
48392
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
48393
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
48394
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
48395
 
                        }
48396
 
                }
48397
 
                {
48398
 
                        unsigned int oti;       /* Vertex offset value */
48399
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
48400
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
48401
 
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
48402
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
48403
 
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
48404
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
48405
 
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
48406
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
48407
 
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
48408
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
48409
 
                        oti = ((ova5 >> 16) & 0xffff);  /* Extract integer part of result */
48410
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
48411
 
                        oti = ((ova6 >> 16) & 0xffff);  /* Extract integer part of result */
48412
 
                        op0[6] = OT_E(ot6, oti);        /* Write result */
48413
 
                }
48414
 
        }
 
47474
        imdi_imp *p = (imdi_imp *)(s->impl);
 
47475
        unsigned short *ip0 = (unsigned short *)inp[0];
 
47476
        unsigned short *op0 = (unsigned short *)outp[0];
 
47477
        unsigned short *ep = ip0 + npix * 4 ;
 
47478
        pointer it0 = (pointer)p->in_tables[0];
 
47479
        pointer it1 = (pointer)p->in_tables[1];
 
47480
        pointer it2 = (pointer)p->in_tables[2];
 
47481
        pointer it3 = (pointer)p->in_tables[3];
 
47482
        pointer ot0 = (pointer)p->out_tables[0];
 
47483
        pointer ot1 = (pointer)p->out_tables[1];
 
47484
        pointer ot2 = (pointer)p->out_tables[2];
 
47485
        pointer ot3 = (pointer)p->out_tables[3];
 
47486
        pointer ot4 = (pointer)p->out_tables[4];
 
47487
        pointer ot5 = (pointer)p->out_tables[5];
 
47488
        pointer ot6 = (pointer)p->out_tables[6];
 
47489
        pointer im_base = (pointer)p->im_table;
 
47490
 
 
47491
        for(;ip0 < ep; ip0 += 4, op0 += 7) {
 
47492
                unsigned int ova0;      /* Output value accumulator */
 
47493
                unsigned int ova1;      /* Output value accumulator */
 
47494
                unsigned int ova2;      /* Output value accumulator */
 
47495
                unsigned int ova3;      /* Output value accumulator */
 
47496
                unsigned int ova4;      /* Output value accumulator */
 
47497
                unsigned int ova5;      /* Output value accumulator */
 
47498
                unsigned int ova6;      /* Output value accumulator */
 
47499
                {
 
47500
                        pointer imp;
 
47501
                        unsigned int we0;       /* Weighting value variable */
 
47502
                        unsigned int vo0;       /* Vertex offset variable */
 
47503
                        unsigned int we1;       /* Weighting value variable */
 
47504
                        unsigned int vo1;       /* Vertex offset variable */
 
47505
                        unsigned int we2;       /* Weighting value variable */
 
47506
                        unsigned int vo2;       /* Vertex offset variable */
 
47507
                        unsigned int we3;       /* Weighting value variable */
 
47508
                        unsigned int vo3;       /* Vertex offset variable */
 
47509
                        {
 
47510
                                unsigned int ti_i;      /* Interpolation index variable */
 
47511
 
 
47512
                                ti_i  = IT_IX(it0, ip0[0]);
 
47513
                                we0   = IT_WE(it0, ip0[0]);
 
47514
                                vo0   = IT_VO(it0, ip0[0]);
 
47515
                                ti_i += IT_IX(it1, ip0[1]);
 
47516
                                we1   = IT_WE(it1, ip0[1]);
 
47517
                                vo1   = IT_VO(it1, ip0[1]);
 
47518
                                ti_i += IT_IX(it2, ip0[2]);
 
47519
                                we2   = IT_WE(it2, ip0[2]);
 
47520
                                vo2   = IT_VO(it2, ip0[2]);
 
47521
                                ti_i += IT_IX(it3, ip0[3]);
 
47522
                                we3   = IT_WE(it3, ip0[3]);
 
47523
                                vo3   = IT_VO(it3, ip0[3]);
 
47524
 
 
47525
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
47526
 
 
47527
                                /* Sort weighting values and vertex offset values */
 
47528
                                CEX(we0, vo0, we1, vo1);
 
47529
                                CEX(we0, vo0, we2, vo2);
 
47530
                                CEX(we0, vo0, we3, vo3);
 
47531
                                CEX(we1, vo1, we2, vo2);
 
47532
                                CEX(we1, vo1, we3, vo3);
 
47533
                                CEX(we2, vo2, we3, vo3);
 
47534
                        }
 
47535
                        {
 
47536
                                unsigned int vof;       /* Vertex offset value */
 
47537
                                unsigned int vwe;       /* Vertex weighting */
 
47538
 
 
47539
                                vof = 0;                                /* First vertex offset is 0 */
 
47540
                                vwe = 65536 - we0;              /* Baricentric weighting */
 
47541
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
47542
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
47543
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
47544
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
47545
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
47546
                                ova5  = IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
47547
                                ova6  = IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
47548
                                vof += vo0;                     /* Move to next vertex */
 
47549
                                vwe = we0 - we1;                /* Baricentric weighting */
 
47550
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
47551
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
47552
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
47553
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
47554
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
47555
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
47556
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
47557
                                vof += vo1;                     /* Move to next vertex */
 
47558
                                vwe = we1 - we2;                /* Baricentric weighting */
 
47559
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
47560
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
47561
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
47562
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
47563
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
47564
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
47565
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
47566
                                vof += vo2;                     /* Move to next vertex */
 
47567
                                vwe = we2 - we3;                /* Baricentric weighting */
 
47568
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
47569
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
47570
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
47571
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
47572
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
47573
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
47574
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
47575
                                vof += vo3;                     /* Move to next vertex */
 
47576
                                vwe = we3;                              /* Baricentric weighting */
 
47577
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
47578
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
47579
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
47580
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
47581
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
47582
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
47583
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
47584
                        }
 
47585
                }
 
47586
                {
 
47587
                        unsigned int oti;       /* Vertex offset value */
 
47588
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
47589
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
47590
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
 
47591
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
47592
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
 
47593
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
47594
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
 
47595
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
47596
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
 
47597
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
47598
                        oti = ((ova5 >> 16) & 0xffff);  /* Extract integer part of result */
 
47599
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
47600
                        oti = ((ova6 >> 16) & 0xffff);  /* Extract integer part of result */
 
47601
                        op0[6] = OT_E(ot6, oti);        /* Write result */
 
47602
                }
 
47603
        }
48415
47604
}
48416
47605
#undef IT_WE
48417
47606
#undef IT_VO
48425
47614
imdi_k136_gen(
48426
47615
genspec *g                      /* structure to be initialised */
48427
47616
) {
48428
 
        static unsigned char data[] = {
48429
 
                0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
48430
 
                0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
48431
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48432
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48433
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48434
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48435
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48436
 
                0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
48437
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
48438
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
48439
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
48440
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48441
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48442
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48443
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48444
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48445
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48446
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48447
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48448
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
48449
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48450
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48451
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48452
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48453
 
                0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
48454
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
48455
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
48456
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
48457
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48458
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48459
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48460
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48461
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48462
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48463
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48464
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48465
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
48466
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
48467
 
                0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48468
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
48469
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
48470
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
48471
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
48472
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
48473
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
48474
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
48475
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
48476
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
48477
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48478
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
48479
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
48480
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x34, 0x5f, 0x37, 0x5f, 
48481
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
48482
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
48483
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
48484
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
48485
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
48486
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
48487
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
48488
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48489
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48490
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48491
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48492
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
48493
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x33, 
48494
 
                0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48495
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48496
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
48497
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
48498
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
48499
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
48500
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
48501
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
48502
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
48503
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
48504
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
48505
 
                0x00, 0xf0, 0x04, 0x08 
48506
 
        };      /* Structure image */
48507
 
        
48508
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
47617
        static unsigned char data[] = {
 
47618
                0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
47619
                0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
47620
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47621
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
47622
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
47623
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
47624
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
47625
                0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
47626
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
47627
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
47628
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
47629
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47630
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47631
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47632
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47633
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
47634
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
47635
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
47636
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
47637
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
47638
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
47639
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
47640
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
47641
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
47642
                0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
47643
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
47644
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
47645
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
47646
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47647
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47648
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47649
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47650
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
47651
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
47652
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
47653
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
47654
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
47655
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
47656
                0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47657
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
47658
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
47659
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
47660
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
47661
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
47662
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
47663
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
47664
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
47665
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
47666
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47667
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
47668
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
47669
                0x2c, 0xf3, 0xdc, 0xb7, 0x34, 0x5f, 0x37, 0x5f,
 
47670
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
47671
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
47672
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
47673
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
47674
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
47675
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
47676
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
47677
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47678
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47679
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47680
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47681
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
47682
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x33,
 
47683
                0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47684
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47685
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
47686
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
47687
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
47688
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
47689
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
47690
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
47691
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
47692
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
47693
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
47694
                0x00, 0xf0, 0x04, 0x08
 
47695
        };      /* Structure image */
 
47696
 
 
47697
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
48509
47698
}
48510
47699
 
48511
47700
static void
48512
47701
imdi_k136_tab(
48513
47702
tabspec *t                      /* structure to be initialised */
48514
47703
) {
48515
 
        static unsigned char data[] = {
48516
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
48517
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
48518
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
48519
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
48520
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
48521
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
48522
 
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 
48523
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
48524
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
48525
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48526
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
48527
 
                0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
48528
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
48529
 
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
48530
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
48531
 
                0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48532
 
                0x0e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
48533
 
                0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
48534
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48535
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48536
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
48537
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
48538
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
48539
 
                0x06, 0x00, 0x00, 0x00, 0xdc, 0x60, 0xef, 0xb7, 
48540
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48541
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48542
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48543
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48544
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48545
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48546
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48547
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48548
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
48549
 
        };      /* Structure image */
48550
 
        
48551
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
47704
        static unsigned char data[] = {
 
47705
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
47706
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
47707
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
47708
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
47709
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
47710
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
47711
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
 
47712
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
47713
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
47714
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47715
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
47716
                0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
47717
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
47718
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
47719
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
47720
                0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47721
                0x0e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
47722
                0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
47723
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47724
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47725
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
47726
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
47727
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
47728
                0x06, 0x00, 0x00, 0x00, 0xdc, 0x60, 0xef, 0xb7,
 
47729
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47730
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47731
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47732
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
47733
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
47734
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
47735
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
47736
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
47737
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
47738
        };      /* Structure image */
 
47739
 
 
47740
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
48552
47741
}
48553
47742
 
48554
 
 
48555
 
 
48556
 
 
48557
 
 
48558
 
 
48559
47743
/* Integer Multi-Dimensional Interpolation */
48560
47744
/* Interpolation Kernel Code */
48561
47745
/* Generated by cgen */
48564
47748
 
48565
47749
/* see the Licence.txt file for licencing details.*/
48566
47750
 
48567
 
 
48568
47751
/*
48569
47752
   Interpolation kernel specs:
48570
47753
 
48665
47848
void **inp,             /* pointer to input pointers */
48666
47849
unsigned int npix       /* Number of pixels to process */
48667
47850
) {
48668
 
        imdi_imp *p = (imdi_imp *)(s->impl);
48669
 
        unsigned short *ip0 = (unsigned short *)inp[0];
48670
 
        unsigned short *op0 = (unsigned short *)outp[0];
48671
 
        unsigned short *ep = ip0 + npix * 5 ;
48672
 
        pointer it0 = (pointer)p->in_tables[0];
48673
 
        pointer it1 = (pointer)p->in_tables[1];
48674
 
        pointer it2 = (pointer)p->in_tables[2];
48675
 
        pointer it3 = (pointer)p->in_tables[3];
48676
 
        pointer it4 = (pointer)p->in_tables[4];
48677
 
        pointer ot0 = (pointer)p->out_tables[0];
48678
 
        pointer ot1 = (pointer)p->out_tables[1];
48679
 
        pointer ot2 = (pointer)p->out_tables[2];
48680
 
        pointer ot3 = (pointer)p->out_tables[3];
48681
 
        pointer ot4 = (pointer)p->out_tables[4];
48682
 
        pointer ot5 = (pointer)p->out_tables[5];
48683
 
        pointer ot6 = (pointer)p->out_tables[6];
48684
 
        pointer im_base = (pointer)p->im_table;
48685
 
        
48686
 
        for(;ip0 < ep; ip0 += 5, op0 += 7) {
48687
 
                unsigned int ova0;      /* Output value accumulator */
48688
 
                unsigned int ova1;      /* Output value accumulator */
48689
 
                unsigned int ova2;      /* Output value accumulator */
48690
 
                unsigned int ova3;      /* Output value accumulator */
48691
 
                unsigned int ova4;      /* Output value accumulator */
48692
 
                unsigned int ova5;      /* Output value accumulator */
48693
 
                unsigned int ova6;      /* Output value accumulator */
48694
 
                {
48695
 
                        pointer imp;
48696
 
                        unsigned int we0;       /* Weighting value variable */
48697
 
                        unsigned int vo0;       /* Vertex offset variable */
48698
 
                        unsigned int we1;       /* Weighting value variable */
48699
 
                        unsigned int vo1;       /* Vertex offset variable */
48700
 
                        unsigned int we2;       /* Weighting value variable */
48701
 
                        unsigned int vo2;       /* Vertex offset variable */
48702
 
                        unsigned int we3;       /* Weighting value variable */
48703
 
                        unsigned int vo3;       /* Vertex offset variable */
48704
 
                        unsigned int we4;       /* Weighting value variable */
48705
 
                        unsigned int vo4;       /* Vertex offset variable */
48706
 
                        {
48707
 
                                unsigned int ti_i;      /* Interpolation index variable */
48708
 
                                
48709
 
                                ti_i  = IT_IX(it0, ip0[0]);
48710
 
                                we0   = IT_WE(it0, ip0[0]);
48711
 
                                vo0   = IT_VO(it0, ip0[0]);
48712
 
                                ti_i += IT_IX(it1, ip0[1]);
48713
 
                                we1   = IT_WE(it1, ip0[1]);
48714
 
                                vo1   = IT_VO(it1, ip0[1]);
48715
 
                                ti_i += IT_IX(it2, ip0[2]);
48716
 
                                we2   = IT_WE(it2, ip0[2]);
48717
 
                                vo2   = IT_VO(it2, ip0[2]);
48718
 
                                ti_i += IT_IX(it3, ip0[3]);
48719
 
                                we3   = IT_WE(it3, ip0[3]);
48720
 
                                vo3   = IT_VO(it3, ip0[3]);
48721
 
                                ti_i += IT_IX(it4, ip0[4]);
48722
 
                                we4   = IT_WE(it4, ip0[4]);
48723
 
                                vo4   = IT_VO(it4, ip0[4]);
48724
 
                                
48725
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
48726
 
                                
48727
 
                                /* Sort weighting values and vertex offset values */
48728
 
                                CEX(we0, vo0, we1, vo1);
48729
 
                                CEX(we0, vo0, we2, vo2);
48730
 
                                CEX(we0, vo0, we3, vo3);
48731
 
                                CEX(we0, vo0, we4, vo4);
48732
 
                                CEX(we1, vo1, we2, vo2);
48733
 
                                CEX(we1, vo1, we3, vo3);
48734
 
                                CEX(we1, vo1, we4, vo4);
48735
 
                                CEX(we2, vo2, we3, vo3);
48736
 
                                CEX(we2, vo2, we4, vo4);
48737
 
                                CEX(we3, vo3, we4, vo4);
48738
 
                        }
48739
 
                        {
48740
 
                                unsigned int vof;       /* Vertex offset value */
48741
 
                                unsigned int vwe;       /* Vertex weighting */
48742
 
                                
48743
 
                                vof = 0;                                /* First vertex offset is 0 */
48744
 
                                vwe = 65536 - we0;              /* Baricentric weighting */
48745
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
48746
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
48747
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
48748
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
48749
 
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
48750
 
                                ova5  = IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
48751
 
                                ova6  = IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
48752
 
                                vof += vo0;                     /* Move to next vertex */
48753
 
                                vwe = we0 - we1;                /* Baricentric weighting */
48754
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
48755
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
48756
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
48757
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
48758
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
48759
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
48760
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
48761
 
                                vof += vo1;                     /* Move to next vertex */
48762
 
                                vwe = we1 - we2;                /* Baricentric weighting */
48763
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
48764
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
48765
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
48766
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
48767
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
48768
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
48769
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
48770
 
                                vof += vo2;                     /* Move to next vertex */
48771
 
                                vwe = we2 - we3;                /* Baricentric weighting */
48772
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
48773
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
48774
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
48775
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
48776
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
48777
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
48778
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
48779
 
                                vof += vo3;                     /* Move to next vertex */
48780
 
                                vwe = we3 - we4;                /* Baricentric weighting */
48781
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
48782
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
48783
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
48784
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
48785
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
48786
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
48787
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
48788
 
                                vof += vo4;                     /* Move to next vertex */
48789
 
                                vwe = we4;                              /* Baricentric weighting */
48790
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
48791
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
48792
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
48793
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
48794
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
48795
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
48796
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
48797
 
                        }
48798
 
                }
48799
 
                {
48800
 
                        unsigned int oti;       /* Vertex offset value */
48801
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
48802
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
48803
 
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
48804
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
48805
 
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
48806
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
48807
 
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
48808
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
48809
 
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
48810
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
48811
 
                        oti = ((ova5 >> 16) & 0xffff);  /* Extract integer part of result */
48812
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
48813
 
                        oti = ((ova6 >> 16) & 0xffff);  /* Extract integer part of result */
48814
 
                        op0[6] = OT_E(ot6, oti);        /* Write result */
48815
 
                }
48816
 
        }
 
47851
        imdi_imp *p = (imdi_imp *)(s->impl);
 
47852
        unsigned short *ip0 = (unsigned short *)inp[0];
 
47853
        unsigned short *op0 = (unsigned short *)outp[0];
 
47854
        unsigned short *ep = ip0 + npix * 5 ;
 
47855
        pointer it0 = (pointer)p->in_tables[0];
 
47856
        pointer it1 = (pointer)p->in_tables[1];
 
47857
        pointer it2 = (pointer)p->in_tables[2];
 
47858
        pointer it3 = (pointer)p->in_tables[3];
 
47859
        pointer it4 = (pointer)p->in_tables[4];
 
47860
        pointer ot0 = (pointer)p->out_tables[0];
 
47861
        pointer ot1 = (pointer)p->out_tables[1];
 
47862
        pointer ot2 = (pointer)p->out_tables[2];
 
47863
        pointer ot3 = (pointer)p->out_tables[3];
 
47864
        pointer ot4 = (pointer)p->out_tables[4];
 
47865
        pointer ot5 = (pointer)p->out_tables[5];
 
47866
        pointer ot6 = (pointer)p->out_tables[6];
 
47867
        pointer im_base = (pointer)p->im_table;
 
47868
 
 
47869
        for(;ip0 < ep; ip0 += 5, op0 += 7) {
 
47870
                unsigned int ova0;      /* Output value accumulator */
 
47871
                unsigned int ova1;      /* Output value accumulator */
 
47872
                unsigned int ova2;      /* Output value accumulator */
 
47873
                unsigned int ova3;      /* Output value accumulator */
 
47874
                unsigned int ova4;      /* Output value accumulator */
 
47875
                unsigned int ova5;      /* Output value accumulator */
 
47876
                unsigned int ova6;      /* Output value accumulator */
 
47877
                {
 
47878
                        pointer imp;
 
47879
                        unsigned int we0;       /* Weighting value variable */
 
47880
                        unsigned int vo0;       /* Vertex offset variable */
 
47881
                        unsigned int we1;       /* Weighting value variable */
 
47882
                        unsigned int vo1;       /* Vertex offset variable */
 
47883
                        unsigned int we2;       /* Weighting value variable */
 
47884
                        unsigned int vo2;       /* Vertex offset variable */
 
47885
                        unsigned int we3;       /* Weighting value variable */
 
47886
                        unsigned int vo3;       /* Vertex offset variable */
 
47887
                        unsigned int we4;       /* Weighting value variable */
 
47888
                        unsigned int vo4;       /* Vertex offset variable */
 
47889
                        {
 
47890
                                unsigned int ti_i;      /* Interpolation index variable */
 
47891
 
 
47892
                                ti_i  = IT_IX(it0, ip0[0]);
 
47893
                                we0   = IT_WE(it0, ip0[0]);
 
47894
                                vo0   = IT_VO(it0, ip0[0]);
 
47895
                                ti_i += IT_IX(it1, ip0[1]);
 
47896
                                we1   = IT_WE(it1, ip0[1]);
 
47897
                                vo1   = IT_VO(it1, ip0[1]);
 
47898
                                ti_i += IT_IX(it2, ip0[2]);
 
47899
                                we2   = IT_WE(it2, ip0[2]);
 
47900
                                vo2   = IT_VO(it2, ip0[2]);
 
47901
                                ti_i += IT_IX(it3, ip0[3]);
 
47902
                                we3   = IT_WE(it3, ip0[3]);
 
47903
                                vo3   = IT_VO(it3, ip0[3]);
 
47904
                                ti_i += IT_IX(it4, ip0[4]);
 
47905
                                we4   = IT_WE(it4, ip0[4]);
 
47906
                                vo4   = IT_VO(it4, ip0[4]);
 
47907
 
 
47908
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
47909
 
 
47910
                                /* Sort weighting values and vertex offset values */
 
47911
                                CEX(we0, vo0, we1, vo1);
 
47912
                                CEX(we0, vo0, we2, vo2);
 
47913
                                CEX(we0, vo0, we3, vo3);
 
47914
                                CEX(we0, vo0, we4, vo4);
 
47915
                                CEX(we1, vo1, we2, vo2);
 
47916
                                CEX(we1, vo1, we3, vo3);
 
47917
                                CEX(we1, vo1, we4, vo4);
 
47918
                                CEX(we2, vo2, we3, vo3);
 
47919
                                CEX(we2, vo2, we4, vo4);
 
47920
                                CEX(we3, vo3, we4, vo4);
 
47921
                        }
 
47922
                        {
 
47923
                                unsigned int vof;       /* Vertex offset value */
 
47924
                                unsigned int vwe;       /* Vertex weighting */
 
47925
 
 
47926
                                vof = 0;                                /* First vertex offset is 0 */
 
47927
                                vwe = 65536 - we0;              /* Baricentric weighting */
 
47928
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
47929
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
47930
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
47931
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
47932
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
47933
                                ova5  = IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
47934
                                ova6  = IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
47935
                                vof += vo0;                     /* Move to next vertex */
 
47936
                                vwe = we0 - we1;                /* Baricentric weighting */
 
47937
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
47938
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
47939
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
47940
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
47941
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
47942
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
47943
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
47944
                                vof += vo1;                     /* Move to next vertex */
 
47945
                                vwe = we1 - we2;                /* Baricentric weighting */
 
47946
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
47947
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
47948
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
47949
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
47950
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
47951
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
47952
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
47953
                                vof += vo2;                     /* Move to next vertex */
 
47954
                                vwe = we2 - we3;                /* Baricentric weighting */
 
47955
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
47956
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
47957
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
47958
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
47959
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
47960
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
47961
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
47962
                                vof += vo3;                     /* Move to next vertex */
 
47963
                                vwe = we3 - we4;                /* Baricentric weighting */
 
47964
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
47965
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
47966
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
47967
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
47968
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
47969
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
47970
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
47971
                                vof += vo4;                     /* Move to next vertex */
 
47972
                                vwe = we4;                              /* Baricentric weighting */
 
47973
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
47974
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
47975
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
47976
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
47977
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
47978
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
47979
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
47980
                        }
 
47981
                }
 
47982
                {
 
47983
                        unsigned int oti;       /* Vertex offset value */
 
47984
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
47985
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
47986
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
 
47987
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
47988
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
 
47989
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
47990
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
 
47991
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
47992
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
 
47993
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
47994
                        oti = ((ova5 >> 16) & 0xffff);  /* Extract integer part of result */
 
47995
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
47996
                        oti = ((ova6 >> 16) & 0xffff);  /* Extract integer part of result */
 
47997
                        op0[6] = OT_E(ot6, oti);        /* Write result */
 
47998
                }
 
47999
        }
48817
48000
}
48818
48001
#undef IT_WE
48819
48002
#undef IT_VO
48827
48010
imdi_k137_gen(
48828
48011
genspec *g                      /* structure to be initialised */
48829
48012
) {
48830
 
        static unsigned char data[] = {
48831
 
                0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
48832
 
                0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
48833
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48834
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48835
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48836
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48837
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48838
 
                0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
48839
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
48840
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
48841
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
48842
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48843
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48844
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48845
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48846
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48847
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48848
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48849
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48850
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
48851
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48852
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48853
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48854
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48855
 
                0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
48856
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
48857
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
48858
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
48859
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48860
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48861
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48862
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48863
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48864
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48865
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48866
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48867
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
48868
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
48869
 
                0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48870
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
48871
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
48872
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
48873
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
48874
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
48875
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
48876
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
48877
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
48878
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
48879
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48880
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
48881
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
48882
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x35, 0x5f, 0x37, 0x5f, 
48883
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
48884
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
48885
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
48886
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
48887
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
48888
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
48889
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
48890
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48891
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48892
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48893
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48894
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
48895
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x33, 
48896
 
                0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48897
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48898
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
48899
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
48900
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
48901
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
48902
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
48903
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
48904
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
48905
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
48906
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
48907
 
                0x00, 0xf0, 0x04, 0x08 
48908
 
        };      /* Structure image */
48909
 
        
48910
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
48013
        static unsigned char data[] = {
 
48014
                0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
48015
                0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
48016
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48017
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48018
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48019
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48020
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48021
                0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
48022
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
48023
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
48024
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
48025
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48026
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48027
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48028
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48029
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48030
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48031
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48032
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48033
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
48034
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48035
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48036
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48037
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48038
                0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
48039
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
48040
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
48041
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
48042
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48043
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48044
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48045
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48046
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48047
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48048
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48049
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48050
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
48051
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
48052
                0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48053
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
48054
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
48055
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
48056
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
48057
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
48058
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
48059
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
48060
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
48061
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
48062
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48063
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
48064
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
48065
                0x2c, 0xf3, 0xdc, 0xb7, 0x35, 0x5f, 0x37, 0x5f,
 
48066
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
48067
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
48068
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
48069
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
48070
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
48071
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
48072
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
48073
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48074
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48075
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48076
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48077
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
48078
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x33,
 
48079
                0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48080
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48081
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
48082
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
48083
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
48084
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
48085
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
48086
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
48087
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
48088
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
48089
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
48090
                0x00, 0xf0, 0x04, 0x08
 
48091
        };      /* Structure image */
 
48092
 
 
48093
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
48911
48094
}
48912
48095
 
48913
48096
static void
48914
48097
imdi_k137_tab(
48915
48098
tabspec *t                      /* structure to be initialised */
48916
48099
) {
48917
 
        static unsigned char data[] = {
48918
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
48919
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
48920
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
48921
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
48922
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
48923
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
48924
 
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 
48925
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
48926
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
48927
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48928
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
48929
 
                0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
48930
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
48931
 
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
48932
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
48933
 
                0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48934
 
                0x0e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
48935
 
                0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
48936
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48937
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48938
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
48939
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
48940
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
48941
 
                0x06, 0x00, 0x00, 0x00, 0xdc, 0x60, 0xef, 0xb7, 
48942
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48943
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48944
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48945
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
48946
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48947
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48948
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48949
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
48950
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
48951
 
        };      /* Structure image */
48952
 
        
48953
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
48100
        static unsigned char data[] = {
 
48101
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
48102
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
48103
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
48104
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
48105
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
48106
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
48107
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
 
48108
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
48109
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
48110
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48111
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
48112
                0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
48113
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
48114
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
48115
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
48116
                0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48117
                0x0e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
48118
                0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
48119
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48120
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48121
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
48122
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
48123
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
48124
                0x06, 0x00, 0x00, 0x00, 0xdc, 0x60, 0xef, 0xb7,
 
48125
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48126
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48127
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48128
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48129
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48130
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48131
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48132
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48133
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
48134
        };      /* Structure image */
 
48135
 
 
48136
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
48954
48137
}
48955
48138
 
48956
 
 
48957
 
 
48958
 
 
48959
 
 
48960
 
 
48961
48139
/* Integer Multi-Dimensional Interpolation */
48962
48140
/* Interpolation Kernel Code */
48963
48141
/* Generated by cgen */
48966
48144
 
48967
48145
/* see the Licence.txt file for licencing details.*/
48968
48146
 
48969
 
 
48970
48147
/*
48971
48148
   Interpolation kernel specs:
48972
48149
 
49069
48246
void **inp,             /* pointer to input pointers */
49070
48247
unsigned int npix       /* Number of pixels to process */
49071
48248
) {
49072
 
        imdi_imp *p = (imdi_imp *)(s->impl);
49073
 
        unsigned short *ip0 = (unsigned short *)inp[0];
49074
 
        unsigned short *op0 = (unsigned short *)outp[0];
49075
 
        unsigned short *ep = ip0 + npix * 6 ;
49076
 
        pointer it0 = (pointer)p->in_tables[0];
49077
 
        pointer it1 = (pointer)p->in_tables[1];
49078
 
        pointer it2 = (pointer)p->in_tables[2];
49079
 
        pointer it3 = (pointer)p->in_tables[3];
49080
 
        pointer it4 = (pointer)p->in_tables[4];
49081
 
        pointer it5 = (pointer)p->in_tables[5];
49082
 
        pointer ot0 = (pointer)p->out_tables[0];
49083
 
        pointer ot1 = (pointer)p->out_tables[1];
49084
 
        pointer ot2 = (pointer)p->out_tables[2];
49085
 
        pointer ot3 = (pointer)p->out_tables[3];
49086
 
        pointer ot4 = (pointer)p->out_tables[4];
49087
 
        pointer ot5 = (pointer)p->out_tables[5];
49088
 
        pointer ot6 = (pointer)p->out_tables[6];
49089
 
        pointer im_base = (pointer)p->im_table;
49090
 
        
49091
 
        for(;ip0 < ep; ip0 += 6, op0 += 7) {
49092
 
                unsigned int ova0;      /* Output value accumulator */
49093
 
                unsigned int ova1;      /* Output value accumulator */
49094
 
                unsigned int ova2;      /* Output value accumulator */
49095
 
                unsigned int ova3;      /* Output value accumulator */
49096
 
                unsigned int ova4;      /* Output value accumulator */
49097
 
                unsigned int ova5;      /* Output value accumulator */
49098
 
                unsigned int ova6;      /* Output value accumulator */
49099
 
                {
49100
 
                        pointer imp;
49101
 
                        unsigned int we0;       /* Weighting value variable */
49102
 
                        unsigned int vo0;       /* Vertex offset variable */
49103
 
                        unsigned int we1;       /* Weighting value variable */
49104
 
                        unsigned int vo1;       /* Vertex offset variable */
49105
 
                        unsigned int we2;       /* Weighting value variable */
49106
 
                        unsigned int vo2;       /* Vertex offset variable */
49107
 
                        unsigned int we3;       /* Weighting value variable */
49108
 
                        unsigned int vo3;       /* Vertex offset variable */
49109
 
                        unsigned int we4;       /* Weighting value variable */
49110
 
                        unsigned int vo4;       /* Vertex offset variable */
49111
 
                        unsigned int we5;       /* Weighting value variable */
49112
 
                        unsigned int vo5;       /* Vertex offset variable */
49113
 
                        {
49114
 
                                unsigned int ti_i;      /* Interpolation index variable */
49115
 
                                
49116
 
                                ti_i  = IT_IX(it0, ip0[0]);
49117
 
                                we0   = IT_WE(it0, ip0[0]);
49118
 
                                vo0   = IT_VO(it0, ip0[0]);
49119
 
                                ti_i += IT_IX(it1, ip0[1]);
49120
 
                                we1   = IT_WE(it1, ip0[1]);
49121
 
                                vo1   = IT_VO(it1, ip0[1]);
49122
 
                                ti_i += IT_IX(it2, ip0[2]);
49123
 
                                we2   = IT_WE(it2, ip0[2]);
49124
 
                                vo2   = IT_VO(it2, ip0[2]);
49125
 
                                ti_i += IT_IX(it3, ip0[3]);
49126
 
                                we3   = IT_WE(it3, ip0[3]);
49127
 
                                vo3   = IT_VO(it3, ip0[3]);
49128
 
                                ti_i += IT_IX(it4, ip0[4]);
49129
 
                                we4   = IT_WE(it4, ip0[4]);
49130
 
                                vo4   = IT_VO(it4, ip0[4]);
49131
 
                                ti_i += IT_IX(it5, ip0[5]);
49132
 
                                we5   = IT_WE(it5, ip0[5]);
49133
 
                                vo5   = IT_VO(it5, ip0[5]);
49134
 
                                
49135
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
49136
 
                                
49137
 
                                /* Sort weighting values and vertex offset values */
49138
 
                                CEX(we0, vo0, we1, vo1);
49139
 
                                CEX(we0, vo0, we2, vo2);
49140
 
                                CEX(we0, vo0, we3, vo3);
49141
 
                                CEX(we0, vo0, we4, vo4);
49142
 
                                CEX(we0, vo0, we5, vo5);
49143
 
                                CEX(we1, vo1, we2, vo2);
49144
 
                                CEX(we1, vo1, we3, vo3);
49145
 
                                CEX(we1, vo1, we4, vo4);
49146
 
                                CEX(we1, vo1, we5, vo5);
49147
 
                                CEX(we2, vo2, we3, vo3);
49148
 
                                CEX(we2, vo2, we4, vo4);
49149
 
                                CEX(we2, vo2, we5, vo5);
49150
 
                                CEX(we3, vo3, we4, vo4);
49151
 
                                CEX(we3, vo3, we5, vo5);
49152
 
                                CEX(we4, vo4, we5, vo5);
49153
 
                        }
49154
 
                        {
49155
 
                                unsigned int vof;       /* Vertex offset value */
49156
 
                                unsigned int vwe;       /* Vertex weighting */
49157
 
                                
49158
 
                                vof = 0;                                /* First vertex offset is 0 */
49159
 
                                vwe = 65536 - we0;              /* Baricentric weighting */
49160
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
49161
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
49162
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
49163
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
49164
 
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
49165
 
                                ova5  = IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
49166
 
                                ova6  = IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
49167
 
                                vof += vo0;                     /* Move to next vertex */
49168
 
                                vwe = we0 - we1;                /* Baricentric weighting */
49169
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
49170
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
49171
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
49172
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
49173
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
49174
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
49175
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
49176
 
                                vof += vo1;                     /* Move to next vertex */
49177
 
                                vwe = we1 - we2;                /* Baricentric weighting */
49178
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
49179
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
49180
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
49181
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
49182
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
49183
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
49184
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
49185
 
                                vof += vo2;                     /* Move to next vertex */
49186
 
                                vwe = we2 - we3;                /* Baricentric weighting */
49187
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
49188
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
49189
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
49190
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
49191
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
49192
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
49193
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
49194
 
                                vof += vo3;                     /* Move to next vertex */
49195
 
                                vwe = we3 - we4;                /* Baricentric weighting */
49196
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
49197
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
49198
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
49199
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
49200
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
49201
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
49202
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
49203
 
                                vof += vo4;                     /* Move to next vertex */
49204
 
                                vwe = we4 - we5;                /* Baricentric weighting */
49205
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
49206
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
49207
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
49208
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
49209
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
49210
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
49211
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
49212
 
                                vof += vo5;                     /* Move to next vertex */
49213
 
                                vwe = we5;                              /* Baricentric weighting */
49214
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
49215
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
49216
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
49217
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
49218
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
49219
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
49220
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
49221
 
                        }
49222
 
                }
49223
 
                {
49224
 
                        unsigned int oti;       /* Vertex offset value */
49225
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
49226
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
49227
 
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
49228
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
49229
 
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
49230
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
49231
 
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
49232
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
49233
 
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
49234
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
49235
 
                        oti = ((ova5 >> 16) & 0xffff);  /* Extract integer part of result */
49236
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
49237
 
                        oti = ((ova6 >> 16) & 0xffff);  /* Extract integer part of result */
49238
 
                        op0[6] = OT_E(ot6, oti);        /* Write result */
49239
 
                }
49240
 
        }
 
48249
        imdi_imp *p = (imdi_imp *)(s->impl);
 
48250
        unsigned short *ip0 = (unsigned short *)inp[0];
 
48251
        unsigned short *op0 = (unsigned short *)outp[0];
 
48252
        unsigned short *ep = ip0 + npix * 6 ;
 
48253
        pointer it0 = (pointer)p->in_tables[0];
 
48254
        pointer it1 = (pointer)p->in_tables[1];
 
48255
        pointer it2 = (pointer)p->in_tables[2];
 
48256
        pointer it3 = (pointer)p->in_tables[3];
 
48257
        pointer it4 = (pointer)p->in_tables[4];
 
48258
        pointer it5 = (pointer)p->in_tables[5];
 
48259
        pointer ot0 = (pointer)p->out_tables[0];
 
48260
        pointer ot1 = (pointer)p->out_tables[1];
 
48261
        pointer ot2 = (pointer)p->out_tables[2];
 
48262
        pointer ot3 = (pointer)p->out_tables[3];
 
48263
        pointer ot4 = (pointer)p->out_tables[4];
 
48264
        pointer ot5 = (pointer)p->out_tables[5];
 
48265
        pointer ot6 = (pointer)p->out_tables[6];
 
48266
        pointer im_base = (pointer)p->im_table;
 
48267
 
 
48268
        for(;ip0 < ep; ip0 += 6, op0 += 7) {
 
48269
                unsigned int ova0;      /* Output value accumulator */
 
48270
                unsigned int ova1;      /* Output value accumulator */
 
48271
                unsigned int ova2;      /* Output value accumulator */
 
48272
                unsigned int ova3;      /* Output value accumulator */
 
48273
                unsigned int ova4;      /* Output value accumulator */
 
48274
                unsigned int ova5;      /* Output value accumulator */
 
48275
                unsigned int ova6;      /* Output value accumulator */
 
48276
                {
 
48277
                        pointer imp;
 
48278
                        unsigned int we0;       /* Weighting value variable */
 
48279
                        unsigned int vo0;       /* Vertex offset variable */
 
48280
                        unsigned int we1;       /* Weighting value variable */
 
48281
                        unsigned int vo1;       /* Vertex offset variable */
 
48282
                        unsigned int we2;       /* Weighting value variable */
 
48283
                        unsigned int vo2;       /* Vertex offset variable */
 
48284
                        unsigned int we3;       /* Weighting value variable */
 
48285
                        unsigned int vo3;       /* Vertex offset variable */
 
48286
                        unsigned int we4;       /* Weighting value variable */
 
48287
                        unsigned int vo4;       /* Vertex offset variable */
 
48288
                        unsigned int we5;       /* Weighting value variable */
 
48289
                        unsigned int vo5;       /* Vertex offset variable */
 
48290
                        {
 
48291
                                unsigned int ti_i;      /* Interpolation index variable */
 
48292
 
 
48293
                                ti_i  = IT_IX(it0, ip0[0]);
 
48294
                                we0   = IT_WE(it0, ip0[0]);
 
48295
                                vo0   = IT_VO(it0, ip0[0]);
 
48296
                                ti_i += IT_IX(it1, ip0[1]);
 
48297
                                we1   = IT_WE(it1, ip0[1]);
 
48298
                                vo1   = IT_VO(it1, ip0[1]);
 
48299
                                ti_i += IT_IX(it2, ip0[2]);
 
48300
                                we2   = IT_WE(it2, ip0[2]);
 
48301
                                vo2   = IT_VO(it2, ip0[2]);
 
48302
                                ti_i += IT_IX(it3, ip0[3]);
 
48303
                                we3   = IT_WE(it3, ip0[3]);
 
48304
                                vo3   = IT_VO(it3, ip0[3]);
 
48305
                                ti_i += IT_IX(it4, ip0[4]);
 
48306
                                we4   = IT_WE(it4, ip0[4]);
 
48307
                                vo4   = IT_VO(it4, ip0[4]);
 
48308
                                ti_i += IT_IX(it5, ip0[5]);
 
48309
                                we5   = IT_WE(it5, ip0[5]);
 
48310
                                vo5   = IT_VO(it5, ip0[5]);
 
48311
 
 
48312
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
48313
 
 
48314
                                /* Sort weighting values and vertex offset values */
 
48315
                                CEX(we0, vo0, we1, vo1);
 
48316
                                CEX(we0, vo0, we2, vo2);
 
48317
                                CEX(we0, vo0, we3, vo3);
 
48318
                                CEX(we0, vo0, we4, vo4);
 
48319
                                CEX(we0, vo0, we5, vo5);
 
48320
                                CEX(we1, vo1, we2, vo2);
 
48321
                                CEX(we1, vo1, we3, vo3);
 
48322
                                CEX(we1, vo1, we4, vo4);
 
48323
                                CEX(we1, vo1, we5, vo5);
 
48324
                                CEX(we2, vo2, we3, vo3);
 
48325
                                CEX(we2, vo2, we4, vo4);
 
48326
                                CEX(we2, vo2, we5, vo5);
 
48327
                                CEX(we3, vo3, we4, vo4);
 
48328
                                CEX(we3, vo3, we5, vo5);
 
48329
                                CEX(we4, vo4, we5, vo5);
 
48330
                        }
 
48331
                        {
 
48332
                                unsigned int vof;       /* Vertex offset value */
 
48333
                                unsigned int vwe;       /* Vertex weighting */
 
48334
 
 
48335
                                vof = 0;                                /* First vertex offset is 0 */
 
48336
                                vwe = 65536 - we0;              /* Baricentric weighting */
 
48337
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
48338
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
48339
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
48340
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
48341
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
48342
                                ova5  = IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
48343
                                ova6  = IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
48344
                                vof += vo0;                     /* Move to next vertex */
 
48345
                                vwe = we0 - we1;                /* Baricentric weighting */
 
48346
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
48347
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
48348
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
48349
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
48350
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
48351
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
48352
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
48353
                                vof += vo1;                     /* Move to next vertex */
 
48354
                                vwe = we1 - we2;                /* Baricentric weighting */
 
48355
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
48356
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
48357
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
48358
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
48359
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
48360
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
48361
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
48362
                                vof += vo2;                     /* Move to next vertex */
 
48363
                                vwe = we2 - we3;                /* Baricentric weighting */
 
48364
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
48365
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
48366
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
48367
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
48368
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
48369
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
48370
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
48371
                                vof += vo3;                     /* Move to next vertex */
 
48372
                                vwe = we3 - we4;                /* Baricentric weighting */
 
48373
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
48374
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
48375
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
48376
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
48377
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
48378
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
48379
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
48380
                                vof += vo4;                     /* Move to next vertex */
 
48381
                                vwe = we4 - we5;                /* Baricentric weighting */
 
48382
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
48383
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
48384
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
48385
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
48386
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
48387
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
48388
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
48389
                                vof += vo5;                     /* Move to next vertex */
 
48390
                                vwe = we5;                              /* Baricentric weighting */
 
48391
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
48392
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
48393
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
48394
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
48395
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
48396
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
48397
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
48398
                        }
 
48399
                }
 
48400
                {
 
48401
                        unsigned int oti;       /* Vertex offset value */
 
48402
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
48403
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
48404
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
 
48405
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
48406
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
 
48407
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
48408
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
 
48409
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
48410
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
 
48411
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
48412
                        oti = ((ova5 >> 16) & 0xffff);  /* Extract integer part of result */
 
48413
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
48414
                        oti = ((ova6 >> 16) & 0xffff);  /* Extract integer part of result */
 
48415
                        op0[6] = OT_E(ot6, oti);        /* Write result */
 
48416
                }
 
48417
        }
49241
48418
}
49242
48419
#undef IT_WE
49243
48420
#undef IT_VO
49251
48428
imdi_k138_gen(
49252
48429
genspec *g                      /* structure to be initialised */
49253
48430
) {
49254
 
        static unsigned char data[] = {
49255
 
                0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
49256
 
                0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
49257
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49258
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
49259
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
49260
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
49261
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
49262
 
                0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
49263
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
49264
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
49265
 
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
49266
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49267
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49268
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49269
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49270
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
49271
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
49272
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
49273
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
49274
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
49275
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
49276
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
49277
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
49278
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
49279
 
                0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
49280
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
49281
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
49282
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
49283
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49284
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49285
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49286
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49287
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
49288
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
49289
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
49290
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
49291
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
49292
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
49293
 
                0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49294
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
49295
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
49296
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
49297
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
49298
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
49299
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
49300
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
49301
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
49302
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
49303
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49304
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
49305
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
49306
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x36, 0x5f, 0x37, 0x5f, 
49307
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
49308
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
49309
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
49310
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
49311
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
49312
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
49313
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
49314
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49315
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49316
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49317
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49318
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
49319
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x33, 
49320
 
                0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49321
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49322
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
49323
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
49324
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
49325
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
49326
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
49327
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
49328
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
49329
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
49330
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
49331
 
                0x00, 0xf0, 0x04, 0x08 
49332
 
        };      /* Structure image */
49333
 
        
49334
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
48431
        static unsigned char data[] = {
 
48432
                0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
48433
                0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
48434
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48435
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48436
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48437
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48438
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48439
                0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
48440
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
48441
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
48442
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
48443
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48444
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48445
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48446
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48447
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48448
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48449
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48450
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48451
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
48452
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48453
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48454
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48455
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48456
                0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
48457
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
48458
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
48459
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
48460
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48461
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48462
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48463
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48464
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48465
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48466
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48467
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48468
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
48469
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
48470
                0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48471
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
48472
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
48473
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
48474
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
48475
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
48476
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
48477
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
48478
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
48479
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
48480
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48481
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
48482
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
48483
                0x2c, 0xf3, 0xdc, 0xb7, 0x36, 0x5f, 0x37, 0x5f,
 
48484
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
48485
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
48486
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
48487
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
48488
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
48489
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
48490
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
48491
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48492
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48493
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48494
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48495
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
48496
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x33,
 
48497
                0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48498
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48499
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
48500
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
48501
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
48502
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
48503
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
48504
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
48505
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
48506
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
48507
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
48508
                0x00, 0xf0, 0x04, 0x08
 
48509
        };      /* Structure image */
 
48510
 
 
48511
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
49335
48512
}
49336
48513
 
49337
48514
static void
49338
48515
imdi_k138_tab(
49339
48516
tabspec *t                      /* structure to be initialised */
49340
48517
) {
49341
 
        static unsigned char data[] = {
49342
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
49343
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
49344
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
49345
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
49346
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
49347
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
49348
 
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 
49349
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
49350
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
49351
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49352
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
49353
 
                0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
49354
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
49355
 
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
49356
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
49357
 
                0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49358
 
                0x0e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
49359
 
                0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
49360
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49361
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49362
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
49363
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
49364
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
49365
 
                0x06, 0x00, 0x00, 0x00, 0xdc, 0x60, 0xef, 0xb7, 
49366
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49367
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49368
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49369
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49370
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
49371
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
49372
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
49373
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
49374
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
49375
 
        };      /* Structure image */
49376
 
        
49377
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
48518
        static unsigned char data[] = {
 
48519
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
48520
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
48521
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
48522
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
48523
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
48524
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
48525
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
 
48526
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
48527
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
48528
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48529
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
48530
                0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
48531
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
48532
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
48533
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
48534
                0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48535
                0x0e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
48536
                0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
48537
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48538
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48539
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
48540
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
48541
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
48542
                0x06, 0x00, 0x00, 0x00, 0xdc, 0x60, 0xef, 0xb7,
 
48543
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48544
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48545
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48546
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48547
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48548
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48549
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48550
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48551
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
48552
        };      /* Structure image */
 
48553
 
 
48554
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
49378
48555
}
49379
48556
 
49380
 
 
49381
 
 
49382
 
 
49383
 
 
49384
 
 
49385
48557
/* Integer Multi-Dimensional Interpolation */
49386
48558
/* Interpolation Kernel Code */
49387
48559
/* Generated by cgen */
49390
48562
 
49391
48563
/* see the Licence.txt file for licencing details.*/
49392
48564
 
49393
 
 
49394
48565
/*
49395
48566
   Interpolation kernel specs:
49396
48567
 
49495
48666
void **inp,             /* pointer to input pointers */
49496
48667
unsigned int npix       /* Number of pixels to process */
49497
48668
) {
49498
 
        imdi_imp *p = (imdi_imp *)(s->impl);
49499
 
        unsigned short *ip0 = (unsigned short *)inp[0];
49500
 
        unsigned short *op0 = (unsigned short *)outp[0];
49501
 
        unsigned short *ep = ip0 + npix * 7 ;
49502
 
        pointer it0 = (pointer)p->in_tables[0];
49503
 
        pointer it1 = (pointer)p->in_tables[1];
49504
 
        pointer it2 = (pointer)p->in_tables[2];
49505
 
        pointer it3 = (pointer)p->in_tables[3];
49506
 
        pointer it4 = (pointer)p->in_tables[4];
49507
 
        pointer it5 = (pointer)p->in_tables[5];
49508
 
        pointer it6 = (pointer)p->in_tables[6];
49509
 
        pointer ot0 = (pointer)p->out_tables[0];
49510
 
        pointer ot1 = (pointer)p->out_tables[1];
49511
 
        pointer ot2 = (pointer)p->out_tables[2];
49512
 
        pointer ot3 = (pointer)p->out_tables[3];
49513
 
        pointer ot4 = (pointer)p->out_tables[4];
49514
 
        pointer ot5 = (pointer)p->out_tables[5];
49515
 
        pointer ot6 = (pointer)p->out_tables[6];
49516
 
        pointer im_base = (pointer)p->im_table;
49517
 
        
49518
 
        for(;ip0 < ep; ip0 += 7, op0 += 7) {
49519
 
                unsigned int ova0;      /* Output value accumulator */
49520
 
                unsigned int ova1;      /* Output value accumulator */
49521
 
                unsigned int ova2;      /* Output value accumulator */
49522
 
                unsigned int ova3;      /* Output value accumulator */
49523
 
                unsigned int ova4;      /* Output value accumulator */
49524
 
                unsigned int ova5;      /* Output value accumulator */
49525
 
                unsigned int ova6;      /* Output value accumulator */
49526
 
                {
49527
 
                        pointer imp;
49528
 
                        unsigned int we0;       /* Weighting value variable */
49529
 
                        unsigned int vo0;       /* Vertex offset variable */
49530
 
                        unsigned int we1;       /* Weighting value variable */
49531
 
                        unsigned int vo1;       /* Vertex offset variable */
49532
 
                        unsigned int we2;       /* Weighting value variable */
49533
 
                        unsigned int vo2;       /* Vertex offset variable */
49534
 
                        unsigned int we3;       /* Weighting value variable */
49535
 
                        unsigned int vo3;       /* Vertex offset variable */
49536
 
                        unsigned int we4;       /* Weighting value variable */
49537
 
                        unsigned int vo4;       /* Vertex offset variable */
49538
 
                        unsigned int we5;       /* Weighting value variable */
49539
 
                        unsigned int vo5;       /* Vertex offset variable */
49540
 
                        unsigned int we6;       /* Weighting value variable */
49541
 
                        unsigned int vo6;       /* Vertex offset variable */
49542
 
                        {
49543
 
                                unsigned int ti_i;      /* Interpolation index variable */
49544
 
                                
49545
 
                                ti_i  = IT_IX(it0, ip0[0]);
49546
 
                                we0   = IT_WE(it0, ip0[0]);
49547
 
                                vo0   = IT_VO(it0, ip0[0]);
49548
 
                                ti_i += IT_IX(it1, ip0[1]);
49549
 
                                we1   = IT_WE(it1, ip0[1]);
49550
 
                                vo1   = IT_VO(it1, ip0[1]);
49551
 
                                ti_i += IT_IX(it2, ip0[2]);
49552
 
                                we2   = IT_WE(it2, ip0[2]);
49553
 
                                vo2   = IT_VO(it2, ip0[2]);
49554
 
                                ti_i += IT_IX(it3, ip0[3]);
49555
 
                                we3   = IT_WE(it3, ip0[3]);
49556
 
                                vo3   = IT_VO(it3, ip0[3]);
49557
 
                                ti_i += IT_IX(it4, ip0[4]);
49558
 
                                we4   = IT_WE(it4, ip0[4]);
49559
 
                                vo4   = IT_VO(it4, ip0[4]);
49560
 
                                ti_i += IT_IX(it5, ip0[5]);
49561
 
                                we5   = IT_WE(it5, ip0[5]);
49562
 
                                vo5   = IT_VO(it5, ip0[5]);
49563
 
                                ti_i += IT_IX(it6, ip0[6]);
49564
 
                                we6   = IT_WE(it6, ip0[6]);
49565
 
                                vo6   = IT_VO(it6, ip0[6]);
49566
 
                                
49567
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
49568
 
                                
49569
 
                                /* Sort weighting values and vertex offset values */
49570
 
                                CEX(we0, vo0, we1, vo1);
49571
 
                                CEX(we0, vo0, we2, vo2);
49572
 
                                CEX(we0, vo0, we3, vo3);
49573
 
                                CEX(we0, vo0, we4, vo4);
49574
 
                                CEX(we0, vo0, we5, vo5);
49575
 
                                CEX(we0, vo0, we6, vo6);
49576
 
                                CEX(we1, vo1, we2, vo2);
49577
 
                                CEX(we1, vo1, we3, vo3);
49578
 
                                CEX(we1, vo1, we4, vo4);
49579
 
                                CEX(we1, vo1, we5, vo5);
49580
 
                                CEX(we1, vo1, we6, vo6);
49581
 
                                CEX(we2, vo2, we3, vo3);
49582
 
                                CEX(we2, vo2, we4, vo4);
49583
 
                                CEX(we2, vo2, we5, vo5);
49584
 
                                CEX(we2, vo2, we6, vo6);
49585
 
                                CEX(we3, vo3, we4, vo4);
49586
 
                                CEX(we3, vo3, we5, vo5);
49587
 
                                CEX(we3, vo3, we6, vo6);
49588
 
                                CEX(we4, vo4, we5, vo5);
49589
 
                                CEX(we4, vo4, we6, vo6);
49590
 
                                CEX(we5, vo5, we6, vo6);
49591
 
                        }
49592
 
                        {
49593
 
                                unsigned int vof;       /* Vertex offset value */
49594
 
                                unsigned int vwe;       /* Vertex weighting */
49595
 
                                
49596
 
                                vof = 0;                                /* First vertex offset is 0 */
49597
 
                                vwe = 65536 - we0;              /* Baricentric weighting */
49598
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
49599
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
49600
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
49601
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
49602
 
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
49603
 
                                ova5  = IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
49604
 
                                ova6  = IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
49605
 
                                vof += vo0;                     /* Move to next vertex */
49606
 
                                vwe = we0 - we1;                /* Baricentric weighting */
49607
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
49608
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
49609
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
49610
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
49611
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
49612
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
49613
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
49614
 
                                vof += vo1;                     /* Move to next vertex */
49615
 
                                vwe = we1 - we2;                /* Baricentric weighting */
49616
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
49617
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
49618
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
49619
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
49620
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
49621
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
49622
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
49623
 
                                vof += vo2;                     /* Move to next vertex */
49624
 
                                vwe = we2 - we3;                /* Baricentric weighting */
49625
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
49626
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
49627
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
49628
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
49629
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
49630
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
49631
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
49632
 
                                vof += vo3;                     /* Move to next vertex */
49633
 
                                vwe = we3 - we4;                /* Baricentric weighting */
49634
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
49635
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
49636
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
49637
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
49638
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
49639
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
49640
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
49641
 
                                vof += vo4;                     /* Move to next vertex */
49642
 
                                vwe = we4 - we5;                /* Baricentric weighting */
49643
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
49644
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
49645
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
49646
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
49647
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
49648
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
49649
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
49650
 
                                vof += vo5;                     /* Move to next vertex */
49651
 
                                vwe = we5 - we6;                /* Baricentric weighting */
49652
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
49653
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
49654
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
49655
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
49656
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
49657
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
49658
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
49659
 
                                vof += vo6;                     /* Move to next vertex */
49660
 
                                vwe = we6;                              /* Baricentric weighting */
49661
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
49662
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
49663
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
49664
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
49665
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
49666
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
49667
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
49668
 
                        }
49669
 
                }
49670
 
                {
49671
 
                        unsigned int oti;       /* Vertex offset value */
49672
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
49673
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
49674
 
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
49675
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
49676
 
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
49677
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
49678
 
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
49679
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
49680
 
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
49681
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
49682
 
                        oti = ((ova5 >> 16) & 0xffff);  /* Extract integer part of result */
49683
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
49684
 
                        oti = ((ova6 >> 16) & 0xffff);  /* Extract integer part of result */
49685
 
                        op0[6] = OT_E(ot6, oti);        /* Write result */
49686
 
                }
49687
 
        }
 
48669
        imdi_imp *p = (imdi_imp *)(s->impl);
 
48670
        unsigned short *ip0 = (unsigned short *)inp[0];
 
48671
        unsigned short *op0 = (unsigned short *)outp[0];
 
48672
        unsigned short *ep = ip0 + npix * 7 ;
 
48673
        pointer it0 = (pointer)p->in_tables[0];
 
48674
        pointer it1 = (pointer)p->in_tables[1];
 
48675
        pointer it2 = (pointer)p->in_tables[2];
 
48676
        pointer it3 = (pointer)p->in_tables[3];
 
48677
        pointer it4 = (pointer)p->in_tables[4];
 
48678
        pointer it5 = (pointer)p->in_tables[5];
 
48679
        pointer it6 = (pointer)p->in_tables[6];
 
48680
        pointer ot0 = (pointer)p->out_tables[0];
 
48681
        pointer ot1 = (pointer)p->out_tables[1];
 
48682
        pointer ot2 = (pointer)p->out_tables[2];
 
48683
        pointer ot3 = (pointer)p->out_tables[3];
 
48684
        pointer ot4 = (pointer)p->out_tables[4];
 
48685
        pointer ot5 = (pointer)p->out_tables[5];
 
48686
        pointer ot6 = (pointer)p->out_tables[6];
 
48687
        pointer im_base = (pointer)p->im_table;
 
48688
 
 
48689
        for(;ip0 < ep; ip0 += 7, op0 += 7) {
 
48690
                unsigned int ova0;      /* Output value accumulator */
 
48691
                unsigned int ova1;      /* Output value accumulator */
 
48692
                unsigned int ova2;      /* Output value accumulator */
 
48693
                unsigned int ova3;      /* Output value accumulator */
 
48694
                unsigned int ova4;      /* Output value accumulator */
 
48695
                unsigned int ova5;      /* Output value accumulator */
 
48696
                unsigned int ova6;      /* Output value accumulator */
 
48697
                {
 
48698
                        pointer imp;
 
48699
                        unsigned int we0;       /* Weighting value variable */
 
48700
                        unsigned int vo0;       /* Vertex offset variable */
 
48701
                        unsigned int we1;       /* Weighting value variable */
 
48702
                        unsigned int vo1;       /* Vertex offset variable */
 
48703
                        unsigned int we2;       /* Weighting value variable */
 
48704
                        unsigned int vo2;       /* Vertex offset variable */
 
48705
                        unsigned int we3;       /* Weighting value variable */
 
48706
                        unsigned int vo3;       /* Vertex offset variable */
 
48707
                        unsigned int we4;       /* Weighting value variable */
 
48708
                        unsigned int vo4;       /* Vertex offset variable */
 
48709
                        unsigned int we5;       /* Weighting value variable */
 
48710
                        unsigned int vo5;       /* Vertex offset variable */
 
48711
                        unsigned int we6;       /* Weighting value variable */
 
48712
                        unsigned int vo6;       /* Vertex offset variable */
 
48713
                        {
 
48714
                                unsigned int ti_i;      /* Interpolation index variable */
 
48715
 
 
48716
                                ti_i  = IT_IX(it0, ip0[0]);
 
48717
                                we0   = IT_WE(it0, ip0[0]);
 
48718
                                vo0   = IT_VO(it0, ip0[0]);
 
48719
                                ti_i += IT_IX(it1, ip0[1]);
 
48720
                                we1   = IT_WE(it1, ip0[1]);
 
48721
                                vo1   = IT_VO(it1, ip0[1]);
 
48722
                                ti_i += IT_IX(it2, ip0[2]);
 
48723
                                we2   = IT_WE(it2, ip0[2]);
 
48724
                                vo2   = IT_VO(it2, ip0[2]);
 
48725
                                ti_i += IT_IX(it3, ip0[3]);
 
48726
                                we3   = IT_WE(it3, ip0[3]);
 
48727
                                vo3   = IT_VO(it3, ip0[3]);
 
48728
                                ti_i += IT_IX(it4, ip0[4]);
 
48729
                                we4   = IT_WE(it4, ip0[4]);
 
48730
                                vo4   = IT_VO(it4, ip0[4]);
 
48731
                                ti_i += IT_IX(it5, ip0[5]);
 
48732
                                we5   = IT_WE(it5, ip0[5]);
 
48733
                                vo5   = IT_VO(it5, ip0[5]);
 
48734
                                ti_i += IT_IX(it6, ip0[6]);
 
48735
                                we6   = IT_WE(it6, ip0[6]);
 
48736
                                vo6   = IT_VO(it6, ip0[6]);
 
48737
 
 
48738
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
48739
 
 
48740
                                /* Sort weighting values and vertex offset values */
 
48741
                                CEX(we0, vo0, we1, vo1);
 
48742
                                CEX(we0, vo0, we2, vo2);
 
48743
                                CEX(we0, vo0, we3, vo3);
 
48744
                                CEX(we0, vo0, we4, vo4);
 
48745
                                CEX(we0, vo0, we5, vo5);
 
48746
                                CEX(we0, vo0, we6, vo6);
 
48747
                                CEX(we1, vo1, we2, vo2);
 
48748
                                CEX(we1, vo1, we3, vo3);
 
48749
                                CEX(we1, vo1, we4, vo4);
 
48750
                                CEX(we1, vo1, we5, vo5);
 
48751
                                CEX(we1, vo1, we6, vo6);
 
48752
                                CEX(we2, vo2, we3, vo3);
 
48753
                                CEX(we2, vo2, we4, vo4);
 
48754
                                CEX(we2, vo2, we5, vo5);
 
48755
                                CEX(we2, vo2, we6, vo6);
 
48756
                                CEX(we3, vo3, we4, vo4);
 
48757
                                CEX(we3, vo3, we5, vo5);
 
48758
                                CEX(we3, vo3, we6, vo6);
 
48759
                                CEX(we4, vo4, we5, vo5);
 
48760
                                CEX(we4, vo4, we6, vo6);
 
48761
                                CEX(we5, vo5, we6, vo6);
 
48762
                        }
 
48763
                        {
 
48764
                                unsigned int vof;       /* Vertex offset value */
 
48765
                                unsigned int vwe;       /* Vertex weighting */
 
48766
 
 
48767
                                vof = 0;                                /* First vertex offset is 0 */
 
48768
                                vwe = 65536 - we0;              /* Baricentric weighting */
 
48769
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
48770
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
48771
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
48772
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
48773
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
48774
                                ova5  = IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
48775
                                ova6  = IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
48776
                                vof += vo0;                     /* Move to next vertex */
 
48777
                                vwe = we0 - we1;                /* Baricentric weighting */
 
48778
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
48779
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
48780
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
48781
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
48782
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
48783
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
48784
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
48785
                                vof += vo1;                     /* Move to next vertex */
 
48786
                                vwe = we1 - we2;                /* Baricentric weighting */
 
48787
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
48788
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
48789
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
48790
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
48791
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
48792
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
48793
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
48794
                                vof += vo2;                     /* Move to next vertex */
 
48795
                                vwe = we2 - we3;                /* Baricentric weighting */
 
48796
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
48797
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
48798
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
48799
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
48800
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
48801
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
48802
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
48803
                                vof += vo3;                     /* Move to next vertex */
 
48804
                                vwe = we3 - we4;                /* Baricentric weighting */
 
48805
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
48806
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
48807
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
48808
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
48809
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
48810
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
48811
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
48812
                                vof += vo4;                     /* Move to next vertex */
 
48813
                                vwe = we4 - we5;                /* Baricentric weighting */
 
48814
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
48815
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
48816
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
48817
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
48818
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
48819
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
48820
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
48821
                                vof += vo5;                     /* Move to next vertex */
 
48822
                                vwe = we5 - we6;                /* Baricentric weighting */
 
48823
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
48824
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
48825
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
48826
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
48827
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
48828
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
48829
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
48830
                                vof += vo6;                     /* Move to next vertex */
 
48831
                                vwe = we6;                              /* Baricentric weighting */
 
48832
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
48833
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
48834
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
48835
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
48836
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
48837
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
48838
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
48839
                        }
 
48840
                }
 
48841
                {
 
48842
                        unsigned int oti;       /* Vertex offset value */
 
48843
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
48844
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
48845
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
 
48846
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
48847
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
 
48848
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
48849
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
 
48850
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
48851
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
 
48852
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
48853
                        oti = ((ova5 >> 16) & 0xffff);  /* Extract integer part of result */
 
48854
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
48855
                        oti = ((ova6 >> 16) & 0xffff);  /* Extract integer part of result */
 
48856
                        op0[6] = OT_E(ot6, oti);        /* Write result */
 
48857
                }
 
48858
        }
49688
48859
}
49689
48860
#undef IT_WE
49690
48861
#undef IT_VO
49698
48869
imdi_k139_gen(
49699
48870
genspec *g                      /* structure to be initialised */
49700
48871
) {
49701
 
        static unsigned char data[] = {
49702
 
                0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
49703
 
                0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
49704
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49705
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
49706
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
49707
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
49708
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
49709
 
                0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
49710
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
49711
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
49712
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
49713
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49714
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49715
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49716
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49717
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
49718
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
49719
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
49720
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
49721
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
49722
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
49723
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
49724
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
49725
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
49726
 
                0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
49727
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
49728
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
49729
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
49730
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49731
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49732
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49733
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49734
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
49735
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
49736
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
49737
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
49738
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
49739
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
49740
 
                0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49741
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
49742
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
49743
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
49744
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
49745
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
49746
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
49747
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
49748
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
49749
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
49750
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49751
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
49752
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
49753
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x37, 0x5f, 0x37, 0x5f, 
49754
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
49755
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
49756
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
49757
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
49758
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
49759
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
49760
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
49761
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49762
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49763
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49764
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49765
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
49766
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x33, 
49767
 
                0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49768
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49769
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
49770
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
49771
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
49772
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
49773
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
49774
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
49775
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
49776
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
49777
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
49778
 
                0x00, 0xf0, 0x04, 0x08 
49779
 
        };      /* Structure image */
49780
 
        
49781
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
48872
        static unsigned char data[] = {
 
48873
                0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
48874
                0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
48875
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48876
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48877
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48878
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48879
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48880
                0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
48881
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
48882
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
48883
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
48884
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48885
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48886
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48887
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48888
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48889
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48890
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48891
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48892
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
48893
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48894
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48895
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48896
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48897
                0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
48898
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
48899
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
48900
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
48901
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48902
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48903
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48904
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48905
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48906
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48907
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48908
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48909
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
48910
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
48911
                0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48912
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
48913
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
48914
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
48915
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
48916
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
48917
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
48918
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
48919
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
48920
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
48921
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48922
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
48923
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
48924
                0x2c, 0xf3, 0xdc, 0xb7, 0x37, 0x5f, 0x37, 0x5f,
 
48925
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
48926
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
48927
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
48928
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
48929
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
48930
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
48931
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
48932
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48933
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48934
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48935
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48936
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
48937
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x33,
 
48938
                0x39, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48939
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48940
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
48941
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
48942
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
48943
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
48944
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
48945
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
48946
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
48947
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
48948
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
48949
                0x00, 0xf0, 0x04, 0x08
 
48950
        };      /* Structure image */
 
48951
 
 
48952
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
49782
48953
}
49783
48954
 
49784
48955
static void
49785
48956
imdi_k139_tab(
49786
48957
tabspec *t                      /* structure to be initialised */
49787
48958
) {
49788
 
        static unsigned char data[] = {
49789
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
49790
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
49791
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
49792
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
49793
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
49794
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
49795
 
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 
49796
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
49797
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
49798
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49799
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
49800
 
                0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
49801
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
49802
 
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
49803
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
49804
 
                0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49805
 
                0x0e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
49806
 
                0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
49807
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49808
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49809
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
49810
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
49811
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
49812
 
                0x06, 0x00, 0x00, 0x00, 0xdc, 0x60, 0xef, 0xb7, 
49813
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49814
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49815
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49816
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
49817
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
49818
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
49819
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
49820
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
49821
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
49822
 
        };      /* Structure image */
49823
 
        
49824
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
48959
        static unsigned char data[] = {
 
48960
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
48961
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
48962
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
48963
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
48964
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
48965
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
48966
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
 
48967
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
48968
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
48969
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48970
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
48971
                0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
48972
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
48973
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
48974
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
48975
                0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48976
                0x0e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
48977
                0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
48978
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48979
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48980
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
48981
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
48982
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
48983
                0x06, 0x00, 0x00, 0x00, 0xdc, 0x60, 0xef, 0xb7,
 
48984
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48985
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48986
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48987
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
48988
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48989
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48990
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48991
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
48992
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
48993
        };      /* Structure image */
 
48994
 
 
48995
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
49825
48996
}
49826
48997
 
49827
 
 
49828
 
 
49829
 
 
49830
 
 
49831
 
 
49832
48998
/* Integer Multi-Dimensional Interpolation */
49833
48999
/* Interpolation Kernel Code */
49834
49000
/* Generated by cgen */
49837
49003
 
49838
49004
/* see the Licence.txt file for licencing details.*/
49839
49005
 
49840
 
 
49841
49006
/*
49842
49007
   Interpolation kernel specs:
49843
49008
 
49944
49109
void **inp,             /* pointer to input pointers */
49945
49110
unsigned int npix       /* Number of pixels to process */
49946
49111
) {
49947
 
        imdi_imp *p = (imdi_imp *)(s->impl);
49948
 
        unsigned short *ip0 = (unsigned short *)inp[0];
49949
 
        unsigned short *op0 = (unsigned short *)outp[0];
49950
 
        unsigned short *ep = ip0 + npix * 8 ;
49951
 
        pointer it0 = (pointer)p->in_tables[0];
49952
 
        pointer it1 = (pointer)p->in_tables[1];
49953
 
        pointer it2 = (pointer)p->in_tables[2];
49954
 
        pointer it3 = (pointer)p->in_tables[3];
49955
 
        pointer it4 = (pointer)p->in_tables[4];
49956
 
        pointer it5 = (pointer)p->in_tables[5];
49957
 
        pointer it6 = (pointer)p->in_tables[6];
49958
 
        pointer it7 = (pointer)p->in_tables[7];
49959
 
        pointer ot0 = (pointer)p->out_tables[0];
49960
 
        pointer ot1 = (pointer)p->out_tables[1];
49961
 
        pointer ot2 = (pointer)p->out_tables[2];
49962
 
        pointer ot3 = (pointer)p->out_tables[3];
49963
 
        pointer ot4 = (pointer)p->out_tables[4];
49964
 
        pointer ot5 = (pointer)p->out_tables[5];
49965
 
        pointer ot6 = (pointer)p->out_tables[6];
49966
 
        pointer im_base = (pointer)p->im_table;
49967
 
        
49968
 
        for(;ip0 < ep; ip0 += 8, op0 += 7) {
49969
 
                unsigned int ova0;      /* Output value accumulator */
49970
 
                unsigned int ova1;      /* Output value accumulator */
49971
 
                unsigned int ova2;      /* Output value accumulator */
49972
 
                unsigned int ova3;      /* Output value accumulator */
49973
 
                unsigned int ova4;      /* Output value accumulator */
49974
 
                unsigned int ova5;      /* Output value accumulator */
49975
 
                unsigned int ova6;      /* Output value accumulator */
49976
 
                {
49977
 
                        pointer imp;
49978
 
                        unsigned int we0;       /* Weighting value variable */
49979
 
                        unsigned int vo0;       /* Vertex offset variable */
49980
 
                        unsigned int we1;       /* Weighting value variable */
49981
 
                        unsigned int vo1;       /* Vertex offset variable */
49982
 
                        unsigned int we2;       /* Weighting value variable */
49983
 
                        unsigned int vo2;       /* Vertex offset variable */
49984
 
                        unsigned int we3;       /* Weighting value variable */
49985
 
                        unsigned int vo3;       /* Vertex offset variable */
49986
 
                        unsigned int we4;       /* Weighting value variable */
49987
 
                        unsigned int vo4;       /* Vertex offset variable */
49988
 
                        unsigned int we5;       /* Weighting value variable */
49989
 
                        unsigned int vo5;       /* Vertex offset variable */
49990
 
                        unsigned int we6;       /* Weighting value variable */
49991
 
                        unsigned int vo6;       /* Vertex offset variable */
49992
 
                        unsigned int we7;       /* Weighting value variable */
49993
 
                        unsigned int vo7;       /* Vertex offset variable */
49994
 
                        {
49995
 
                                unsigned int ti_i;      /* Interpolation index variable */
49996
 
                                
49997
 
                                ti_i  = IT_IX(it0, ip0[0]);
49998
 
                                we0   = IT_WE(it0, ip0[0]);
49999
 
                                vo0   = IT_VO(it0, ip0[0]);
50000
 
                                ti_i += IT_IX(it1, ip0[1]);
50001
 
                                we1   = IT_WE(it1, ip0[1]);
50002
 
                                vo1   = IT_VO(it1, ip0[1]);
50003
 
                                ti_i += IT_IX(it2, ip0[2]);
50004
 
                                we2   = IT_WE(it2, ip0[2]);
50005
 
                                vo2   = IT_VO(it2, ip0[2]);
50006
 
                                ti_i += IT_IX(it3, ip0[3]);
50007
 
                                we3   = IT_WE(it3, ip0[3]);
50008
 
                                vo3   = IT_VO(it3, ip0[3]);
50009
 
                                ti_i += IT_IX(it4, ip0[4]);
50010
 
                                we4   = IT_WE(it4, ip0[4]);
50011
 
                                vo4   = IT_VO(it4, ip0[4]);
50012
 
                                ti_i += IT_IX(it5, ip0[5]);
50013
 
                                we5   = IT_WE(it5, ip0[5]);
50014
 
                                vo5   = IT_VO(it5, ip0[5]);
50015
 
                                ti_i += IT_IX(it6, ip0[6]);
50016
 
                                we6   = IT_WE(it6, ip0[6]);
50017
 
                                vo6   = IT_VO(it6, ip0[6]);
50018
 
                                ti_i += IT_IX(it7, ip0[7]);
50019
 
                                we7   = IT_WE(it7, ip0[7]);
50020
 
                                vo7   = IT_VO(it7, ip0[7]);
50021
 
                                
50022
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
50023
 
                                
50024
 
                                /* Sort weighting values and vertex offset values */
50025
 
                                CEX(we0, vo0, we1, vo1);
50026
 
                                CEX(we0, vo0, we2, vo2);
50027
 
                                CEX(we0, vo0, we3, vo3);
50028
 
                                CEX(we0, vo0, we4, vo4);
50029
 
                                CEX(we0, vo0, we5, vo5);
50030
 
                                CEX(we0, vo0, we6, vo6);
50031
 
                                CEX(we0, vo0, we7, vo7);
50032
 
                                CEX(we1, vo1, we2, vo2);
50033
 
                                CEX(we1, vo1, we3, vo3);
50034
 
                                CEX(we1, vo1, we4, vo4);
50035
 
                                CEX(we1, vo1, we5, vo5);
50036
 
                                CEX(we1, vo1, we6, vo6);
50037
 
                                CEX(we1, vo1, we7, vo7);
50038
 
                                CEX(we2, vo2, we3, vo3);
50039
 
                                CEX(we2, vo2, we4, vo4);
50040
 
                                CEX(we2, vo2, we5, vo5);
50041
 
                                CEX(we2, vo2, we6, vo6);
50042
 
                                CEX(we2, vo2, we7, vo7);
50043
 
                                CEX(we3, vo3, we4, vo4);
50044
 
                                CEX(we3, vo3, we5, vo5);
50045
 
                                CEX(we3, vo3, we6, vo6);
50046
 
                                CEX(we3, vo3, we7, vo7);
50047
 
                                CEX(we4, vo4, we5, vo5);
50048
 
                                CEX(we4, vo4, we6, vo6);
50049
 
                                CEX(we4, vo4, we7, vo7);
50050
 
                                CEX(we5, vo5, we6, vo6);
50051
 
                                CEX(we5, vo5, we7, vo7);
50052
 
                                CEX(we6, vo6, we7, vo7);
50053
 
                        }
50054
 
                        {
50055
 
                                unsigned int vof;       /* Vertex offset value */
50056
 
                                unsigned int vwe;       /* Vertex weighting */
50057
 
                                
50058
 
                                vof = 0;                                /* First vertex offset is 0 */
50059
 
                                vwe = 65536 - we0;              /* Baricentric weighting */
50060
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
50061
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
50062
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
50063
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
50064
 
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
50065
 
                                ova5  = IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
50066
 
                                ova6  = IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
50067
 
                                vof += vo0;                     /* Move to next vertex */
50068
 
                                vwe = we0 - we1;                /* Baricentric weighting */
50069
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
50070
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
50071
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
50072
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
50073
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
50074
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
50075
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
50076
 
                                vof += vo1;                     /* Move to next vertex */
50077
 
                                vwe = we1 - we2;                /* Baricentric weighting */
50078
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
50079
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
50080
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
50081
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
50082
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
50083
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
50084
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
50085
 
                                vof += vo2;                     /* Move to next vertex */
50086
 
                                vwe = we2 - we3;                /* Baricentric weighting */
50087
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
50088
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
50089
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
50090
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
50091
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
50092
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
50093
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
50094
 
                                vof += vo3;                     /* Move to next vertex */
50095
 
                                vwe = we3 - we4;                /* Baricentric weighting */
50096
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
50097
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
50098
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
50099
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
50100
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
50101
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
50102
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
50103
 
                                vof += vo4;                     /* Move to next vertex */
50104
 
                                vwe = we4 - we5;                /* Baricentric weighting */
50105
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
50106
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
50107
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
50108
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
50109
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
50110
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
50111
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
50112
 
                                vof += vo5;                     /* Move to next vertex */
50113
 
                                vwe = we5 - we6;                /* Baricentric weighting */
50114
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
50115
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
50116
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
50117
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
50118
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
50119
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
50120
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
50121
 
                                vof += vo6;                     /* Move to next vertex */
50122
 
                                vwe = we6 - we7;                /* Baricentric weighting */
50123
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
50124
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
50125
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
50126
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
50127
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
50128
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
50129
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
50130
 
                                vof += vo7;                     /* Move to next vertex */
50131
 
                                vwe = we7;                              /* Baricentric weighting */
50132
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
50133
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
50134
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
50135
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
50136
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
50137
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
50138
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
50139
 
                        }
50140
 
                }
50141
 
                {
50142
 
                        unsigned int oti;       /* Vertex offset value */
50143
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
50144
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
50145
 
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
50146
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
50147
 
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
50148
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
50149
 
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
50150
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
50151
 
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
50152
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
50153
 
                        oti = ((ova5 >> 16) & 0xffff);  /* Extract integer part of result */
50154
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
50155
 
                        oti = ((ova6 >> 16) & 0xffff);  /* Extract integer part of result */
50156
 
                        op0[6] = OT_E(ot6, oti);        /* Write result */
50157
 
                }
50158
 
        }
 
49112
        imdi_imp *p = (imdi_imp *)(s->impl);
 
49113
        unsigned short *ip0 = (unsigned short *)inp[0];
 
49114
        unsigned short *op0 = (unsigned short *)outp[0];
 
49115
        unsigned short *ep = ip0 + npix * 8 ;
 
49116
        pointer it0 = (pointer)p->in_tables[0];
 
49117
        pointer it1 = (pointer)p->in_tables[1];
 
49118
        pointer it2 = (pointer)p->in_tables[2];
 
49119
        pointer it3 = (pointer)p->in_tables[3];
 
49120
        pointer it4 = (pointer)p->in_tables[4];
 
49121
        pointer it5 = (pointer)p->in_tables[5];
 
49122
        pointer it6 = (pointer)p->in_tables[6];
 
49123
        pointer it7 = (pointer)p->in_tables[7];
 
49124
        pointer ot0 = (pointer)p->out_tables[0];
 
49125
        pointer ot1 = (pointer)p->out_tables[1];
 
49126
        pointer ot2 = (pointer)p->out_tables[2];
 
49127
        pointer ot3 = (pointer)p->out_tables[3];
 
49128
        pointer ot4 = (pointer)p->out_tables[4];
 
49129
        pointer ot5 = (pointer)p->out_tables[5];
 
49130
        pointer ot6 = (pointer)p->out_tables[6];
 
49131
        pointer im_base = (pointer)p->im_table;
 
49132
 
 
49133
        for(;ip0 < ep; ip0 += 8, op0 += 7) {
 
49134
                unsigned int ova0;      /* Output value accumulator */
 
49135
                unsigned int ova1;      /* Output value accumulator */
 
49136
                unsigned int ova2;      /* Output value accumulator */
 
49137
                unsigned int ova3;      /* Output value accumulator */
 
49138
                unsigned int ova4;      /* Output value accumulator */
 
49139
                unsigned int ova5;      /* Output value accumulator */
 
49140
                unsigned int ova6;      /* Output value accumulator */
 
49141
                {
 
49142
                        pointer imp;
 
49143
                        unsigned int we0;       /* Weighting value variable */
 
49144
                        unsigned int vo0;       /* Vertex offset variable */
 
49145
                        unsigned int we1;       /* Weighting value variable */
 
49146
                        unsigned int vo1;       /* Vertex offset variable */
 
49147
                        unsigned int we2;       /* Weighting value variable */
 
49148
                        unsigned int vo2;       /* Vertex offset variable */
 
49149
                        unsigned int we3;       /* Weighting value variable */
 
49150
                        unsigned int vo3;       /* Vertex offset variable */
 
49151
                        unsigned int we4;       /* Weighting value variable */
 
49152
                        unsigned int vo4;       /* Vertex offset variable */
 
49153
                        unsigned int we5;       /* Weighting value variable */
 
49154
                        unsigned int vo5;       /* Vertex offset variable */
 
49155
                        unsigned int we6;       /* Weighting value variable */
 
49156
                        unsigned int vo6;       /* Vertex offset variable */
 
49157
                        unsigned int we7;       /* Weighting value variable */
 
49158
                        unsigned int vo7;       /* Vertex offset variable */
 
49159
                        {
 
49160
                                unsigned int ti_i;      /* Interpolation index variable */
 
49161
 
 
49162
                                ti_i  = IT_IX(it0, ip0[0]);
 
49163
                                we0   = IT_WE(it0, ip0[0]);
 
49164
                                vo0   = IT_VO(it0, ip0[0]);
 
49165
                                ti_i += IT_IX(it1, ip0[1]);
 
49166
                                we1   = IT_WE(it1, ip0[1]);
 
49167
                                vo1   = IT_VO(it1, ip0[1]);
 
49168
                                ti_i += IT_IX(it2, ip0[2]);
 
49169
                                we2   = IT_WE(it2, ip0[2]);
 
49170
                                vo2   = IT_VO(it2, ip0[2]);
 
49171
                                ti_i += IT_IX(it3, ip0[3]);
 
49172
                                we3   = IT_WE(it3, ip0[3]);
 
49173
                                vo3   = IT_VO(it3, ip0[3]);
 
49174
                                ti_i += IT_IX(it4, ip0[4]);
 
49175
                                we4   = IT_WE(it4, ip0[4]);
 
49176
                                vo4   = IT_VO(it4, ip0[4]);
 
49177
                                ti_i += IT_IX(it5, ip0[5]);
 
49178
                                we5   = IT_WE(it5, ip0[5]);
 
49179
                                vo5   = IT_VO(it5, ip0[5]);
 
49180
                                ti_i += IT_IX(it6, ip0[6]);
 
49181
                                we6   = IT_WE(it6, ip0[6]);
 
49182
                                vo6   = IT_VO(it6, ip0[6]);
 
49183
                                ti_i += IT_IX(it7, ip0[7]);
 
49184
                                we7   = IT_WE(it7, ip0[7]);
 
49185
                                vo7   = IT_VO(it7, ip0[7]);
 
49186
 
 
49187
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
49188
 
 
49189
                                /* Sort weighting values and vertex offset values */
 
49190
                                CEX(we0, vo0, we1, vo1);
 
49191
                                CEX(we0, vo0, we2, vo2);
 
49192
                                CEX(we0, vo0, we3, vo3);
 
49193
                                CEX(we0, vo0, we4, vo4);
 
49194
                                CEX(we0, vo0, we5, vo5);
 
49195
                                CEX(we0, vo0, we6, vo6);
 
49196
                                CEX(we0, vo0, we7, vo7);
 
49197
                                CEX(we1, vo1, we2, vo2);
 
49198
                                CEX(we1, vo1, we3, vo3);
 
49199
                                CEX(we1, vo1, we4, vo4);
 
49200
                                CEX(we1, vo1, we5, vo5);
 
49201
                                CEX(we1, vo1, we6, vo6);
 
49202
                                CEX(we1, vo1, we7, vo7);
 
49203
                                CEX(we2, vo2, we3, vo3);
 
49204
                                CEX(we2, vo2, we4, vo4);
 
49205
                                CEX(we2, vo2, we5, vo5);
 
49206
                                CEX(we2, vo2, we6, vo6);
 
49207
                                CEX(we2, vo2, we7, vo7);
 
49208
                                CEX(we3, vo3, we4, vo4);
 
49209
                                CEX(we3, vo3, we5, vo5);
 
49210
                                CEX(we3, vo3, we6, vo6);
 
49211
                                CEX(we3, vo3, we7, vo7);
 
49212
                                CEX(we4, vo4, we5, vo5);
 
49213
                                CEX(we4, vo4, we6, vo6);
 
49214
                                CEX(we4, vo4, we7, vo7);
 
49215
                                CEX(we5, vo5, we6, vo6);
 
49216
                                CEX(we5, vo5, we7, vo7);
 
49217
                                CEX(we6, vo6, we7, vo7);
 
49218
                        }
 
49219
                        {
 
49220
                                unsigned int vof;       /* Vertex offset value */
 
49221
                                unsigned int vwe;       /* Vertex weighting */
 
49222
 
 
49223
                                vof = 0;                                /* First vertex offset is 0 */
 
49224
                                vwe = 65536 - we0;              /* Baricentric weighting */
 
49225
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
49226
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
49227
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
49228
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
49229
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
49230
                                ova5  = IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
49231
                                ova6  = IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
49232
                                vof += vo0;                     /* Move to next vertex */
 
49233
                                vwe = we0 - we1;                /* Baricentric weighting */
 
49234
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
49235
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
49236
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
49237
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
49238
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
49239
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
49240
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
49241
                                vof += vo1;                     /* Move to next vertex */
 
49242
                                vwe = we1 - we2;                /* Baricentric weighting */
 
49243
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
49244
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
49245
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
49246
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
49247
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
49248
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
49249
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
49250
                                vof += vo2;                     /* Move to next vertex */
 
49251
                                vwe = we2 - we3;                /* Baricentric weighting */
 
49252
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
49253
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
49254
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
49255
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
49256
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
49257
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
49258
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
49259
                                vof += vo3;                     /* Move to next vertex */
 
49260
                                vwe = we3 - we4;                /* Baricentric weighting */
 
49261
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
49262
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
49263
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
49264
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
49265
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
49266
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
49267
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
49268
                                vof += vo4;                     /* Move to next vertex */
 
49269
                                vwe = we4 - we5;                /* Baricentric weighting */
 
49270
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
49271
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
49272
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
49273
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
49274
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
49275
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
49276
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
49277
                                vof += vo5;                     /* Move to next vertex */
 
49278
                                vwe = we5 - we6;                /* Baricentric weighting */
 
49279
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
49280
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
49281
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
49282
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
49283
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
49284
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
49285
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
49286
                                vof += vo6;                     /* Move to next vertex */
 
49287
                                vwe = we6 - we7;                /* Baricentric weighting */
 
49288
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
49289
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
49290
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
49291
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
49292
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
49293
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
49294
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
49295
                                vof += vo7;                     /* Move to next vertex */
 
49296
                                vwe = we7;                              /* Baricentric weighting */
 
49297
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
49298
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
49299
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
49300
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
49301
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
49302
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
49303
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
49304
                        }
 
49305
                }
 
49306
                {
 
49307
                        unsigned int oti;       /* Vertex offset value */
 
49308
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
49309
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
49310
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
 
49311
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
49312
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
 
49313
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
49314
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
 
49315
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
49316
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
 
49317
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
49318
                        oti = ((ova5 >> 16) & 0xffff);  /* Extract integer part of result */
 
49319
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
49320
                        oti = ((ova6 >> 16) & 0xffff);  /* Extract integer part of result */
 
49321
                        op0[6] = OT_E(ot6, oti);        /* Write result */
 
49322
                }
 
49323
        }
50159
49324
}
50160
49325
#undef IT_WE
50161
49326
#undef IT_VO
50169
49334
imdi_k140_gen(
50170
49335
genspec *g                      /* structure to be initialised */
50171
49336
) {
50172
 
        static unsigned char data[] = {
50173
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
50174
 
                0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
50175
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50176
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50177
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50178
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50179
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50180
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
50181
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
50182
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
50183
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
50184
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50185
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50186
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50187
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50188
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50189
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50190
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50191
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50192
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
50193
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50194
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50195
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50196
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50197
 
                0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
50198
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
50199
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
50200
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
50201
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50202
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50203
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50204
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50205
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50206
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50207
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50208
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50209
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
50210
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
50211
 
                0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50212
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
50213
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
50214
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
50215
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
50216
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
50217
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
50218
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
50219
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
50220
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
50221
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50222
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
50223
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
50224
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x38, 0x5f, 0x37, 0x5f, 
50225
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
50226
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
50227
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
50228
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
50229
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
50230
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
50231
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
50232
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50233
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50234
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50235
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50236
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
50237
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x34, 
50238
 
                0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50239
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50240
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
50241
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
50242
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
50243
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
50244
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
50245
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
50246
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
50247
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
50248
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
50249
 
                0x00, 0xf0, 0x04, 0x08 
50250
 
        };      /* Structure image */
50251
 
        
50252
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
49337
        static unsigned char data[] = {
 
49338
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
49339
                0x07, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
49340
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49341
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
49342
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
49343
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
49344
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
49345
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
49346
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
49347
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
49348
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
49349
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49350
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49351
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49352
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49353
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
49354
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
49355
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
49356
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
49357
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
49358
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
49359
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
49360
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
49361
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
49362
                0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
49363
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
49364
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
49365
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
49366
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49367
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49368
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49369
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49370
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
49371
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
49372
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
49373
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
49374
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
49375
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
49376
                0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49377
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
49378
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
49379
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
49380
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
49381
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
49382
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
49383
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
49384
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
49385
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
49386
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49387
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
49388
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
49389
                0x2c, 0xf3, 0xdc, 0xb7, 0x38, 0x5f, 0x37, 0x5f,
 
49390
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
49391
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
49392
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
49393
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
49394
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
49395
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
49396
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
49397
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49398
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49399
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49400
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49401
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
49402
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x34,
 
49403
                0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49404
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49405
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
49406
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
49407
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
49408
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
49409
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
49410
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
49411
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
49412
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
49413
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
49414
                0x00, 0xf0, 0x04, 0x08
 
49415
        };      /* Structure image */
 
49416
 
 
49417
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
50253
49418
}
50254
49419
 
50255
49420
static void
50256
49421
imdi_k140_tab(
50257
49422
tabspec *t                      /* structure to be initialised */
50258
49423
) {
50259
 
        static unsigned char data[] = {
50260
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
50261
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
50262
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
50263
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
50264
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
50265
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
50266
 
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 
50267
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
50268
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
50269
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50270
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
50271
 
                0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
50272
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
50273
 
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
50274
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
50275
 
                0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50276
 
                0x0e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
50277
 
                0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
50278
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50279
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50280
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
50281
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
50282
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
50283
 
                0x06, 0x00, 0x00, 0x00, 0xdc, 0x60, 0xef, 0xb7, 
50284
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50285
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50286
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50287
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50288
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50289
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50290
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50291
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50292
 
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff 
50293
 
        };      /* Structure image */
50294
 
        
50295
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
49424
        static unsigned char data[] = {
 
49425
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
49426
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
49427
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
49428
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
49429
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
49430
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
49431
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
 
49432
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
49433
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
49434
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49435
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
49436
                0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
49437
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
49438
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
49439
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
49440
                0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49441
                0x0e, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
49442
                0x02, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
49443
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49444
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49445
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
49446
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
49447
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
49448
                0x06, 0x00, 0x00, 0x00, 0xdc, 0x60, 0xef, 0xb7,
 
49449
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49450
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49451
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49452
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49453
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
49454
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
49455
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
49456
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
49457
                0x14, 0xda, 0x83, 0xbf, 0xff, 0xff, 0xff, 0xff
 
49458
        };      /* Structure image */
 
49459
 
 
49460
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
50296
49461
}
50297
49462
 
50298
 
 
50299
 
 
50300
 
 
50301
 
 
50302
 
 
50303
49463
/* Integer Multi-Dimensional Interpolation */
50304
49464
/* Interpolation Kernel Code */
50305
49465
/* Generated by cgen */
50308
49468
 
50309
49469
/* see the Licence.txt file for licencing details.*/
50310
49470
 
50311
 
 
50312
49471
/*
50313
49472
   Interpolation kernel specs:
50314
49473
 
50396
49555
void **inp,             /* pointer to input pointers */
50397
49556
unsigned int npix       /* Number of pixels to process */
50398
49557
) {
50399
 
        imdi_imp *p = (imdi_imp *)(s->impl);
50400
 
        unsigned short *ip0 = (unsigned short *)inp[0];
50401
 
        unsigned short *op0 = (unsigned short *)outp[0];
50402
 
        unsigned short *ep = ip0 + npix * 1 ;
50403
 
        pointer it0 = (pointer)p->in_tables[0];
50404
 
        pointer ot0 = (pointer)p->out_tables[0];
50405
 
        pointer ot1 = (pointer)p->out_tables[1];
50406
 
        pointer ot2 = (pointer)p->out_tables[2];
50407
 
        pointer ot3 = (pointer)p->out_tables[3];
50408
 
        pointer ot4 = (pointer)p->out_tables[4];
50409
 
        pointer ot5 = (pointer)p->out_tables[5];
50410
 
        pointer ot6 = (pointer)p->out_tables[6];
50411
 
        pointer ot7 = (pointer)p->out_tables[7];
50412
 
        pointer im_base = (pointer)p->im_table;
50413
 
        
50414
 
        for(;ip0 < ep; ip0 += 1, op0 += 8) {
50415
 
                unsigned int ova0;      /* Output value accumulator */
50416
 
                unsigned int ova1;      /* Output value accumulator */
50417
 
                unsigned int ova2;      /* Output value accumulator */
50418
 
                unsigned int ova3;      /* Output value accumulator */
50419
 
                unsigned int ova4;      /* Output value accumulator */
50420
 
                unsigned int ova5;      /* Output value accumulator */
50421
 
                unsigned int ova6;      /* Output value accumulator */
50422
 
                unsigned int ova7;      /* Output value accumulator */
50423
 
                {
50424
 
                        pointer imp;
50425
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
50426
 
                        {
50427
 
                                unsigned int ti;                /* Input table entry variable */
50428
 
                                unsigned int ti_i;      /* Interpolation index variable */
50429
 
                                
50430
 
                                ti = IT_IT(it0, ip0[0]);
50431
 
                                wo0   = (ti & 0x1fffff);        /* Extract weighting/vertex offset value */
50432
 
                                ti_i  = (ti >> 21);     /* Extract interpolation table value */
50433
 
                                
50434
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
50435
 
                                
50436
 
                                /* Sort weighting values and vertex offset values */
50437
 
                        }
50438
 
                        {
50439
 
                                unsigned int nvof;      /* Next vertex offset value */
50440
 
                                unsigned int vof;       /* Vertex offset value */
50441
 
                                unsigned int vwe;       /* Vertex weighting */
50442
 
                                
50443
 
                                vof = 0;                                /* First vertex offset is 0 */
50444
 
                                nvof = (wo0 & 0xf);     /* Extract offset value */
50445
 
                                wo0 = (wo0 >> 4);               /* Extract weighting value */
50446
 
                                vwe = 65536 - wo0;              /* Baricentric weighting */
50447
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
50448
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
50449
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
50450
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
50451
 
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
50452
 
                                ova5  = IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
50453
 
                                ova6  = IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
50454
 
                                ova7  = IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
50455
 
                                vof += nvof;                    /* Move to next vertex */
50456
 
                                vwe = wo0;                              /* Baricentric weighting */
50457
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
50458
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
50459
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
50460
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
50461
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
50462
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
50463
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
50464
 
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
50465
 
                        }
50466
 
                }
50467
 
                {
50468
 
                        unsigned int oti;       /* Vertex offset value */
50469
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
50470
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
50471
 
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
50472
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
50473
 
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
50474
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
50475
 
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
50476
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
50477
 
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
50478
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
50479
 
                        oti = ((ova5 >> 16) & 0xffff);  /* Extract integer part of result */
50480
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
50481
 
                        oti = ((ova6 >> 16) & 0xffff);  /* Extract integer part of result */
50482
 
                        op0[6] = OT_E(ot6, oti);        /* Write result */
50483
 
                        oti = ((ova7 >> 16) & 0xffff);  /* Extract integer part of result */
50484
 
                        op0[7] = OT_E(ot7, oti);        /* Write result */
50485
 
                }
50486
 
        }
 
49558
        imdi_imp *p = (imdi_imp *)(s->impl);
 
49559
        unsigned short *ip0 = (unsigned short *)inp[0];
 
49560
        unsigned short *op0 = (unsigned short *)outp[0];
 
49561
        unsigned short *ep = ip0 + npix * 1 ;
 
49562
        pointer it0 = (pointer)p->in_tables[0];
 
49563
        pointer ot0 = (pointer)p->out_tables[0];
 
49564
        pointer ot1 = (pointer)p->out_tables[1];
 
49565
        pointer ot2 = (pointer)p->out_tables[2];
 
49566
        pointer ot3 = (pointer)p->out_tables[3];
 
49567
        pointer ot4 = (pointer)p->out_tables[4];
 
49568
        pointer ot5 = (pointer)p->out_tables[5];
 
49569
        pointer ot6 = (pointer)p->out_tables[6];
 
49570
        pointer ot7 = (pointer)p->out_tables[7];
 
49571
        pointer im_base = (pointer)p->im_table;
 
49572
 
 
49573
        for(;ip0 < ep; ip0 += 1, op0 += 8) {
 
49574
                unsigned int ova0;      /* Output value accumulator */
 
49575
                unsigned int ova1;      /* Output value accumulator */
 
49576
                unsigned int ova2;      /* Output value accumulator */
 
49577
                unsigned int ova3;      /* Output value accumulator */
 
49578
                unsigned int ova4;      /* Output value accumulator */
 
49579
                unsigned int ova5;      /* Output value accumulator */
 
49580
                unsigned int ova6;      /* Output value accumulator */
 
49581
                unsigned int ova7;      /* Output value accumulator */
 
49582
                {
 
49583
                        pointer imp;
 
49584
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
49585
                        {
 
49586
                                unsigned int ti;                /* Input table entry variable */
 
49587
                                unsigned int ti_i;      /* Interpolation index variable */
 
49588
 
 
49589
                                ti = IT_IT(it0, ip0[0]);
 
49590
                                wo0   = (ti & 0x1fffff);        /* Extract weighting/vertex offset value */
 
49591
                                ti_i  = (ti >> 21);     /* Extract interpolation table value */
 
49592
 
 
49593
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
49594
 
 
49595
                                /* Sort weighting values and vertex offset values */
 
49596
                        }
 
49597
                        {
 
49598
                                unsigned int nvof;      /* Next vertex offset value */
 
49599
                                unsigned int vof;       /* Vertex offset value */
 
49600
                                unsigned int vwe;       /* Vertex weighting */
 
49601
 
 
49602
                                vof = 0;                                /* First vertex offset is 0 */
 
49603
                                nvof = (wo0 & 0xf);     /* Extract offset value */
 
49604
                                wo0 = (wo0 >> 4);               /* Extract weighting value */
 
49605
                                vwe = 65536 - wo0;              /* Baricentric weighting */
 
49606
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
49607
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
49608
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
49609
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
49610
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
49611
                                ova5  = IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
49612
                                ova6  = IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
49613
                                ova7  = IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
 
49614
                                vof += nvof;                    /* Move to next vertex */
 
49615
                                vwe = wo0;                              /* Baricentric weighting */
 
49616
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
49617
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
49618
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
49619
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
49620
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
49621
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
49622
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
49623
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
 
49624
                        }
 
49625
                }
 
49626
                {
 
49627
                        unsigned int oti;       /* Vertex offset value */
 
49628
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
49629
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
49630
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
 
49631
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
49632
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
 
49633
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
49634
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
 
49635
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
49636
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
 
49637
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
49638
                        oti = ((ova5 >> 16) & 0xffff);  /* Extract integer part of result */
 
49639
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
49640
                        oti = ((ova6 >> 16) & 0xffff);  /* Extract integer part of result */
 
49641
                        op0[6] = OT_E(ot6, oti);        /* Write result */
 
49642
                        oti = ((ova7 >> 16) & 0xffff);  /* Extract integer part of result */
 
49643
                        op0[7] = OT_E(ot7, oti);        /* Write result */
 
49644
                }
 
49645
        }
50487
49646
}
50488
49647
#undef IT_IT
50489
49648
#undef CEX
50495
49654
imdi_k141_gen(
50496
49655
genspec *g                      /* structure to be initialised */
50497
49656
) {
50498
 
        static unsigned char data[] = {
50499
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
50500
 
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
50501
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50502
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50503
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50504
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50505
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50506
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
50507
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
50508
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
50509
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
50510
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50511
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50512
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50513
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50514
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50515
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50516
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50517
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50518
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
50519
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50520
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50521
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50522
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50523
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
50524
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
50525
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
50526
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
50527
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50528
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50529
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50530
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50531
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50532
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50533
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50534
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50535
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
50536
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
50537
 
                0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50538
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
50539
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
50540
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
50541
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
50542
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
50543
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
50544
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
50545
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
50546
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
50547
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50548
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
50549
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
50550
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x31, 0x5f, 0x38, 0x5f, 
50551
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
50552
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
50553
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
50554
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
50555
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
50556
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
50557
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
50558
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50559
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50560
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50561
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50562
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
50563
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x34, 
50564
 
                0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50565
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50566
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
50567
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
50568
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
50569
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
50570
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
50571
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
50572
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
50573
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
50574
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
50575
 
                0x00, 0xf0, 0x04, 0x08 
50576
 
        };      /* Structure image */
50577
 
        
50578
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
49657
        static unsigned char data[] = {
 
49658
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
49659
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
49660
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49661
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
49662
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
49663
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
49664
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
49665
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
49666
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
49667
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
49668
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
49669
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49670
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49671
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49672
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49673
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
49674
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
49675
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
49676
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
49677
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
49678
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
49679
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
49680
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
49681
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
49682
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
49683
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
49684
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
49685
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
49686
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49687
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49688
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49689
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49690
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
49691
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
49692
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
49693
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
49694
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
49695
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
49696
                0x00, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49697
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
49698
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
49699
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
49700
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
49701
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
49702
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
49703
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
49704
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
49705
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
49706
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49707
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
49708
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
49709
                0x2c, 0xf3, 0xdc, 0xb7, 0x31, 0x5f, 0x38, 0x5f,
 
49710
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
49711
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
49712
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
49713
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
49714
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
49715
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
49716
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
49717
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49718
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49719
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49720
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49721
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
49722
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x34,
 
49723
                0x31, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49724
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49725
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
49726
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
49727
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
49728
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
49729
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
49730
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
49731
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
49732
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
49733
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
49734
                0x00, 0xf0, 0x04, 0x08
 
49735
        };      /* Structure image */
 
49736
 
 
49737
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
50579
49738
}
50580
49739
 
50581
49740
static void
50582
49741
imdi_k141_tab(
50583
49742
tabspec *t                      /* structure to be initialised */
50584
49743
) {
50585
 
        static unsigned char data[] = {
50586
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50587
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
50588
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
50589
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
50590
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
50591
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
50592
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
50593
 
                0x0b, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
50594
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
50595
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50596
 
                0x14, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00, 
50597
 
                0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
50598
 
                0x11, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
50599
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
50600
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
50601
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50602
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
50603
 
                0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
50604
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50605
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50606
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
50607
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
50608
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
50609
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
50610
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50611
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50612
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50613
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50614
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50615
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50616
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50617
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50618
 
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff 
50619
 
        };      /* Structure image */
50620
 
        
50621
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
49744
        static unsigned char data[] = {
 
49745
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49746
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
49747
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
49748
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
49749
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
49750
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
49751
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
49752
                0x0b, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
49753
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
49754
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49755
                0x14, 0x00, 0x00, 0x00, 0x15, 0x00, 0x00, 0x00,
 
49756
                0x08, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
49757
                0x11, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
49758
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
49759
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
49760
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49761
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
49762
                0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
49763
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49764
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49765
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
49766
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
49767
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
49768
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
49769
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49770
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49771
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49772
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
49773
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
49774
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
49775
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
49776
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
49777
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff
 
49778
        };      /* Structure image */
 
49779
 
 
49780
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
50622
49781
}
50623
49782
 
50624
 
 
50625
 
 
50626
 
 
50627
 
 
50628
 
 
50629
49783
/* Integer Multi-Dimensional Interpolation */
50630
49784
/* Interpolation Kernel Code */
50631
49785
/* Generated by cgen */
50634
49788
 
50635
49789
/* see the Licence.txt file for licencing details.*/
50636
49790
 
50637
 
 
50638
49791
/*
50639
49792
   Interpolation kernel specs:
50640
49793
 
50729
49882
void **inp,             /* pointer to input pointers */
50730
49883
unsigned int npix       /* Number of pixels to process */
50731
49884
) {
50732
 
        imdi_imp *p = (imdi_imp *)(s->impl);
50733
 
        unsigned short *ip0 = (unsigned short *)inp[0];
50734
 
        unsigned short *op0 = (unsigned short *)outp[0];
50735
 
        unsigned short *ep = ip0 + npix * 3 ;
50736
 
        pointer it0 = (pointer)p->in_tables[0];
50737
 
        pointer it1 = (pointer)p->in_tables[1];
50738
 
        pointer it2 = (pointer)p->in_tables[2];
50739
 
        pointer ot0 = (pointer)p->out_tables[0];
50740
 
        pointer ot1 = (pointer)p->out_tables[1];
50741
 
        pointer ot2 = (pointer)p->out_tables[2];
50742
 
        pointer ot3 = (pointer)p->out_tables[3];
50743
 
        pointer ot4 = (pointer)p->out_tables[4];
50744
 
        pointer ot5 = (pointer)p->out_tables[5];
50745
 
        pointer ot6 = (pointer)p->out_tables[6];
50746
 
        pointer ot7 = (pointer)p->out_tables[7];
50747
 
        pointer im_base = (pointer)p->im_table;
50748
 
        
50749
 
        for(;ip0 < ep; ip0 += 3, op0 += 8) {
50750
 
                unsigned int ova0;      /* Output value accumulator */
50751
 
                unsigned int ova1;      /* Output value accumulator */
50752
 
                unsigned int ova2;      /* Output value accumulator */
50753
 
                unsigned int ova3;      /* Output value accumulator */
50754
 
                unsigned int ova4;      /* Output value accumulator */
50755
 
                unsigned int ova5;      /* Output value accumulator */
50756
 
                unsigned int ova6;      /* Output value accumulator */
50757
 
                unsigned int ova7;      /* Output value accumulator */
50758
 
                {
50759
 
                        pointer imp;
50760
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
50761
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
50762
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
50763
 
                        {
50764
 
                                unsigned int ti_i;      /* Interpolation index variable */
50765
 
                                
50766
 
                                ti_i  = IT_IX(it0, ip0[0]);
50767
 
                                wo0   = IT_WO(it0, ip0[0]);
50768
 
                                ti_i += IT_IX(it1, ip0[1]);
50769
 
                                wo1   = IT_WO(it1, ip0[1]);
50770
 
                                ti_i += IT_IX(it2, ip0[2]);
50771
 
                                wo2   = IT_WO(it2, ip0[2]);
50772
 
                                
50773
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
50774
 
                                
50775
 
                                /* Sort weighting values and vertex offset values */
50776
 
                                CEX(wo0, wo1);
50777
 
                                CEX(wo0, wo2);
50778
 
                                CEX(wo1, wo2);
50779
 
                        }
50780
 
                        {
50781
 
                                unsigned int nvof;      /* Next vertex offset value */
50782
 
                                unsigned int vof;       /* Vertex offset value */
50783
 
                                unsigned int vwe;       /* Vertex weighting */
50784
 
                                
50785
 
                                vof = 0;                                /* First vertex offset is 0 */
50786
 
                                nvof = (wo0 & 0x7fff);  /* Extract offset value */
50787
 
                                wo0 = (wo0 >> 15);              /* Extract weighting value */
50788
 
                                vwe = 65536 - wo0;              /* Baricentric weighting */
50789
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
50790
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
50791
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
50792
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
50793
 
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
50794
 
                                ova5  = IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
50795
 
                                ova6  = IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
50796
 
                                ova7  = IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
50797
 
                                vof += nvof;                    /* Move to next vertex */
50798
 
                                nvof = (wo1 & 0x7fff);  /* Extract offset value */
50799
 
                                wo1 = (wo1 >> 15);              /* Extract weighting value */
50800
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
50801
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
50802
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
50803
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
50804
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
50805
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
50806
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
50807
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
50808
 
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
50809
 
                                vof += nvof;                    /* Move to next vertex */
50810
 
                                nvof = (wo2 & 0x7fff);  /* Extract offset value */
50811
 
                                wo2 = (wo2 >> 15);              /* Extract weighting value */
50812
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
50813
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
50814
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
50815
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
50816
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
50817
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
50818
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
50819
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
50820
 
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
50821
 
                                vof += nvof;                    /* Move to next vertex */
50822
 
                                vwe = wo2;                              /* Baricentric weighting */
50823
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
50824
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
50825
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
50826
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
50827
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
50828
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
50829
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
50830
 
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
50831
 
                        }
50832
 
                }
50833
 
                {
50834
 
                        unsigned int oti;       /* Vertex offset value */
50835
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
50836
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
50837
 
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
50838
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
50839
 
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
50840
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
50841
 
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
50842
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
50843
 
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
50844
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
50845
 
                        oti = ((ova5 >> 16) & 0xffff);  /* Extract integer part of result */
50846
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
50847
 
                        oti = ((ova6 >> 16) & 0xffff);  /* Extract integer part of result */
50848
 
                        op0[6] = OT_E(ot6, oti);        /* Write result */
50849
 
                        oti = ((ova7 >> 16) & 0xffff);  /* Extract integer part of result */
50850
 
                        op0[7] = OT_E(ot7, oti);        /* Write result */
50851
 
                }
50852
 
        }
 
49885
        imdi_imp *p = (imdi_imp *)(s->impl);
 
49886
        unsigned short *ip0 = (unsigned short *)inp[0];
 
49887
        unsigned short *op0 = (unsigned short *)outp[0];
 
49888
        unsigned short *ep = ip0 + npix * 3 ;
 
49889
        pointer it0 = (pointer)p->in_tables[0];
 
49890
        pointer it1 = (pointer)p->in_tables[1];
 
49891
        pointer it2 = (pointer)p->in_tables[2];
 
49892
        pointer ot0 = (pointer)p->out_tables[0];
 
49893
        pointer ot1 = (pointer)p->out_tables[1];
 
49894
        pointer ot2 = (pointer)p->out_tables[2];
 
49895
        pointer ot3 = (pointer)p->out_tables[3];
 
49896
        pointer ot4 = (pointer)p->out_tables[4];
 
49897
        pointer ot5 = (pointer)p->out_tables[5];
 
49898
        pointer ot6 = (pointer)p->out_tables[6];
 
49899
        pointer ot7 = (pointer)p->out_tables[7];
 
49900
        pointer im_base = (pointer)p->im_table;
 
49901
 
 
49902
        for(;ip0 < ep; ip0 += 3, op0 += 8) {
 
49903
                unsigned int ova0;      /* Output value accumulator */
 
49904
                unsigned int ova1;      /* Output value accumulator */
 
49905
                unsigned int ova2;      /* Output value accumulator */
 
49906
                unsigned int ova3;      /* Output value accumulator */
 
49907
                unsigned int ova4;      /* Output value accumulator */
 
49908
                unsigned int ova5;      /* Output value accumulator */
 
49909
                unsigned int ova6;      /* Output value accumulator */
 
49910
                unsigned int ova7;      /* Output value accumulator */
 
49911
                {
 
49912
                        pointer imp;
 
49913
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
49914
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
49915
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
49916
                        {
 
49917
                                unsigned int ti_i;      /* Interpolation index variable */
 
49918
 
 
49919
                                ti_i  = IT_IX(it0, ip0[0]);
 
49920
                                wo0   = IT_WO(it0, ip0[0]);
 
49921
                                ti_i += IT_IX(it1, ip0[1]);
 
49922
                                wo1   = IT_WO(it1, ip0[1]);
 
49923
                                ti_i += IT_IX(it2, ip0[2]);
 
49924
                                wo2   = IT_WO(it2, ip0[2]);
 
49925
 
 
49926
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
49927
 
 
49928
                                /* Sort weighting values and vertex offset values */
 
49929
                                CEX(wo0, wo1);
 
49930
                                CEX(wo0, wo2);
 
49931
                                CEX(wo1, wo2);
 
49932
                        }
 
49933
                        {
 
49934
                                unsigned int nvof;      /* Next vertex offset value */
 
49935
                                unsigned int vof;       /* Vertex offset value */
 
49936
                                unsigned int vwe;       /* Vertex weighting */
 
49937
 
 
49938
                                vof = 0;                                /* First vertex offset is 0 */
 
49939
                                nvof = (wo0 & 0x7fff);  /* Extract offset value */
 
49940
                                wo0 = (wo0 >> 15);              /* Extract weighting value */
 
49941
                                vwe = 65536 - wo0;              /* Baricentric weighting */
 
49942
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
49943
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
49944
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
49945
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
49946
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
49947
                                ova5  = IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
49948
                                ova6  = IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
49949
                                ova7  = IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
 
49950
                                vof += nvof;                    /* Move to next vertex */
 
49951
                                nvof = (wo1 & 0x7fff);  /* Extract offset value */
 
49952
                                wo1 = (wo1 >> 15);              /* Extract weighting value */
 
49953
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
49954
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
49955
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
49956
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
49957
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
49958
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
49959
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
49960
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
49961
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
 
49962
                                vof += nvof;                    /* Move to next vertex */
 
49963
                                nvof = (wo2 & 0x7fff);  /* Extract offset value */
 
49964
                                wo2 = (wo2 >> 15);              /* Extract weighting value */
 
49965
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
49966
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
49967
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
49968
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
49969
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
49970
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
49971
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
49972
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
49973
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
 
49974
                                vof += nvof;                    /* Move to next vertex */
 
49975
                                vwe = wo2;                              /* Baricentric weighting */
 
49976
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
49977
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
49978
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
49979
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
49980
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
49981
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
49982
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
49983
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
 
49984
                        }
 
49985
                }
 
49986
                {
 
49987
                        unsigned int oti;       /* Vertex offset value */
 
49988
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
49989
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
49990
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
 
49991
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
49992
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
 
49993
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
49994
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
 
49995
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
49996
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
 
49997
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
49998
                        oti = ((ova5 >> 16) & 0xffff);  /* Extract integer part of result */
 
49999
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
50000
                        oti = ((ova6 >> 16) & 0xffff);  /* Extract integer part of result */
 
50001
                        op0[6] = OT_E(ot6, oti);        /* Write result */
 
50002
                        oti = ((ova7 >> 16) & 0xffff);  /* Extract integer part of result */
 
50003
                        op0[7] = OT_E(ot7, oti);        /* Write result */
 
50004
                }
 
50005
        }
50853
50006
}
50854
50007
#undef IT_WO
50855
50008
#undef IT_IX
50862
50015
imdi_k142_gen(
50863
50016
genspec *g                      /* structure to be initialised */
50864
50017
) {
50865
 
        static unsigned char data[] = {
50866
 
                0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
50867
 
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
50868
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50869
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50870
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50871
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50872
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50873
 
                0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
50874
 
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
50875
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
50876
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
50877
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50878
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50879
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50880
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50881
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50882
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50883
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50884
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50885
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
50886
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50887
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50888
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50889
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50890
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
50891
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
50892
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
50893
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
50894
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50895
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50896
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50897
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50898
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50899
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50900
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50901
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50902
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
50903
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
50904
 
                0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50905
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
50906
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
50907
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
50908
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
50909
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
50910
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
50911
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
50912
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
50913
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
50914
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50915
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
50916
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
50917
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x33, 0x5f, 0x38, 0x5f, 
50918
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
50919
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
50920
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
50921
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
50922
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
50923
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
50924
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
50925
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50926
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50927
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50928
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50929
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
50930
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x34, 
50931
 
                0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50932
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50933
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
50934
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
50935
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
50936
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
50937
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
50938
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
50939
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
50940
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
50941
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
50942
 
                0x00, 0xf0, 0x04, 0x08 
50943
 
        };      /* Structure image */
50944
 
        
50945
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
50018
        static unsigned char data[] = {
 
50019
                0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
50020
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
50021
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50022
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50023
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50024
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50025
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50026
                0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
50027
                0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
50028
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
50029
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
50030
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50031
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50032
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50033
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50034
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50035
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50036
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50037
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50038
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
50039
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50040
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50041
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50042
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50043
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
50044
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
50045
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
50046
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
50047
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50048
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50049
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50050
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50051
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50052
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50053
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50054
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50055
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
50056
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
50057
                0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50058
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
50059
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
50060
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
50061
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
50062
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
50063
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
50064
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
50065
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
50066
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
50067
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50068
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
50069
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
50070
                0x2c, 0xf3, 0xdc, 0xb7, 0x33, 0x5f, 0x38, 0x5f,
 
50071
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
50072
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
50073
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
50074
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
50075
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
50076
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
50077
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
50078
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50079
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50080
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50081
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50082
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
50083
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x34,
 
50084
                0x32, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50085
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50086
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
50087
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
50088
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
50089
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
50090
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
50091
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
50092
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
50093
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
50094
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
50095
                0x00, 0xf0, 0x04, 0x08
 
50096
        };      /* Structure image */
 
50097
 
 
50098
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
50946
50099
}
50947
50100
 
50948
50101
static void
50949
50102
imdi_k142_tab(
50950
50103
tabspec *t                      /* structure to be initialised */
50951
50104
) {
50952
 
        static unsigned char data[] = {
50953
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
50954
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
50955
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
50956
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
50957
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
50958
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
50959
 
                0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
50960
 
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
50961
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
50962
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50963
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
50964
 
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 
50965
 
                0x11, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
50966
 
                0x04, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 
50967
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
50968
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50969
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
50970
 
                0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
50971
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50972
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50973
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
50974
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
50975
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
50976
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
50977
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50978
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50979
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50980
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
50981
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50982
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50983
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50984
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
50985
 
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff 
50986
 
        };      /* Structure image */
50987
 
        
50988
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
50105
        static unsigned char data[] = {
 
50106
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
50107
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
50108
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
50109
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
50110
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
50111
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
50112
                0x20, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
50113
                0x10, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
50114
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
50115
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50116
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
50117
                0x04, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
 
50118
                0x11, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
50119
                0x04, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00,
 
50120
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
50121
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50122
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
50123
                0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
50124
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50125
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50126
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
50127
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
50128
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
50129
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
50130
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50131
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50132
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50133
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50134
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50135
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50136
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50137
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50138
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff
 
50139
        };      /* Structure image */
 
50140
 
 
50141
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
50989
50142
}
50990
50143
 
50991
 
 
50992
 
 
50993
 
 
50994
 
 
50995
 
 
50996
50144
/* Integer Multi-Dimensional Interpolation */
50997
50145
/* Interpolation Kernel Code */
50998
50146
/* Generated by cgen */
51001
50149
 
51002
50150
/* see the Licence.txt file for licencing details.*/
51003
50151
 
51004
 
 
51005
50152
/*
51006
50153
   Interpolation kernel specs:
51007
50154
 
51098
50245
void **inp,             /* pointer to input pointers */
51099
50246
unsigned int npix       /* Number of pixels to process */
51100
50247
) {
51101
 
        imdi_imp *p = (imdi_imp *)(s->impl);
51102
 
        unsigned short *ip0 = (unsigned short *)inp[0];
51103
 
        unsigned short *op0 = (unsigned short *)outp[0];
51104
 
        unsigned short *ep = ip0 + npix * 4 ;
51105
 
        pointer it0 = (pointer)p->in_tables[0];
51106
 
        pointer it1 = (pointer)p->in_tables[1];
51107
 
        pointer it2 = (pointer)p->in_tables[2];
51108
 
        pointer it3 = (pointer)p->in_tables[3];
51109
 
        pointer ot0 = (pointer)p->out_tables[0];
51110
 
        pointer ot1 = (pointer)p->out_tables[1];
51111
 
        pointer ot2 = (pointer)p->out_tables[2];
51112
 
        pointer ot3 = (pointer)p->out_tables[3];
51113
 
        pointer ot4 = (pointer)p->out_tables[4];
51114
 
        pointer ot5 = (pointer)p->out_tables[5];
51115
 
        pointer ot6 = (pointer)p->out_tables[6];
51116
 
        pointer ot7 = (pointer)p->out_tables[7];
51117
 
        pointer im_base = (pointer)p->im_table;
51118
 
        
51119
 
        for(;ip0 < ep; ip0 += 4, op0 += 8) {
51120
 
                unsigned int ova0;      /* Output value accumulator */
51121
 
                unsigned int ova1;      /* Output value accumulator */
51122
 
                unsigned int ova2;      /* Output value accumulator */
51123
 
                unsigned int ova3;      /* Output value accumulator */
51124
 
                unsigned int ova4;      /* Output value accumulator */
51125
 
                unsigned int ova5;      /* Output value accumulator */
51126
 
                unsigned int ova6;      /* Output value accumulator */
51127
 
                unsigned int ova7;      /* Output value accumulator */
51128
 
                {
51129
 
                        pointer imp;
51130
 
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
51131
 
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
51132
 
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
51133
 
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
51134
 
                        {
51135
 
                                unsigned int ti_i;      /* Interpolation index variable */
51136
 
                                
51137
 
                                ti_i  = IT_IX(it0, ip0[0]);
51138
 
                                wo0   = IT_WO(it0, ip0[0]);
51139
 
                                ti_i += IT_IX(it1, ip0[1]);
51140
 
                                wo1   = IT_WO(it1, ip0[1]);
51141
 
                                ti_i += IT_IX(it2, ip0[2]);
51142
 
                                wo2   = IT_WO(it2, ip0[2]);
51143
 
                                ti_i += IT_IX(it3, ip0[3]);
51144
 
                                wo3   = IT_WO(it3, ip0[3]);
51145
 
                                
51146
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
51147
 
                                
51148
 
                                /* Sort weighting values and vertex offset values */
51149
 
                                CEX(wo0, wo1);
51150
 
                                CEX(wo0, wo2);
51151
 
                                CEX(wo0, wo3);
51152
 
                                CEX(wo1, wo2);
51153
 
                                CEX(wo1, wo3);
51154
 
                                CEX(wo2, wo3);
51155
 
                        }
51156
 
                        {
51157
 
                                unsigned int nvof;      /* Next vertex offset value */
51158
 
                                unsigned int vof;       /* Vertex offset value */
51159
 
                                unsigned int vwe;       /* Vertex weighting */
51160
 
                                
51161
 
                                vof = 0;                                /* First vertex offset is 0 */
51162
 
                                nvof = (wo0 & 0x7fff);  /* Extract offset value */
51163
 
                                wo0 = (wo0 >> 15);              /* Extract weighting value */
51164
 
                                vwe = 65536 - wo0;              /* Baricentric weighting */
51165
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
51166
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
51167
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
51168
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
51169
 
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
51170
 
                                ova5  = IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
51171
 
                                ova6  = IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
51172
 
                                ova7  = IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
51173
 
                                vof += nvof;                    /* Move to next vertex */
51174
 
                                nvof = (wo1 & 0x7fff);  /* Extract offset value */
51175
 
                                wo1 = (wo1 >> 15);              /* Extract weighting value */
51176
 
                                vwe = wo0 - wo1;                /* Baricentric weighting */
51177
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
51178
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
51179
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
51180
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
51181
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
51182
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
51183
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
51184
 
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
51185
 
                                vof += nvof;                    /* Move to next vertex */
51186
 
                                nvof = (wo2 & 0x7fff);  /* Extract offset value */
51187
 
                                wo2 = (wo2 >> 15);              /* Extract weighting value */
51188
 
                                vwe = wo1 - wo2;                /* Baricentric weighting */
51189
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
51190
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
51191
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
51192
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
51193
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
51194
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
51195
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
51196
 
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
51197
 
                                vof += nvof;                    /* Move to next vertex */
51198
 
                                nvof = (wo3 & 0x7fff);  /* Extract offset value */
51199
 
                                wo3 = (wo3 >> 15);              /* Extract weighting value */
51200
 
                                vwe = wo2 - wo3;                /* Baricentric weighting */
51201
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
51202
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
51203
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
51204
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
51205
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
51206
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
51207
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
51208
 
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
51209
 
                                vof += nvof;                    /* Move to next vertex */
51210
 
                                vwe = wo3;                              /* Baricentric weighting */
51211
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
51212
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
51213
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
51214
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
51215
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
51216
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
51217
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
51218
 
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
51219
 
                        }
51220
 
                }
51221
 
                {
51222
 
                        unsigned int oti;       /* Vertex offset value */
51223
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
51224
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
51225
 
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
51226
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
51227
 
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
51228
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
51229
 
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
51230
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
51231
 
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
51232
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
51233
 
                        oti = ((ova5 >> 16) & 0xffff);  /* Extract integer part of result */
51234
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
51235
 
                        oti = ((ova6 >> 16) & 0xffff);  /* Extract integer part of result */
51236
 
                        op0[6] = OT_E(ot6, oti);        /* Write result */
51237
 
                        oti = ((ova7 >> 16) & 0xffff);  /* Extract integer part of result */
51238
 
                        op0[7] = OT_E(ot7, oti);        /* Write result */
51239
 
                }
51240
 
        }
 
50248
        imdi_imp *p = (imdi_imp *)(s->impl);
 
50249
        unsigned short *ip0 = (unsigned short *)inp[0];
 
50250
        unsigned short *op0 = (unsigned short *)outp[0];
 
50251
        unsigned short *ep = ip0 + npix * 4 ;
 
50252
        pointer it0 = (pointer)p->in_tables[0];
 
50253
        pointer it1 = (pointer)p->in_tables[1];
 
50254
        pointer it2 = (pointer)p->in_tables[2];
 
50255
        pointer it3 = (pointer)p->in_tables[3];
 
50256
        pointer ot0 = (pointer)p->out_tables[0];
 
50257
        pointer ot1 = (pointer)p->out_tables[1];
 
50258
        pointer ot2 = (pointer)p->out_tables[2];
 
50259
        pointer ot3 = (pointer)p->out_tables[3];
 
50260
        pointer ot4 = (pointer)p->out_tables[4];
 
50261
        pointer ot5 = (pointer)p->out_tables[5];
 
50262
        pointer ot6 = (pointer)p->out_tables[6];
 
50263
        pointer ot7 = (pointer)p->out_tables[7];
 
50264
        pointer im_base = (pointer)p->im_table;
 
50265
 
 
50266
        for(;ip0 < ep; ip0 += 4, op0 += 8) {
 
50267
                unsigned int ova0;      /* Output value accumulator */
 
50268
                unsigned int ova1;      /* Output value accumulator */
 
50269
                unsigned int ova2;      /* Output value accumulator */
 
50270
                unsigned int ova3;      /* Output value accumulator */
 
50271
                unsigned int ova4;      /* Output value accumulator */
 
50272
                unsigned int ova5;      /* Output value accumulator */
 
50273
                unsigned int ova6;      /* Output value accumulator */
 
50274
                unsigned int ova7;      /* Output value accumulator */
 
50275
                {
 
50276
                        pointer imp;
 
50277
                        unsigned int wo0;       /* Weighting value and vertex offset variable */
 
50278
                        unsigned int wo1;       /* Weighting value and vertex offset variable */
 
50279
                        unsigned int wo2;       /* Weighting value and vertex offset variable */
 
50280
                        unsigned int wo3;       /* Weighting value and vertex offset variable */
 
50281
                        {
 
50282
                                unsigned int ti_i;      /* Interpolation index variable */
 
50283
 
 
50284
                                ti_i  = IT_IX(it0, ip0[0]);
 
50285
                                wo0   = IT_WO(it0, ip0[0]);
 
50286
                                ti_i += IT_IX(it1, ip0[1]);
 
50287
                                wo1   = IT_WO(it1, ip0[1]);
 
50288
                                ti_i += IT_IX(it2, ip0[2]);
 
50289
                                wo2   = IT_WO(it2, ip0[2]);
 
50290
                                ti_i += IT_IX(it3, ip0[3]);
 
50291
                                wo3   = IT_WO(it3, ip0[3]);
 
50292
 
 
50293
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
50294
 
 
50295
                                /* Sort weighting values and vertex offset values */
 
50296
                                CEX(wo0, wo1);
 
50297
                                CEX(wo0, wo2);
 
50298
                                CEX(wo0, wo3);
 
50299
                                CEX(wo1, wo2);
 
50300
                                CEX(wo1, wo3);
 
50301
                                CEX(wo2, wo3);
 
50302
                        }
 
50303
                        {
 
50304
                                unsigned int nvof;      /* Next vertex offset value */
 
50305
                                unsigned int vof;       /* Vertex offset value */
 
50306
                                unsigned int vwe;       /* Vertex weighting */
 
50307
 
 
50308
                                vof = 0;                                /* First vertex offset is 0 */
 
50309
                                nvof = (wo0 & 0x7fff);  /* Extract offset value */
 
50310
                                wo0 = (wo0 >> 15);              /* Extract weighting value */
 
50311
                                vwe = 65536 - wo0;              /* Baricentric weighting */
 
50312
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
50313
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
50314
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
50315
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
50316
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
50317
                                ova5  = IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
50318
                                ova6  = IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
50319
                                ova7  = IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
 
50320
                                vof += nvof;                    /* Move to next vertex */
 
50321
                                nvof = (wo1 & 0x7fff);  /* Extract offset value */
 
50322
                                wo1 = (wo1 >> 15);              /* Extract weighting value */
 
50323
                                vwe = wo0 - wo1;                /* Baricentric weighting */
 
50324
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
50325
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
50326
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
50327
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
50328
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
50329
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
50330
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
50331
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
 
50332
                                vof += nvof;                    /* Move to next vertex */
 
50333
                                nvof = (wo2 & 0x7fff);  /* Extract offset value */
 
50334
                                wo2 = (wo2 >> 15);              /* Extract weighting value */
 
50335
                                vwe = wo1 - wo2;                /* Baricentric weighting */
 
50336
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
50337
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
50338
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
50339
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
50340
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
50341
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
50342
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
50343
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
 
50344
                                vof += nvof;                    /* Move to next vertex */
 
50345
                                nvof = (wo3 & 0x7fff);  /* Extract offset value */
 
50346
                                wo3 = (wo3 >> 15);              /* Extract weighting value */
 
50347
                                vwe = wo2 - wo3;                /* Baricentric weighting */
 
50348
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
50349
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
50350
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
50351
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
50352
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
50353
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
50354
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
50355
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
 
50356
                                vof += nvof;                    /* Move to next vertex */
 
50357
                                vwe = wo3;                              /* Baricentric weighting */
 
50358
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
50359
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
50360
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
50361
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
50362
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
50363
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
50364
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
50365
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
 
50366
                        }
 
50367
                }
 
50368
                {
 
50369
                        unsigned int oti;       /* Vertex offset value */
 
50370
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
50371
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
50372
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
 
50373
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
50374
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
 
50375
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
50376
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
 
50377
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
50378
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
 
50379
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
50380
                        oti = ((ova5 >> 16) & 0xffff);  /* Extract integer part of result */
 
50381
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
50382
                        oti = ((ova6 >> 16) & 0xffff);  /* Extract integer part of result */
 
50383
                        op0[6] = OT_E(ot6, oti);        /* Write result */
 
50384
                        oti = ((ova7 >> 16) & 0xffff);  /* Extract integer part of result */
 
50385
                        op0[7] = OT_E(ot7, oti);        /* Write result */
 
50386
                }
 
50387
        }
51241
50388
}
51242
50389
#undef IT_WO
51243
50390
#undef IT_IX
51250
50397
imdi_k143_gen(
51251
50398
genspec *g                      /* structure to be initialised */
51252
50399
) {
51253
 
        static unsigned char data[] = {
51254
 
                0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
51255
 
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
51256
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51257
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
51258
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
51259
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
51260
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
51261
 
                0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
51262
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
51263
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
51264
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
51265
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51266
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51267
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51268
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51269
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
51270
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
51271
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
51272
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
51273
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
51274
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
51275
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
51276
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
51277
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
51278
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
51279
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
51280
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
51281
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
51282
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51283
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51284
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51285
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51286
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
51287
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
51288
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
51289
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
51290
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
51291
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
51292
 
                0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51293
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
51294
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
51295
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
51296
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
51297
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
51298
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
51299
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
51300
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
51301
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
51302
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51303
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
51304
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
51305
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x34, 0x5f, 0x38, 0x5f, 
51306
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
51307
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
51308
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
51309
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
51310
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
51311
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
51312
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
51313
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51314
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51315
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51316
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51317
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
51318
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x34, 
51319
 
                0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51320
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51321
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
51322
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
51323
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
51324
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
51325
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
51326
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
51327
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
51328
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
51329
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
51330
 
                0x00, 0xf0, 0x04, 0x08 
51331
 
        };      /* Structure image */
51332
 
        
51333
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
50400
        static unsigned char data[] = {
 
50401
                0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
50402
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
50403
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50404
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50405
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50406
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50407
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50408
                0x10, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
50409
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
50410
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
50411
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
50412
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50413
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50414
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50415
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50416
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50417
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50418
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50419
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50420
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
50421
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50422
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50423
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50424
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50425
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
50426
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
50427
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
50428
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
50429
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50430
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50431
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50432
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50433
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50434
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50435
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50436
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50437
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
50438
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
50439
                0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50440
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
50441
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
50442
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
50443
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
50444
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
50445
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
50446
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
50447
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
50448
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
50449
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50450
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
50451
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
50452
                0x2c, 0xf3, 0xdc, 0xb7, 0x34, 0x5f, 0x38, 0x5f,
 
50453
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
50454
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
50455
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
50456
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
50457
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
50458
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
50459
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
50460
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50461
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50462
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50463
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50464
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
50465
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x34,
 
50466
                0x33, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50467
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50468
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
50469
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
50470
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
50471
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
50472
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
50473
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
50474
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
50475
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
50476
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
50477
                0x00, 0xf0, 0x04, 0x08
 
50478
        };      /* Structure image */
 
50479
 
 
50480
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
51334
50481
}
51335
50482
 
51336
50483
static void
51337
50484
imdi_k143_tab(
51338
50485
tabspec *t                      /* structure to be initialised */
51339
50486
) {
51340
 
        static unsigned char data[] = {
51341
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
51342
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
51343
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
51344
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
51345
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
51346
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
51347
 
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
51348
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
51349
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
51350
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51351
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
51352
 
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
51353
 
                0x11, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
51354
 
                0x04, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00, 
51355
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
51356
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51357
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
51358
 
                0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
51359
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51360
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51361
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
51362
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
51363
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
51364
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
51365
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51366
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51367
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51368
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51369
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
51370
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
51371
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
51372
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
51373
 
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff 
51374
 
        };      /* Structure image */
51375
 
        
51376
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
50487
        static unsigned char data[] = {
 
50488
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
50489
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
50490
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
50491
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
50492
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
50493
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
50494
                0x20, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
50495
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
50496
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
50497
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50498
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
50499
                0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
50500
                0x11, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
50501
                0x04, 0x00, 0x00, 0x00, 0x0f, 0x00, 0x00, 0x00,
 
50502
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
50503
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50504
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
50505
                0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
50506
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50507
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50508
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
50509
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
50510
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
50511
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
50512
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50513
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50514
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50515
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50516
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50517
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50518
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50519
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50520
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff
 
50521
        };      /* Structure image */
 
50522
 
 
50523
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
51377
50524
}
51378
50525
 
51379
 
 
51380
 
 
51381
 
 
51382
 
 
51383
 
 
51384
50526
/* Integer Multi-Dimensional Interpolation */
51385
50527
/* Interpolation Kernel Code */
51386
50528
/* Generated by cgen */
51389
50531
 
51390
50532
/* see the Licence.txt file for licencing details.*/
51391
50533
 
51392
 
 
51393
50534
/*
51394
50535
   Interpolation kernel specs:
51395
50536
 
51492
50633
void **inp,             /* pointer to input pointers */
51493
50634
unsigned int npix       /* Number of pixels to process */
51494
50635
) {
51495
 
        imdi_imp *p = (imdi_imp *)(s->impl);
51496
 
        unsigned short *ip0 = (unsigned short *)inp[0];
51497
 
        unsigned short *op0 = (unsigned short *)outp[0];
51498
 
        unsigned short *ep = ip0 + npix * 5 ;
51499
 
        pointer it0 = (pointer)p->in_tables[0];
51500
 
        pointer it1 = (pointer)p->in_tables[1];
51501
 
        pointer it2 = (pointer)p->in_tables[2];
51502
 
        pointer it3 = (pointer)p->in_tables[3];
51503
 
        pointer it4 = (pointer)p->in_tables[4];
51504
 
        pointer ot0 = (pointer)p->out_tables[0];
51505
 
        pointer ot1 = (pointer)p->out_tables[1];
51506
 
        pointer ot2 = (pointer)p->out_tables[2];
51507
 
        pointer ot3 = (pointer)p->out_tables[3];
51508
 
        pointer ot4 = (pointer)p->out_tables[4];
51509
 
        pointer ot5 = (pointer)p->out_tables[5];
51510
 
        pointer ot6 = (pointer)p->out_tables[6];
51511
 
        pointer ot7 = (pointer)p->out_tables[7];
51512
 
        pointer im_base = (pointer)p->im_table;
51513
 
        
51514
 
        for(;ip0 < ep; ip0 += 5, op0 += 8) {
51515
 
                unsigned int ova0;      /* Output value accumulator */
51516
 
                unsigned int ova1;      /* Output value accumulator */
51517
 
                unsigned int ova2;      /* Output value accumulator */
51518
 
                unsigned int ova3;      /* Output value accumulator */
51519
 
                unsigned int ova4;      /* Output value accumulator */
51520
 
                unsigned int ova5;      /* Output value accumulator */
51521
 
                unsigned int ova6;      /* Output value accumulator */
51522
 
                unsigned int ova7;      /* Output value accumulator */
51523
 
                {
51524
 
                        pointer imp;
51525
 
                        unsigned int we0;       /* Weighting value variable */
51526
 
                        unsigned int vo0;       /* Vertex offset variable */
51527
 
                        unsigned int we1;       /* Weighting value variable */
51528
 
                        unsigned int vo1;       /* Vertex offset variable */
51529
 
                        unsigned int we2;       /* Weighting value variable */
51530
 
                        unsigned int vo2;       /* Vertex offset variable */
51531
 
                        unsigned int we3;       /* Weighting value variable */
51532
 
                        unsigned int vo3;       /* Vertex offset variable */
51533
 
                        unsigned int we4;       /* Weighting value variable */
51534
 
                        unsigned int vo4;       /* Vertex offset variable */
51535
 
                        {
51536
 
                                unsigned int ti_i;      /* Interpolation index variable */
51537
 
                                
51538
 
                                ti_i  = IT_IX(it0, ip0[0]);
51539
 
                                we0   = IT_WE(it0, ip0[0]);
51540
 
                                vo0   = IT_VO(it0, ip0[0]);
51541
 
                                ti_i += IT_IX(it1, ip0[1]);
51542
 
                                we1   = IT_WE(it1, ip0[1]);
51543
 
                                vo1   = IT_VO(it1, ip0[1]);
51544
 
                                ti_i += IT_IX(it2, ip0[2]);
51545
 
                                we2   = IT_WE(it2, ip0[2]);
51546
 
                                vo2   = IT_VO(it2, ip0[2]);
51547
 
                                ti_i += IT_IX(it3, ip0[3]);
51548
 
                                we3   = IT_WE(it3, ip0[3]);
51549
 
                                vo3   = IT_VO(it3, ip0[3]);
51550
 
                                ti_i += IT_IX(it4, ip0[4]);
51551
 
                                we4   = IT_WE(it4, ip0[4]);
51552
 
                                vo4   = IT_VO(it4, ip0[4]);
51553
 
                                
51554
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
51555
 
                                
51556
 
                                /* Sort weighting values and vertex offset values */
51557
 
                                CEX(we0, vo0, we1, vo1);
51558
 
                                CEX(we0, vo0, we2, vo2);
51559
 
                                CEX(we0, vo0, we3, vo3);
51560
 
                                CEX(we0, vo0, we4, vo4);
51561
 
                                CEX(we1, vo1, we2, vo2);
51562
 
                                CEX(we1, vo1, we3, vo3);
51563
 
                                CEX(we1, vo1, we4, vo4);
51564
 
                                CEX(we2, vo2, we3, vo3);
51565
 
                                CEX(we2, vo2, we4, vo4);
51566
 
                                CEX(we3, vo3, we4, vo4);
51567
 
                        }
51568
 
                        {
51569
 
                                unsigned int vof;       /* Vertex offset value */
51570
 
                                unsigned int vwe;       /* Vertex weighting */
51571
 
                                
51572
 
                                vof = 0;                                /* First vertex offset is 0 */
51573
 
                                vwe = 65536 - we0;              /* Baricentric weighting */
51574
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
51575
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
51576
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
51577
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
51578
 
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
51579
 
                                ova5  = IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
51580
 
                                ova6  = IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
51581
 
                                ova7  = IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
51582
 
                                vof += vo0;                     /* Move to next vertex */
51583
 
                                vwe = we0 - we1;                /* Baricentric weighting */
51584
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
51585
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
51586
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
51587
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
51588
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
51589
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
51590
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
51591
 
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
51592
 
                                vof += vo1;                     /* Move to next vertex */
51593
 
                                vwe = we1 - we2;                /* Baricentric weighting */
51594
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
51595
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
51596
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
51597
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
51598
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
51599
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
51600
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
51601
 
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
51602
 
                                vof += vo2;                     /* Move to next vertex */
51603
 
                                vwe = we2 - we3;                /* Baricentric weighting */
51604
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
51605
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
51606
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
51607
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
51608
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
51609
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
51610
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
51611
 
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
51612
 
                                vof += vo3;                     /* Move to next vertex */
51613
 
                                vwe = we3 - we4;                /* Baricentric weighting */
51614
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
51615
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
51616
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
51617
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
51618
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
51619
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
51620
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
51621
 
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
51622
 
                                vof += vo4;                     /* Move to next vertex */
51623
 
                                vwe = we4;                              /* Baricentric weighting */
51624
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
51625
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
51626
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
51627
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
51628
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
51629
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
51630
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
51631
 
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
51632
 
                        }
51633
 
                }
51634
 
                {
51635
 
                        unsigned int oti;       /* Vertex offset value */
51636
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
51637
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
51638
 
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
51639
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
51640
 
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
51641
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
51642
 
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
51643
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
51644
 
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
51645
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
51646
 
                        oti = ((ova5 >> 16) & 0xffff);  /* Extract integer part of result */
51647
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
51648
 
                        oti = ((ova6 >> 16) & 0xffff);  /* Extract integer part of result */
51649
 
                        op0[6] = OT_E(ot6, oti);        /* Write result */
51650
 
                        oti = ((ova7 >> 16) & 0xffff);  /* Extract integer part of result */
51651
 
                        op0[7] = OT_E(ot7, oti);        /* Write result */
51652
 
                }
51653
 
        }
 
50636
        imdi_imp *p = (imdi_imp *)(s->impl);
 
50637
        unsigned short *ip0 = (unsigned short *)inp[0];
 
50638
        unsigned short *op0 = (unsigned short *)outp[0];
 
50639
        unsigned short *ep = ip0 + npix * 5 ;
 
50640
        pointer it0 = (pointer)p->in_tables[0];
 
50641
        pointer it1 = (pointer)p->in_tables[1];
 
50642
        pointer it2 = (pointer)p->in_tables[2];
 
50643
        pointer it3 = (pointer)p->in_tables[3];
 
50644
        pointer it4 = (pointer)p->in_tables[4];
 
50645
        pointer ot0 = (pointer)p->out_tables[0];
 
50646
        pointer ot1 = (pointer)p->out_tables[1];
 
50647
        pointer ot2 = (pointer)p->out_tables[2];
 
50648
        pointer ot3 = (pointer)p->out_tables[3];
 
50649
        pointer ot4 = (pointer)p->out_tables[4];
 
50650
        pointer ot5 = (pointer)p->out_tables[5];
 
50651
        pointer ot6 = (pointer)p->out_tables[6];
 
50652
        pointer ot7 = (pointer)p->out_tables[7];
 
50653
        pointer im_base = (pointer)p->im_table;
 
50654
 
 
50655
        for(;ip0 < ep; ip0 += 5, op0 += 8) {
 
50656
                unsigned int ova0;      /* Output value accumulator */
 
50657
                unsigned int ova1;      /* Output value accumulator */
 
50658
                unsigned int ova2;      /* Output value accumulator */
 
50659
                unsigned int ova3;      /* Output value accumulator */
 
50660
                unsigned int ova4;      /* Output value accumulator */
 
50661
                unsigned int ova5;      /* Output value accumulator */
 
50662
                unsigned int ova6;      /* Output value accumulator */
 
50663
                unsigned int ova7;      /* Output value accumulator */
 
50664
                {
 
50665
                        pointer imp;
 
50666
                        unsigned int we0;       /* Weighting value variable */
 
50667
                        unsigned int vo0;       /* Vertex offset variable */
 
50668
                        unsigned int we1;       /* Weighting value variable */
 
50669
                        unsigned int vo1;       /* Vertex offset variable */
 
50670
                        unsigned int we2;       /* Weighting value variable */
 
50671
                        unsigned int vo2;       /* Vertex offset variable */
 
50672
                        unsigned int we3;       /* Weighting value variable */
 
50673
                        unsigned int vo3;       /* Vertex offset variable */
 
50674
                        unsigned int we4;       /* Weighting value variable */
 
50675
                        unsigned int vo4;       /* Vertex offset variable */
 
50676
                        {
 
50677
                                unsigned int ti_i;      /* Interpolation index variable */
 
50678
 
 
50679
                                ti_i  = IT_IX(it0, ip0[0]);
 
50680
                                we0   = IT_WE(it0, ip0[0]);
 
50681
                                vo0   = IT_VO(it0, ip0[0]);
 
50682
                                ti_i += IT_IX(it1, ip0[1]);
 
50683
                                we1   = IT_WE(it1, ip0[1]);
 
50684
                                vo1   = IT_VO(it1, ip0[1]);
 
50685
                                ti_i += IT_IX(it2, ip0[2]);
 
50686
                                we2   = IT_WE(it2, ip0[2]);
 
50687
                                vo2   = IT_VO(it2, ip0[2]);
 
50688
                                ti_i += IT_IX(it3, ip0[3]);
 
50689
                                we3   = IT_WE(it3, ip0[3]);
 
50690
                                vo3   = IT_VO(it3, ip0[3]);
 
50691
                                ti_i += IT_IX(it4, ip0[4]);
 
50692
                                we4   = IT_WE(it4, ip0[4]);
 
50693
                                vo4   = IT_VO(it4, ip0[4]);
 
50694
 
 
50695
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
50696
 
 
50697
                                /* Sort weighting values and vertex offset values */
 
50698
                                CEX(we0, vo0, we1, vo1);
 
50699
                                CEX(we0, vo0, we2, vo2);
 
50700
                                CEX(we0, vo0, we3, vo3);
 
50701
                                CEX(we0, vo0, we4, vo4);
 
50702
                                CEX(we1, vo1, we2, vo2);
 
50703
                                CEX(we1, vo1, we3, vo3);
 
50704
                                CEX(we1, vo1, we4, vo4);
 
50705
                                CEX(we2, vo2, we3, vo3);
 
50706
                                CEX(we2, vo2, we4, vo4);
 
50707
                                CEX(we3, vo3, we4, vo4);
 
50708
                        }
 
50709
                        {
 
50710
                                unsigned int vof;       /* Vertex offset value */
 
50711
                                unsigned int vwe;       /* Vertex weighting */
 
50712
 
 
50713
                                vof = 0;                                /* First vertex offset is 0 */
 
50714
                                vwe = 65536 - we0;              /* Baricentric weighting */
 
50715
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
50716
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
50717
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
50718
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
50719
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
50720
                                ova5  = IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
50721
                                ova6  = IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
50722
                                ova7  = IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
 
50723
                                vof += vo0;                     /* Move to next vertex */
 
50724
                                vwe = we0 - we1;                /* Baricentric weighting */
 
50725
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
50726
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
50727
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
50728
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
50729
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
50730
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
50731
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
50732
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
 
50733
                                vof += vo1;                     /* Move to next vertex */
 
50734
                                vwe = we1 - we2;                /* Baricentric weighting */
 
50735
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
50736
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
50737
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
50738
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
50739
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
50740
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
50741
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
50742
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
 
50743
                                vof += vo2;                     /* Move to next vertex */
 
50744
                                vwe = we2 - we3;                /* Baricentric weighting */
 
50745
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
50746
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
50747
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
50748
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
50749
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
50750
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
50751
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
50752
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
 
50753
                                vof += vo3;                     /* Move to next vertex */
 
50754
                                vwe = we3 - we4;                /* Baricentric weighting */
 
50755
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
50756
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
50757
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
50758
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
50759
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
50760
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
50761
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
50762
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
 
50763
                                vof += vo4;                     /* Move to next vertex */
 
50764
                                vwe = we4;                              /* Baricentric weighting */
 
50765
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
50766
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
50767
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
50768
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
50769
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
50770
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
50771
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
50772
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
 
50773
                        }
 
50774
                }
 
50775
                {
 
50776
                        unsigned int oti;       /* Vertex offset value */
 
50777
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
50778
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
50779
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
 
50780
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
50781
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
 
50782
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
50783
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
 
50784
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
50785
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
 
50786
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
50787
                        oti = ((ova5 >> 16) & 0xffff);  /* Extract integer part of result */
 
50788
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
50789
                        oti = ((ova6 >> 16) & 0xffff);  /* Extract integer part of result */
 
50790
                        op0[6] = OT_E(ot6, oti);        /* Write result */
 
50791
                        oti = ((ova7 >> 16) & 0xffff);  /* Extract integer part of result */
 
50792
                        op0[7] = OT_E(ot7, oti);        /* Write result */
 
50793
                }
 
50794
        }
51654
50795
}
51655
50796
#undef IT_WE
51656
50797
#undef IT_VO
51664
50805
imdi_k144_gen(
51665
50806
genspec *g                      /* structure to be initialised */
51666
50807
) {
51667
 
        static unsigned char data[] = {
51668
 
                0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
51669
 
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
51670
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51671
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
51672
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
51673
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
51674
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
51675
 
                0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
51676
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
51677
 
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
51678
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
51679
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51680
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51681
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51682
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51683
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
51684
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
51685
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
51686
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
51687
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
51688
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
51689
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
51690
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
51691
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
51692
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
51693
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
51694
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
51695
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
51696
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51697
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51698
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51699
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51700
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
51701
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
51702
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
51703
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
51704
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
51705
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
51706
 
                0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51707
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
51708
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
51709
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
51710
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
51711
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
51712
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
51713
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
51714
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
51715
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
51716
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51717
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
51718
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
51719
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x35, 0x5f, 0x38, 0x5f, 
51720
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
51721
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
51722
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
51723
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
51724
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
51725
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
51726
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
51727
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51728
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51729
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51730
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51731
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
51732
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x34, 
51733
 
                0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51734
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51735
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
51736
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
51737
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
51738
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
51739
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
51740
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
51741
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
51742
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
51743
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
51744
 
                0x00, 0xf0, 0x04, 0x08 
51745
 
        };      /* Structure image */
51746
 
        
51747
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
50808
        static unsigned char data[] = {
 
50809
                0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
50810
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
50811
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50812
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50813
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50814
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50815
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50816
                0x10, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
50817
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
50818
                0x05, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
50819
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
50820
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50821
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50822
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50823
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50824
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50825
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50826
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50827
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50828
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
50829
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50830
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50831
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50832
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50833
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
50834
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
50835
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
50836
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
50837
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50838
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50839
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50840
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50841
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50842
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50843
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50844
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50845
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
50846
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
50847
                0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50848
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
50849
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
50850
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
50851
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
50852
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
50853
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
50854
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
50855
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
50856
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
50857
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50858
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
50859
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
50860
                0x2c, 0xf3, 0xdc, 0xb7, 0x35, 0x5f, 0x38, 0x5f,
 
50861
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
50862
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
50863
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
50864
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
50865
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
50866
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
50867
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
50868
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50869
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50870
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50871
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50872
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
50873
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x34,
 
50874
                0x34, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50875
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50876
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
50877
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
50878
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
50879
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
50880
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
50881
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
50882
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
50883
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
50884
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
50885
                0x00, 0xf0, 0x04, 0x08
 
50886
        };      /* Structure image */
 
50887
 
 
50888
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
51748
50889
}
51749
50890
 
51750
50891
static void
51751
50892
imdi_k144_tab(
51752
50893
tabspec *t                      /* structure to be initialised */
51753
50894
) {
51754
 
        static unsigned char data[] = {
51755
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
51756
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
51757
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
51758
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
51759
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
51760
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
51761
 
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 
51762
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
51763
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
51764
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51765
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
51766
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
51767
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
51768
 
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
51769
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
51770
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51771
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
51772
 
                0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
51773
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51774
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51775
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
51776
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
51777
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
51778
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
51779
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51780
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51781
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51782
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
51783
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
51784
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
51785
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
51786
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
51787
 
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff 
51788
 
        };      /* Structure image */
51789
 
        
51790
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
50895
        static unsigned char data[] = {
 
50896
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
50897
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
50898
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
50899
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
50900
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
50901
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
50902
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
 
50903
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
50904
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
50905
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50906
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
50907
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
50908
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
50909
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
50910
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
50911
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50912
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
50913
                0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
50914
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50915
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50916
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
50917
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
50918
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
50919
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
50920
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50921
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50922
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50923
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
50924
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50925
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50926
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50927
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
50928
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff
 
50929
        };      /* Structure image */
 
50930
 
 
50931
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
51791
50932
}
51792
50933
 
51793
 
 
51794
 
 
51795
 
 
51796
 
 
51797
 
 
51798
50934
/* Integer Multi-Dimensional Interpolation */
51799
50935
/* Interpolation Kernel Code */
51800
50936
/* Generated by cgen */
51803
50939
 
51804
50940
/* see the Licence.txt file for licencing details.*/
51805
50941
 
51806
 
 
51807
50942
/*
51808
50943
   Interpolation kernel specs:
51809
50944
 
51908
51043
void **inp,             /* pointer to input pointers */
51909
51044
unsigned int npix       /* Number of pixels to process */
51910
51045
) {
51911
 
        imdi_imp *p = (imdi_imp *)(s->impl);
51912
 
        unsigned short *ip0 = (unsigned short *)inp[0];
51913
 
        unsigned short *op0 = (unsigned short *)outp[0];
51914
 
        unsigned short *ep = ip0 + npix * 6 ;
51915
 
        pointer it0 = (pointer)p->in_tables[0];
51916
 
        pointer it1 = (pointer)p->in_tables[1];
51917
 
        pointer it2 = (pointer)p->in_tables[2];
51918
 
        pointer it3 = (pointer)p->in_tables[3];
51919
 
        pointer it4 = (pointer)p->in_tables[4];
51920
 
        pointer it5 = (pointer)p->in_tables[5];
51921
 
        pointer ot0 = (pointer)p->out_tables[0];
51922
 
        pointer ot1 = (pointer)p->out_tables[1];
51923
 
        pointer ot2 = (pointer)p->out_tables[2];
51924
 
        pointer ot3 = (pointer)p->out_tables[3];
51925
 
        pointer ot4 = (pointer)p->out_tables[4];
51926
 
        pointer ot5 = (pointer)p->out_tables[5];
51927
 
        pointer ot6 = (pointer)p->out_tables[6];
51928
 
        pointer ot7 = (pointer)p->out_tables[7];
51929
 
        pointer im_base = (pointer)p->im_table;
51930
 
        
51931
 
        for(;ip0 < ep; ip0 += 6, op0 += 8) {
51932
 
                unsigned int ova0;      /* Output value accumulator */
51933
 
                unsigned int ova1;      /* Output value accumulator */
51934
 
                unsigned int ova2;      /* Output value accumulator */
51935
 
                unsigned int ova3;      /* Output value accumulator */
51936
 
                unsigned int ova4;      /* Output value accumulator */
51937
 
                unsigned int ova5;      /* Output value accumulator */
51938
 
                unsigned int ova6;      /* Output value accumulator */
51939
 
                unsigned int ova7;      /* Output value accumulator */
51940
 
                {
51941
 
                        pointer imp;
51942
 
                        unsigned int we0;       /* Weighting value variable */
51943
 
                        unsigned int vo0;       /* Vertex offset variable */
51944
 
                        unsigned int we1;       /* Weighting value variable */
51945
 
                        unsigned int vo1;       /* Vertex offset variable */
51946
 
                        unsigned int we2;       /* Weighting value variable */
51947
 
                        unsigned int vo2;       /* Vertex offset variable */
51948
 
                        unsigned int we3;       /* Weighting value variable */
51949
 
                        unsigned int vo3;       /* Vertex offset variable */
51950
 
                        unsigned int we4;       /* Weighting value variable */
51951
 
                        unsigned int vo4;       /* Vertex offset variable */
51952
 
                        unsigned int we5;       /* Weighting value variable */
51953
 
                        unsigned int vo5;       /* Vertex offset variable */
51954
 
                        {
51955
 
                                unsigned int ti_i;      /* Interpolation index variable */
51956
 
                                
51957
 
                                ti_i  = IT_IX(it0, ip0[0]);
51958
 
                                we0   = IT_WE(it0, ip0[0]);
51959
 
                                vo0   = IT_VO(it0, ip0[0]);
51960
 
                                ti_i += IT_IX(it1, ip0[1]);
51961
 
                                we1   = IT_WE(it1, ip0[1]);
51962
 
                                vo1   = IT_VO(it1, ip0[1]);
51963
 
                                ti_i += IT_IX(it2, ip0[2]);
51964
 
                                we2   = IT_WE(it2, ip0[2]);
51965
 
                                vo2   = IT_VO(it2, ip0[2]);
51966
 
                                ti_i += IT_IX(it3, ip0[3]);
51967
 
                                we3   = IT_WE(it3, ip0[3]);
51968
 
                                vo3   = IT_VO(it3, ip0[3]);
51969
 
                                ti_i += IT_IX(it4, ip0[4]);
51970
 
                                we4   = IT_WE(it4, ip0[4]);
51971
 
                                vo4   = IT_VO(it4, ip0[4]);
51972
 
                                ti_i += IT_IX(it5, ip0[5]);
51973
 
                                we5   = IT_WE(it5, ip0[5]);
51974
 
                                vo5   = IT_VO(it5, ip0[5]);
51975
 
                                
51976
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
51977
 
                                
51978
 
                                /* Sort weighting values and vertex offset values */
51979
 
                                CEX(we0, vo0, we1, vo1);
51980
 
                                CEX(we0, vo0, we2, vo2);
51981
 
                                CEX(we0, vo0, we3, vo3);
51982
 
                                CEX(we0, vo0, we4, vo4);
51983
 
                                CEX(we0, vo0, we5, vo5);
51984
 
                                CEX(we1, vo1, we2, vo2);
51985
 
                                CEX(we1, vo1, we3, vo3);
51986
 
                                CEX(we1, vo1, we4, vo4);
51987
 
                                CEX(we1, vo1, we5, vo5);
51988
 
                                CEX(we2, vo2, we3, vo3);
51989
 
                                CEX(we2, vo2, we4, vo4);
51990
 
                                CEX(we2, vo2, we5, vo5);
51991
 
                                CEX(we3, vo3, we4, vo4);
51992
 
                                CEX(we3, vo3, we5, vo5);
51993
 
                                CEX(we4, vo4, we5, vo5);
51994
 
                        }
51995
 
                        {
51996
 
                                unsigned int vof;       /* Vertex offset value */
51997
 
                                unsigned int vwe;       /* Vertex weighting */
51998
 
                                
51999
 
                                vof = 0;                                /* First vertex offset is 0 */
52000
 
                                vwe = 65536 - we0;              /* Baricentric weighting */
52001
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
52002
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
52003
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
52004
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
52005
 
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
52006
 
                                ova5  = IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
52007
 
                                ova6  = IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
52008
 
                                ova7  = IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
52009
 
                                vof += vo0;                     /* Move to next vertex */
52010
 
                                vwe = we0 - we1;                /* Baricentric weighting */
52011
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
52012
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
52013
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
52014
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
52015
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
52016
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
52017
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
52018
 
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
52019
 
                                vof += vo1;                     /* Move to next vertex */
52020
 
                                vwe = we1 - we2;                /* Baricentric weighting */
52021
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
52022
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
52023
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
52024
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
52025
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
52026
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
52027
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
52028
 
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
52029
 
                                vof += vo2;                     /* Move to next vertex */
52030
 
                                vwe = we2 - we3;                /* Baricentric weighting */
52031
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
52032
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
52033
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
52034
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
52035
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
52036
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
52037
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
52038
 
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
52039
 
                                vof += vo3;                     /* Move to next vertex */
52040
 
                                vwe = we3 - we4;                /* Baricentric weighting */
52041
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
52042
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
52043
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
52044
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
52045
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
52046
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
52047
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
52048
 
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
52049
 
                                vof += vo4;                     /* Move to next vertex */
52050
 
                                vwe = we4 - we5;                /* Baricentric weighting */
52051
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
52052
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
52053
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
52054
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
52055
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
52056
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
52057
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
52058
 
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
52059
 
                                vof += vo5;                     /* Move to next vertex */
52060
 
                                vwe = we5;                              /* Baricentric weighting */
52061
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
52062
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
52063
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
52064
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
52065
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
52066
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
52067
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
52068
 
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
52069
 
                        }
52070
 
                }
52071
 
                {
52072
 
                        unsigned int oti;       /* Vertex offset value */
52073
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
52074
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
52075
 
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
52076
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
52077
 
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
52078
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
52079
 
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
52080
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
52081
 
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
52082
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
52083
 
                        oti = ((ova5 >> 16) & 0xffff);  /* Extract integer part of result */
52084
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
52085
 
                        oti = ((ova6 >> 16) & 0xffff);  /* Extract integer part of result */
52086
 
                        op0[6] = OT_E(ot6, oti);        /* Write result */
52087
 
                        oti = ((ova7 >> 16) & 0xffff);  /* Extract integer part of result */
52088
 
                        op0[7] = OT_E(ot7, oti);        /* Write result */
52089
 
                }
52090
 
        }
 
51046
        imdi_imp *p = (imdi_imp *)(s->impl);
 
51047
        unsigned short *ip0 = (unsigned short *)inp[0];
 
51048
        unsigned short *op0 = (unsigned short *)outp[0];
 
51049
        unsigned short *ep = ip0 + npix * 6 ;
 
51050
        pointer it0 = (pointer)p->in_tables[0];
 
51051
        pointer it1 = (pointer)p->in_tables[1];
 
51052
        pointer it2 = (pointer)p->in_tables[2];
 
51053
        pointer it3 = (pointer)p->in_tables[3];
 
51054
        pointer it4 = (pointer)p->in_tables[4];
 
51055
        pointer it5 = (pointer)p->in_tables[5];
 
51056
        pointer ot0 = (pointer)p->out_tables[0];
 
51057
        pointer ot1 = (pointer)p->out_tables[1];
 
51058
        pointer ot2 = (pointer)p->out_tables[2];
 
51059
        pointer ot3 = (pointer)p->out_tables[3];
 
51060
        pointer ot4 = (pointer)p->out_tables[4];
 
51061
        pointer ot5 = (pointer)p->out_tables[5];
 
51062
        pointer ot6 = (pointer)p->out_tables[6];
 
51063
        pointer ot7 = (pointer)p->out_tables[7];
 
51064
        pointer im_base = (pointer)p->im_table;
 
51065
 
 
51066
        for(;ip0 < ep; ip0 += 6, op0 += 8) {
 
51067
                unsigned int ova0;      /* Output value accumulator */
 
51068
                unsigned int ova1;      /* Output value accumulator */
 
51069
                unsigned int ova2;      /* Output value accumulator */
 
51070
                unsigned int ova3;      /* Output value accumulator */
 
51071
                unsigned int ova4;      /* Output value accumulator */
 
51072
                unsigned int ova5;      /* Output value accumulator */
 
51073
                unsigned int ova6;      /* Output value accumulator */
 
51074
                unsigned int ova7;      /* Output value accumulator */
 
51075
                {
 
51076
                        pointer imp;
 
51077
                        unsigned int we0;       /* Weighting value variable */
 
51078
                        unsigned int vo0;       /* Vertex offset variable */
 
51079
                        unsigned int we1;       /* Weighting value variable */
 
51080
                        unsigned int vo1;       /* Vertex offset variable */
 
51081
                        unsigned int we2;       /* Weighting value variable */
 
51082
                        unsigned int vo2;       /* Vertex offset variable */
 
51083
                        unsigned int we3;       /* Weighting value variable */
 
51084
                        unsigned int vo3;       /* Vertex offset variable */
 
51085
                        unsigned int we4;       /* Weighting value variable */
 
51086
                        unsigned int vo4;       /* Vertex offset variable */
 
51087
                        unsigned int we5;       /* Weighting value variable */
 
51088
                        unsigned int vo5;       /* Vertex offset variable */
 
51089
                        {
 
51090
                                unsigned int ti_i;      /* Interpolation index variable */
 
51091
 
 
51092
                                ti_i  = IT_IX(it0, ip0[0]);
 
51093
                                we0   = IT_WE(it0, ip0[0]);
 
51094
                                vo0   = IT_VO(it0, ip0[0]);
 
51095
                                ti_i += IT_IX(it1, ip0[1]);
 
51096
                                we1   = IT_WE(it1, ip0[1]);
 
51097
                                vo1   = IT_VO(it1, ip0[1]);
 
51098
                                ti_i += IT_IX(it2, ip0[2]);
 
51099
                                we2   = IT_WE(it2, ip0[2]);
 
51100
                                vo2   = IT_VO(it2, ip0[2]);
 
51101
                                ti_i += IT_IX(it3, ip0[3]);
 
51102
                                we3   = IT_WE(it3, ip0[3]);
 
51103
                                vo3   = IT_VO(it3, ip0[3]);
 
51104
                                ti_i += IT_IX(it4, ip0[4]);
 
51105
                                we4   = IT_WE(it4, ip0[4]);
 
51106
                                vo4   = IT_VO(it4, ip0[4]);
 
51107
                                ti_i += IT_IX(it5, ip0[5]);
 
51108
                                we5   = IT_WE(it5, ip0[5]);
 
51109
                                vo5   = IT_VO(it5, ip0[5]);
 
51110
 
 
51111
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
51112
 
 
51113
                                /* Sort weighting values and vertex offset values */
 
51114
                                CEX(we0, vo0, we1, vo1);
 
51115
                                CEX(we0, vo0, we2, vo2);
 
51116
                                CEX(we0, vo0, we3, vo3);
 
51117
                                CEX(we0, vo0, we4, vo4);
 
51118
                                CEX(we0, vo0, we5, vo5);
 
51119
                                CEX(we1, vo1, we2, vo2);
 
51120
                                CEX(we1, vo1, we3, vo3);
 
51121
                                CEX(we1, vo1, we4, vo4);
 
51122
                                CEX(we1, vo1, we5, vo5);
 
51123
                                CEX(we2, vo2, we3, vo3);
 
51124
                                CEX(we2, vo2, we4, vo4);
 
51125
                                CEX(we2, vo2, we5, vo5);
 
51126
                                CEX(we3, vo3, we4, vo4);
 
51127
                                CEX(we3, vo3, we5, vo5);
 
51128
                                CEX(we4, vo4, we5, vo5);
 
51129
                        }
 
51130
                        {
 
51131
                                unsigned int vof;       /* Vertex offset value */
 
51132
                                unsigned int vwe;       /* Vertex weighting */
 
51133
 
 
51134
                                vof = 0;                                /* First vertex offset is 0 */
 
51135
                                vwe = 65536 - we0;              /* Baricentric weighting */
 
51136
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
51137
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
51138
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
51139
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
51140
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
51141
                                ova5  = IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
51142
                                ova6  = IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
51143
                                ova7  = IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
 
51144
                                vof += vo0;                     /* Move to next vertex */
 
51145
                                vwe = we0 - we1;                /* Baricentric weighting */
 
51146
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
51147
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
51148
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
51149
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
51150
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
51151
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
51152
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
51153
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
 
51154
                                vof += vo1;                     /* Move to next vertex */
 
51155
                                vwe = we1 - we2;                /* Baricentric weighting */
 
51156
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
51157
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
51158
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
51159
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
51160
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
51161
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
51162
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
51163
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
 
51164
                                vof += vo2;                     /* Move to next vertex */
 
51165
                                vwe = we2 - we3;                /* Baricentric weighting */
 
51166
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
51167
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
51168
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
51169
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
51170
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
51171
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
51172
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
51173
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
 
51174
                                vof += vo3;                     /* Move to next vertex */
 
51175
                                vwe = we3 - we4;                /* Baricentric weighting */
 
51176
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
51177
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
51178
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
51179
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
51180
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
51181
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
51182
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
51183
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
 
51184
                                vof += vo4;                     /* Move to next vertex */
 
51185
                                vwe = we4 - we5;                /* Baricentric weighting */
 
51186
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
51187
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
51188
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
51189
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
51190
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
51191
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
51192
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
51193
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
 
51194
                                vof += vo5;                     /* Move to next vertex */
 
51195
                                vwe = we5;                              /* Baricentric weighting */
 
51196
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
51197
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
51198
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
51199
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
51200
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
51201
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
51202
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
51203
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
 
51204
                        }
 
51205
                }
 
51206
                {
 
51207
                        unsigned int oti;       /* Vertex offset value */
 
51208
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
51209
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
51210
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
 
51211
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
51212
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
 
51213
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
51214
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
 
51215
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
51216
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
 
51217
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
51218
                        oti = ((ova5 >> 16) & 0xffff);  /* Extract integer part of result */
 
51219
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
51220
                        oti = ((ova6 >> 16) & 0xffff);  /* Extract integer part of result */
 
51221
                        op0[6] = OT_E(ot6, oti);        /* Write result */
 
51222
                        oti = ((ova7 >> 16) & 0xffff);  /* Extract integer part of result */
 
51223
                        op0[7] = OT_E(ot7, oti);        /* Write result */
 
51224
                }
 
51225
        }
52091
51226
}
52092
51227
#undef IT_WE
52093
51228
#undef IT_VO
52101
51236
imdi_k145_gen(
52102
51237
genspec *g                      /* structure to be initialised */
52103
51238
) {
52104
 
        static unsigned char data[] = {
52105
 
                0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
52106
 
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
52107
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52108
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
52109
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
52110
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
52111
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
52112
 
                0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
52113
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
52114
 
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 
52115
 
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
52116
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52117
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52118
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52119
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52120
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
52121
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
52122
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
52123
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
52124
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
52125
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
52126
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
52127
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
52128
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
52129
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
52130
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
52131
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
52132
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
52133
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52134
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52135
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52136
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52137
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
52138
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
52139
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
52140
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
52141
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
52142
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
52143
 
                0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52144
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
52145
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
52146
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
52147
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
52148
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
52149
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
52150
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
52151
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
52152
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
52153
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52154
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
52155
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
52156
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x36, 0x5f, 0x38, 0x5f, 
52157
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
52158
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
52159
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
52160
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
52161
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
52162
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
52163
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
52164
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52165
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52166
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52167
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52168
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
52169
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x34, 
52170
 
                0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52171
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52172
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
52173
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
52174
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
52175
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
52176
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
52177
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
52178
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
52179
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
52180
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
52181
 
                0x00, 0xf0, 0x04, 0x08 
52182
 
        };      /* Structure image */
52183
 
        
52184
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
51239
        static unsigned char data[] = {
 
51240
                0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
51241
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
51242
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51243
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
51244
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
51245
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
51246
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
51247
                0x10, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
51248
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
51249
                0x06, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00,
 
51250
                0x06, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
51251
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51252
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51253
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51254
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51255
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
51256
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
51257
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
51258
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
51259
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
51260
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
51261
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
51262
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
51263
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
51264
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
51265
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
51266
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
51267
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
51268
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51269
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51270
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51271
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51272
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
51273
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
51274
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
51275
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
51276
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
51277
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
51278
                0x28, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51279
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
51280
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
51281
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
51282
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
51283
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
51284
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
51285
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
51286
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
51287
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
51288
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51289
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
51290
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
51291
                0x2c, 0xf3, 0xdc, 0xb7, 0x36, 0x5f, 0x38, 0x5f,
 
51292
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
51293
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
51294
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
51295
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
51296
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
51297
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
51298
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
51299
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51300
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51301
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51302
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51303
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
51304
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x34,
 
51305
                0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51306
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51307
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
51308
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
51309
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
51310
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
51311
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
51312
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
51313
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
51314
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
51315
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
51316
                0x00, 0xf0, 0x04, 0x08
 
51317
        };      /* Structure image */
 
51318
 
 
51319
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
52185
51320
}
52186
51321
 
52187
51322
static void
52188
51323
imdi_k145_tab(
52189
51324
tabspec *t                      /* structure to be initialised */
52190
51325
) {
52191
 
        static unsigned char data[] = {
52192
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
52193
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
52194
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
52195
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
52196
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
52197
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
52198
 
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 
52199
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
52200
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
52201
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52202
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
52203
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
52204
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
52205
 
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
52206
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
52207
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52208
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
52209
 
                0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
52210
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52211
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52212
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
52213
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
52214
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
52215
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
52216
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52217
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52218
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52219
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52220
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
52221
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
52222
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
52223
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
52224
 
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff 
52225
 
        };      /* Structure image */
52226
 
        
52227
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
51326
        static unsigned char data[] = {
 
51327
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
51328
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
51329
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
51330
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
51331
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
51332
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
51333
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
 
51334
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
51335
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
51336
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51337
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
51338
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
51339
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
51340
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
51341
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
51342
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51343
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
51344
                0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
51345
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51346
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51347
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
51348
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
51349
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
51350
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
51351
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51352
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51353
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51354
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51355
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
51356
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
51357
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
51358
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
51359
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff
 
51360
        };      /* Structure image */
 
51361
 
 
51362
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
52228
51363
}
52229
51364
 
52230
 
 
52231
 
 
52232
 
 
52233
 
 
52234
 
 
52235
51365
/* Integer Multi-Dimensional Interpolation */
52236
51366
/* Interpolation Kernel Code */
52237
51367
/* Generated by cgen */
52240
51370
 
52241
51371
/* see the Licence.txt file for licencing details.*/
52242
51372
 
52243
 
 
52244
51373
/*
52245
51374
   Interpolation kernel specs:
52246
51375
 
52347
51476
void **inp,             /* pointer to input pointers */
52348
51477
unsigned int npix       /* Number of pixels to process */
52349
51478
) {
52350
 
        imdi_imp *p = (imdi_imp *)(s->impl);
52351
 
        unsigned short *ip0 = (unsigned short *)inp[0];
52352
 
        unsigned short *op0 = (unsigned short *)outp[0];
52353
 
        unsigned short *ep = ip0 + npix * 7 ;
52354
 
        pointer it0 = (pointer)p->in_tables[0];
52355
 
        pointer it1 = (pointer)p->in_tables[1];
52356
 
        pointer it2 = (pointer)p->in_tables[2];
52357
 
        pointer it3 = (pointer)p->in_tables[3];
52358
 
        pointer it4 = (pointer)p->in_tables[4];
52359
 
        pointer it5 = (pointer)p->in_tables[5];
52360
 
        pointer it6 = (pointer)p->in_tables[6];
52361
 
        pointer ot0 = (pointer)p->out_tables[0];
52362
 
        pointer ot1 = (pointer)p->out_tables[1];
52363
 
        pointer ot2 = (pointer)p->out_tables[2];
52364
 
        pointer ot3 = (pointer)p->out_tables[3];
52365
 
        pointer ot4 = (pointer)p->out_tables[4];
52366
 
        pointer ot5 = (pointer)p->out_tables[5];
52367
 
        pointer ot6 = (pointer)p->out_tables[6];
52368
 
        pointer ot7 = (pointer)p->out_tables[7];
52369
 
        pointer im_base = (pointer)p->im_table;
52370
 
        
52371
 
        for(;ip0 < ep; ip0 += 7, op0 += 8) {
52372
 
                unsigned int ova0;      /* Output value accumulator */
52373
 
                unsigned int ova1;      /* Output value accumulator */
52374
 
                unsigned int ova2;      /* Output value accumulator */
52375
 
                unsigned int ova3;      /* Output value accumulator */
52376
 
                unsigned int ova4;      /* Output value accumulator */
52377
 
                unsigned int ova5;      /* Output value accumulator */
52378
 
                unsigned int ova6;      /* Output value accumulator */
52379
 
                unsigned int ova7;      /* Output value accumulator */
52380
 
                {
52381
 
                        pointer imp;
52382
 
                        unsigned int we0;       /* Weighting value variable */
52383
 
                        unsigned int vo0;       /* Vertex offset variable */
52384
 
                        unsigned int we1;       /* Weighting value variable */
52385
 
                        unsigned int vo1;       /* Vertex offset variable */
52386
 
                        unsigned int we2;       /* Weighting value variable */
52387
 
                        unsigned int vo2;       /* Vertex offset variable */
52388
 
                        unsigned int we3;       /* Weighting value variable */
52389
 
                        unsigned int vo3;       /* Vertex offset variable */
52390
 
                        unsigned int we4;       /* Weighting value variable */
52391
 
                        unsigned int vo4;       /* Vertex offset variable */
52392
 
                        unsigned int we5;       /* Weighting value variable */
52393
 
                        unsigned int vo5;       /* Vertex offset variable */
52394
 
                        unsigned int we6;       /* Weighting value variable */
52395
 
                        unsigned int vo6;       /* Vertex offset variable */
52396
 
                        {
52397
 
                                unsigned int ti_i;      /* Interpolation index variable */
52398
 
                                
52399
 
                                ti_i  = IT_IX(it0, ip0[0]);
52400
 
                                we0   = IT_WE(it0, ip0[0]);
52401
 
                                vo0   = IT_VO(it0, ip0[0]);
52402
 
                                ti_i += IT_IX(it1, ip0[1]);
52403
 
                                we1   = IT_WE(it1, ip0[1]);
52404
 
                                vo1   = IT_VO(it1, ip0[1]);
52405
 
                                ti_i += IT_IX(it2, ip0[2]);
52406
 
                                we2   = IT_WE(it2, ip0[2]);
52407
 
                                vo2   = IT_VO(it2, ip0[2]);
52408
 
                                ti_i += IT_IX(it3, ip0[3]);
52409
 
                                we3   = IT_WE(it3, ip0[3]);
52410
 
                                vo3   = IT_VO(it3, ip0[3]);
52411
 
                                ti_i += IT_IX(it4, ip0[4]);
52412
 
                                we4   = IT_WE(it4, ip0[4]);
52413
 
                                vo4   = IT_VO(it4, ip0[4]);
52414
 
                                ti_i += IT_IX(it5, ip0[5]);
52415
 
                                we5   = IT_WE(it5, ip0[5]);
52416
 
                                vo5   = IT_VO(it5, ip0[5]);
52417
 
                                ti_i += IT_IX(it6, ip0[6]);
52418
 
                                we6   = IT_WE(it6, ip0[6]);
52419
 
                                vo6   = IT_VO(it6, ip0[6]);
52420
 
                                
52421
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
52422
 
                                
52423
 
                                /* Sort weighting values and vertex offset values */
52424
 
                                CEX(we0, vo0, we1, vo1);
52425
 
                                CEX(we0, vo0, we2, vo2);
52426
 
                                CEX(we0, vo0, we3, vo3);
52427
 
                                CEX(we0, vo0, we4, vo4);
52428
 
                                CEX(we0, vo0, we5, vo5);
52429
 
                                CEX(we0, vo0, we6, vo6);
52430
 
                                CEX(we1, vo1, we2, vo2);
52431
 
                                CEX(we1, vo1, we3, vo3);
52432
 
                                CEX(we1, vo1, we4, vo4);
52433
 
                                CEX(we1, vo1, we5, vo5);
52434
 
                                CEX(we1, vo1, we6, vo6);
52435
 
                                CEX(we2, vo2, we3, vo3);
52436
 
                                CEX(we2, vo2, we4, vo4);
52437
 
                                CEX(we2, vo2, we5, vo5);
52438
 
                                CEX(we2, vo2, we6, vo6);
52439
 
                                CEX(we3, vo3, we4, vo4);
52440
 
                                CEX(we3, vo3, we5, vo5);
52441
 
                                CEX(we3, vo3, we6, vo6);
52442
 
                                CEX(we4, vo4, we5, vo5);
52443
 
                                CEX(we4, vo4, we6, vo6);
52444
 
                                CEX(we5, vo5, we6, vo6);
52445
 
                        }
52446
 
                        {
52447
 
                                unsigned int vof;       /* Vertex offset value */
52448
 
                                unsigned int vwe;       /* Vertex weighting */
52449
 
                                
52450
 
                                vof = 0;                                /* First vertex offset is 0 */
52451
 
                                vwe = 65536 - we0;              /* Baricentric weighting */
52452
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
52453
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
52454
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
52455
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
52456
 
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
52457
 
                                ova5  = IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
52458
 
                                ova6  = IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
52459
 
                                ova7  = IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
52460
 
                                vof += vo0;                     /* Move to next vertex */
52461
 
                                vwe = we0 - we1;                /* Baricentric weighting */
52462
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
52463
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
52464
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
52465
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
52466
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
52467
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
52468
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
52469
 
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
52470
 
                                vof += vo1;                     /* Move to next vertex */
52471
 
                                vwe = we1 - we2;                /* Baricentric weighting */
52472
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
52473
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
52474
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
52475
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
52476
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
52477
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
52478
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
52479
 
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
52480
 
                                vof += vo2;                     /* Move to next vertex */
52481
 
                                vwe = we2 - we3;                /* Baricentric weighting */
52482
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
52483
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
52484
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
52485
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
52486
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
52487
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
52488
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
52489
 
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
52490
 
                                vof += vo3;                     /* Move to next vertex */
52491
 
                                vwe = we3 - we4;                /* Baricentric weighting */
52492
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
52493
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
52494
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
52495
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
52496
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
52497
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
52498
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
52499
 
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
52500
 
                                vof += vo4;                     /* Move to next vertex */
52501
 
                                vwe = we4 - we5;                /* Baricentric weighting */
52502
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
52503
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
52504
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
52505
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
52506
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
52507
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
52508
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
52509
 
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
52510
 
                                vof += vo5;                     /* Move to next vertex */
52511
 
                                vwe = we5 - we6;                /* Baricentric weighting */
52512
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
52513
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
52514
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
52515
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
52516
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
52517
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
52518
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
52519
 
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
52520
 
                                vof += vo6;                     /* Move to next vertex */
52521
 
                                vwe = we6;                              /* Baricentric weighting */
52522
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
52523
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
52524
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
52525
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
52526
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
52527
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
52528
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
52529
 
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
52530
 
                        }
52531
 
                }
52532
 
                {
52533
 
                        unsigned int oti;       /* Vertex offset value */
52534
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
52535
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
52536
 
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
52537
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
52538
 
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
52539
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
52540
 
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
52541
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
52542
 
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
52543
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
52544
 
                        oti = ((ova5 >> 16) & 0xffff);  /* Extract integer part of result */
52545
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
52546
 
                        oti = ((ova6 >> 16) & 0xffff);  /* Extract integer part of result */
52547
 
                        op0[6] = OT_E(ot6, oti);        /* Write result */
52548
 
                        oti = ((ova7 >> 16) & 0xffff);  /* Extract integer part of result */
52549
 
                        op0[7] = OT_E(ot7, oti);        /* Write result */
52550
 
                }
52551
 
        }
 
51479
        imdi_imp *p = (imdi_imp *)(s->impl);
 
51480
        unsigned short *ip0 = (unsigned short *)inp[0];
 
51481
        unsigned short *op0 = (unsigned short *)outp[0];
 
51482
        unsigned short *ep = ip0 + npix * 7 ;
 
51483
        pointer it0 = (pointer)p->in_tables[0];
 
51484
        pointer it1 = (pointer)p->in_tables[1];
 
51485
        pointer it2 = (pointer)p->in_tables[2];
 
51486
        pointer it3 = (pointer)p->in_tables[3];
 
51487
        pointer it4 = (pointer)p->in_tables[4];
 
51488
        pointer it5 = (pointer)p->in_tables[5];
 
51489
        pointer it6 = (pointer)p->in_tables[6];
 
51490
        pointer ot0 = (pointer)p->out_tables[0];
 
51491
        pointer ot1 = (pointer)p->out_tables[1];
 
51492
        pointer ot2 = (pointer)p->out_tables[2];
 
51493
        pointer ot3 = (pointer)p->out_tables[3];
 
51494
        pointer ot4 = (pointer)p->out_tables[4];
 
51495
        pointer ot5 = (pointer)p->out_tables[5];
 
51496
        pointer ot6 = (pointer)p->out_tables[6];
 
51497
        pointer ot7 = (pointer)p->out_tables[7];
 
51498
        pointer im_base = (pointer)p->im_table;
 
51499
 
 
51500
        for(;ip0 < ep; ip0 += 7, op0 += 8) {
 
51501
                unsigned int ova0;      /* Output value accumulator */
 
51502
                unsigned int ova1;      /* Output value accumulator */
 
51503
                unsigned int ova2;      /* Output value accumulator */
 
51504
                unsigned int ova3;      /* Output value accumulator */
 
51505
                unsigned int ova4;      /* Output value accumulator */
 
51506
                unsigned int ova5;      /* Output value accumulator */
 
51507
                unsigned int ova6;      /* Output value accumulator */
 
51508
                unsigned int ova7;      /* Output value accumulator */
 
51509
                {
 
51510
                        pointer imp;
 
51511
                        unsigned int we0;       /* Weighting value variable */
 
51512
                        unsigned int vo0;       /* Vertex offset variable */
 
51513
                        unsigned int we1;       /* Weighting value variable */
 
51514
                        unsigned int vo1;       /* Vertex offset variable */
 
51515
                        unsigned int we2;       /* Weighting value variable */
 
51516
                        unsigned int vo2;       /* Vertex offset variable */
 
51517
                        unsigned int we3;       /* Weighting value variable */
 
51518
                        unsigned int vo3;       /* Vertex offset variable */
 
51519
                        unsigned int we4;       /* Weighting value variable */
 
51520
                        unsigned int vo4;       /* Vertex offset variable */
 
51521
                        unsigned int we5;       /* Weighting value variable */
 
51522
                        unsigned int vo5;       /* Vertex offset variable */
 
51523
                        unsigned int we6;       /* Weighting value variable */
 
51524
                        unsigned int vo6;       /* Vertex offset variable */
 
51525
                        {
 
51526
                                unsigned int ti_i;      /* Interpolation index variable */
 
51527
 
 
51528
                                ti_i  = IT_IX(it0, ip0[0]);
 
51529
                                we0   = IT_WE(it0, ip0[0]);
 
51530
                                vo0   = IT_VO(it0, ip0[0]);
 
51531
                                ti_i += IT_IX(it1, ip0[1]);
 
51532
                                we1   = IT_WE(it1, ip0[1]);
 
51533
                                vo1   = IT_VO(it1, ip0[1]);
 
51534
                                ti_i += IT_IX(it2, ip0[2]);
 
51535
                                we2   = IT_WE(it2, ip0[2]);
 
51536
                                vo2   = IT_VO(it2, ip0[2]);
 
51537
                                ti_i += IT_IX(it3, ip0[3]);
 
51538
                                we3   = IT_WE(it3, ip0[3]);
 
51539
                                vo3   = IT_VO(it3, ip0[3]);
 
51540
                                ti_i += IT_IX(it4, ip0[4]);
 
51541
                                we4   = IT_WE(it4, ip0[4]);
 
51542
                                vo4   = IT_VO(it4, ip0[4]);
 
51543
                                ti_i += IT_IX(it5, ip0[5]);
 
51544
                                we5   = IT_WE(it5, ip0[5]);
 
51545
                                vo5   = IT_VO(it5, ip0[5]);
 
51546
                                ti_i += IT_IX(it6, ip0[6]);
 
51547
                                we6   = IT_WE(it6, ip0[6]);
 
51548
                                vo6   = IT_VO(it6, ip0[6]);
 
51549
 
 
51550
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
51551
 
 
51552
                                /* Sort weighting values and vertex offset values */
 
51553
                                CEX(we0, vo0, we1, vo1);
 
51554
                                CEX(we0, vo0, we2, vo2);
 
51555
                                CEX(we0, vo0, we3, vo3);
 
51556
                                CEX(we0, vo0, we4, vo4);
 
51557
                                CEX(we0, vo0, we5, vo5);
 
51558
                                CEX(we0, vo0, we6, vo6);
 
51559
                                CEX(we1, vo1, we2, vo2);
 
51560
                                CEX(we1, vo1, we3, vo3);
 
51561
                                CEX(we1, vo1, we4, vo4);
 
51562
                                CEX(we1, vo1, we5, vo5);
 
51563
                                CEX(we1, vo1, we6, vo6);
 
51564
                                CEX(we2, vo2, we3, vo3);
 
51565
                                CEX(we2, vo2, we4, vo4);
 
51566
                                CEX(we2, vo2, we5, vo5);
 
51567
                                CEX(we2, vo2, we6, vo6);
 
51568
                                CEX(we3, vo3, we4, vo4);
 
51569
                                CEX(we3, vo3, we5, vo5);
 
51570
                                CEX(we3, vo3, we6, vo6);
 
51571
                                CEX(we4, vo4, we5, vo5);
 
51572
                                CEX(we4, vo4, we6, vo6);
 
51573
                                CEX(we5, vo5, we6, vo6);
 
51574
                        }
 
51575
                        {
 
51576
                                unsigned int vof;       /* Vertex offset value */
 
51577
                                unsigned int vwe;       /* Vertex weighting */
 
51578
 
 
51579
                                vof = 0;                                /* First vertex offset is 0 */
 
51580
                                vwe = 65536 - we0;              /* Baricentric weighting */
 
51581
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
51582
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
51583
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
51584
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
51585
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
51586
                                ova5  = IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
51587
                                ova6  = IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
51588
                                ova7  = IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
 
51589
                                vof += vo0;                     /* Move to next vertex */
 
51590
                                vwe = we0 - we1;                /* Baricentric weighting */
 
51591
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
51592
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
51593
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
51594
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
51595
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
51596
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
51597
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
51598
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
 
51599
                                vof += vo1;                     /* Move to next vertex */
 
51600
                                vwe = we1 - we2;                /* Baricentric weighting */
 
51601
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
51602
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
51603
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
51604
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
51605
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
51606
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
51607
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
51608
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
 
51609
                                vof += vo2;                     /* Move to next vertex */
 
51610
                                vwe = we2 - we3;                /* Baricentric weighting */
 
51611
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
51612
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
51613
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
51614
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
51615
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
51616
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
51617
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
51618
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
 
51619
                                vof += vo3;                     /* Move to next vertex */
 
51620
                                vwe = we3 - we4;                /* Baricentric weighting */
 
51621
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
51622
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
51623
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
51624
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
51625
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
51626
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
51627
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
51628
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
 
51629
                                vof += vo4;                     /* Move to next vertex */
 
51630
                                vwe = we4 - we5;                /* Baricentric weighting */
 
51631
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
51632
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
51633
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
51634
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
51635
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
51636
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
51637
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
51638
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
 
51639
                                vof += vo5;                     /* Move to next vertex */
 
51640
                                vwe = we5 - we6;                /* Baricentric weighting */
 
51641
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
51642
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
51643
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
51644
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
51645
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
51646
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
51647
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
51648
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
 
51649
                                vof += vo6;                     /* Move to next vertex */
 
51650
                                vwe = we6;                              /* Baricentric weighting */
 
51651
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
51652
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
51653
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
51654
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
51655
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
51656
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
51657
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
51658
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
 
51659
                        }
 
51660
                }
 
51661
                {
 
51662
                        unsigned int oti;       /* Vertex offset value */
 
51663
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
51664
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
51665
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
 
51666
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
51667
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
 
51668
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
51669
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
 
51670
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
51671
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
 
51672
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
51673
                        oti = ((ova5 >> 16) & 0xffff);  /* Extract integer part of result */
 
51674
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
51675
                        oti = ((ova6 >> 16) & 0xffff);  /* Extract integer part of result */
 
51676
                        op0[6] = OT_E(ot6, oti);        /* Write result */
 
51677
                        oti = ((ova7 >> 16) & 0xffff);  /* Extract integer part of result */
 
51678
                        op0[7] = OT_E(ot7, oti);        /* Write result */
 
51679
                }
 
51680
        }
52552
51681
}
52553
51682
#undef IT_WE
52554
51683
#undef IT_VO
52562
51691
imdi_k146_gen(
52563
51692
genspec *g                      /* structure to be initialised */
52564
51693
) {
52565
 
        static unsigned char data[] = {
52566
 
                0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
52567
 
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
52568
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52569
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
52570
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
52571
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
52572
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
52573
 
                0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
52574
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
52575
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
52576
 
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
52577
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52578
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52579
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52580
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52581
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
52582
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
52583
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
52584
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
52585
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
52586
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
52587
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
52588
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
52589
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
52590
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
52591
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
52592
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
52593
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
52594
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52595
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52596
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52597
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52598
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
52599
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
52600
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
52601
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
52602
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
52603
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
52604
 
                0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52605
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
52606
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
52607
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
52608
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
52609
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
52610
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
52611
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
52612
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
52613
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
52614
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52615
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
52616
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
52617
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x37, 0x5f, 0x38, 0x5f, 
52618
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
52619
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
52620
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
52621
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
52622
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
52623
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
52624
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
52625
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52626
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52627
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52628
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52629
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
52630
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x34, 
52631
 
                0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52632
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52633
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
52634
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
52635
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
52636
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
52637
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
52638
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
52639
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
52640
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
52641
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
52642
 
                0x00, 0xf0, 0x04, 0x08 
52643
 
        };      /* Structure image */
52644
 
        
52645
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
51694
        static unsigned char data[] = {
 
51695
                0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
51696
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
51697
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51698
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
51699
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
51700
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
51701
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
51702
                0x10, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
51703
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
51704
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
51705
                0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
51706
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51707
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51708
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51709
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51710
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
51711
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
51712
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
51713
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
51714
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
51715
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
51716
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
51717
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
51718
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
51719
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
51720
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
51721
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
51722
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
51723
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51724
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51725
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51726
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51727
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
51728
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
51729
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
51730
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
51731
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
51732
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
51733
                0x17, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51734
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
51735
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
51736
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
51737
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
51738
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
51739
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
51740
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
51741
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
51742
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
51743
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51744
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
51745
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
51746
                0x2c, 0xf3, 0xdc, 0xb7, 0x37, 0x5f, 0x38, 0x5f,
 
51747
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
51748
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
51749
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
51750
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
51751
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
51752
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
51753
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
51754
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51755
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51756
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51757
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51758
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
51759
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x34,
 
51760
                0x36, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51761
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51762
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
51763
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
51764
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
51765
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
51766
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
51767
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
51768
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
51769
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
51770
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
51771
                0x00, 0xf0, 0x04, 0x08
 
51772
        };      /* Structure image */
 
51773
 
 
51774
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
52646
51775
}
52647
51776
 
52648
51777
static void
52649
51778
imdi_k146_tab(
52650
51779
tabspec *t                      /* structure to be initialised */
52651
51780
) {
52652
 
        static unsigned char data[] = {
52653
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
52654
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
52655
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
52656
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
52657
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
52658
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
52659
 
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 
52660
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
52661
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
52662
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52663
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
52664
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
52665
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
52666
 
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
52667
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
52668
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52669
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
52670
 
                0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
52671
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52672
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52673
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
52674
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
52675
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
52676
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
52677
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52678
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52679
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52680
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
52681
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
52682
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
52683
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
52684
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
52685
 
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff 
52686
 
        };      /* Structure image */
52687
 
        
52688
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
51781
        static unsigned char data[] = {
 
51782
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
51783
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
51784
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
51785
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
51786
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
51787
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
51788
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
 
51789
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
51790
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
51791
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51792
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
51793
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
51794
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
51795
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
51796
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
51797
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51798
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
51799
                0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
51800
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51801
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51802
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
51803
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
51804
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
51805
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
51806
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51807
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51808
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51809
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
51810
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
51811
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
51812
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
51813
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
51814
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff
 
51815
        };      /* Structure image */
 
51816
 
 
51817
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
52689
51818
}
52690
51819
 
52691
 
 
52692
 
 
52693
 
 
52694
 
 
52695
 
 
52696
51820
/* Integer Multi-Dimensional Interpolation */
52697
51821
/* Interpolation Kernel Code */
52698
51822
/* Generated by cgen */
52701
51825
 
52702
51826
/* see the Licence.txt file for licencing details.*/
52703
51827
 
52704
 
 
52705
51828
/*
52706
51829
   Interpolation kernel specs:
52707
51830
 
52810
51933
void **inp,             /* pointer to input pointers */
52811
51934
unsigned int npix       /* Number of pixels to process */
52812
51935
) {
52813
 
        imdi_imp *p = (imdi_imp *)(s->impl);
52814
 
        unsigned short *ip0 = (unsigned short *)inp[0];
52815
 
        unsigned short *op0 = (unsigned short *)outp[0];
52816
 
        unsigned short *ep = ip0 + npix * 8 ;
52817
 
        pointer it0 = (pointer)p->in_tables[0];
52818
 
        pointer it1 = (pointer)p->in_tables[1];
52819
 
        pointer it2 = (pointer)p->in_tables[2];
52820
 
        pointer it3 = (pointer)p->in_tables[3];
52821
 
        pointer it4 = (pointer)p->in_tables[4];
52822
 
        pointer it5 = (pointer)p->in_tables[5];
52823
 
        pointer it6 = (pointer)p->in_tables[6];
52824
 
        pointer it7 = (pointer)p->in_tables[7];
52825
 
        pointer ot0 = (pointer)p->out_tables[0];
52826
 
        pointer ot1 = (pointer)p->out_tables[1];
52827
 
        pointer ot2 = (pointer)p->out_tables[2];
52828
 
        pointer ot3 = (pointer)p->out_tables[3];
52829
 
        pointer ot4 = (pointer)p->out_tables[4];
52830
 
        pointer ot5 = (pointer)p->out_tables[5];
52831
 
        pointer ot6 = (pointer)p->out_tables[6];
52832
 
        pointer ot7 = (pointer)p->out_tables[7];
52833
 
        pointer im_base = (pointer)p->im_table;
52834
 
        
52835
 
        for(;ip0 < ep; ip0 += 8, op0 += 8) {
52836
 
                unsigned int ova0;      /* Output value accumulator */
52837
 
                unsigned int ova1;      /* Output value accumulator */
52838
 
                unsigned int ova2;      /* Output value accumulator */
52839
 
                unsigned int ova3;      /* Output value accumulator */
52840
 
                unsigned int ova4;      /* Output value accumulator */
52841
 
                unsigned int ova5;      /* Output value accumulator */
52842
 
                unsigned int ova6;      /* Output value accumulator */
52843
 
                unsigned int ova7;      /* Output value accumulator */
52844
 
                {
52845
 
                        pointer imp;
52846
 
                        unsigned int we0;       /* Weighting value variable */
52847
 
                        unsigned int vo0;       /* Vertex offset variable */
52848
 
                        unsigned int we1;       /* Weighting value variable */
52849
 
                        unsigned int vo1;       /* Vertex offset variable */
52850
 
                        unsigned int we2;       /* Weighting value variable */
52851
 
                        unsigned int vo2;       /* Vertex offset variable */
52852
 
                        unsigned int we3;       /* Weighting value variable */
52853
 
                        unsigned int vo3;       /* Vertex offset variable */
52854
 
                        unsigned int we4;       /* Weighting value variable */
52855
 
                        unsigned int vo4;       /* Vertex offset variable */
52856
 
                        unsigned int we5;       /* Weighting value variable */
52857
 
                        unsigned int vo5;       /* Vertex offset variable */
52858
 
                        unsigned int we6;       /* Weighting value variable */
52859
 
                        unsigned int vo6;       /* Vertex offset variable */
52860
 
                        unsigned int we7;       /* Weighting value variable */
52861
 
                        unsigned int vo7;       /* Vertex offset variable */
52862
 
                        {
52863
 
                                unsigned int ti_i;      /* Interpolation index variable */
52864
 
                                
52865
 
                                ti_i  = IT_IX(it0, ip0[0]);
52866
 
                                we0   = IT_WE(it0, ip0[0]);
52867
 
                                vo0   = IT_VO(it0, ip0[0]);
52868
 
                                ti_i += IT_IX(it1, ip0[1]);
52869
 
                                we1   = IT_WE(it1, ip0[1]);
52870
 
                                vo1   = IT_VO(it1, ip0[1]);
52871
 
                                ti_i += IT_IX(it2, ip0[2]);
52872
 
                                we2   = IT_WE(it2, ip0[2]);
52873
 
                                vo2   = IT_VO(it2, ip0[2]);
52874
 
                                ti_i += IT_IX(it3, ip0[3]);
52875
 
                                we3   = IT_WE(it3, ip0[3]);
52876
 
                                vo3   = IT_VO(it3, ip0[3]);
52877
 
                                ti_i += IT_IX(it4, ip0[4]);
52878
 
                                we4   = IT_WE(it4, ip0[4]);
52879
 
                                vo4   = IT_VO(it4, ip0[4]);
52880
 
                                ti_i += IT_IX(it5, ip0[5]);
52881
 
                                we5   = IT_WE(it5, ip0[5]);
52882
 
                                vo5   = IT_VO(it5, ip0[5]);
52883
 
                                ti_i += IT_IX(it6, ip0[6]);
52884
 
                                we6   = IT_WE(it6, ip0[6]);
52885
 
                                vo6   = IT_VO(it6, ip0[6]);
52886
 
                                ti_i += IT_IX(it7, ip0[7]);
52887
 
                                we7   = IT_WE(it7, ip0[7]);
52888
 
                                vo7   = IT_VO(it7, ip0[7]);
52889
 
                                
52890
 
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
52891
 
                                
52892
 
                                /* Sort weighting values and vertex offset values */
52893
 
                                CEX(we0, vo0, we1, vo1);
52894
 
                                CEX(we0, vo0, we2, vo2);
52895
 
                                CEX(we0, vo0, we3, vo3);
52896
 
                                CEX(we0, vo0, we4, vo4);
52897
 
                                CEX(we0, vo0, we5, vo5);
52898
 
                                CEX(we0, vo0, we6, vo6);
52899
 
                                CEX(we0, vo0, we7, vo7);
52900
 
                                CEX(we1, vo1, we2, vo2);
52901
 
                                CEX(we1, vo1, we3, vo3);
52902
 
                                CEX(we1, vo1, we4, vo4);
52903
 
                                CEX(we1, vo1, we5, vo5);
52904
 
                                CEX(we1, vo1, we6, vo6);
52905
 
                                CEX(we1, vo1, we7, vo7);
52906
 
                                CEX(we2, vo2, we3, vo3);
52907
 
                                CEX(we2, vo2, we4, vo4);
52908
 
                                CEX(we2, vo2, we5, vo5);
52909
 
                                CEX(we2, vo2, we6, vo6);
52910
 
                                CEX(we2, vo2, we7, vo7);
52911
 
                                CEX(we3, vo3, we4, vo4);
52912
 
                                CEX(we3, vo3, we5, vo5);
52913
 
                                CEX(we3, vo3, we6, vo6);
52914
 
                                CEX(we3, vo3, we7, vo7);
52915
 
                                CEX(we4, vo4, we5, vo5);
52916
 
                                CEX(we4, vo4, we6, vo6);
52917
 
                                CEX(we4, vo4, we7, vo7);
52918
 
                                CEX(we5, vo5, we6, vo6);
52919
 
                                CEX(we5, vo5, we7, vo7);
52920
 
                                CEX(we6, vo6, we7, vo7);
52921
 
                        }
52922
 
                        {
52923
 
                                unsigned int vof;       /* Vertex offset value */
52924
 
                                unsigned int vwe;       /* Vertex weighting */
52925
 
                                
52926
 
                                vof = 0;                                /* First vertex offset is 0 */
52927
 
                                vwe = 65536 - we0;              /* Baricentric weighting */
52928
 
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
52929
 
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
52930
 
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
52931
 
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
52932
 
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
52933
 
                                ova5  = IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
52934
 
                                ova6  = IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
52935
 
                                ova7  = IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
52936
 
                                vof += vo0;                     /* Move to next vertex */
52937
 
                                vwe = we0 - we1;                /* Baricentric weighting */
52938
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
52939
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
52940
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
52941
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
52942
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
52943
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
52944
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
52945
 
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
52946
 
                                vof += vo1;                     /* Move to next vertex */
52947
 
                                vwe = we1 - we2;                /* Baricentric weighting */
52948
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
52949
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
52950
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
52951
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
52952
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
52953
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
52954
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
52955
 
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
52956
 
                                vof += vo2;                     /* Move to next vertex */
52957
 
                                vwe = we2 - we3;                /* Baricentric weighting */
52958
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
52959
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
52960
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
52961
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
52962
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
52963
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
52964
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
52965
 
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
52966
 
                                vof += vo3;                     /* Move to next vertex */
52967
 
                                vwe = we3 - we4;                /* Baricentric weighting */
52968
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
52969
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
52970
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
52971
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
52972
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
52973
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
52974
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
52975
 
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
52976
 
                                vof += vo4;                     /* Move to next vertex */
52977
 
                                vwe = we4 - we5;                /* Baricentric weighting */
52978
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
52979
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
52980
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
52981
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
52982
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
52983
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
52984
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
52985
 
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
52986
 
                                vof += vo5;                     /* Move to next vertex */
52987
 
                                vwe = we5 - we6;                /* Baricentric weighting */
52988
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
52989
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
52990
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
52991
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
52992
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
52993
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
52994
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
52995
 
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
52996
 
                                vof += vo6;                     /* Move to next vertex */
52997
 
                                vwe = we6 - we7;                /* Baricentric weighting */
52998
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
52999
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
53000
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
53001
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
53002
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
53003
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
53004
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
53005
 
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
53006
 
                                vof += vo7;                     /* Move to next vertex */
53007
 
                                vwe = we7;                              /* Baricentric weighting */
53008
 
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
53009
 
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
53010
 
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
53011
 
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
53012
 
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
53013
 
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
53014
 
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
53015
 
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
53016
 
                        }
53017
 
                }
53018
 
                {
53019
 
                        unsigned int oti;       /* Vertex offset value */
53020
 
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
53021
 
                        op0[0] = OT_E(ot0, oti);        /* Write result */
53022
 
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
53023
 
                        op0[1] = OT_E(ot1, oti);        /* Write result */
53024
 
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
53025
 
                        op0[2] = OT_E(ot2, oti);        /* Write result */
53026
 
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
53027
 
                        op0[3] = OT_E(ot3, oti);        /* Write result */
53028
 
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
53029
 
                        op0[4] = OT_E(ot4, oti);        /* Write result */
53030
 
                        oti = ((ova5 >> 16) & 0xffff);  /* Extract integer part of result */
53031
 
                        op0[5] = OT_E(ot5, oti);        /* Write result */
53032
 
                        oti = ((ova6 >> 16) & 0xffff);  /* Extract integer part of result */
53033
 
                        op0[6] = OT_E(ot6, oti);        /* Write result */
53034
 
                        oti = ((ova7 >> 16) & 0xffff);  /* Extract integer part of result */
53035
 
                        op0[7] = OT_E(ot7, oti);        /* Write result */
53036
 
                }
53037
 
        }
 
51936
        imdi_imp *p = (imdi_imp *)(s->impl);
 
51937
        unsigned short *ip0 = (unsigned short *)inp[0];
 
51938
        unsigned short *op0 = (unsigned short *)outp[0];
 
51939
        unsigned short *ep = ip0 + npix * 8 ;
 
51940
        pointer it0 = (pointer)p->in_tables[0];
 
51941
        pointer it1 = (pointer)p->in_tables[1];
 
51942
        pointer it2 = (pointer)p->in_tables[2];
 
51943
        pointer it3 = (pointer)p->in_tables[3];
 
51944
        pointer it4 = (pointer)p->in_tables[4];
 
51945
        pointer it5 = (pointer)p->in_tables[5];
 
51946
        pointer it6 = (pointer)p->in_tables[6];
 
51947
        pointer it7 = (pointer)p->in_tables[7];
 
51948
        pointer ot0 = (pointer)p->out_tables[0];
 
51949
        pointer ot1 = (pointer)p->out_tables[1];
 
51950
        pointer ot2 = (pointer)p->out_tables[2];
 
51951
        pointer ot3 = (pointer)p->out_tables[3];
 
51952
        pointer ot4 = (pointer)p->out_tables[4];
 
51953
        pointer ot5 = (pointer)p->out_tables[5];
 
51954
        pointer ot6 = (pointer)p->out_tables[6];
 
51955
        pointer ot7 = (pointer)p->out_tables[7];
 
51956
        pointer im_base = (pointer)p->im_table;
 
51957
 
 
51958
        for(;ip0 < ep; ip0 += 8, op0 += 8) {
 
51959
                unsigned int ova0;      /* Output value accumulator */
 
51960
                unsigned int ova1;      /* Output value accumulator */
 
51961
                unsigned int ova2;      /* Output value accumulator */
 
51962
                unsigned int ova3;      /* Output value accumulator */
 
51963
                unsigned int ova4;      /* Output value accumulator */
 
51964
                unsigned int ova5;      /* Output value accumulator */
 
51965
                unsigned int ova6;      /* Output value accumulator */
 
51966
                unsigned int ova7;      /* Output value accumulator */
 
51967
                {
 
51968
                        pointer imp;
 
51969
                        unsigned int we0;       /* Weighting value variable */
 
51970
                        unsigned int vo0;       /* Vertex offset variable */
 
51971
                        unsigned int we1;       /* Weighting value variable */
 
51972
                        unsigned int vo1;       /* Vertex offset variable */
 
51973
                        unsigned int we2;       /* Weighting value variable */
 
51974
                        unsigned int vo2;       /* Vertex offset variable */
 
51975
                        unsigned int we3;       /* Weighting value variable */
 
51976
                        unsigned int vo3;       /* Vertex offset variable */
 
51977
                        unsigned int we4;       /* Weighting value variable */
 
51978
                        unsigned int vo4;       /* Vertex offset variable */
 
51979
                        unsigned int we5;       /* Weighting value variable */
 
51980
                        unsigned int vo5;       /* Vertex offset variable */
 
51981
                        unsigned int we6;       /* Weighting value variable */
 
51982
                        unsigned int vo6;       /* Vertex offset variable */
 
51983
                        unsigned int we7;       /* Weighting value variable */
 
51984
                        unsigned int vo7;       /* Vertex offset variable */
 
51985
                        {
 
51986
                                unsigned int ti_i;      /* Interpolation index variable */
 
51987
 
 
51988
                                ti_i  = IT_IX(it0, ip0[0]);
 
51989
                                we0   = IT_WE(it0, ip0[0]);
 
51990
                                vo0   = IT_VO(it0, ip0[0]);
 
51991
                                ti_i += IT_IX(it1, ip0[1]);
 
51992
                                we1   = IT_WE(it1, ip0[1]);
 
51993
                                vo1   = IT_VO(it1, ip0[1]);
 
51994
                                ti_i += IT_IX(it2, ip0[2]);
 
51995
                                we2   = IT_WE(it2, ip0[2]);
 
51996
                                vo2   = IT_VO(it2, ip0[2]);
 
51997
                                ti_i += IT_IX(it3, ip0[3]);
 
51998
                                we3   = IT_WE(it3, ip0[3]);
 
51999
                                vo3   = IT_VO(it3, ip0[3]);
 
52000
                                ti_i += IT_IX(it4, ip0[4]);
 
52001
                                we4   = IT_WE(it4, ip0[4]);
 
52002
                                vo4   = IT_VO(it4, ip0[4]);
 
52003
                                ti_i += IT_IX(it5, ip0[5]);
 
52004
                                we5   = IT_WE(it5, ip0[5]);
 
52005
                                vo5   = IT_VO(it5, ip0[5]);
 
52006
                                ti_i += IT_IX(it6, ip0[6]);
 
52007
                                we6   = IT_WE(it6, ip0[6]);
 
52008
                                vo6   = IT_VO(it6, ip0[6]);
 
52009
                                ti_i += IT_IX(it7, ip0[7]);
 
52010
                                we7   = IT_WE(it7, ip0[7]);
 
52011
                                vo7   = IT_VO(it7, ip0[7]);
 
52012
 
 
52013
                                imp = im_base + IM_O(ti_i);             /* Compute interp. table entry pointer */
 
52014
 
 
52015
                                /* Sort weighting values and vertex offset values */
 
52016
                                CEX(we0, vo0, we1, vo1);
 
52017
                                CEX(we0, vo0, we2, vo2);
 
52018
                                CEX(we0, vo0, we3, vo3);
 
52019
                                CEX(we0, vo0, we4, vo4);
 
52020
                                CEX(we0, vo0, we5, vo5);
 
52021
                                CEX(we0, vo0, we6, vo6);
 
52022
                                CEX(we0, vo0, we7, vo7);
 
52023
                                CEX(we1, vo1, we2, vo2);
 
52024
                                CEX(we1, vo1, we3, vo3);
 
52025
                                CEX(we1, vo1, we4, vo4);
 
52026
                                CEX(we1, vo1, we5, vo5);
 
52027
                                CEX(we1, vo1, we6, vo6);
 
52028
                                CEX(we1, vo1, we7, vo7);
 
52029
                                CEX(we2, vo2, we3, vo3);
 
52030
                                CEX(we2, vo2, we4, vo4);
 
52031
                                CEX(we2, vo2, we5, vo5);
 
52032
                                CEX(we2, vo2, we6, vo6);
 
52033
                                CEX(we2, vo2, we7, vo7);
 
52034
                                CEX(we3, vo3, we4, vo4);
 
52035
                                CEX(we3, vo3, we5, vo5);
 
52036
                                CEX(we3, vo3, we6, vo6);
 
52037
                                CEX(we3, vo3, we7, vo7);
 
52038
                                CEX(we4, vo4, we5, vo5);
 
52039
                                CEX(we4, vo4, we6, vo6);
 
52040
                                CEX(we4, vo4, we7, vo7);
 
52041
                                CEX(we5, vo5, we6, vo6);
 
52042
                                CEX(we5, vo5, we7, vo7);
 
52043
                                CEX(we6, vo6, we7, vo7);
 
52044
                        }
 
52045
                        {
 
52046
                                unsigned int vof;       /* Vertex offset value */
 
52047
                                unsigned int vwe;       /* Vertex weighting */
 
52048
 
 
52049
                                vof = 0;                                /* First vertex offset is 0 */
 
52050
                                vwe = 65536 - we0;              /* Baricentric weighting */
 
52051
                                ova0  = IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
52052
                                ova1  = IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
52053
                                ova2  = IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
52054
                                ova3  = IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
52055
                                ova4  = IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
52056
                                ova5  = IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
52057
                                ova6  = IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
52058
                                ova7  = IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
 
52059
                                vof += vo0;                     /* Move to next vertex */
 
52060
                                vwe = we0 - we1;                /* Baricentric weighting */
 
52061
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
52062
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
52063
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
52064
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
52065
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
52066
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
52067
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
52068
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
 
52069
                                vof += vo1;                     /* Move to next vertex */
 
52070
                                vwe = we1 - we2;                /* Baricentric weighting */
 
52071
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
52072
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
52073
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
52074
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
52075
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
52076
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
52077
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
52078
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
 
52079
                                vof += vo2;                     /* Move to next vertex */
 
52080
                                vwe = we2 - we3;                /* Baricentric weighting */
 
52081
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
52082
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
52083
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
52084
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
52085
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
52086
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
52087
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
52088
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
 
52089
                                vof += vo3;                     /* Move to next vertex */
 
52090
                                vwe = we3 - we4;                /* Baricentric weighting */
 
52091
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
52092
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
52093
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
52094
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
52095
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
52096
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
52097
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
52098
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
 
52099
                                vof += vo4;                     /* Move to next vertex */
 
52100
                                vwe = we4 - we5;                /* Baricentric weighting */
 
52101
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
52102
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
52103
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
52104
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
52105
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
52106
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
52107
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
52108
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
 
52109
                                vof += vo5;                     /* Move to next vertex */
 
52110
                                vwe = we5 - we6;                /* Baricentric weighting */
 
52111
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
52112
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
52113
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
52114
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
52115
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
52116
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
52117
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
52118
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
 
52119
                                vof += vo6;                     /* Move to next vertex */
 
52120
                                vwe = we6 - we7;                /* Baricentric weighting */
 
52121
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
52122
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
52123
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
52124
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
52125
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
52126
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
52127
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
52128
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
 
52129
                                vof += vo7;                     /* Move to next vertex */
 
52130
                                vwe = we7;                              /* Baricentric weighting */
 
52131
                                ova0 += IM_FE(imp, vof, 0) * vwe;       /* Accumulate weighted output values */
 
52132
                                ova1 += IM_FE(imp, vof, 1) * vwe;       /* Accumulate weighted output values */
 
52133
                                ova2 += IM_FE(imp, vof, 2) * vwe;       /* Accumulate weighted output values */
 
52134
                                ova3 += IM_FE(imp, vof, 3) * vwe;       /* Accumulate weighted output values */
 
52135
                                ova4 += IM_FE(imp, vof, 4) * vwe;       /* Accumulate weighted output values */
 
52136
                                ova5 += IM_FE(imp, vof, 5) * vwe;       /* Accumulate weighted output values */
 
52137
                                ova6 += IM_FE(imp, vof, 6) * vwe;       /* Accumulate weighted output values */
 
52138
                                ova7 += IM_FE(imp, vof, 7) * vwe;       /* Accumulate weighted output values */
 
52139
                        }
 
52140
                }
 
52141
                {
 
52142
                        unsigned int oti;       /* Vertex offset value */
 
52143
                        oti = ((ova0 >> 16) & 0xffff);  /* Extract integer part of result */
 
52144
                        op0[0] = OT_E(ot0, oti);        /* Write result */
 
52145
                        oti = ((ova1 >> 16) & 0xffff);  /* Extract integer part of result */
 
52146
                        op0[1] = OT_E(ot1, oti);        /* Write result */
 
52147
                        oti = ((ova2 >> 16) & 0xffff);  /* Extract integer part of result */
 
52148
                        op0[2] = OT_E(ot2, oti);        /* Write result */
 
52149
                        oti = ((ova3 >> 16) & 0xffff);  /* Extract integer part of result */
 
52150
                        op0[3] = OT_E(ot3, oti);        /* Write result */
 
52151
                        oti = ((ova4 >> 16) & 0xffff);  /* Extract integer part of result */
 
52152
                        op0[4] = OT_E(ot4, oti);        /* Write result */
 
52153
                        oti = ((ova5 >> 16) & 0xffff);  /* Extract integer part of result */
 
52154
                        op0[5] = OT_E(ot5, oti);        /* Write result */
 
52155
                        oti = ((ova6 >> 16) & 0xffff);  /* Extract integer part of result */
 
52156
                        op0[6] = OT_E(ot6, oti);        /* Write result */
 
52157
                        oti = ((ova7 >> 16) & 0xffff);  /* Extract integer part of result */
 
52158
                        op0[7] = OT_E(ot7, oti);        /* Write result */
 
52159
                }
 
52160
        }
53038
52161
}
53039
52162
#undef IT_WE
53040
52163
#undef IT_VO
53048
52171
imdi_k147_gen(
53049
52172
genspec *g                      /* structure to be initialised */
53050
52173
) {
53051
 
        static unsigned char data[] = {
53052
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
53053
 
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
53054
 
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
53055
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
53056
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
53057
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
53058
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
53059
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
53060
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
53061
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
53062
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
53063
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
53064
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
53065
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
53066
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
53067
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
53068
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
53069
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
53070
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
53071
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
53072
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
53073
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
53074
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
53075
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
53076
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
53077
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
53078
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
53079
 
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
53080
 
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
53081
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
53082
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
53083
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
53084
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
53085
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
53086
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
53087
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
53088
 
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
53089
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
53090
 
                0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
53091
 
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68, 
53092
 
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47, 
53093
 
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e, 
53094
 
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08, 
53095
 
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08, 
53096
 
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7, 
53097
 
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7, 
53098
 
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08, 
53099
 
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65, 
53100
 
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
53101
 
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00, 
53102
 
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7, 
53103
 
                0x2c, 0xf3, 0xdc, 0xb7, 0x38, 0x5f, 0x38, 0x5f, 
53104
 
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f, 
53105
 
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08, 
53106
 
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00, 
53107
 
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf, 
53108
 
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08, 
53109
 
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7, 
53110
 
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7, 
53111
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
53112
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
53113
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
53114
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
53115
 
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf, 
53116
 
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x34, 
53117
 
                0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
53118
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
53119
 
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01, 
53120
 
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7, 
53121
 
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 
53122
 
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7, 
53123
 
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08, 
53124
 
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08, 
53125
 
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf, 
53126
 
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08, 
53127
 
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7, 
53128
 
                0x00, 0xf0, 0x04, 0x08 
53129
 
        };      /* Structure image */
53130
 
        
53131
 
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
 
52174
        static unsigned char data[] = {
 
52175
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
52176
                0x08, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
52177
                0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
52178
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
52179
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
52180
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
52181
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
52182
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
52183
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
52184
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
52185
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
52186
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
52187
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
52188
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
52189
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
52190
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
52191
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
52192
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
52193
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
52194
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
52195
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
52196
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
52197
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
52198
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
52199
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
52200
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
52201
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
52202
                0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
52203
                0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
52204
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
52205
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
52206
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
52207
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
52208
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
52209
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
52210
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
52211
                0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
52212
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
52213
                0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
52214
                0x43, 0x6f, 0x70, 0x79, 0x72, 0x69, 0x67, 0x68,
 
52215
                0x74, 0x20, 0x32, 0x30, 0x30, 0x34, 0x20, 0x47,
 
52216
                0x72, 0x61, 0x65, 0x6d, 0x65, 0x20, 0x57, 0x2e,
 
52217
                0x20, 0x47, 0x69, 0x6c, 0x6c, 0x00, 0x04, 0x08,
 
52218
                0x04, 0xad, 0xf2, 0xb7, 0xc5, 0x83, 0x04, 0x08,
 
52219
                0x50, 0xad, 0xf2, 0xb7, 0x6c, 0x6c, 0xdd, 0xb7,
 
52220
                0x34, 0xda, 0x83, 0xbf, 0xf6, 0x35, 0xf3, 0xb7,
 
52221
                0x8b, 0xca, 0xdd, 0xb7, 0xbb, 0x83, 0x04, 0x08,
 
52222
                0x31, 0x20, 0x4d, 0x6f, 0x6e, 0x20, 0x46, 0x65,
 
52223
                0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
52224
                0x00, 0x00, 0x00, 0x00, 0x94, 0x07, 0x00, 0x00,
 
52225
                0x4e, 0xcb, 0xdd, 0xb7, 0xfc, 0x79, 0xdd, 0xb7,
 
52226
                0x2c, 0xf3, 0xdc, 0xb7, 0x38, 0x5f, 0x38, 0x5f,
 
52227
                0x69, 0x31, 0x36, 0x5f, 0x69, 0x31, 0x36, 0x5f,
 
52228
                0x66, 0x00, 0x77, 0x01, 0x9b, 0x83, 0x04, 0x08,
 
52229
                0x38, 0x18, 0xf4, 0xb7, 0x00, 0x00, 0x00, 0x00,
 
52230
                0xac, 0xb1, 0xf2, 0xb7, 0xf8, 0xda, 0x83, 0xbf,
 
52231
                0xc9, 0x37, 0xf3, 0xb7, 0x40, 0x82, 0x04, 0x08,
 
52232
                0xb4, 0xda, 0x83, 0xbf, 0x58, 0xb1, 0xf2, 0xb7,
 
52233
                0x02, 0x00, 0x00, 0x00, 0x80, 0xb0, 0xdc, 0xb7,
 
52234
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
52235
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
52236
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
52237
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
52238
                0x00, 0x28, 0x6e, 0x6f, 0xb4, 0xda, 0x83, 0xbf,
 
52239
                0x69, 0x6d, 0x64, 0x69, 0x5f, 0x6b, 0x31, 0x34,
 
52240
                0x37, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
52241
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
52242
                0x00, 0x00, 0x00, 0x00, 0x8e, 0xff, 0x77, 0x01,
 
52243
                0x20, 0xdb, 0x83, 0xbf, 0x00, 0xb0, 0xf2, 0xb7,
 
52244
                0x9b, 0x83, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00,
 
52245
                0x1b, 0xfa, 0x83, 0xbf, 0xee, 0xb1, 0xec, 0xb7,
 
52246
                0x98, 0xc8, 0x04, 0x08, 0xe8, 0xf0, 0x04, 0x08,
 
52247
                0xc8, 0xda, 0x83, 0xbf, 0xdd, 0x84, 0x04, 0x08,
 
52248
                0xdc, 0x60, 0xef, 0xb7, 0x80, 0xdb, 0x83, 0xbf,
 
52249
                0xe8, 0xda, 0x83, 0xbf, 0xb3, 0xc8, 0x04, 0x08,
 
52250
                0x38, 0x18, 0xf4, 0xb7, 0xdc, 0x60, 0xef, 0xb7,
 
52251
                0x00, 0xf0, 0x04, 0x08
 
52252
        };      /* Structure image */
 
52253
 
 
52254
        memcpy(g, data, sizeof(data));  /* Initialise the structure */
53132
52255
}
53133
52256
 
53134
52257
static void
53135
52258
imdi_k147_tab(
53136
52259
tabspec *t                      /* structure to be initialised */
53137
52260
) {
53138
 
        static unsigned char data[] = {
53139
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
53140
 
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
53141
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
53142
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
53143
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
53144
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
53145
 
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 
53146
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
53147
 
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
53148
 
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
53149
 
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
53150
 
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
53151
 
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 
53152
 
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 
53153
 
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
53154
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
53155
 
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
53156
 
                0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 
53157
 
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
53158
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
53159
 
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 
53160
 
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 
53161
 
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 
53162
 
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 
53163
 
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
53164
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
53165
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
53166
 
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
53167
 
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
53168
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
53169
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
53170
 
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 
53171
 
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff 
53172
 
        };      /* Structure image */
53173
 
        
53174
 
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
 
52261
        static unsigned char data[] = {
 
52262
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
52263
                0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
52264
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
52265
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
52266
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
52267
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
52268
                0x20, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00,
 
52269
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
52270
                0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
52271
                0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
52272
                0x14, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
52273
                0x08, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
52274
                0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
 
52275
                0x04, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00,
 
52276
                0x04, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
52277
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
52278
                0x10, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
52279
                0x02, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00,
 
52280
                0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
52281
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
52282
                0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
 
52283
                0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00,
 
52284
                0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
 
52285
                0x06, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00,
 
52286
                0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
52287
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
52288
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
52289
                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 
52290
                0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
52291
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
52292
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
52293
                0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00,
 
52294
                0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff
 
52295
        };      /* Structure image */
 
52296
 
 
52297
        memcpy(t, data, sizeof(data));  /* Initialise the structure */
53175
52298
}
53176
 
 
53177
 
 
53178
 
 
53179
 
 
53180
 
 
53181