=================================================================== RCS file: /home/cvs/OpenXM/src/ox_gsl/ox_gsl.c,v retrieving revision 1.14 retrieving revision 1.16 diff -u -p -r1.14 -r1.16 --- OpenXM/src/ox_gsl/ox_gsl.c 2018/06/07 11:49:51 1.14 +++ OpenXM/src/ox_gsl/ox_gsl.c 2019/10/21 05:37:20 1.16 @@ -1,4 +1,4 @@ -/* $OpenXM: OpenXM/src/ox_gsl/ox_gsl.c,v 1.13 2018/06/07 11:13:05 takayama Exp $ +/* $OpenXM: OpenXM/src/ox_gsl/ox_gsl.c,v 1.15 2018/06/08 00:03:43 takayama Exp $ */ #include @@ -10,6 +10,7 @@ #include #include "ox_gsl.h" #include "call_gsl.h" // need only when you bind call_gsl functions. +#include "call_gsl_sf.h" OXFILE *fd_rw; @@ -400,6 +401,10 @@ int sm_executeFunction() call_gsl_monte_plain_miser_vegas_integrate(1); }else if (strcmp(func->s,"gsl_monte_vegas_integrate")==0) { call_gsl_monte_plain_miser_vegas_integrate(2); + }else if (strcmp(func->s,"gsl_odeiv_step_rk4")==0) { + call_gsl_odeiv_step("rk4"); + }else if (strcmp(func->s,"gsl_sf_gamma_inc")==0) { + call_gsl_sf_gamma_inc(); }else { push(make_error2("sm_executeFunction, unknown function",NULL,0,-1)); return -1; @@ -565,4 +570,11 @@ cmo *element_of_at(cmo *list,int k) { cellp = list_next(cellp); } return(dic[k]); +} + +int get_length(cmo *c) { + if (c->tag != CMO_LIST) { + return(-1); + } + return(list_length((cmo_list *)c)); }