868b2b66 (kx 2024-12-20 16:11:07 +0300 1)
868b2b66 (kx 2024-12-20 16:11:07 +0300 2) /***************************************************************
868b2b66 (kx 2024-12-20 16:11:07 +0300 3) __ST_LOGTABLE.C
868b2b66 (kx 2024-12-20 16:11:07 +0300 4)
868b2b66 (kx 2024-12-20 16:11:07 +0300 5) This file contains source code of functions for
868b2b66 (kx 2024-12-20 16:11:07 +0300 6) LOGTABLE constants operations.
868b2b66 (kx 2024-12-20 16:11:07 +0300 7)
868b2b66 (kx 2024-12-20 16:11:07 +0300 8) PART OF : MPU - library .
868b2b66 (kx 2024-12-20 16:11:07 +0300 9)
868b2b66 (kx 2024-12-20 16:11:07 +0300 10) USAGE : Internal only .
868b2b66 (kx 2024-12-20 16:11:07 +0300 11)
868b2b66 (kx 2024-12-20 16:11:07 +0300 12) NOTE : NONE .
868b2b66 (kx 2024-12-20 16:11:07 +0300 13)
868b2b66 (kx 2024-12-20 16:11:07 +0300 14) Copyright (C) 2000 - 2024 by Andrew V.Kosteltsev.
868b2b66 (kx 2024-12-20 16:11:07 +0300 15) All Rights Reserved.
868b2b66 (kx 2024-12-20 16:11:07 +0300 16) ***************************************************************/
868b2b66 (kx 2024-12-20 16:11:07 +0300 17)
868b2b66 (kx 2024-12-20 16:11:07 +0300 18) #ifdef HAVE_CONFIG_H
868b2b66 (kx 2024-12-20 16:11:07 +0300 19) #include <config.h>
868b2b66 (kx 2024-12-20 16:11:07 +0300 20) #endif
868b2b66 (kx 2024-12-20 16:11:07 +0300 21)
868b2b66 (kx 2024-12-20 16:11:07 +0300 22) #include <errno.h> /* errno(3) */
868b2b66 (kx 2024-12-20 16:11:07 +0300 23) #include <string.h> /* strcpy(3) */
868b2b66 (kx 2024-12-20 16:11:07 +0300 24) #include <strings.h> /* bzero(3) */
868b2b66 (kx 2024-12-20 16:11:07 +0300 25) #include <stdlib.h>
868b2b66 (kx 2024-12-20 16:11:07 +0300 26)
868b2b66 (kx 2024-12-20 16:11:07 +0300 27) #include <libmpu.h>
868b2b66 (kx 2024-12-20 16:11:07 +0300 28) #include <mpu-context.h>
868b2b66 (kx 2024-12-20 16:11:07 +0300 29)
868b2b66 (kx 2024-12-20 16:11:07 +0300 30) #include <mpu-emutype.h>
868b2b66 (kx 2024-12-20 16:11:07 +0300 31) #include <mpu-integer.h>
868b2b66 (kx 2024-12-20 16:11:07 +0300 32) #include <mpu-real.h>
868b2b66 (kx 2024-12-20 16:11:07 +0300 33) #include <mpu-floatp.h>
868b2b66 (kx 2024-12-20 16:11:07 +0300 34)
868b2b66 (kx 2024-12-20 16:11:07 +0300 35) #include <mpu-char.h>
868b2b66 (kx 2024-12-20 16:11:07 +0300 36) #include <mpu-symbols.h>
868b2b66 (kx 2024-12-20 16:11:07 +0300 37)
868b2b66 (kx 2024-12-20 16:11:07 +0300 38) #include <mpu-math-errno.h>
868b2b66 (kx 2024-12-20 16:11:07 +0300 39) #include <mpu-mtherr.h>
868b2b66 (kx 2024-12-20 16:11:07 +0300 40)
868b2b66 (kx 2024-12-20 16:11:07 +0300 41)
868b2b66 (kx 2024-12-20 16:11:07 +0300 42) /***************************************************************
868b2b66 (kx 2024-12-20 16:11:07 +0300 43) Кодировка имен файлов:
868b2b66 (kx 2024-12-20 16:11:07 +0300 44)
868b2b66 (kx 2024-12-20 16:11:07 +0300 45) Трехзначное десятичное число, представляющее количество
868b2b66 (kx 2024-12-20 16:11:07 +0300 46) 128-и битных слов, из которых состоят вещественные числа
868b2b66 (kx 2024-12-20 16:11:07 +0300 47) размещенные в массивах:
868b2b66 (kx 2024-12-20 16:11:07 +0300 48)
868b2b66 (kx 2024-12-20 16:11:07 +0300 49) размер чисел в битах кодировка
868b2b66 (kx 2024-12-20 16:11:07 +0300 50) -------------------- ---------
868b2b66 (kx 2024-12-20 16:11:07 +0300 51) 128 001
868b2b66 (kx 2024-12-20 16:11:07 +0300 52) 256 002
868b2b66 (kx 2024-12-20 16:11:07 +0300 53) 512 004
868b2b66 (kx 2024-12-20 16:11:07 +0300 54) 1024 008
868b2b66 (kx 2024-12-20 16:11:07 +0300 55) 2048 016
868b2b66 (kx 2024-12-20 16:11:07 +0300 56) 4096 032
868b2b66 (kx 2024-12-20 16:11:07 +0300 57) 8192 064
868b2b66 (kx 2024-12-20 16:11:07 +0300 58) 16384 128
868b2b66 (kx 2024-12-20 16:11:07 +0300 59) 32768 256
868b2b66 (kx 2024-12-20 16:11:07 +0300 60) 65536 512 (это предел);
868b2b66 (kx 2024-12-20 16:11:07 +0300 61)
868b2b66 (kx 2024-12-20 16:11:07 +0300 62) ПРИМЕРЫ:
868b2b66 (kx 2024-12-20 16:11:07 +0300 63) -------
868b2b66 (kx 2024-12-20 16:11:07 +0300 64) ei_logtable_001_emu32lsb.dfn - 128-бит,
868b2b66 (kx 2024-12-20 16:11:07 +0300 65) ei_logtable_512_emu32lsb.dfn - 65536-бит.
868b2b66 (kx 2024-12-20 16:11:07 +0300 66)
868b2b66 (kx 2024-12-20 16:11:07 +0300 67) ***************************************************************/
868b2b66 (kx 2024-12-20 16:11:07 +0300 68)
868b2b66 (kx 2024-12-20 16:11:07 +0300 69) #if MPU_MATH_FN_LIMIT >= 128
868b2b66 (kx 2024-12-20 16:11:07 +0300 70) #if MPU_WORD_ORDER_BIG_ENDIAN == 0
868b2b66 (kx 2024-12-20 16:11:07 +0300 71) #include <math/logtable/emu00128/ei_logtable_001_emu32lsb.dfn>
868b2b66 (kx 2024-12-20 16:11:07 +0300 72) #else
868b2b66 (kx 2024-12-20 16:11:07 +0300 73) #include <math/logtable/emu00128/ei_logtable_001_emu32msb.dfn>
868b2b66 (kx 2024-12-20 16:11:07 +0300 74) #endif
868b2b66 (kx 2024-12-20 16:11:07 +0300 75) #endif /* MPU_MATH_FN_LIMIT >= 128 */
868b2b66 (kx 2024-12-20 16:11:07 +0300 76)
868b2b66 (kx 2024-12-20 16:11:07 +0300 77) #if MPU_MATH_FN_LIMIT >= 256
868b2b66 (kx 2024-12-20 16:11:07 +0300 78) #if MPU_WORD_ORDER_BIG_ENDIAN == 0
868b2b66 (kx 2024-12-20 16:11:07 +0300 79) #include <math/logtable/emu00256/ei_logtable_002_emu32lsb.dfn>
868b2b66 (kx 2024-12-20 16:11:07 +0300 80) #else
868b2b66 (kx 2024-12-20 16:11:07 +0300 81) #include <math/logtable/emu00256/ei_logtable_002_emu32msb.dfn>
868b2b66 (kx 2024-12-20 16:11:07 +0300 82) #endif
868b2b66 (kx 2024-12-20 16:11:07 +0300 83) #endif /* MPU_MATH_FN_LIMIT >= 256 */
868b2b66 (kx 2024-12-20 16:11:07 +0300 84)
868b2b66 (kx 2024-12-20 16:11:07 +0300 85) #if MPU_MATH_FN_LIMIT >= 512
868b2b66 (kx 2024-12-20 16:11:07 +0300 86) #if MPU_WORD_ORDER_BIG_ENDIAN == 0
868b2b66 (kx 2024-12-20 16:11:07 +0300 87) #include <math/logtable/emu00512/ei_logtable_004_emu32lsb.dfn>
868b2b66 (kx 2024-12-20 16:11:07 +0300 88) #else
868b2b66 (kx 2024-12-20 16:11:07 +0300 89) #include <math/logtable/emu00512/ei_logtable_004_emu32msb.dfn>
868b2b66 (kx 2024-12-20 16:11:07 +0300 90) #endif
868b2b66 (kx 2024-12-20 16:11:07 +0300 91) #endif /* MPU_MATH_FN_LIMIT >= 512 */
868b2b66 (kx 2024-12-20 16:11:07 +0300 92)
868b2b66 (kx 2024-12-20 16:11:07 +0300 93) #if MPU_MATH_FN_LIMIT >= 1024
868b2b66 (kx 2024-12-20 16:11:07 +0300 94) #if MPU_WORD_ORDER_BIG_ENDIAN == 0
868b2b66 (kx 2024-12-20 16:11:07 +0300 95) #include <math/logtable/emu01024/ei_logtable_008_emu32lsb.dfn>
868b2b66 (kx 2024-12-20 16:11:07 +0300 96) #else
868b2b66 (kx 2024-12-20 16:11:07 +0300 97) #include <math/logtable/emu01024/ei_logtable_008_emu32msb.dfn>
868b2b66 (kx 2024-12-20 16:11:07 +0300 98) #endif
868b2b66 (kx 2024-12-20 16:11:07 +0300 99) #endif /* MPU_MATH_FN_LIMIT >= 1024 */
868b2b66 (kx 2024-12-20 16:11:07 +0300 100)
868b2b66 (kx 2024-12-20 16:11:07 +0300 101) #if MPU_MATH_FN_LIMIT >= 2048
868b2b66 (kx 2024-12-20 16:11:07 +0300 102) #if MPU_WORD_ORDER_BIG_ENDIAN == 0
868b2b66 (kx 2024-12-20 16:11:07 +0300 103) #include <math/logtable/emu02048/ei_logtable_016_emu32lsb.dfn>
868b2b66 (kx 2024-12-20 16:11:07 +0300 104) #else
868b2b66 (kx 2024-12-20 16:11:07 +0300 105) #include <math/logtable/emu02048/ei_logtable_016_emu32msb.dfn>
868b2b66 (kx 2024-12-20 16:11:07 +0300 106) #endif
868b2b66 (kx 2024-12-20 16:11:07 +0300 107) #endif /* MPU_MATH_FN_LIMIT >= 2048 */
868b2b66 (kx 2024-12-20 16:11:07 +0300 108)
868b2b66 (kx 2024-12-20 16:11:07 +0300 109) #if MPU_MATH_FN_LIMIT >= 4096
868b2b66 (kx 2024-12-20 16:11:07 +0300 110) #if MPU_WORD_ORDER_BIG_ENDIAN == 0
868b2b66 (kx 2024-12-20 16:11:07 +0300 111) #include <math/logtable/emu04096/ei_logtable_032_emu32lsb.dfn>
868b2b66 (kx 2024-12-20 16:11:07 +0300 112) #else
868b2b66 (kx 2024-12-20 16:11:07 +0300 113) #include <math/logtable/emu04096/ei_logtable_032_emu32msb.dfn>
868b2b66 (kx 2024-12-20 16:11:07 +0300 114) #endif
868b2b66 (kx 2024-12-20 16:11:07 +0300 115) #endif /* MPU_MATH_FN_LIMIT >= 4096 */
868b2b66 (kx 2024-12-20 16:11:07 +0300 116)
868b2b66 (kx 2024-12-20 16:11:07 +0300 117) #if MPU_MATH_FN_LIMIT >= 8192
868b2b66 (kx 2024-12-20 16:11:07 +0300 118) #if MPU_WORD_ORDER_BIG_ENDIAN == 0
868b2b66 (kx 2024-12-20 16:11:07 +0300 119) #include <math/logtable/emu08192/ei_logtable_064_emu32lsb.dfn>
868b2b66 (kx 2024-12-20 16:11:07 +0300 120) #else
868b2b66 (kx 2024-12-20 16:11:07 +0300 121) #include <math/logtable/emu08192/ei_logtable_064_emu32msb.dfn>
868b2b66 (kx 2024-12-20 16:11:07 +0300 122) #endif
868b2b66 (kx 2024-12-20 16:11:07 +0300 123) #endif /* MPU_MATH_FN_LIMIT >= 8192 */
868b2b66 (kx 2024-12-20 16:11:07 +0300 124)
868b2b66 (kx 2024-12-20 16:11:07 +0300 125) #if MPU_MATH_FN_LIMIT >= 16384
868b2b66 (kx 2024-12-20 16:11:07 +0300 126) #if MPU_WORD_ORDER_BIG_ENDIAN == 0
868b2b66 (kx 2024-12-20 16:11:07 +0300 127) #include <math/logtable/emu16384/ei_logtable_128_emu32lsb.dfn>
868b2b66 (kx 2024-12-20 16:11:07 +0300 128) #else
868b2b66 (kx 2024-12-20 16:11:07 +0300 129) #include <math/logtable/emu16384/ei_logtable_128_emu32msb.dfn>
868b2b66 (kx 2024-12-20 16:11:07 +0300 130) #endif
868b2b66 (kx 2024-12-20 16:11:07 +0300 131) #endif /* MPU_MATH_FN_LIMIT >= 16384 */
868b2b66 (kx 2024-12-20 16:11:07 +0300 132)
868b2b66 (kx 2024-12-20 16:11:07 +0300 133) #if MPU_MATH_FN_LIMIT >= 32768
868b2b66 (kx 2024-12-20 16:11:07 +0300 134) #if MPU_WORD_ORDER_BIG_ENDIAN == 0
868b2b66 (kx 2024-12-20 16:11:07 +0300 135) #include <math/logtable/emu32768/ei_logtable_256_emu32lsb.dfn>
868b2b66 (kx 2024-12-20 16:11:07 +0300 136) #else
868b2b66 (kx 2024-12-20 16:11:07 +0300 137) #include <math/logtable/emu32768/ei_logtable_256_emu32msb.dfn>
868b2b66 (kx 2024-12-20 16:11:07 +0300 138) #endif
868b2b66 (kx 2024-12-20 16:11:07 +0300 139) #endif /* MPU_MATH_FN_LIMIT >= 32768 */
868b2b66 (kx 2024-12-20 16:11:07 +0300 140)
868b2b66 (kx 2024-12-20 16:11:07 +0300 141) #if MPU_MATH_FN_LIMIT >= 65536
868b2b66 (kx 2024-12-20 16:11:07 +0300 142) #if MPU_WORD_ORDER_BIG_ENDIAN == 0
868b2b66 (kx 2024-12-20 16:11:07 +0300 143) #include <math/logtable/emu65536/ei_logtable_512_emu32lsb.dfn>
868b2b66 (kx 2024-12-20 16:11:07 +0300 144) #else
868b2b66 (kx 2024-12-20 16:11:07 +0300 145) #include <math/logtable/emu65536/ei_logtable_512_emu32msb.dfn>
868b2b66 (kx 2024-12-20 16:11:07 +0300 146) #endif
868b2b66 (kx 2024-12-20 16:11:07 +0300 147) #endif /* MPU_MATH_FN_LIMIT >= 65536 */
868b2b66 (kx 2024-12-20 16:11:07 +0300 148)
868b2b66 (kx 2024-12-20 16:11:07 +0300 149)
868b2b66 (kx 2024-12-20 16:11:07 +0300 150) int _get_n_log_table( int nb )
868b2b66 (kx 2024-12-20 16:11:07 +0300 151) {
868b2b66 (kx 2024-12-20 16:11:07 +0300 152) int rc = 0;
868b2b66 (kx 2024-12-20 16:11:07 +0300 153)
868b2b66 (kx 2024-12-20 16:11:07 +0300 154) if( nb < NBR_32 || nb > MPU_MATH_FN_LIMIT )
868b2b66 (kx 2024-12-20 16:11:07 +0300 155) {
868b2b66 (kx 2024-12-20 16:11:07 +0300 156) /* error: Invalid size of operand(s) */
868b2b66 (kx 2024-12-20 16:11:07 +0300 157) __real_error_no = __R_ESIZE__;
868b2b66 (kx 2024-12-20 16:11:07 +0300 158) __STIND; /* Set REAL ind-produsing operation Flag */
868b2b66 (kx 2024-12-20 16:11:07 +0300 159) return( rc );
868b2b66 (kx 2024-12-20 16:11:07 +0300 160) }
868b2b66 (kx 2024-12-20 16:11:07 +0300 161)
868b2b66 (kx 2024-12-20 16:11:07 +0300 162) switch( nb )
868b2b66 (kx 2024-12-20 16:11:07 +0300 163) {
868b2b66 (kx 2024-12-20 16:11:07 +0300 164) #if MPU_MATH_FN_LIMIT >= 128
868b2b66 (kx 2024-12-20 16:11:07 +0300 165) case NBR_32 :
868b2b66 (kx 2024-12-20 16:11:07 +0300 166) case NBR_64 :
868b2b66 (kx 2024-12-20 16:11:07 +0300 167) case NBR_128 :
868b2b66 (kx 2024-12-20 16:11:07 +0300 168) rc = N_LOG_TABLE128;
868b2b66 (kx 2024-12-20 16:11:07 +0300 169) break;
868b2b66 (kx 2024-12-20 16:11:07 +0300 170) #endif /* MPU_MATH_FN_LIMIT >= 128 */
868b2b66 (kx 2024-12-20 16:11:07 +0300 171) #if MPU_MATH_FN_LIMIT >= 256
868b2b66 (kx 2024-12-20 16:11:07 +0300 172) case NBR_256 :
868b2b66 (kx 2024-12-20 16:11:07 +0300 173) rc = N_LOG_TABLE256;
868b2b66 (kx 2024-12-20 16:11:07 +0300 174) break;
868b2b66 (kx 2024-12-20 16:11:07 +0300 175) #endif /* MPU_MATH_FN_LIMIT >= 256 */
868b2b66 (kx 2024-12-20 16:11:07 +0300 176) #if MPU_MATH_FN_LIMIT >= 512
868b2b66 (kx 2024-12-20 16:11:07 +0300 177) case NBR_512 :
868b2b66 (kx 2024-12-20 16:11:07 +0300 178) rc = N_LOG_TABLE512;
868b2b66 (kx 2024-12-20 16:11:07 +0300 179) break;
868b2b66 (kx 2024-12-20 16:11:07 +0300 180) #endif /* MPU_MATH_FN_LIMIT >= 512 */
868b2b66 (kx 2024-12-20 16:11:07 +0300 181) #if MPU_MATH_FN_LIMIT >= 1024
868b2b66 (kx 2024-12-20 16:11:07 +0300 182) case NBR_1024 :
868b2b66 (kx 2024-12-20 16:11:07 +0300 183) rc = N_LOG_TABLE1024;
868b2b66 (kx 2024-12-20 16:11:07 +0300 184) break;
868b2b66 (kx 2024-12-20 16:11:07 +0300 185) #endif /* MPU_MATH_FN_LIMIT >= 1024 */
868b2b66 (kx 2024-12-20 16:11:07 +0300 186) #if MPU_MATH_FN_LIMIT >= 2048
868b2b66 (kx 2024-12-20 16:11:07 +0300 187) case NBR_2048 :
868b2b66 (kx 2024-12-20 16:11:07 +0300 188) rc = N_LOG_TABLE2048;
868b2b66 (kx 2024-12-20 16:11:07 +0300 189) break;
868b2b66 (kx 2024-12-20 16:11:07 +0300 190) #endif /* MPU_MATH_FN_LIMIT >= 2048 */
868b2b66 (kx 2024-12-20 16:11:07 +0300 191) #if MPU_MATH_FN_LIMIT >= 4096
868b2b66 (kx 2024-12-20 16:11:07 +0300 192) case NBR_4096 :
868b2b66 (kx 2024-12-20 16:11:07 +0300 193) rc = N_LOG_TABLE4096;
868b2b66 (kx 2024-12-20 16:11:07 +0300 194) break;
868b2b66 (kx 2024-12-20 16:11:07 +0300 195) #endif /* MPU_MATH_FN_LIMIT >= 4096 */
868b2b66 (kx 2024-12-20 16:11:07 +0300 196) #if MPU_MATH_FN_LIMIT >= 8192
868b2b66 (kx 2024-12-20 16:11:07 +0300 197) case NBR_8192 :
868b2b66 (kx 2024-12-20 16:11:07 +0300 198) rc = N_LOG_TABLE8192;
868b2b66 (kx 2024-12-20 16:11:07 +0300 199) break;
868b2b66 (kx 2024-12-20 16:11:07 +0300 200) #endif /* MPU_MATH_FN_LIMIT >= 8192 */
868b2b66 (kx 2024-12-20 16:11:07 +0300 201) #if MPU_MATH_FN_LIMIT >= 16384
868b2b66 (kx 2024-12-20 16:11:07 +0300 202) case NBR_16384:
868b2b66 (kx 2024-12-20 16:11:07 +0300 203) rc = N_LOG_TABLE16384;
868b2b66 (kx 2024-12-20 16:11:07 +0300 204) break;
868b2b66 (kx 2024-12-20 16:11:07 +0300 205) #endif /* MPU_MATH_FN_LIMIT >= 16384 */
868b2b66 (kx 2024-12-20 16:11:07 +0300 206)
868b2b66 (kx 2024-12-20 16:11:07 +0300 207) default:
868b2b66 (kx 2024-12-20 16:11:07 +0300 208) {
868b2b66 (kx 2024-12-20 16:11:07 +0300 209) /* error: Invalid size of operand(s) */
868b2b66 (kx 2024-12-20 16:11:07 +0300 210) __real_error_no = __R_ESIZE__;
868b2b66 (kx 2024-12-20 16:11:07 +0300 211) __STIND; /* Set REAL ind-produsing operation Flag */
868b2b66 (kx 2024-12-20 16:11:07 +0300 212) break;
868b2b66 (kx 2024-12-20 16:11:07 +0300 213) }
868b2b66 (kx 2024-12-20 16:11:07 +0300 214)
868b2b66 (kx 2024-12-20 16:11:07 +0300 215) } /* End of switch( nb ) */
868b2b66 (kx 2024-12-20 16:11:07 +0300 216)
868b2b66 (kx 2024-12-20 16:11:07 +0300 217) return( rc );
868b2b66 (kx 2024-12-20 16:11:07 +0300 218)
868b2b66 (kx 2024-12-20 16:11:07 +0300 219) } /* End of _get_n_log_table() */
868b2b66 (kx 2024-12-20 16:11:07 +0300 220)
868b2b66 (kx 2024-12-20 16:11:07 +0300 221)
868b2b66 (kx 2024-12-20 16:11:07 +0300 222) EMUSHORT *_get_logF_head_ptr( int nb )
868b2b66 (kx 2024-12-20 16:11:07 +0300 223) {
868b2b66 (kx 2024-12-20 16:11:07 +0300 224) EMUSHORT *rc = (EMUSHORT *)NULL;
868b2b66 (kx 2024-12-20 16:11:07 +0300 225)
868b2b66 (kx 2024-12-20 16:11:07 +0300 226) if( nb < NBR_32 || nb > MPU_MATH_FN_LIMIT )
868b2b66 (kx 2024-12-20 16:11:07 +0300 227) {
868b2b66 (kx 2024-12-20 16:11:07 +0300 228) /* error: Invalid size of operand(s) */
868b2b66 (kx 2024-12-20 16:11:07 +0300 229) __real_error_no = __R_ESIZE__;
868b2b66 (kx 2024-12-20 16:11:07 +0300 230) __STIND; /* Set REAL ind-produsing operation Flag */
868b2b66 (kx 2024-12-20 16:11:07 +0300 231) return( rc );
868b2b66 (kx 2024-12-20 16:11:07 +0300 232) }
868b2b66 (kx 2024-12-20 16:11:07 +0300 233)
868b2b66 (kx 2024-12-20 16:11:07 +0300 234) switch( nb )
868b2b66 (kx 2024-12-20 16:11:07 +0300 235) {
868b2b66 (kx 2024-12-20 16:11:07 +0300 236) #if MPU_MATH_FN_LIMIT >= 128
868b2b66 (kx 2024-12-20 16:11:07 +0300 237) case NBR_32 :
868b2b66 (kx 2024-12-20 16:11:07 +0300 238) case NBR_64 :
868b2b66 (kx 2024-12-20 16:11:07 +0300 239) case NBR_128 :
868b2b66 (kx 2024-12-20 16:11:07 +0300 240) rc = (EMUSHORT *)&_ei_logF_head_128_[0][0];
868b2b66 (kx 2024-12-20 16:11:07 +0300 241) break;
868b2b66 (kx 2024-12-20 16:11:07 +0300 242) #endif /* MPU_MATH_FN_LIMIT >= 128 */
868b2b66 (kx 2024-12-20 16:11:07 +0300 243) #if MPU_MATH_FN_LIMIT >= 256
868b2b66 (kx 2024-12-20 16:11:07 +0300 244) case NBR_256 :
868b2b66 (kx 2024-12-20 16:11:07 +0300 245) rc = (EMUSHORT *)&_ei_logF_head_256_[0][0];
868b2b66 (kx 2024-12-20 16:11:07 +0300 246) break;
868b2b66 (kx 2024-12-20 16:11:07 +0300 247) #endif /* MPU_MATH_FN_LIMIT >= 256 */
868b2b66 (kx 2024-12-20 16:11:07 +0300 248) #if MPU_MATH_FN_LIMIT >= 512
868b2b66 (kx 2024-12-20 16:11:07 +0300 249) case NBR_512 :
868b2b66 (kx 2024-12-20 16:11:07 +0300 250) rc = (EMUSHORT *)&_ei_logF_head_512_[0][0];
868b2b66 (kx 2024-12-20 16:11:07 +0300 251) break;
868b2b66 (kx 2024-12-20 16:11:07 +0300 252) #endif /* MPU_MATH_FN_LIMIT >= 512 */
868b2b66 (kx 2024-12-20 16:11:07 +0300 253) #if MPU_MATH_FN_LIMIT >= 1024
868b2b66 (kx 2024-12-20 16:11:07 +0300 254) case NBR_1024 :
868b2b66 (kx 2024-12-20 16:11:07 +0300 255) rc = (EMUSHORT *)&_ei_logF_head_1024_[0][0];
868b2b66 (kx 2024-12-20 16:11:07 +0300 256) break;
868b2b66 (kx 2024-12-20 16:11:07 +0300 257) #endif /* MPU_MATH_FN_LIMIT >= 1024 */
868b2b66 (kx 2024-12-20 16:11:07 +0300 258) #if MPU_MATH_FN_LIMIT >= 2048
868b2b66 (kx 2024-12-20 16:11:07 +0300 259) case NBR_2048 :
868b2b66 (kx 2024-12-20 16:11:07 +0300 260) rc = (EMUSHORT *)&_ei_logF_head_2048_[0][0];
868b2b66 (kx 2024-12-20 16:11:07 +0300 261) break;
868b2b66 (kx 2024-12-20 16:11:07 +0300 262) #endif /* MPU_MATH_FN_LIMIT >= 2048 */
868b2b66 (kx 2024-12-20 16:11:07 +0300 263) #if MPU_MATH_FN_LIMIT >= 4096
868b2b66 (kx 2024-12-20 16:11:07 +0300 264) case NBR_4096 :
868b2b66 (kx 2024-12-20 16:11:07 +0300 265) rc = (EMUSHORT *)&_ei_logF_head_4096_[0][0];
868b2b66 (kx 2024-12-20 16:11:07 +0300 266) break;
868b2b66 (kx 2024-12-20 16:11:07 +0300 267) #endif /* MPU_MATH_FN_LIMIT >= 4096 */
868b2b66 (kx 2024-12-20 16:11:07 +0300 268) #if MPU_MATH_FN_LIMIT >= 8192
868b2b66 (kx 2024-12-20 16:11:07 +0300 269) case NBR_8192 :
868b2b66 (kx 2024-12-20 16:11:07 +0300 270) rc = (EMUSHORT *)&_ei_logF_head_8192_[0][0];
868b2b66 (kx 2024-12-20 16:11:07 +0300 271) break;
868b2b66 (kx 2024-12-20 16:11:07 +0300 272) #endif /* MPU_MATH_FN_LIMIT >= 8192 */
868b2b66 (kx 2024-12-20 16:11:07 +0300 273) #if MPU_MATH_FN_LIMIT >= 16384
868b2b66 (kx 2024-12-20 16:11:07 +0300 274) case NBR_16384:
868b2b66 (kx 2024-12-20 16:11:07 +0300 275) rc = (EMUSHORT *)&_ei_logF_head_16384_[0][0];
868b2b66 (kx 2024-12-20 16:11:07 +0300 276) break;
868b2b66 (kx 2024-12-20 16:11:07 +0300 277) #endif /* MPU_MATH_FN_LIMIT >= 16384 */
868b2b66 (kx 2024-12-20 16:11:07 +0300 278)
868b2b66 (kx 2024-12-20 16:11:07 +0300 279) default:
868b2b66 (kx 2024-12-20 16:11:07 +0300 280) {
868b2b66 (kx 2024-12-20 16:11:07 +0300 281) /* error: Invalid size of operand(s) */
868b2b66 (kx 2024-12-20 16:11:07 +0300 282) __real_error_no = __R_ESIZE__;
868b2b66 (kx 2024-12-20 16:11:07 +0300 283) __STIND; /* Set REAL ind-produsing operation Flag */
868b2b66 (kx 2024-12-20 16:11:07 +0300 284) break;
868b2b66 (kx 2024-12-20 16:11:07 +0300 285) }
868b2b66 (kx 2024-12-20 16:11:07 +0300 286)
868b2b66 (kx 2024-12-20 16:11:07 +0300 287) } /* End of switch( nb ) */
868b2b66 (kx 2024-12-20 16:11:07 +0300 288)
868b2b66 (kx 2024-12-20 16:11:07 +0300 289) return( rc );
868b2b66 (kx 2024-12-20 16:11:07 +0300 290)
868b2b66 (kx 2024-12-20 16:11:07 +0300 291) } /* End of _get_logF_head_ptr() */
868b2b66 (kx 2024-12-20 16:11:07 +0300 292)
868b2b66 (kx 2024-12-20 16:11:07 +0300 293)
868b2b66 (kx 2024-12-20 16:11:07 +0300 294) EMUSHORT *_get_logF_tail_ptr( int nb )
868b2b66 (kx 2024-12-20 16:11:07 +0300 295) {
868b2b66 (kx 2024-12-20 16:11:07 +0300 296) EMUSHORT *rc = (EMUSHORT *)NULL;
868b2b66 (kx 2024-12-20 16:11:07 +0300 297)
868b2b66 (kx 2024-12-20 16:11:07 +0300 298) if( nb < NBR_32 || nb > MPU_MATH_FN_LIMIT )
868b2b66 (kx 2024-12-20 16:11:07 +0300 299) {
868b2b66 (kx 2024-12-20 16:11:07 +0300 300) /* error: Invalid size of operand(s) */
868b2b66 (kx 2024-12-20 16:11:07 +0300 301) __real_error_no = __R_ESIZE__;
868b2b66 (kx 2024-12-20 16:11:07 +0300 302) __STIND; /* Set REAL ind-produsing operation Flag */
868b2b66 (kx 2024-12-20 16:11:07 +0300 303) return( rc );
868b2b66 (kx 2024-12-20 16:11:07 +0300 304) }
868b2b66 (kx 2024-12-20 16:11:07 +0300 305)
868b2b66 (kx 2024-12-20 16:11:07 +0300 306) switch( nb )
868b2b66 (kx 2024-12-20 16:11:07 +0300 307) {
868b2b66 (kx 2024-12-20 16:11:07 +0300 308) #if MPU_MATH_FN_LIMIT >= 128
868b2b66 (kx 2024-12-20 16:11:07 +0300 309) case NBR_32 :
868b2b66 (kx 2024-12-20 16:11:07 +0300 310) case NBR_64 :
868b2b66 (kx 2024-12-20 16:11:07 +0300 311) case NBR_128 :
868b2b66 (kx 2024-12-20 16:11:07 +0300 312) rc = (EMUSHORT *)&_ei_logF_tail_128_[0][0];
868b2b66 (kx 2024-12-20 16:11:07 +0300 313) break;
868b2b66 (kx 2024-12-20 16:11:07 +0300 314) #endif /* MPU_MATH_FN_LIMIT >= 128 */
868b2b66 (kx 2024-12-20 16:11:07 +0300 315) #if MPU_MATH_FN_LIMIT >= 256
868b2b66 (kx 2024-12-20 16:11:07 +0300 316) case NBR_256 :
868b2b66 (kx 2024-12-20 16:11:07 +0300 317) rc = (EMUSHORT *)&_ei_logF_tail_256_[0][0];
868b2b66 (kx 2024-12-20 16:11:07 +0300 318) break;
868b2b66 (kx 2024-12-20 16:11:07 +0300 319) #endif /* MPU_MATH_FN_LIMIT >= 256 */
868b2b66 (kx 2024-12-20 16:11:07 +0300 320) #if MPU_MATH_FN_LIMIT >= 512
868b2b66 (kx 2024-12-20 16:11:07 +0300 321) case NBR_512 :
868b2b66 (kx 2024-12-20 16:11:07 +0300 322) rc = (EMUSHORT *)&_ei_logF_tail_512_[0][0];
868b2b66 (kx 2024-12-20 16:11:07 +0300 323) break;
868b2b66 (kx 2024-12-20 16:11:07 +0300 324) #endif /* MPU_MATH_FN_LIMIT >= 512 */
868b2b66 (kx 2024-12-20 16:11:07 +0300 325) #if MPU_MATH_FN_LIMIT >= 1024
868b2b66 (kx 2024-12-20 16:11:07 +0300 326) case NBR_1024 :
868b2b66 (kx 2024-12-20 16:11:07 +0300 327) rc = (EMUSHORT *)&_ei_logF_tail_1024_[0][0];
868b2b66 (kx 2024-12-20 16:11:07 +0300 328) break;
868b2b66 (kx 2024-12-20 16:11:07 +0300 329) #endif /* MPU_MATH_FN_LIMIT >= 1024 */
868b2b66 (kx 2024-12-20 16:11:07 +0300 330) #if MPU_MATH_FN_LIMIT >= 2048
868b2b66 (kx 2024-12-20 16:11:07 +0300 331) case NBR_2048 :
868b2b66 (kx 2024-12-20 16:11:07 +0300 332) rc = (EMUSHORT *)&_ei_logF_tail_2048_[0][0];
868b2b66 (kx 2024-12-20 16:11:07 +0300 333) break;
868b2b66 (kx 2024-12-20 16:11:07 +0300 334) #endif /* MPU_MATH_FN_LIMIT >= 2048 */
868b2b66 (kx 2024-12-20 16:11:07 +0300 335) #if MPU_MATH_FN_LIMIT >= 4096
868b2b66 (kx 2024-12-20 16:11:07 +0300 336) case NBR_4096 :
868b2b66 (kx 2024-12-20 16:11:07 +0300 337) rc = (EMUSHORT *)&_ei_logF_tail_4096_[0][0];
868b2b66 (kx 2024-12-20 16:11:07 +0300 338) break;
868b2b66 (kx 2024-12-20 16:11:07 +0300 339) #endif /* MPU_MATH_FN_LIMIT >= 4096 */
868b2b66 (kx 2024-12-20 16:11:07 +0300 340) #if MPU_MATH_FN_LIMIT >= 8192
868b2b66 (kx 2024-12-20 16:11:07 +0300 341) case NBR_8192 :
868b2b66 (kx 2024-12-20 16:11:07 +0300 342) rc = (EMUSHORT *)&_ei_logF_tail_8192_[0][0];
868b2b66 (kx 2024-12-20 16:11:07 +0300 343) break;
868b2b66 (kx 2024-12-20 16:11:07 +0300 344) #endif /* MPU_MATH_FN_LIMIT >= 8192 */
868b2b66 (kx 2024-12-20 16:11:07 +0300 345) #if MPU_MATH_FN_LIMIT >= 16384
868b2b66 (kx 2024-12-20 16:11:07 +0300 346) case NBR_16384:
868b2b66 (kx 2024-12-20 16:11:07 +0300 347) rc = (EMUSHORT *)&_ei_logF_tail_16384_[0][0];
868b2b66 (kx 2024-12-20 16:11:07 +0300 348) break;
868b2b66 (kx 2024-12-20 16:11:07 +0300 349) #endif /* MPU_MATH_FN_LIMIT >= 16384 */
868b2b66 (kx 2024-12-20 16:11:07 +0300 350)
868b2b66 (kx 2024-12-20 16:11:07 +0300 351) default:
868b2b66 (kx 2024-12-20 16:11:07 +0300 352) {
868b2b66 (kx 2024-12-20 16:11:07 +0300 353) /* error: Invalid size of operand(s) */
868b2b66 (kx 2024-12-20 16:11:07 +0300 354) __real_error_no = __R_ESIZE__;
868b2b66 (kx 2024-12-20 16:11:07 +0300 355) __STIND; /* Set REAL ind-produsing operation Flag */
868b2b66 (kx 2024-12-20 16:11:07 +0300 356) break;
868b2b66 (kx 2024-12-20 16:11:07 +0300 357) }
868b2b66 (kx 2024-12-20 16:11:07 +0300 358)
868b2b66 (kx 2024-12-20 16:11:07 +0300 359) } /* End of switch( nb ) */
868b2b66 (kx 2024-12-20 16:11:07 +0300 360)
868b2b66 (kx 2024-12-20 16:11:07 +0300 361) return( rc );
868b2b66 (kx 2024-12-20 16:11:07 +0300 362)
868b2b66 (kx 2024-12-20 16:11:07 +0300 363) } /* End of _get_logF_tail_ptr() */
868b2b66 (kx 2024-12-20 16:11:07 +0300 364)
868b2b66 (kx 2024-12-20 16:11:07 +0300 365)
868b2b66 (kx 2024-12-20 16:11:07 +0300 366) /***************************************************************
868b2b66 (kx 2024-12-20 16:11:07 +0300 367) Hide internal symbols:
868b2b66 (kx 2024-12-20 16:11:07 +0300 368) ***************************************************************/
868b2b66 (kx 2024-12-20 16:11:07 +0300 369)
868b2b66 (kx 2024-12-20 16:11:07 +0300 370) __mpu_hidden_decl(_get_n_log_table);
868b2b66 (kx 2024-12-20 16:11:07 +0300 371) __mpu_hidden_decl(_get_logF_head_ptr);
868b2b66 (kx 2024-12-20 16:11:07 +0300 372) __mpu_hidden_decl(_get_logF_tail_ptr);
868b2b66 (kx 2024-12-20 16:11:07 +0300 373)
868b2b66 (kx 2024-12-20 16:11:07 +0300 374)
868b2b66 (kx 2024-12-20 16:11:07 +0300 375) /*
868b2b66 (kx 2024-12-20 16:11:07 +0300 376) End of hide internal symbols.
868b2b66 (kx 2024-12-20 16:11:07 +0300 377) ***************************************************************/