The SmplMath macros system is a collection of MASM macros for evaluating mathematic expression developed by qWord. There are a whole bunch of macros for expression evaluation, comparison and FPU related topics.
example:
.if fGT(Pb, @fSlv8(710.2740349*0.63))
fSlv8 AaPbB = (spba + spbb /( 1 + (( Pb - spbc)/ spbd)^2)) \
* ((710.2740349 / bDNAmx) - ( Pb / BDNA))\
/ (1.0 + ( KAaPbB / cAa1))
.else
fSlv8 AaPbB = (spbpa + spbpb * ( Pb ^ spbpc)) \
* ((710.2740349 / bDNAmx) - ( Pb / BDNA))\
/ (1.0 + ( KAaPbB / cAa1))
.endif
Well tested for 32 bits with ML, JWASM, ASMC (-Znk option) and UASM32.
In 64 bits was tested with JWASM by qWord, and recently some testing for ML64 using Masm64 SDK (see Masm32.com).
Loops and Compound operators macros simplify in a controled way programming some calculations. Pseudo push/pop facilitate translations between 32 and 64 bits and allow dual bitness (See ObjAsm-C.1). Conditional flow macros solve some problems with floating point numbers comparisons and other early macro expansions.
These include some additional macros provided by qWord, and an invoke macro modified from Steve Hutchesson's Masm64 SDK.