26.01.1998: - Finished rt_fixed-0.1.tar.gz 27.01.1998: - Fixed bugs in the rt_fixed14_sin(x) and rt_fixed14_cos(x) functions. - Added some usefull macros, namely: - to_first_intervall(x) - degree_to_table_index(x) - Added some definitions, namely: - TRIGONOMETRIC_TABLE_SIZE - TRIGONOMETRIC_RES - Added function rt_fixed14_ldexp(x) (implemented as a macro) - Corrected wrong dates in this file - new version rt_fixed-0.1a.tar.gz 28.01.1998: - added tangent approximation - new version rt_fixed-0.1b.tar.gz 29.01.1998: - some minor changes - new version rt_fixed-0.1c.tar.gz 31.01.1998: - added tangent approximation - Threw away: - TRIGONOMETRIC_RES - new version rt_fixed-0.1d.tar.gz 01.02.1998 - Added some definitions, namely: - RT_FIXED14MAX - RT_FIXED14MIN - Added a little bit documentation. - Switched arc functions to degrees instead of radians. - new version rt_fixed-0.1e.tar.gz 22.02.1998 - Awfull lot of changes only the major changes are mentioned below - Switched to arbitrary precision. This means the fixed point numbers can have different number of bits for the fractional part. - Switched all trigonometric functions to radians. - Wrote more documentation. 01.03.1998 - Debugged the library and removed a lot of errors. - renamed library to librt_fix.so - renamed kernel module to rt_fix.o - Added fixcalc example and rt_process kernel module which belongs to the fixcalc example (must be insmoded first). - new version rt_fixed-0.2.tar.gz 02.03.1998 - fixed two bug in the fixcalc example 1 + (-3) gave wrong results => bug in scanner the minus sign in the natural and the reel definition was too much. The minus is interpreted in the parser 1 / 10 gave wrong results => bug in scanner natural definition missed a + at the end - new version rt_fixed-0.2a.tar.gz 07.03.1998 - added rt_fix_exp(x) function. Works pretty precise for x e [-1, 1] and less precise, if x is outside this intevall. It also seems to be a bit buggy. - added exp(x), sin(x) and cos(x) in the fixcalc example. 08.03.1998 - fixed precision in rt_fix_exp(x) function. - the integer word length of result of the basic operations rt_fix_mul(x,y), rt_fix_div(x/y), rt_fix_add(x,y) and rt_fix_sub(x,y) is kept minimal now. - added tan(x), asin(x), acos(x), round(x), floor(x), ceil(x), frac(x) and abs(x) in the fixcalc example. 09.03.1998 - added html stuff in doc directory. - new version rt_fixed-0.2b.tar.gz 18.03.1998 - changed implementation of rt_fix_shl(x, b) and rt_fix_shr(x, b) (shift left and shift right) functions. - added measurements subdirectory in test directory. This directory contains some simple and probably not precise measurements for comparing operations using the FPU with their equivalents using fixed point arithmetic. - started to inline some functions. The inline functions are use, if programs are compiled with the -O option. - decided to export the function rt_fix_min_iwl(x) which left aligns a fixed point number. This is usefull in order to be able to inline more functions. - decided to export the constants rt_fix_min, rt_fix_max and rt_fix_pi. - decided to throw away the divzero_handler and instead return rt_fix_max as the result of a division by zero. 19.03.1998 - inlined all basic functions (except rt_fix_sqrt() and the trigonometric functions). - wrote more measurement functions. - added program atprio which allows root to run measurements using soft real time scheduling (SCHED_FIFO). 21.03.1998 - deleted attribute _string_rep in type rt_fix and changed parameters of function rt_fix_toa(). - deleted attribute _overflow_handler. If in an operation the result overflows or underflows the result is set to RT_FIXMAX or RT_FIXMIN depending on the type of error. 22.03.1998 - added evaluate() program in ./test/measurements 23.03.1998 - added rt_fix_log() function which calculates the natural logarithm. 25.03.1998 - fixed bug in rt_fix_div() which caused errors in calculations like 1 / 0.1. 26.03.1998 - added rt_fix_log10() and rt_fix_log2() functions. - decided to export rt_fix_1 (= 1) constant. 27.03.1998 - fixed bugs in functions for comparisons. - added rt_fix_pow(). - added hyperbolic functions. 29.03.1998 - added rt_fix_atan() function. 30.03.1998 - fixed bug in rt_fix_sqrt(). The bug was that I forgot to minimize the integer word length of the result before returning the result. - decided to exchange the table based versions of rt_fix_asin() and rt_fix_acos() with approximations based on rt_fix_atan(). - decided to exchange the table based versions of rt_fix_sin(), rt_fix_cos() and rt_fix_tan() with approximations (slower but much more precise). - deleted include file rt_fix_tables.h. It is not needed anymore. 31.03.1998 - decided to make some functions (rt_fix_ass?(), rt_fix_toa(), rt_fix_atofix(), rt_fix_set_*(), rt_fix_get_*()) optional. If they are needed the library must be recompiled with RT_FIXMISC defined. 13.04.1998 - added rt_fix_neg(arg) functions, which calculates arg * -1. 25.04.1998 - To be more conforming to ISO/IEC 10967-1 (Information technology - Language independent arithmetic) I changed the following names: * rt_fix_get_sign -> rt_fix_sign * rt_fix_gt -> rt_fix_gtr * rt_fix_gt -> rt_fix_gtr * rt_fix_lt -> rt_fix_lss 26.04.1998 - fixed some bugs 02.05.1998 - all functions returning a boolean value are of return type short now. - deleted attribute _fwl out of type rt_fix - changed type of attribute _iwl from unsigned int to unsigned short. 03.05.1998 - implemented error reporting.