| version 1.49, 2016/03/31 06:41:20 | version 1.55, 2017/09/04 02:10:33 | 
|  |  | 
| * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, | * DEVELOPER SHALL HAVE NO LIABILITY IN CONNECTION WITH THE USE, | 
| * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. | * PERFORMANCE OR NON-PERFORMANCE OF THE SOFTWARE. | 
| * | * | 
| * $OpenXM: OpenXM_contrib2/asir2000/builtin/ctrl.c,v 1.48 2015/08/14 13:51:54 fujimoto Exp $ | * $OpenXM: OpenXM_contrib2/asir2000/builtin/ctrl.c,v 1.54 2017/09/04 01:57:53 noro Exp $ | 
| */ | */ | 
| #include "ca.h" | #include "ca.h" | 
| #include "parse.h" | #include "parse.h" | 
| 
| Line 112  extern int diag_period; |  | 
| Line 112  extern int diag_period; |  | 
| extern int weight_check; | extern int weight_check; | 
| extern char **ASIRLOADPATH; | extern char **ASIRLOADPATH; | 
| extern int ASIRLOADPATH_LEN; | extern int ASIRLOADPATH_LEN; | 
|  | extern int No_ox_reset; | 
|  | extern int plot_by_bigfloat; | 
|  | extern int debug_plot; | 
|  |  | 
| static struct { | static struct { | 
| char *key; | char *key; | 
|  |  | 
| {"no_debug_on_error",&no_debug_on_error}, | {"no_debug_on_error",&no_debug_on_error}, | 
| {"diag_period",&diag_period}, | {"diag_period",&diag_period}, | 
| {"weight_check",&weight_check}, | {"weight_check",&weight_check}, | 
|  | {"no_ox_reset",&No_ox_reset}, | 
|  | {"fake_ox_reset",&No_ox_reset}, | 
|  | #if defined(DO_PLOT) | 
|  | {"plot_by_bigfloat",&plot_by_bigfloat}, | 
|  | {"debug_plot",&debug_plot}, | 
|  | #endif | 
| #if defined(INTERVAL) | #if defined(INTERVAL) | 
| {"zerorewrite",&zerorewrite}, | {"zerorewrite",&zerorewrite}, | 
| {"itvplotsize",&Itvplot}, | {"itvplotsize",&Itvplot}, | 
|  |  | 
| {0,0}, | {0,0}, | 
| }; | }; | 
|  |  | 
| void Pctrl(arg,rp) | void Pctrl(NODE arg,Q *rp) | 
| NODE arg; |  | 
| Q *rp; |  | 
| { | { | 
| int t,i,n; | int t,i,n; | 
| int nm,dv; | int nm,dv; | 
|  |  | 
| STRING s; | STRING s; | 
| NODE node,p; | NODE node,p; | 
| LIST list; | LIST list; | 
|  | P f; | 
| extern Q ox_pari_stream; | extern Q ox_pari_stream; | 
| extern int ox_pari_stream_initialized; | extern int ox_pari_stream_initialized; | 
|  | extern P ox_pari_starting_function; | 
|  |  | 
| if ( !arg ) { | if ( !arg ) { | 
| *rp = 0; | *rp = 0; | 
|  |  | 
| MKNODE(node,s,p); | MKNODE(node,s,p); | 
| } | } | 
| MKLIST(list,node); | MKLIST(list,node); | 
| *rp = list; | *rp = (Q)list; | 
| } | } | 
| } else { | } else { | 
| list = (LIST)ARG1(arg); | list = (LIST)ARG1(arg); | 
|  |  | 
| } | } | 
| return; | return; | 
| } else if ( !strcmp(key,"oxpari_id") ) { | } else if ( !strcmp(key,"oxpari_id") ) { | 
| *rp = 0; |  | 
| if ( argc(arg) == 1 ) { | if ( argc(arg) == 1 ) { | 
| if(!ox_pari_stream_initialized) { | if(!ox_pari_stream_initialized) { | 
| t=-1; | t=-1; | 
|  |  | 
| }else { | }else { | 
| t=-1; | t=-1; | 
| STOQ(t,*rp); | STOQ(t,*rp); | 
|  | } | 
|  | } | 
|  | return; | 
|  | } else if ( !strcmp(key,"oxpari_start") ) { | 
|  | if ( argc(arg) == 1 ) { | 
|  | *rp = (Q)ox_pari_starting_function; | 
|  | } else { | 
|  | f = (P)ARG1(arg); | 
|  | if ( !f || OID(f) == O_P) { | 
|  | ox_pari_starting_function = f; | 
|  | *rp = (Q)f; | 
|  | }else { | 
|  | *rp = 0; | 
| } | } | 
| } | } | 
| return; | return; |