Update of /cvsroot/monetdb/pathfinder/compiler/semantics
In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv29486/semantics
Modified Files:
xquery_fo.c
Log Message:
- Implement pf:product(), pf:log() and pf:sqrt() for the algebra version.
There is one remaining problem pf:product(()) returns 0 instead of 1.
U xquery_fo.c
Index: xquery_fo.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/semantics/xquery_fo.c,v
retrieving revision 1.182
retrieving revision 1.183
diff -u -d -r1.182 -r1.183
--- xquery_fo.c 17 Feb 2009 00:54:08 -0000 1.182
+++ xquery_fo.c 10 Mar 2009 12:20:45 -0000 1.183
@@ -2623,46 +2623,78 @@
.par_ty = (PFty_t[]) { PFty_xs_anyNode () },
.ret_ty = PFty_xs_string () } },
.alg = PFbui_pf_nid }
+ , /* pf:log (integer) as integer */
+ { .ns = PFns_lib, .loc = "log",
+ .arity = 1, .sig_count = 1, .sigs = { {
+ .par_ty = (PFty_t[]) { PFty_xs_integer () },
+ .ret_ty = PFty_xs_integer () } },
+ .alg = PFbui_pf_log_int }
, /* pf:log (decimal) as decimal */
{ .ns = PFns_lib, .loc = "log",
.arity = 1, .sig_count = 1, .sigs = { {
.par_ty = (PFty_t[]) { PFty_xs_decimal () },
- .ret_ty = PFty_xs_decimal () } } }
+ .ret_ty = PFty_xs_decimal () } },
+ .alg = PFbui_pf_log_dec }
, /* pf:log (double) as double */
{ .ns = PFns_lib, .loc = "log",
.arity = 1, .sig_count = 1, .sigs = { {
.par_ty = (PFty_t[]) { PFty_xs_double () },
- .ret_ty = PFty_xs_double () } } }
+ .ret_ty = PFty_xs_double () } },
+ .alg = PFbui_pf_log_dbl }
+ , /* pf:log (integer?) as integer? */
+ { .ns = PFns_lib, .loc = "log",
+ .arity = 1, .sig_count = 1, .sigs = { {
+ .par_ty = (PFty_t[]) { PFty_opt (PFty_xs_integer ()) },
+ .ret_ty = PFty_opt (PFty_xs_integer ()) } },
+ .alg = PFbui_pf_log_int }
, /* pf:log (decimal?) as decimal? */
{ .ns = PFns_lib, .loc = "log",
.arity = 1, .sig_count = 1, .sigs = { {
.par_ty = (PFty_t[]) { PFty_opt (PFty_xs_decimal ()) },
- .ret_ty = PFty_opt (PFty_xs_decimal ()) } } }
+ .ret_ty = PFty_opt (PFty_xs_decimal ()) } },
+ .alg = PFbui_pf_log_dec }
, /* pf:log (double?) as double? */
{ .ns = PFns_lib, .loc = "log",
.arity = 1, .sig_count = 1, .sigs = { {
.par_ty = (PFty_t[]) { PFty_opt (PFty_xs_double ()) },
- .ret_ty = PFty_opt (PFty_xs_double ()) } } }
+ .ret_ty = PFty_opt (PFty_xs_double ()) } },
+ .alg = PFbui_pf_log_dbl }
+ , /* pf:sqrt (integer) as integer */
+ { .ns = PFns_lib, .loc = "sqrt",
+ .arity = 1, .sig_count = 1, .sigs = { {
+ .par_ty = (PFty_t[]) { PFty_xs_integer () },
+ .ret_ty = PFty_xs_integer () } },
+ .alg = PFbui_pf_sqrt_int }
, /* pf:sqrt (decimal) as decimal */
{ .ns = PFns_lib, .loc = "sqrt",
.arity = 1, .sig_count = 1, .sigs = { {
.par_ty = (PFty_t[]) { PFty_xs_decimal () },
- .ret_ty = PFty_xs_decimal () } } }
+ .ret_ty = PFty_xs_decimal () } },
+ .alg = PFbui_pf_sqrt_dec }
, /* pf:sqrt (double) as double */
{ .ns = PFns_lib, .loc = "sqrt",
.arity = 1, .sig_count = 1, .sigs = { {
.par_ty = (PFty_t[]) { PFty_xs_double () },
- .ret_ty = PFty_xs_double () } } }
+ .ret_ty = PFty_xs_double () } },
+ .alg = PFbui_pf_sqrt_dbl }
+ , /* pf:sqrt (integer?) as integer? */
+ { .ns = PFns_lib, .loc = "sqrt",
+ .arity = 1, .sig_count = 1, .sigs = { {
+ .par_ty = (PFty_t[]) { PFty_opt (PFty_xs_integer ()) },
+ .ret_ty = PFty_opt (PFty_xs_integer ()) } },
+ .alg = PFbui_pf_sqrt_int }
, /* pf:sqrt (decimal?) as decimal? */
{ .ns = PFns_lib, .loc = "sqrt",
.arity = 1, .sig_count = 1, .sigs = { {
.par_ty = (PFty_t[]) { PFty_opt (PFty_xs_decimal ()) },
- .ret_ty = PFty_opt (PFty_xs_decimal ()) } } }
+ .ret_ty = PFty_opt (PFty_xs_decimal ()) } },
+ .alg = PFbui_pf_sqrt_dec }
, /* pf:sqrt (double?) as double? */
{ .ns = PFns_lib, .loc = "sqrt",
.arity = 1, .sig_count = 1, .sigs = { {
.par_ty = (PFty_t[]) { PFty_opt (PFty_xs_double ()) },
- .ret_ty = PFty_opt (PFty_xs_double ()) } } }
+ .ret_ty = PFty_opt (PFty_xs_double ()) } },
+ .alg = PFbui_pf_sqrt_dbl }
, /* pf:pow (decimal, decimal) as decimal */
{ .ns = PFns_lib, .loc = "pow",
.arity = 2, .sig_count = 1, .sigs = { {
@@ -2691,9 +2723,8 @@
{ .ns = PFns_lib, .loc = "product",
.arity = 1, .sig_count = 1, .sigs = { {
.par_ty = (PFty_t[]) { PFty_star (PFty_xs_double ()) },
- .ret_ty = PFty_xs_double () } }
- }
-
+ .ret_ty = PFty_xs_double () } },
+ .alg = PFbui_fn_prod_dbl }
/* #3. UPDATE FUNCTIONS */
/* Below are the function declarations for the UpdateX functions */
------------------------------------------------------------------------------
_______________________________________________
Monetdb-pf-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-pf-checkins