[Monetdb-developers] [Monetdb-checkins] MonetDB5/src/modules/kernel batmmath.mx, Feb2009, NONE, 1.1.2.1 Makefile.ag, Feb2009, 1.74, 1.74.2.1 batmath.mx, Feb2009, 1.21, NONE

Stefan Manegold Stefan.Manegold at cwi.nl
Sat Feb 14 08:42:49 CET 2009


Sjoerd,

could you please also fix the Windows installers accordingly, i.e., rename
"batmath" into "batmmath" in 

MonetDB5/NT/MonetDB5-Server/MonetDB5-Server64.vdproj
MonetDB5/NT/MonetDB5-Server/MonetDB5-Server.vdproj
sql/NT/MonetDB5-SQL64/MonetDB5-SQL-Installer.vdproj
sql/NT/MonetDB5-SQL/MonetDB5-SQL-Installer.vdproj

Thanks!

Stefan

On Sat, Feb 14, 2009 at 05:20:25AM +0000, Martin Kersten wrote:
> Update of /cvsroot/monetdb/MonetDB5/src/modules/kernel
> In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv17075/modules/kernel
> 
> Modified Files:
>       Tag: Feb2009
> 	Makefile.ag 
> Added Files:
>       Tag: Feb2009
> 	batmmath.mx 
> Removed Files:
>       Tag: Feb2009
> 	batmath.mx 
> Log Message:
> Addressing bug 2596114
> The multiplex mat functions were not found by the remap optimizer,
> because they did not obey the naming convention [bat]mmath.
> Given the performance impact of using MAL loops, this change
> in interface naming has been rectified over a specific hack
> in the remap optimizer itself.
> 
> 
> U Makefile.ag
> Index: Makefile.ag
> ===================================================================
> RCS file: /cvsroot/monetdb/MonetDB5/src/modules/kernel/Makefile.ag,v
> retrieving revision 1.74
> retrieving revision 1.74.2.1
> diff -u -d -r1.74 -r1.74.2.1
> --- Makefile.ag	7 Jan 2009 14:15:12 -0000	1.74
> +++ Makefile.ag	14 Feb 2009 05:20:23 -0000	1.74.2.1
> @@ -28,7 +28,7 @@
>  	SOURCES = \
>  		calc.mx bat5.mx algebra.mx status.mx unix.mx \
>  		mmath.mx lock.mx sema.mx alarm.mx  batifthen.mx \
> -		batcast.mx batcalc.mx batmath.mx aggr.mx counters.mx \
> +		batcast.mx batcalc.mx batmmath.mx aggr.mx counters.mx \
>  		microbenchmark.mx 
>  
>  	#SCRIPTS = mal mil ""
> @@ -103,7 +103,7 @@
>  	SOURCES = \
>  		calc.mx bat5.mx algebra.mx status.mx unix.mx \
>  		mmath.mx lock.mx sema.mx alarm.mx  batifthen.mx \
> -		batcast.mx batcalc.mx batmath.mx aggr.mx counters.mx \
> +		batcast.mx batcalc.mx batmmath.mx aggr.mx counters.mx \
>  		microbenchmark.mx \
>  		batstr.mx batmtime.mx batcolor.mx group.mx array.mx logger.mx
>  	HEADERS = h 
> @@ -114,7 +114,7 @@
>  	DIR = libdir/MonetDB5
>  	SOURCES = calc.mx bat5.mx algebra.mx status.mx unix.mx \
>  		mmath.mx lock.mx sema.mx alarm.mx batstr.mx batmtime.mx \
> -		batcolor.mx batifthen.mx batcast.mx batcalc.mx batmath.mx \
> +		batcolor.mx batifthen.mx batcast.mx batcalc.mx batmmath.mx \
>  		group.mx aggr.mx array.mx \
>  		counters.mx logger.mx microbenchmark.mx
>  }
> 
> --- batmath.mx DELETED ---
> 
> --- NEW FILE: batmmath.mx ---
> @' The contents of this file are subject to the MonetDB Public License
> @' Version 1.1 (the "License"); you may not use this file except in
> @' compliance with the License. You may obtain a copy of the License at
> @' http://monetdb.cwi.nl/Legal/MonetDBLicense-1.1.html
> @'
> @' Software distributed under the License is distributed on an "AS IS"
> @' basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
> @' License for the specific language governing rights and limitations
> @' under the License.
> @'
> @' The Original Code is the MonetDB Database System.
> @'
> @' The Initial Developer of the Original Code is CWI.
> @' Portions created by CWI are Copyright (C) 1997-July 2008 CWI.
> @' Copyright August 2008-2009 MonetDB B.V.
> @' All Rights Reserved.
> 
> @f batmmath
> @a M.L. Kersten
> @+ BAT math calculator
> This module contains the multiplex versions of the linked
> in mathematical functions.
> @{
> @= tstBat
> if( bn== NULL) {*ret= 0;
> 	throw(MAL, "batcalc. at 1", "can not create bat");}
> 
> @+ Scientific routines
> The mmath functions are also overloaded to provide for
> the fast execution of expanded code blocks.
> The common set of math functions is supported.
> @= scienceFcn
> 	command @1(x:bat[:oid,:dbl])  :bat[:oid,:dbl] 
> 	address CMDscience_bat_dbl_ at 1;
> 	command @1(x:bat[:oid,:flt])  :bat[:oid,:flt] 
> 	address CMDscience_bat_flt_ at 1;
> @= scienceFcnBinary
> 	command @1(x:bat[:oid,:dbl],y:dbl):bat[:oid,:dbl] 
> 	address CMDscience_bat_cst_ at 1_dbl;
> 	command @1(x:bat[:oid,:flt],y:flt):bat[:oid,:flt] 
> 	address CMDscience_bat_cst_ at 1_flt;
> @-
> @mal
> module batmmath;
> 	@:scienceFcn(asin)@
> 	@:scienceFcn(acos)@
> 	@:scienceFcn(atan)@
> 	@:scienceFcn(cos)@
> 	@:scienceFcn(sin)@
> 	@:scienceFcn(tan)@
> 	@:scienceFcn(cosh)@
> 	@:scienceFcn(sinh)@
> 	@:scienceFcn(tanh)@
> 	@:scienceFcn(exp)@
> 	@:scienceFcn(log)@
> 	@:scienceFcn(log10)@
> 	@:scienceFcn(sqrt)@
> 	@:scienceFcn(ceil)@
> 	@:scienceFcn(fabs)@
> 	@:scienceFcn(floor)@
> @-
> 	round is not binary...
> 	@:scienceFcnBinary(round,int)@
> @mal
> 	@:scienceFcnBinary(fmod)@
> 	@:scienceFcnBinary(atan2)@
> 	@:scienceFcnBinary(pow)@
> @- Implementation
> @include kprelude.mx
> 
> @h
> #ifdef _BATMATH_H
> #define _BATMATH_H
> 
> #endif  /* _BATMATH_H */
> @- Implementations of scientific functions
> @c
> #include "mal_config.h"
> #include "gdk.h"
> #include "math.h"
> #include "mal_exception.h"
> #include "batmmath.h"
> 
> #ifdef WIN32
> #ifndef LIBBATMATH
> #define batmmath_export extern __declspec(dllimport)
> #else
> #define batmmath_export extern __declspec(dllexport)
> #endif
> #else
> #define batmmath_export extern
> #endif
> 
> @-
> @= scienceFcnImpl
> batmmath_export str CMDscience_bat_ at 2_@1(int *ret, int *bid);
> str CMDscience_bat_ at 2_@1(int *ret, int *bid)
> {
> 	BAT *b,*bn;
> 	@2 *o, *p, *q;
> 
> 	@:getBATdescriptor(bid,b,"batcalc. at 1")@
> 	@:voidresultBAT(TYPE_dbl,"batcalc. at 1")@
> 
> 	o = (@2*) Tloc(bn, BUNfirst(bn));
> 	p = (@2*) Tloc(b, BUNfirst(b));
> 	q = (@2*) Tloc(b, BUNlast(b));
> 
> 	if (b->T->nonil){
> 		for(;p<q; o++, p++)
> 			*o = @1(*p);
> 	} else
> 		for(;p<q; o++, p++){
> 			*o = *p == dbl_nil? dbl_nil: @1(*p);
> 		}
> 	BATsetcount(bn, BATcount(b));
> 	bn->tsorted = 0;
> 	BATkey(BATmirror(bn),0);           
> 	
> 	if (!(bn->batDirty&2)) bn = BATsetaccess(bn, BAT_READ); 
> 
> 	if (b->htype != bn->htype) {
> 		BAT *r = VIEWcreate(b,bn);
> 
> 		BBPreleaseref(bn->batCacheid);
> 		bn = r;
> 	}
> 	BBPkeepref(*ret = bn->batCacheid);
> 	BBPreleaseref(b->batCacheid);
> 	return MAL_SUCCEED;
> }
> @= scienceBinaryImpl
> batmmath_export str CMDscience_bat_cst_ at 1_@2(int *ret, int *bid, @2 *d);
> str CMDscience_bat_cst_ at 1_@2(int *ret, int *bid, @2 *d)
> {
> 	BAT *b,*bn;
> 	@2 *o, *p, *q;
> 
> 	@:getBATdescriptor(bid,b,"batcalc. at 1")@
> 	@:voidresultBAT(TYPE_dbl,"batcalc. at 1")@
> 
> 	o = (@2*) Tloc(bn, BUNfirst(bn));
> 	p = (@2*) Tloc(b, BUNfirst(b));
> 	q = (@2*) Tloc(b, BUNlast(b));
> 
> 	if (b->T->nonil){
> 		for(;p<q; o++, p++)
> 			*o = @1(*p,*d);
> 	} else
> 		for(;p<q; o++, p++){
> 			*o = *p == dbl_nil? dbl_nil: @1(*p,*d);
> 		}
> 
> 	BATsetcount(bn, BATcount(b));
> 	bn->tsorted = 0;
> 	BATkey(BATmirror(bn),0);           
> 
> 	if (!(bn->batDirty&2)) bn = BATsetaccess(bn, BAT_READ); 
> 
> 	if (b->htype != bn->htype) {
> 		BAT *r = VIEWcreate(b,bn);
> 
> 		BBPreleaseref(bn->batCacheid);
> 		bn = r;
> 	}
> 	BBPkeepref(*ret = bn->batCacheid);
> 	BBPreleaseref(b->batCacheid);
> 	return MAL_SUCCEED;
> }
> @= scienceImpl
> @:scienceFcnImpl(@1,dbl)@
> @:scienceFcnImpl(@1,flt)@
> @c
> @:scienceImpl(asin)@
> @:scienceImpl(acos)@
> @:scienceImpl(atan)@
> @:scienceImpl(cos)@
> @:scienceImpl(sin)@
> @:scienceImpl(tan)@
> @:scienceImpl(cosh)@
> @:scienceImpl(sinh)@
> @:scienceImpl(tanh)@
> @:scienceImpl(exp)@
> @:scienceImpl(log)@
> @:scienceImpl(log10)@
> @:scienceImpl(sqrt)@
> @:scienceImpl(ceil)@
> @:scienceImpl(fabs)@
> @:scienceImpl(floor)@
> @-
> 	round is not binary...
> 	@:scienceBinaryImpl(round,int)@
> @c
> @:scienceBinaryImpl(fmod,dbl)@
> @:scienceBinaryImpl(fmod,flt)@
> @:scienceBinaryImpl(atan2,dbl)@
> @:scienceBinaryImpl(atan2,flt)@
> @:scienceBinaryImpl(pow,dbl)@
> @:scienceBinaryImpl(pow,flt)@
> 
> @}
> 
> 
> ------------------------------------------------------------------------------
> Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
> -OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
> -Strategies to boost innovation and cut costs with open source participation
> -Receive a $600 discount off the registration fee with the source code: SFAD
> http://p.sf.net/sfu/XcvMzF8H
> _______________________________________________
> Monetdb-checkins mailing list
> Monetdb-checkins at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/monetdb-checkins

-- 
| Dr. Stefan Manegold | mailto:Stefan.Manegold at cwi.nl |
| CWI,  P.O.Box 94079 | http://www.cwi.nl/~manegold/  |
| 1090 GB Amsterdam   | Tel.: +31 (20) 592-4212       |
| The Netherlands     | Fax : +31 (20) 592-4312       |




More information about the developers-list mailing list