trick/include/trick/roundoff.h
Alex Lin 19025d77ad Standardize directory names
Reorganized.  Created a new top level include directory that will hold all of Trick's header files. Moved all of the Trick headers to this directory.  Created a libexec directory that holds all of the executables that users don't need to execute directly.  Changed all of the executables remaining in bin to start with "trick-".  In the sim_services directories changed all source files to find the Trick headers in their new location.  Since all of the include files are gone in sim_services, removed the src directories as well, moving all of the source files up a level.  Moved the makefiles, docs, man, and other architecture independent files into a top level share directory.  Renamed lib_${TRICK_HOST_CPU} to lib64 or lib depending on the platform we're currently on.

refs #63
2015-06-09 08:44:42 -05:00

48 lines
1.0 KiB
C

/*
PURPOSE:
(floating point number round off macro.)
REFERENCE:
((None))
ASSUMPTIONS AND LIMITATIONS:
()
PROGRAMMERS:
(((Robert W. Bailey) (LinCom Corp) (4/92) (--) (Realtime)))
*/
#ifndef ROUNDOFF_H
#define ROUNDOFF_H
#define TRICK_ROUNDOFF_MAX 1.e15
#define ROUNDOFF(nval,res,val)\
{\
double fraction , real , sval , my_remainder ;\
if( val < (TRICK_ROUNDOFF_MAX*res) ) { \
real = (double)((long)val) ;\
fraction = val - real ;\
sval = fraction / res ;\
my_remainder = sval - (double)((long)sval) ;\
if ( val > 0 ) {\
if( my_remainder <= 0.5 ) {\
nval = real + (double)((long)sval)*res ;\
}\
else {\
nval = real + (double)((long)sval+1)*res ;\
}\
}\
else {\
if( my_remainder >= -0.5 ) {\
nval = real + (double)((long)sval)*res ;\
}\
else {\
nval = real + (double)((long)sval-1)*res ;\
}\
}\
}\
else { \
nval = val;\
}\
}
#endif