version 1.1, 2018/09/19 05:45:08 |
version 1.3, 2020/10/06 06:31:20 |
|
|
* 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: OpenXM_contrib2/asir2018/plot/plotf.c,v 1.2 2018/09/28 08:20:29 noro Exp $ |
*/ |
*/ |
#include "ca.h" |
#include "ca.h" |
#include "parse.h" |
#include "parse.h" |
Line 174 void Popen_canvas(NODE arg,Obj *rp){ |
|
Line 174 void Popen_canvas(NODE arg,Obj *rp){ |
|
geom=(LIST)BDY(arg); |
geom=(LIST)BDY(arg); |
break; |
break; |
case O_N: |
case O_N: |
stream=QTOS((Q)BDY(arg)); |
stream=ZTOS((Q)BDY(arg)); |
break; |
break; |
case O_STR: |
case O_STR: |
wname=(STRING)BDY(arg); |
wname=(STRING)BDY(arg); |
Line 184 void Popen_canvas(NODE arg,Obj *rp){ |
|
Line 184 void Popen_canvas(NODE arg,Obj *rp){ |
|
break; |
break; |
} |
} |
stream=validate_ox_plot_stream(stream); |
stream=validate_ox_plot_stream(stream); |
STOQ(stream,s_id); |
STOZ(stream,s_id); |
if(!geom){ |
if(!geom){ |
STOQ(300,w300); |
STOZ(300,w300); |
MKNODE(n0,w300,0); |
MKNODE(n0,w300,0); |
MKNODE(n,w300,n0); |
MKNODE(n,w300,n0); |
MKLIST(geom,n); |
MKLIST(geom,n); |
Line 214 void ifplot_main(NODE arg,int is_memory,char *fn,Obj * |
|
Line 214 void ifplot_main(NODE arg,int is_memory,char *fn,Obj * |
|
Obj t; |
Obj t; |
int found_f; |
int found_f; |
|
|
STOQ(-2,m2);STOQ(2,p2);MKNODE(n,p2,0);MKNODE(defrange,m2,n); |
STOZ(-2,m2);STOZ(2,p2);MKNODE(n,p2,0);MKNODE(defrange,m2,n); |
poly=0;vl=0;geom=0;wname=0;stream=-1;ri=0;xrange=0;yrange=0;zrange=0; |
poly=0;vl=0;geom=0;wname=0;stream=-1;ri=0;xrange=0;yrange=0;zrange=0; |
v[0]=v[1]=0; |
v[0]=v[1]=0; |
found_f = 0; |
found_f = 0; |
Line 251 void ifplot_main(NODE arg,int is_memory,char *fn,Obj * |
|
Line 251 void ifplot_main(NODE arg,int is_memory,char *fn,Obj * |
|
if ( !found_f ) { |
if ( !found_f ) { |
poly = (Obj)BDY(arg); |
poly = (Obj)BDY(arg); |
found_f = 1; |
found_f = 1; |
} else stream=QTOS((Q)BDY(arg)); |
} else stream=ZTOS((Q)BDY(arg)); |
break; |
break; |
case O_STR: |
case O_STR: |
wname=(STRING)BDY(arg);break; |
wname=(STRING)BDY(arg);break; |
Line 297 void ifplot_main(NODE arg,int is_memory,char *fn,Obj * |
|
Line 297 void ifplot_main(NODE arg,int is_memory,char *fn,Obj * |
|
wname=name (STRING)] |
wname=name (STRING)] |
*/ |
*/ |
stream=validate_ox_plot_stream(stream); |
stream=validate_ox_plot_stream(stream); |
STOQ(stream,s_id); |
STOZ(stream,s_id); |
if(!geom){ |
if(!geom){ |
STOQ(300,w300);MKNODE(n0,w300,0);MKNODE(n,w300,n0);MKLIST(geom,n); |
STOZ(300,w300);MKNODE(n0,w300,0);MKNODE(n,w300,n0);MKLIST(geom,n); |
} |
} |
if(is_memory){ |
if(is_memory){ |
MKSTR(fname,MEMORY_PLOT); |
MKSTR(fname,MEMORY_PLOT); |
Line 331 void conplot_main(NODE arg,int is_memory,Obj *rp){ |
|
Line 331 void conplot_main(NODE arg,int is_memory,Obj *rp){ |
|
STRING fname,wname; |
STRING fname,wname; |
Obj t; |
Obj t; |
|
|
STOQ(-2,m2); STOQ(2,p2); |
STOZ(-2,m2); STOZ(2,p2); |
MKNODE(n,p2,0); MKNODE(defrange,m2,n); |
MKNODE(n,p2,0); MKNODE(defrange,m2,n); |
poly = 0; vl = 0; geom = 0; wname = 0; stream = -1; ri = 0; |
poly = 0; vl = 0; geom = 0; wname = 0; stream = -1; ri = 0; |
v[0] = v[1] = 0; |
v[0] = v[1] = 0; |
Line 344 void conplot_main(NODE arg,int is_memory,Obj *rp){ |
|
Line 344 void conplot_main(NODE arg,int is_memory,Obj *rp){ |
|
poly = (P)BDY(arg); |
poly = (P)BDY(arg); |
get_vars_recursive((Obj)poly,&vl); |
get_vars_recursive((Obj)poly,&vl); |
for ( vl0 = vl, i = 0; vl0; vl0 = NEXT(vl0) ) |
for ( vl0 = vl, i = 0; vl0; vl0 = NEXT(vl0) ) |
if ( vl0->v->attr == (pointer)V_IND ) |
if ( vl0->v->attr == (pointer)V_IND ) { |
if ( i >= 2 ) |
if ( i >= 2 ) |
error("ifplot : invalid argument"); |
error("ifplot : invalid argument"); |
else |
else |
v[i++] = vl0->v; |
v[i++] = vl0->v; |
|
} |
break; |
break; |
case O_LIST: |
case O_LIST: |
list = (LIST)BDY(arg); |
list = (LIST)BDY(arg); |
Line 363 void conplot_main(NODE arg,int is_memory,Obj *rp){ |
|
Line 364 void conplot_main(NODE arg,int is_memory,Obj *rp){ |
|
geom = list; |
geom = list; |
break; |
break; |
case O_N: |
case O_N: |
stream = QTOS((Q)BDY(arg)); break; |
stream = ZTOS((Q)BDY(arg)); break; |
case O_STR: |
case O_STR: |
wname = (STRING)BDY(arg); break; |
wname = (STRING)BDY(arg); break; |
default: |
default: |
Line 425 void conplot_main(NODE arg,int is_memory,Obj *rp){ |
|
Line 426 void conplot_main(NODE arg,int is_memory,Obj *rp){ |
|
*/ |
*/ |
|
|
stream = validate_ox_plot_stream(stream); |
stream = validate_ox_plot_stream(stream); |
STOQ(stream,s_id); |
STOZ(stream,s_id); |
if ( !geom ) { |
if ( !geom ) { |
STOQ(300,w300); |
STOZ(300,w300); |
MKNODE(n0,w300,0); MKNODE(n,w300,n0); MKLIST(geom,n); |
MKNODE(n0,w300,0); MKNODE(n,w300,n0); MKLIST(geom,n); |
} |
} |
if ( is_memory ) { |
if ( is_memory ) { |
Line 463 void plot_main(NODE arg,int is_memory,char *fn,Obj *rp |
|
Line 464 void plot_main(NODE arg,int is_memory,char *fn,Obj *rp |
|
Obj t; |
Obj t; |
Z prec; |
Z prec; |
|
|
STOQ(-2,m2);STOQ(2,p2); |
STOZ(-2,m2);STOZ(2,p2); |
MKNODE(n,p2,0);MKNODE(defrange,m2,n); |
MKNODE(n,p2,0);MKNODE(defrange,m2,n); |
func=0;vl=0;geom=0;wname=0;stream=-1;ri=0; |
func=0;vl=0;geom=0;wname=0;stream=-1;ri=0; |
v[0]=0; |
v[0]=0; |
Line 503 void plot_main(NODE arg,int is_memory,char *fn,Obj *rp |
|
Line 504 void plot_main(NODE arg,int is_memory,char *fn,Obj *rp |
|
v[0] = VR(var); |
v[0] = VR(var); |
found_f = 1; |
found_f = 1; |
} else |
} else |
stream=QTOS((Q)BDY(arg)); |
stream=ZTOS((Q)BDY(arg)); |
break; |
break; |
case O_STR: |
case O_STR: |
wname=(STRING)BDY(arg);break; |
wname=(STRING)BDY(arg);break; |
Line 537 void plot_main(NODE arg,int is_memory,char *fn,Obj *rp |
|
Line 538 void plot_main(NODE arg,int is_memory,char *fn,Obj *rp |
|
wname=name (STRING)] |
wname=name (STRING)] |
*/ |
*/ |
stream=validate_ox_plot_stream(stream); |
stream=validate_ox_plot_stream(stream); |
STOQ(stream,s_id); |
STOZ(stream,s_id); |
if(!geom ){ |
if(!geom ){ |
STOQ(300,w300); |
STOZ(300,w300); |
MKNODE(n0,w300,0);MKNODE(n,w300,n0);MKLIST(geom,n); |
MKNODE(n0,w300,0);MKNODE(n,w300,n0);MKLIST(geom,n); |
} |
} |
if(plot_by_bigfloat) |
if(plot_by_bigfloat) |
STOQ(plot_by_bigfloat,prec); |
STOZ(plot_by_bigfloat,prec); |
else |
else |
prec = 0; |
prec = 0; |
if(is_memory ){ |
if(is_memory ){ |
Line 583 void Ppolarplot(NODE arg,Z *rp){ |
|
Line 584 void Ppolarplot(NODE arg,Z *rp){ |
|
poly=(P)BDY(arg); |
poly=(P)BDY(arg); |
get_vars_recursive((Obj)poly,&vl); |
get_vars_recursive((Obj)poly,&vl); |
for(vl0=vl,i=0;vl0;vl0=NEXT(vl0)) |
for(vl0=vl,i=0;vl0;vl0=NEXT(vl0)) |
if(vl0->v->attr==(pointer)V_IND) |
if(vl0->v->attr==(pointer)V_IND) { |
if(i>=1)error("polarplot : invalid argument"); |
if(i>=1)error("polarplot : invalid argument"); |
else v[i++]=vl0->v; |
else v[i++]=vl0->v; |
|
} |
if(i!=1)error("polarplot : invalid argument"); |
if(i!=1)error("polarplot : invalid argument"); |
break; |
break; |
case O_LIST://range,geomerty |
case O_LIST://range,geomerty |
Line 596 void Ppolarplot(NODE arg,Z *rp){ |
|
Line 598 void Ppolarplot(NODE arg,Z *rp){ |
|
else geom=list; |
else geom=list; |
break; |
break; |
case O_N: |
case O_N: |
stream=QTOS((Q)BDY(arg)); |
stream=ZTOS((Q)BDY(arg)); |
break; |
break; |
case O_STR://wname |
case O_STR://wname |
wname=(STRING)BDY(arg); |
wname=(STRING)BDY(arg); |
Line 622 void Ppolarplot(NODE arg,Z *rp){ |
|
Line 624 void Ppolarplot(NODE arg,Z *rp){ |
|
break; |
break; |
} |
} |
stream=validate_ox_plot_stream(stream); |
stream=validate_ox_plot_stream(stream); |
STOQ(stream,s_id); |
STOZ(stream,s_id); |
if(!geom){ |
if(!geom){ |
STOQ(300,w300); |
STOZ(300,w300); |
MKNODE(n0,w300,0); MKNODE(n,w300,n0); MKLIST(geom,n); |
MKNODE(n0,w300,0); MKNODE(n,w300,n0); MKLIST(geom,n); |
} |
} |
MKSTR(fname,POLARPLOT); |
MKSTR(fname,POLARPLOT); |
Line 739 void ListCheck(char * head,LIST list){ |
|
Line 741 void ListCheck(char * head,LIST list){ |
|
if(!BDY(n))printf("%d 0\n",i); |
if(!BDY(n))printf("%d 0\n",i); |
else if(OID(BDY(n))==O_P) printf("%d poly\n",i); |
else if(OID(BDY(n))==O_P) printf("%d poly\n",i); |
else if(OID(BDY(n))==O_R) printf("%d real\n",i); |
else if(OID(BDY(n))==O_R) printf("%d real\n",i); |
else if(OID(BDY(n))==O_N) printf("%d %d\n",i,QTOS((Q)BDY(n))); |
else if(OID(BDY(n))==O_N) printf("%d %ld\n",i,ZTOS((Q)BDY(n))); |
} |
} |
} |
} |
|
|
Line 832 void PpolarplotD(NODE arg,Obj *rp){ |
|
Line 834 void PpolarplotD(NODE arg,Obj *rp){ |
|
iNo++; |
iNo++; |
break; |
break; |
case 1://stream arg |
case 1://stream arg |
stream=QTOS((Q)BDY(arg)); |
stream=ZTOS((Q)BDY(arg)); |
iNo++; |
iNo++; |
break; |
break; |
default://error |
default://error |
Line 899 void PpolarplotD(NODE arg,Obj *rp){ |
|
Line 901 void PpolarplotD(NODE arg,Obj *rp){ |
|
} |
} |
// set default |
// set default |
if(!range){ |
if(!range){ |
STOQ(DEFAULTPOLARSTEP,defstep);MKReal(2*Pi,pi2);MKV(v[0],var); |
STOZ(DEFAULTPOLARSTEP,defstep);MKReal(2*Pi,pi2);MKV(v[0],var); |
MKNODE(n,defstep,0);MKNODE(n1,pi2,n);MKNODE(n2,0,n1); |
MKNODE(n,defstep,0);MKNODE(n1,pi2,n);MKNODE(n2,0,n1); |
MKNODE(defrange,var,n2);MKLIST(range,defrange); |
MKNODE(defrange,var,n2);MKLIST(range,defrange); |
} |
} |
if(!geom){ |
if(!geom){ |
STOQ(300,w300);MKNODE(n0,w300,0);MKNODE(n,w300,n0);MKLIST(geom,n); |
STOZ(300,w300);MKNODE(n0,w300,0);MKNODE(n,w300,n0);MKLIST(geom,n); |
} |
} |
stream=validate_ox_plot_stream(stream); |
stream=validate_ox_plot_stream(stream); |
STOQ(stream,s_id); |
STOZ(stream,s_id); |
MKSTR(fname,POLARPLOTD); |
MKSTR(fname,POLARPLOTD); |
arg=mknode(7,s_id,fname,poly,color,range,geom,wname); |
arg=mknode(7,s_id,fname,poly,color,range,geom,wname); |
Pox_rpc(arg,&t); |
Pox_rpc(arg,&t); |
Line 928 void ifplot_mainNG(NODE arg,char *fn,Obj *rp){ |
|
Line 930 void ifplot_mainNG(NODE arg,char *fn,Obj *rp){ |
|
|
|
iNo=lNo=sNo=findG=0;pfine=TRUE; |
iNo=lNo=sNo=findG=0;pfine=TRUE; |
poly=0;stream=-1;wname=0;color=0;stream=0; |
poly=0;stream=-1;wname=0;color=0;stream=0; |
STOQ(-2,m2);STOQ(2,p2);MKNODE(n,p2,0);MKNODE(defrange,m2,n); |
STOZ(-2,m2);STOZ(2,p2);MKNODE(n,p2,0);MKNODE(defrange,m2,n); |
STOQ(MAXGC,mxgc); |
STOZ(MAXGC,mxgc); |
for(;arg;arg=NEXT(arg)){ |
for(;arg;arg=NEXT(arg)){ |
if(!BDY(arg)) iNo++; |
if(!BDY(arg)) iNo++; |
else switch(OID(BDY(arg))){ |
else switch(OID(BDY(arg))){ |
Line 949 void ifplot_mainNG(NODE arg,char *fn,Obj *rp){ |
|
Line 951 void ifplot_mainNG(NODE arg,char *fn,Obj *rp){ |
|
iNo++; |
iNo++; |
break; |
break; |
case 1: //stream arg |
case 1: //stream arg |
stream=QTOS((Q)BDY(arg)); |
stream=ZTOS((Q)BDY(arg)); |
iNo++; |
iNo++; |
break; |
break; |
default: |
default: |
Line 1038 void ifplot_mainNG(NODE arg,char *fn,Obj *rp){ |
|
Line 1040 void ifplot_mainNG(NODE arg,char *fn,Obj *rp){ |
|
MKV(v[1],var);MKNODE(n,var,defrange);MKLIST(yrange,n); |
MKV(v[1],var);MKNODE(n,var,defrange);MKLIST(yrange,n); |
} |
} |
if(!geom){ |
if(!geom){ |
STOQ(300,w300);MKNODE(n0,w300,0);MKNODE(n,w300,n0);MKLIST(geom,n); |
STOZ(300,w300);MKNODE(n0,w300,0);MKNODE(n,w300,n0);MKLIST(geom,n); |
} |
} |
if(!(strcmp(fn,CONPLOTD)&strcmp(fn,CONPLOTQ)&strcmp(fn,CONPLOTB))&!zrange){ |
if(!(strcmp(fn,CONPLOTD)&strcmp(fn,CONPLOTQ)&strcmp(fn,CONPLOTB))&!zrange){ |
MKNODE(n,mxgc,0);MKNODE(n1,m2,n);MKNODE(n2,m2,n1);MKLIST(zrange,n2); |
MKNODE(n,mxgc,0);MKNODE(n1,m2,n);MKNODE(n2,m2,n1);MKLIST(zrange,n2); |
Line 1054 void ifplot_mainNG(NODE arg,char *fn,Obj *rp){ |
|
Line 1056 void ifplot_mainNG(NODE arg,char *fn,Obj *rp){ |
|
wname=name (STRING optional)], |
wname=name (STRING optional)], |
itvstep (Q) if ITVIFPLOT */ |
itvstep (Q) if ITVIFPLOT */ |
stream=validate_ox_plot_stream(stream); |
stream=validate_ox_plot_stream(stream); |
STOQ(stream,s_id); |
STOZ(stream,s_id); |
MKSTR(fname,fn); |
MKSTR(fname,fn); |
arg=mknode(9,s_id,fname,poly,color,xrange,yrange,zrange,geom,wname); |
arg=mknode(9,s_id,fname,poly,color,xrange,yrange,zrange,geom,wname); |
Pox_rpc(arg,&t); |
Pox_rpc(arg,&t); |