[Monetdb-developers] [Monetdb-checkins] MonetDB5/src/modules/kernel algebra.mx, , 1.184, 1.185 bat5.mx, , 1.26, 1.27 mmath.mx, , 1.35, 1.36

Romulo Goncalves R.A.Goncalves at cwi.nl
Tue Oct 16 16:32:21 CEST 2007


Martin Kersten wrote:
> Update of /cvsroot/monetdb/MonetDB5/src/modules/kernel
> In directory sc8-pr-cvs16.sourceforge.net:/tmp/cvs-serv28642
> 
> Modified Files:
> 	algebra.mx bat5.mx mmath.mx 
> Log Message:
> Move all signatures to the .h section to ease compilation of
> programs using the interface directly. More files to do.
> 
> 
> Index: mmath.mx
> ===================================================================
> RCS file: /cvsroot/monetdb/MonetDB5/src/modules/kernel/mmath.mx,v
> retrieving revision 1.35
> retrieving revision 1.36
> diff -u -d -r1.35 -r1.36
> --- mmath.mx	13 Sep 2007 13:45:13 -0000	1.35
> +++ mmath.mx	14 Oct 2007 08:41:47 -0000	1.36
> @@ -206,16 +206,9 @@
>  @h
>  #ifndef __MMATH_H__
>  #define __MMATH_H__
> -
> -#include <gdk.h>
> -
> -#endif /* __MMATH_H__ */
> -
> - at + Implementation Code
> - at c
>  #include "mal_config.h"
> -
> -#include "mmath.h"
> +#include "mal.h"
> +#include "mal_exception.h"
>  #include <math.h>
>  
>  extern double sqrt(double x);
> @@ -234,29 +227,6 @@
>  #define mmath_export extern
>  #endif
>  
> -#define acos_unary(x, z)      *z = acos(*x)
> -#define asin_unary(x, z)      *z = asin(*x)
> -#define atan_unary(x, z)      *z = atan(*x)
> -#define atan2_binary(x, y, z) *z = atan2(*x,*y)
> -#define cos_unary(x, z)	      *z = cos(*x)
> -#define sin_unary(x, z)	      *z = sin(*x)
> -#define tan_unary(x, z)	      *z = tan(*x)
> -
> -#define cosh_unary(x, z)       *z = cosh(*x)
> -#define sinh_unary(x, z)       *z = sinh(*x)
> -#define tanh_unary(x, z)       *z = tanh(*x)
> -
> -#define exp_unary(x, z)	      *z = exp(*x)
> -#define log_unary(x, z)	      *z = log(*x)
> -#define log10_unary(x, z)     *z = log10(*x)
> -
> -#define pow_binary(x, y, z)   *z = pow(*x,*y)
> -#define sqrt_unary(x, z)      *z = sqrt(*x)
> -
> -#define ceil_unary(x, z)      *z = ((-1.0<*x)&&(*x<0.0))?0.0:ceil(*x)
> -#define fabs_unary(x, z)      *z = fabs(*x)
> -#define floor_unary(x, z)     *z = floor(*x)
> -#define fmod_binary(x, y, z)  *z = fmod(*x,*y)
>  
>  #ifdef _MSC_VER
>  #include <float.h>
> @@ -306,11 +276,78 @@
>  #endif /* HAVE_ISINF */
>  #endif /* HAVE_FPCLASSIFY */
>  
> -#include "mal.h"
> -#include "mal_exception.h"
> -mmath_export str math_unary_FINITE(bit *res, dbl *a);
> -mmath_export str math_unary_ISNAN(bit *res, dbl *a);
> -mmath_export str math_unary_ISINF(int *res, dbl *a);
> +#define acos_unary(x, z)      *z = acos(*x)
> +#define asin_unary(x, z)      *z = asin(*x)
> +#define atan_unary(x, z)      *z = atan(*x)
> +#define atan2_binary(x, y, z) *z = atan2(*x,*y)
> +#define cos_unary(x, z)	      *z = cos(*x)
> +#define sin_unary(x, z)	      *z = sin(*x)
> +#define tan_unary(x, z)	      *z = tan(*x)
> +
> +#define cosh_unary(x, z)       *z = cosh(*x)
> +#define sinh_unary(x, z)       *z = sinh(*x)
> +#define tanh_unary(x, z)       *z = tanh(*x)
> +
> +#define exp_unary(x, z)	      *z = exp(*x)
> +#define log_unary(x, z)	      *z = log(*x)
> +#define log10_unary(x, z)     *z = log10(*x)
> +
> +#define pow_binary(x, y, z)   *z = pow(*x,*y)
> +#define sqrt_unary(x, z)      *z = sqrt(*x)
> +
> +#define ceil_unary(x, z)      *z = ((-1.0<*x)&&(*x<0.0))?0.0:ceil(*x)
> +#define fabs_unary(x, z)      *z = fabs(*x)
> +#define floor_unary(x, z)     *z = floor(*x)
> +#define fmod_binary(x, y, z)  *z = fmod(*x,*y)
> +
> +@= unopbaseM5_export
> +mmath_export str MATHunary at 1@3(@3 *res , @3 *a );
> +@= unopM5_export
> +  @:unopbaseM5_export(@1, at 2,dbl)@
> +  @:unopbaseM5_export(@1, at 2,flt)@
> +@= binopbaseM5_export
> +mmath_export str MATHbinary at 1@3(@3 *res, @3 *a, @3 *b );
> +@= binopM5_export
> +  @:binopbaseM5_export(@1, at 2,dbl)@
> +  @:binopbaseM5_export(@1, at 2,flt)@
> +
> + at h
> +@:unopM5_export(_ACOS,acos)@
> +@:unopM5_export(_ASIN,asin)@
> +@:unopM5_export(_ATAN,atan)@
> +@:binopM5_export(_ATAN2,atan2)@
> +@:unopM5_export(_COS,cos)@
> +@:unopM5_export(_SIN,sin)@
> +@:unopM5_export(_TAN,tan)@
> +
> +@:unopM5_export(_COSH,cosh)@
> +@:unopM5_export(_SINH,sinh)@
> +@:unopM5_export(_TANH,tanh)@
> +
> +@:unopM5_export(_EXP,exp)@
> +@:unopM5_export(_LOG,log)@
> +@:unopM5_export(_LOG10,log10)@
> +
> +@:binopM5_export(_POW,pow)@
> +@:unopM5_export(_SQRT,sqrt)@
> +
> +@:unopM5_export(_CEIL,ceil)@
> +@:unopbaseM5_export(_FABS,fabs,dbl)@
> +@:unopM5_export(_FLOOR,floor)@
> +@:binopM5_export(_FMOD,fmod)@
> +
> +
> +mmath_export str MATHunary_ISNAN(bit *res, dbl *a);
> +mmath_export str MATHunary_ISINF(int *res, dbl *a);
> +mmath_export str MATHunary_FINITE(bit *res, dbl *a);
> +mmath_export str MATHrandint(int *res);
> +mmath_export str MATHsrandint(int *seed);
> +mmath_export str MATHpi(dbl *pi);
> +#endif /* __MMATH_H__ */
> +
> + at + Implementation Code
> + at c
> +#include "mmath.h"
>  
>  @:unop(_ACOS,acos)@
>  @:unop(_ASIN,asin)@
> @@ -375,7 +412,6 @@
>  	}
>  	return MAL_SUCCEED;
>  }
> -@
>  
>  @c
>  str
> @@ -453,7 +489,6 @@
>  Wrapping around the M4 code base
>  @-
>  @= unopbaseM5
> -mmath_export str MATHunary at 1@3(@3 *res , @3 *a );
>  str MATHunary at 1@3(@3 *res , @3 *a ) {
>  #ifdef DEBUG
>  		printf( "MATHunary at 1@3\n");
> @@ -476,7 +511,6 @@
>    @:unopbaseM5(@1, at 2,flt)@
>  
>  @= binopbaseM5
> -mmath_export str MATHbinary at 1@3(@3 *res, @3 *a, @3 *b );
>  str MATHbinary at 1@3(@3 *res, @3 *a, @3 *b ) {
>  #ifdef DEBUG
>  		printf( "MATHbinary at 1\n");
> @@ -495,7 +529,6 @@
>    @:binopbaseM5(@1, at 2,flt)@
>  @
>  @= roundM5
> -mmath_export str MATHbinary_ROUND at 1(@1 *res, @1 *x, int *y);
>  str MATHbinary_ROUND at 1(@1 *res, @1 *x, int *y) {
If you remove the export, you will break the compilation on windows.

Maybe the following Mserver5 start can tell you which functions should 
be exported, but unfortunately they aren't. ;)

E:\MonetDB\Current\sql\NT>RunMserver5.bat
 > # MonetDB server v5.3.0, based on kernel v1.21.0
 > # Serving database 'demo'
 > # Compiled for i686-pc-win32/32bit with 32bit OIDs dynamically linked
 > # Copyright (c) 1993-2007 CWI, all rights reserved
 > # Visit http://monetdb.cwi.nl/ for further information
 > #warning: please don't forget to set your vault key!
 > #(see E:\MonetDB\Current\MonetDB5\NT\etc\monetdb5.conf)
 > !MALException:MAL.getAddress:address of 'mmath.MATHbinary_ROUNDflt' not
 > found
 > !MALException:MAL.getAddress:address of 'mmath.MATHbinary_ROUNDdbl' not
 > found
 > !MALException:MAL.getAddress:address of 'mmath.math_unary_ISNAN' not 
found
 > !MALException:MAL.getAddress:address of 'mmath.math_unary_ISINF' not 
found
 > !MALException:MAL.getAddress:address of 'mmath.math_unary_FINITE' not 
found
 > !MALException:MAL.getAddress:address of 'algebra.ALGselectNotNil' not 
found
 > !MALException:MAL.getAddress:address of 'algebra.ALGuhashsplit' not found
 > !MALException:MAL.getAddress:address of 'group.GRPmin' not found
 > !MALException:MAL.getAddress:address of 'group.GRPmax' not found
 > # Listening for connection requests on mapi:monetdb://127.0.0.1:50000/
 > > >\q

Regards,
Romulo




More information about the developers-list mailing list