--- a/LongFloat.st Thu Mar 21 17:41:42 2013 +0100
+++ b/LongFloat.st Fri Mar 22 10:44:23 2013 +0100
@@ -67,33 +67,33 @@
*/
# ifndef isnanl
# define isnanl(x) \
- ((((unsigned int *)(&x))[0] == 0x00000000) && \
- (((unsigned int *)(&x))[1] == 0xC0000000) && \
- (((unsigned short *)(&x))[4] == 0xFFFF))
+ ((((unsigned int *)(&x))[0] == 0x00000000) && \
+ (((unsigned int *)(&x))[1] == 0xC0000000) && \
+ (((unsigned short *)(&x))[4] == 0xFFFF))
# endif
# ifndef isnan
# define isnan(x) \
- ((((unsigned int *)(&x))[0] == 0x00000000) && \
- (((unsigned int *)(&x))[1] == 0xFFF80000))
+ ((((unsigned int *)(&x))[0] == 0x00000000) && \
+ (((unsigned int *)(&x))[1] == 0xFFF80000))
# endif
# ifndef isPositiveInfinity
# define isPositiveInfinity(x) \
- ((((unsigned int *)(&x))[0] == 0x00000000) && \
- (((unsigned int *)(&x))[1] == 0x7FF00000))
+ ((((unsigned int *)(&x))[0] == 0x00000000) && \
+ (((unsigned int *)(&x))[1] == 0x7FF00000))
# endif
# ifndef isNegativeInfinity
-# define isPositiveInfinity(x) \
- ((((unsigned int *)(&x))[0] == 0x00000000) && \
- (((unsigned int *)(&x))[1] == 0xFFF00000))
+# define isNegativeInfinity(x) \
+ ((((unsigned int *)(&x))[0] == 0x00000000) && \
+ (((unsigned int *)(&x))[1] == 0xFFF00000))
# endif
# ifndef isinf
# define isinf(x) \
- ((((unsigned int *)(&x))[0] == 0x00000000) && \
- ((((unsigned int *)(&x))[1] & 0x7FF00000) == 0x7FF00000))
+ ((((unsigned int *)(&x))[0] == 0x00000000) && \
+ ((((unsigned int *)(&x))[1] & 0x7FF00000) == 0x7FF00000))
# endif
# ifndef isfinite
@@ -103,6 +103,11 @@
# define NO_ASINH
# define NO_ACOSH
# define NO_ATANH
+
+# ifdef __MINGW__
+# include <string.h>
+# endif
+
#endif /* WIN32 */
#ifdef solaris
@@ -171,38 +176,38 @@
#endif
struct __longfloatstruct {
- STX_OBJ_HEADER
+ STX_OBJ_HEADER
#ifdef __NEED_DOUBLE_ALIGN
- __FILLTYPE_DOUBLE f_filler;
+ __FILLTYPE_DOUBLE f_filler;
#endif
- LONGFLOAT f_longfloatvalue;
+ LONGFLOAT f_longfloatvalue;
};
#define __LongFloatInstPtr(obj) ((struct __longfloatstruct *)(__objPtr(obj)))
#ifndef __longFloatVal
# define __longFloatVal(o) \
- __LongFloatInstPtr(o)->f_longfloatvalue
+ __LongFloatInstPtr(o)->f_longfloatvalue
#endif
#ifndef __qMKLFLOAT
# define __qMKLFLOAT(__newFloat__, __fVal__) \
{ \
- __qNew(__newFloat__ , sizeof(struct __longfloatstruct)); \
- if (__newFloat__) { \
- __objPtr(__newFloat__)->o_class = LONGFLOAT_GLOBAL; \
- __LongFloatInstPtr(__newFloat__)->f_longfloatvalue = (LONGFLOAT)(__fVal__); \
- } \
+ __qNew(__newFloat__ , sizeof(struct __longfloatstruct)); \
+ if (__newFloat__) { \
+ __objPtr(__newFloat__)->o_class = LONGFLOAT_GLOBAL; \
+ __LongFloatInstPtr(__newFloat__)->f_longfloatvalue = (LONGFLOAT)(__fVal__); \
+ } \
}
#endif
#ifndef __isLongFloat
# define __isLongFloat(o) \
- (__Class(o) == @global(LongFloat))
+ (__Class(o) == @global(LongFloat))
#endif
#ifndef __qIsLongFloat
# define __qIsLongFloat(o) \
- (__qClass(o) == @global(LongFloat))
+ (__qClass(o) == @global(LongFloat))
#endif
%}
@@ -2401,13 +2406,13 @@
lVal = LONG_ceil(__longFloatVal(self));
if ((lVal >= (LONGFLOAT)_MIN_INT) && (lVal <= (LONGFLOAT)_MAX_INT)) {
- RETURN ( __mkSmallInteger( (INT) lVal ) );
+ RETURN ( __mkSmallInteger( (INT) lVal ) );
}
__qMKLFLOAT(val, lVal);
#endif
%}.
val notNil ifTrue:[
- ^ val asInteger
+ ^ val asInteger
].
^ super ceiling.
@@ -2453,13 +2458,13 @@
lVal = LONG_floor(__longFloatVal(self));
if ((lVal >= (LONGFLOAT)_MIN_INT) && (lVal <= (LONGFLOAT)_MAX_INT)) {
- RETURN ( __mkSmallInteger( (INT) lVal ) );
+ RETURN ( __mkSmallInteger( (INT) lVal ) );
}
__qMKLFLOAT(val, lVal);
#endif
%}.
val notNil ifTrue:[
- ^ val asInteger
+ ^ val asInteger
].
^ super floor.
@@ -2542,15 +2547,15 @@
lVal = __longFloatVal(self);
if (lVal < 0.0) {
- lVal = LONG_ceil(lVal - (LONGFLOAT)0.5);
+ lVal = LONG_ceil(lVal - (LONGFLOAT)0.5);
} else {
- lVal = LONG_floor(lVal + (LONGFLOAT)0.5);
+ lVal = LONG_floor(lVal + (LONGFLOAT)0.5);
}
/*
* ST-80 (and X3J20) returns integer.
*/
if ((lVal >= (LONGFLOAT)_MIN_INT) && (lVal <= (LONGFLOAT)_MAX_INT)) {
- RETURN ( __mkSmallInteger( (INT) lVal ) );
+ RETURN ( __mkSmallInteger( (INT) lVal ) );
}
__qMKLFLOAT(v, lVal);
RETURN (v);
@@ -2603,22 +2608,22 @@
lVal = __longFloatVal(self);
if (lVal < 0.0) {
- lVal = LONG_ceil(lVal);
+ lVal = LONG_ceil(lVal);
} else {
- lVal = LONG_floor(lVal);
+ lVal = LONG_floor(lVal);
}
/*
* ST-80 (and X3J20) returns integer.
*/
if ((lVal >= (LONGFLOAT)_MIN_INT) && (lVal <= (LONGFLOAT)_MAX_INT)) {
- RETURN ( __mkSmallInteger( (INT) lVal ) );
+ RETURN ( __mkSmallInteger( (INT) lVal ) );
}
__qMKLFLOAT(val, lVal);
#endif
%}.
val notNil ifTrue:[
- ^ val asInteger
+ ^ val asInteger
].
^ super truncated
@@ -2644,9 +2649,9 @@
lVal = __longFloatVal(self);
if (lVal < 0.0) {
- lVal = LONG_ceil(lVal);
+ lVal = LONG_ceil(lVal);
} else {
- lVal = LONG_floor(lVal);
+ lVal = LONG_floor(lVal);
}
__qMKLFLOAT(v, lVal);
RETURN (v);
@@ -2665,11 +2670,11 @@
!LongFloat class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libbasic/LongFloat.st,v 1.76 2013-03-20 14:57:16 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/LongFloat.st,v 1.77 2013-03-22 09:44:22 cg Exp $'
!
version_CVS
- ^ '$Header: /cvs/stx/stx/libbasic/LongFloat.st,v 1.76 2013-03-20 14:57:16 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libbasic/LongFloat.st,v 1.77 2013-03-22 09:44:22 cg Exp $'
! !