File: pm.c Original provenience: unknown Source: HPEC Challenge Benchmark Suite 2016-04-20: - Fixed some compiler warnings. - Moved main to end of file. 2016-03-15: - Renamed preprocessor defines MIN_NOISE and LOG10 to pm_MIN_NOISE and pm_LOG10. - Made sure that pm_return returns value 0 upon success. 2016-01-22: - Moved math functions pm_log10f, pm_pow10f, pm_fabs, pm_floor, pm_ceil into own files pm_math.h and pm_libm.c. - Moved associated static global variables pm_log_coeff and pm_pow_coeff into file pm_libm.c. - Renamed function pm_init_coeff to pm_math_init and moved its call out of pm_init_data. - Moved stdlib functions pm_memcpy and pm_memset into own files pm_string.h and pm_stdlib.c. - Renamed input.c to pm_input.c 2016-01-21: - Changed pm_ceil and pm_floor such that the expression !arg is not used anymore to resolve compiler warning "implicit conversion turns floating-point number into integer". However, NaN and infinity are not handled correctly. - Cast results of pm_ceil and pm_floor to int instead of the functions themselves to resolve compiler warning about "cast from function call of type 'float' to non-matching type 'int'". - Cast parameter c of pm_memset to unsigned char to resolve compiler warning that "implicit conversion loses integer precision". - Cast result of sizeof operator in call to pm_memset to int to resolve compiler warnings that "implicit conversion changes signedness". - Converted type of local variables match_index and min_MSE_index in pm_kernel, as well as array base type of member size in pm_float_array_t from unsigned int to int to resolve compiler warnings that "implicit conversion changes signedness". - Removed register storage class for local variables in pm_kernel. 2016-01-07: - Added original name to generic TACLeBench header. - Added forward declarations for all functions. - Renamed function main to pm_main. - Renamed function init to pm_init_data. - Renamed function clean to pm_clean. - Changed all //-style comments to /* */-style comments - Renamed function fabs_ to pm_fabs. - Renamed function setcoeff to pm_init_coeff. - Renamed pow10fpm to pm_pow10f. - Renamed log10fpm to pm_log10f. - Renamed my_floor to pm_floor. - Renamed my_ceil to pm_ceil. - Renamed my_memcpy to pm_memcpy. - Renamed my_memset to pm_memset. - Renamed function pm to pm_kernel. - Added function pm_init that handles the initialization of the math library functions. - Added function pm_return that handles the original return value of main. - Added new function main that first calls pm_init, then pm_main and finally returns the return value of pm_return. - Replaced local variables pmdata, lib, patternand result in main with global static variables pm_data, pm_lib, pm_pattern and pm_result. - Renamed global variables init_array_1, init_array_2, init_array_3, init_array_4, init_array_5, init_array_6, init_array_7 and init_array_8 to pm_init_array_1, pm_init_array_2, pm_init_array_3, pm_init_array_4, pm_init_array_5, pm_init_array_6, pm_init_array_7 and pm_init_array_8 and made them static. - Renamed global variables pow_coeff and log_coeff to pm_pow_coeff and pm_log_coeff and made them static. - Tested conformance to C90 via clang -fsyntax-only -Weverything -Wno-unknown-pragmas -pedantic -std=c90 2016-01-06: - Applied TACLeBench formatting rules via astyle --options=doc/example/astylerc.txt 2015-12-08: - Replaced comments in line 1-37 with generic TACLeBench header. - Introduced comments to split file in sections for type definition, forward declarations, global variables, initialization-related and return-value-related functions, core benchmark functions, and main routine. - Moved BSD 3-clause license comment to own file license.txt. - Renamed global variables lib_data and pattern_data to pm_lib_data and pm_pattern_data. - Renamed functions read_lib and read_pattern to pm_init_lib and pm_init_pattern. - Removed unnecessary return statements. - Inlined definition of types PmData and PcaCArrayFloat from PcaCArray.h. - Renamed type PmData to pm_data_t. - Renamed type PcaCArrayFloat to pm_float_array_t. 2007-10-18 (Rathijit Sen, Universität des Saarlandes): - Removed dynamic alloc, file I/O.