00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014 #define smallCode 1
00015
00016
#undef LH_DATA_IN_TYPE
00017
#undef LH_DATA_OUT_TYPE
00018
#undef LH_LUT_DATA_TYPE
00019
#undef LH_DATA_IN_COUNT
00020
#undef LH_DATA_SHR
00021
#undef LH_DATA_SHR_CORR
00022
#undef LH_LUT_DATA_SHR
00023
#undef LH_BIT_BREIT_INTERNAL
00024
#if LH_DATA_IN_SIZE_16
00025
#define LH_DATA_IN_TYPE LH_UINT16
00026
#else
00027 #define LH_DATA_IN_TYPE LH_UINT8
00028
#endif
00029
#if LH_DATA_OUT_SIZE_16
00030
#define LH_DATA_OUT_TYPE LH_UINT16
00031
#else
00032 #define LH_DATA_OUT_TYPE LH_UINT8
00033
#endif
00034
#if LH_LUT_DATA_SIZE_16
00035
#define LH_BIT_BREIT_INTERNAL 16
00036
#define LH_LUT_DATA_TYPE LH_UINT16
00037
#else
00038
#if LH_DATA_IN_SIZE_16
00039
#define LH_BIT_BREIT_INTERNAL 16
00040
#else
00041 #define LH_BIT_BREIT_INTERNAL 10
00042
#endif
00043 #define LH_LUT_DATA_TYPE LH_UINT8
00044
#endif
00045
00046
#if LH_DATA_IN_COUNT_4
00047
#define LH_DATA_IN_COUNT 4
00048
#else
00049 #define LH_DATA_IN_COUNT 3
00050
#endif
00051
00052 #define LH_BIT_MASKE_ADR (((1<<LH_BIT_BREIT_ADR)-1)<< (LH_BIT_BREIT_INTERNAL-LH_BIT_BREIT_ADR))
00053 #define LH_BIT_BREIT_SELEKTOR (LH_BIT_BREIT_INTERNAL-LH_BIT_BREIT_ADR)
00054 #define LH_BIT_MASKE_SELEKTOR ((1<<LH_BIT_BREIT_SELEKTOR)-1)
00055
00056 #define LH_ADR_BEREICH_SEL (1<<LH_BIT_BREIT_SELEKTOR)
00057
00058
#if LH_LUT_DATA_SIZE_16
00059
#define LH_DATA_SHR (16+LH_BIT_BREIT_SELEKTOR-LH_ADR_BREIT_AUS_LUT)
00060
#define LH_DATA_SHR_CORR 8
00061
#define LH_LUT_DATA_SHR 16
00062
#else
00063 #define LH_DATA_SHR (8+LH_BIT_BREIT_SELEKTOR-LH_ADR_BREIT_AUS_LUT)
00064 #define LH_LUT_DATA_SHR 8
00065
#endif
00066
00067
#if LH_DATA_IN_COUNT_4
00068
{
00069
#if smallCode
00070
00071
LH_UINT32 var_0_0_0_1;
00072
LH_UINT32 var_0_0_1_0;
00073
LH_UINT32 var_0_0_1_1;
00074
LH_UINT32 var_0_1_0_0;
00075
LH_UINT32 var_0_1_0_1;
00076
LH_UINT32 var_0_1_1_0;
00077
LH_UINT32 var_0_1_1_1;
00078
LH_UINT32 var_1_0_0_0;
00079
LH_UINT32 var_1_0_0_1;
00080
LH_UINT32 var_1_0_1_0;
00081
LH_UINT32 var_1_0_1_1;
00082
LH_UINT32 var_1_1_0_0;
00083
LH_UINT32 var_1_1_0_1;
00084
LH_UINT32 var_1_1_1_0;
00085
LH_UINT32 var_1_1_1_1;
00086
00087
00088
LH_UINT32 ein_regY;
00089
LH_UINT32 ein_regM;
00090
LH_UINT32 ein_regC;
00091
LH_UINT32 ein_regK;
00092
LH_DATA_IN_TYPE ein_cache[4];
00093
LH_LUT_DATA_TYPE * paNewVal0;
00094
LH_UINT32 ako0;
00095
LH_UINT32 ako1;
00096
LH_UINT32 ako2;
00097
LH_UINT32 ako3;
00098
00099
LH_UINT8 Mode;
00100
LH_UINT32 PixelCount, LineCount, i, j;
00101
LH_UINT8 LH_DATA_OUT_COUNT;
00102
long inputOffset,outputOffset;
00103
LH_DATA_IN_TYPE * input0 = (
LH_DATA_IN_TYPE *)calcParam->inputData[0];
00104
LH_DATA_IN_TYPE * input1 = (
LH_DATA_IN_TYPE *)calcParam->inputData[1];
00105
LH_DATA_IN_TYPE * input2 = (
LH_DATA_IN_TYPE *)calcParam->inputData[2];
00106
LH_DATA_IN_TYPE * input3 = (
LH_DATA_IN_TYPE *)calcParam->inputData[3];
00107
LH_DATA_IN_TYPE * input4 = (
LH_DATA_IN_TYPE *)calcParam->inputData[4];
00108
00109
LH_DATA_OUT_TYPE * output0 = (
LH_DATA_OUT_TYPE *)calcParam->outputData[0];
00110
LH_DATA_OUT_TYPE * output1 = (
LH_DATA_OUT_TYPE *)calcParam->outputData[1];
00111
LH_DATA_OUT_TYPE * output2 = (
LH_DATA_OUT_TYPE *)calcParam->outputData[2];
00112
LH_DATA_OUT_TYPE * output3 = (
LH_DATA_OUT_TYPE *)calcParam->outputData[3];
00113
LH_DATA_OUT_TYPE * output4 = (
LH_DATA_OUT_TYPE *)calcParam->outputData[4];
00114
00115
LH_UINT16 * My_InputLut = (
LH_UINT16 *)lutParam->inputLut;
00116
LH_LUT_DATA_TYPE * My_OutputLut = (
LH_LUT_DATA_TYPE *)lutParam->outputLut;
00117
LH_LUT_DATA_TYPE * My_ColorLut = (
LH_LUT_DATA_TYPE *)lutParam->colorLut;
00118
00119
LH_DATA_OUT_TYPE Mask = (
LH_DATA_OUT_TYPE)-1;
00120
00121
#ifdef DEBUG_OUTPUT
00122
CMError err =
noErr;
00123
#endif
00124
00125
LH_START_PROC(
LH_CALC_PROC_NAME)
00126
00127
if(
LH_DATA_OUT_COUNT_4 ){
00128
LH_DATA_OUT_COUNT = 4;
00129 }
else{
00130
LH_DATA_OUT_COUNT = 3;
00131 }
00132
00133 var_0_0_0_1 = (((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT);
00134 var_0_0_1_0 = (((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT);
00135 var_0_0_1_1 = (((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT);
00136 var_0_1_0_0 = (((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT);
00137 var_0_1_0_1 = (((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT);
00138 var_0_1_1_0 = (((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT);
00139 var_0_1_1_1 = (((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT);
00140 var_1_0_0_0 = (((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT);
00141 var_1_0_0_1 = (((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT);
00142 var_1_0_1_0 = (((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT);
00143 var_1_0_1_1 = (((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT);
00144 var_1_1_0_0 = (((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT);
00145 var_1_1_0_1 = (((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT);
00146 var_1_1_1_0 = (((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT);
00147 var_1_1_1_1 = (((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT);
00148
00149
#if LH_DATA_IN_SIZE_16
00150
inputOffset = (
long)calcParam->cmInputPixelOffset / 2;
00151
#else
00152
inputOffset = (
long)calcParam->cmInputPixelOffset;
00153
#endif
00154
#if LH_DATA_OUT_SIZE_16
00155
outputOffset = (
long)calcParam->cmOutputPixelOffset / 2;
00156
#else
00157
outputOffset = (
long)calcParam->cmOutputPixelOffset;
00158
#endif
00159
00160
if (calcParam->clearMask)
00161 Mask = 0;
00162 Mode =
LH_CALC_ENGINE_UNDEF_MODE;
00163
00164
00165
if ((calcParam->cmInputPixelOffset * calcParam->cmPixelPerLine == calcParam->cmInputBytesPerLine) && (calcParam->cmOutputPixelOffset * calcParam->cmPixelPerLine == calcParam->cmOutputBytesPerLine))
00166 {
00167 PixelCount = calcParam->cmPixelPerLine * calcParam->cmLineCount;
00168 LineCount = 1;
00169 }
00170
else
00171 {
00172 PixelCount = calcParam->cmPixelPerLine;
00173 LineCount = calcParam->cmLineCount;
00174 }
00175
if (calcParam->copyAlpha )
00176 {
00177 Mode =
LH_CALC_ENGINE_U_TO_U;
00178 }
00179
else
00180 {
00181
if (calcParam->clearMask)
00182 Mode =
LH_CALC_ENGINE_P_TO_U;
00183
else
00184 Mode =
LH_CALC_ENGINE_P_TO_P;
00185 }
00186
00187 j = 0;
00188
while (LineCount)
00189 {
00190 i = PixelCount;
00191
while (i)
00192 {
00193
#if LH_LUT_DATA_SIZE_16
00194
#if LH_DATA_IN_SIZE_16 || LH_DATA_OUT_SIZE_16
00195
register LH_UINT32 ko;
00196
#endif
00197
#if LH_DATA_IN_SIZE_16
00198
register LH_DATA_IN_TYPE aValIn;
00199
#endif
00200
#if LH_DATA_OUT_SIZE_16
00201
register LH_UINT32 aVal;
00202
#endif
00203
#if LH_DATA_IN_SIZE_16
00204
aValIn = (ein_cache[0]=*input0) - ( *input0 >> (
LH_ADR_BREIT_EIN_LUT ));
00205 ko = aValIn & ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT ))-1 );
00206 aValIn = (aValIn >> ( 16-
LH_ADR_BREIT_EIN_LUT )) + ( 0 <<
LH_ADR_BREIT_EIN_LUT );
00207 ein_regC = ( My_InputLut[aValIn] * ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT )) - ko ) + My_InputLut[aValIn +1] * ko ) >>( 16-
LH_ADR_BREIT_EIN_LUT );
00208
00209 aValIn = (ein_cache[1]=*input1) - ( *input1 >> (
LH_ADR_BREIT_EIN_LUT ));
00210 ko = aValIn & ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT ))-1 );
00211 aValIn = (aValIn >> ( 16-
LH_ADR_BREIT_EIN_LUT )) + ( 1 <<
LH_ADR_BREIT_EIN_LUT );
00212 ein_regM = ( My_InputLut[aValIn] * ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT )) - ko ) + My_InputLut[aValIn +1] * ko ) >> ( 16-
LH_ADR_BREIT_EIN_LUT );
00213
00214 aValIn = (ein_cache[2]=*input2) - ( *input2 >> (
LH_ADR_BREIT_EIN_LUT ));
00215 ko = aValIn & ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT ))-1 );
00216 aValIn = (aValIn >> ( 16-
LH_ADR_BREIT_EIN_LUT )) + ( 2 <<
LH_ADR_BREIT_EIN_LUT );
00217 ein_regY = ( My_InputLut[aValIn] * ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT )) - ko ) + My_InputLut[aValIn +1] * ko ) >> ( 16-
LH_ADR_BREIT_EIN_LUT );
00218
00219 aValIn = (ein_cache[3]=*input3) - ( *input3 >> (
LH_ADR_BREIT_EIN_LUT ));
00220 ko = aValIn & ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT ))-1 );
00221 aValIn = (aValIn >> ( 16-
LH_ADR_BREIT_EIN_LUT )) + ( 3 <<
LH_ADR_BREIT_EIN_LUT );
00222 ein_regK = ( My_InputLut[aValIn] * ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT )) - ko ) + My_InputLut[aValIn +1] * ko ) >> ( 16-
LH_ADR_BREIT_EIN_LUT );
00223
#else
00224
ein_regC = My_InputLut[(ein_cache[0]=*input0) + ( 0 <<
LH_ADR_BREIT_EIN_LUT )];
00225 ein_regM = My_InputLut[(ein_cache[1]=*input1) + ( 1 <<
LH_ADR_BREIT_EIN_LUT )];
00226 ein_regY = My_InputLut[(ein_cache[2]=*input2) + ( 2 <<
LH_ADR_BREIT_EIN_LUT )];
00227 ein_regK = My_InputLut[(ein_cache[3]=*input3) + ( 3 <<
LH_ADR_BREIT_EIN_LUT )];
00228
#endif
00229
#else
00230
#if LH_DATA_IN_SIZE_16
00231
register LH_DATA_IN_TYPE aValIn;
00232
register LH_UINT32 ko;
00233 aValIn = (ein_cache[0]=*input0) - ( *input0 >> (
LH_ADR_BREIT_EIN_LUT ));
00234 ko = aValIn & ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT ))-1 );
00235 aValIn = (aValIn >> ( 16-
LH_ADR_BREIT_EIN_LUT )) + ( 0 <<
LH_ADR_BREIT_EIN_LUT );
00236 ein_regC = ( My_InputLut[aValIn] * ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT )) - ko ) + My_InputLut[aValIn +1] * ko ) >>( 10-
LH_ADR_BREIT_EIN_LUT );
00237
00238 aValIn = (ein_cache[1]=*input1) - ( *input1 >> (
LH_ADR_BREIT_EIN_LUT ));
00239 ko = aValIn & ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT ))-1 );
00240 aValIn = (aValIn >> ( 16-
LH_ADR_BREIT_EIN_LUT )) + ( 1 <<
LH_ADR_BREIT_EIN_LUT );
00241 ein_regM = ( My_InputLut[aValIn] * ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT )) - ko ) + My_InputLut[aValIn +1] * ko ) >> ( 10-
LH_ADR_BREIT_EIN_LUT );
00242
00243 aValIn = (ein_cache[2]=*input2) - ( *input2 >> (
LH_ADR_BREIT_EIN_LUT ));
00244 ko = aValIn & ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT ))-1 );
00245 aValIn = (aValIn >> ( 16-
LH_ADR_BREIT_EIN_LUT )) + ( 2 <<
LH_ADR_BREIT_EIN_LUT );
00246 ein_regY = ( My_InputLut[aValIn] * ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT )) - ko ) + My_InputLut[aValIn +1] * ko ) >> ( 10-
LH_ADR_BREIT_EIN_LUT );
00247
00248 aValIn = (ein_cache[3]=*input3) - ( *input3 >> (
LH_ADR_BREIT_EIN_LUT ));
00249 ko = aValIn & ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT ))-1 );
00250 aValIn = (aValIn >> ( 16-
LH_ADR_BREIT_EIN_LUT )) + ( 3 <<
LH_ADR_BREIT_EIN_LUT );
00251 ein_regK = ( My_InputLut[aValIn] * ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT )) - ko ) + My_InputLut[aValIn +1] * ko ) >> ( 10-
LH_ADR_BREIT_EIN_LUT );
00252
00253
00254
00255
00256
#else
00257
ein_regC = My_InputLut[(ein_cache[0]=*input0) + ( 0 <<
LH_ADR_BREIT_EIN_LUT )];
00258 ein_regM = My_InputLut[(ein_cache[1]=*input1) + ( 1 <<
LH_ADR_BREIT_EIN_LUT )];
00259 ein_regY = My_InputLut[(ein_cache[2]=*input2) + ( 2 <<
LH_ADR_BREIT_EIN_LUT )];
00260 ein_regK = My_InputLut[(ein_cache[3]=*input3) + ( 3 <<
LH_ADR_BREIT_EIN_LUT )];
00261
#endif
00262
#endif
00263
paNewVal0 = (
LH_LUT_DATA_TYPE *)My_ColorLut +
00264 ((((((((ein_regC &
LH_BIT_MASKE_ADR) <<
LH_BIT_BREIT_ADR) +
00265 (ein_regM &
LH_BIT_MASKE_ADR)) <<
LH_BIT_BREIT_ADR) +
00266 (ein_regY &
LH_BIT_MASKE_ADR))>> (
LH_BIT_BREIT_SELEKTOR-
LH_BIT_BREIT_ADR)) +
00267 (ein_regK >>
LH_BIT_BREIT_SELEKTOR))*
LH_DATA_OUT_COUNT);
00268 ein_regC &=
LH_BIT_MASKE_SELEKTOR;
00269 ein_regM &=
LH_BIT_MASKE_SELEKTOR;
00270 ein_regY &=
LH_BIT_MASKE_SELEKTOR;
00271 ein_regK &=
LH_BIT_MASKE_SELEKTOR;
00272
if (ein_regY >= ein_regC)
00273 {
00274
if( ein_regM >= ein_regC )
00275 {
00276
if( ein_regY >= ein_regM )
00277 {
00278
if( ein_regC >= ein_regK )
00279 {
00280 ako0 =
LH_ADR_BEREICH_SEL - ein_regY;
00281 ako1 = ein_regY - ein_regM;
00282 ako2 = ein_regM - ein_regC;
00283 ako3 = ein_regC - ein_regK;
00284
00285 ein_regC = var_0_0_1_0;
00286 ein_regM = var_0_1_1_0;
00287 ein_regY = var_1_1_1_0;
00288
00289 }
00290
else if(ein_regM >= ein_regK )
00291 {
00292 ako0 =
LH_ADR_BEREICH_SEL - ein_regY;
00293 ako1 = ein_regY - ein_regM;
00294 ako2 = ein_regM - ein_regK;
00295 ako3 = ein_regK - ein_regC;
00296
00297 ein_regK = ein_regC;
00298 ein_regC = var_0_0_1_0;
00299 ein_regM = var_0_1_1_0;
00300 ein_regY = var_0_1_1_1;
00301
00302 }
00303
else if(ein_regY >= ein_regK )
00304 {
00305 ako0 =
LH_ADR_BEREICH_SEL - ein_regY;
00306 ako1 = ein_regY - ein_regK;
00307 ako2 = ein_regK - ein_regM;
00308 ako3 = ein_regM - ein_regC;
00309
00310 ein_regK = ein_regC;
00311 ein_regC = var_0_0_1_0;
00312 ein_regM = var_0_0_1_1;
00313 ein_regY = var_0_1_1_1;
00314
00315 }
00316
else{
00317 ako0 =
LH_ADR_BEREICH_SEL - ein_regK;
00318 ako1 = ein_regK - ein_regY;
00319 ako2 = ein_regY - ein_regM;
00320 ako3 = ein_regM - ein_regC;
00321
00322 ein_regK = ein_regC;
00323 ein_regC = var_0_0_0_1;
00324 ein_regM = var_0_0_1_1;
00325 ein_regY = var_0_1_1_1;
00326
00327 }
00328 }
00329
else
00330 {
00331
if( ein_regC >= ein_regK )
00332 {
00333 ako0 =
LH_ADR_BEREICH_SEL - ein_regM;
00334 ako1 = ein_regM - ein_regY;
00335 ako2 = ein_regY - ein_regC;
00336 ako3 = ein_regC - ein_regK;
00337
00338 ein_regC = var_0_1_0_0;
00339 ein_regM = var_0_1_1_0;
00340 ein_regY = var_1_1_1_0;
00341
00342 }
00343
else if(ein_regY >= ein_regK )
00344 {
00345 ako0 =
LH_ADR_BEREICH_SEL - ein_regM;
00346 ako1 = ein_regM - ein_regY;
00347 ako2 = ein_regY - ein_regK;
00348 ako3 = ein_regK - ein_regC;
00349
00350 ein_regK = ein_regC;
00351 ein_regC = var_0_1_0_0;
00352 ein_regM = var_0_1_1_0;
00353 ein_regY = var_0_1_1_1;
00354
00355 }
00356
else if(ein_regM >= ein_regK )
00357 {
00358 ako0 =
LH_ADR_BEREICH_SEL - ein_regM;
00359 ako1 = ein_regM - ein_regK;
00360 ako2 = ein_regK - ein_regY;
00361 ako3 = ein_regY - ein_regC;
00362
00363 ein_regK = ein_regC;
00364 ein_regC = var_0_1_0_0;
00365 ein_regM = var_0_1_0_1;
00366 ein_regY = var_0_1_1_1;
00367
00368 }
00369
else
00370 {
00371 ako0 =
LH_ADR_BEREICH_SEL - ein_regK;
00372 ako1 = ein_regK - ein_regM;
00373 ako2 = ein_regM - ein_regY;
00374 ako3 = ein_regY - ein_regC;
00375
00376 ein_regK = ein_regC;
00377 ein_regC = var_0_0_0_1;
00378 ein_regM = var_0_1_0_1;
00379 ein_regY = var_0_1_1_1;
00380
00381 }
00382 }
00383 }
00384
else
00385 {
00386
if( ein_regM >= ein_regK )
00387 {
00388 ako0 =
LH_ADR_BEREICH_SEL - ein_regY;
00389 ako1 = ein_regY - ein_regC;
00390 ako2 = ein_regC - ein_regM;
00391 ako3 = ein_regM - ein_regK;
00392
00393 ein_regC = var_0_0_1_0;
00394 ein_regM = var_1_0_1_0;
00395 ein_regY = var_1_1_1_0;
00396
00397 }
00398
else if(ein_regC >= ein_regK )
00399 {
00400 ako0 =
LH_ADR_BEREICH_SEL - ein_regY;
00401 ako1 = ein_regY - ein_regC;
00402 ako2 = ein_regC - ein_regK;
00403 ako3 = ein_regK - ein_regM;
00404
00405 ein_regK = ein_regM;
00406 ein_regC = var_0_0_1_0;
00407 ein_regM = var_1_0_1_0;
00408 ein_regY = var_1_0_1_1;
00409
00410 }
00411
else if(ein_regY >= ein_regK )
00412 {
00413 ako0 =
LH_ADR_BEREICH_SEL - ein_regY;
00414 ako1 = ein_regY - ein_regK;
00415 ako2 = ein_regK - ein_regC;
00416 ako3 = ein_regC - ein_regM;
00417
00418 ein_regK = ein_regM;
00419 ein_regC = var_0_0_1_0;
00420 ein_regM = var_0_0_1_1;
00421 ein_regY = var_1_0_1_1;
00422
00423 }
00424
else
00425 {
00426 ako0 =
LH_ADR_BEREICH_SEL - ein_regK;
00427 ako1 = ein_regK - ein_regY;
00428 ako2 = ein_regY - ein_regC;
00429 ako3 = ein_regC - ein_regM;
00430
00431 ein_regK = ein_regM;
00432 ein_regC = var_0_0_0_1;
00433 ein_regM = var_0_0_1_1;
00434 ein_regY = var_1_0_1_1;
00435
00436 }
00437 }
00438 }
00439
else
00440 {
00441
if( ein_regM >= ein_regC )
00442 {
00443
if( ein_regY >= ein_regK )
00444 {
00445 ako0 =
LH_ADR_BEREICH_SEL - ein_regM;
00446 ako1 = ein_regM - ein_regC;
00447 ako2 = ein_regC - ein_regY;
00448 ako3 = ein_regY - ein_regK;
00449
00450 ein_regC = var_0_1_0_0;
00451 ein_regM = var_1_1_0_0;
00452 ein_regY = var_1_1_1_0;
00453
00454 }
00455
else if(ein_regC >= ein_regK )
00456 {
00457 ako0 =
LH_ADR_BEREICH_SEL - ein_regM;
00458 ako1 = ein_regM - ein_regC;
00459 ako2 = ein_regC - ein_regK;
00460 ako3 = ein_regK - ein_regY;
00461
00462 ein_regK = ein_regY;
00463 ein_regC = var_0_1_0_0;
00464 ein_regM = var_1_1_0_0;
00465 ein_regY = var_1_1_0_1;
00466
00467 }
00468
else if(ein_regM >= ein_regK )
00469 {
00470 ako0 =
LH_ADR_BEREICH_SEL - ein_regM;
00471 ako1 = ein_regM - ein_regK;
00472 ako2 = ein_regK - ein_regC;
00473 ako3 = ein_regC - ein_regY;
00474
00475 ein_regK = ein_regY;
00476 ein_regC = var_0_1_0_0;
00477 ein_regM = var_0_1_0_1;
00478 ein_regY = var_1_1_0_1;
00479
00480 }
00481
else
00482 {
00483 ako0 =
LH_ADR_BEREICH_SEL - ein_regK;
00484 ako1 = ein_regK - ein_regM;
00485 ako2 = ein_regM - ein_regC;
00486 ako3 = ein_regC - ein_regY;
00487
00488 ein_regK = ein_regY;
00489 ein_regC = var_0_0_0_1;
00490 ein_regM = var_0_1_0_1;
00491 ein_regY = var_1_1_0_1;
00492
00493 }
00494 }
00495
else
00496 {
00497
if( ein_regY >= ein_regM )
00498 {
00499
if( ein_regM >= ein_regK )
00500 {
00501 ako0 =
LH_ADR_BEREICH_SEL - ein_regC;
00502 ako1 = ein_regC - ein_regY;
00503 ako2 = ein_regY - ein_regM;
00504 ako3 = ein_regM - ein_regK;
00505
00506 ein_regC = var_1_0_0_0;
00507 ein_regM = var_1_0_1_0;
00508 ein_regY = var_1_1_1_0;
00509
00510 }
00511
else if(ein_regY >= ein_regK )
00512 {
00513 ako0 =
LH_ADR_BEREICH_SEL - ein_regC;
00514 ako1 = ein_regC - ein_regY;
00515 ako2 = ein_regY - ein_regK;
00516 ako3 = ein_regK - ein_regM;
00517
00518 ein_regK = ein_regM;
00519 ein_regC = var_1_0_0_0;
00520 ein_regM = var_1_0_1_0;
00521 ein_regY = var_1_0_1_1;
00522
00523 }
00524
else if(ein_regC >= ein_regK )
00525 {
00526 ako0 =
LH_ADR_BEREICH_SEL - ein_regC;
00527 ako1 = ein_regC - ein_regK;
00528 ako2 = ein_regK - ein_regY;
00529 ako3 = ein_regY - ein_regM;
00530
00531 ein_regK = ein_regM;
00532 ein_regC = var_1_0_0_0;
00533 ein_regM = var_1_0_0_1;
00534 ein_regY = var_1_0_1_1;
00535
00536 }
00537
else
00538 {
00539 ako0 =
LH_ADR_BEREICH_SEL - ein_regK;
00540 ako1 = ein_regK - ein_regC;
00541 ako2 = ein_regC - ein_regY;
00542 ako3 = ein_regY - ein_regM;
00543
00544 ein_regK = ein_regM;
00545 ein_regC = var_0_0_0_1;
00546 ein_regM = var_1_0_0_1;
00547 ein_regY = var_1_0_1_1;
00548
00549 }
00550 }
00551
else if( ein_regY >= ein_regK )
00552 {
00553 ako0 =
LH_ADR_BEREICH_SEL - ein_regC;
00554 ako1 = ein_regC - ein_regM;
00555 ako2 = ein_regM - ein_regY;
00556 ako3 = ein_regY - ein_regK;
00557
00558 ein_regC = var_1_0_0_0;
00559 ein_regM = var_1_1_0_0;
00560 ein_regY = var_1_1_1_0;
00561
00562 }
00563
else if(ein_regM >= ein_regK )
00564 {
00565 ako0 =
LH_ADR_BEREICH_SEL - ein_regC;
00566 ako1 = ein_regC - ein_regM;
00567 ako2 = ein_regM - ein_regK;
00568 ako3 = ein_regK - ein_regY;
00569
00570 ein_regK = ein_regY;
00571 ein_regC = var_1_0_0_0;
00572 ein_regM = var_1_1_0_0;
00573 ein_regY = var_1_1_0_1;
00574
00575 }
00576
else
00577 {
00578
if(ein_regC >= ein_regK )
00579 {
00580 ako0 =
LH_ADR_BEREICH_SEL - ein_regC;
00581 ako1 = ein_regC - ein_regK;
00582 ako2 = ein_regK - ein_regM;
00583 ako3 = ein_regM - ein_regY;
00584
00585 ein_regK = ein_regY;
00586 ein_regC = var_1_0_0_0;
00587 ein_regM = var_1_0_0_1;
00588 ein_regY = var_1_1_0_1;
00589
00590 }
00591
else
00592 {
00593 ako0 =
LH_ADR_BEREICH_SEL - ein_regK;
00594 ako1 = ein_regK - ein_regC;
00595 ako2 = ein_regC - ein_regM;
00596 ako3 = ein_regM - ein_regY;
00597
00598 ein_regK = ein_regY;
00599 ein_regC = var_0_0_0_1;
00600 ein_regM = var_1_0_0_1;
00601 ein_regY = var_1_1_0_1;
00602
00603 }
00604 }
00605 }
00606 }
00607
00608
#if LH_LUT_DATA_SIZE_16
00609
#if LH_DATA_OUT_SIZE_16
00610
00611 aVal = ( ako0 * paNewVal0[0] +
00612 ako1 * paNewVal0[ein_regC + 0] +
00613 ako2 * paNewVal0[ein_regM + 0] +
00614 ako3 * paNewVal0[ein_regY + 0] +
00615 ein_regK * paNewVal0[var_1_1_1_1 + 0] );
00616 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
00617 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
00618 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
00619 aVal = (aVal >> (
LH_DATA_SHR )) + ( 0 <<
LH_ADR_BREIT_AUS_LUT );
00620 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
00621
00622 aVal = ( ako0 * paNewVal0[1] +
00623 ako1 * paNewVal0[ein_regC + 1] +
00624 ako2 * paNewVal0[ein_regM + 1] +
00625 ako3 * paNewVal0[ein_regY + 1] +
00626 ein_regK * paNewVal0[var_1_1_1_1 + 1] );
00627 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
00628 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
00629 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
00630 aVal = (aVal >> (
LH_DATA_SHR )) + ( 1 <<
LH_ADR_BREIT_AUS_LUT );
00631 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
00632
00633 aVal = ( ako0 * paNewVal0[2] +
00634 ako1 * paNewVal0[ein_regC + 2] +
00635 ako2 * paNewVal0[ein_regM + 2] +
00636 ako3 * paNewVal0[ein_regY + 2] +
00637 ein_regK * paNewVal0[var_1_1_1_1 + 2] );
00638 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
00639 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
00640 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
00641 aVal = (aVal >> (
LH_DATA_SHR )) + ( 2 <<
LH_ADR_BREIT_AUS_LUT );
00642 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
00643
00644
if(
LH_DATA_OUT_COUNT_4 ){
00645 aVal = ( ako0 * paNewVal0[3] +
00646 ako1 * paNewVal0[ein_regC + 3] +
00647 ako2 * paNewVal0[ein_regM + 3] +
00648 ako3 * paNewVal0[ein_regY + 3] +
00649 ein_regK * paNewVal0[var_1_1_1_1 + 3] );
00650 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
00651 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
00652 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
00653 aVal = (aVal >> (
LH_DATA_SHR )) + ( 3 <<
LH_ADR_BREIT_AUS_LUT );
00654 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
00655 }
00656
00657
#else
00658
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
00659 ako1 * paNewVal0[ein_regC + 0] +
00660 ako2 * paNewVal0[ein_regM + 0] +
00661 ako3 * paNewVal0[ein_regY + 0] +
00662 ein_regK * paNewVal0[var_1_1_1_1 + 0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
00663 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
00664 ako1 * paNewVal0[ein_regC + 1] +
00665 ako2 * paNewVal0[ein_regM + 1] +
00666 ako3 * paNewVal0[ein_regY + 1] +
00667 ein_regK * paNewVal0[var_1_1_1_1 + 1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
00668 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
00669 ako1 * paNewVal0[ein_regC + 2] +
00670 ako2 * paNewVal0[ein_regM + 2] +
00671 ako3 * paNewVal0[ein_regY + 2] +
00672 ein_regK * paNewVal0[var_1_1_1_1 + 2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
00673
if(
LH_DATA_OUT_COUNT_4 ){
00674 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
00675 ako1 * paNewVal0[ein_regC + 3] +
00676 ako2 * paNewVal0[ein_regM + 3] +
00677 ako3 * paNewVal0[ein_regY + 3] +
00678 ein_regK * paNewVal0[var_1_1_1_1 + 3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
00679 }
00680
#endif
00681
00682
#else
00683
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
00684 ako1 * paNewVal0[ein_regC + 0] +
00685 ako2 * paNewVal0[ein_regM + 0] +
00686 ako3 * paNewVal0[ein_regY + 0] +
00687 ein_regK * paNewVal0[var_1_1_1_1 + 0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)];
00688 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
00689 ako1 * paNewVal0[ein_regC + 1] +
00690 ako2 * paNewVal0[ein_regM + 1] +
00691 ako3 * paNewVal0[ein_regY + 1] +
00692 ein_regK * paNewVal0[var_1_1_1_1 + 1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)];
00693 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
00694 ako1 * paNewVal0[ein_regC + 2] +
00695 ako2 * paNewVal0[ein_regM + 2] +
00696 ako3 * paNewVal0[ein_regY + 2] +
00697 ein_regK * paNewVal0[var_1_1_1_1 + 2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)];
00698
if(
LH_DATA_OUT_COUNT_4 ){
00699 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
00700 ako1 * paNewVal0[ein_regC + 3] +
00701 ako2 * paNewVal0[ein_regM + 3] +
00702 ako3 * paNewVal0[ein_regY + 3] +
00703 ein_regK * paNewVal0[var_1_1_1_1 + 3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)];
00704 }
00705
#endif
00706
00707
#if LH_DATA_OUT_SIZE_16 && ! LH_LUT_DATA_SIZE_16
00708
*output0 |= (*output0 << 8);
00709 *output1 |= (*output1 << 8);
00710 *output2 |= (*output2 << 8);
00711
if(
LH_DATA_OUT_COUNT_4 ){
00712 *output3 |= (*output3 << 8);
00713 }
00714
#endif
00715
00716
if (Mode ==
LH_CALC_ENGINE_P_TO_P)
00717 {
00718
while (--i)
00719 {
00720 input0 += inputOffset;
00721 input1 += inputOffset;
00722 input2 += inputOffset;
00723 input3 += inputOffset;
00724 output0 += outputOffset;
00725 output1 += outputOffset;
00726 output2 += outputOffset;
00727
if(
LH_DATA_OUT_COUNT_4 ){
00728 output3 += outputOffset;
00729 }
00730
00731
if ((*input0 ^ ein_cache[0]) || (*input1 ^ ein_cache[1]) || (*input2 ^ ein_cache[2]) || (*input3 ^ ein_cache[3]))
00732 {
00733
break;
00734 }
00735 *output0 = output0[-outputOffset];
00736 *output1 = output1[-outputOffset];
00737 *output2 = output2[-outputOffset];
00738
if(
LH_DATA_OUT_COUNT_4 ){
00739 *output3 = output3[-outputOffset];
00740 }
00741 }
00742 }
00743
else if (Mode ==
LH_CALC_ENGINE_P_TO_U)
00744 {
00745
if(
LH_DATA_OUT_COUNT_4 ){
00746 *output4 &= Mask;
00747 }
else{
00748 *output3 &= Mask;
00749 }
00750
while (--i)
00751 {
00752 input0 += inputOffset;
00753 input1 += inputOffset;
00754 input2 += inputOffset;
00755 input3 += inputOffset;
00756 output0 += outputOffset;
00757 output1 += outputOffset;
00758 output2 += outputOffset;
00759 output3 += outputOffset;
00760
if(
LH_DATA_OUT_COUNT_4 ){
00761 output4 += outputOffset;
00762 }
00763
if ((*input0 ^ ein_cache[0]) || (*input1 ^ ein_cache[1]) || (*input2 ^ ein_cache[2]) || (*input3 ^ ein_cache[3]))
00764 {
00765
break;
00766 }
00767 *output0 = output0[-outputOffset];
00768 *output1 = output1[-outputOffset];
00769 *output2 = output2[-outputOffset];
00770
if(
LH_DATA_OUT_COUNT_4 ){
00771 *output3 = output3[-outputOffset];
00772 *output4 &= Mask;
00773 }
else{
00774 *output3 &= Mask;
00775 }
00776 }
00777 }
00778
else
00779 {
00780
if(
LH_DATA_OUT_COUNT_4 ){
00781 *output4 = (
LH_DATA_OUT_TYPE)*input4;
00782 }
else{
00783 *output3 = (
LH_DATA_OUT_TYPE)*input4;
00784 }
00785
while (--i)
00786 {
00787 input0 += inputOffset;
00788 input1 += inputOffset;
00789 input2 += inputOffset;
00790 input3 += inputOffset;
00791 input4 += inputOffset;
00792
00793 output0 += outputOffset;
00794 output1 += outputOffset;
00795 output2 += outputOffset;
00796 output3 += outputOffset;
00797
if(
LH_DATA_OUT_COUNT_4 ){
00798 output4 += outputOffset;
00799 }
00800
if ((*input0 ^ ein_cache[0]) || (*input1 ^ ein_cache[1]) || (*input2 ^ ein_cache[2]) || (*input3 ^ ein_cache[3]))
00801 {
00802
break;
00803 }
00804 *output0 = output0[-outputOffset];
00805 *output1 = output1[-outputOffset];
00806 *output2 = output2[-outputOffset];
00807
if(
LH_DATA_OUT_COUNT_4 ){
00808 *output3 = output3[-outputOffset];
00809 *output4 = (
LH_DATA_OUT_TYPE)*input4;
00810 }
else{
00811 *output3 = (
LH_DATA_OUT_TYPE)*input4;
00812 }
00813 }
00814 }
00815 }
00816
if (--LineCount)
00817 {
00818 j++;
00819 input0 = (
LH_DATA_IN_TYPE *)((
LH_UINT8 *)calcParam->inputData[0] + j * calcParam->cmInputBytesPerLine);
00820 input1 = (
LH_DATA_IN_TYPE *)((
LH_UINT8 *)calcParam->inputData[1] + j * calcParam->cmInputBytesPerLine);
00821 input2 = (
LH_DATA_IN_TYPE *)((
LH_UINT8 *)calcParam->inputData[2] + j * calcParam->cmInputBytesPerLine);
00822 input3 = (
LH_DATA_IN_TYPE *)((
LH_UINT8 *)calcParam->inputData[3] + j * calcParam->cmInputBytesPerLine);
00823 input4 = (
LH_DATA_IN_TYPE *)((
LH_UINT8 *)calcParam->inputData[4] + j * calcParam->cmInputBytesPerLine);
00824
00825 output0 = (
LH_DATA_OUT_TYPE *)((
LH_UINT8 *)calcParam->outputData[0] + j * calcParam->cmOutputBytesPerLine);
00826 output1 = (
LH_DATA_OUT_TYPE *)((
LH_UINT8 *)calcParam->outputData[1] + j * calcParam->cmOutputBytesPerLine);
00827 output2 = (
LH_DATA_OUT_TYPE *)((
LH_UINT8 *)calcParam->outputData[2] + j * calcParam->cmOutputBytesPerLine);
00828 output3 = (
LH_DATA_OUT_TYPE *)((
LH_UINT8 *)calcParam->outputData[3] + j * calcParam->cmOutputBytesPerLine);
00829
if(
LH_DATA_OUT_COUNT_4 ){
00830 output4 = (
LH_DATA_OUT_TYPE *)((
LH_UINT8 *)calcParam->outputData[4] + j * calcParam->cmOutputBytesPerLine);
00831 }
00832 }
00833 }
00834
LH_END_PROC(
LH_CALC_PROC_NAME)
00835
return 0;
00836
00837
#else
00838
00839
LH_UINT32 ein_regY;
00840
LH_UINT32 ein_regM;
00841
LH_UINT32 ein_regC;
00842
LH_UINT32 ein_regK;
00843
LH_LUT_DATA_TYPE * paNewVal0;
00844
LH_UINT32 ako0;
00845
LH_UINT32 ako1;
00846
LH_UINT32 ako2;
00847
LH_UINT32 ako3;
00848
00849
LH_UINT8 Mode;
00850
LH_UINT32 PixelCount, LineCount, i, j;
00851
LH_UINT8 LH_DATA_OUT_COUNT;
00852
long inputOffset,outputOffset;
00853
LH_DATA_IN_TYPE * input0 = (
LH_DATA_IN_TYPE *)calcParam->inputData[0];
00854
LH_DATA_IN_TYPE * input1 = (
LH_DATA_IN_TYPE *)calcParam->inputData[1];
00855
LH_DATA_IN_TYPE * input2 = (
LH_DATA_IN_TYPE *)calcParam->inputData[2];
00856
LH_DATA_IN_TYPE * input3 = (
LH_DATA_IN_TYPE *)calcParam->inputData[3];
00857
LH_DATA_IN_TYPE * input4 = (
LH_DATA_IN_TYPE *)calcParam->inputData[4];
00858
00859
LH_DATA_OUT_TYPE * output0 = (
LH_DATA_OUT_TYPE *)calcParam->outputData[0];
00860
LH_DATA_OUT_TYPE * output1 = (
LH_DATA_OUT_TYPE *)calcParam->outputData[1];
00861
LH_DATA_OUT_TYPE * output2 = (
LH_DATA_OUT_TYPE *)calcParam->outputData[2];
00862
LH_DATA_OUT_TYPE * output3 = (
LH_DATA_OUT_TYPE *)calcParam->outputData[3];
00863
LH_DATA_OUT_TYPE * output4 = (
LH_DATA_OUT_TYPE *)calcParam->outputData[4];
00864
00865
LH_UINT16 * My_InputLut = (
LH_UINT16 *)lutParam->inputLut;
00866
LH_LUT_DATA_TYPE * My_OutputLut = (
LH_LUT_DATA_TYPE *)lutParam->outputLut;
00867
LH_LUT_DATA_TYPE * My_ColorLut = (
LH_LUT_DATA_TYPE *)lutParam->colorLut;
00868
00869
LH_DATA_OUT_TYPE Mask = (
LH_DATA_OUT_TYPE)-1;
00870
00871
#ifdef DEBUG_OUTPUT
00872
CMError err =
noErr;
00873
#endif
00874
LH_START_PROC(
LH_CALC_PROC_NAME)
00875
00876
if(
LH_DATA_OUT_COUNT_4 ){
00877
LH_DATA_OUT_COUNT = 4;
00878 }
else{
00879
LH_DATA_OUT_COUNT = 3;
00880 }
00881
#if LH_DATA_IN_SIZE_16
00882
inputOffset = (
long)calcParam->cmInputPixelOffset / 2;
00883
#else
00884
inputOffset = (
long)calcParam->cmInputPixelOffset;
00885
#endif
00886
#if LH_DATA_OUT_SIZE_16
00887
outputOffset = (
long)calcParam->cmOutputPixelOffset / 2;
00888
#else
00889
outputOffset = (
long)calcParam->cmOutputPixelOffset;
00890
#endif
00891
00892
if (calcParam->clearMask)
00893 Mask = 0;
00894 Mode =
LH_CALC_ENGINE_UNDEF_MODE;
00895
00896
00897
if ((calcParam->cmInputPixelOffset * calcParam->cmPixelPerLine == calcParam->cmInputBytesPerLine) && (calcParam->cmOutputPixelOffset * calcParam->cmPixelPerLine == calcParam->cmOutputBytesPerLine))
00898 {
00899 PixelCount = calcParam->cmPixelPerLine * calcParam->cmLineCount;
00900 LineCount = 1;
00901 }
00902
else
00903 {
00904 PixelCount = calcParam->cmPixelPerLine;
00905 LineCount = calcParam->cmLineCount;
00906 }
00907
if (calcParam->copyAlpha )
00908 {
00909 Mode =
LH_CALC_ENGINE_U_TO_U;
00910 }
00911
else
00912 {
00913
if (calcParam->clearMask)
00914 Mode =
LH_CALC_ENGINE_P_TO_U;
00915
else
00916 Mode =
LH_CALC_ENGINE_P_TO_P;
00917 }
00918
00919 j = 0;
00920
while (LineCount)
00921 {
00922 i = PixelCount;
00923
while (i)
00924 {
00925
#if LH_LUT_DATA_SIZE_16
00926
#if LH_DATA_IN_SIZE_16 || LH_DATA_OUT_SIZE_16
00927
register LH_UINT32 ko;
00928
#endif
00929
#if LH_DATA_IN_SIZE_16
00930
register LH_DATA_IN_TYPE aValIn;
00931
#endif
00932
#if LH_DATA_OUT_SIZE_16
00933
register LH_UINT32 aVal;
00934
#endif
00935
#if LH_DATA_IN_SIZE_16
00936
aValIn = (ein_cache[0]=*input0) - ( *input0 >> (
LH_ADR_BREIT_EIN_LUT ));
00937 ko = aValIn & ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT ))-1 );
00938 aValIn = (aValIn >> ( 16-
LH_ADR_BREIT_EIN_LUT )) + ( 0 <<
LH_ADR_BREIT_EIN_LUT );
00939 ein_regC = ( My_InputLut[aValIn] * ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT )) - ko ) + My_InputLut[aValIn +1] * ko ) >>( 16-
LH_ADR_BREIT_EIN_LUT );
00940
00941 aValIn = (ein_cache[1]=*input1) - ( *input1 >> (
LH_ADR_BREIT_EIN_LUT ));
00942 ko = aValIn & ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT ))-1 );
00943 aValIn = (aValIn >> ( 16-
LH_ADR_BREIT_EIN_LUT )) + ( 1 <<
LH_ADR_BREIT_EIN_LUT );
00944 ein_regM = ( My_InputLut[aValIn] * ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT )) - ko ) + My_InputLut[aValIn +1] * ko ) >> ( 16-
LH_ADR_BREIT_EIN_LUT );
00945
00946 aValIn = (ein_cache[2]=*input2) - ( *input2 >> (
LH_ADR_BREIT_EIN_LUT ));
00947 ko = aValIn & ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT ))-1 );
00948 aValIn = (aValIn >> ( 16-
LH_ADR_BREIT_EIN_LUT )) + ( 2 <<
LH_ADR_BREIT_EIN_LUT );
00949 ein_regY = ( My_InputLut[aValIn] * ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT )) - ko ) + My_InputLut[aValIn +1] * ko ) >> ( 16-
LH_ADR_BREIT_EIN_LUT );
00950
00951 aValIn = (ein_cache[3]=*input3) - ( *input3 >> (
LH_ADR_BREIT_EIN_LUT ));
00952 ko = aValIn & ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT ))-1 );
00953 aValIn = (aValIn >> ( 16-
LH_ADR_BREIT_EIN_LUT )) + ( 3 <<
LH_ADR_BREIT_EIN_LUT );
00954 ein_regK = ( My_InputLut[aValIn] * ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT )) - ko ) + My_InputLut[aValIn +1] * ko ) >> ( 16-
LH_ADR_BREIT_EIN_LUT );
00955
#else
00956
ein_regC = My_InputLut[(ein_cache[0]=*input0) + ( 0 <<
LH_ADR_BREIT_EIN_LUT )];
00957 ein_regM = My_InputLut[(ein_cache[1]=*input1) + ( 1 <<
LH_ADR_BREIT_EIN_LUT )];
00958 ein_regY = My_InputLut[(ein_cache[2]=*input2) + ( 2 <<
LH_ADR_BREIT_EIN_LUT )];
00959 ein_regK = My_InputLut[(ein_cache[3]=*input3) + ( 3 <<
LH_ADR_BREIT_EIN_LUT )];
00960
#endif
00961
#else
00962
#if LH_DATA_IN_SIZE_16
00963
register LH_DATA_IN_TYPE aValIn;
00964
register LH_UINT32 ko;
00965 aValIn = (ein_cache[0]=*input0) - ( *input0 >> (
LH_ADR_BREIT_EIN_LUT ));
00966 ko = aValIn & ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT ))-1 );
00967 aValIn = (aValIn >> ( 16-
LH_ADR_BREIT_EIN_LUT )) + ( 0 <<
LH_ADR_BREIT_EIN_LUT );
00968 ein_regC = ( My_InputLut[aValIn] * ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT )) - ko ) + My_InputLut[aValIn +1] * ko ) >>( 10-
LH_ADR_BREIT_EIN_LUT );
00969
00970 aValIn = (ein_cache[1]=*input1) - ( *input1 >> (
LH_ADR_BREIT_EIN_LUT ));
00971 ko = aValIn & ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT ))-1 );
00972 aValIn = (aValIn >> ( 16-
LH_ADR_BREIT_EIN_LUT )) + ( 1 <<
LH_ADR_BREIT_EIN_LUT );
00973 ein_regM = ( My_InputLut[aValIn] * ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT )) - ko ) + My_InputLut[aValIn +1] * ko ) >> ( 10-
LH_ADR_BREIT_EIN_LUT );
00974
00975 aValIn = (ein_cache[2]=*input2) - ( *input2 >> (
LH_ADR_BREIT_EIN_LUT ));
00976 ko = aValIn & ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT ))-1 );
00977 aValIn = (aValIn >> ( 16-
LH_ADR_BREIT_EIN_LUT )) + ( 2 <<
LH_ADR_BREIT_EIN_LUT );
00978 ein_regY = ( My_InputLut[aValIn] * ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT )) - ko ) + My_InputLut[aValIn +1] * ko ) >> ( 10-
LH_ADR_BREIT_EIN_LUT );
00979
00980 aValIn = (ein_cache[3]=*input3) - ( *input3 >> (
LH_ADR_BREIT_EIN_LUT ));
00981 ko = aValIn & ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT ))-1 );
00982 aValIn = (aValIn >> ( 16-
LH_ADR_BREIT_EIN_LUT )) + ( 3 <<
LH_ADR_BREIT_EIN_LUT );
00983 ein_regK = ( My_InputLut[aValIn] * ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT )) - ko ) + My_InputLut[aValIn +1] * ko ) >> ( 10-
LH_ADR_BREIT_EIN_LUT );
00984
00985
00986
00987
00988
#else
00989
ein_regC = My_InputLut[(ein_cache[0]=*input0) + ( 0 <<
LH_ADR_BREIT_EIN_LUT )];
00990 ein_regM = My_InputLut[(ein_cache[1]=*input1) + ( 1 <<
LH_ADR_BREIT_EIN_LUT )];
00991 ein_regY = My_InputLut[(ein_cache[2]=*input2) + ( 2 <<
LH_ADR_BREIT_EIN_LUT )];
00992 ein_regK = My_InputLut[(ein_cache[3]=*input3) + ( 3 <<
LH_ADR_BREIT_EIN_LUT )];
00993
#endif
00994
#endif
00995
paNewVal0 = (
LH_LUT_DATA_TYPE *)My_ColorLut +
00996 ((((((((ein_regC &
LH_BIT_MASKE_ADR) <<
LH_BIT_BREIT_ADR) +
00997 (ein_regM &
LH_BIT_MASKE_ADR)) <<
LH_BIT_BREIT_ADR) +
00998 (ein_regY &
LH_BIT_MASKE_ADR))>> (
LH_BIT_BREIT_SELEKTOR-
LH_BIT_BREIT_ADR)) +
00999 (ein_regK >>
LH_BIT_BREIT_SELEKTOR))*
LH_DATA_OUT_COUNT);
01000 ein_regC &=
LH_BIT_MASKE_SELEKTOR;
01001 ein_regM &=
LH_BIT_MASKE_SELEKTOR;
01002 ein_regY &=
LH_BIT_MASKE_SELEKTOR;
01003 ein_regK &=
LH_BIT_MASKE_SELEKTOR;
01004
if (ein_regY >= ein_regC)
01005 {
01006
if( ein_regM >= ein_regC )
01007 {
01008
if( ein_regY >= ein_regM )
01009 {
01010
if( ein_regC >= ein_regK )
01011 {
01012 ako0 =
LH_ADR_BEREICH_SEL - ein_regY;
01013 ako1 = ein_regY - ein_regM;
01014 ako2 = ein_regM - ein_regC;
01015 ako3 = ein_regC - ein_regK;
01016
#if LH_LUT_DATA_SIZE_16
01017
#if LH_DATA_OUT_SIZE_16
01018
01019 aVal = ( ako0 * paNewVal0[0] +
01020 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01021 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01022 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01023 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] );
01024 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
01025 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
01026 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01027 aVal = (aVal >> (
LH_DATA_SHR )) + ( 0 <<
LH_ADR_BREIT_AUS_LUT );
01028 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01029
01030 aVal = ( ako0 * paNewVal0[1] +
01031 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01032 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01033 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01034 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] );
01035 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
01036 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
01037 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01038 aVal = (aVal >> (
LH_DATA_SHR )) + ( 1 <<
LH_ADR_BREIT_AUS_LUT );
01039 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01040
01041 aVal = ( ako0 * paNewVal0[2] +
01042 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01043 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01044 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01045 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] );
01046 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
01047 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
01048 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01049 aVal = (aVal >> (
LH_DATA_SHR )) + ( 2 <<
LH_ADR_BREIT_AUS_LUT );
01050 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01051
01052
if(
LH_DATA_OUT_COUNT_4 ){
01053 aVal = ( ako0 * paNewVal0[3] +
01054 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
01055 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
01056 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
01057 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] );
01058 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
01059 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
01060 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01061 aVal = (aVal >> (
LH_DATA_SHR )) + ( 3 <<
LH_ADR_BREIT_AUS_LUT );
01062 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01063 }
01064
01065
#else
01066
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
01067 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01068 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01069 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01070 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01071 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
01072 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01073 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01074 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01075 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01076 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
01077 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01078 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01079 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01080 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01081
if(
LH_DATA_OUT_COUNT_4 ){
01082 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
01083 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
01084 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
01085 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
01086 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01087 }
01088
#endif
01089
01090
#else
01091
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
01092 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01093 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01094 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01095 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)];
01096 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
01097 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01098 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01099 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01100 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)];
01101 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
01102 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01103 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01104 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01105 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)];
01106
if(
LH_DATA_OUT_COUNT_4 ){
01107 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
01108 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
01109 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
01110 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
01111 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)];
01112 }
01113
#endif
01114
}
01115
else if(ein_regM >= ein_regK )
01116 {
01117 ako0 =
LH_ADR_BEREICH_SEL - ein_regY;
01118 ako1 = ein_regY - ein_regM;
01119 ako2 = ein_regM - ein_regK;
01120 ako3 = ein_regK - ein_regC;
01121
#if LH_LUT_DATA_SIZE_16
01122
#if LH_DATA_OUT_SIZE_16
01123
01124 aVal = ( ako0 * paNewVal0[0] +
01125 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01126 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01127 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
01128 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] );
01129 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
01130 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
01131 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01132 aVal = (aVal >> (
LH_DATA_SHR )) + ( 0 <<
LH_ADR_BREIT_AUS_LUT );
01133 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01134
01135 aVal = ( ako0 * paNewVal0[1] +
01136 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01137 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01138 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
01139 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] );
01140 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
01141 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
01142 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01143 aVal = (aVal >> (
LH_DATA_SHR )) + ( 1 <<
LH_ADR_BREIT_AUS_LUT );
01144 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01145
01146 aVal = ( ako0 * paNewVal0[2] +
01147 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01148 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01149 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
01150 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] );
01151 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
01152 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
01153 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01154 aVal = (aVal >> (
LH_DATA_SHR )) + ( 2 <<
LH_ADR_BREIT_AUS_LUT );
01155 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01156
01157
if(
LH_DATA_OUT_COUNT_4 ){
01158 aVal = ( ako0 * paNewVal0[3] +
01159 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
01160 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
01161 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
01162 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] );
01163 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
01164 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
01165 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01166 aVal = (aVal >> (
LH_DATA_SHR )) + ( 3 <<
LH_ADR_BREIT_AUS_LUT );
01167 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01168 }
01169
01170
#else
01171
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
01172 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01173 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01174 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
01175 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01176 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
01177 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01178 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01179 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
01180 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01181 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
01182 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01183 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01184 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
01185 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01186
if(
LH_DATA_OUT_COUNT_4 ){
01187 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
01188 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
01189 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
01190 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
01191 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01192 }
01193
#endif
01194
01195
#else
01196
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
01197 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01198 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01199 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
01200 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)];
01201 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
01202 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01203 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01204 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
01205 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)];
01206 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
01207 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01208 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01209 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
01210 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)];
01211
if(
LH_DATA_OUT_COUNT_4 ){
01212 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
01213 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
01214 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
01215 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
01216 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)];
01217 }
01218
#endif
01219
}
01220
else if(ein_regY >= ein_regK )
01221 {
01222 ako0 =
LH_ADR_BEREICH_SEL - ein_regY;
01223 ako1 = ein_regY - ein_regK;
01224 ako2 = ein_regK - ein_regM;
01225 ako3 = ein_regM - ein_regC;
01226
#if LH_LUT_DATA_SIZE_16
01227
#if LH_DATA_OUT_SIZE_16
01228
01229 aVal = ( ako0 * paNewVal0[0] +
01230 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01231 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
01232 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
01233 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] );
01234 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
01235 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
01236 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01237 aVal = (aVal >> (
LH_DATA_SHR )) + ( 0 <<
LH_ADR_BREIT_AUS_LUT );
01238 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01239
01240 aVal = ( ako0 * paNewVal0[1] +
01241 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01242 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
01243 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
01244 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] );
01245 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
01246 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
01247 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01248 aVal = (aVal >> (
LH_DATA_SHR )) + ( 1 <<
LH_ADR_BREIT_AUS_LUT );
01249 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01250
01251 aVal = ( ako0 * paNewVal0[2] +
01252 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01253 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
01254 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
01255 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] );
01256 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
01257 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
01258 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01259 aVal = (aVal >> (
LH_DATA_SHR )) + ( 2 <<
LH_ADR_BREIT_AUS_LUT );
01260 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01261
01262
if(
LH_DATA_OUT_COUNT_4 ){
01263 aVal = ( ako0 * paNewVal0[3] +
01264 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
01265 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
01266 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
01267 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] );
01268 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
01269 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
01270 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01271 aVal = (aVal >> (
LH_DATA_SHR )) + ( 3 <<
LH_ADR_BREIT_AUS_LUT );
01272 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01273 }
01274
01275
#else
01276
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
01277 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01278 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
01279 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
01280 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01281 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
01282 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01283 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
01284 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
01285 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01286 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
01287 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01288 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
01289 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
01290 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01291
if(
LH_DATA_OUT_COUNT_4 ){
01292 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
01293 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
01294 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
01295 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
01296 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01297 }
01298
#endif
01299
01300
#else
01301
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
01302 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01303 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
01304 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
01305 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)];
01306 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
01307 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01308 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
01309 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
01310 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)];
01311 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
01312 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01313 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
01314 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
01315 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)];
01316
if(
LH_DATA_OUT_COUNT_4 ){
01317 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
01318 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
01319 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
01320 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
01321 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)];
01322 }
01323
#endif
01324
}
01325
else{
01326 ako0 =
LH_ADR_BEREICH_SEL - ein_regK;
01327 ako1 = ein_regK - ein_regY;
01328 ako2 = ein_regY - ein_regM;
01329 ako3 = ein_regM - ein_regC;
01330
#if LH_LUT_DATA_SIZE_16
01331
#if LH_DATA_OUT_SIZE_16
01332
01333 aVal = ( ako0 * paNewVal0[0] +
01334 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
01335 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
01336 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
01337 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] );
01338 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
01339 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
01340 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01341 aVal = (aVal >> (
LH_DATA_SHR )) + ( 0 <<
LH_ADR_BREIT_AUS_LUT );
01342 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01343
01344 aVal = ( ako0 * paNewVal0[1] +
01345 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
01346 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
01347 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
01348 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] );
01349 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
01350 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
01351 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01352 aVal = (aVal >> (
LH_DATA_SHR )) + ( 1 <<
LH_ADR_BREIT_AUS_LUT );
01353 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01354
01355 aVal = ( ako0 * paNewVal0[2] +
01356 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
01357 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
01358 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
01359 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] );
01360 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
01361 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
01362 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01363 aVal = (aVal >> (
LH_DATA_SHR )) + ( 2 <<
LH_ADR_BREIT_AUS_LUT );
01364 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01365
01366
if(
LH_DATA_OUT_COUNT_4 ){
01367 aVal = ( ako0 * paNewVal0[3] +
01368 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
01369 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
01370 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
01371 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] );
01372 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
01373 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
01374 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01375 aVal = (aVal >> (
LH_DATA_SHR )) + ( 3 <<
LH_ADR_BREIT_AUS_LUT );
01376 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01377 }
01378
01379
#else
01380
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
01381 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
01382 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
01383 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
01384 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01385 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
01386 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
01387 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
01388 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
01389 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01390 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
01391 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
01392 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
01393 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
01394 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01395
if(
LH_DATA_OUT_COUNT_4 ){
01396 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
01397 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
01398 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
01399 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
01400 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01401 }
01402
#endif
01403
01404
#else
01405
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
01406 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
01407 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
01408 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
01409 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)];
01410 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
01411 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
01412 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
01413 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
01414 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)];
01415 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
01416 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
01417 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
01418 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
01419 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)];
01420
if(
LH_DATA_OUT_COUNT_4 ){
01421 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
01422 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
01423 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
01424 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
01425 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)];
01426 }
01427
#endif
01428
}
01429 }
01430
else
01431 {
01432
if( ein_regC >= ein_regK )
01433 {
01434 ako0 =
LH_ADR_BEREICH_SEL - ein_regM;
01435 ako1 = ein_regM - ein_regY;
01436 ako2 = ein_regY - ein_regC;
01437 ako3 = ein_regC - ein_regK;
01438
#if LH_LUT_DATA_SIZE_16
01439
#if LH_DATA_OUT_SIZE_16
01440
01441 aVal = ( ako0 * paNewVal0[0] +
01442 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01443 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01444 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01445 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] );
01446 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
01447 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
01448 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01449 aVal = (aVal >> (
LH_DATA_SHR )) + ( 0 <<
LH_ADR_BREIT_AUS_LUT );
01450 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01451
01452 aVal = ( ako0 * paNewVal0[1] +
01453 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01454 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01455 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01456 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] );
01457 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
01458 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
01459 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01460 aVal = (aVal >> (
LH_DATA_SHR )) + ( 1 <<
LH_ADR_BREIT_AUS_LUT );
01461 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01462
01463 aVal = ( ako0 * paNewVal0[2] +
01464 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01465 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01466 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01467 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] );
01468 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
01469 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
01470 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01471 aVal = (aVal >> (
LH_DATA_SHR )) + ( 2 <<
LH_ADR_BREIT_AUS_LUT );
01472 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01473
01474
if(
LH_DATA_OUT_COUNT_4 ){
01475 aVal = ( ako0 * paNewVal0[3] +
01476 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
01477 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
01478 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
01479 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] );
01480 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
01481 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
01482 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01483 aVal = (aVal >> (
LH_DATA_SHR )) + ( 3 <<
LH_ADR_BREIT_AUS_LUT );
01484 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01485 }
01486
01487
#else
01488
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
01489 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01490 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01491 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01492 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01493 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
01494 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01495 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01496 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01497 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01498 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
01499 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01500 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01501 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01502 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01503
if(
LH_DATA_OUT_COUNT_4 ){
01504 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
01505 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
01506 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
01507 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
01508 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01509 }
01510
#endif
01511
01512
#else
01513
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
01514 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01515 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01516 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01517 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)];
01518 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
01519 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01520 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01521 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01522 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)];
01523 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
01524 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01525 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01526 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01527 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)];
01528
if(
LH_DATA_OUT_COUNT_4 ){
01529 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
01530 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
01531 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
01532 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
01533 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)];
01534 }
01535
#endif
01536
}
01537
else if(ein_regY >= ein_regK )
01538 {
01539 ako0 =
LH_ADR_BEREICH_SEL - ein_regM;
01540 ako1 = ein_regM - ein_regY;
01541 ako2 = ein_regY - ein_regK;
01542 ako3 = ein_regK - ein_regC;
01543
#if LH_LUT_DATA_SIZE_16
01544
#if LH_DATA_OUT_SIZE_16
01545
01546 aVal = ( ako0 * paNewVal0[0] +
01547 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01548 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01549 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
01550 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] );
01551 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
01552 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
01553 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01554 aVal = (aVal >> (
LH_DATA_SHR )) + ( 0 <<
LH_ADR_BREIT_AUS_LUT );
01555 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01556
01557 aVal = ( ako0 * paNewVal0[1] +
01558 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01559 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01560 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
01561 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] );
01562 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
01563 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
01564 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01565 aVal = (aVal >> (
LH_DATA_SHR )) + ( 1 <<
LH_ADR_BREIT_AUS_LUT );
01566 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01567
01568 aVal = ( ako0 * paNewVal0[2] +
01569 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01570 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01571 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
01572 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] );
01573 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
01574 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
01575 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01576 aVal = (aVal >> (
LH_DATA_SHR )) + ( 2 <<
LH_ADR_BREIT_AUS_LUT );
01577 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01578
01579
if(
LH_DATA_OUT_COUNT_4 ){
01580 aVal = ( ako0 * paNewVal0[3] +
01581 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
01582 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
01583 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
01584 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] );
01585 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
01586 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
01587 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01588 aVal = (aVal >> (
LH_DATA_SHR )) + ( 3 <<
LH_ADR_BREIT_AUS_LUT );
01589 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01590 }
01591
01592
#else
01593
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
01594 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01595 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01596 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
01597 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01598 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
01599 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01600 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01601 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
01602 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01603 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
01604 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01605 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01606 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
01607 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01608
if(
LH_DATA_OUT_COUNT_4 ){
01609 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
01610 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
01611 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
01612 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
01613 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01614 }
01615
#endif
01616
01617
#else
01618
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
01619 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01620 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01621 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
01622 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)];
01623 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
01624 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01625 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01626 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
01627 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)];
01628 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
01629 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01630 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01631 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
01632 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)];
01633
if(
LH_DATA_OUT_COUNT_4 ){
01634 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
01635 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
01636 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
01637 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
01638 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)];
01639 }
01640
#endif
01641
}
01642
else if(ein_regM >= ein_regK )
01643 {
01644 ako0 =
LH_ADR_BEREICH_SEL - ein_regM;
01645 ako1 = ein_regM - ein_regK;
01646 ako2 = ein_regK - ein_regY;
01647 ako3 = ein_regY - ein_regC;
01648
#if LH_LUT_DATA_SIZE_16
01649
#if LH_DATA_OUT_SIZE_16
01650
01651 aVal = ( ako0 * paNewVal0[0] +
01652 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01653 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
01654 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
01655 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] );
01656 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
01657 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
01658 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01659 aVal = (aVal >> (
LH_DATA_SHR )) + ( 0 <<
LH_ADR_BREIT_AUS_LUT );
01660 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01661
01662 aVal = ( ako0 * paNewVal0[1] +
01663 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01664 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
01665 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
01666 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] );
01667 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
01668 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
01669 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01670 aVal = (aVal >> (
LH_DATA_SHR )) + ( 1 <<
LH_ADR_BREIT_AUS_LUT );
01671 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01672
01673 aVal = ( ako0 * paNewVal0[2] +
01674 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01675 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
01676 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
01677 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] );
01678 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
01679 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
01680 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01681 aVal = (aVal >> (
LH_DATA_SHR )) + ( 2 <<
LH_ADR_BREIT_AUS_LUT );
01682 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01683
01684
if(
LH_DATA_OUT_COUNT_4 ){
01685 aVal = ( ako0 * paNewVal0[3] +
01686 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
01687 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
01688 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
01689 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] );
01690 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
01691 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
01692 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01693 aVal = (aVal >> (
LH_DATA_SHR )) + ( 3 <<
LH_ADR_BREIT_AUS_LUT );
01694 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01695 }
01696
01697
#else
01698
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
01699 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01700 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
01701 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
01702 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01703 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
01704 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01705 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
01706 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
01707 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01708 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
01709 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01710 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
01711 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
01712 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01713
if(
LH_DATA_OUT_COUNT_4 ){
01714 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
01715 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
01716 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
01717 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
01718 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01719 }
01720
#endif
01721
01722
#else
01723
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
01724 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01725 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
01726 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
01727 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)];
01728 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
01729 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01730 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
01731 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
01732 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)];
01733 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
01734 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01735 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
01736 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
01737 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)];
01738
if(
LH_DATA_OUT_COUNT_4 ){
01739 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
01740 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
01741 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
01742 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
01743 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)];
01744 }
01745
#endif
01746
}
01747
else
01748 {
01749 ako0 =
LH_ADR_BEREICH_SEL - ein_regK;
01750 ako1 = ein_regK - ein_regM;
01751 ako2 = ein_regM - ein_regY;
01752 ako3 = ein_regY - ein_regC;
01753
#if LH_LUT_DATA_SIZE_16
01754
#if LH_DATA_OUT_SIZE_16
01755
01756 aVal = ( ako0 * paNewVal0[0] +
01757 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
01758 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
01759 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
01760 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] );
01761 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
01762 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
01763 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01764 aVal = (aVal >> (
LH_DATA_SHR )) + ( 0 <<
LH_ADR_BREIT_AUS_LUT );
01765 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01766
01767 aVal = ( ako0 * paNewVal0[1] +
01768 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
01769 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
01770 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
01771 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] );
01772 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
01773 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
01774 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01775 aVal = (aVal >> (
LH_DATA_SHR )) + ( 1 <<
LH_ADR_BREIT_AUS_LUT );
01776 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01777
01778 aVal = ( ako0 * paNewVal0[2] +
01779 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
01780 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
01781 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
01782 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] );
01783 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
01784 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
01785 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01786 aVal = (aVal >> (
LH_DATA_SHR )) + ( 2 <<
LH_ADR_BREIT_AUS_LUT );
01787 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01788
01789
if(
LH_DATA_OUT_COUNT_4 ){
01790 aVal = ( ako0 * paNewVal0[3] +
01791 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
01792 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
01793 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
01794 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] );
01795 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
01796 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
01797 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01798 aVal = (aVal >> (
LH_DATA_SHR )) + ( 3 <<
LH_ADR_BREIT_AUS_LUT );
01799 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01800 }
01801
01802
#else
01803
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
01804 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
01805 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
01806 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
01807 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01808 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
01809 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
01810 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
01811 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
01812 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01813 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
01814 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
01815 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
01816 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
01817 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01818
if(
LH_DATA_OUT_COUNT_4 ){
01819 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
01820 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
01821 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
01822 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
01823 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01824 }
01825
#endif
01826
01827
#else
01828
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
01829 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
01830 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
01831 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
01832 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)];
01833 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
01834 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
01835 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
01836 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
01837 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)];
01838 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
01839 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
01840 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
01841 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
01842 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)];
01843
if(
LH_DATA_OUT_COUNT_4 ){
01844 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
01845 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
01846 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
01847 ako3 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
01848 ein_regC * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)];
01849 }
01850
#endif
01851
}
01852 }
01853 }
01854
else
01855 {
01856
if( ein_regM >= ein_regK )
01857 {
01858 ako0 =
LH_ADR_BEREICH_SEL - ein_regY;
01859 ako1 = ein_regY - ein_regC;
01860 ako2 = ein_regC - ein_regM;
01861 ako3 = ein_regM - ein_regK;
01862
#if LH_LUT_DATA_SIZE_16
01863
#if LH_DATA_OUT_SIZE_16
01864
01865 aVal = ( ako0 * paNewVal0[0] +
01866 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01867 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01868 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01869 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] );
01870 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
01871 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
01872 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01873 aVal = (aVal >> (
LH_DATA_SHR )) + ( 0 <<
LH_ADR_BREIT_AUS_LUT );
01874 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01875
01876 aVal = ( ako0 * paNewVal0[1] +
01877 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01878 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01879 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01880 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] );
01881 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
01882 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
01883 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01884 aVal = (aVal >> (
LH_DATA_SHR )) + ( 1 <<
LH_ADR_BREIT_AUS_LUT );
01885 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01886
01887 aVal = ( ako0 * paNewVal0[2] +
01888 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01889 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01890 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01891 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] );
01892 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
01893 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
01894 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01895 aVal = (aVal >> (
LH_DATA_SHR )) + ( 2 <<
LH_ADR_BREIT_AUS_LUT );
01896 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01897
01898
if(
LH_DATA_OUT_COUNT_4 ){
01899 aVal = ( ako0 * paNewVal0[3] +
01900 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
01901 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
01902 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
01903 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] );
01904 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
01905 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
01906 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01907 aVal = (aVal >> (
LH_DATA_SHR )) + ( 3 <<
LH_ADR_BREIT_AUS_LUT );
01908 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01909 }
01910
01911
#else
01912
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
01913 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01914 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01915 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01916 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01917 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
01918 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01919 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01920 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01921 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01922 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
01923 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01924 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01925 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01926 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01927
if(
LH_DATA_OUT_COUNT_4 ){
01928 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
01929 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
01930 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
01931 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
01932 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
01933 }
01934
#endif
01935
01936
#else
01937
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
01938 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01939 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01940 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01941 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)];
01942 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
01943 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01944 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01945 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01946 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)];
01947 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
01948 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01949 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01950 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01951 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)];
01952
if(
LH_DATA_OUT_COUNT_4 ){
01953 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
01954 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
01955 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
01956 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
01957 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)];
01958 }
01959
#endif
01960
}
01961
else if(ein_regC >= ein_regK )
01962 {
01963 ako0 =
LH_ADR_BEREICH_SEL - ein_regY;
01964 ako1 = ein_regY - ein_regC;
01965 ako2 = ein_regC - ein_regK;
01966 ako3 = ein_regK - ein_regM;
01967
#if LH_LUT_DATA_SIZE_16
01968
#if LH_DATA_OUT_SIZE_16
01969
01970 aVal = ( ako0 * paNewVal0[0] +
01971 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01972 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
01973 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
01974 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] );
01975 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
01976 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
01977 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01978 aVal = (aVal >> (
LH_DATA_SHR )) + ( 0 <<
LH_ADR_BREIT_AUS_LUT );
01979 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01980
01981 aVal = ( ako0 * paNewVal0[1] +
01982 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01983 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
01984 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
01985 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] );
01986 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
01987 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
01988 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
01989 aVal = (aVal >> (
LH_DATA_SHR )) + ( 1 <<
LH_ADR_BREIT_AUS_LUT );
01990 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
01991
01992 aVal = ( ako0 * paNewVal0[2] +
01993 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01994 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
01995 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
01996 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] );
01997 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
01998 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
01999 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02000 aVal = (aVal >> (
LH_DATA_SHR )) + ( 2 <<
LH_ADR_BREIT_AUS_LUT );
02001 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02002
02003
if(
LH_DATA_OUT_COUNT_4 ){
02004 aVal = ( ako0 * paNewVal0[3] +
02005 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
02006 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
02007 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
02008 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] );
02009 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
02010 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
02011 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02012 aVal = (aVal >> (
LH_DATA_SHR )) + ( 3 <<
LH_ADR_BREIT_AUS_LUT );
02013 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02014 }
02015
02016
#else
02017
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
02018 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
02019 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
02020 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
02021 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02022 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
02023 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
02024 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
02025 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
02026 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02027 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
02028 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
02029 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
02030 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
02031 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02032
if(
LH_DATA_OUT_COUNT_4 ){
02033 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
02034 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
02035 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
02036 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
02037 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02038 }
02039
#endif
02040
02041
#else
02042
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
02043 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
02044 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
02045 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
02046 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)];
02047 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
02048 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
02049 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
02050 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
02051 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)];
02052 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
02053 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
02054 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
02055 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
02056 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)];
02057
if(
LH_DATA_OUT_COUNT_4 ){
02058 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
02059 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
02060 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
02061 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
02062 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)];
02063 }
02064
#endif
02065
}
02066
else if(ein_regY >= ein_regK )
02067 {
02068 ako0 =
LH_ADR_BEREICH_SEL - ein_regY;
02069 ako1 = ein_regY - ein_regK;
02070 ako2 = ein_regK - ein_regC;
02071 ako3 = ein_regC - ein_regM;
02072
#if LH_LUT_DATA_SIZE_16
02073
#if LH_DATA_OUT_SIZE_16
02074
02075 aVal = ( ako0 * paNewVal0[0] +
02076 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
02077 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
02078 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
02079 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] );
02080 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
02081 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
02082 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02083 aVal = (aVal >> (
LH_DATA_SHR )) + ( 0 <<
LH_ADR_BREIT_AUS_LUT );
02084 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02085
02086 aVal = ( ako0 * paNewVal0[1] +
02087 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
02088 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
02089 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
02090 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] );
02091 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
02092 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
02093 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02094 aVal = (aVal >> (
LH_DATA_SHR )) + ( 1 <<
LH_ADR_BREIT_AUS_LUT );
02095 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02096
02097 aVal = ( ako0 * paNewVal0[2] +
02098 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
02099 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
02100 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
02101 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] );
02102 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
02103 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
02104 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02105 aVal = (aVal >> (
LH_DATA_SHR )) + ( 2 <<
LH_ADR_BREIT_AUS_LUT );
02106 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02107
02108
if(
LH_DATA_OUT_COUNT_4 ){
02109 aVal = ( ako0 * paNewVal0[3] +
02110 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
02111 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
02112 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
02113 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] );
02114 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
02115 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
02116 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02117 aVal = (aVal >> (
LH_DATA_SHR )) + ( 3 <<
LH_ADR_BREIT_AUS_LUT );
02118 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02119 }
02120
02121
#else
02122
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
02123 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
02124 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
02125 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
02126 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02127 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
02128 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
02129 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
02130 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
02131 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02132 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
02133 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
02134 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
02135 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
02136 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02137
if(
LH_DATA_OUT_COUNT_4 ){
02138 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
02139 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
02140 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
02141 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
02142 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02143 }
02144
#endif
02145
02146
#else
02147
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
02148 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
02149 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
02150 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
02151 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)];
02152 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
02153 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
02154 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
02155 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
02156 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)];
02157 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
02158 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
02159 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
02160 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
02161 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)];
02162
if(
LH_DATA_OUT_COUNT_4 ){
02163 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
02164 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
02165 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
02166 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
02167 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)];
02168 }
02169
#endif
02170
}
02171
else
02172 {
02173 ako0 =
LH_ADR_BEREICH_SEL - ein_regK;
02174 ako1 = ein_regK - ein_regY;
02175 ako2 = ein_regY - ein_regC;
02176 ako3 = ein_regC - ein_regM;
02177
#if LH_LUT_DATA_SIZE_16
02178
#if LH_DATA_OUT_SIZE_16
02179
02180 aVal = ( ako0 * paNewVal0[0] +
02181 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
02182 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
02183 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
02184 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] );
02185 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
02186 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
02187 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02188 aVal = (aVal >> (
LH_DATA_SHR )) + ( 0 <<
LH_ADR_BREIT_AUS_LUT );
02189 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02190
02191 aVal = ( ako0 * paNewVal0[1] +
02192 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
02193 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
02194 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
02195 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] );
02196 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
02197 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
02198 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02199 aVal = (aVal >> (
LH_DATA_SHR )) + ( 1 <<
LH_ADR_BREIT_AUS_LUT );
02200 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02201
02202 aVal = ( ako0 * paNewVal0[2] +
02203 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
02204 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
02205 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
02206 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] );
02207 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
02208 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
02209 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02210 aVal = (aVal >> (
LH_DATA_SHR )) + ( 2 <<
LH_ADR_BREIT_AUS_LUT );
02211 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02212
02213
if(
LH_DATA_OUT_COUNT_4 ){
02214 aVal = ( ako0 * paNewVal0[3] +
02215 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
02216 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
02217 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
02218 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] );
02219 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
02220 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
02221 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02222 aVal = (aVal >> (
LH_DATA_SHR )) + ( 3 <<
LH_ADR_BREIT_AUS_LUT );
02223 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02224 }
02225
02226
#else
02227
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
02228 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
02229 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
02230 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
02231 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02232 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
02233 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
02234 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
02235 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
02236 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02237 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
02238 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
02239 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
02240 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
02241 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02242
if(
LH_DATA_OUT_COUNT_4 ){
02243 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
02244 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
02245 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
02246 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
02247 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02248 }
02249
#endif
02250
02251
#else
02252
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
02253 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
02254 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
02255 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
02256 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)];
02257 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
02258 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
02259 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
02260 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
02261 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)];
02262 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
02263 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
02264 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
02265 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
02266 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)];
02267
if(
LH_DATA_OUT_COUNT_4 ){
02268 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
02269 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
02270 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
02271 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
02272 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)];
02273 }
02274
#endif
02275
}
02276 }
02277 }
02278
else
02279 {
02280
if( ein_regM >= ein_regC )
02281 {
02282
if( ein_regY >= ein_regK )
02283 {
02284 ako0 =
LH_ADR_BEREICH_SEL - ein_regM;
02285 ako1 = ein_regM - ein_regC;
02286 ako2 = ein_regC - ein_regY;
02287 ako3 = ein_regY - ein_regK;
02288
#if LH_LUT_DATA_SIZE_16
02289
#if LH_DATA_OUT_SIZE_16
02290
02291 aVal = ( ako0 * paNewVal0[0] +
02292 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
02293 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
02294 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
02295 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] );
02296 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
02297 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
02298 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02299 aVal = (aVal >> (
LH_DATA_SHR )) + ( 0 <<
LH_ADR_BREIT_AUS_LUT );
02300 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02301
02302 aVal = ( ako0 * paNewVal0[1] +
02303 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
02304 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
02305 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
02306 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] );
02307 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
02308 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
02309 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02310 aVal = (aVal >> (
LH_DATA_SHR )) + ( 1 <<
LH_ADR_BREIT_AUS_LUT );
02311 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02312
02313 aVal = ( ako0 * paNewVal0[2] +
02314 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
02315 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
02316 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
02317 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] );
02318 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
02319 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
02320 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02321 aVal = (aVal >> (
LH_DATA_SHR )) + ( 2 <<
LH_ADR_BREIT_AUS_LUT );
02322 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02323
02324
if(
LH_DATA_OUT_COUNT_4 ){
02325 aVal = ( ako0 * paNewVal0[3] +
02326 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
02327 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
02328 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
02329 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] );
02330 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
02331 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
02332 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02333 aVal = (aVal >> (
LH_DATA_SHR )) + ( 3 <<
LH_ADR_BREIT_AUS_LUT );
02334 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02335 }
02336
02337
#else
02338
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
02339 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
02340 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
02341 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
02342 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02343 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
02344 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
02345 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
02346 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
02347 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02348 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
02349 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
02350 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
02351 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
02352 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02353
if(
LH_DATA_OUT_COUNT_4 ){
02354 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
02355 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
02356 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
02357 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
02358 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02359 }
02360
#endif
02361
02362
#else
02363
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
02364 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
02365 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
02366 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
02367 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)];
02368 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
02369 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
02370 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
02371 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
02372 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)];
02373 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
02374 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
02375 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
02376 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
02377 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)];
02378
if(
LH_DATA_OUT_COUNT_4 ){
02379 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
02380 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
02381 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
02382 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
02383 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)];
02384 }
02385
#endif
02386
}
02387
else if(ein_regC >= ein_regK )
02388 {
02389 ako0 =
LH_ADR_BEREICH_SEL - ein_regM;
02390 ako1 = ein_regM - ein_regC;
02391 ako2 = ein_regC - ein_regK;
02392 ako3 = ein_regK - ein_regY;
02393
#if LH_LUT_DATA_SIZE_16
02394
#if LH_DATA_OUT_SIZE_16
02395
02396 aVal = ( ako0 * paNewVal0[0] +
02397 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
02398 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
02399 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
02400 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] );
02401 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
02402 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
02403 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02404 aVal = (aVal >> (
LH_DATA_SHR )) + ( 0 <<
LH_ADR_BREIT_AUS_LUT );
02405 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02406
02407 aVal = ( ako0 * paNewVal0[1] +
02408 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
02409 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
02410 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
02411 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] );
02412 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
02413 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
02414 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02415 aVal = (aVal >> (
LH_DATA_SHR )) + ( 1 <<
LH_ADR_BREIT_AUS_LUT );
02416 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02417
02418 aVal = ( ako0 * paNewVal0[2] +
02419 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
02420 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
02421 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
02422 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] );
02423 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
02424 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
02425 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02426 aVal = (aVal >> (
LH_DATA_SHR )) + ( 2 <<
LH_ADR_BREIT_AUS_LUT );
02427 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02428
02429
if(
LH_DATA_OUT_COUNT_4 ){
02430 aVal = ( ako0 * paNewVal0[3] +
02431 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
02432 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
02433 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
02434 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] );
02435 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
02436 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
02437 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02438 aVal = (aVal >> (
LH_DATA_SHR )) + ( 3 <<
LH_ADR_BREIT_AUS_LUT );
02439 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02440 }
02441
02442
#else
02443
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
02444 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
02445 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
02446 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
02447 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02448 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
02449 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
02450 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
02451 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
02452 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02453 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
02454 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
02455 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
02456 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
02457 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02458
if(
LH_DATA_OUT_COUNT_4 ){
02459 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
02460 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
02461 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
02462 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
02463 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02464 }
02465
#endif
02466
02467
#else
02468
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
02469 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
02470 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
02471 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
02472 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)];
02473 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
02474 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
02475 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
02476 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
02477 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)];
02478 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
02479 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
02480 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
02481 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
02482 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)];
02483
if(
LH_DATA_OUT_COUNT_4 ){
02484 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
02485 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
02486 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
02487 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
02488 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)];
02489 }
02490
#endif
02491
}
02492
else if(ein_regM >= ein_regK )
02493 {
02494 ako0 =
LH_ADR_BEREICH_SEL - ein_regM;
02495 ako1 = ein_regM - ein_regK;
02496 ako2 = ein_regK - ein_regC;
02497 ako3 = ein_regC - ein_regY;
02498
#if LH_LUT_DATA_SIZE_16
02499
#if LH_DATA_OUT_SIZE_16
02500
02501 aVal = ( ako0 * paNewVal0[0] +
02502 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
02503 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
02504 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
02505 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] );
02506 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
02507 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
02508 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02509 aVal = (aVal >> (
LH_DATA_SHR )) + ( 0 <<
LH_ADR_BREIT_AUS_LUT );
02510 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02511
02512 aVal = ( ako0 * paNewVal0[1] +
02513 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
02514 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
02515 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
02516 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] );
02517 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
02518 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
02519 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02520 aVal = (aVal >> (
LH_DATA_SHR )) + ( 1 <<
LH_ADR_BREIT_AUS_LUT );
02521 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02522
02523 aVal = ( ako0 * paNewVal0[2] +
02524 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
02525 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
02526 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
02527 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] );
02528 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
02529 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
02530 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02531 aVal = (aVal >> (
LH_DATA_SHR )) + ( 2 <<
LH_ADR_BREIT_AUS_LUT );
02532 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02533
02534
if(
LH_DATA_OUT_COUNT_4 ){
02535 aVal = ( ako0 * paNewVal0[3] +
02536 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
02537 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
02538 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
02539 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] );
02540 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
02541 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
02542 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02543 aVal = (aVal >> (
LH_DATA_SHR )) + ( 3 <<
LH_ADR_BREIT_AUS_LUT );
02544 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02545 }
02546
02547
#else
02548
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
02549 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
02550 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
02551 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
02552 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02553 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
02554 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
02555 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
02556 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
02557 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02558 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
02559 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
02560 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
02561 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
02562 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02563
if(
LH_DATA_OUT_COUNT_4 ){
02564 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
02565 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
02566 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
02567 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
02568 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02569 }
02570
#endif
02571
02572
#else
02573
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
02574 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
02575 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
02576 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
02577 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)];
02578 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
02579 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
02580 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
02581 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
02582 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)];
02583 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
02584 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
02585 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
02586 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
02587 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)];
02588
if(
LH_DATA_OUT_COUNT_4 ){
02589 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
02590 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
02591 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
02592 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
02593 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)];
02594 }
02595
#endif
02596
}
02597
else
02598 {
02599 ako0 =
LH_ADR_BEREICH_SEL - ein_regK;
02600 ako1 = ein_regK - ein_regM;
02601 ako2 = ein_regM - ein_regC;
02602 ako3 = ein_regC - ein_regY;
02603
#if LH_LUT_DATA_SIZE_16
02604
#if LH_DATA_OUT_SIZE_16
02605
02606 aVal = ( ako0 * paNewVal0[0] +
02607 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
02608 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
02609 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
02610 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] );
02611 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
02612 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
02613 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02614 aVal = (aVal >> (
LH_DATA_SHR )) + ( 0 <<
LH_ADR_BREIT_AUS_LUT );
02615 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02616
02617 aVal = ( ako0 * paNewVal0[1] +
02618 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
02619 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
02620 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
02621 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] );
02622 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
02623 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
02624 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02625 aVal = (aVal >> (
LH_DATA_SHR )) + ( 1 <<
LH_ADR_BREIT_AUS_LUT );
02626 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02627
02628 aVal = ( ako0 * paNewVal0[2] +
02629 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
02630 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
02631 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
02632 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] );
02633 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
02634 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
02635 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02636 aVal = (aVal >> (
LH_DATA_SHR )) + ( 2 <<
LH_ADR_BREIT_AUS_LUT );
02637 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02638
02639
if(
LH_DATA_OUT_COUNT_4 ){
02640 aVal = ( ako0 * paNewVal0[3] +
02641 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
02642 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
02643 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
02644 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] );
02645 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
02646 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
02647 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02648 aVal = (aVal >> (
LH_DATA_SHR )) + ( 3 <<
LH_ADR_BREIT_AUS_LUT );
02649 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02650 }
02651
02652
#else
02653
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
02654 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
02655 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
02656 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
02657 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02658 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
02659 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
02660 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
02661 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
02662 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02663 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
02664 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
02665 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
02666 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
02667 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02668
if(
LH_DATA_OUT_COUNT_4 ){
02669 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
02670 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
02671 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
02672 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
02673 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02674 }
02675
#endif
02676
02677
#else
02678
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
02679 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
02680 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
02681 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
02682 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)];
02683 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
02684 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
02685 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
02686 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
02687 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)];
02688 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
02689 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
02690 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
02691 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
02692 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)];
02693
if(
LH_DATA_OUT_COUNT_4 ){
02694 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
02695 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
02696 ako2 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
02697 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
02698 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)];
02699 }
02700
#endif
02701
}
02702 }
02703
else
02704 {
02705
if( ein_regY >= ein_regM )
02706 {
02707
if( ein_regM >= ein_regK )
02708 {
02709 ako0 =
LH_ADR_BEREICH_SEL - ein_regC;
02710 ako1 = ein_regC - ein_regY;
02711 ako2 = ein_regY - ein_regM;
02712 ako3 = ein_regM - ein_regK;
02713
#if LH_LUT_DATA_SIZE_16
02714
#if LH_DATA_OUT_SIZE_16
02715
02716 aVal = ( ako0 * paNewVal0[0] +
02717 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
02718 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
02719 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
02720 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] );
02721 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
02722 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
02723 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02724 aVal = (aVal >> (
LH_DATA_SHR )) + ( 0 <<
LH_ADR_BREIT_AUS_LUT );
02725 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02726
02727 aVal = ( ako0 * paNewVal0[1] +
02728 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
02729 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
02730 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
02731 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] );
02732 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
02733 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
02734 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02735 aVal = (aVal >> (
LH_DATA_SHR )) + ( 1 <<
LH_ADR_BREIT_AUS_LUT );
02736 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02737
02738 aVal = ( ako0 * paNewVal0[2] +
02739 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
02740 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
02741 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
02742 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] );
02743 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
02744 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
02745 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02746 aVal = (aVal >> (
LH_DATA_SHR )) + ( 2 <<
LH_ADR_BREIT_AUS_LUT );
02747 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02748
02749
if(
LH_DATA_OUT_COUNT_4 ){
02750 aVal = ( ako0 * paNewVal0[3] +
02751 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
02752 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
02753 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
02754 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] );
02755 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
02756 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
02757 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02758 aVal = (aVal >> (
LH_DATA_SHR )) + ( 3 <<
LH_ADR_BREIT_AUS_LUT );
02759 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02760 }
02761
02762
#else
02763
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
02764 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
02765 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
02766 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
02767 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02768 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
02769 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
02770 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
02771 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
02772 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02773 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
02774 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
02775 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
02776 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
02777 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02778
if(
LH_DATA_OUT_COUNT_4 ){
02779 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
02780 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
02781 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
02782 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
02783 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02784 }
02785
#endif
02786
02787
#else
02788
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
02789 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
02790 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
02791 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
02792 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)];
02793 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
02794 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
02795 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
02796 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
02797 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)];
02798 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
02799 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
02800 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
02801 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
02802 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)];
02803
if(
LH_DATA_OUT_COUNT_4 ){
02804 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
02805 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
02806 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
02807 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
02808 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)];
02809 }
02810
#endif
02811
}
02812
else if(ein_regY >= ein_regK )
02813 {
02814 ako0 =
LH_ADR_BEREICH_SEL - ein_regC;
02815 ako1 = ein_regC - ein_regY;
02816 ako2 = ein_regY - ein_regK;
02817 ako3 = ein_regK - ein_regM;
02818
#if LH_LUT_DATA_SIZE_16
02819
#if LH_DATA_OUT_SIZE_16
02820
02821 aVal = ( ako0 * paNewVal0[0] +
02822 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
02823 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
02824 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
02825 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] );
02826 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
02827 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
02828 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02829 aVal = (aVal >> (
LH_DATA_SHR )) + ( 0 <<
LH_ADR_BREIT_AUS_LUT );
02830 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02831
02832 aVal = ( ako0 * paNewVal0[1] +
02833 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
02834 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
02835 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
02836 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] );
02837 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
02838 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
02839 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02840 aVal = (aVal >> (
LH_DATA_SHR )) + ( 1 <<
LH_ADR_BREIT_AUS_LUT );
02841 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02842
02843 aVal = ( ako0 * paNewVal0[2] +
02844 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
02845 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
02846 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
02847 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] );
02848 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
02849 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
02850 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02851 aVal = (aVal >> (
LH_DATA_SHR )) + ( 2 <<
LH_ADR_BREIT_AUS_LUT );
02852 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02853
02854
if(
LH_DATA_OUT_COUNT_4 ){
02855 aVal = ( ako0 * paNewVal0[3] +
02856 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
02857 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
02858 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
02859 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] );
02860 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
02861 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
02862 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02863 aVal = (aVal >> (
LH_DATA_SHR )) + ( 3 <<
LH_ADR_BREIT_AUS_LUT );
02864 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02865 }
02866
02867
#else
02868
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
02869 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
02870 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
02871 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
02872 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02873 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
02874 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
02875 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
02876 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
02877 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02878 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
02879 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
02880 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
02881 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
02882 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02883
if(
LH_DATA_OUT_COUNT_4 ){
02884 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
02885 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
02886 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
02887 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
02888 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02889 }
02890
#endif
02891
02892
#else
02893
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
02894 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
02895 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
02896 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
02897 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)];
02898 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
02899 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
02900 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
02901 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
02902 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)];
02903 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
02904 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
02905 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
02906 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
02907 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)];
02908
if(
LH_DATA_OUT_COUNT_4 ){
02909 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
02910 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
02911 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
02912 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
02913 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)];
02914 }
02915
#endif
02916
}
02917
else if(ein_regC >= ein_regK )
02918 {
02919 ako0 =
LH_ADR_BEREICH_SEL - ein_regC;
02920 ako1 = ein_regC - ein_regK;
02921 ako2 = ein_regK - ein_regY;
02922 ako3 = ein_regY - ein_regM;
02923
#if LH_LUT_DATA_SIZE_16
02924
#if LH_DATA_OUT_SIZE_16
02925
02926 aVal = ( ako0 * paNewVal0[0] +
02927 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
02928 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
02929 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
02930 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] );
02931 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
02932 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
02933 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02934 aVal = (aVal >> (
LH_DATA_SHR )) + ( 0 <<
LH_ADR_BREIT_AUS_LUT );
02935 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02936
02937 aVal = ( ako0 * paNewVal0[1] +
02938 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
02939 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
02940 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
02941 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] );
02942 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
02943 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
02944 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02945 aVal = (aVal >> (
LH_DATA_SHR )) + ( 1 <<
LH_ADR_BREIT_AUS_LUT );
02946 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02947
02948 aVal = ( ako0 * paNewVal0[2] +
02949 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
02950 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
02951 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
02952 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] );
02953 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
02954 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
02955 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02956 aVal = (aVal >> (
LH_DATA_SHR )) + ( 2 <<
LH_ADR_BREIT_AUS_LUT );
02957 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02958
02959
if(
LH_DATA_OUT_COUNT_4 ){
02960 aVal = ( ako0 * paNewVal0[3] +
02961 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
02962 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
02963 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
02964 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] );
02965 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
02966 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
02967 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
02968 aVal = (aVal >> (
LH_DATA_SHR )) + ( 3 <<
LH_ADR_BREIT_AUS_LUT );
02969 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
02970 }
02971
02972
#else
02973
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
02974 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
02975 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
02976 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
02977 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02978 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
02979 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
02980 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
02981 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
02982 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02983 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
02984 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
02985 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
02986 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
02987 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02988
if(
LH_DATA_OUT_COUNT_4 ){
02989 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
02990 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
02991 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
02992 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
02993 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
02994 }
02995
#endif
02996
02997
#else
02998
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
02999 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
03000 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
03001 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
03002 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)];
03003 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
03004 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
03005 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
03006 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
03007 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)];
03008 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
03009 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
03010 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
03011 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
03012 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)];
03013
if(
LH_DATA_OUT_COUNT_4 ){
03014 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
03015 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
03016 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
03017 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
03018 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)];
03019 }
03020
#endif
03021
}
03022
else
03023 {
03024 ako0 =
LH_ADR_BEREICH_SEL - ein_regK;
03025 ako1 = ein_regK - ein_regC;
03026 ako2 = ein_regC - ein_regY;
03027 ako3 = ein_regY - ein_regM;
03028
#if LH_LUT_DATA_SIZE_16
03029
#if LH_DATA_OUT_SIZE_16
03030
03031 aVal = ( ako0 * paNewVal0[0] +
03032 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
03033 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
03034 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
03035 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] );
03036 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
03037 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
03038 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
03039 aVal = (aVal >> (
LH_DATA_SHR )) + ( 0 <<
LH_ADR_BREIT_AUS_LUT );
03040 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
03041
03042 aVal = ( ako0 * paNewVal0[1] +
03043 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
03044 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
03045 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
03046 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] );
03047 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
03048 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
03049 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
03050 aVal = (aVal >> (
LH_DATA_SHR )) + ( 1 <<
LH_ADR_BREIT_AUS_LUT );
03051 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
03052
03053 aVal = ( ako0 * paNewVal0[2] +
03054 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
03055 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
03056 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
03057 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] );
03058 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
03059 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
03060 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
03061 aVal = (aVal >> (
LH_DATA_SHR )) + ( 2 <<
LH_ADR_BREIT_AUS_LUT );
03062 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
03063
03064
if(
LH_DATA_OUT_COUNT_4 ){
03065 aVal = ( ako0 * paNewVal0[3] +
03066 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
03067 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
03068 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
03069 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] );
03070 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
03071 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
03072 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
03073 aVal = (aVal >> (
LH_DATA_SHR )) + ( 3 <<
LH_ADR_BREIT_AUS_LUT );
03074 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
03075 }
03076
03077
#else
03078
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
03079 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
03080 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
03081 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
03082 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03083 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
03084 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
03085 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
03086 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
03087 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03088 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
03089 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
03090 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
03091 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
03092 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03093
if(
LH_DATA_OUT_COUNT_4 ){
03094 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
03095 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
03096 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
03097 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
03098 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03099 }
03100
#endif
03101
03102
#else
03103
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
03104 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
03105 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
03106 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
03107 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)];
03108 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
03109 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
03110 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
03111 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
03112 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)];
03113 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
03114 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
03115 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
03116 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
03117 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)];
03118
if(
LH_DATA_OUT_COUNT_4 ){
03119 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
03120 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
03121 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
03122 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
03123 ein_regM * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)];
03124 }
03125
#endif
03126
}
03127 }
03128
else if( ein_regY >= ein_regK )
03129 {
03130 ako0 =
LH_ADR_BEREICH_SEL - ein_regC;
03131 ako1 = ein_regC - ein_regM;
03132 ako2 = ein_regM - ein_regY;
03133 ako3 = ein_regY - ein_regK;
03134
#if LH_LUT_DATA_SIZE_16
03135
#if LH_DATA_OUT_SIZE_16
03136
03137 aVal = ( ako0 * paNewVal0[0] +
03138 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
03139 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
03140 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
03141 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] );
03142 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
03143 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
03144 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
03145 aVal = (aVal >> (
LH_DATA_SHR )) + ( 0 <<
LH_ADR_BREIT_AUS_LUT );
03146 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
03147
03148 aVal = ( ako0 * paNewVal0[1] +
03149 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
03150 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
03151 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
03152 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] );
03153 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
03154 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
03155 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
03156 aVal = (aVal >> (
LH_DATA_SHR )) + ( 1 <<
LH_ADR_BREIT_AUS_LUT );
03157 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
03158
03159 aVal = ( ako0 * paNewVal0[2] +
03160 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
03161 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
03162 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
03163 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] );
03164 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
03165 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
03166 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
03167 aVal = (aVal >> (
LH_DATA_SHR )) + ( 2 <<
LH_ADR_BREIT_AUS_LUT );
03168 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
03169
03170
if(
LH_DATA_OUT_COUNT_4 ){
03171 aVal = ( ako0 * paNewVal0[3] +
03172 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
03173 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
03174 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
03175 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] );
03176 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
03177 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
03178 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
03179 aVal = (aVal >> (
LH_DATA_SHR )) + ( 3 <<
LH_ADR_BREIT_AUS_LUT );
03180 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
03181 }
03182
03183
#else
03184
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
03185 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
03186 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
03187 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
03188 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03189 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
03190 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
03191 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
03192 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
03193 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03194 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
03195 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
03196 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
03197 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
03198 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03199
if(
LH_DATA_OUT_COUNT_4 ){
03200 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
03201 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
03202 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
03203 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
03204 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03205 }
03206
#endif
03207
03208
#else
03209
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
03210 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
03211 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
03212 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
03213 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)];
03214 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
03215 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
03216 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
03217 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
03218 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)];
03219 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
03220 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
03221 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
03222 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
03223 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)];
03224
if(
LH_DATA_OUT_COUNT_4 ){
03225 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
03226 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
03227 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
03228 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
03229 ein_regK * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)];
03230 }
03231
#endif
03232
}
03233
else if(ein_regM >= ein_regK )
03234 {
03235 ako0 =
LH_ADR_BEREICH_SEL - ein_regC;
03236 ako1 = ein_regC - ein_regM;
03237 ako2 = ein_regM - ein_regK;
03238 ako3 = ein_regK - ein_regY;
03239
#if LH_LUT_DATA_SIZE_16
03240
#if LH_DATA_OUT_SIZE_16
03241
03242 aVal = ( ako0 * paNewVal0[0] +
03243 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
03244 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
03245 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
03246 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] );
03247 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
03248 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
03249 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
03250 aVal = (aVal >> (
LH_DATA_SHR )) + ( 0 <<
LH_ADR_BREIT_AUS_LUT );
03251 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
03252
03253 aVal = ( ako0 * paNewVal0[1] +
03254 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
03255 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
03256 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
03257 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] );
03258 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
03259 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
03260 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
03261 aVal = (aVal >> (
LH_DATA_SHR )) + ( 1 <<
LH_ADR_BREIT_AUS_LUT );
03262 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
03263
03264 aVal = ( ako0 * paNewVal0[2] +
03265 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
03266 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
03267 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
03268 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] );
03269 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
03270 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
03271 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
03272 aVal = (aVal >> (
LH_DATA_SHR )) + ( 2 <<
LH_ADR_BREIT_AUS_LUT );
03273 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
03274
03275
if(
LH_DATA_OUT_COUNT_4 ){
03276 aVal = ( ako0 * paNewVal0[3] +
03277 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
03278 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
03279 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
03280 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] );
03281 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
03282 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
03283 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
03284 aVal = (aVal >> (
LH_DATA_SHR )) + ( 3 <<
LH_ADR_BREIT_AUS_LUT );
03285 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
03286 }
03287
03288
#else
03289
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
03290 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
03291 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
03292 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
03293 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03294 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
03295 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
03296 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
03297 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
03298 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03299 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
03300 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
03301 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
03302 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
03303 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03304
if(
LH_DATA_OUT_COUNT_4 ){
03305 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
03306 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
03307 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
03308 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
03309 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03310 }
03311
#endif
03312
03313
#else
03314
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
03315 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
03316 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
03317 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
03318 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)];
03319 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
03320 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
03321 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
03322 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
03323 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)];
03324 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
03325 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
03326 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
03327 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
03328 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)];
03329
if(
LH_DATA_OUT_COUNT_4 ){
03330 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
03331 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
03332 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
03333 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
03334 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)];
03335 }
03336
#endif
03337
}
03338
else
03339 {
03340
if(ein_regC >= ein_regK )
03341 {
03342 ako0 =
LH_ADR_BEREICH_SEL - ein_regC;
03343 ako1 = ein_regC - ein_regK;
03344 ako2 = ein_regK - ein_regM;
03345 ako3 = ein_regM - ein_regY;
03346
#if LH_LUT_DATA_SIZE_16
03347
#if LH_DATA_OUT_SIZE_16
03348
03349 aVal = ( ako0 * paNewVal0[0] +
03350 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
03351 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
03352 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
03353 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] );
03354 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
03355 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
03356 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
03357 aVal = (aVal >> (
LH_DATA_SHR )) + ( 0 <<
LH_ADR_BREIT_AUS_LUT );
03358 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
03359
03360 aVal = ( ako0 * paNewVal0[1] +
03361 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
03362 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
03363 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
03364 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] );
03365 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
03366 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
03367 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
03368 aVal = (aVal >> (
LH_DATA_SHR )) + ( 1 <<
LH_ADR_BREIT_AUS_LUT );
03369 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
03370
03371 aVal = ( ako0 * paNewVal0[2] +
03372 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
03373 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
03374 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
03375 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] );
03376 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
03377 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
03378 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
03379 aVal = (aVal >> (
LH_DATA_SHR )) + ( 2 <<
LH_ADR_BREIT_AUS_LUT );
03380 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
03381
03382
if(
LH_DATA_OUT_COUNT_4 ){
03383 aVal = ( ako0 * paNewVal0[3] +
03384 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
03385 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
03386 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
03387 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] );
03388 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
03389 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
03390 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
03391 aVal = (aVal >> (
LH_DATA_SHR )) + ( 3 <<
LH_ADR_BREIT_AUS_LUT );
03392 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
03393 }
03394
03395
#else
03396
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
03397 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
03398 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
03399 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
03400 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03401 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
03402 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
03403 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
03404 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
03405 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03406 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
03407 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
03408 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
03409 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
03410 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03411
if(
LH_DATA_OUT_COUNT_4 ){
03412 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
03413 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
03414 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
03415 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
03416 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03417 }
03418
#endif
03419
03420
#else
03421
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
03422 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+0] +
03423 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
03424 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
03425 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)];
03426 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
03427 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+1] +
03428 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
03429 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
03430 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)];
03431 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
03432 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+2] +
03433 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
03434 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
03435 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)];
03436
if(
LH_DATA_OUT_COUNT_4 ){
03437 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
03438 ako1 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)+3] +
03439 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
03440 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
03441 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)];
03442 }
03443
#endif
03444
}
03445
else
03446 {
03447 ako0 =
LH_ADR_BEREICH_SEL - ein_regK;
03448 ako1 = ein_regK - ein_regC;
03449 ako2 = ein_regC - ein_regM;
03450 ako3 = ein_regM - ein_regY;
03451
#if LH_LUT_DATA_SIZE_16
03452
#if LH_DATA_OUT_SIZE_16
03453
03454 aVal = ( ako0 * paNewVal0[0] +
03455 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
03456 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
03457 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
03458 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] );
03459 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
03460 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
03461 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
03462 aVal = (aVal >> (
LH_DATA_SHR )) + ( 0 <<
LH_ADR_BREIT_AUS_LUT );
03463 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
03464
03465 aVal = ( ako0 * paNewVal0[1] +
03466 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
03467 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
03468 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
03469 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] );
03470 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
03471 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
03472 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
03473 aVal = (aVal >> (
LH_DATA_SHR )) + ( 1 <<
LH_ADR_BREIT_AUS_LUT );
03474 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
03475
03476 aVal = ( ako0 * paNewVal0[2] +
03477 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
03478 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
03479 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
03480 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] );
03481 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
03482 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
03483 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
03484 aVal = (aVal >> (
LH_DATA_SHR )) + ( 2 <<
LH_ADR_BREIT_AUS_LUT );
03485 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
03486
03487
if(
LH_DATA_OUT_COUNT_4 ){
03488 aVal = ( ako0 * paNewVal0[3] +
03489 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
03490 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
03491 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
03492 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] );
03493 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
03494 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
03495 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
03496 aVal = (aVal >> (
LH_DATA_SHR )) + ( 3 <<
LH_ADR_BREIT_AUS_LUT );
03497 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
03498 }
03499
03500
#else
03501
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
03502 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
03503 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
03504 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
03505 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03506 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
03507 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
03508 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
03509 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
03510 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03511 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
03512 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
03513 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
03514 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
03515 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03516
if(
LH_DATA_OUT_COUNT_4 ){
03517 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
03518 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
03519 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
03520 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
03521 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03522 }
03523
#endif
03524
03525
#else
03526
*output0 = My_OutputLut[(( ako0 * paNewVal0[0] +
03527 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
03528 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
03529 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] +
03530 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+0] )>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)];
03531 *output1 = My_OutputLut[(( ako0 * paNewVal0[1] +
03532 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
03533 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
03534 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] +
03535 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+1] )>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)];
03536 *output2 = My_OutputLut[(( ako0 * paNewVal0[2] +
03537 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
03538 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
03539 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] +
03540 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+2] )>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)];
03541
if(
LH_DATA_OUT_COUNT_4 ){
03542 *output3 = My_OutputLut[(( ako0 * paNewVal0[3] +
03543 ako1 * paNewVal0[(((((((0<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
03544 ako2 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
03545 ako3 * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 0)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] +
03546 ein_regY * paNewVal0[(((((((1<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1)<<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)+3] )>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)];
03547 }
03548
#endif
03549
}
03550 }
03551 }
03552 }
03553
#if LH_DATA_OUT_SIZE_16 && ! LH_LUT_DATA_SIZE_16
03554
*output0 |= (*output0 << 8);
03555 *output1 |= (*output1 << 8);
03556 *output2 |= (*output2 << 8);
03557
if(
LH_DATA_OUT_COUNT_4 ){
03558 *output3 |= (*output3 << 8);
03559 }
03560
#endif
03561
03562
if (Mode ==
LH_CALC_ENGINE_P_TO_P)
03563 {
03564
while (--i)
03565 {
03566 input0 += inputOffset;
03567 input1 += inputOffset;
03568 input2 += inputOffset;
03569 input3 += inputOffset;
03570 output0 += outputOffset;
03571 output1 += outputOffset;
03572 output2 += outputOffset;
03573
if(
LH_DATA_OUT_COUNT_4 ){
03574 output3 += outputOffset;
03575 }
03576
03577
if ((*input0 ^ ein_cache[0]) || (*input1 ^ ein_cache[1]) || (*input2 ^ ein_cache[2]) || (*input3 ^ ein_cache[3]))
03578 {
03579
break;
03580 }
03581 *output0 = output0[-outputOffset];
03582 *output1 = output1[-outputOffset];
03583 *output2 = output2[-outputOffset];
03584
if(
LH_DATA_OUT_COUNT_4 ){
03585 *output3 = output3[-outputOffset];
03586 }
03587 }
03588 }
03589
else if (Mode ==
LH_CALC_ENGINE_P_TO_U)
03590 {
03591
if(
LH_DATA_OUT_COUNT_4 ){
03592 *output4 &= Mask;
03593 }
else{
03594 *output3 &= Mask;
03595 }
03596
while (--i)
03597 {
03598 input0 += inputOffset;
03599 input1 += inputOffset;
03600 input2 += inputOffset;
03601 input3 += inputOffset;
03602 output0 += outputOffset;
03603 output1 += outputOffset;
03604 output2 += outputOffset;
03605 output3 += outputOffset;
03606
if(
LH_DATA_OUT_COUNT_4 ){
03607 output4 += outputOffset;
03608 }
03609
if ((*input0 ^ ein_cache[0]) || (*input1 ^ ein_cache[1]) || (*input2 ^ ein_cache[2]) || (*input3 ^ ein_cache[3]))
03610 {
03611
break;
03612 }
03613 *output0 = output0[-outputOffset];
03614 *output1 = output1[-outputOffset];
03615 *output2 = output2[-outputOffset];
03616
if(
LH_DATA_OUT_COUNT_4 ){
03617 *output3 = output3[-outputOffset];
03618 *output4 &= Mask;
03619 }
else{
03620 *output3 &= Mask;
03621 }
03622 }
03623 }
03624
else
03625 {
03626
if(
LH_DATA_OUT_COUNT_4 ){
03627 *output4 = (
LH_DATA_OUT_TYPE)*input4;
03628 }
else{
03629 *output3 = (
LH_DATA_OUT_TYPE)*input4;
03630 }
03631
while (--i)
03632 {
03633 input0 += inputOffset;
03634 input1 += inputOffset;
03635 input2 += inputOffset;
03636 input3 += inputOffset;
03637 input4 += inputOffset;
03638
03639 output0 += outputOffset;
03640 output1 += outputOffset;
03641 output2 += outputOffset;
03642 output3 += outputOffset;
03643
if(
LH_DATA_OUT_COUNT_4 ){
03644 output4 += outputOffset;
03645 }
03646
if ((*input0 ^ ein_cache[0]) || (*input1 ^ ein_cache[1]) || (*input2 ^ ein_cache[2]) || (*input3 ^ ein_cache[3]))
03647 {
03648
break;
03649 }
03650 *output0 = output0[-outputOffset];
03651 *output1 = output1[-outputOffset];
03652 *output2 = output2[-outputOffset];
03653
if(
LH_DATA_OUT_COUNT_4 ){
03654 *output3 = output3[-outputOffset];
03655 *output4 = (
LH_DATA_OUT_TYPE)*input4;
03656 }
else{
03657 *output3 = (
LH_DATA_OUT_TYPE)*input4;
03658 }
03659 }
03660 }
03661 }
03662
if (--LineCount)
03663 {
03664 j++;
03665 input0 = (
LH_DATA_IN_TYPE *)((
LH_UINT8 *)calcParam->inputData[0] + j * calcParam->cmInputBytesPerLine);
03666 input1 = (
LH_DATA_IN_TYPE *)((
LH_UINT8 *)calcParam->inputData[1] + j * calcParam->cmInputBytesPerLine);
03667 input2 = (
LH_DATA_IN_TYPE *)((
LH_UINT8 *)calcParam->inputData[2] + j * calcParam->cmInputBytesPerLine);
03668 input3 = (
LH_DATA_IN_TYPE *)((
LH_UINT8 *)calcParam->inputData[3] + j * calcParam->cmInputBytesPerLine);
03669 input4 = (
LH_DATA_IN_TYPE *)((
LH_UINT8 *)calcParam->inputData[4] + j * calcParam->cmInputBytesPerLine);
03670
03671 output0 = (
LH_DATA_OUT_TYPE *)((
LH_UINT8 *)calcParam->outputData[0] + j * calcParam->cmOutputBytesPerLine);
03672 output1 = (
LH_DATA_OUT_TYPE *)((
LH_UINT8 *)calcParam->outputData[1] + j * calcParam->cmOutputBytesPerLine);
03673 output2 = (
LH_DATA_OUT_TYPE *)((
LH_UINT8 *)calcParam->outputData[2] + j * calcParam->cmOutputBytesPerLine);
03674 output3 = (
LH_DATA_OUT_TYPE *)((
LH_UINT8 *)calcParam->outputData[3] + j * calcParam->cmOutputBytesPerLine);
03675
if(
LH_DATA_OUT_COUNT_4 ){
03676 output4 = (
LH_DATA_OUT_TYPE *)((
LH_UINT8 *)calcParam->outputData[4] + j * calcParam->cmOutputBytesPerLine);
03677 }
03678 }
03679 }
03680
03681
#endif
03682
}
03683
#else
03684
{
03685
03686
#if smallCode
03687
03688
LH_UINT32 var_0_0_1;
03689
LH_UINT32 var_0_1_1;
03690
LH_UINT32 var_1_1_1;
03691
LH_UINT32 var_0_1_0;
03692
LH_UINT32 var_1_0_1;
03693
LH_UINT32 var_1_1_0;
03694
LH_UINT32 var_1_0_0;
03695
03696
LH_UINT32 ein_regb;
03697
LH_UINT32 ein_regg;
03698
LH_UINT32 ein_regr;
03699
LH_DATA_IN_TYPE ein_cache[3];
03700
LH_LUT_DATA_TYPE * paNewVal0;
03701
LH_UINT32 ako0;
03702
LH_UINT32 ako1;
03703
LH_UINT32 ako2;
03704
03705
LH_UINT8 Mode;
03706
LH_UINT32 PixelCount, LineCount, i, j;
03707
LH_UINT8 LH_DATA_OUT_COUNT;
03708
long inputOffset,outputOffset;
03709
LH_DATA_IN_TYPE * input0 = (
LH_DATA_IN_TYPE *)calcParam->inputData[0];
03710
LH_DATA_IN_TYPE * input1 = (
LH_DATA_IN_TYPE *)calcParam->inputData[1];
03711
LH_DATA_IN_TYPE * input2 = (
LH_DATA_IN_TYPE *)calcParam->inputData[2];
03712
LH_DATA_IN_TYPE * input3 = (
LH_DATA_IN_TYPE *)calcParam->inputData[3];
03713
03714
LH_DATA_OUT_TYPE * output0 = (
LH_DATA_OUT_TYPE *)calcParam->outputData[0];
03715
LH_DATA_OUT_TYPE * output1 = (
LH_DATA_OUT_TYPE *)calcParam->outputData[1];
03716
LH_DATA_OUT_TYPE * output2 = (
LH_DATA_OUT_TYPE *)calcParam->outputData[2];
03717
LH_DATA_OUT_TYPE * output3 = (
LH_DATA_OUT_TYPE *)calcParam->outputData[3];
03718
LH_DATA_OUT_TYPE * output4 = (
LH_DATA_OUT_TYPE *)calcParam->outputData[4];
03719
03720
LH_UINT16 * My_InputLut = (
LH_UINT16 *)lutParam->inputLut;
03721
LH_LUT_DATA_TYPE * My_OutputLut = (
LH_LUT_DATA_TYPE *)lutParam->outputLut;
03722
LH_LUT_DATA_TYPE * My_ColorLut = (
LH_LUT_DATA_TYPE *)lutParam->colorLut;
03723
03724
LH_DATA_OUT_TYPE Mask = (
LH_DATA_OUT_TYPE)-1;
03725
03726
#ifdef DEBUG_OUTPUT
03727
CMError err =
noErr;
03728
#endif
03729
03730
LH_START_PROC(LH_CALC_PROC_NAME)
03731
03732 if( LH_DATA_OUT_COUNT_4 ){
03733
LH_DATA_OUT_COUNT = 4;
03734 }
else{
03735
LH_DATA_OUT_COUNT = 3;
03736 }
03737
03738 var_0_0_1 = ((((0 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT;
03739 var_0_1_1 = ((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT;
03740 var_1_1_1 = ((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT;
03741 var_0_1_0 = ((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT;
03742 var_1_0_1 = ((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT;
03743 var_1_1_0 = ((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT;
03744 var_1_0_0 = ((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT;
03745
03746
#if LH_DATA_IN_SIZE_16
03747
inputOffset = (
long)calcParam->cmInputPixelOffset / 2;
03748
#else
03749
inputOffset = (
long)calcParam->cmInputPixelOffset;
03750
#endif
03751
#if LH_DATA_OUT_SIZE_16
03752
outputOffset = (
long)calcParam->cmOutputPixelOffset / 2;
03753
#else
03754
outputOffset = (
long)calcParam->cmOutputPixelOffset;
03755
#endif
03756
03757
if (calcParam->clearMask)
03758 Mask = 0;
03759 Mode =
LH_CALC_ENGINE_UNDEF_MODE;
03760
03761
03762
if ((calcParam->cmInputPixelOffset * calcParam->cmPixelPerLine == calcParam->cmInputBytesPerLine) && (calcParam->cmOutputPixelOffset * calcParam->cmPixelPerLine == calcParam->cmOutputBytesPerLine))
03763 {
03764 PixelCount = calcParam->cmPixelPerLine * calcParam->cmLineCount;
03765 LineCount = 1;
03766 }
03767
else
03768 {
03769 PixelCount = calcParam->cmPixelPerLine;
03770 LineCount = calcParam->cmLineCount;
03771 }
03772
if (calcParam->copyAlpha )
03773 {
03774 Mode =
LH_CALC_ENGINE_U_TO_U;
03775 }
03776
else
03777 {
03778
if (calcParam->clearMask)
03779 Mode =
LH_CALC_ENGINE_P_TO_U;
03780
else
03781 Mode =
LH_CALC_ENGINE_P_TO_P;
03782 }
03783 j = 0;
03784
while (LineCount)
03785 {
03786 i = PixelCount;
03787
while (i)
03788 {
03789
#if LH_LUT_DATA_SIZE_16
03790
#if LH_DATA_IN_SIZE_16 || LH_DATA_OUT_SIZE_16
03791
register LH_UINT32 ko;
03792
#endif
03793
#if LH_DATA_IN_SIZE_16
03794
register LH_DATA_IN_TYPE aValIn;
03795
#endif
03796
#if LH_DATA_OUT_SIZE_16
03797
register LH_UINT32 aVal;
03798
#endif
03799
#if LH_DATA_IN_SIZE_16
03800
aValIn = (ein_cache[0]=*input0) - ( *input0 >> (
LH_ADR_BREIT_EIN_LUT ));
03801 ko = aValIn & ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT ))-1 );
03802 aValIn = (
LH_DATA_IN_TYPE)((aValIn >> ( 16-
LH_ADR_BREIT_EIN_LUT )) + ( 0 <<
LH_ADR_BREIT_EIN_LUT ));
03803 ein_regr = ( My_InputLut[aValIn] * ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT )) - ko ) + My_InputLut[aValIn +1] * ko ) >>( 16-
LH_ADR_BREIT_EIN_LUT );
03804
03805 aValIn = (ein_cache[1]=*input1) - ( *input1 >> (
LH_ADR_BREIT_EIN_LUT ));
03806 ko = aValIn & ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT ))-1 );
03807 aValIn = (
LH_DATA_IN_TYPE)((aValIn >> ( 16-
LH_ADR_BREIT_EIN_LUT )) + ( 1 <<
LH_ADR_BREIT_EIN_LUT ));
03808 ein_regg = ( My_InputLut[aValIn] * ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT )) - ko ) + My_InputLut[aValIn +1] * ko ) >> ( 16-
LH_ADR_BREIT_EIN_LUT );
03809
03810 aValIn = (ein_cache[2]=*input2) - ( *input2 >> (
LH_ADR_BREIT_EIN_LUT ));
03811 ko = aValIn & ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT ))-1 );
03812 aValIn = (
LH_DATA_IN_TYPE)((aValIn >> ( 16-
LH_ADR_BREIT_EIN_LUT )) + ( 2 <<
LH_ADR_BREIT_EIN_LUT ));
03813 ein_regb = ( My_InputLut[aValIn] * ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT )) - ko ) + My_InputLut[aValIn +1] * ko ) >> ( 16-
LH_ADR_BREIT_EIN_LUT );
03814
#else
03815
ein_regr = My_InputLut[(ein_cache[0]=*input0) + ( 0 <<
LH_ADR_BREIT_EIN_LUT )];
03816 ein_regg = My_InputLut[(ein_cache[1]=*input1) + ( 1 <<
LH_ADR_BREIT_EIN_LUT )];
03817 ein_regb = My_InputLut[(ein_cache[2]=*input2) + ( 2 <<
LH_ADR_BREIT_EIN_LUT )];
03818
#endif
03819
#else
03820
#if LH_DATA_IN_SIZE_16
03821
register LH_DATA_IN_TYPE aValIn;
03822
register LH_UINT32 ko;
03823 aValIn = (ein_cache[0]=*input0) - ( *input0 >> (
LH_ADR_BREIT_EIN_LUT ));
03824 ko = aValIn & ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT ))-1 );
03825 aValIn = (
LH_DATA_IN_TYPE)((aValIn >> ( 16-
LH_ADR_BREIT_EIN_LUT )) + ( 0 <<
LH_ADR_BREIT_EIN_LUT ));
03826 ein_regr = ( My_InputLut[aValIn] * ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT )) - ko ) + My_InputLut[aValIn +1] * ko ) >>( 10-
LH_ADR_BREIT_EIN_LUT );
03827
03828 aValIn = (ein_cache[1]=*input1) - ( *input1 >> (
LH_ADR_BREIT_EIN_LUT ));
03829 ko = aValIn & ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT ))-1 );
03830 aValIn = (
LH_DATA_IN_TYPE)((aValIn >> ( 16-
LH_ADR_BREIT_EIN_LUT )) + ( 1 <<
LH_ADR_BREIT_EIN_LUT ));
03831 ein_regg = ( My_InputLut[aValIn] * ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT )) - ko ) + My_InputLut[aValIn +1] * ko ) >> ( 10-
LH_ADR_BREIT_EIN_LUT );
03832
03833 aValIn = (ein_cache[2]=*input2) - ( *input2 >> (
LH_ADR_BREIT_EIN_LUT ));
03834 ko = aValIn & ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT ))-1 );
03835 aValIn = (
LH_DATA_IN_TYPE)((aValIn >> ( 16-
LH_ADR_BREIT_EIN_LUT )) + ( 2 <<
LH_ADR_BREIT_EIN_LUT ));
03836 ein_regb = ( My_InputLut[aValIn] * ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT )) - ko ) + My_InputLut[aValIn +1] * ko ) >> ( 10-
LH_ADR_BREIT_EIN_LUT );
03837
03838
03839
03840
#else
03841
ein_regr = My_InputLut[(ein_cache[0]=*input0) + ( 0 <<
LH_ADR_BREIT_EIN_LUT )];
03842 ein_regg = My_InputLut[(ein_cache[1]=*input1) + ( 1 <<
LH_ADR_BREIT_EIN_LUT )];
03843 ein_regb = My_InputLut[(ein_cache[2]=*input2) + ( 2 <<
LH_ADR_BREIT_EIN_LUT )];
03844
#endif
03845
#endif
03846
paNewVal0 = (
LH_LUT_DATA_TYPE *)My_ColorLut +
03847 ((((((ein_regr &
LH_BIT_MASKE_ADR) <<
LH_BIT_BREIT_ADR) +
03848 (ein_regg &
LH_BIT_MASKE_ADR))>> (
LH_BIT_BREIT_SELEKTOR-
LH_BIT_BREIT_ADR)) +
03849 (ein_regb >>
LH_BIT_BREIT_SELEKTOR))*
LH_DATA_OUT_COUNT);
03850 ein_regr &=
LH_BIT_MASKE_SELEKTOR;
03851 ein_regg &=
LH_BIT_MASKE_SELEKTOR;
03852 ein_regb &=
LH_BIT_MASKE_SELEKTOR;
03853
if (ein_regb >= ein_regr)
03854 {
03855
if (ein_regg >= ein_regr)
03856 {
03857
if (ein_regb >= ein_regg)
03858 {
03859 ako0 = (
LH_ADR_BEREICH_SEL) - ein_regb;
03860 ako1 = ein_regb - ein_regg;
03861 ako2 = ein_regg - ein_regr;
03862 ein_regb = ein_regr;
03863 ein_regr = var_0_0_1;
03864 ein_regg = var_0_1_1;
03865 }
03866
else
03867 {
03868 ako0 = (
LH_ADR_BEREICH_SEL) - ein_regg;
03869 ako1 = ein_regg - ein_regb;
03870 ako2 = ein_regb - ein_regr;
03871 ein_regb = ein_regr;
03872 ein_regr = var_0_1_0;
03873 ein_regg = var_0_1_1;
03874 }
03875 }
03876
else
03877 {
03878 ako0 = (
LH_ADR_BEREICH_SEL) - ein_regb;
03879 ako1 = ein_regb - ein_regr;
03880 ako2 = ein_regr - ein_regg;
03881 ein_regb = ein_regg;
03882 ein_regr = var_0_0_1;
03883 ein_regg = var_1_0_1;
03884 }
03885 }
03886
else
03887 {
03888
if (ein_regg >= ein_regr)
03889 {
03890 ako0 = (
LH_ADR_BEREICH_SEL) - ein_regg;
03891 ako1 = ein_regg - ein_regr;
03892 ako2 = ein_regr - ein_regb;
03893 ein_regr = var_0_1_0;
03894 ein_regg = var_1_1_0;
03895 }
03896
else
03897 {
03898
if (ein_regb >= ein_regg)
03899 {
03900 ako0 = (
LH_ADR_BEREICH_SEL) - ein_regr;
03901 ako1 = ein_regr - ein_regb;
03902 ako2 = ein_regb - ein_regg;
03903 ein_regb = ein_regg;
03904 ein_regr = var_1_0_0;
03905 ein_regg = var_1_0_1;
03906 }
03907
else
03908 {
03909 ako0 = (
LH_ADR_BEREICH_SEL) - ein_regr;
03910 ako1 = ein_regr - ein_regg;
03911 ako2 = ein_regg - ein_regb;
03912 ein_regr = var_1_0_0;
03913 ein_regg = var_1_1_0;
03914 }
03915 }
03916 }
03917
03918
#if LH_LUT_DATA_SIZE_16
03919
#if LH_DATA_OUT_SIZE_16
03920
aVal = (ako0 * paNewVal0[0] +
03921 ako1 * paNewVal0[ein_regr] +
03922 ako2 * paNewVal0[ein_regg] +
03923 ein_regb * paNewVal0[var_1_1_1]);
03924 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
03925 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
03926 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
03927 aVal = (aVal >> (
LH_DATA_SHR )) + ( 0 <<
LH_ADR_BREIT_AUS_LUT );
03928 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
03929
03930 paNewVal0++;
03931 aVal = (ako0 * paNewVal0[0] +
03932 ako1 * paNewVal0[ein_regr] +
03933 ako2 * paNewVal0[ein_regg] +
03934 ein_regb * paNewVal0[var_1_1_1]);
03935 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
03936 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
03937 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
03938 aVal = (aVal >> (
LH_DATA_SHR )) + ( 1 <<
LH_ADR_BREIT_AUS_LUT );
03939 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
03940
03941 paNewVal0++;
03942 aVal = (ako0 * paNewVal0[0] +
03943 ako1 * paNewVal0[ein_regr] +
03944 ako2 * paNewVal0[ein_regg] +
03945 ein_regb * paNewVal0[var_1_1_1]);
03946 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
03947 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
03948 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
03949 aVal = (aVal >> (
LH_DATA_SHR )) + ( 2 <<
LH_ADR_BREIT_AUS_LUT );
03950 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
03951
03952
if(
LH_DATA_OUT_COUNT_4 ){
03953 paNewVal0++;
03954 aVal = (ako0 * paNewVal0[0] +
03955 ako1 * paNewVal0[ein_regr] +
03956 ako2 * paNewVal0[ein_regg] +
03957 ein_regb * paNewVal0[var_1_1_1]);
03958 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
03959 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
03960 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
03961 aVal = (aVal >> (
LH_DATA_SHR )) + ( 3 <<
LH_ADR_BREIT_AUS_LUT );
03962 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
03963 }
03964
#else
03965
*output0 = My_OutputLut[((ako0 * paNewVal0[0] +
03966 ako1 * paNewVal0[ein_regr] +
03967 ako2 * paNewVal0[ein_regg] +
03968 ein_regb * paNewVal0[var_1_1_1])>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03969 paNewVal0++;
03970 *output1 = My_OutputLut[((ako0 * paNewVal0[0] +
03971 ako1 * paNewVal0[ein_regr] +
03972 ako2 * paNewVal0[ein_regg] +
03973 ein_regb * paNewVal0[var_1_1_1])>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03974 paNewVal0++;
03975 *output2 = My_OutputLut[((ako0 * paNewVal0[0] +
03976 ako1 * paNewVal0[ein_regr] +
03977 ako2 * paNewVal0[ein_regg] +
03978 ein_regb * paNewVal0[var_1_1_1])>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03979
if(
LH_DATA_OUT_COUNT_4 ){
03980 paNewVal0++;
03981 *output3 = My_OutputLut[((ako0 * paNewVal0[0] +
03982 ako1 * paNewVal0[ein_regr] +
03983 ako2 * paNewVal0[ein_regg] +
03984 ein_regb * paNewVal0[var_1_1_1])>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
03985 }
03986
#endif
03987
03988
#else
03989
03990 *output0 = My_OutputLut[((ako0 * paNewVal0[0] +
03991 ako1 * paNewVal0[ein_regr] +
03992 ako2 * paNewVal0[ein_regg] +
03993 ein_regb * paNewVal0[var_1_1_1])>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)];
03994
03995 paNewVal0++;
03996 *output1 = My_OutputLut[((ako0 * paNewVal0[0] +
03997 ako1 * paNewVal0[ein_regr] +
03998 ako2 * paNewVal0[ein_regg] +
03999 ein_regb * paNewVal0[var_1_1_1])>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)];
04000
04001 paNewVal0++;
04002 *output2 = My_OutputLut[((ako0 * paNewVal0[0] +
04003 ako1 * paNewVal0[ein_regr] +
04004 ako2 * paNewVal0[ein_regg] +
04005 ein_regb * paNewVal0[var_1_1_1])>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)];
04006
04007
if(
LH_DATA_OUT_COUNT_4 ){
04008 paNewVal0++;
04009 *output3 = My_OutputLut[((ako0 * paNewVal0[0] +
04010 ako1 * paNewVal0[ein_regr] +
04011 ako2 * paNewVal0[ein_regg] +
04012 ein_regb * paNewVal0[var_1_1_1])>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)];
04013 }
04014
#endif
04015
04016
#if LH_DATA_OUT_SIZE_16 && ! LH_LUT_DATA_SIZE_16
04017
*output0 |= (*output0 << 8);
04018 *output1 |= (*output1 << 8);
04019 *output2 |= (*output2 << 8);
04020
if(
LH_DATA_OUT_COUNT_4 ){
04021 *output3 |= (*output3 << 8);
04022 }
04023
#endif
04024
04025
if (Mode ==
LH_CALC_ENGINE_P_TO_P)
04026 {
04027
while (--i)
04028 {
04029 input0 += inputOffset;
04030 input1 += inputOffset;
04031 input2 += inputOffset;
04032 output0 += outputOffset;
04033 output1 += outputOffset;
04034 output2 += outputOffset;
04035
if(
LH_DATA_OUT_COUNT_4 ){
04036 output3 += outputOffset;
04037 }
04038
04039
if ((*input0 ^ ein_cache[0]) || (*input1 ^ ein_cache[1]) || (*input2 ^ ein_cache[2]))
04040 {
04041
break;
04042 }
04043 *output0 = output0[-outputOffset];
04044 *output1 = output1[-outputOffset];
04045 *output2 = output2[-outputOffset];
04046
if(
LH_DATA_OUT_COUNT_4 ){
04047 *output3 = output3[-outputOffset];
04048 }
04049 }
04050 }
04051
else if (Mode ==
LH_CALC_ENGINE_P_TO_U)
04052 {
04053
if(
LH_DATA_OUT_COUNT_4 ){
04054 *output4 &= Mask;
04055 }
else{
04056 *output3 &= Mask;
04057 }
04058
while (--i)
04059 {
04060 input0 += inputOffset;
04061 input1 += inputOffset;
04062 input2 += inputOffset;
04063 output0 += outputOffset;
04064 output1 += outputOffset;
04065 output2 += outputOffset;
04066 output3 += outputOffset;
04067
if(
LH_DATA_OUT_COUNT_4 ){
04068 output4 += outputOffset;
04069 }
04070
if ((*input0 ^ ein_cache[0]) || (*input1 ^ ein_cache[1]) || (*input2 ^ ein_cache[2]))
04071 {
04072
break;
04073 }
04074 *output0 = output0[-outputOffset];
04075 *output1 = output1[-outputOffset];
04076 *output2 = output2[-outputOffset];
04077
if(
LH_DATA_OUT_COUNT_4 ){
04078 *output3 = output3[-outputOffset];
04079 *output4 &= Mask;
04080 }
else{
04081 *output3 &= Mask;
04082 }
04083 }
04084 }
04085
else
04086 {
04087
if(
LH_DATA_OUT_COUNT_4 ){
04088 *output4 = (
LH_DATA_OUT_TYPE)*input3;
04089 }
else{
04090 *output3 = (
LH_DATA_OUT_TYPE)*input3;
04091 }
04092
while (--i)
04093 {
04094 input0 += inputOffset;
04095 input1 += inputOffset;
04096 input2 += inputOffset;
04097 input3 += inputOffset;
04098
04099 output0 += outputOffset;
04100 output1 += outputOffset;
04101 output2 += outputOffset;
04102 output3 += outputOffset;
04103
if(
LH_DATA_OUT_COUNT_4 ){
04104 output4 += outputOffset;
04105 }
04106
if ((*input0 ^ ein_cache[0]) || (*input1 ^ ein_cache[1]) || (*input2 ^ ein_cache[2]))
04107 {
04108
break;
04109 }
04110 *output0 = output0[-outputOffset];
04111 *output1 = output1[-outputOffset];
04112 *output2 = output2[-outputOffset];
04113
if(
LH_DATA_OUT_COUNT_4 ){
04114 *output3 = output3[-outputOffset];
04115 *output4 = (
LH_DATA_OUT_TYPE)*input3;
04116 }
else{
04117 *output3 = (
LH_DATA_OUT_TYPE)*input3;
04118 }
04119 }
04120 }
04121 }
04122
if (--LineCount)
04123 {
04124 j++;
04125 input0 = (
LH_DATA_IN_TYPE *)((
LH_UINT8 *)calcParam->inputData[0] + j * calcParam->cmInputBytesPerLine);
04126 input1 = (
LH_DATA_IN_TYPE *)((
LH_UINT8 *)calcParam->inputData[1] + j * calcParam->cmInputBytesPerLine);
04127 input2 = (
LH_DATA_IN_TYPE *)((
LH_UINT8 *)calcParam->inputData[2] + j * calcParam->cmInputBytesPerLine);
04128 input3 = (
LH_DATA_IN_TYPE *)((
LH_UINT8 *)calcParam->inputData[3] + j * calcParam->cmInputBytesPerLine);
04129
04130 output0 = (
LH_DATA_OUT_TYPE *)((
LH_UINT8 *)calcParam->outputData[0] + j * calcParam->cmOutputBytesPerLine);
04131 output1 = (
LH_DATA_OUT_TYPE *)((
LH_UINT8 *)calcParam->outputData[1] + j * calcParam->cmOutputBytesPerLine);
04132 output2 = (
LH_DATA_OUT_TYPE *)((
LH_UINT8 *)calcParam->outputData[2] + j * calcParam->cmOutputBytesPerLine);
04133 output3 = (
LH_DATA_OUT_TYPE *)((
LH_UINT8 *)calcParam->outputData[3] + j * calcParam->cmOutputBytesPerLine);
04134
if(
LH_DATA_OUT_COUNT_4 ){
04135 output4 = (
LH_DATA_OUT_TYPE *)((
LH_UINT8 *)calcParam->outputData[4] + j * calcParam->cmOutputBytesPerLine);
04136 }
04137 }
04138 }
04139
LH_END_PROC(LH_CALC_PROC_NAME)
04140 return 0;
04141 #else
04142 LH_UINT32 ein_regb;
04143 LH_UINT32 ein_regg;
04144 LH_UINT32 ein_regr;
04145 LH_LUT_DATA_TYPE * paNewVal0;
04146 LH_UINT32 ako0;
04147 LH_UINT32 ako1;
04148 LH_UINT32 ako2;
04149
04150 LH_UINT8 Mode;
04151 LH_UINT32 PixelCount, LineCount, i, j;
04152 LH_UINT8 LH_DATA_OUT_COUNT;
04153
long inputOffset,outputOffset;
04154 LH_DATA_IN_TYPE * input0 = (LH_DATA_IN_TYPE *)calcParam->inputData[0];
04155 LH_DATA_IN_TYPE * input1 = (LH_DATA_IN_TYPE *)calcParam->inputData[1];
04156 LH_DATA_IN_TYPE * input2 = (LH_DATA_IN_TYPE *)calcParam->inputData[2];
04157 LH_DATA_IN_TYPE * input3 = (LH_DATA_IN_TYPE *)calcParam->inputData[3];
04158
04159 LH_DATA_OUT_TYPE * output0 = (LH_DATA_OUT_TYPE *)calcParam->outputData[0];
04160 LH_DATA_OUT_TYPE * output1 = (LH_DATA_OUT_TYPE *)calcParam->outputData[1];
04161 LH_DATA_OUT_TYPE * output2 = (LH_DATA_OUT_TYPE *)calcParam->outputData[2];
04162 LH_DATA_OUT_TYPE * output3 = (LH_DATA_OUT_TYPE *)calcParam->outputData[3];
04163 LH_DATA_OUT_TYPE * output4 = (LH_DATA_OUT_TYPE *)calcParam->outputData[4];
04164
04165 LH_UINT16 * My_InputLut = (LH_UINT16 *)lutParam->inputLut;
04166 LH_LUT_DATA_TYPE * My_OutputLut = (LH_LUT_DATA_TYPE *)lutParam->outputLut;
04167 LH_LUT_DATA_TYPE * My_ColorLut = (LH_LUT_DATA_TYPE *)lutParam->colorLut;
04168
04169 LH_DATA_OUT_TYPE Mask = (LH_DATA_OUT_TYPE)-1;
04170
04171 #ifdef DEBUG_OUTPUT
04172 CMError err = noErr;
04173 #endif
04174 LH_START_PROC(LH_CALC_PROC_NAME)
04175
04176 if( LH_DATA_OUT_COUNT_4 ){
04177
LH_DATA_OUT_COUNT = 4;
04178 }
else{
04179
LH_DATA_OUT_COUNT = 3;
04180 }
04181
#if LH_DATA_IN_SIZE_16
04182
inputOffset = (
long)calcParam->cmInputPixelOffset / 2;
04183
#else
04184
inputOffset = (
long)calcParam->cmInputPixelOffset;
04185
#endif
04186
#if LH_DATA_OUT_SIZE_16
04187
outputOffset = (
long)calcParam->cmOutputPixelOffset / 2;
04188
#else
04189
outputOffset = (
long)calcParam->cmOutputPixelOffset;
04190
#endif
04191
04192
if (calcParam->clearMask)
04193 Mask = 0;
04194 Mode =
LH_CALC_ENGINE_UNDEF_MODE;
04195
04196
04197
if ((calcParam->cmInputPixelOffset * calcParam->cmPixelPerLine == calcParam->cmInputBytesPerLine) && (calcParam->cmOutputPixelOffset * calcParam->cmPixelPerLine == calcParam->cmOutputBytesPerLine))
04198 {
04199 PixelCount = calcParam->cmPixelPerLine * calcParam->cmLineCount;
04200 LineCount = 1;
04201 }
04202
else
04203 {
04204 PixelCount = calcParam->cmPixelPerLine;
04205 LineCount = calcParam->cmLineCount;
04206 }
04207
if (calcParam->copyAlpha )
04208 {
04209 Mode =
LH_CALC_ENGINE_U_TO_U;
04210 }
04211
else
04212 {
04213
if (calcParam->clearMask)
04214 Mode =
LH_CALC_ENGINE_P_TO_U;
04215
else
04216 Mode =
LH_CALC_ENGINE_P_TO_P;
04217 }
04218 j = 0;
04219
while (LineCount)
04220 {
04221 i = PixelCount;
04222
while (i)
04223 {
04224
#if LH_LUT_DATA_SIZE_16
04225
#if LH_DATA_IN_SIZE_16 || LH_DATA_OUT_SIZE_16
04226
register LH_UINT32 ko;
04227
#endif
04228
#if LH_DATA_IN_SIZE_16
04229
register LH_DATA_IN_TYPE aValIn;
04230
#endif
04231
#if LH_DATA_OUT_SIZE_16
04232
register LH_UINT32 aVal;
04233
#endif
04234
#if LH_DATA_IN_SIZE_16
04235
aValIn = (ein_cache[0]=*input0) - ( *input0 >> (
LH_ADR_BREIT_EIN_LUT ));
04236 ko = aValIn & ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT ))-1 );
04237 aValIn = (aValIn >> ( 16-
LH_ADR_BREIT_EIN_LUT )) + ( 0 <<
LH_ADR_BREIT_EIN_LUT );
04238 ein_regr = ( My_InputLut[aValIn] * ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT )) - ko ) + My_InputLut[aValIn +1] * ko ) >>( 16-
LH_ADR_BREIT_EIN_LUT );
04239
04240 aValIn = (ein_cache[1]=*input1) - ( *input1 >> (
LH_ADR_BREIT_EIN_LUT ));
04241 ko = aValIn & ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT ))-1 );
04242 aValIn = (aValIn >> ( 16-
LH_ADR_BREIT_EIN_LUT )) + ( 1 <<
LH_ADR_BREIT_EIN_LUT );
04243 ein_regg = ( My_InputLut[aValIn] * ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT )) - ko ) + My_InputLut[aValIn +1] * ko ) >> ( 16-
LH_ADR_BREIT_EIN_LUT );
04244
04245 aValIn = (ein_cache[2]=*input2) - ( *input2 >> (
LH_ADR_BREIT_EIN_LUT ));
04246 ko = aValIn & ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT ))-1 );
04247 aValIn = (aValIn >> ( 16-
LH_ADR_BREIT_EIN_LUT )) + ( 2 <<
LH_ADR_BREIT_EIN_LUT );
04248 ein_regb = ( My_InputLut[aValIn] * ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT )) - ko ) + My_InputLut[aValIn +1] * ko ) >> ( 16-
LH_ADR_BREIT_EIN_LUT );
04249
#else
04250
ein_regr = My_InputLut[(ein_cache[0]=*input0) + ( 0 <<
LH_ADR_BREIT_EIN_LUT )];
04251 ein_regg = My_InputLut[(ein_cache[1]=*input1) + ( 1 <<
LH_ADR_BREIT_EIN_LUT )];
04252 ein_regb = My_InputLut[(ein_cache[2]=*input2) + ( 2 <<
LH_ADR_BREIT_EIN_LUT )];
04253
#endif
04254
#else
04255
#if LH_DATA_IN_SIZE_16
04256
register LH_DATA_IN_TYPE aValIn;
04257
register LH_UINT32 ko;
04258 aValIn = (ein_cache[0]=*input0) - ( *input0 >> (
LH_ADR_BREIT_EIN_LUT ));
04259 ko = aValIn & ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT ))-1 );
04260 aValIn = (aValIn >> ( 16-
LH_ADR_BREIT_EIN_LUT )) + ( 0 <<
LH_ADR_BREIT_EIN_LUT );
04261 ein_regr = ( My_InputLut[aValIn] * ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT )) - ko ) + My_InputLut[aValIn +1] * ko ) >>( 10-
LH_ADR_BREIT_EIN_LUT );
04262
04263 aValIn = (ein_cache[1]=*input1) - ( *input1 >> (
LH_ADR_BREIT_EIN_LUT ));
04264 ko = aValIn & ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT ))-1 );
04265 aValIn = (aValIn >> ( 16-
LH_ADR_BREIT_EIN_LUT )) + ( 1 <<
LH_ADR_BREIT_EIN_LUT );
04266 ein_regg = ( My_InputLut[aValIn] * ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT )) - ko ) + My_InputLut[aValIn +1] * ko ) >> ( 10-
LH_ADR_BREIT_EIN_LUT );
04267
04268 aValIn = (ein_cache[2]=*input2) - ( *input2 >> (
LH_ADR_BREIT_EIN_LUT ));
04269 ko = aValIn & ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT ))-1 );
04270 aValIn = (aValIn >> ( 16-
LH_ADR_BREIT_EIN_LUT )) + ( 2 <<
LH_ADR_BREIT_EIN_LUT );
04271 ein_regb = ( My_InputLut[aValIn] * ( (1<<( 16-
LH_ADR_BREIT_EIN_LUT )) - ko ) + My_InputLut[aValIn +1] * ko ) >> ( 10-
LH_ADR_BREIT_EIN_LUT );
04272
04273
04274
04275
#else
04276
ein_regr = My_InputLut[(ein_cache[0]=*input0) + ( 0 <<
LH_ADR_BREIT_EIN_LUT )];
04277 ein_regg = My_InputLut[(ein_cache[1]=*input1) + ( 1 <<
LH_ADR_BREIT_EIN_LUT )];
04278 ein_regb = My_InputLut[(ein_cache[2]=*input2) + ( 2 <<
LH_ADR_BREIT_EIN_LUT )];
04279
#endif
04280
#endif
04281
paNewVal0 = (
LH_LUT_DATA_TYPE *)My_ColorLut +
04282 ((((((ein_regr &
LH_BIT_MASKE_ADR) <<
LH_BIT_BREIT_ADR) +
04283 (ein_regg &
LH_BIT_MASKE_ADR))>> (
LH_BIT_BREIT_SELEKTOR-
LH_BIT_BREIT_ADR)) +
04284 (ein_regb >>
LH_BIT_BREIT_SELEKTOR))*
LH_DATA_OUT_COUNT);
04285 ein_regr &=
LH_BIT_MASKE_SELEKTOR;
04286 ein_regg &=
LH_BIT_MASKE_SELEKTOR;
04287 ein_regb &=
LH_BIT_MASKE_SELEKTOR;
04288
if (ein_regb >= ein_regr)
04289 {
04290
if (ein_regg >= ein_regr)
04291 {
04292
if (ein_regb >= ein_regg)
04293 {
04294 ako0 = (
LH_ADR_BEREICH_SEL) - ein_regb;
04295 ako1 = ein_regb - ein_regg;
04296 ako2 = ein_regg - ein_regr;
04297
#if LH_LUT_DATA_SIZE_16
04298
#if LH_DATA_OUT_SIZE_16
04299
04300 aVal = (ako0 * paNewVal0[0] +
04301 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04302 ako2 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04303 ein_regr * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)]);
04304 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
04305 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
04306 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
04307 aVal = (aVal >> (
LH_DATA_SHR )) + ( 0 <<
LH_ADR_BREIT_AUS_LUT );
04308 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
04309
04310 paNewVal0++;
04311 aVal = (ako0 * paNewVal0[0] +
04312 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04313 ako2 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04314 ein_regr * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)]);
04315 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
04316 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
04317 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
04318 aVal = (aVal >> (
LH_DATA_SHR )) + ( 1 <<
LH_ADR_BREIT_AUS_LUT );
04319 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
04320
04321 paNewVal0++;
04322 aVal = (ako0 * paNewVal0[0] +
04323 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04324 ako2 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04325 ein_regr * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)]);
04326 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
04327 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
04328 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
04329 aVal = (aVal >> (
LH_DATA_SHR )) + ( 2 <<
LH_ADR_BREIT_AUS_LUT );
04330 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
04331
04332
if(
LH_DATA_OUT_COUNT_4 ){
04333 paNewVal0++;
04334 aVal = (ako0 * paNewVal0[0] +
04335 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04336 ako2 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04337 ein_regr * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)]);
04338 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
04339 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
04340 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
04341 aVal = (aVal >> (
LH_DATA_SHR )) + ( 3 <<
LH_ADR_BREIT_AUS_LUT );
04342 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
04343 }
04344
04345
#else
04346
*output0 = My_OutputLut[((ako0 * paNewVal0[0] +
04347 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04348 ako2 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04349 ein_regr * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
04350 paNewVal0++;
04351 *output1 = My_OutputLut[((ako0 * paNewVal0[0] +
04352 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04353 ako2 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04354 ein_regr * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
04355 paNewVal0++;
04356 *output2 = My_OutputLut[((ako0 * paNewVal0[0] +
04357 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04358 ako2 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04359 ein_regr * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
04360
if(
LH_DATA_OUT_COUNT_4 ){
04361 paNewVal0++;
04362 *output3 = My_OutputLut[((ako0 * paNewVal0[0] +
04363 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04364 ako2 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04365 ein_regr * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
04366 }
04367
#endif
04368
04369
#else
04370
*output0 = My_OutputLut[((ako0 * paNewVal0[0] +
04371 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04372 ako2 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04373 ein_regr * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)];
04374 paNewVal0++;
04375 *output1 = My_OutputLut[((ako0 * paNewVal0[0] +
04376 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04377 ako2 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04378 ein_regr * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)];
04379 paNewVal0++;
04380 *output2 = My_OutputLut[((ako0 * paNewVal0[0] +
04381 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04382 ako2 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04383 ein_regr * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)];
04384
if(
LH_DATA_OUT_COUNT_4 ){
04385 paNewVal0++;
04386 *output3 = My_OutputLut[((ako0 * paNewVal0[0] +
04387 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04388 ako2 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04389 ein_regr * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)];
04390 }
04391
#endif
04392
}
04393
else
04394 {
04395 ako0 = (
LH_ADR_BEREICH_SEL) - ein_regg;
04396 ako1 = ein_regg - ein_regb;
04397 ako2 = ein_regb - ein_regr;
04398
#if LH_LUT_DATA_SIZE_16
04399
#if LH_DATA_OUT_SIZE_16
04400
04401 aVal = (ako0 * paNewVal0[0] +
04402 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04403 ako2 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04404 ein_regr * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)]);
04405 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
04406 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
04407 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
04408 aVal = (aVal >> (
LH_DATA_SHR )) + ( 0 <<
LH_ADR_BREIT_AUS_LUT );
04409 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
04410
04411 paNewVal0++;
04412 aVal = (ako0 * paNewVal0[0] +
04413 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04414 ako2 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04415 ein_regr * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)]);
04416 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
04417 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
04418 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
04419 aVal = (aVal >> (
LH_DATA_SHR )) + ( 1 <<
LH_ADR_BREIT_AUS_LUT );
04420 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
04421
04422 paNewVal0++;
04423 aVal = (ako0 * paNewVal0[0] +
04424 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04425 ako2 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04426 ein_regr * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)]);
04427 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
04428 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
04429 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
04430 aVal = (aVal >> (
LH_DATA_SHR )) + ( 2 <<
LH_ADR_BREIT_AUS_LUT );
04431 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
04432
04433
if(
LH_DATA_OUT_COUNT_4 ){
04434 paNewVal0++;
04435 aVal = (ako0 * paNewVal0[0] +
04436 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04437 ako2 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04438 ein_regr * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)]);
04439 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
04440 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
04441 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
04442 aVal = (aVal >> (
LH_DATA_SHR )) + ( 3 <<
LH_ADR_BREIT_AUS_LUT );
04443 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
04444 }
04445
04446
#else
04447
*output0 = My_OutputLut[((ako0 * paNewVal0[0] +
04448 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04449 ako2 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04450 ein_regr * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
04451 paNewVal0++;
04452 *output1 = My_OutputLut[((ako0 * paNewVal0[0] +
04453 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04454 ako2 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04455 ein_regr * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
04456 paNewVal0++;
04457 *output2 = My_OutputLut[((ako0 * paNewVal0[0] +
04458 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04459 ako2 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04460 ein_regr * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
04461
if(
LH_DATA_OUT_COUNT_4 ){
04462 paNewVal0++;
04463 *output3 = My_OutputLut[((ako0 * paNewVal0[0] +
04464 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04465 ako2 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04466 ein_regr * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
04467 }
04468
#endif
04469
04470
#else
04471
*output0 = My_OutputLut[((ako0 * paNewVal0[0] +
04472 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04473 ako2 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04474 ein_regr * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)];
04475 paNewVal0++;
04476 *output1 = My_OutputLut[((ako0 * paNewVal0[0] +
04477 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04478 ako2 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04479 ein_regr * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)];
04480 paNewVal0++;
04481 *output2 = My_OutputLut[((ako0 * paNewVal0[0] +
04482 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04483 ako2 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04484 ein_regr * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)];
04485
if(
LH_DATA_OUT_COUNT_4 ){
04486 paNewVal0++;
04487 *output3 = My_OutputLut[((ako0 * paNewVal0[0] +
04488 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04489 ako2 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04490 ein_regr * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)];
04491 }
04492
#endif
04493
}
04494 }
04495
else
04496 {
04497 ako0 = (
LH_ADR_BEREICH_SEL) - ein_regb;
04498 ako1 = ein_regb - ein_regr;
04499 ako2 = ein_regr - ein_regg;
04500
#if LH_LUT_DATA_SIZE_16
04501
#if LH_DATA_OUT_SIZE_16
04502
04503 aVal = (ako0 * paNewVal0[0] +
04504 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04505 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04506 ein_regg * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)]);
04507 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
04508 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
04509 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
04510 aVal = (aVal >> (
LH_DATA_SHR )) + ( 0 <<
LH_ADR_BREIT_AUS_LUT );
04511 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
04512
04513 paNewVal0++;
04514 aVal = (ako0 * paNewVal0[0] +
04515 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04516 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04517 ein_regg * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)]);
04518 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
04519 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
04520 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
04521 aVal = (aVal >> (
LH_DATA_SHR )) + ( 1 <<
LH_ADR_BREIT_AUS_LUT );
04522 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
04523
04524 paNewVal0++;
04525 aVal = (ako0 * paNewVal0[0] +
04526 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04527 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04528 ein_regg * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)]);
04529 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
04530 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
04531 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
04532 aVal = (aVal >> (
LH_DATA_SHR )) + ( 2 <<
LH_ADR_BREIT_AUS_LUT );
04533 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
04534
04535
if(
LH_DATA_OUT_COUNT_4 ){
04536 paNewVal0++;
04537 aVal = (ako0 * paNewVal0[0] +
04538 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04539 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04540 ein_regg * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)]);
04541 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
04542 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
04543 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
04544 aVal = (aVal >> (
LH_DATA_SHR )) + ( 3 <<
LH_ADR_BREIT_AUS_LUT );
04545 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
04546 }
04547
04548
#else
04549
*output0 = My_OutputLut[((ako0 * paNewVal0[0] +
04550 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04551 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04552 ein_regg * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
04553 paNewVal0++;
04554 *output1 = My_OutputLut[((ako0 * paNewVal0[0] +
04555 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04556 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04557 ein_regg * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
04558 paNewVal0++;
04559 *output2 = My_OutputLut[((ako0 * paNewVal0[0] +
04560 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04561 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04562 ein_regg * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
04563
if(
LH_DATA_OUT_COUNT_4 ){
04564 paNewVal0++;
04565 *output3 = My_OutputLut[((ako0 * paNewVal0[0] +
04566 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04567 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04568 ein_regg * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
04569 }
04570
#endif
04571
04572
#else
04573
*output0 = My_OutputLut[((ako0 * paNewVal0[0] +
04574 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04575 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04576 ein_regg * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)];
04577 paNewVal0++;
04578 *output1 = My_OutputLut[((ako0 * paNewVal0[0] +
04579 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04580 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04581 ein_regg * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)];
04582 paNewVal0++;
04583 *output2 = My_OutputLut[((ako0 * paNewVal0[0] +
04584 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04585 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04586 ein_regg * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)];
04587
if(
LH_DATA_OUT_COUNT_4 ){
04588 paNewVal0++;
04589 *output3 = My_OutputLut[((ako0 * paNewVal0[0] +
04590 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04591 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04592 ein_regg * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)];
04593 }
04594
#endif
04595
}
04596 }
04597
else
04598 {
04599
if (ein_regg >= ein_regr)
04600 {
04601 ako0 = (
LH_ADR_BEREICH_SEL) - ein_regg;
04602 ako1 = ein_regg - ein_regr;
04603 ako2 = ein_regr - ein_regb;
04604
#if LH_LUT_DATA_SIZE_16
04605
#if LH_DATA_OUT_SIZE_16
04606
04607 aVal = (ako0 * paNewVal0[0] +
04608 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04609 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04610 ein_regb * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)]);
04611 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
04612 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
04613 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
04614 aVal = (aVal >> (
LH_DATA_SHR )) + ( 0 <<
LH_ADR_BREIT_AUS_LUT );
04615 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
04616
04617 paNewVal0++;
04618 aVal = (ako0 * paNewVal0[0] +
04619 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04620 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04621 ein_regb * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)]);
04622 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
04623 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
04624 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
04625 aVal = (aVal >> (
LH_DATA_SHR )) + ( 1 <<
LH_ADR_BREIT_AUS_LUT );
04626 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
04627
04628 paNewVal0++;
04629 aVal = (ako0 * paNewVal0[0] +
04630 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04631 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04632 ein_regb * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)]);
04633 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
04634 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
04635 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
04636 aVal = (aVal >> (
LH_DATA_SHR )) + ( 2 <<
LH_ADR_BREIT_AUS_LUT );
04637 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
04638
04639
if(
LH_DATA_OUT_COUNT_4 ){
04640 paNewVal0++;
04641 aVal = (ako0 * paNewVal0[0] +
04642 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04643 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04644 ein_regb * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)]);
04645 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
04646 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
04647 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
04648 aVal = (aVal >> (
LH_DATA_SHR )) + ( 3 <<
LH_ADR_BREIT_AUS_LUT );
04649 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
04650 }
04651
04652
#else
04653
*output0 = My_OutputLut[((ako0 * paNewVal0[0] +
04654 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04655 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04656 ein_regb * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
04657 paNewVal0++;
04658 *output1 = My_OutputLut[((ako0 * paNewVal0[0] +
04659 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04660 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04661 ein_regb * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
04662 paNewVal0++;
04663 *output2 = My_OutputLut[((ako0 * paNewVal0[0] +
04664 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04665 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04666 ein_regb * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
04667
if(
LH_DATA_OUT_COUNT_4 ){
04668 paNewVal0++;
04669 *output3 = My_OutputLut[((ako0 * paNewVal0[0] +
04670 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04671 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04672 ein_regb * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
04673 }
04674
#endif
04675
04676
#else
04677
*output0 = My_OutputLut[((ako0 * paNewVal0[0] +
04678 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04679 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04680 ein_regb * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)];
04681 paNewVal0++;
04682 *output1 = My_OutputLut[((ako0 * paNewVal0[0] +
04683 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04684 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04685 ein_regb * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)];
04686 paNewVal0++;
04687 *output2 = My_OutputLut[((ako0 * paNewVal0[0] +
04688 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04689 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04690 ein_regb * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)];
04691
if(
LH_DATA_OUT_COUNT_4 ){
04692 paNewVal0++;
04693 *output3 = My_OutputLut[((ako0 * paNewVal0[0] +
04694 ako1 * paNewVal0[(((((0 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04695 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04696 ein_regb * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)];
04697 }
04698
#endif
04699
}
04700
else
04701 {
04702
if (ein_regb >= ein_regg)
04703 {
04704 ako0 = (
LH_ADR_BEREICH_SEL) - ein_regr;
04705 ako1 = ein_regr - ein_regb;
04706 ako2 = ein_regb - ein_regg;
04707
#if LH_LUT_DATA_SIZE_16
04708
#if LH_DATA_OUT_SIZE_16
04709
04710 aVal = (ako0 * paNewVal0[0] +
04711 ako1 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04712 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04713 ein_regg * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)]);
04714 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
04715 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
04716 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
04717 aVal = (aVal >> (
LH_DATA_SHR )) + ( 0 <<
LH_ADR_BREIT_AUS_LUT );
04718 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
04719
04720 paNewVal0++;
04721 aVal = (ako0 * paNewVal0[0] +
04722 ako1 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04723 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04724 ein_regg * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)]);
04725 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
04726 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
04727 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
04728 aVal = (aVal >> (
LH_DATA_SHR )) + ( 1 <<
LH_ADR_BREIT_AUS_LUT );
04729 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
04730
04731 paNewVal0++;
04732 aVal = (ako0 * paNewVal0[0] +
04733 ako1 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04734 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04735 ein_regg * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)]);
04736 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
04737 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
04738 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
04739 aVal = (aVal >> (
LH_DATA_SHR )) + ( 2 <<
LH_ADR_BREIT_AUS_LUT );
04740 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
04741
04742
if(
LH_DATA_OUT_COUNT_4 ){
04743 paNewVal0++;
04744 aVal = (ako0 * paNewVal0[0] +
04745 ako1 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04746 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04747 ein_regg * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)]);
04748 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
04749 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
04750 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
04751 aVal = (aVal >> (
LH_DATA_SHR )) + ( 3 <<
LH_ADR_BREIT_AUS_LUT );
04752 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
04753 }
04754
04755
#else
04756
*output0 = My_OutputLut[((ako0 * paNewVal0[0] +
04757 ako1 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04758 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04759 ein_regg * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
04760 paNewVal0++;
04761 *output1 = My_OutputLut[((ako0 * paNewVal0[0] +
04762 ako1 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04763 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04764 ein_regg * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
04765 paNewVal0++;
04766 *output2 = My_OutputLut[((ako0 * paNewVal0[0] +
04767 ako1 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04768 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04769 ein_regg * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
04770
if(
LH_DATA_OUT_COUNT_4 ){
04771 paNewVal0++;
04772 *output3 = My_OutputLut[((ako0 * paNewVal0[0] +
04773 ako1 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04774 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04775 ein_regg * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
04776 }
04777
#endif
04778
04779
#else
04780
*output0 = My_OutputLut[((ako0 * paNewVal0[0] +
04781 ako1 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04782 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04783 ein_regg * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)];
04784 paNewVal0++;
04785 *output1 = My_OutputLut[((ako0 * paNewVal0[0] +
04786 ako1 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04787 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04788 ein_regg * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)];
04789 paNewVal0++;
04790 *output2 = My_OutputLut[((ako0 * paNewVal0[0] +
04791 ako1 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04792 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04793 ein_regg * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)];
04794
if(
LH_DATA_OUT_COUNT_4 ){
04795 paNewVal0++;
04796 *output3 = My_OutputLut[((ako0 * paNewVal0[0] +
04797 ako1 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04798 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)] +
04799 ein_regg * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)];
04800 }
04801
#endif
04802
}
04803
else
04804 {
04805 ako0 = (
LH_ADR_BEREICH_SEL) - ein_regr;
04806 ako1 = ein_regr - ein_regg;
04807 ako2 = ein_regg - ein_regb;
04808
#if LH_LUT_DATA_SIZE_16
04809
#if LH_DATA_OUT_SIZE_16
04810
04811 aVal = (ako0 * paNewVal0[0] +
04812 ako1 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04813 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04814 ein_regb * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)]);
04815 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
04816 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
04817 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
04818 aVal = (aVal >> (
LH_DATA_SHR )) + ( 0 <<
LH_ADR_BREIT_AUS_LUT );
04819 *output0 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
04820
04821 paNewVal0++;
04822 aVal = (ako0 * paNewVal0[0] +
04823 ako1 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04824 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04825 ein_regb * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)]);
04826 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
04827 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
04828 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
04829 aVal = (aVal >> (
LH_DATA_SHR )) + ( 1 <<
LH_ADR_BREIT_AUS_LUT );
04830 *output1 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
04831
04832 paNewVal0++;
04833 aVal = (ako0 * paNewVal0[0] +
04834 ako1 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04835 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04836 ein_regb * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)]);
04837 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
04838 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
04839 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
04840 aVal = (aVal >> (
LH_DATA_SHR )) + ( 2 <<
LH_ADR_BREIT_AUS_LUT );
04841 *output2 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
04842
04843
if(
LH_DATA_OUT_COUNT_4 ){
04844 paNewVal0++;
04845 aVal = (ako0 * paNewVal0[0] +
04846 ako1 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04847 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04848 ein_regb * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)]);
04849 aVal = aVal + ( aVal >> (
LH_LUT_DATA_SHR ));
04850 aVal = aVal - ( aVal >> (
LH_ADR_BREIT_AUS_LUT ));
04851 ko = (aVal>>LH_DATA_SHR_CORR) & ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR))-1 );
04852 aVal = (aVal >> (
LH_DATA_SHR )) + ( 3 <<
LH_ADR_BREIT_AUS_LUT );
04853 *output3 = (
LH_DATA_OUT_TYPE)((My_OutputLut[aVal] * ( (1<<(
LH_DATA_SHR - LH_DATA_SHR_CORR )) - ko ) + My_OutputLut[aVal +1] * ko)>>(
LH_DATA_SHR - LH_DATA_SHR_CORR) );
04854 }
04855
04856
#else
04857
*output0 = My_OutputLut[((ako0 * paNewVal0[0] +
04858 ako1 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04859 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04860 ein_regb * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)]>>8;
04861 paNewVal0++;
04862 *output1 = My_OutputLut[((ako0 * paNewVal0[0] +
04863 ako1 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04864 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04865 ein_regb * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)]>>8;
04866 paNewVal0++;
04867 *output2 = My_OutputLut[((ako0 * paNewVal0[0] +
04868 ako1 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04869 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04870 ein_regb * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)]>>8;
04871
if(
LH_DATA_OUT_COUNT_4 ){
04872 paNewVal0++;
04873 *output3 = My_OutputLut[((ako0 * paNewVal0[0] +
04874 ako1 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04875 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04876 ein_regb * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)]>>8;
04877 }
04878
#endif
04879
04880
#else
04881
*output0 = My_OutputLut[((ako0 * paNewVal0[0] +
04882 ako1 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04883 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04884 ein_regb * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (0<<
LH_ADR_BREIT_AUS_LUT)];
04885 paNewVal0++;
04886 *output1 = My_OutputLut[((ako0 * paNewVal0[0] +
04887 ako1 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04888 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04889 ein_regb * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (1<<
LH_ADR_BREIT_AUS_LUT)];
04890 paNewVal0++;
04891 *output2 = My_OutputLut[((ako0 * paNewVal0[0] +
04892 ako1 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04893 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04894 ein_regb * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (2<<
LH_ADR_BREIT_AUS_LUT)];
04895
if(
LH_DATA_OUT_COUNT_4 ){
04896 paNewVal0++;
04897 *output3 = My_OutputLut[((ako0 * paNewVal0[0] +
04898 ako1 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 0) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04899 ako2 * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 0) *
LH_DATA_OUT_COUNT)] +
04900 ein_regb * paNewVal0[(((((1 <<
LH_BIT_BREIT_ADR) | 1) <<
LH_BIT_BREIT_ADR) | 1) *
LH_DATA_OUT_COUNT)])>>
LH_DATA_SHR) + (3<<
LH_ADR_BREIT_AUS_LUT)];
04901 }
04902
#endif
04903
}
04904 }
04905 }
04906
#if LH_DATA_OUT_SIZE_16 && ! LH_LUT_DATA_SIZE_16
04907
*output0 |= (*output0 << 8);
04908 *output1 |= (*output1 << 8);
04909 *output2 |= (*output2 << 8);
04910
if(
LH_DATA_OUT_COUNT_4 ){
04911 *output3 |= (*output3 << 8);
04912 }
04913
#endif
04914
04915
if (Mode ==
LH_CALC_ENGINE_P_TO_P)
04916 {
04917
while (--i)
04918 {
04919 input0 += inputOffset;
04920 input1 += inputOffset;
04921 input2 += inputOffset;
04922 output0 += outputOffset;
04923 output1 += outputOffset;
04924 output2 += outputOffset;
04925
if(
LH_DATA_OUT_COUNT_4 ){
04926 output3 += outputOffset;
04927 }
04928
04929
if ((*input0 ^ ein_cache[0]) || (*input1 ^ ein_cache[1]) || (*input2 ^ ein_cache[2]))
04930 {
04931
break;
04932 }
04933 *output0 = output0[-outputOffset];
04934 *output1 = output1[-outputOffset];
04935 *output2 = output2[-outputOffset];
04936
if(
LH_DATA_OUT_COUNT_4 ){
04937 *output3 = output3[-outputOffset];
04938 }
04939 }
04940 }
04941
else if (Mode ==
LH_CALC_ENGINE_P_TO_U)
04942 {
04943
if(
LH_DATA_OUT_COUNT_4 ){
04944 *output4 &= Mask;
04945 }
else{
04946 *output3 &= Mask;
04947 }
04948
while (--i)
04949 {
04950 input0 += inputOffset;
04951 input1 += inputOffset;
04952 input2 += inputOffset;
04953 output0 += outputOffset;
04954 output1 += outputOffset;
04955 output2 += outputOffset;
04956 output3 += outputOffset;
04957
if(
LH_DATA_OUT_COUNT_4 ){
04958 output4 += outputOffset;
04959 }
04960
if ((*input0 ^ ein_cache[0]) || (*input1 ^ ein_cache[1]) || (*input2 ^ ein_cache[2]))
04961 {
04962
break;
04963 }
04964 *output0 = output0[-outputOffset];
04965 *output1 = output1[-outputOffset];
04966 *output2 = output2[-outputOffset];
04967
if(
LH_DATA_OUT_COUNT_4 ){
04968 *output3 = output3[-outputOffset];
04969 *output4 &= Mask;
04970 }
else{
04971 *output3 &= Mask;
04972 }
04973 }
04974 }
04975
else
04976 {
04977
if(
LH_DATA_OUT_COUNT_4 ){
04978 *output4 = (
LH_DATA_OUT_TYPE)*input3;
04979 }
else{
04980 *output3 = (
LH_DATA_OUT_TYPE)*input3;
04981 }
04982
while (--i)
04983 {
04984 input0 += inputOffset;
04985 input1 += inputOffset;
04986 input2 += inputOffset;
04987 input3 += inputOffset;
04988
04989 output0 += outputOffset;
04990 output1 += outputOffset;
04991 output2 += outputOffset;
04992 output3 += outputOffset;
04993
if(
LH_DATA_OUT_COUNT_4 ){
04994 output4 += outputOffset;
04995 }
04996
if ((*input0 ^ ein_cache[0]) || (*input1 ^ ein_cache[1]) || (*input2 ^ ein_cache[2]))
04997 {
04998
break;
04999 }
05000 *output0 = output0[-outputOffset];
05001 *output1 = output1[-outputOffset];
05002 *output2 = output2[-outputOffset];
05003
if(
LH_DATA_OUT_COUNT_4 ){
05004 *output3 = output3[-outputOffset];
05005 *output4 = (
LH_DATA_OUT_TYPE)*input3;
05006 }
else{
05007 *output3 = (
LH_DATA_OUT_TYPE)*input3;
05008 }
05009 }
05010 }
05011 }
05012
if (--LineCount)
05013 {
05014 j++;
05015 input0 = (
LH_DATA_IN_TYPE *)((
LH_UINT8 *)calcParam->inputData[0] + j * calcParam->cmInputBytesPerLine);
05016 input1 = (
LH_DATA_IN_TYPE *)((
LH_UINT8 *)calcParam->inputData[1] + j * calcParam->cmInputBytesPerLine);
05017 input2 = (
LH_DATA_IN_TYPE *)((
LH_UINT8 *)calcParam->inputData[2] + j * calcParam->cmInputBytesPerLine);
05018 input3 = (
LH_DATA_IN_TYPE *)((
LH_UINT8 *)calcParam->inputData[3] + j * calcParam->cmInputBytesPerLine);
05019
05020 output0 = (
LH_DATA_OUT_TYPE *)((
LH_UINT8 *)calcParam->outputData[0] + j * calcParam->cmOutputBytesPerLine);
05021 output1 = (
LH_DATA_OUT_TYPE *)((
LH_UINT8 *)calcParam->outputData[1] + j * calcParam->cmOutputBytesPerLine);
05022 output2 = (
LH_DATA_OUT_TYPE *)((
LH_UINT8 *)calcParam->outputData[2] + j * calcParam->cmOutputBytesPerLine);
05023 output3 = (
LH_DATA_OUT_TYPE *)((
LH_UINT8 *)calcParam->outputData[3] + j * calcParam->cmOutputBytesPerLine);
05024
if(
LH_DATA_OUT_COUNT_4 ){
05025 output4 = (
LH_DATA_OUT_TYPE *)((
LH_UINT8 *)calcParam->outputData[4] + j * calcParam->cmOutputBytesPerLine);
05026 }
05027 }
05028 }
05029
LH_END_PROC(LH_CALC_PROC_NAME)
05030 return 0;
05031 #endif
05032 }
05033 #endif
05034 #undef LH_CALC_PROC_NAME