diff options
Diffstat (limited to 'texmf-dist/scripts/ketpic/ketlib')
2088 files changed, 77179 insertions, 0 deletions
diff --git a/texmf-dist/scripts/ketpic/ketlib/ketcindylib3d.cs b/texmf-dist/scripts/ketpic/ketlib/ketcindylib3d.cs new file mode 100644 index 00000000..53b542a0 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketcindylib3d.cs @@ -0,0 +1,4517 @@ +// Copyright (C) 2014 Setsuo Takato, KETCindy Japan project team +// +//This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/> +// + +println("ketcindylib3d(2017.06.02) loaded"); + +//help:start(); + +Ketinit3d():=Ketinit3d(1); +Ketinit3d(sf):=( + regional(tmp); + tmp=round(4*SW.y)/4; +// Ketinit3d(sf,[round(SW.x)+1,tmp-0.5,tmp-1]); + Ketinit3d(sf,[-5,tmp-0.5,tmp-1]); +); +Ketinit3d(subflg,position):=( +//help:Ketinit3d(subflg=1) + regional(ctr,tmp,tmp1,tmp2,tmp3,tmp4,xPos,yTh,yPh); +// println("KETCindy3d V.2.3.5(2016.02.03)"); + BezierNumber3=1; //15.02.28 + if(!islist(BZLIST3), + BZLIST3=[]; //15.02.28 + , + tmp=apply(allpoints(),text(#)); + tmp1=select(tmp,substring(#,length(#)-1,length(#))=="p"); + tmp2=[]; + forall(tmp1,ctr, + tmp=substring(ctr,0,length(ctr)-1); + tmp=select(BZLIST3,#_1==tmp); + if(length(tmp)>0, + tmp2=append(tmp2,tmp_1); + ); + ); + BZLIST3=tmp2; + ); + SUBSCR=subflg; + Setwindow("Msg=no"); + if(length(position)>2, + xPos=position_1; + yTh=position_2; + yPh=position_3; + , + xPos=0; + yTh=position_1; + yPh=position_2; + ); +// THETA=60*pi/180; +// PHI=30*pi/180; + FocusPoint=[0,0,0]; + EyePoint=[5,5,5]; + Listplot("th",[[xPos,yTh],[xPos+9,yTh]],["notex","linecolor->[0,1,0]","Msg=no"]); + Listplot("ph",[[xPos,yPh],[xPos+9,yPh]],["notex","linecolor->[0,1,0]","Msg=no"]); + //16.02.10 + PutonCurve("TH",sgth,[xPos,xPos+9,"Msg=no"]); + PutonCurve("FI",sgph,[xPos,xPos+9,"Msg=no"]); + THETA=(TH.x-xPos)*20*pi/180; + PHI=(FI.x-xPos)*40*pi/180; +// Defvar("THETA",THETA); // 16.06.20 +// Defvar("PHI",PHI); // 16.06.20 + drawtext([xPos-0.8,yTh-0.1],Sprintf((TH.x-xPos)*20,2),align->"right"); //17.05.02 + drawtext([xPos-0.8,yPh-0.1],Sprintf((FI.x-xPos)*40,2),align->"right"); //17.05.02 + tmp="Setangle("+text((TH.x-xPos)*20)+","+text((FI.x-xPos)*40)+")"; + GLIST=append(GLIST,tmp); + Addax(0); + TSIZE=10; + TSIZEZ=10; + ErrFlg=0; +); + +Start3d():=Start3d([]); //16.11.12 +Start3d(ptexception):=( //16.11.12 +//help:Start3d(); +//help:Start3d(execptionptlist); + regional(xmn,xMx,ymn,yMx,pt,pt3,pt2, + xPos,yTh,yPh,Eps,tmp,tmp1,tmp2,tmp3,tmp4); + GCLIST=[]; + GLIST=[]; + FUNLIST=[]; + COM0thlist=[]; + COM1stlist=[]; + COM2ndlist=[]; + SEG3dlist=[]; + SCIWRLIST=[]; + SCIRELIST=[]; + OutFileList=[]; + FigPdfList=[]; // 16.04.08 + ErrFlag=0; + OBJCMD=[]; // 16.11.29from + OCNAME=Fhead; + OCOPTION=["m","v"];// 16.11.29upto + ArrowlineNumber=1; // 16.01.31 + ArrowheadNumber=1; + BezierNumber=1; //16.01.31 + BezierNumber3=1; //16.08.19 + Fnametex=Fhead+".tex"; // 15.04.06 + Fnamesci=Fhead+".sce"; + Fnamescibody=Fhead+"body.sce"; + Fnameout=Fhead+".txt"; +// Ketinit3d(SUBSCR); // 16.06.20 + Setwindow("Msg=no"); // 16.06.20from + tmp=round(4*SW.y)/4; + xPos=-5;yTh=tmp-0.5;yPh=tmp-1; + Listplot("th",[[xPos,yTh],[xPos+9,yTh]], + ["notex","linecolor->[0,1,0]","Msg=no"]); + Listplot("ph",[[xPos,yPh],[xPos+9,yPh]], + ["notex","linecolor->[0,1,0]","Msg=no"]); + //16.02.10 + PutonCurve("TH",sgth,[xPos,xPos+9,"Msg=no"]); + PutonCurve("FI",sgph,[xPos,xPos+9,"Msg=no"]); + drawtext([xPos-0.8,yTh-0.1],Sprintf((TH.x-xPos)*20,2),align->"right"); //17.05.02 + drawtext([xPos-0.8,yPh-0.1],Sprintf((FI.x-xPos)*40,2),align->"right"); //17.05.02 + tmp="Setangle(" + +format((TH.x-xPos)*20,5)+"," + +format((FI.x-xPos)*40,5)+")"; + GLIST=append(GLIST,tmp); + THETA=(TH.x-xPos)*20*pi/180; + PHI=(FI.x-xPos)*40*pi/180; // 16.06.20upto + if(isselected(TH) % isselected(FI), // 17.05.18from + if(length(Ch)>0, + ChNum=Ch_(length(Ch)); + if(ChNum==0, ChNum=1); + , + ChNum=1; + ); + Ch=[0]; + );// 17.05.18upto + if(length(VLIST)==0, // 16.06.20 + tmp=remove(allpoints(),[NE,SW,TH,FI,O,X,Y,Z]);//17.06.02 + tmp4=remove(tmp,ptexception); + forall(tmp4,pt, + tmp1=text(pt); + tmp=substring(tmp1,length(tmp1)-1,length(tmp1)); + if(tmp!="z", + tmp=parse(tmp1+"z.y"); + pt3=Xyzcoord(pt.x,pt.y,tmp); + Defvar(tmp1+"3d",pt3); + pt2=Parapt(pt3); // 16.05.28from + Defvar(tmp1+"2d",pt2); // 16.05.28upto + ); + ); + , + if(isselected(NE) % isselected(SW), + tmp=remove(allpoints(),[NE,SW,TH,FI]); + tmp4=remove(tmp,ptexception); + forall(tmp4,pt, + tmp1=text(pt); + tmp=substring(tmp1,length(tmp1)-1,length(tmp1)); + if(tmp!="z", + tmp=select(VLIST,#_1==tmp1+"3d="); + pt3=tmp_1_2; + tmp=tmp1+".xy=Parapt("+pt3+")_[1,2];"; + parse(tmp); +// if(SUBSCR==1, +// tmp=tmp1+"z"+".x=NE.x-SW.x+"+tmp1+".x"; +// parse(tmp); +// ); + ); + ); + , + tmp=remove(allpoints(),[NE,SW,TH,FI]); + tmp4=remove(tmp,ptexception); + forall(tmp4,pt, + tmp1=text(pt); + tmp=substring(tmp1,length(tmp1)-1,length(tmp1)); + if(tmp!="z", + tmp2=parse(tmp1+"z"); + if(isselected(pt) % isselected(tmp2), + Defvar(tmp1+"2d",pt.xy); + tmp=parse(tmp1+"z.y"); + tmp=Xyzcoord(pt.x,pt.y,tmp); + Defvar(tmp1+"3d",tmp); + ); + ); + ); + ); + ); + if(SUBSCR==1, + xmn=SW.x+NE.x-SW.x; + xMx=NE.x+NE.x-SW.x; + ymn=SW.y; + yMx=NE.y; + drawpoly([[xMx,yMx],[xmn,yMx], + [xmn,ymn],[xMx,ymn]],color->[1,1,1]); + connect([[NE.x-SW.x,yMx],[NE.x-SW.x,ymn]], + color->[0.5,0.5,0.5]); + ); + // for Presentation //17.07.01from + letterc=[0.98,0.13,0,0.43]; boxc=[0,0.32,0.52,0]; + shadowc=[0,0,0,0.5]; mboxc="yellow"; //17.03.02 regional debugged + SlideColorList=[letterc,boxc,boxc,boxc,shadowc,shadowc,6,1.3, + letterc,mboxc,mboxc,mboxc,62,2,letterc]; + ThinDense=0.1; //17.07.01upto + Ptseg3data(ptexception); //16.08.23 +); + +Setangle(theta,phi):=( //16.12.24 +//help:Setangle(60,30); + regional(xmn,xMx,ymn,yMx,pt,pt3,pt2, + xPos,yTh,yPh,Eps,tmp,tmp1,tmp2,tmp3,tmp4); + tmp=round(4*SW.y)/4; + xPos=-5;yTh=tmp-0.5;yPh=tmp-1; + if(theta=="",theta=THETA*180/pi); // 17.01.19 + if(phi=="",phi=PHI*180/pi); + THETA=theta*pi/180; + TH.x=theta/20+xPos; + PHI=phi*pi/180; + FI.x=phi/40+xPos; +// drawtext([xPos-0.8,yTh-0.1],text(theta)); //17.05.05 +// drawtext([xPos-0.8,yPh-0.1],text(phi)); + tmp="Setangle(" + +format(theta,5)+","+format(phi,5)+")"; + GLIST=append(GLIST,tmp); + if(length(VLIST)==0, // 16.06.20 + tmp=remove(allpoints(),[NE,SW,TH,FI]); + tmp4=remove(tmp,ptexception); + forall(tmp4,pt, + tmp1=text(pt); + tmp=substring(tmp1,length(tmp1)-1,length(tmp1)); + if(tmp!="z", + tmp=parse(tmp1+"z.y"); + pt3=Xyzcoord(pt.x,pt.y,tmp); + Defvar(tmp1+"3d",pt3); + pt2=Parapt(pt3); // 16.05.28from + Defvar(tmp1+"2d",pt2); // 16.05.28upto + ); + ); + , + if(isselected(NE) % isselected(SW), + tmp=remove(allpoints(),[NE,SW,TH,FI]); + tmp4=remove(tmp,ptexception); + forall(tmp4,pt, + tmp1=text(pt); + tmp=substring(tmp1,length(tmp1)-1,length(tmp1)); + if(tmp!="z", + tmp=select(VLIST,#_1==tmp1+"3d="); + pt3=tmp_1_2; + tmp=tmp1+".xy=Parapt("+pt3+")_[1,2];"; + parse(tmp); + ); + ); + , + tmp=remove(allpoints(),[NE,SW,TH,FI]); + tmp4=remove(tmp,ptexception); + forall(tmp4,pt, + tmp1=text(pt); + tmp=substring(tmp1,length(tmp1)-1,length(tmp1)); + if(tmp!="z", + tmp2=parse(tmp1+"z"); + if(isselected(pt) % isselected(tmp2), + Defvar(tmp1+"2d",pt.xy); + tmp=parse(tmp1+"z.y"); + tmp=Xyzcoord(pt.x,pt.y,tmp); + Defvar(tmp1+"3d",tmp); + ); + ); + ); + ); + ); + forall(Datalist3d(),#, + tmp1=replace(#,"3d","2d"); + tmp2=Projpara(#,["nodata"]); + tmp=tmp1+"="+textformat(tmp2,5); + parse(tmp); + ); + Ptseg3data(ptexception); +); + +Changestyle3d(nameL,style):=( +//help:Changestyle3d(["geoseg3d","ax3d"],["notex"]); + regional(nmL,name,tmp,tmp1,tmp2); + if(islist(nameL),nmL=nameL,nmL=[nameL]); + tmp1=[]; + forall(nmL,name, + tmp=parse(name); + if(isstring(tmp_1), + tmp1=concat(tmp1,tmp); + , + tmp1=append(tmp1,name); + ); + tmp=apply(tmp1,replace(#,"3d","2d")); + Changestyle(tmp,style); + tmp=apply(tmp,"sub"+#); // 15.05.24 + Changestyle(tmp,style); + ); +); + +Dist3d(pt1):=Dist3d(pt1,[0,0,0]); +Dist3d(pt1,pt2):=( +//help:Dist3d(A3d,B3d); +//help:Dist3d(A,B); +//help:Dist3d("A","B"); + regional(p1,p2); + if(islist(pt1), + p1=pt1; + , + if(ispoint(pt1),p1=text(pt1),p1=pt1); + p1=parse(p1+"3d"); + ); + if(islist(pt2), + p2=pt2; + , + if(ispoint(pt2),p2=text(pt2),p2=pt2); + p2=parse(p2+"3d"); + ); + sqrt((p2-p1)*(p2-p1)); +); + +Findangle(vec):=( +//help:Findangle([2,1,4]); +//help:Findangle([0,0,1,0]); + regional(vec3,vec2,Eps,th,ph,tmp); + Eps=10^(-4); + vec3=vec_(1..3); + vec2=vec_(1..2); + th=arccos(vec_3/|vec3|); + if(|vec2|>Eps, + ph=arccos(vec_1/|vec2|); + if(vec_2<0, + ph=2*pi-ph; // 15.03.28 + ); + , + if(length(vec)>3,ph=vec_4*pi/180,ph=PHI); + ); + [th,ph]; +); + +Cancoordpara(pc):=( +//help:Cancoordpara([1,2,0]); + regional(Xz,Yz,Zz,tmp1,tmp2,tmp3); + Xz=pc_1; Yz=pc_2; Zz=pc_3; + tmp1=-Xz*sin(PHI)-Yz*cos(PHI)*cos(THETA)+Zz*cos(PHI)*sin(THETA); + tmp2=Xz*cos(PHI)-Yz*sin(PHI)*cos(THETA)+Zz*sin(PHI)*sin(THETA); + tmp3=Yz*sin(THETA)+Zz*cos(THETA); + [tmp1,tmp2,tmp3]; +); + +Zparapt(cc):=( + regional(x,y,z); + x=cc_1; y=cc_2; z=cc_3; + x*cos(PHI)*sin(THETA)+y*sin(PHI)*sin(THETA)+z*cos(THETA); +); + +Projcoordpara(cc):=( +//help:Projcoordpara([3,1,2]); + regional(tmp); + tmp=Parapt(cc); + [tmp_1,tmp_2,Zparapt(cc)]; +); + +Parapt(pt):=( +//help:Parapt([2,1,5]); + regional(Xz,Yz); + Xz=-pt_1*sin(PHI)+pt_2*cos(PHI); + Yz=-pt_1*cos(PHI)*cos(THETA)-pt_2*sin(PHI)*cos(THETA)+pt_3*sin(THETA); + [Xz,Yz]; +); + +ProjCurve(crv):=( +//help:Projcurve("sl3d1"); + regional(CurveL,Curve,Eps,AnsL,Out,sp,cp,st,,ct,ii,pt, + Xz,Yz,tmp,tmp1,tmp2); + Eps=10^(-6); + sp=sin(PHI); cp=cos(PHI); + st=sin(THETA); ct=cos(THETA); + if(isstring(crv),CurveL=parse(crv),CurveL=crv); + if(MeasureDepth(CurveL)==1,CurveL=[CurveL]); + Out=[]; + forall(CurveL,Curve, + AnsL=[]; + forall(1..length(Curve),ii, + pt=Curve_ii; + if(pt_1!="inf", + Xz=-pt_1*sp+pt_2*cp; + Yz=-pt_1*cp*ct-pt_2*sp*ct+pt_3*st; + tmp=[Xz,Yz]; + if(ii==1, + AnsL=[tmp]; + , + tmp1=AnsL_(length(AnsL)); + if(tmp1_1=="inf" % |tmp-tmp1|>Eps, + AnsL=append(AnsL,tmp); + ); + ); + , + AnsL=append(AnsL,["inf"]); + ); + ); + tmp1=[]; + tmp2=select(1..length(AnsL),AnsL_#==["inf"]); + tmp=1; + forall(tmp2, + if(#>tmp, + tmp1=concat(tmp1,[AnsL_(tmp..(#-1))]) + ); + tmp=#+1; + ); + if(tmp<length(AnsL), + tmp1=concat(tmp1,[AnsL_(tmp..length(AnsL))]); + ); + AnsL=tmp1; + if(length(AnsL)==1,AnsL=AnsL_1); + Out=append(Out,AnsL); + ); + if(length(Out)==1, + Out=Out_1; + ); + Out; +); + +Projpara(ptdata):=Projpara(ptdata,[]); +Projpara(ptdata,options):=( + regional(name2,name3,Ltype,Noflg,opcindy,dtL,ptL,tmp,Out); + tmp=Divoptions(options); + Ltype=tmp_1; + Noflg=tmp_2; + opcindy=tmp_(length(tmp)); + if(islist(ptdata),dtL=ptdata,dtL=[ptdata]); + Out=[]; + forall(dtL,name3, +// name3=#; + if(indexof(name3,"3d")>0, //17.05.24 + name2=replace(name3,"3d","2d"); + , + name2="para"+name3; + ); + ptL=Projcurve(name3); + ptL=select(ptL,length(#)>1);//17.06.02 + if(length(ptL)==1, + ptL=ptL_1; + ); + Out=append(Out,ptL); + if(Noflg<3, + println("generate projparadata "+name2); + tmp=name2+"="+textformat(ptL,5); + parse(tmp); + tmp=name2+"=Projpara("+name3+")"; + GLIST=append(GLIST,tmp); + ); + if(Noflg<2, + if(isstring(Ltype), + Ltype=GetLinestyle(text(Noflg)+Ltype,name2); + , + if(Noflg==1,Ltype=0); + ); + GCLIST=append(GCLIST,[name2,Ltype,opcindy]); + ); + ); + if(length(Out)==1,Out=Out_1); +// Out=Flattenlist(Out); + if(length(Out)==1,Out=Out_1); // 15.02.24 + tmp=[]; + forall(Out, + if(length(#)>0,tmp=append(tmp,#)); + ); + Out=tmp; + Out; +); + +InvparaptPp(pt,pd):=( + regional(Eps,fk,nfk,ph,fh,ah,bh,ak,bk,v1,v2, + nn,s0,t2,out,tmp,tmp1,tmp2,flg); + Eps=10^(-4); + if(isstring(pd), + fk=pd; + , + fk=textformat(pd,5); + ); + nfk=Numptcrv(parse(fk)); + flg=0; + tmp=pt; + if(length(tmp)==1, + ph=tmp; + fh=pd; + , + fh=Projpara(fk,["nodata"]); + if(nfk>2, + tmp1=Nearestpt(tmp,fh); + ph=tmp1_2; + , + ah=Ptcrv(1,fh); bh=Ptcrv(2,fh); + v1=tmp-ah; v2=bh-ah; + tmp1=Crossprod(v1,v2); + if(abs(tmp1)>Eps, + println(" Not on the line"); + out=[]; + flg=1; + , + ph=Dotprod(v1,v2)/|v2|^2+1; + ); + ); + ); + if(flg==0, + if(nfk>2, + nn=floor(ph); + s0=ph-nn; + if(ph>Numptcrv(fh)-Eps, + out=[Ptend(fk),Numptcrv(fh)]; + flg=1; + ); + , + nn=1; + s0=ph-1; + ); + ); + if(flg==0, + ak=Ptcrv(nn,fk); bk=Ptcrv(nn+1,fk); + ah=Ptcrv(nn,fh); bh=Ptcrv(nn+1,fh); + ph=(1-s0)*ah+a0*bh; + t2=s0; + pk=(1-t2)*ak+t2*bk; + out=[pk,nn+t2]; + ); + out; +); + +Invparapt(pt,pd):=( + regional(tmp); + tmp=InvparaptPp(pt,pd); + tmp_1; +); + +Subgraph(name,opcindy):=( + regional(tht,tmp,tmp1); + tht=THETA; THETA=pi/2; + tmp=Projpara(name3,["nodata"]); + if(length(tmp)>0, //15.08.17 + tmp=Translatedata("",[tmp],[NE.x-SW.x,0],["nodata"]); + tmp1=replace("sub"+name,"3d","2d"); + tmp=tmp1+"="+Textformat(tmp,5); + parse(tmp); + GCLIST=append(GCLIST,[tmp1,0,opcindy]); + ); + THETA=tht; // 15.11.03 +); + +Spaceline(ptlist):=Spaceline(ptlist,[]); // 16.02.22 from +Spaceline(Arg1,Arg2):=( + regional(name,tmp,tmp1,tmp2); + if(isstring(Arg1), + Spaceline(Arg1,Arg2,[]); + , + tmp=text(Arg1); + tmp=substring(tmp,1,length(tmp)-1); + name="-"+replace(tmp,",",""); + Spaceline(name,Arg1,Arg2); + ); +); // 16.02.22 upto +Spaceline(nm,ptlistorg,optionorg):=( +//help:Spaceline("1",[[2,5,1],[4,2,3]]); +//help:Spaceline([A,B]); + regional(name2,name3,options,Out,tmp,tmp1,tmp2, + opstr,opcindy,Ltype,Noflg,eqL,ptlist, Msg); + ptlist=apply(ptlistorg,if(ispoint(#),parse(text(#)+"3d"),#)); // 16.02.10 + if(substring(nm,0,2)=="bz", + name2=replace(nm,"bz","bz2d"); + name3=replace(nm,"bz","bz3d"); + , + if(substring(nm,0,1)=="-", + tmp=substring(nm,1,length(nm)); + if(indexof(tmp,"3d")>0,name3=tmp,name3=tmp+"3d"); + name2=replace(name3,"3d","2d"); + , + name2="sl2d"+nm; + name3="sl3d"+nm; + ); + ); + options=select(optionorg,length(#)>0); // 160415 + tmp=Divoptions(options); + Ltype=tmp_1; + Noflg=tmp_2; + eqL=tmp_5; + opcindy=tmp_(length(tmp)); + Msg=1; + forall(eqL, + tmp=substring(#,0,1); + if(Toupper(tmp)=="M", + tmp=indexof(#,"="); + tmp1=substring(#,tmp,tmp+1); + if(Toupper(tmp1)=="N", + Msg=0; + ); + ); + ); + if(Noflg<3, + if(Msg==1, + println("generate Spaceline "+name3); + ); + tmp=name3+"="+ptlist; + parse(tmp); + tmp1=Projpara(name3,["nodata"]); + tmp=name2+"="+textformat(tmp1,5); + parse(tmp); + tmp="["; + forall(ptlist, //17.07.13from + if(isstring(#), + tmp=tmp+#+","; + , + tmp=tmp+textformat(#,5)+","; + ); + ); + tmp=substring(tmp,0,length(tmp)-1)+"]"; + tmp=name3+"=Spaceline("+tmp+")"; //17.07.13upto +// tmp=name3+"=Spaceline("+textformat(ptlist,5)+")"; //17.05.24 + GLIST=append(GLIST,tmp); + tmp=name2+"=Projpara("+name3+")"; + GLIST=append(GLIST,tmp); + ); + if(Noflg<2, + if(isstring(Ltype), + Ltype=GetLinestyle(text(Noflg)+Ltype,name2); + , + if(Noflg==1,Ltype=0); + ); + GCLIST=append(GCLIST,[name2,Ltype,opcindy]); + if(SUBSCR==1, // 15.02.11 + Subgraph(name3,opcindy); + ); + ); + ptlist; +); + +Spacecurve(nm,funstr,variable):=Spacecurve(nm,funstr,variable,[]); +Spacecurve(nm,funstr,variable,optionorg):=( +//help:Spacecurve("1","[cos(t),sin(t),0.5*t]","t=[0,4*pi]",["Num=200"]); + regional(name2,name3,options,Out,tmp,tmp1,tmp2,vname,tmpfn,str,Rng,Num,Msg, + Ec,Exfun,Dc,opstr,opcindy,Fntmp,Vatmp,Ltype,Noflg,eqL,t1,t2,dt,tt,pa,ke); + if(substring(nm,0,2)=="bz", + name2=replace(nm,"bz","bz2d"); + name3=replace(nm,"bz","bz3d"); + , + name2="sc2d"+nm; + name3="sc3d"+nm; + ); + Eps=10^(-4); + Num=50; + Ec=[]; + Exfun=""; + Dc=1000; + options=select(optionorg,length(#)>0); // 160415 + tmp=Divoptions(options); + Ltype=tmp_1; + Noflg=tmp_2; + eqL=tmp_5; + opstr=tmp_(length(tmp)-1); + opcindy=tmp_(length(tmp)); + Msg=1; + forall(eqL, + tmp=substring(#,0,1); + if(Toupper(tmp)=="M", + tmp=indexof(#,"="); + tmp1=substring(#,tmp,tmp+2); + if(Toupper(tmp1)=="NO", + Msg=0; + ); + ); + tmp=indexof(#,"N="); + if(tmp>0, + tmp1=substring(#,tmp+1,length(#)); + Num=parse(tmp1); + opstr=opstr+",'"+#+"'"; + ); + tmp=indexof(#,"Num="); + if(tmp>0, + tmp1=substring(#,tmp+3,length(#)); + Num=parse(tmp1); + opstr=opstr+",'"+#+"'"; + ); + tmp=indexof(#,"E="); + if(tmp>0, + tmp1=substring(#,tmp+1,length(#)); + if(substring(tmp1,0,1)=="[", + Ec=parse(tmp1); + , + Exfun=tmp1; + ); + opstr=opstr+",'"+#+"'"; + ); + tmp=indexof(#,"Exc="); + if(tmp>0, + tmp1=substring(#,tmp+3,length(#)); + if(substring(tmp1,0,1)=="[", + Ec=parse(tmp1); + , + Exfun=tmp1; + ); + ); + ); + tmp=indexof(variable,"="); + vname=substring(variable,0,tmp-1); + str=substring(variable,tmp,length(variable)); + Rng=parse(str); + t1=Rng_1; t2=Rng_2; + dt=(t2-t1)/Num; // differ from Scilab + tmp="tmpfn("+vname+"):="+funstr+";"; + parse(tmp); + Out=[]; + Ec=append(sort(Ec),10000); + ke=1; + forall(0..Num, + pt=[]; + tt=Rng_1+#*dt; + if(tt-Ec_ke<-Eps, + pa=tmpfn(tt); + ); + if(abs(tt-Ec_ke)<=Eps, + if(length(Out)>0, + if(Out_(length(Out))_1!="inf", + pa=["inf"]; + ); + ); + ); + if(tt-Ec_ke>Eps, + pa=tmpfn(tt); + ke=ke+1; + ); + if(length(pa)>0, + if(pa_1=="inf", + Out=append(Out,pa); + , + if(length(Out)==0, + Out=[pa]; + , + tmp=Out_(length(Out)); + if(tmp_1=="inf", + Out=append(Out,pa); + , + if(|tmp-pa|<Dc, + Out=append(Out,pa); + , + Out=concat(Out,[["inf"],pa]); + ); + ); + ); + ); + ); + ); + tmp1=[]; + tmp2=select(1..length(Out),Out_#==["inf"]); + tmp=1; + forall(tmp2, + if(#>tmp, + tmp1=concat(tmp1,[Out_(tmp..(#-1))]) + ); + tmp=#+1; + ); + if(tmp<length(Out), + tmp1=concat(tmp1,[Out_(tmp..length(Out))]); + ); + if(length(Out)==1, + Out=Out_1; + ); + if(Noflg<3, + if(Msg==1, + println("generate Spacecurve "+name3); + ); + tmp=name3+"="+textformat(Out,5); + parse(tmp); + tmp1=Projpara(name3,["nodata"]); + tmp=name2+"="+textformat(tmp1,5); + parse(tmp); + tmp=name3+"=Spacecurve(Assign('"+funstr+"'),'"+variable+"'"+opstr+")"; + GLIST=append(GLIST,tmp); + tmp=name2+"=Projpara("+name3+")"; + GLIST=append(GLIST,tmp); + ); + if(Noflg<2, + if(isstring(Ltype), + Ltype=GetLinestyle(text(Noflg)+Ltype,name2); + , + if(Noflg==1,Ltype=0); + ); + GCLIST=append(GCLIST,[name2,Ltype,opcindy]); + if(SUBSCR==1, // 15.02.11 + tmp=parse(name2); // 15.08.17 + if(length(tmp)>0, + Subgraph(name3,opcindy); + ); // 15.08.17 + ); + ); + Out; +); + +Partcrv3d(nm,pA,pB,PkLstr):=Partcrv3d(nm,pA,pB,PkLstr,[]); +Partcrv3d(nm,pA,pB,PkLstr,options):=( +//help:Partcrv3d("1",A,B,"sl3d1"); +//help:Partcrv3d("1",1.3,2.5,"sl3d1"); + regional(p1,p2,q1,q2,dt1,dts,dt3,tmp,tmp1,tmp2); + if(isreal(pA), + p1=pA; q1=pA; + , + if(islist(pA), + tmp=pA; + , + if(ispoint(pA),tmp=text(pA),tmp=pA); + tmp=parse(tmp+"3d"); + ); + p1=parapt(tmp); + q1=[p1_1,tmp_3]+[NE.x-SW.x,0]; + ); + if(isreal(pB), + p2=pB; q2=pB; + , + if(islist(pB), + tmp=pB; + , + if(ispoint(pB),tmp=text(pB),tmp=pB); + tmp=parse(tmp+"3d"); + ); + p2=parapt(tmp); + q2=[p2_1,tmp_3]+[NE.x-SW.x,0]; + ); + tmp=replace(PkLstr,"3d","2d"); + dt1=partcrv("",p1,p2,tmp,["nodata"]); + dts=partcrv("",q1,q2,"sub"+tmp,["nodata"]); + dt=apply(1..length(dt1), + Xyzcoord(dt1_#_1,dt1_#_2,dts_#_2)); + Spaceline("-part3d"+nm,dt,options); +); + +Joincrvs3d(nm,plotstrL):=Joincrvs3d(nm,plotstrL,[]);//16.10.06 +Joincrvs3d(nm,plotstrL,options):=( +//help:Joincrvs3d("1",["bz3da1","bz3da1"]); + regional(PtL,Eps,QdL,Flg,Ni,Qd,pP,pS,pQ,pR,rMN, + opcindy,tmp,tmp1,tmp2,str,name2,name3,Ltype,Noflg); + name2="join2d"+nm; + name3="join3d"+nm; + QdL=[]; + forall(plotstrL,str, + if(isstring(str), + tmp=parse(str); + , + tmp=str; + ); + QdL=append(QdL,tmp); + ); + Eps=10^(-4); + tmp=Divoptions(options); + Ltype=tmp_1; + Noflg=tmp_2; + opcindy=tmp_(length(tmp)); + tmp1=tmp_6; + if(length(tmp1)>0,Eps=tmp1_1); + Flg=0; + if(length(QdL)==0, + PtL=[]; + Flg=1; + ); + if(Flg==0, + PtL=QdL_1; + forall(2..length(QdL),Ni, + Qd=QdL_Ni; + if(length(Qd)>1, + pP=PtL_1; + pS=PtL_(length(PtL)); + pQ=Qd_1; + pR=Qd_(length(Qd)); + rMN=min([norm(pP-pQ),norm(pP-pR), + norm(pS-pQ),norm(pS-pR)]); + if(rMN==norm(pP-pR), + Qd=reverse(Qd); + , + if(rMN==norm(pS-pQ), + PtL=reverse(PtL); + , + if(rMN==norm(pS-pR), + PtL=reverse(PtL); + Qd=reverse(Qd); + ); + ); + ); + ); + if(rMN>Eps, + PtL=concat(PtL,Qd); + , + PtL=concat(PtL,Qd_(2..length(Qd))); + ); + ); + ); + if(Noflg<3, + println("generate Joincurves3d "+name3); + tmp=name3+"="+textformat(PtL,5); + parse(tmp); + tmp1=Projpara(name3,["nodata"]); + tmp=name2+"="+textformat(tmp1,5); + parse(tmp); + tmp=text(plotstrL); + tmp=substring(tmp,1,length(tmp)-1); + tmp=name3+"=Joincrvs("+tmp+")"; + GLIST=append(GLIST,tmp); + tmp=name2+"=Projpara("+name3+")"; + GLIST=append(GLIST,tmp); + ); + if(Noflg<2, + if(isstring(Ltype), + Ltype=GetLinestyle(text(Noflg)+Ltype,name2); + , + if(Noflg==1,Ltype=0); + ); + GCLIST=append(GCLIST,[name2,Ltype,opcindy]); + if(SUBSCR==1, // 15.02.11 + tmp=parse(name2); // 15.08.17 + if(length(tmp)>0, + Subgraph(name3,opcindy); + ); // 15.08.17 + ); + ); + PtL; +); + +Xyzax3data(nm,Xrange,Yrange,Zrange):= + Xyzax3data(nm,Xrange,Yrange,Zrange,[]); +Xyzax3data(nm,Xrange,Yrange,Zrange,options):=( +//help:Xyzax3data("","x=[-5,5]","y=[-5,5]","z=[-5,5]"); +//help:Xyzax3data(Options2=["a1","Osw"]); + regional(name2,name3,Out,tmp,tmp1,tmp2,eqL,reL,strL, + opstr,opcindy,Ltype,Noflg,Axname,Arrow,Origin); + name2="ax2d"+nm; + name3="ax3d"+nm; + tmp=Divoptions(options); + Ltype=tmp_1; + Noflg=tmp_2; + eqL=tmp_5; + reL=tmp_6; + strL=tmp_7; + opcindy=tmp_(length(tmp)); + Axname=1; + Arrow=0; // 16.08.14 + Origin=""; // 16.08.14 + if(length(reL)>0, + Axname=reL_1; + ); + forall(strL, // 16.08.14from + tmp1=Toupper(substring(#,0,1)); + if(tmp1=="A", + tmp=substring(#,1,length(#)); + if(length(tmp)>0, + Arrow=parse(tmp); + , + Arrow=1; + ); + ); + if(tmp1=="O", + tmp=indexof(#,","); + if(tmp>0, + Origin=substring(#,tmp,length(#)); + , + tmp=substring(#,1,length(#)); + if(length(tmp)>0, + Origin=tmp; + , + Origin="sw"; + ); + ); + ); + ); // 16.08.14upto + tmp1=indexof(Xrange,"="); + tmp=parse(substring(Xrange,tmp1,length(Xrange))); + Px=[tmp_1,0,0]; Qx=[tmp_2,0,0]; + tmp1=indexof(Yrange,"="); + tmp=parse(substring(Yrange,tmp1,length(Yrange))); + Py=[0,tmp_1,0]; Qy=[0,tmp_2,0]; + tmp1=indexof(Zrange,"="); + tmp=parse(substring(Zrange,tmp1,length(Zrange))); + Pz=[0,0,tmp_1]; Qz=[0,0,tmp_2]; + Out=[[Px,Qx],[Py,Qy],[Pz,Qz]]; + if(Axname>0, + Xyzaxparaname(Xrange,Yrange,Zrange,[Axname]); + ); + if(Noflg<3, + println("generate axes "+name3); + tmp=name3+"="+textformat(Out,5); + parse(tmp); + tmp1=Projpara([name3],["nodata"]); + tmp=name2+"="+textformat(tmp1,5); + parse(tmp); + tmp=name3+"=Xyzax3data("+ + Dq+Xrange+Dq+","+Dq+Yrange+Dq+","+Dq+Zrange+Dq+")"; + GLIST=append(GLIST,tmp); + tmp=name2+"=Projpara("+name3+")"; + GLIST=append(GLIST,tmp); + ); + if(Noflg<2, + if(isstring(Ltype), + Ltype=GetLinestyle(text(Noflg)+Ltype,name2); + , + if(Noflg==1,Ltype=0); + ); + GCLIST=append(GCLIST,[name2,Ltype,opcindy]); + if(Noflg<1, // 16.08.14from + if(Arrow>0, + tmp1=Parapt(Px); tmp2=Parapt(Qx); + Arrowhead(tmp2,tmp2-tmp1,[Arrow]); + tmp1=Parapt(Py); tmp2=Parapt(Qy); + Arrowhead(tmp2,tmp2-tmp1,[Arrow]); + tmp1=Parapt(Pz); tmp2=Parapt(Qz); + Arrowhead(tmp2,tmp2-tmp1,[Arrow]); + ); + if(length(Origin)>0, + Letter([Parapt([0,0,0]),Origin,"O"]); + ); + ); // 16.08.14upto + if(SUBSCR==1, // 15.02.11 + Subgraph(name3,opcindy); + ); + ); + Out; +); + +Xyzaxparaname(Xrange,Yrange,Zrange):= + Xyzaxparaname(Xrange,Yrange,Zrange,[]); +Xyzaxparaname(Xrange,Yrange,Zrange,options):=( + regional(tmp,tmp1,tmp2,Eps,Dr,Noflg,Xname,Yname,Zname, + px,qx,py,qy,pz,qz,ph,qh,rr,ch); + Eps=10.0^(-6); + Dr=0.19*1000/2.54/MilliIn; + Noflg=0; + forall(options, + if(isreal(#),Dr=Dr*#); + ); + tmp=indexof(Xrange,"="); + Xname=substring(Xrange,0,tmp-1); + tmp=parse(substring(Xrange,tmp,length(Xrange))); + px=[tmp_1,0,0]; qx=[tmp_2,0,0]; + tmp=indexof(Yrange,"="); + Yname=substring(Yrange,0,tmp-1); + tmp=parse(substring(Yrange,tmp,length(Yrange))); + py=[0,tmp_1,0]; qy=[0,tmp_2,0]; + tmp=indexof(Zrange,"="); + Zname=substring(Zrange,0,tmp-1); + tmp=parse(substring(Zrange,tmp,length(Zrange))); + pz=[0,0,tmp_1]; qz=[0,0,tmp_2]; + ph=Parapt(px); qh=Parapt(qx); rr=|ph-qh|; + if(rr>Eps, + ch=qh+Dr/rr*(qh-ph); + Expr(ch,"c",Xname); + ); + ph=Parapt(py); qh=Parapt(qy); rr=|ph-qh|; + if(rr>Eps, + ch=qh+Dr/rr*(qh-ph); + Expr(ch,"c",Yname); + ); + ph=Parapt(pz); qh=Parapt(qz); rr=|ph-qh|; + if(rr>Eps, + ch=qh+Dr/rr*(qh-ph); + Expr(ch,"c",Zname); + ); +); + +Datalist3d():=( +//help:Datalist3d(); + regional(out,tmp,tmp2,tmp3); + tmp=apply(GCLIST,#_1); + tmp=select(tmp,indexof(#,"2d")>0); + tmp2=select(tmp,indexof(#,"sub")==0); + tmp3=apply(tmp2,replace(#,"2d","3d")); + out=tmp3; +); + +Datalist2d():=( +//help:Datalist2d(); + regional(out,tmp,tmp2,tmp3); + tmp=apply(GCLIST,#_1); + tmp=select(tmp,indexof(#,"2d")>0); + tmp2=select(tmp,indexof(#,"sub")==0); +// tmp3=apply(tmp2,replace(#,"2d","3d")); + out=tmp2; +); + +Embed(nm,Pd2str,funstr,varstr):= + Embed(nm,Pd2str,funstr,varstr,[]); +Embed(nm,Pd2str,funstr,varstr,options):=( +//help:Embed("1",["gr1"],"A3d+x*(B3d-A3d)+y*(C3d-A3d)","[x,y]"); + regional(name2,name3,Pd2L,Pd2,tmp,tmp1,xstr,ystr, + Ltype,Noflg,opstr,opcindy,Out); + name2="em2d"+nm; + name3="em3d"+nm; + if(!islist(Pd2str),Pd2L=[Pd2str],Pd2L=Pd2str); // 15.03.06 + tmp1=[]; // 15.10.31 + forall(Pd2L, + if(isstring(#),tmp=parse(#),tmp=#); + if(MeasureDepth(tmp)==2, + tmp1=concat(tmp1,tmp); + ); + if(MeasureDepth(tmp)==1, + tmp1=append(tmp1,tmp); + ); + ); + Pd2L=tmp1; + tmp=substring(varstr,0,1); + if(tmp=="[" % tmp=="(", + tmp1=substring(varstr,1,length(varstr)-1); + , + tmp1=varstr; + ); + tmp=indexof(tmp1,","); + xstr=substring(tmp1,0,tmp-1); + ystr=substring(tmp1,tmp,length(tmp1)); + tmp=Divoptions(options); + Ltype=tmp_1; + Noflg=tmp_2; + opcindy=tmp_(length(tmp)); + Out=[]; + forall(Pd2L,Pd2, + tmp1=[]; + forall(Pd2, + tmp=Assign(funstr,xstr,"("+textformat(#_1,5)+")"); + tmp=Assign(tmp,ystr,"("+textformat(#_2,5)+")"); + tmp=parse(tmp); + tmp1=append(tmp1,tmp); + ); + Out=append(Out,tmp1); + ); + if(length(Out)==1, + Out=Out_1; + ); + if(Noflg<3, + println("generate Embed "+name3); + if(length(Out)>0, + tmp=name3+"="+textformat(Out,5); + parse(tmp); + tmp1=Projpara(name3,["nodata"]); + tmp=name2+"="+textformat(tmp1,5); + parse(tmp); + ); + if(!islist(Pd2str), + tmp=Pd2str; + , + tmp=text(Pd2str); + tmp="list("+substring(tmp,1,length(tmp)-1)+")"; + ); + tmp=name3+"=Embed("+tmp+",'"+funstr+"','"+varstr+"'"+")"; + GLIST=append(GLIST,tmp); + tmp=name2+"=Projpara("+name3+")"; + GLIST=append(GLIST,tmp); + ); + if(Noflg<2, + if(isstring(Ltype), + Ltype=GetLinestyle(text(Noflg)+Ltype,name2); + , + if(Noflg==1,Ltype=0); + ); + if(length(Out)>0, + GCLIST=append(GCLIST,[name2,Ltype,opcindy]); + if(SUBSCR==1, // 15.02.11 + Subgraph(name3,opcindy); + ); + ); + ); + Out; +); + +Rotatept3d(point,w1,w2):=Rotate3pt(point,w1,w2); +Rotatept3d(point,w1,w2,center):=Rotate3pt(point,w1,w2,center); +//help:Rotatept3d(pt3d,[0,0,1],pi/2); +//help:Rotatept3d(pt3d,[0,0,1],pi/2,[1,1,1]); +Rotate3pt(point,w1,w2):=Rotate3pt(point,w1,w2,[0,0,0]); +Rotate3pt(point,w1,w2,center):=( +//help:Rotate3pt(pt3d,[0,0,1],pi/2); +//help:Rotate3pt(pt3d,[0,0,1],pi/2,[1,1,1]); + regional(Eps,ct,st,v3,v1,v2,Ans,ns,PtL,num, + pt,tmp,tmp1,tmp2,Retflg,x,y,z,xx,yy,zz,flg); + Eps=10^(-4); + Retflg=0; + if(length(w2)==1, + ct=cos(w2); + st=sin(w2); + v3=1/|w1|*w1; + if(v3_1==0, + tmp=[1,0,0]; + , + tmp=[0,1,0]; + ); + w1=[tmp_2*v3_3-tmp_3*v3_2, + tmp_3*v3_1-tmp_1*v3_3, + tmp_1*v3_2-tmp_2*v3_1]; + v1=1/|w1|*w1; + v2=[v3_2*v1_3-v3_3*v1_2, + v3_3*v1_1-v3_1*v1_3, + v3_1*v1_2-v3_2*v1_1]; + , + tmp=[w1_2*w2_3-w1_3*w2_2, + w1_3*w2_1-w1_1*w2_3, + w1_1*w2_2-w1_2*w2_1]; + if(|tmp|<Eps, + Ans=point; + Retflg=1; + ); + if(Retflg==0, + v1=1/|w1|*w1; + ns=v1_1*w2_1+v1_2*w2_2+v1_3*w2_3; + tmp=w2-ns*v1; + v2=1/|tmp|*tmp; + tmp=[v1_2*v2_3-v1_3*v2_2, + v1_3*v2_1-v1_1*v2_3, + v1_1*v2_2-v1_2*v2_1]; + v3=1/|tmp|*tmp; + ct=ns/|w2|; + st=sqrt(1-ct^2); + ); + ); + if(Retflg==0, + if(|tmp|<Eps, + Ans=point; + Retflg=1; + ); + ); + if(Retflg==0, + if(MeasureDepth(point)>0, + PtL=point; + , + PtL=[point]; + ); + Ans=[]; + flg=0; + forall(1..length(PtL),num, + pt=PtL_num; + if(pt_1=="inf", + Ans=append(Ans,["inf"]); + flg=1; + ); + if(flg==0, + x=pt_1-center_1; y=pt_2-center_2; z=pt_3-center_3; + xx=((v1_1*ct+v2_1*st)*v1_1+ (-v1_1*st+v2_1*ct)*v2_1+v3_1^2)*x + +((v1_1*ct+v2_1*st)*v1_2+(-v1_1*st+v2_1*ct)*v2_2+v3_1*v3_2)*y + +((v1_1*ct+v2_1*st)*v1_3+(-v1_1*st+v2_1*ct)*v2_3+v3_1*v3_3)*z; + yy=((v1_2*ct+v2_2*st)*v1_1+(-v1_2*st+v2_2*ct)*v2_1+v3_1*v3_2)*x + +((v1_2*ct+v2_2*st)*v1_2+(-v1_2*st+v2_2*ct)*v2_2+v3_2^2)*y + +((v1_2*ct+v2_2*st)*v1_3+(-v1_2*st+v2_2*ct)*v2_3+v3_2*v3_3)*z; + zz=((v1_3*ct+v2_3*st)*v1_1+(-v1_3*st+v2_3*ct)*v2_1+v3_1*v3_3)*x + +((v1_3*ct+v2_3*st)*v1_2+(-v1_3*st+v2_3*ct)*v2_2+v3_2*v3_3)*y + +((v1_3*ct+v2_3*st)*v1_3+(-v1_3*st+v2_3*ct)*v2_3+v3_3^2)*z; + Ans=append(Ans,center+[xx,yy,zz]); + ); + ); + if(length(Ans)==1, + Ans=Ans_1; + ); + ); + Ans; +); + +Rotatedata3d(nm,P3data,w1,w2):=Rotate3data(nm,P3data,w1,w2); +Rotatedata3d(nm,P3data,w1,w2,options):= + Rotate3data(nm,P3data,w1,w2,options); +//help:Rotatedata3d("1",["sl3d1","sc3d2"],[0,0,1],pi/3); +Rotate3data(nm,P3data,w1,w2):=Rotate3data(nm,P3data,w1,w2,[]); +Rotate3data(nm,P3data,w1,w2,options):=( + regional(name3,name2,center,pdata,Pd3,Pd,Out,tmp,tmp1, + Ltype,Noflg,opcindy,opstr); + name3="rot3d"+nm; + name2="rot2d"+nm; + center=[0,0,0]; + tmp=Divoptions(options); + Ltype=tmp_1; + Noflg=tmp_2; + opstr=tmp_(length(tmp)-1); + opcindy=tmp_(length(tmp)); + tmp1=tmp_6; + if(length(tmp1)>0, + center=tmp1_1; + ); + if(islist(P3data) & isstring(P3data_1),Pd3=P3data,Pd3=[P3data]); + Out=[]; + forall(Pd3,Pd, + if(isstring(Pd),Pd=parse(Pd)); + if(MeasureDepth(Pd)==1,Pd=[Pd]); + Ans=[]; + forall(Pd, + tmp=Rotate3pt(#,w1,w2,center); + Ans=append(Ans,tmp); + ); + Out=append(Out,Ans); + ); + Out=Flattenlist(Out); + if(length(Out)==1,Out=Out_1); + if(Noflg<3, + println("generate Rotate3data "+name3); + tmp=name3+"="+textformat(Out,5); + parse(tmp); + tmp1=Projpara(name3,["nodata"]); + tmp=name2+"="+textformat(tmp1,5); + parse(tmp); + tmp=text(P3data); + tmp=replace(tmp,"[","list("); + tmp=replace(tmp,"]",")"); + tmp=name3+"=Rotate3data("+tmp+"," + +textformat(w1,5)+","+textformat(w2,5)+opstr+")"; + GLIST=append(GLIST,tmp); + tmp=name2+"=Projpara("+name3+")"; + GLIST=append(GLIST,tmp); + ); + if(Noflg<2, + if(isstring(Ltype), + Ltype=GetLinestyle(text(Noflg)+Ltype,name2); + , + if(Noflg==1,Ltype=0); + ); + GCLIST=append(GCLIST,[name2,Ltype,opcindy]); + if(SUBSCR==1, // 15.02.11 + Subgraph(name3,opcindy); + ); + ); + Out; +); + +Translatept3d(point,w1):=Translate3pt(point,w1); +//help:Translatept3d(pt3d,[1,2,3]); +Translate3pt(point,w1):=( + regional(Eps,Ans,PtL,pt,num,xx,yy,zz,flg); + Eps=10^(-4); + if(MeasureDepth(point)>0, + PtL=point; + , + PtL=[point]; + ); + Ans=[]; + flg=0; + forall(1..length(PtL),num, + pt=PtL_num; + if(pt_1=="inf", + Ans=append(Ans,["inf"]); + flg=1; + ); + if(flg==0, + xx=pt_1+w1_1; yy=pt_2+w1_2; zz=pt_3+w1_3; + Ans=append(Ans,[xx,yy,zz]); + ); + ); + if(length(Ans)==1, + Ans=Ans_1; + ); + Ans; +); + +Translatedata3d(nm,P3data,w1):=Translate3data(nm,P3data,w1); +Translatedata3d(nm,P3data,w1,options):= + Translate3data(nm,P3data,w1,options); +//help:Translatedata3d("1",["sl3d1"],[1,2,3]); +Translate3data(nm,P3data,w1):=Translate3data(nm,P3data,w1,[]); +Translate3data(nm,P3data,w1,options):=( + regional(name3,name2,pdata,Pd3,Pd,Out,tmp,tmp1, + Ltype,Noflg,opcindy); + name3="tra3d"+nm; + name2="tra2d"+nm; + tmp=Divoptions(options); + Ltype=tmp_1; + Noflg=tmp_2; + opcindy=tmp_(length(tmp)); + if(islist(P3data) & isstring(P3data_1),Pd3=P3data,Pd3=[P3data]); + Out=[]; + forall(Pd3,Pd, + if(isstring(Pd),Pd=parse(Pd)); + if(MeasureDepth(Pd)==1,Pd=[Pd]); + Ans=[]; + forall(Pd, + tmp=Translate3pt(#,w1); + Ans=append(Ans,tmp); + ); + Out=append(Out,Ans); + ); + Out=Flattenlist(Out); + if(length(Out)==1,Out=Out_1); + if(Noflg<3, + println("generate Translate3data "+name3); + tmp=name3+"="+textformat(Out,5); + parse(tmp); + tmp1=Projpara(name3,["nodata"]); + tmp=name2+"="+textformat(tmp1,5); + parse(tmp); + tmp=text(P3data); + tmp=replace(tmp,"[","list("); + tmp=replace(tmp,"]",")"); + tmp=name3+"=Translate3data("+tmp+","+textformat(w1,5)+")"; + GLIST=append(GLIST,tmp); + tmp=name2+"=Projpara("+name3+")"; + GLIST=append(GLIST,tmp); + ); + if(Noflg<2, + if(isstring(Ltype), + Ltype=GetLinestyle(text(Noflg)+Ltype,name2); + , + if(Noflg==1,Ltype=0); + ); + GCLIST=append(GCLIST,[name2,Ltype,opcindy]); + if(SUBSCR==1, // 15.02.11 + Subgraph(name3,opcindy); + ); + ); + Out; +); + +Reflectpoint3d(point,vecL):=Reflect3point(point,vecL); +Reflectpt3d(point,vecL):=Reflect3pt(point,vecL); +//help:Reflectpoint3d(pt3d,[v1,v2,v3]); +Reflect3point(point,vecL):=Reflect3pt(point,vecL); +Reflect3pt(point,vecL):=( + regional(ans,v1,v2,v3,tmp,tmp1); + if(length(vecL)==1, + v1=vecL_1; + ans=2*v1-point; + ); + if(length(vecL)==2, + v1=vecL_1; + v2=vecL_2; + v3=(v2-v1)/|v2-v1|; + tmp=v1+Dotprod(point-v1,v3)*v3; + ans=2*tmp-point; + ); + if(length(vecL)==3, + v1=vecL_1; + v2=vecL_2; + v3=vecL_3; + tmp=Crossprod(v2-v1,v3-v1); + tmp1=point-Dotprod(tmp,point-v1)/|tmp|^2*tmp; + ans=2*tmp1-point; + ); + ans; +); + +Xyzcoord(X,Y,z):=( +//help:Xyzcoord(A.x,A.y,Az.y); + regional(Eps,x3d,y3d,z3d); + x3d=(-X*sin(PHI)*cos(THETA)-Y*cos(PHI)+z*cos(PHI)*sin(THETA))/cos(THETA); + y3d=(X*cos(PHI)*cos(THETA)-Y*sin(PHI)+z*sin(PHI)*sin(THETA))/cos(THETA); + z3d=z; + [x3d,y3d,z3d]; +); + +PutonCurve3d(name,pdstr):=( +//help:PutonCurve3d("T","sc3d1"); + regional(pt,pd2str,tmp,tmp1,tmp2); + pd2str=replace(pdstr,"3d","2d"); + PutonCurve(name,pd2str); + pt=parse(name+".xy"); + tmp=Nearestpt(pt,pd2str); // 15.03.13 + tmp1=ParamonCurve(tmp_1,tmp_2,pd2str); + tmp="sub"+pd2str; + tmp2=PointonCurve(tmp1,tmp); + pt=append(pt,tmp2_2); + pt=Xyzcoord(pt_1,pt_2,pt_3); // 15.03.13 + tmp=name+"z.xy="+textformat(tmp2,5); + parse(tmp); + VLIST=select(VLIST,#_1!=name+"3d="); + Defvar(name+"3d",pt); +); + +Mkpointlist():=Mkpointlist([]); //16.11.12 +Mkpointlist(options):=( //16.11.12 + regional(Eps,pos,ptL,plist,ilist,plistrest, + inforest,free,pt,pt3,ptz,par,vlistpre, + tmp,tmp1,tmp2,tmp3,tmp4,p1,p2,flg); + Eps=10^(-4); + tmp=Finddef(NE); + free=tmp_1; + pos=[NE.x+1,NE.y]; + tmp=remove(allpoints(),[NE,SW,TH,FI]); + tmp=remove(tmp,options); //16.11.12 + plist=select(tmp, + substring(text(#),length(text(#))-1,length(text(#)))!="z" + ); + if(SUBSCR==0,plist=[]); + ptL=[]; + plistrest=[]; + inforest=[]; + forall(plist,pt, + inspect(pt,"ptsize",3); + inspect(pt,"color",2); + inspect(pt,"textsize",TSIZE); + ptz=text(pt)+"z"; + tmp=Finddef(pt); + if(indexof(tmp_1,free)>0, // free point + tmp=select(VLIST,#_1==text(pt)+"3d="); + if(length(tmp)==0, + tmp=pt.x+NE.x-SW.x; + Putpoint(ptz,[tmp,0],[tmp,parse(ptz+".y")]); + pt3=Xyzcoord(pt.x,pt.y,parse(text(ptz)+".y")); + Defvar(text(pt)+"3d",pt3); + Defvar(text(pt)+"fix",0); + vlistpre=VLIST; //16.08.20 + ); + flg=0; + if(isselected(pt), + if(parse(text(pt)+"fix")!=1, // 15.03.01 + tmp=pt.x+NE.x-SW.x; + Putpoint(ptz,[tmp,0],[tmp,parse(ptz+".y")]); + pt3=Xyzcoord(pt.x,pt.y,parse(text(ptz)+".y")); + VLIST=select(VLIST,#_1!=text(pt)+"3d="); + Defvar(text(pt)+"3d",pt3); + vlistpre=VLIST; //16.08.20 + flg=1; + ); + ); + inspect(parse(ptz),"ptsize",3); + inspect(parse(ptz),"color",3); + inspect(parse(ptz),"textsize",TSIZEZ); + if(isselected(parse(ptz)), + if(parse(ptz+"fix")!=1, // 15.03.01 + tmp=select(vlistpre,#_1==text(pt)+"3d="); //16.08.20 + pt3=tmp_1_2; + pt3_3=parse(ptz+".y"); + pt.xy=Parapt(pt3); + tmp=ptz+".x=pt.x+NE.x-SW.x"; + parse(tmp); + VLIST=select(VLIST,#_1!=text(pt)+"3d="); + Defvar(text(pt)+"3d",pt3); + flg=2; + ); + ); + if(flg==0, + tmp=select(VLIST,#_1==text(pt)+"3d="); + pt3=tmp_1_2; + pt.xy=Parapt(pt3); + tmp=ptz+".x=pt.x+NE.x-SW.x"; + parse(tmp); + ); + if(isselected(pt) % isselected(parse(ptz)), + drawtext(pos,text(pt3)); + ); + if(!contains(["p","q"],text(pt)), + ptL=append(ptL,pt); + ); + , + tmp=Findgeoinfo(pt); + tmp1=[parse(tmp_1),parse(tmp_2),parse(tmp_3)]; + plistrest=append(plistrest,pt); + inforest=append(inforest,tmp); + ); + ); + if(length(plistrest)>0, + tmp=Sortpointlist([plistrest,inforest]); + plist=tmp_1; + ilist=tmp_2; + forall(1..length(plist), + pt=plist_#; + ptz=text(pt)+"z"; + tmp=ilist_#; + p1=parse(tmp_3); + p2=p1+parse(tmp_2)-parse(tmp_1); + tmp1=p2-p1; + tmp2=pt-p1; + if(abs(tmp1_1)>abs(tmp1_2), + par=tmp2_1/tmp1_1; + , + par=tmp2_2/tmp1_2; + ); + tmp=ilist_#; + tmp1=parse(tmp_1+"3d"); + tmp2=parse(tmp_2+"3d"); + tmp3=parse(tmp_3+"3d"); + tmp1=(1-par)*tmp3+par*(tmp3+tmp2-tmp1); + Putpoint(ptz,[pt.x+NE.x-SW.x,tmp1_3]); + inspect(parse(ptz),"ptsize",3); + inspect(parse(ptz),"color",3); + inspect(parse(ptz),"textsize",TSIZEZ); + pt3=Xyzcoord(pt.x,pt.y,parse(text(ptz)+".y")); + VLIST=select(VLIST,#_1!=tmp1+"3d="); + Defvar(text(pt)+"3d",pt3); + vlistpre=VLIST; //16.08.20 + if(isselected(pt) % isselected(parse(ptz)), + drawtext(pos,text(pt3)); + ); + if(!contains(["p","q"],text(pt)), + ptL=append(ptL,pt); + ); + ); + ); + ptL; +); + +Mkseg3d():=Mkseg3d([]); +Mkseg3d(options):=( + regional(seg,nmseg,def,ptA,ptB,segL,opstr,opcindy, + name,strg,Ltype,Noflg,tht,tmp,tmp1,tmp2,tmp3); + name="geoseg3d"; + strg=name+"=list("; + tmp=Divoptions(options); + Ltype=tmp_1; + Noflg=tmp_2; + opcindy=tmp_(length(tmp)); + segL=[]; + forall(allsegments(),seg, + inspect(seg,"labeled",false); + tmp=Finddef(seg); + def=tmp_1; + ptA=tmp_2; + ptB=tmp_3; + if(ispoint(parse(ptA)) & ispoint(parse(ptB)), + tmp1=select(VLIST,indexof(#_1,ptA+"3d=")>0); + tmp2=select(VLIST,indexof(#_1,ptB+"3d=")>0); + if(length(tmp1)>0 & length(tmp2)>0, + tmp1="["+ptA+"3d,"+ptB+"3d]"; + nmseg=ptA+ptB; +// Spaceline(nmseg,parse(tmp1),append(options,"Msg=nodisp")); //15.06.15 + Spaceline("-"+nmseg+"3d",[ptA+"3d",ptB+"3d"], // 16.04.07 + append(options,"Msg=nodisp")); //15.06.15 + segL=append(segL,nmseg+"3d");// 16.04.07 + strg=strg+nmseg+"3d,";// 16.04.07 + ); + ); + ); + println("generate totally "+name); + if(length(segL)>0, // 15.03.06 + strg=substring(strg,0,length(strg)-1)+")"; + if(Noflg<3, + GLIST=append(GLIST,strg); + ); + tmp1=apply(segL,Dq+#+Dq); //15.03.02 + tmp=name+"="+text(tmp1); + parse(tmp); + ); + segL; +); + +Ptseg3data():=Ptseg3data([]); +//help:Ptseg3data(); +//help:Ptseg3data([A,B]); +Ptseg3data(options):=( + regional(pt,pt3,plist,tmp,tmp1,tmp2); + if(isselected(TH) % isselected(FI), + tmp=remove(allpoints(),[NE,SW,TH,FI]); + tmp=remove(tmp,options); //16.11.12 + tmp=apply(tmp,text(#)); + plist=select(tmp,substring(#,length(#)-1,length(#))!="z"); + forall(plist,pt, + tmp1=text(pt); + tmp=select(VLIST,#_1==tmp1+"3d="); + if(length(tmp)>0, + pt3=tmp_1_2; + tmp=tmp1+".xy=Parapt("+pt3+")_[1,2];"; + parse(tmp); + if(SUBSCR==1, + tmp=tmp1+"z"+".x=NE.x-SW.x+"+tmp1+".x"; + parse(tmp); + ); + ); + ); + , + Mkpointlist(options); // 16.12.18 + ); + forall(alllines(), + #.color=[0.5,0.5,1]; + ); + SEG3dlist=Mkseg3d(options); + SEG3dlist; +); + +Putonseg3d(name,ptL):=Putonseg3d(name,ptL_1,ptL_2,[]); +Putonseg3d(name,Arg1,Arg2):=( + if(islist(Arg1), + Putonseg3d(name,Arg1_1,Arg1_2,Arg2); + , + Putonseg3d(name,Arg1,Arg2,[]); + ); +); +Putonseg3d(name,pt1,pt2,options):=( +//help:Putonseg3d("C",[A,B]); +//help:Putonseg3d("C",A,B); + regional(par,pn1,pn2,tmp,tmp1,tmp2,tmp3); + par=0.5; + tmp=divoptions(options); + if(length(tmp_6)>0, + par=tmp_6_1; + ); + Putonseg(name,pt1,pt2,[par]); + inspect(parse(name),"ptsize",3); + inspect(parse(name),"color",2); + inspect(parse(name),"textsize",TSIZEZ); + Putpoint(name+"z",[parse(name+".x"),0]); + inspect(parse(name+"z"),"ptsize",3); + inspect(parse(name+"z"),"color",3); + inspect(parse(name+"z"),"textsize",TSIZEZ); + pn1=text(pt1); + pn2=text(pt2); + tmp1=replace("PTCz.y=PTAz.y+|PTC-PTA|/|PTB-PTA|*(PTBz.y-PTAz.y)","PTC",name); + tmp1=replace(tmp1,"PTA",pn1); + tmp1=replace(tmp1,"PTB",pn2); + tmp2=replace("PTCz.x=PTAz.x+|PTC-PTA|/|PTB-PTA|*(PTBz.x-PTAz.x)","PTC",name); + tmp2=replace(tmp2,"PTA",pn1); + tmp2=replace(tmp2,"PTB",pn2); + parse(tmp2); + parse(tmp1); + tmp1=parse(name+".x"); + tmp2=parse(name+".y"); + tmp3=parse(name+"z.y"); + tmp=Xyzcoord(tmp1,tmp2,tmp3); + Defvar(name+"3d",tmp); +); + +Putpoint3d(ptslist):=Putpoint3d(ptslist,"",0); +Putpoint3d(Arg1,Arg2):=( // 16.03.02 from + if(islist(Arg1), + Putpoint3d(Arg1,Arg2,0); + , + Putpoint3d(Arg1,Arg2,"fix"); + ); +); +Putpoint3d(Arg1,Arg2,Arg3):=( +//help:Putpoint3d(["A",[2,1,3]]); +//help:Putpoint3d(["A",[2,1,3]],"fix"); +//help:Putpoint3d("A",[2,1,3]); +//help:Putpoint3d(["A",[2,1,3]],["fix"]); + regional(nn,kk,pt,pt3,ptslist,fixstr,tmp,tmp1,tmp2,tmp3); //16.08.19 + if(isstring(Arg1), + ptslist=[Arg1,Arg2]; + fixstr=Arg3; + , + ptslist=Arg1; + fixstr=Arg2; + ); + if(islist(fixstr),fixstr=fixstr_1);// 16.03.02 upto + nn=length(ptslist)/2; + forall(1..nn,kk, // 16.08.19from + tmp1=ptslist_(2*kk-1); + pt3=ptslist_(2*kk); // 16.08.19upto + VLIST=select(VLIST,#_1!=tmp1+"3d="); + tmp2=parse(tmp1); + if(ispoint(tmp2), // 16.05.26from + if(islist(fixstr),tmp=fixstr_1,tmp=fixstr); + tmp=Toupper(tmp); + if(tmp!="FIX", + tmp=Xyzcoord(tmp2.x,tmp2.y,parse(tmp1+"z").y); + , + tmp=pt3; + ); + Defvar(tmp1+"3d",tmp); + , + Defvar(tmp1+"3d",pt3); + ); // 16.05.26upto + Defvar(tmp1+"fix",0); + pt=Parapt(pt3); + Putpoint(tmp1,pt,parse(tmp1+".xy")); + inspect(parse(tmp1),"ptsize",3); + inspect(parse(tmp1),"color",2); + inspect(parse(tmp1),"textsize",TSIZE); + if(SUBSCR==1, + tmp2=tmp1+"z"; + tmp=[pt.x+NE.x-SW.x,pt3_3]; + tmp1="[NE.x-SW.x+"+tmp1+".x,"+tmp2+"y]"; + Putpoint(tmp2,tmp,parse(tmp1)); + inspect(parse(tmp2),"ptsize",3); + inspect(parse(tmp2),"color",3); + inspect(parse(tmp2),"textsize",TSIZEZ); + ); + ); + if(islist(fixstr),tmp=fixstr_1,tmp=fixstr); + if(tmp=="fix" % tmp=="Fix", + Fixpoint3d(ptslist); + ); +); + +Fixpoint3d(ptlist):=( +// help:Fixpoint3d(["O",[0,0,0],"X",[1,0,0]]); + regional(name,pt3,pt2,tmp,tmp1,tmp2); + forall(1..(length(ptlist)/2), + name=ptlist_(2*#-1); + Defvar(name+"fix",1); + pt3=ptlist_(2*#); + pt2=Parapt(pt3); + tmp1=textformat(pt2_1,5); + tmp2=textformat(pt2_2,5); + tmp=name+".xy=["+tmp1+","+tmp2+"]"; + parse(tmp); + tmp1=name+".x+NE.x-SW.x"; + tmp2=textformat(pt3_3,5); + tmp=name+"z.xy=["+tmp1+","+tmp2+"];"; + parse(tmp); + ); +); + +Perppt(name,ptstr,pLstr):=Putperp(name,ptstr,pLstr,"draw"); +Perppt(name,ptstr,pLstr,option):=Putperp(name,ptstr,pLstr,option); +Putperp(name,ptstr,pLstr):=Putperp(name,ptstr,pLstr,"put"); +Putperp(name,ptstr,pLstr,option):=( +//help:Perppt("N","O","A-B-C"); +//help:Perppt("N","O","A-B-C","put"); +//help:Perppt("N","O","A-B","none"); + regional(out,Eps,N3d,sgstr,pP,pA,pB,pC,tmp,tmp1,flgpL); + Eps=10^(-4); + pP=parse(ptstr+"3d"); + tmp=indexof(pLstr,"-"); + pA=parse(substring(pLstr,0,tmp-1)+"3d"); + tmp1=substring(pLstr,tmp,length(pLstr)); + tmp=indexof(tmp1,"-"); + if(tmp>0, + pB=parse(substring(tmp1,0,tmp-1)+"3d"); + pC=parse(substring(tmp1,tmp,length(tmp1))+"3d"); + flgpL=1; + , + pB=parse(tmp1+"3d"); + flgpL=0; + ); + if(flgpL==1, + tmp=Crossprod(pB-pA,pC-pA); + if(abs(tmp)<Eps, + err("not a plane"); + , + tmp=tmp/|tmp|; + N3d=pP+tmp; + Defvar("tmp3d",N3d); // temporary + sgstr=ptstr+"-tmp"; + tmp=IntersectsgpL(name,sgstr,pLstr,"none"); + VLIST=select(VLIST,#_1!="tmp3d="); + out=tmp_1; + Defvar(name+"3d",tmp_1); + ); + , + if(|pB-pA|<Eps, + err("on the line"); + , + tmp1=(pB-pA)/|pB-pA|; + tmp=Dotprod(pP-pA,tmp1); + out=pA+tmp*tmp1; + Defvar(name+"3d",out); + ); + ); + if(islist(option),tmp=option_1,tmp=option); + tmp=substring(tmp,0,1); + if(tmp=="P" % tmp=="p", + Putpoint3d([name,out]); + Fixpoint3d([name,out]); + ); + if(tmp=="D" % tmp=="d", + Drawpoint3d(out); + ); + out; +); + +Perpplane(name,ptstr,nvec):= + Perpplane(name,ptstr,nvec,"draw"); +Perpplane(name,ptstr,nstr,option):=( +//help:Perpplane("A-B","P",[1,3,2]); +//help:Perpplane("A-B","P",[0,0,1,0]); + regional(Eps,nvec,sgstr,pP,v1,v2,v3, + th,ph,pA,pB,tmp,tmp1,tmp2); + Eps=10^(-4); + if(isstring(nstr),nvec=parse(nstr+"3d"),nvec=nstr); + pP=parse(ptstr+"3d"); + v3=nvec/|nvec|; + th=THETA; ph=PHI; + tmp=findangle(v3); + THETA=tmp_1; PHI=tmp_2; + v1=Cancoordpara([1,0,0]); + v2=Cancoordpara([0,1,0]); + THETA=th; PHI=ph; + tmp=indexof(pLstr,"-"); + pA=pP+v1; + pB=pP+v2; + if(islist(option),tmp=option_1,tmp=option); + tmp=Toupper(substring(tmp,0,1)); // 16.06.19 + if(tmp=="P", + tmp=indexof(name,"-"); + tmp1=substring(name,0,tmp-1); + tmp2=substring(name,tmp,length(name)); + Putpoint3d([tmp1,pA,tmp2,pB],["fix"]); + ); + if(tmp=="D", + Drawpoint3d(pA); + Drawpoint3d(pB); + ); + [pA,pB]; +); + +Drawpoint3d(pt3):=( +//help:Drawpoint3d(pt3d); + regional(ptL,tmp,tmp1,tmp2); + if(MeasureDepth(pt3)==0,ptL=[pt3],ptL=pt3); + forall(ptL, + tmp=parapt(#); + draw(tmp_(1..2)); + if(SUBSCR==1, + draw([tmp_1+NE.x-SW.x, #_3]); + ); + ); +); + +Putaxes3d(size):=( +//help:Putaxes3d(5); +//help:Putaxes3d([1,2,3]); + regional(sL); + if(islist(size),sL=size,sL=[size,size,size]); + Putpoint3d(["O",[0,0,0]],"fix"); //17.06.02from + Putpoint3d(["X",[sL_1,0,0]],"fix"); + Putpoint3d(["Y",[0,sL_2,0]],"fix"); + Putpoint3d(["Z",[0,0,sL_3]],"fix"); +// Fixpoint3d(["O",[0,0,0]]); +// Fixpoint3d(["X",[sL_1,0,0],"Y",[0,sL_2,0],"Z",[0,0,sL_3]]);//17.06.02fupto +); + +IntersectsgpL(name,sgstr,pLstr):= + IntersectsgpL(name,sgstr,pLstr,"draw"); +IntersectsgpL(name,sgstr,pLstr,option):=( +//help:IntersectsgpL("R","P-Q","A-B-C"); +//help:IntersectsgpL("R","P-Q","A-B-C","put"); +//// help:IntersectsgpL("","P-Q","A-B-C","none"); +//help:IntersectsgpL("",[p1,p2],[p3,p4,p5],"draw"); + regional(opstr,out,pP,pQ,pA,pB,pC,pH,pK,pR,tseg,tt,ss,Eps,flg, + nvec,tmp,tmp1,tmp2,tmp3,tmp4); + if(islist(option),opstr=option_1,opstr=option); + Eps=10^(-4); + flg=0; + if(!isstring(sgstr), // 15.05.29 + pP=sgstr_1; + pQ=sgstr_2; + , + tmp=indexof(sgstr,"-"); + if(tmp>0, // 15.05.28 + pP=parse(substring(sgstr,0,tmp-1)+"3d"); + pQ=parse(substring(sgstr,tmp,length(sgstr))+"3d"); + , + tmp1=parse(sgstr); + pP=tmp1_1; + pQ=tmp1_2; + ); + ); + if(!isstring(pLstr), // 16.02.02 + pA=pLstr_1; + pB=pLstr_2; + pC=pLstr_3; + , + tmp=indexof(pLstr,"-"); + pA=parse(substring(pLstr,0,tmp-1)+"3d"); + tmp1=substring(pLstr,tmp,length(pLstr)); + tmp=indexof(tmp1,"-"); + pB=parse(substring(tmp1,0,tmp-1)+"3d"); + pC=parse(substring(tmp1,tmp,length(tmp1))+"3d"); + ); + nvec=Crossprod(pB-pA,pC-pA); + if(abs(Dotprod(nvec,pQ-pP))>Eps, + pH=(Reflect3point(pP,[pA,pB,pC])+pP)/2; + pK=(Reflect3point(pQ,[pA,pB,pC])+pQ)/2; + tmp1=pP-pH; + tmp2=tmp1+pK-pQ; + tmp=select(tmp2,abs(#)==max(apply(tmp2,abs(#)))); + tmp=select(1..3,tmp2_#==tmp_1); + tmp=tmp_1; + tseg=tmp1_tmp/tmp2_tmp; + pR=(1-tseg)*pH+tseg*pK; + tmp=substring(opstr,0,1); + if(Toupper(tmp)=="P", + Putpoint3d([name,pR]); + Fixpoint3d([name,pR]); + ); + if(Toupper(tmp)=="D", + Drawpoint3d(pR); + ); + tmp=Dotprod(pB-pA,pC-pA); + tmp1=Dotprod(pB-pA,pB-pA); + tmp2=Dotprod(pC-pA,pC-pA); + tmp3=Dotprod(pR-pA,pB-pA); + tmp4=Dotprod(pR-pA,pC-pA); + ss=-(tmp*tmp4-tmp3*tmp2)/(tmp1*tmp2-tmp^2); + tt=(tmp1*tmp4-tmp*tmp3)/(tmp1*tmp2-tmp^2); + out=[pR,tseg,ss,tt]; + , + if(Toupper(substring(opstr,0,1))!="N", + println(" "+sgstr+","+pLstr+" are parallel"); + ); + out=[]; + ); + out; +); + +Bezier3d(nm,ptctrlist):=Bezier3(nm,ptctrlist); +Bezier3d(nm,Ag1,Ag2):=Bezier3(nm,Ag1,Ag2); +Bezier3d(nm,ptlistorg,ctrlistorg,options):= + Bezier3(nm,ptlistorg,ctrlistorg,options); +//help:Bezier3d("1",["A","B","C"],["D","E","F","G"]); +Bezier3(nm,ptctrlist):=Bezier3(nm,ptctrlist_1,ptctrlist_2,[]); +Bezier3(nm,Ag1,Ag2):=( + if(MeasureDepth(Ag1)==0, + Bezier3(nm,Ag1,Ag2,[]); + , + if(MeasureDepth(Ag1)>1, + Bezier3(nm,Ag1_1,Ag1_2,Ag2); + , + if(isstring(Ag_1_1), + Bezier3(nm,Ag1,Ag2,[]); + , + Bezier3(nm,Ag1_1,Ag1_2,Ag2); + ); + ); + ); +); +Bezier3(nm,ptlistorg,ctrlistorg,options):=( + regional(name,name3,name2,tmp,tmp1,tmp2, + Ltype,Noflg,opstr,eqL,ii,knt,ctr,out); + name="bz"+nm; + name3="bz3d"+nm; + name2="bz2d"+nm; + tmp=Divoptions(options); + Ltype=tmp_1; + Noflg=tmp_2; + eqL=tmp_5; + opcindy=tmp_(length(tmp)); + tmp1=select(eqL,indexof(#,"Num")>0); + if(length(tmp1)==0,eqL=append(eqL,"Num=20")); + ptlist=ptlistorg; + if(isstring(ptlistorg_1),ptlist=apply(ptlistorg,parse(#+"3d"))); + ctrlist=ctrlistorg; + if(isstring(ctrlistorg_1),ctrlist=apply(ctrlistorg,parse(#+"3d"))); + out=[]; + forall(1..(length(ptlist)-1),ii, + knt=[ptlist_ii,ptlist_(ii+1)]; + ctr=[ctrlist_(2*ii-1),ctrlist_(2*ii)]; + tmp="Bezierpt(T,ptlist,ctrlist)";//17.01.04 + tmp=Assign(tmp,"ptlist",knt); + tmp=Assign(tmp,"ctrlist",ctr); + Spacecurve(name+text(ii),tmp,"T=[0,1]",append(eqL,"nodisp"));//17.01.04 + out=append(out,name3+text(ii)); + ); + tmp1=[]; + forall(1..length(out), + tmp=parse(out_#); + if(#==1,tmp1=tmp,tmp1=concat(tmp1,tmp_(2..length(tmp)))); + ); + if(Noflg<3, + println("generate Beziercurve "+name3); + tmp2=Spaceline("",tmp1,["nodata"]); + tmp=name3+"="+tmp2; + parse(tmp); + tmp1=Projpara(name3,["nodata"]); + tmp=name2+"="+textformat(tmp1,5); + parse(tmp); + tmp1=text(out); + tmp1=substring(tmp1,1,length(tmp1)-1); + tmp=name3+"=Joincrvs("+tmp1+")"; + GLIST=append(GLIST,tmp); + tmp=name2+"=Projpara("+name3+")"; + GLIST=append(GLIST,tmp); + ); + if(Noflg<2, + if(isstring(Ltype), + Ltype=GetLinestyle(text(Noflg)+Ltype,name2); + , + if(Noflg==1,Ltype=0); + ); + GCLIST=append(GCLIST,[name2,Ltype,opcindy]); + if(SUBSCR==1, // 15.02.11 + Subgraph(name3,opcindy); + ); + ); + out; +); + +Putbezier3data(name,pt3Lorg):=Putbezier3data(name,pt3Lorg,[]); +Putbezier3data(name,pt3Lorg,options):=( + regional(pt3L,psize,Deg,nn,numstr, + tmp,tmp1,tmp2,tmp3,pts,ctrpts); + tmp=Divoptions(options); + Deg=3; + tmp1=tmp_5; + forall(tmp1, + if(substring(#,0,1)=="D", + tmp=indexof(#,"="); + Deg=parse(substring(#,tmp,length(#))); + ); + ); + pt3L=pt3Lorg; + if(isstring(pt3L_1),pt3L=apply(pt3L,parse(#+"3d"))); + ctrpts=[]; + forall(2..length(pt3L),nn, // 16.08.19from +// if(nn==2,numstr="",numstr=text(nn-2)); + numstr=text(nn-1); // 16.08.19 + if(Deg==3, + tmp1=name+numstr+"p"; + tmp2=(2*pt3L_(nn-1)+pt3L_(nn))/3; + VLIST=select(VLIST,#_1!=tmp1+"3d="); // 16.08.19from +// if(length(tmp)==0, + Putpoint3d([tmp1,tmp2]); +// );// 16.08.19upto + ctrpts=append(ctrpts,tmp1); + tmp1=name+numstr+"q"; + tmp3=(pt3L_(nn-1)+2*pt3L_nn)/3; + VLIST=select(VLIST,#_1!=tmp1+"3d="); +// if(length(tmp)==0, + Putpoint3d([tmp1,tmp3]); +// ); + ctrpts=append(ctrpts,tmp1); + , + tmp1=name+numstr+"p"; + tmp2=(pt3L_(nn-1)+pt3L_nn)/2; + VLIST=select(VLIST,#_1!=tmp1+"3d="); // 16.08.19upto +// if(length(tmp)==0, + Putpoint3d([tmp1,tmp2]); +// ); + ctrpts=append(ctrpts,tmp1); + ); + ); + ctrpts; +); + +Mkbezierptcrv3d(ptdata):=Mkbezierptcrv3(ptdata); +Mkbezierptcrv3d(ptdata,options):=Mkbezierptcrv3(ptdata,options); +//help:Mkbezierptcrv3d(["A","B","C","D"]); +Mkbezierptcrv3(ptdata):=Mkbezierptcrv3(ptdata,[]); +Mkbezierptcrv3(ptdata,options):=( + regional(Eps,ptlist,nn,pt3L,name,bz,pt,p1,p2,p13d,p23d,pt3, + Out,tt,pos,tmp,tmp1,tmp2); + Eps=10^(-4); + pos=[NE.x+1,NE.y]; + if(MeasureDepth(ptdata)==0,ptlist=[ptdata],ptlist=[ptdata]); + Out=[]; + forall(1..length(ptlist),nn, + nn=1; + pt3L=ptlist_nn; + tmp=floor((BezierNumber3-1)/26);// 15.02.23 from + if(tmp==0,tmp="",tmp=text(tmp)); + tmp2=mod(BezierNumber3,26); + if(tmp2==0,tmp2=26); + name=unicode(text(96+tmp2),base->10)+tmp; + tmp2=Putbezier3data(name,pt3L,options); + Bezier3(name,pt3L,tmp2,options); +// BZLIST3=append(BZLIST3,[name,pt3L]); + Out=append(Out,tmp2); + BezierNumber3=BezierNumber3+1; + ); + Out; +); + + +/////////////////////////////////////////// + +Readobj(filename):=Readobj(filename,[]); +Readobj(filename,options):=( +//help:Readobj("file.obj",["size=-3"]); + regional(eqL,size,vL,fnL,tmp,tmp1,tmp2); + size=1; + tmp=Divoptions(options); + eqL=tmp_5; + forall(eqL, + if(Toupper(substring(#,0,1))=="S", + tmp=indexof(#,"="); + size=parse(substring(#,tmp,length(#))); + ); + ); + tmp=load(filename); + tmp=tokenize(tmp,"v"); + tmp1=tmp_(2..(length(tmp)-1)); + tmp2=tmp_(length(tmp)); + tmp2=tokenize(tmp2,"f"); + tmp1=append(tmp1,tmp2_1); + tmp1=apply(tmp1,Removespace(#)); + tmp1=apply(tmp1,replace(#," "," ")); + tmp1=apply(tmp1,"["+replace(#," ",",")+"]"); + vL=apply(tmp1,size*parse(#)); + tmp2=tmp2_(2..(length(tmp2))); + tmp2=apply(tmp2,Removespace(#)); + tmp2=apply(tmp2,replace(#," "," ")); + tmp2=apply(tmp2,"["+replace(#," ",",")+"]"); + fnL=apply(tmp2,parse(#)); + [vL,fnL]; +); + +///////////////////////////////////////// + +Readobj(filename,options):=( +//help:Readobj("file.obj",["size=-3"]); + regional(eqL,size,vL,fnL,dtL,numer,flg,flg2, + tmp,tmp1,tmp2,tmp3,tmp4,tmp5); + size=1; + tmp=Divoptions(options); + eqL=tmp_5; + forall(eqL, + if(Toupper(substring(#,0,1))=="S", + tmp=indexof(#,"="); + size=parse(substring(#,tmp,length(#))); + ); + ); + numer="-0123456789"; + tmp=load(filename); + dtL=tokenize(tmp,"v "); + vL=[]; + fnL=[]; + flg=0; + flg2=0; + forall(dtL,dt, + tmp1=Removespace(dt); + if(indexof(numer,substring(tmp1,0,1))>0, + tmp2=""; + tmp=indexof(tmp1,"f"); + if(tmp>0, + tmp2=substring(tmp1,tmp-1,length(tmp1)); + tmp1=substring(tmp1,0,tmp-1); + if(substring(tmp1,length(tmp1)-1,length(tmp1))=="#", + tmp2="#"+tmp2; + tmp1=substring(tmp1,0,length(tmp1)-1); + ); +// tmp=indexof(tmp2,"#"); +// if(tmp>0, +// tmp2=substring(tmp2,0,tmp-1); +// ); + ); + if(flg==1, + tmp1=""; + flg=0; + ); + if(length(tmp1)>0, + tmp=indexof(tmp1,"#"); + if(tmp>0, + tmp1=substring(tmp1,0,tmp-1); + flg=1; + ); + tmp=indexof(tmp1,"vt"); + if(tmp>0, + tmp1=substring(tmp1,0,tmp-1); + ); + tmp1=replace(tmp1," ",","); + tmp1=replace(tmp1," ",","); + tmp1="["+tmp1+"]"; + tmp1=size*parse(tmp1); + vL=append(vL,tmp1); + ); + if(length(tmp2)>0, + tmp2=tokenize(tmp2,"f"); + if(length(tmp2_1)==0, + tmp2=tmp2_(2..length(tmp2)); + // , + // if(tmp2_1=="#", +// tmp2=tmp2_(2..length(tmp2)); +// tmp2_1="#"+tmp2_1; +// ); + ); + forall(1..length(tmp2),tmp3, + tmp=tmp2_tmp3; + if(substring(tmp,length(tmp)-1,length(tmp))=="#", + tmp2_(tmp3+1)="#"+Removespace(tmp2_(tmp3+1)); + tmp2_tmp3=substring(tmp,0,length(tmp)-1); + ); + tmp5=""; + if(length(tmp2_tmp3)>0, + tmp4=tokenize(tmp2_tmp3," "); + forall(tmp4, + if(length(text(#))>0, + if(indexof(text(#),"/")==0, + tmp=text(#); + , + tmp=tokenize(text(#),"/"); + tmp=tmp_1; + ); + if(length(tmp)>0, + tmp5=tmp5+tmp+","; + ); + ); + ); + tmp5=substring(tmp5,0,length(tmp5)-1); + if(length(tmp5)>0, + if(substring(tmp5,0,1)!="#", + tmp5="["+tmp5+"]"; + fnL=append(fnL,parse(tmp5)); + ); + ); + ); + ); + ); + ); + ); + [vL,fnL]; +); + +Concatobj(objL):=Concatobj(objL,[]); +Concatobj(objL,options):=( +//help:Concatobj([polyhed,triangle]); +//help:Concatobj([polyhed,triangle],["Rmf=no"]); +//help:Concatobj([[A,B,C],[A,C,D]]); + regional(obj,vL,fL,vadd,vtx,faces,fnew,face,jj,kk,vctr,eps, + tmp,tmp1,tmp2,tmp3,eqL,rmf); + tmp=divoptions(options); + eqL=tmp_5; + rmf="y"; // 16.08.19 + forall(eqL, + tmp=indexof(#,"="); + tmp1=Toupper(substring(#,0,1)); + tmp2=Toupper(substring(#,tmp,tmp+1)); + if(tmp1=="R", + if(tmp2=="Y",rmf="y"); // 16.08.14 + ); + ); + eps=10^(-4); + vL=[]; + fL=[]; + vctr=0; + forall(objL,obj, + if(isstring(obj), + tmp1=parse(obj); + , + tmp1=obj; + ); + if(length(tmp1)>2, // 16.02.28 + tmp=1..length(tmp1); + tmp1=[tmp1,[tmp]]; + ); + vtx=tmp1_1; // 16.02.11 from + faces=tmp1_2; + fnew=faces; + vctr=0; + vadd=[]; + forall(1..length(vtx),jj, + tmp1=vtx_jj; + tmp=select(1..length(vL),dist3d(vL_#,tmp1)<eps); + if(length(tmp)==0, + vadd=append(vadd,tmp1); + vctr=vctr+1; + tmp2=length(vL)+vctr; + , + tmp2=tmp_1; + ); + forall(1..length(faces),kk, + face=faces_kk; + tmp=select(1..length(face),face_#==jj); + if(length(tmp)>0, + tmp1=tmp_1; + fnew_kk_tmp1=tmp2; + ); + ); + ); + vL=concat(vL,vadd); + fL=concat(fL,fnew); // 16.02.11 upto + ); + tmp2=apply(1..length(fL),1); + if(rmf=="y", + forall(1..length(fL),jj, + tmp=fL_jj; + tmp1=select((jj+1)..length(fL),fL_#==tmp); + forall(tmp1,tmp2_#=0); + ); + tmp=select(1..length(tmp2),tmp2_#==1); + fL=fL_tmp; + ); + [vL,fL]; +); + +if(1==0, + +Mkobjfile(fname,objL):=Mkobjfile(Dirwork,fname,objL); +Mkobjfile(path,fnameorg,objL):=( +//help:Mkobj(filename,objlist); + regional(fname,obj,vtx,face,tmp,tmp1,tmp2); + fname=fnameorg; + if(indexof(fname,".")==0,fname=fname+".obj"); + vtx=objL_1; + face=objL_2; + setdirectory(path); + SCEOUTPUT = openfile(fname); + forall(vtx,tmp1, + tmp2=tmp1; + if(ispoint(tmp1), + tmp2=parse(text(tmp1)+"3d"); + ); + tmp="v "+format(tmp2_1,5)+" "+format(tmp2_2,5)+" "+format(tmp2_3,5); + println(SCEOUTPUT,tmp); + ); + forall(face,tmp1, + tmp="f"; + forall(tmp1, + tmp=tmp+" "+text(#); + ); + println(SCEOUTPUT,tmp); + ); + closefile(SCEOUTPUT); + setdirectory(Dirwork); +); + +); + +VertexandEdge(nm,vfnL):=VertexEdgeFace(nm,vfnL,[]); +VertexandEdge(nm,vfnL,options):=VertexEdgeFace(nm,vfnL,options); +VertexEdgeFace(nm,vfnL):=VertexEdgeFace(nm,vfnL,[]); // 16.02.10 +//help:VertexEdgeFace("1",[vL,fnL]); +//help:VertexEdgeFace("1",["A","B","C"]); +//help:VertexEdgeFace(options=["Pt=fix","Edg=geo"]); +VertexEdgeFace(nm,vfnLorg,optionorg):=( + regional(name3,namev,namee,namef,vfnL,options,Noflg,eqL,strL, + vL,eL,enL,face,edge,vtx,vname,fixflg,edgflg,tmp,tmp1,tmp2); + name3="phvef"+nm; + namev="phv3d"+nm; + namee="phe3d"+nm; + namef="phf3d"+nm; + options=optionorg; + vfnL=vfnLorg; // 16.06.19from + if(length(vfnL)>2, + vfnL=[vfnL,[1..length(vfnL)]]; + ); + if(length(vfnL)==1, + vfnL=[vfnL_1,[1..length(vfnL_1)]]; + ); // 16.06.19upto + tmp=Divoptions(options); + Noflg=tmp_2; + eqL=tmp_5; + strL=tmp_7; + fixflg=1; + edgflg=1; + forall(eqL, + tmp1=Toupper(substring(#,0,1)); + tmp=indexof(#,"="); + tmp2=Toupper(substring(#,tmp,length(#))); + if(tmp1=="P", + if(tmp2=="FREE", fixflg=0); + options=remove(options,[#]); + ); + if(tmp1=="E", + if(substring(tmp2,0,1)=="N", edgflg=0); + options=remove(options,[#]); + ); + ); + forall(strL, + if(Toupper(#)=="FREE", + fixflg=0; + options=remove(options,[#]); + ); + ); + vL=[]; + forall(1..length(vfnL_1), + vtx=vfnL_1_#; // 16.02.10 from + if(isstring(vtx),vtx=parse(vtx)); // 16.06.19 + if(ispoint(vtx), + tmp=parse(text(vtx)+"3d"); + vname=text(vtx); +// tmp=parse(text(vtx)+"3d"); +// tmp="v"+text(#)+"3d="+textformat(tmp,5); +// parse(tmp); + , + vname="v"+text(#); + if(fixflg==1, + Putpoint3d(["v"+text(#),vtx],"fix"); + ); + ); + vL=append(vL,vname); // 16.02.10 upto + ); + eL=[]; + forall(vfnL_2,face, + forall(1..length(face), + tmp1=face_#; + if(#<length(face), + tmp2=face_(#+1); + , + tmp2=face_1; + ); + if(tmp2<tmp1, + tmp=tmp2; tmp2=tmp1; tmp1=tmp; + ); +// tmp1="v"+text(tmp1)+"3d"; +// tmp2="v"+text(tmp2)+"3d"; + tmp1=vL_tmp1+"3d"; + tmp2=vL_tmp2+"3d"; + tmp=select(eL,#==[tmp1,tmp2] % #==[tmp2,tmp1]); + if(length(tmp)==0, + eL=append(eL,[tmp1,tmp2]); + ); + ); + ); + if(Noflg<3, + enL=[]; + forall(eL,edge, + if(edgflg==0, + if(Noflg<2, + tmp1=edge_1;//parse(edge_1); + tmp2=edge_2;//parse(edge_2); + tmp="sl3d"+edge_1+edge_2; + if(islist(parse(tmp)), + Changestyle3d([tmp],["nodisp"]); + ); + tmp="sl3d"+edge_2+edge_1; + if(islist(parse(tmp)), + Changestyle3d([tmp],["nodisp"]); + ); + tmp=replace(edge_1+edge_2,"3d",""); + options=append(options,"Msg=no"); + Spaceline("-"+tmp,[tmp1,tmp2],options); //16.02.28 + ); + enL=append(enL,tmp+"3d"); //16.02.29 + , + tmp1=replace(edge_1,"3d",""); + tmp2=replace(edge_2,"3d",""); + tmp=tmp1+tmp2; + create([tmp],"Segment",[parse(tmp1),parse(tmp2)]); + enL=append(enL,tmp+"3d");//16.02.29 + ); + ); + if(Noflg<2, + println("generate "+name3); + println(" generate totally "+namee); + println(" generate vertexes "+namev); + println(" generate faces "+namef); + ); + tmp1=""; + forall(enL, + tmp1=tmp1+Dq+#+Dq+","; + ); + tmp1=substring(tmp1,0,length(tmp1)-1); + tmp=namee+"=["+tmp1+"]"; + parse(tmp); + tmp=namee+"=list("+tmp1+")"; + tmp=replace(tmp,Dq,""); + GLIST=append(GLIST,tmp); + tmp1=apply(vL,Dq+#+"3d"+Dq); + tmp1=text(tmp1); + tmp1=substring(tmp1,1,length(tmp1)-1); + tmp=namev+"=["+tmp1+"]"; + parse(tmp); + tmp1=replace(tmp1,Dq,""); + tmp=namev+"=list("+tmp1+")"; + GLIST=append(GLIST,tmp); + tmp1=text(vfnL_2); + tmp1=substring(tmp1,1,length(tmp1)-1); + tmp=namef+"=["+tmp1+"]"; + parse(tmp); + tmp=namef+"=list("+tmp1+")"; + GLIST=append(GLIST,tmp); + ); + [namev,namee,namef]; +); + +Phparadata(nm,nmvf):=( + regional(tmp1,tmp2); + tmp1=parse("phv3d"+nmvf); + tmp2=parse("phf3d"+nmvf); + Phparadata(nm,nmvf,[tmp1,tmp2]); +); +Phparadata(nm,nmvf,Arg1):=( + regional(vfL,options,tmp1,tmp2); + if(islist(Arg1) & !islist(Arg1_1), + tmp1=parse("phv3d"+nmvf); + tmp2=parse("phf3d"+nmvf); + vfL=[tmp1,tmp2]; + options=Arg1; + , + vfL=Arg1; + options=[]; + ); + Phparadata(nm,nmvf,vfL,options); +); +Phparadata(nm,nmvf,vfL,options):=( +//help:Phparadata("1","1",["do"]); + regional(name2,name3,nameh2,nameh3,Ltype,Noflg,eqL,Hidden, + opstr,opcindy,Outflg,Inflg,pdata1,tmp,tmp1,tmp2); + name2="php2d"+nm; + name3="php3d"+nm; + nameh2="phh2d"+nm; + nameh3="phh3d"+nm; + tmp=Divoptions(options); + Ltype=tmp_1; + Noflg=tmp_2; + Inflg=tmp_3; + Outflg=tmp_4; + if(Inflg==0 & Outflg==0, Inflg=1;Outflg=1); // 15.05.15 + eqL=tmp_5; + opstr=tmp_(length(tmp)-1); + opcindy=tmp_(length(tmp)); + Hidden=""; + forall(eqL, + tmp=indexof(#,"="); + tmp1=Toupper(substring(#,0,1)); + tmp2=substring(#,tmp,length(#)); + if(tmp1=="H", + Hidden=tmp2; + ); + ); + if(Noflg<3, + if(Outflg>=1, + println("Output Phparadata "+name3); + if(isstring(vfL_1), // 2015.05.27 from + tmp1=vfL_1; + , + tmp1="list("; + forall(vfL_1, + tmp1=tmp1+#+","; + ); + tmp1=substring(tmp1,0,length(tmp1)-1)+")"; + ); + if(isstring(vfL_2), + tmp2=vfL_2; + , + tmp2="list("; + forall(vfL_2, + tmp2=tmp2+text(#)+","; + ); + tmp2=substring(tmp2,0,length(tmp2)-1)+")"; + ); // 2015.05.27 upto + tmp=name3+"=Phparadata("+tmp1+","+tmp2+opstr+")"; + GLIST=append(GLIST,tmp); + tmp=name2+"=Projpara("+name3+")"; + GLIST=append(GLIST,tmp); + tmp=nameh3+"=PhHiddenData()"; + GLIST=append(GLIST,tmp); + tmp=nameh2+"=Projpara("+nameh3+")"; + GLIST=append(GLIST,tmp); + if(Outflg==1, + SCIWRLIST=append(SCIWRLIST,name3); + SCIWRLIST=append(SCIWRLIST,name2); + SCIWRLIST=append(SCIWRLIST,nameh3); + SCIWRLIST=append(SCIWRLIST,nameh2); + ); + ); + if(Inflg==1, + if(length(SCIRELIST)==0, + ReadOutData(Fnameout); + ); + tmp=parse(name2); + if(islist(tmp), + Extractdata(name2,["nodisp"]); // 12.19 + ); + SCIRELIST=append(SCIRELIST,name3); + SCIRELIST=append(SCIRELIST,name2); + ); + ); + if(Noflg<2, + if(isstring(Ltype), + Ltype=GetLinestyle(text(Noflg)+Ltype,name2); + , + if(Noflg==1,Ltype=0); + ); + if(Inflg==1, +// tmp=apply(pltdata1,replace(#,"3d","2d")); // 15.05.18 from + Changestyle3d("phe3d"+nmvf,["nodisp"]); + GCLIST=append(GCLIST,[name2,Ltype,opcindy]); + ); + ); + if(Hidden!="", + Drawlinetype(nameh2,Hidden); + if(Inflg==1, + tmp1=Toupper(substring(Hidden,0,2)); + if(tmp1=="DR",Ltype=0); + if(tmp1=="DA",Ltype=1); + if(tmp1=="DO",Ltype=3); + if(tmp1=="ID",Ltype=1); + GCLIST=append(GCLIST,[nameh2,Ltype,opcindy]); + ); + ); +); + +Nohiddenseg(seg,rng,triang):=( +// help:Nohiddenseg("1",seg1,[0,1],["v1","v2","v3"]); + regional(Eps,pA3,pB3,pC3,pA,pB,pC,sg1,sg2,ss1,ss2,parL,flgL,flg1,flg2, + veB,veC,sgnoh,sghid,added,tristr,tmp,tmp1,tmp2,tmp3,tmp4,tmp5); + Eps=10^(-4); + sgnoh=[0,1]; + pA3=if(isstring(triang_1),parse(triang_1+"3d"),triang_1); //16.06.19 + pA=Parapt(pA3); + pB3=if(isstring(triang_2),parse(triang_2+"3d"),triang_2); //16.06.19 + pB=Parapt(pB3); + pC3=if(isstring(triang_3),parse(triang_3+"3d"),triang_3); //16.06.19 + pC=Parapt(pC3); + sg1=seg_1+rng_1*(seg_2-seg_1); + sg2=seg_1+rng_2*(seg_2-seg_1); + ss1=Parapt(sg1); + ss2=Parapt(sg2); + tristr=replace(text(triang),",","-"); + tristr=substring(tristr,1,length(tristr)-1); + if(|ss2-ss1|>Eps & abs(Crossprod(pB-pA,pC-pA))>Eps, + tmp=IntersectcrvsPp([ss1,ss2],[pA,pB,pC,pA]); + parL=apply(tmp,#_2-1); + parL=sort(parL); + if(length(parL)==0, + parL=[0,1]; + , + if(parL_1>Eps,parL=prepend(0,parL)); + if(parL_(length(parL))<1-Eps,parL=append(parL,1)); + ); + tmp1=Crossprod(pB3-pA3,pC3-pA3); + if(abs(Dotprod(tmp1,sg2-sg1))>Eps, + tmp=IntersectsgpL("",[sg1,sg2],tristr,["nodisp"]); + if(tmp_2>-Eps & tmp_2<1+Eps, + if(tmp_3>-Eps & tmp_4>-Eps & tmp_3+tmp_4<1+Eps, + tmp1=select(parL,abs(tmp_2-#)<Eps); + if(length(tmp1)==0, + parL=sort(append(parL,tmp_2)); + ); + ); + ); + ); + flgL=[]; + forall(parL, + tmp1=sg1+#*(sg2-sg1); + tmp=Projcoordpara(tmp1); + tmp_3=tmp_3+1; + tmp2=Cancoordpara(tmp); + tmp=IntersectsgpL("",[tmp1,tmp2],tristr,["nodisp"]); + tmp1=Projcoordpara(tmp1); + tmp2=Projcoordpara(tmp_1); + flg1=0; + if(tmp1_3<tmp2_3-Eps,flg1=-1); + if(tmp1_3>tmp2_3+Eps,flg1=1); + flgL=append(flgL,flg1); + ); + sgnoh=[]; + forall(2..length(flgL), + added=[]; + flg1=flgL_(#-1); + flg2=flgL_#; + if(max([flg1,flg2])==1 % flg1+flg2==0, + added=[parL_(#-1),parL_#]; + , + sghid=[parL_(#-1),parL_#]; + tmp1=ss1+sghid_1*(ss2-ss1); + tmp2=ss1+sghid_2*(ss2-ss1); + tmp=IntersectcrvsPp([tmp1,tmp2],[pA,pB,pC,pA]); + if(length(tmp)<2, + veB=pB-pA; + veC=pC-pA; + tmp3=tmp1-pA; + tmp4=tmp2-pA; + tmp5=Crossprod(veB,veC); + tmp1=(tmp3_1*veC_2-tmp3_2*veC_1)/tmp5; + tmp2=(-tmp3_1*veB_2+tmp3_2*veB_1)/tmp5; + if(tmp1>-Eps & tmp2>-Eps & tmp1+tmp2<1+Eps,flg1=1,flg1=0); + tmp1=(tmp4_1*veC_2-tmp4_2*veC_1)/tmp5; + tmp2=(-tmp4_1*veB_2+tmp4_2*veB_1)/tmp5; + if(tmp1>-Eps & tmp2>-Eps & tmp1+tmp2<1+Eps,flg2=1,flg2=0); + if(flg1==1 & flg2==0, + if(length(tmp)>0, + tmp1=tmp_1_2-1; + tmp1=sghid_1+(sghid_2-sghid_1)*tmp1; + , + tmp1=sghid_1; + ); + added=[tmp1,sghid_2]; +// added=[tmp1+Eps,sghid_2]; // <--- USUI 2016.02.27 + ); + if(flg1==0 & flg2==1, + if(length(tmp)>0, + tmp1=tmp_1_2-1; + tmp1=sghid_1+(sghid_2-sghid_1)*tmp1; + , + tmp1=sghid_2; + ); + added=[sghid_1,tmp1]; + ); + if(flg1+flg2==0, + added=sghid; + ); + ); + if(length(tmp)==2, + if(min([flg1,flg2])>=0,added=sghid,added=[]); + ); + ); + if(length(added)>0, + if(length(sgnoh)==0, + sgnoh=added; + , + if(sgnoh_(length(sgnoh))<added_1-Eps, + sgnoh=concat(sgnoh,added); + , + sgnoh=sgnoh_(1..(length(sgnoh)-1)); + sgnoh=concat(sgnoh,added_(2..length(added))); + ); + ); + ); + ); + ); + sgnoh=apply(sgnoh,rng_1+#*(rng_2-rng_1)); + sgnoh; +); + +Nohiddensegs(seg,range,faceno,vtxL):=( + regional(Eps,rng,face,vtx,out,ra,rb,tmp,tmp1,tmp2); + Eps=10^(-4); + face=apply(faceno,vtxL_#); // 16.02.10 + rng=range; + out=rng; + forall(2..(length(face)-1),vtx, + tmp1=[face_1,face_vtx,face_(vtx+1)]; + forall(1..(length(rng)/2), + tmp=[rng_(2*#-1),rng_(2*#)]; + out=remove(out,tmp); + tmp2=Nohiddenseg(seg,tmp,tmp1); + if(length(tmp2)>0, + out=remove(out,tmp); + out=concat(out,tmp2); + ); + ); + tmp=sort(out); + out=[]; + forall(1..(length(tmp)/2), + ra=tmp_(2*#-1); + rb=tmp_(2*#); + if(ra<rb-Eps, + if(length(out)==0, + out=[ra,rb]; + , + if(out_(length(out))<ra-Eps, + out=concat(out,[ra,rb]); + , + out_(length(out))=rb; + ); + ); + ); + ); + rng=out; + ); + rng; +); + +Nohiddenbyfaces(nm,facestr):= + Nohiddenbyfaces(nm,Datalist3d(),facestr,[],["do"]); +Nohiddenbyfaces(nm,Arg1,Arg2):=( + regional(segstr,facestr,options); + if(islist(Arg2), + segstr=Datalist3d(); + facestr=Arg1; + options=Arg2; + , + segstr=Arg1; + facestr=Arg2; + options=[]; + ); + Nohiddenbyfaces(nm,segstr,facestr,options,["do"]); +); +Nohiddenbyfaces(nm,Arg1,Arg2,Arg3):=( + regional(segstr,facestr,options,optionsh); + if(islist(Arg2), + segstr=Datalist3d(); + facestr=Arg1; + options=Arg2; + optionsh=Arg3; + , + segstr=Arg1; + facestr=Arg2; + options=Arg3; + optionsh=["do"]; + ); + Nohiddenbyfaces(nm,segstr,facestr,options,optionsh); // 16.02.21 +); +Nohiddenbyfaces(nm,segstr,facestr,optionorg,optionsh):=( +//help:Nohiddenbyfaces("1","phf3d1"); +//help:Nohiddenbyfaces("1","ax3d","phf3d1"); +//help:Nohiddenbyfaces(options1=["dr"]); +//help:Nohiddenbyfaces(options2=["do"]); + regional(Eps,namen,nameh,options,segL,faceL,vtxL,rng,seg,face, + flg,ctr,tmp,tmp1,tmp2,Ltype,Noflg,eqL,opstr,opcindy,frnL,frhL); + Eps=10^(-4); + namen="frn"+nm; + nameh="frh"+nm; + if(isstring(segstr), +// segL=parse(segstr); + segL=[segstr]; // 16.08.19 + , + segL=segstr; + ); + tmp2=[]; // 16.02.29 from + forall(segL,seg, + tmp=replace(seg,"3d","2d"); + tmp1=select(GCLIST,#_1==tmp); + tmp1=tmp1_1; + if(tmp1_2==0, + tmp2=append(tmp2,seg); + ); + ); + segL=tmp2; + Changestyle3d(segL,["nodisp"]); // 16.02.29 upto + if(islist(segL), + if(isstring(segL_1), + segL=apply(segL,parse(#)); + ); + ); + segL=Flattenlist(segL); + flg=0; + if(isstring(facestr), + if(substring(facestr,0,3)=="phf", // 16.08.19from + faceL=parse(facestr); + tmp=replace(facestr,"phf","phv"); // 16.02.10 from + tmp=parse(tmp); + vtxL=apply(tmp,replace(#,"3d","")); // 16.02.10 upto + flg=1; + , + faceL=parse(facestr); + ); + ); + if(flg==0, + if(length(faceL)==2, // 16.08.19upto + vtxL=facestr_1; + faceL=facestr_2; + , + vtxL=facestr; + faceL=[1..length(vtxL)]; + ); + ); +// Hidden=""; + options=optionorg; + tmp=Divoptions(options); + Ltype=tmp_1; + Noflg=tmp_2; + eqL=tmp_5; + opstr=tmp_(length(tmp)-1); + opcindy=tmp_(length(tmp)); +// forall(eqL, +// tmp=indexof(#,"="); +// tmp1=Toupper(substring(#,0,1)); +// tmp2=substring(#,tmp,length(#)); +// if(tmp1=="H", +// Hidden=tmp2; +// ); +// ); + + ctr=1; + frnL=[]; + frhL=[]; + forall(segL,seg, + rng=[0,1]; + forall(faceL,face, + rng=Nohiddensegs(seg,rng,face,vtxL); + ); + forall(1..length(rng)/2, + tmp=rng_(2*#-1); + tmp1=seg_1+tmp*(seg_2-seg_1); + tmp=rng_(2*#); + tmp2=seg_1+tmp*(seg_2-seg_1); +// tmp=remove(options,eqL); + tmp=append(options,"Msg=nodisp"); // 15.06.22 + Spaceline("-"+namen+"n"+text(ctr),[tmp1,tmp2],tmp); + frnL=append(frnL,namen+"n"+text(ctr)+"3d"); + ctr=ctr+1; + ); + if(length(rng)==0, + rng=[0,1]; + , + if(rng_1>0+Eps, + rng=prepend(0,rng); + , + rng=rng_(2..length(rng)); + ); + if(rng_(length(rng))<1-Eps, + rng=append(rng,1); + , + rng=rng_(1..(length(rng)-1)); + ); + ); + forall(1..length(rng)/2, + tmp=rng_(2*#-1); + tmp1=seg_1+tmp*(seg_2-seg_1); + tmp=rng_(2*#); + tmp2=seg_1+tmp*(seg_2-seg_1); + if(length(optionsh)>0,tmp=optionsh,tmp=["do"]); + tmp=append(tmp,"Msg=nodisp"); // 15.06.22 + Spaceline("-"+nameh+"n"+text(ctr),[tmp1,tmp2],tmp); + frhL=append(frhL,nameh+"n"+text(ctr)+"3d"); + ctr=ctr+1; + ); + ); + tmp1=apply(frnL,Dq+#+Dq); + tmp="frn3d"+nm+"="+text(tmp1); + parse(tmp); + println(" generate totally "+"frn3d"+nm); + tmp1=apply(frhL,Dq+#+Dq); + tmp="frh3d"+nm+"="+text(tmp1); + parse(tmp); + println(" generate totally "+"frh3d"+nm); +); + +Faceremovaldata(nm,vfdata,crvdata):=Faceremovaldata(nm,vfdata,crvdata,[]); +Faceremovaldata(nm,vfdata,crvdata,options):=( + regional(name2,name3,nameh2,nameh3,Ltype,Noflg,eqL,Hidden, + opstr,opcindy,Outflg,Inflg,tmp,tmp1,tmp2); + name2="frc2d"+nm; + name3="frc3d"+nm; + nameh2="frch2d"+nm; + nameh3="frch3d"+nm; + tmp=Divoptions(options); + Ltype=tmp_1; + Noflg=tmp_2; + Inflg=tmp_3; + Outflg=tmp_4; + if(Inflg==0 & Outflg==0, Inflg=1;Outflg=1); // 15.05.15 + eqL=tmp_5; + opstr=tmp_(length(tmp)-1); + opcindy=tmp_(length(tmp)); + Hidden=""; + forall(eqL, + tmp=indexof(#,"="); + tmp1=Toupper(substring(#,0,1)); + tmp2=substring(#,tmp,length(#)); + if(tmp1=="H", + Hidden=tmp2; + ); + ); + if(Noflg<3, + if(Outflg>=1, + println("Output Faceremovaldata "+name3); + if(MeasureDepth(vfdata)==1, + tmp1=text(apply(vfdata,#_[1,3])); + , + tmp1=text([vfdata_[1,3]]); + ); + tmp1=replace(tmp1,"[","list("); + tmp1=replace(tmp1,"]",")"); + tmp2=text(crvdata); + tmp2=replace(tmp2,"[","list("); + tmp2=replace(tmp2,"]",")"); +// tmp2="Flattenlist("+tmp2+")"; + tmp=name3+"=Faceremovaldata("+tmp1+","+tmp2+opstr+","+Dq+"para"+Dq+")"; + GLIST=append(GLIST,tmp); + tmp=name2+"=Projpara("+name3+")"; + GLIST=append(GLIST,tmp); + tmp=nameh3+"=PhHiddenData()"; + GLIST=append(GLIST,tmp); + tmp=nameh2+"=Projpara("+nameh3+")"; + GLIST=append(GLIST,tmp); + if(Outflg==1, + SCIWRLIST=append(SCIWRLIST,name3); + SCIWRLIST=append(SCIWRLIST,name2); + SCIWRLIST=append(SCIWRLIST,nameh3); + SCIWRLIST=append(SCIWRLIST,nameh2); + ); + ); + if(Inflg==1, + if(length(SCIRELIST)==0, + ReadOutData(Fnameout); + ); + tmp=parse(name2); + if(islist(tmp), + Extractdata(name2,["nodisp"]); // 12.19 + ); + SCIRELIST=append(SCIRELIST,name3); + SCIRELIST=append(SCIRELIST,name2); + ); + ); + if(Noflg<2, + if(isstring(Ltype), + Ltype=GetLinestyle(text(Noflg)+Ltype,name2); + , + if(Noflg==1,Ltype=0); + ); + if(Inflg==1, + if(MeasureDepth(vfdata)==1, + tmp1=apply(vfdata,parse(#_2)); + , + tmp1=[parse(vfdata_2)]; + ); + forall(tmp1, + Changestyle3d(#,["nodisp"]); + ); + Changestyle3d(crvdata,["nodisp"]); + GCLIST=append(GCLIST,[name2,Ltype,opcindy]); + ); + ); + if(Hidden!="", + Drawlinetype(nameh2,Hidden); + if(Inflg==1, + tmp1=Toupper(substring(Hidden,0,2)); + if(tmp1=="DR",Ltype=0); + if(tmp1=="DA",Ltype=1); + if(tmp1=="DO",Ltype=3); + if(tmp1=="ID",Ltype=1); + GCLIST=append(GCLIST,[nameh2,Ltype,opcindy]); + ); + ); +); + +Fullformfunc(FdL):=( + regional(Out,nn,ii,Jrg,flg,Urg,Vrg,kk,Uname, + Zf,Xname,Xf,Yname,Yf,tmp,tmp1,tmp2); + Out=[FdL_1]; + nn=length(FdL); + flg=0; + forall(1..nn, + if(flg==0, + tmp=FdL_#; + if(substring(tmp,length(tmp)-1,length(tmp))=="]", + Jrg=#; + Urg=FdL_Jrg; + flg=1; + ); + ); + ); + kk=indexof(Urg,"="); + Uname=Removespace(substring(Urg,0,kk-1)); + tmp=substring(Urg,kk,length(Urg)); + Urg=Uname+"="+tmp; +// tmp1=parse(tmp); +// Urg=Uname+"="+textformat(tmp1,5); + Vrg=FdL_(Jrg+1); + kk=indexof(Vrg,"="); + Vname=Removespace(substring(Vrg,0,kk-1)); + tmp=substring(Vrg,kk,length(Vrg)); + Vrg=Vname+"="+tmp; +// tmp1=parse(tmp); +// Vrg=Vname+"="+textformat(tmp1,5); + if(Jrg==2, + tmp=FdL_1; + kk=indexof(tmp,"="); + Zf=substring(tmp,kk,length(tmp)); + tmp=[Uname,Vname,Zf,Urg,Vrg]; + Out=concat(Out,tmp); + , + if(Jrg==4, + tmp=FdL_1; + kk=indexof(tmp,"="); + Zf=substring(tmp,kk,length(tmp)); + tmp=FdL_2; + kk=indexof(tmp,"="); + Xname=Removespace(substring(tmp,0,kk-1)); + Xf=substring(tmp,kk,length(tmp)); + tmp=FdL_3; + kk=indexof(tmp,"="); + Yname=Removespace(substring(tmp,0,kk-1)); + Yf=substring(tmp,kk,length(tmp)); + tmp=replace(Zf,Xname,"("+Xf+")"); + Zf=replace(tmp,Yname,"("+Yf+")"); + Tmp=[Xf,Yf,Zf,Urg,Vrg]; + Out=concat(Out,Tmp); + , + tmp=FdL_2; + kk=indexof(tmp,"="); + Xf=substring(tmp,kk,length(tmp)); + tmp=FdL_3; + kk=indexof(tmp,"="); + Yf=substring(tmp,kk,length(tmp)); + tmp=FdL_4; + kk=indexof(tmp,"="); + Zf=substring(tmp,kk,length(tmp)); + tmp=[Xf,Yf,Zf,Urg,Vrg]; + Out=concat(Out,tmp); + ); + ); + DrwS="enws"; + BdyL=[]; + forall((Jrg+2)..length(FdL),ii, + tmp=FdL_ii; + if(isstring(tmp), + if(length(tmp)==0, + tmp=" "; + ); + DrwS=tmp; + ); + if(islist(tmp) & length(tmp_1)>1, + BdyL=tmp; + ); + ); + tmp=[DrwS,BdyL]; + Out=concat(Out,tmp); +); + +Surffun(nm,Fd):=( + regional(name,coord,var1,var2,rng1,rng2,bdy,tmp,tmp1,tmp2); + tmp=Fullformfunc(Fd); + rng1=tmp_5; + rng2=tmp_6; + bdy=tmp_7; + coord="["+tmp_2+","+tmp_3+","+tmp_4+"]"; + tmp=indexof(rng1,"="); + var1=substring(rng1,0,tmp-1); + rng1=substring(rng1,tmp,length(rng1)); + tmp=indexof(rng2,"="); + var2=substring(rng2,0,tmp-1); + rng2=substring(rng2,tmp,length(rng2)); + name="Sfn"+nm+"("+var1+","+var2+")"; + Deffun(name,["regional(tmp)","tmp="+coord,"tmp"]); + [name,var1,rng1,var2,rng2,bdy]; +); + +Sf3data(nm,fdata):=Sf3data(nm,fdata,[]); +Sf3data(nm,fdata,optionorg):=( + regional(tmp,tmp1,tmp2); + tmp=Surffun(nm,fdata); + tmp1=tmp_2+"="+tmp_3; + tmp2=tmp_4+"="+tmp_5; + Sf3data(nm,tmp_1,tmp1,tmp2,optionorg); +); +Sf3data(nm,funstr,var1,var2):=Sf3data(nm,funstr,var1,var2,[]); +Sf3data(nm,funstr,var1org,var2org,optionorg):=( +//help:Sf3data("1",Fd); +//help:Sf3data(options=["Num=[25,25]","Wire=[20,20]"]); + regional(name2,name3,var1,var2,Ltype,Noflg,opstr,opcindy,eqL,Num, + Wire,varu,varv,rngu,rngv,sfdtuL,sfdtvL,options, + tmp,tmp1,tmp2,tmp3); + var1=replace(var1org,"%pi","pi"); + var2=replace(var2org,"%pi","pi"); + tmp=Divoptions(optionorg); + Ltype=tmp_1; + Noflg=tmp_2; + eqL=tmp_5; + opstr=tmp_(length(tmp)-1); + opcindy=tmp_(length(tmp)); + options=optionorg; + Num=[25,25]; + Wire=[20,20]; + forall(eqL, + tmp=indexof(#,"="); + tmp1=substring(#,0,tmp-1); + tmp2=substring(#,tmp,length(#)); // 16.05.25 + tmp=Toupper(substring(tmp1,0,1)); + if(tmp=="N", + tmp2=parse(tmp2); + if(!islist(tmp2),tmp2=[tmp2,tmp2]); + Num=tmp2; + options=remove(options,[#]); + ); + if(tmp=="W", + tmp2=parse(tmp2); + if(!islist(tmp2),tmp2=[tmp2,tmp2]); + Wire=tmp2; + options=remove(options,[#]); + ); + ); + tmp=indexof(var1,"="); + varu=substring(var1,0,tmp-1); + rngu=parse(substring(var1,tmp,length(var1))); + tmp=indexof(var2,"="); + varv=substring(var2,0,tmp-1); + rngv=parse(substring(var2,tmp,length(var2))); + sfdtuL=[]; + forall(0..Wire_2, + tmp=rngv_1+#/Wire_2*(rngv_2-rngv_1); + tmp1=replace(funstr,varv,textformat(tmp,5)); + tmp="Num="+text(Num_2); + tmp2=concat(options,["Msg=no",tmp]); + Spacecurve(nm+"u"+#,tmp1,var1,tmp2); + sfdtuL=append(sfdtuL,"sc3d"+nm+"u"+#); + ); + sfdtvL=[]; + forall(0..Wire_1, + tmp=rngu_1+#/Wire_1*(rngu_2-rngu_1); + tmp1=replace(funstr,varu,textformat(tmp,5)); + tmp="Num="+text(Num_1); + tmp2=concat(options,["Msg=no",tmp]); + Spacecurve(nm+"v"+#,tmp1,var2,tmp2); + sfdtvL=append(sfdtvL,"sc3d"+nm+"v"+#); + ); + if(Noflg<3, + println(" generate totally "+"sf3d"+nm); + tmp1=""; + forall(sfdtuL, + tmp1=tmp1+Dq+#+Dq+","; + ); + tmp1=substring(tmp1,0,length(tmp1)-1); + tmp2=""; + forall(sfdtvL, + tmp2=tmp2+Dq+#+Dq+","; + ); + tmp2=substring(tmp2,0,length(tmp2)-1); + tmp="sf3d"+nm+"=[["+tmp1+"],["+tmp2+"]]"; + parse(tmp); + ); + [sfdtuL,sfdtvL]; +); + +Sfbdparadata(nm,fd):= + Sfbdparadata(nm,fd,[],["nodisp"]); +Sfbdparadata(nm,fd,options):= + Sfbdparadata(nm,fd,options,["nodisp"]); +Sfbdparadata(nm,fdorg,optionorg,optionsh):=( +//help:Sfbdparadata("1",Fd); +//help:Sfbdparadata(options2=["Wait=30",limit1([0.05,1], limit2(0.2)]); + regional(fd,options,name2,name3,name2h,name3h,waiting, + eqL,reL,strL,fname,outreg,tmp,tmp1,tmp2,flg,wflg); + name2="sfbd2d"+nm; + name3="sfbd3d"+nm; + name2h="sfbdh2d"+nm; + name3h="sfbdh3d"+nm; + fname=Fhead+"sfbd"+nm+".txt"; + fd=apply(fdorg,if(isstring(#),"'"+#+"'",#)); + options=optionorg; + tmp=Divoptions(options); + eqL=tmp_5; + reL=tmp_6; + strL=tmp_7; + waiting=30; + outreg=0; // 16.08.20 + forall(eqL, + tmp=indexof(#,"="); + tmp1=Toupper(substring(#,0,1)); + tmp2=substring(#,tmp,length(#)); + if(tmp1=="W", + waiting=parse(tmp2); + options=remove(options,[#]); + ); +// if(tmp1=="O", // 16.08.20 +// tmp=Toupper(substring(tmp2,0,1)); +// if(tmp=="T" % tmp=="Y", outreg=1,outreg=0); +// options=remove(options,[#]); +// ); + ); + options=remove(options,reL); + wflg=0; + forall(strL, + tmp=Toupper(substring(#,0,1)); + if(tmp=="M", + wflg=1; + options=remove(options,[#]); + ); + if(tmp=="R", + wflg=-1; + options=remove(options,[#]); + ); + ); + cmdL=MkprecommandS(5); // 16.02.01 + tmp=[ + Dq+fname+Dq, + Dq+name3+Dq,name3, + Dq+name2+Dq,name2, + Dq+name3h+Dq,name3h, + Dq+name2h+Dq,name2h, + Dq+"HIDDENDATA"+Dq,"HIDDENDATA", // 16.08.20from + Dq+"PARTITIONPT"+Dq,"PARTITIONPT", + Dq+"OTHERPARTITION"+Dq,"OTHERPARTITION" // 16.08.20upto + ]; + fd=apply(fd,replace(#,"_1","(1)")); // 16.05.25from + fd=apply(fd,replace(#,"_2","(2)")); + fd=apply(fd,replace(#,"_3","(3)")); // 16.05.25upto + cmdL=concat(cmdL,[ + name3+"=Sfbdparadata",concat([fd,"Error"],reL), + name2+"=Projpara",[name3], + name3h+"=BorderHiddenData()",[], + name2h+"=Projpara",[name3h], + "function Ot=Hiddend(),global HIDDENDATA,Ot=HIDDENDATA,endfunction)" + ,[], // 16.08.20from + "function Ot=Otherp(),global OTHERPARTITION,Ot=OTHERPARTITION,endfunction)" + ,[], + "HIDDENDATA=Hiddend()",[], + "PARTITIONPT=PartitionPt()",[], + "OTHERPARTITION=Otherp()",[], + "for J=1:length(OTHERPARTITION)",[], + " Tmp1=OTHERPARTITION(J)",[], + " Tmp2=[]",[], + " for K=1:length(Tmp1)",[], + " Tmp2=[Tmp2;Tmp1(K),1000]",[], + " end",[], + " OTHERPARTITION(J)=Tmp2",[], + "end",[], + "WriteOutData",tmp + ]); + options=append(options,"Wait="+text(waiting)); + if(wflg==1,options=concat(options,["m"])); // 16.08.20 + if(wflg==-1,options=concat(options,["r"])); + if(ErrFlag==0, + CalcbyS("sfbd"+nm,cmdL,options); + ); + if(ErrFlag==1, + err("Sfbdparadata not completed"); + , + if(outreg==1, + OutFileList=remove(OutFileList,[fname]); + OutFileList=append(OutFileList,fname); + ); + ReadOutData(fname); + if(islist(parse(name2)), + Extractdata(name2,options); + if(length(optionsh)>0,tmp=optionsh,tmp=["nodisp"]); + Extractdata(name2h,tmp); + , + ErrFlag=1; + ); + ); +); + +Wireparadata(nm,out,wr1,wr2,fd):= + Wireparadata(nm,out,fd,wr1,wr2,[],["nodisp"]); +Wireparadata(nm,out,fd,wr1,wr2,options):= + Wireparadata(nm,out,fd,wr1,wr2,options,["nodisp"]); +Wireparadata(nm,outstr,fdorg,wr1,wr2,optionorg,optionsh):=( +//help:Wireparadata("1","sfbd3d1",fd,5,5); +//help:Wireparadata(options2=["Wait=40"]); + regional(out,fd,options,name2,name3,name2h,name3h,outreg, + eqL,reL,strL,fname,outfname,waiting,tmp,tmp1,tmp2,flg,wflg); + name2="wire2d"+nm; + name3="wiref3d"+nm; + name2h="wireh2d"+nm; + name3h="wireh3d"+nm; + fname=Fhead+"wire"+nm+".txt"; + tmp=replace(outstr,"3d",""); + outfname=Fhead+tmp+".txt"; // 16.08.20 + out=parse(outstr); + if(!islist(out), ErrFlag=1); + fd=apply(fdorg,if(isstring(#),"'"+#+"'",#)); + options=optionorg; + tmp=Divoptions(options); + eqL=tmp_5; + reL=tmp_6; + strL=tmp_7; + waiting=40; + outreg=0; + forall(eqL, + tmp=indexof(#,"="); + tmp1=Toupper(substring(#,0,1)); + tmp2=substring(#,tmp,length(#)); + if(tmp1=="W", + waiting=parse(tmp2); + options=remove(options,[#]); + ); +// if(tmp1=="O", // 16.08.20from +// tmp=Toupper(substring(tmp2,0,1)); +// if(tmp=="T" % tmp=="Y", outreg=1,outreg=0); +// options=remove(options,[#]); +// );// 16.08.20upto + ); + options=remove(options,reL); + wflg=0; + forall(strL, + tmp=Toupper(substring(#,0,1)); + if(tmp=="M", + wflg=1; + options=remove(options,[#]); + ); + if(tmp=="R", + wflg=-1; + options=remove(options,[#]); + ); + ); + flg=0; + tmp1=floor(5*1000/WaitUnit); + repeat(tmp1, + if(flg==0, + tmp=load(Fhead+replace(outstr,"3d","")+".txt"); + if(length(tmp)>=4, + tmp2=substring(tmp,length(tmp)-4,length(tmp)); + if(tmp2=="////", + flg=1; + ); + , + wait(WaitUnit); + ); + ); + ); + if(flg==0, + Err(outstr+" file not copleted"); + ErrFlag=1; + ); + if(ErrFlag==0, +// Writeoutdata(outfname,["Out",out]); + ); + cmdL=MkprecommandS(5); // 16.02.01 + tmp=[ + Dq+fname+Dq, + Dq+name3+Dq,name3, + Dq+name2+Dq,name2, + Dq+name3h+Dq,name3h, + Dq+name2h+Dq,name2h + ]; + fd=apply(fd,if(isstring(#),replace(#,"_1","(1)"),#)); // 16.05.25 08.17from + fd=apply(fd,if(isstring(#),replace(#,"_2","(2)"),#)); + fd=apply(fd,if(isstring(#),replace(#,"_3","(3)"),#)); // 16.05.25 08.17upto + cmdL=concat(cmdL,[ + "disp('Running Wireparadata')",[], + "tmp=ReadOutData",[Dq+outfname+Dq], + "execstr(tmp)",[], + "function SetHidd(Dt),global HIDDENDATA,HIDDENDATA=Dt,endfunction)", + [], // 16.08.20from + "function SetPart(Dt),global PARTITIONPT,PARTITIONPT=Dt,endfunction)", + [], + "function SetOther(Dt),global OTHERPARTITION,OTHERPARTITION=Dt,endfunction)", + [], + "if type(HIDDENDATA)~=15,HIDDENDATA=list(HIDDENDATA),end",[], + "if type(PARTITIONPT)~=15,PARTITIONPT=list(PARTITIONPT),end",[], + "if type(OTHERPARTITION)~=15,OTHERPARTITION=list(OTHERPARTITION),end",[], + "for J=1:length(OTHERPARTITION)",[], + " Tmp=OTHERPARTITION(J)",[], + " OTHERPARTITION(J)=Tmp(:,1)",[], + "end",[], + "SetHidd(HIDDENDATA)",[], + "SetPart(PARTITIONPT)",[], + "SetOther(OTHERPARTITION)",[], + "if type("+outstr+")~=15,"+outstr+"=list("+outstr+"),end",[], // 16.08.20upto + name3+"=Wireparadata",concat([outstr,fd,wr1,wr2,"Error"],reL), + name2+"=Projpara",[name3], + name3h+"=WireHiddenData()",[], + name2h+"=Projpara",[name3h], + "WriteOutData",tmp + ]); + options=append(options,"Wait="+text(waiting)); + if(wflg==1,options=concat(options,["m"])); + if(wflg==-1,options=concat(options,["r"])); + if(ErrFlag==0, + CalcbyS("wire"+nm,cmdL,options); + ); + if(ErrFlag==1, + err("Wireparadata not completed"); + , + if(outreg==1, +// OutFileList=remove(OutFileList,[fname]); +// OutFileList=append(OutFileList,fname); + ); + ReadOutData(fname); + if(!islist(parse(name2)), ErrFlag=1); + if(ErrFlag==0, + Extractdata(name2,options); + if(length(optionsh)>0,tmp=optionsh,tmp=["nodisp"]); + Extractdata(name2h,tmp); + ); + ); +); + +Crvsfparadata(nm,gd,out,fd):= + Crvsfparadata(nm,gd,out,fd,[],["nodisp"]); +Crvsfparadata(nm,gd,out,fd,options):= + Crvsfparadata(nm,gd,out,fd,options,["nodisp"]); +Crvsfparadata(nm,gdstr,outstr,fdorg,optionorg,optionsh):=( +//help:Crvsfparadata("1","ax3d","sfbd3d1",fd); +//help:Crvsfparadata(options2=["Wait=20"]); + regional(gd,out,fd,options,name2,name3,name2h,name3h,outreg, + eqL,reL,strL,fname,gdfname,outfname,waiting,tmp,tmp1,tmp2,flg,wflg); + name2="crvsf2d"+nm; + name3="crvsf3d"+nm; + name2h="crvsfh2d"+nm; + name3h="crvsfh3d"+nm; + fname=Fhead+"crvsf"+nm+".txt"; + gdfname=Fhead+"crv"+nm+".txt"; + tmp=replace(outstr,"3d",""); + outfname=Fhead+tmp+".txt"; // 16.08.20 + gd=parse(gdstr); + out=parse(outstr); + if(!islist(out), ErrFlag=1); + fd=apply(fdorg,if(isstring(#),"'"+#+"'",#)); + options=optionorg; + tmp=Divoptions(options); + eqL=tmp_5; + reL=tmp_6; + strL=tmp_7; + waiting=20; + outreg=1; + forall(eqL, + tmp=indexof(#,"="); + tmp1=Toupper(substring(#,0,1)); + tmp2=substring(#,tmp,length(#)); + if(tmp1=="W", + waiting=parse(tmp2); + options=remove(options,[#]); + ); +// if(tmp1=="O", +// tmp=Toupper(substring(tmp2,0,1)); +// if(tmp=="T" % tmp=="Y", outreg=1,outreg=0); +// options=remove(options,[#]); +// ); + ); + options=remove(options,reL); + wflg=0; + forall(strL, + tmp=Toupper(substring(#,0,1)); + if(tmp=="M", + wflg=1; + options=remove(options,[#]); + ); + if(tmp=="R", + wflg=-1; + options=remove(options,[#]); + ); + ); + flg=0; + tmp1=floor(5*1000/WaitUnit); + repeat(tmp1, + if(flg==0, + tmp=load(Fhead+replace(outstr,"3d","")+".txt"); + if(length(tmp)>=4, + tmp2=substring(tmp,length(tmp)-4,length(tmp)); + if(tmp2=="////", + flg=1; + ); + , + wait(WaitUnit); + ); + ); + ); + if(flg==0, + Err(outstr+" file not copleted"); + ErrFlag=1; + ); + if(wflg==0, + tmp=load(fname); + if(length(tmp)==0,wflg=1); + ); + if(ErrFlag==0, +// Writeoutdata(outfname,["Gc",gd,"Out",out]); +// wait(WaitUnit); + ); + cmdL=MkprecommandS(5); // 16.02.01 + tmp=[ + Dq+fname+Dq, + Dq+name3+Dq,name3, + Dq+name2+Dq,name2, + Dq+name3h+Dq,name3h, + Dq+name2h+Dq,name2h + ]; + fd=apply(fd,if(isstring(#),replace(#,"_1","(1)"),#)); // 16.05.25 08.17from + fd=apply(fd,if(isstring(#),replace(#,"_2","(2)"),#)); + fd=apply(fd,if(isstring(#),replace(#,"_3","(3)"),#)); // 16.05.25 08.17upto + cmdL=concat(cmdL,[ + "disp('Running Crvsfparadata')",[], + "tmp=ReadOutData",[Dq+outfname+Dq], + "execstr(tmp)",[], + "function SetHidd(Dt),global HIDDENDATA,HIDDENDATA=Dt,endfunction)", + [], // 16.08.20from + "function SetPart(Dt),global PARTITIONPT,PARTITIONPT=Dt,endfunction)", + [], + "function SetOther(Dt),global OTHERPARTITION,OTHERPARTITION=Dt,endfunction)", + [], + "if type(HIDDENDATA)~=15,HIDDENDATA=list(HIDDENDATA),end",[], + "if type(PARTITIONPT)~=15,PARTITIONPT=list(PARTITIONPT),end",[], + "if type(OTHERPARTITION)~=15,OTHERPARTITION=list(OTHERPARTITION),end",[], + "for J=1:length(OTHERPARTITION)",[], + " Tmp=OTHERPARTITION(J)",[], + " OTHERPARTITION(J)=Tmp(:,1)",[], + "end",[], + "SetHidd(HIDDENDATA)",[], + "SetPart(PARTITIONPT)",[], + "SetOther(OTHERPARTITION)",[], + "if type("+outstr+")~=15,"+outstr+"=list("+outstr+"),end",[], // 16.08.20upto + name3+"=Crvsfparadata",concat([gdstr,outstr,fd,"Error"],reL), + name2+"=Projpara",[name3], + name3h+"=CrvsfHiddenData()",[], + name2h+"=Projpara",[name3h], + "WriteOutData",tmp + ]); + options=append(options,"Wait="+text(waiting)); + if(wflg==1,options=concat(options,["m"])); + if(wflg==-1,options=concat(options,["r"])); + if(ErrFlag==0, + CalcbyS("crvsf"+nm,cmdL,options); + ); + if(ErrFlag==1, + err("Crvsfparadata not completed"); + , + if(outreg==1, + OutFileList=remove(OutFileList,[fname]); + OutFileList=append(OutFileList,fname); + ); + ReadOutData(fname); + tmp=replace(gdstr,"3d","2d"); + Changestyle([tmp],["nodisp"]); + Extractdata(name2,options); + if(length(optionsh)>0,tmp=optionsh,tmp=["nodisp"]); + Extractdata(name2h,tmp); + ); +); + +Intersectcrvsf(nm,gd,fd):= + Intersectcrvsf(nm,gd,fd,[]); +Intersectcrvsf(nm,gdstr,fdorg,optionorg):=( +//help:Intersectcrvsf("1",ax3d_1,fd); +//help:Intersectcrvsf(options=["Wait=10",50,0.05]); + regional(name,gd,fd,options,reL,fname,gdfname, + waiting,tmp,tmp1,tmp2,flg,wflg,pts); + name="intpts"+nm; + fname=Fhead+name+".txt"; + gdfname=Fhead+"crv"+nm+".txt"; + gd=parse(gdstr); + fd=apply(fdorg,if(isstring(#),"'"+#+"'",#)); + options=optionorg; + tmp=Divoptions(options); + eqL=tmp_5; + reL=tmp_6; + strL=tmp_7; + waiting=10; + forall(eqL, + tmp=indexof(#,"="); + tmp1=Toupper(substring(#,0,1)); + tmp2=substring(#,tmp,length(#)); + if(tmp1=="W", + waiting=parse(tmp2); + options=remove(options,[#]); + ); + ); + options=remove(options,reL); + wflg=0; + forall(strL, + tmp=Toupper(substring(#,0,1)); + if(tmp=="M", + wflg=1; + options=remove(options,[#]); + ); + if(tmp=="R", + wflg=-1; + options=remove(options,[#]); + ); + ); + if(wflg>-1, + Writeoutdata(gdfname,["Gd",gd]); +// wait(WaitUnit); + ); + fd=apply(fd,replace(#,"_1","(1)")); // 16.05.25from + fd=apply(fd,replace(#,"_2","(2)")); + fd=apply(fd,replace(#,"_3","(3)")); // 16.05.25upto + cmdL=[ + "disp('Finding Intersectcrvsf')",[], + "Setangle",[THETA,PHI]*180/pi, + "tmp=ReadOutData",[Dq+gdfname+Dq], + "execstr(tmp)",[], + "Intpts=Intersectcrvsf",concat(["Gd",fd,"Error"],reL), + "tmp1='['",[], + "for J=1:length(Intpts)",[], + " tmp2=Intpts(J)",[], + " for K=1:length(tmp2)",[], + " if K==1",[], + " tmp1=tmp1+'['",[], + " end",[], + " tmp1=tmp1+string(tmp2(K))",[], + " if K<length(tmp2)",[], + " tmp1=tmp1+','",[], + " else",[], + " tmp1=tmp1+']'",[], + " end",[], + " end",[], + " if J<length(Intpts)",[], + " tmp1=tmp1+','",[], + " else",[], + " tmp1=tmp1+']||||'",[], //16.08.09 + " end",[], + "end",[], + "fid=mopen('"+fname+"','w')",[], + " mputl(tmp1,fid)",[], + "mclose(fid)",[] + ]; + options=append(options,"Wait="+text(waiting)); + if(wflg==1,options=concat(options,["m"])); + if(wflg==-1,options=concat(options,["r"])); + if(ErrFlag==0, + CalcbyS(name,cmdL,options); // 16.08.14 + ); + if(ErrFlag==1, + err("Intersectcrvsf not completed"); + , + println(name+" obtained"); //16.08.14from + pts=load(fname); + pts=replace(pts,"||||",""); + tmp=name+"="+pts; + parse(tmp); + parse(pts); //16.08.14upto + ); +); + +Skeletonparadata2(nm):=Skeletonparadata2(nm,[]); +Skeletonparadata2(nm,options):=( + regional(tmp,tmp2,tmp3); + // tmp=apply(GCLIST,#_1); + // tmp=select(tmp,indexo(#,"2d")>0); + // tmp2=select(tmp,indexof(#,"sub")==0); + tmp3=Datalist3d(); + Changestyle3d(tmp3,["nodisp"]); // 15.06.02, 07.22 + // tmp3=apply(tmp2,replace(#,"2d","3d")); + Skeletonparadata2(nm,"",tmp3,tmp3,options); +); +Skeletonparadata2(nm,Arg1,Arg2):=( + regional(nme,pltdata1,pltdata2,options); + if(isstring(Arg1) & islist(Arg2), + nme=Arg1; +// pltdata1=parse("phe3d"+nme); + pltdata1="phe3d"+nme; + pltdata2=pltdata1; + options=Arg2; + , + nme=""; + pltdata1=Arg1; + pltdata2=Arg2; + options=[]; + ); + Skeletonparadata2(nm,nme,pltdata1,pltdata2,options); +); +Skeletonparadata2(nm,Arg1,Arg2,Arg3):=( + regional(nme,pltdata1,pltdata2,options); + if(!isstring(Arg1), + nme=""; + pltdata1=Arg1; + pltdata2=Arg2; + options=Arg3; + , + if(isstring(Arg2) & !isstring(Arg3), + nme=""; + pltdata1=Arg1; + pltdata2=Arg2; + options=Arg3; + , + nme=Arg1; + pltdata1=Arg2; + pltdata2=Arg3; + options=[]; + ); + ); + Skeletonparadata2(nm,nme,pltdata1,pltdata2,options); // 15.07.09 +); +Skeletonparadata2(nm,nme,pltdata1,pltdata2,options):=( + regional(name2,name3,count,Ltype,Noflg,PdL,tmp,tmp1,tmp2, + opstr,opcindy,Str,Outflg,Inflg,realL,pdata1,pdata2,level); + name2="sk2d"+nm; + name3="sk3d"+nm; + tmp=Divoptions(options); + Ltype=tmp_1; + Noflg=tmp_2; + Inflg=tmp_3; + Outflg=tmp_4; + if(Inflg==0 & Outflg==0, Inflg=1;Outflg=1); // 15.05.15 + realL=tmp_6; + opstr=tmp_(length(tmp)-1); + opcindy=tmp_(length(tmp)); + if(Noflg<3, + if(Outflg>=1, + println("Output Skeletonparadata2 "+name3); + if(isstring(pltdata1), // 15.05.27 from + tmp1=pltdata1; + , + tmp1=""; + forall(pltdata1, + tmp1=tmp1+#+","; + ); + tmp1="list("+substring(tmp1,0,length(tmp1)-1)+")"; + ); + if(isstring(pltdata2), + tmp2=pltdata2; + , + tmp2=""; + forall(pltdata2, + tmp2=tmp2+#+","; + ); + tmp2="list("+substring(tmp2,0,length(tmp2)-1)+")"; + ); + Str="Skeletonpara3data("+tmp1+","+tmp2+opstr+")"; // 15.05.27 upto + GLIST=append(GLIST,name3+"="+Str); + tmp=name2+"=Projpara("+name3+")"; + GLIST=append(GLIST,tmp); + if(Outflg==1, + SCIWRLIST=append(SCIWRLIST,name3); + SCIWRLIST=append(SCIWRLIST,name2); + ); + ); + if(Inflg==1, + if(length(SCIRELIST)==0, + ReadOutData(Fnameout); + ); + tmp=parse(name2); + if(islist(tmp), + Extractdata(name2,["nodisp"]); // 12.19 + ); + SCIRELIST=append(SCIRELIST,name3); + SCIRELIST=append(SCIRELIST,name2); + ); + ); + if(Noflg<2, + if(isstring(Ltype), + Ltype=GetLinestyle(text(Noflg)+Ltype,name2); + , + if(Noflg==1,Ltype=0); + ); + if(Inflg==1, +// tmp=apply(pltdata1,replace(#,"3d","2d")); // 15.05.18 from + if(nme!="", // 15.05.27 + Changestyle3d("phe3d"+nme,["nodisp"]); + , + forall(pltdata1, // 15.07.16 + tmp=replace(#,"3d","2d"); + if(contains(GCLIST,tmp), + Changestyle3d(#,["nodisp"]); + ); + ); + ); + GCLIST=append(GCLIST,[name2,Ltype,opcindy]); + ); + ); +); + +Skeletonparadata(nm):=Skeletonparadata(nm,[]); +Skeletonparadata(nm,options):=( + regional(tmp,tmp2,tmp3); + tmp3=Datalist3d(); + Skeletonparadata(nm,"",tmp3,tmp3,options); +// Changestyle3d(tmp3,["nodisp"]); // 15.06.02, 07.22 +); +Skeletonparadata(nm,Arg1,Arg2):=( +//help:Skeletonparadata("1"); +//help:Skeletonparadata("1",[pdata1,pdata2],[pdata3]); +//help:Skeletonparadata(options2=[width(1), "Wait=20]); + regional(nme,pltdata1,pltdata2,options); + if(isstring(Arg1) & islist(Arg2), + nme=Arg1; +// pltdata1=parse("phe3d"+nme); + pltdata1="phe3d"+nme; + pltdata2=pltdata1; + options=Arg2; + , + nme=""; + pltdata1=Arg1; + pltdata2=Arg2; + options=[]; + ); + Skeletonparadata(nm,nme,pltdata1,pltdata2,options); +); +Skeletonparadata(nm,Arg1,Arg2,Arg3):=( + regional(nme,pltdata1,pltdata2,options); + if(!isstring(Arg1), + nme=""; + pltdata1=Arg1; + pltdata2=Arg2; + options=Arg3; + , + if(isstring(Arg2) & !isstring(Arg3), + nme=""; + pltdata1=Arg1; + pltdata2=Arg2; + options=Arg3; + , + nme=Arg1; + pltdata1=Arg2; + pltdata2=Arg3; + options=[]; + ); + ); + Skeletonparadata(nm,nme,pltdata1,pltdata2,options); // 15.07.09 +); +Skeletonparadata(nm,nme,pltdata1org,pltdata2org,optionorg):=( + regional(name2,name3,eqL,strL,options,fname,outreg,waiting, + reL, pltdata1,pltdata2,wflg,opcindy,width,pdata, + tmp,tmp1,tmp2); + name2="sk2d"+nm; + name3="sk3d"+nm; + fname=Fhead+"sk"+nm+".txt"; + pltdata1=[];// 16.01.31 + forall(pltdata1org,tmp1, + tmp=parse(tmp1); + if(isstring(tmp_1), + pltdata1=concat(pltdata1,tmp); + , + pltdata1=append(pltdata1,tmp1); + ); + ); + pltdata2=[];// 16.01.31 + forall(pltdata2org,tmp1, + tmp=parse(tmp1); + if(isstring(tmp_1), + pltdata2=concat(pltdata2,tmp); + , + pltdata2=append(pltdata2,tmp1); + ); + ); + options=optionorg; + tmp=Divoptions(options); + eqL=tmp_5; + reL=tmp_6; //16.02.28 + strL=tmp_7; + opcindy=tmp_9; + waiting=20; + outreg=0; + forall(eqL, + tmp=indexof(#,"="); + tmp1=Toupper(substring(#,0,1)); + tmp2=substring(#,tmp,length(#)); + if(tmp1=="W", + waiting=parse(tmp2); + options=remove(options,[#]); + ); + if(tmp1=="O", + tmp=Toupper(substring(tmp2,0,1)); + if(tmp=="T" % tmp=="Y", outreg=1,outreg=0); + options=remove(options,[#]); + ); + ); + wflg=0; + forall(strL, + tmp=Toupper(substring(#,0,1)); + if(tmp=="M", + wflg=1; + options=remove(options,[#]); + ); + if(tmp=="R", + wflg=-1; + options=remove(options,[#]); + ); + ); + width=1; + if(length(reL)>0, //16.02.28 + width=reL_1; + ); + forall(pltdata1,pdata, + tmp=select(GLIST,indexof(#,pdata+"=")>0); + if(tmp==0, + Defvar(pdata,parse(pdata)); + ); + ); + forall(pltdata2,pdata, + tmp=select(GLIST,indexof(#,pdata+"=")>0); + if(tmp==0, + tmp=select(VLIST,#_1==pdata+"="); + if(tmp==0, + Defvar(pdata,parse(pdata)); + ); + ); + ); + cmdL=MkprecommandS(4); + tmp2=[ + Dq+fname+Dq, + Dq+name3+Dq,name3, + Dq+name2+Dq,name2 + ]; + cmdL=concat(cmdL,[ + "Setangle",[THETA,PHI]*180/pi, + name3+"=Skeletonpara3data",[pltdata1,pltdata2,width,"Error"], + name2+"=Projpara",[name3], + "WriteOutData",tmp2 + ]); + options=append(options,"Wait="+text(waiting)); + if(wflg==1,options=concat(options,["m"])); + if(wflg==-1,options=concat(options,["r"])); + if(ErrFlag==0, + CalcbyS("sk"+nm,cmdL,options); + ); + if(ErrFlag==1, + err("Skeletonparadata not completed"); + , + if(outreg==1, + OutFileList=remove(OutFileList,[fname]); + OutFileList=append(OutFileList,fname); + ); + ReadOutData(fname); + if(islist(parse(name2)), + Extractdata(name2,options); +// if(isstring(pltdata1_1), // 16.01.31 + tmp=apply(pltdata1,replace(#,"3d","2d")); +// , +// tmp=replace(pltdata1org,"3d","2d"); +// ); + Changestyle(tmp,["nodisp"]); +// Changestyle3d(pltdata1,["nodisp"]); + , + ErrFlag=1; + ); + ); +); + +Skeletondatacindy(nm):=Skeletondatacindy(nm,[]); +Skeletondatacindy(nm,options):=( + regional(tmp); + tmp=Datalist3d(); + Skeletondatacindy(nm,tmp,tmp,options); +); +Skeletondatacindy(nm,pltdata1,pltdata2):= + Skeletondatacindy(nm,pltdata1,pltdata2,[]); +Skeletondatacindy(nm,pltdata1org,pltdata2org,options):=( +//help:Skeletondatacindy("1"); +//help:Skeletondatacindy("1",[pdata1,pdata2],[pdata3]); +//help:Skeletondatacindy(options2=[1(width)]); + regional(Eps,Eps2,name2,name3,Ltype,Noflg,reL,opcindy, + Out,ObjL,Plt3L,Rr,pltdata1,pltdata2,Plt2L,ObjL,ii,Data, + Obj3,jj,Gd,PtD,size,tmp,tmp1,tmp2); + name2="sk2d"+nm; + name3="sk3d"+nm; + pltdata1=[];// 16.01.31 + forall(pltdata1org,tmp1, + tmp=parse(tmp1); + pltdata1=append(pltdata1,tmp); + ); + pltdata2=[];// 16.01.31 + forall(pltdata2org,tmp1, + tmp=parse(tmp1); + pltdata2=append(pltdata2,tmp); + ); + tmp=Divoptions(options); + Ltype=tmp_1; + Noflg=tmp_2; + reL=tmp_6; //16.02.28 + opcindy=tmp_9; + Rr=0.075*1000/2.54/MilliIn; + size=1; + Eps2=0.05; + if(length(reL)>0, //16.02.28 + size=reL_1; + Rr=size*Rr; + if(length(reL)>1,Eps2=reL_2); + ); + Eps=10^(-4); + ObjL=Flattenlist(pltdata1); + Plt3L=Flattenlist(pltdata2); + tmp=apply(Plt3L,ProjcoordCurve(#)); + Plt2L=Flattenlist(tmp); +/////////// tmp=apply(pltdata1,replace(#,"3d","2d")); + Out=[]; + forall(1..(length(ObjL)),ii, + Obj3=ObjL_ii; + tmp=ProjcoordCurve(Obj3); + Data=Makeskeletondata([tmp],Plt2L,Rr,Eps2); + forall(1..(length(Data)),jj, + Gd=Data_jj; + if((length(Gd)>1) + & (norm(Ptcrv(1,Gd)-Ptcrv(2,Gd))>Eps), + PtD=[]; + forall(1..(length(Gd)), + tmp=Gd_#; + tmp1=Invparapt(tmp,Obj3); + PtD=append(PtD,tmp1); + ); + Out=append(Out,PtD); + ); + ); + ); + Out=select(Out,length(Projcurve(#))>0); // 16.12.19 + tmp1=apply(Out,textformat(#,5)); + tmp=name3+"="+tmp1; + parse(tmp); + tmp=name2+"=Projcurve("+tmp1+");"; + parse(tmp); + Changestyle3d(pltdata1org,["nodisp"]); + if(Noflg<3, + println("generate skeleton :"+name3); + tmp1=text(pltdata1org); + tmp1="list("+substring(tmp1,1,length(tmp1)-1)+")"; + tmp2=text(pltdata2org); + tmp2="list("+substring(tmp2,1,length(tmp2)-1)+")"; + tmp=name3+"=Skeletonpara3data("+tmp1+","+tmp2+","; + tmp=tmp+text(size)+")"; + GLIST=append(GLIST,tmp); + tmp=name2+"=Projpara("+name3+")"; + GLIST=append(GLIST,tmp); + ); + if(Noflg<2, + if(isstring(Ltype), + Ltype=GetLinestyle(text(Noflg)+Ltype,name2); + , + if(Noflg==1,Ltype=0); + ); + GCLIST=append(GCLIST,[name2,Ltype,opcindy]); + if(SUBSCR==1, + Subgraph(name3,opcindy); + ); + ); + Out; +); + +Makeskeletondata(Obj2L,Plt2L,R0,Eps2):=( + regional(Allres,Eps,Dmat,Dind,ii,Dt,nn1,nn2,Nind,Nobj, + Plt2,PhL,ClipL,ns,pt1,pt2,pt,pta,ptb,za,zb,z1,z2,t1,t2,te, + koc,KukanL,nn,tt,Rr,Flg,ii,jj,ptq,hh,Ku,Res,contflg,breakflg); + Eps=10.0^(-4); + Dmat=[]; + Dind=[]; + forall(1..(length(Plt2L)),ii, + Dt=Plt2L_ii; + nn1=length(Dmat)+1; + Dmat=concat(Dmat,Dt); + nn2=length(Dmat); + Dind=append(Dind,[nn1,nn2]); + ); + Nind=length(Dind); + Allres=[]; + forall(1..(length(Obj2L)),Nobj, + Plt2=Obj2L_Nobj; + PhL=Columnlist(Plt2,1..2); + ClipL=[]; + forall(1..(length(PhL)-1),ns, + pt1=PhL_(ns..(ns+1)); + forall(1..(length(Dind)),ii, + tmp=Dind_ii; + tmp=Dmat_(Dind_ii_1..Dind_ii_2); + pt2=Columnlist(tmp,1..2); + koc=IntersectcrvsPp(pt1,pt2,[Eps]); + if(length(koc)>0, + breakflg=0; + forall(1..(length(koc)),jj, + contflg=0; + if(breakflg==0, + pt=Op(1,Op(jj,koc)); + tmp=Op(2,Op(jj,koc)); + if((tmp<1+Eps) & (ns==1), + contflg=1; + ); + if(contflg==0, + if((tmp>length(pt1)-Eps) + & (ns==length(PhL)-1), + contflg=1; + ); + ); + if(contflg==0, + nn1=ns; + nn2=Op(3,Op(jj,koc)); + tmp=Plt2_nn1; + pta=tmp_(1..2); + za=tmp_3; + tmp=Plt2_(nn1+1); + ptb=tmp_(1..2); + zb=tmp_3; + if(norm(pta-ptb)<Eps, + contflg=1; + ); + ); + if(contflg==0, + t1=norm(pta-pt)/norm(pta-ptb); + z1=(1-t1)*za+t1*zb; + tmp=Dmat_(Dind_ii_1..Dind_ii_2); + tmp1=tmp_nn2; + pta=tmp1_(1..2); + za=tmp1_3; + tmp2=tmp_(nn2+1); + ptb=tmp2_(1..2); + zb=tmp2_3; + if(norm(pta-ptb)<Eps, + contflg=1; + ); + ); + if(contflg==0, + t2=norm(pta-pt)/norm(pta-ptb); + z2=(1-t2)*za+t2*zb; + if(z1<z2-Eps2, + if(length(ClipL)==0, + tmp=1; + , + tmp1=column(ClipL,1); + tmp1=apply(tmp1,#-pt_1); + tmp2=column(ClipL,2); + tmp2=apply(tmp2,#-pt_2); + tmp3=apply(tmp1,#^2)+apply(tmp2,#^2); + tmp=min(tmp3); + ); + if(tmp>Eps^2, + tmp1=pt1_2-pt1_1; + tmp2=ptb-pta; + tmp3=Dotprod(tmp1,tmp2); + tmp3=tmp3/norm(tmp1)/norm(tmp2); + tmp=1-0.5*tmp3^2; + tmp1=concat(pt,[nn1,t1,R0/tmp]); + ClipL=append(ClipL,tmp1); + ); + ); + ); + ); + ); + ); + ); + ); + te=length(Plt2); + KukanL=[[1.0,te]]; + pt1=PhL; + if(length(ClipL)>0, + forall(1..(length(ClipL)),ii, + tmp=ClipL_ii; + pt=tmp_(1..2); + nn=tmp_3; + tt=nn+tmp_4; + Rr=tmp_5; + Flg=0; + breakflg=0; + forall(reverse(1..nn),jj, + contflg=0; + if(breakflg==0, + ptq=PointonCurve(jj,pt1); + if(norm(pt-ptq)<Rr, + contflg=1; + ); + if(contflg==0, + Flg=jj; + breakflg=1; + contflg=1; + ); + ); + ); + if(Flg==0, + t1=1; + , + t1=Flg; t2=tt; + hh=t2-t1; + forall(1..10, + hh=hh*0.5; + ptq=PointonCurve(t1+hh,pt1); + if(norm(pt-ptq)<Rr, + t2=t2-hh; + , + t1=t1+hh; + ); + ); + ); + Ku=[t1]; + Flg=0; + breakflg=0; + forall((nn+1)..te,jj, + contflg=0; + if(breakflg==0, + ptq=PointonCurve(jj,pt1); + if(norm(pt-ptq)<Rr, + contflg=1; + ); + if(contflg==0, + Flg=jj; + breakflg=1; + contflg=1; + ); + ); + ); + if(Flg==0, + t2=te; + , + t1=tt; t2=Flg; + hh=t2-t1; + forall(1..10, + hh=hh*0.5; + ptq=PointonCurve(t1+hh,pt1); + if(norm(pt-ptq)<Rr, + t1=t1+hh; + , + t2=t2-hh; + ); + ); + ); + Ku=append(Ku,t2); + KukanL=Kukannozoku(Ku,KukanL); + ); + ); + Res=[]; + forall(1..(length(KukanL)),ii, + tmp=KukanL_ii; + t1=tmp_1; nn1=floor(t1); + t2=tmp_2; nn2=floor(t2); + PtL=[]; + if(t1-nn1<1-Eps, + tmp=PointonCurve(t1,pt1); + PtL=[tmp]; + ); + forall((nn1+1)..nn2,jj, + tmp=PointonCurve(jj,pt1); + PtL=append(PtL,tmp); + ); + if(t2-nn2>Eps, + tmp=PointonCurve(t2,pt1); + PtL=append(PtL,tmp); + ); + tmp=Listplot("",PtL,["nodata"]); + Res=append(Res,tmp); + ); + Allres=concat(Allres,Res); + ); + Allres; +); + +Kukannozoku(Jokyo,KukanL):=( + regional(Res,Eps,nn,ii,t1,t2,Ku,Flg,contflg,tmp,tmp1); + Eps=10^(-6); + nn=length(KukanL); + t1=Jokyo_1; t2=Jokyo_2; + tmp=KukanL_1; + t1=max(t1,tmp_1); + tmp=KukanL_nn; + t2=min(t2,tmp_2); + Res=[]; + Flg=0; + contflg=0; + forall(1..nn,ii, + if(contflg==0, + Ku=KukanL_ii; + if(Flg==0, + if(Ku_2<t1, + Res=append(Res,Ku); + , + Flg=1; + if(Ku_1<t1-Eps, + tmp=[Ku_1,t1]; + Res=append(Res,tmp); + ); + if(Ku_2>t2+Eps, + tmp=[t2,Ku_2]; + Res=append(Res,tmp); + ); + ); + , + if(Flg==1, + if(Ku_2<t2, + contflg=1; + , + if(contflg==0, + Flg=2; + if(Ku_1<t2-Eps, + Ku=[t2,Ku_2]; + ); + Res=append(Res,Ku); + ); + ); + , + if(contflg==0, + Res=append(Res,Ku); + ); + ); + ); + ); + ); + Res; +); + +ProjcoordCurve(Curve):=( + regional(SP,CP,ST,CT,Out,jj,pt,x,y,z,xz,yz,zz); + SP=sin(PHI); CP=cos(PHI); + ST=sin(THETA); CT=cos(THETA); + Out=[]; + forall(1..(length(Curve)),jj, + pt=Curve_jj; + x=pt_1; y=pt_2; z=pt_3; + xz=-x*SP+y*CP; + yz=-x*CP*CT-y*SP*CT+z*ST; + zz=x*CP*ST+y*SP*ST+z*CT; + Out=append(Out,[xz,yz,zz]); + ); + Out; +); + +Divnohidhid(nm,dt3dorg,nvec):=Divnohidhid(nm,dt3dorg,nvec,[],["do"]); +Divnohidhid(nm,dt3dorg,nvec,optionorg,options2):=( +//help:Divnohidhid("1","sc3d1",nvec,["Num=100"],["Num=100","do"]); + regional(name,dt3d,options,pvec,disp,nohid,hid,flg,tmp,tmp1,eqL); + name="nh"+nm; + options=optionorg; + tmp=Divoptions(options); + eqL=tmp_5; + disp="Y"; + forall(eqL, + tmp=Toupper(substring(#,0,1)); + if(tmp=="D", + tmp=indexof(#,"="); + disp=Toupper(substring(#,tmp,tmp+1)); + options=remove(options,[#]); + ); + ); + if(isstring(dt3dorg),dt3d=parse(dt3dorg),dt3d=dt3dorg); + pvec=[sin(THETA)*cos(PHI),sin(THETA)*sin(PHI),cos(THETA)]; + nohid=[]; + hid=[]; + flg=0; + forall(1..(length(dt3d)-1), + p1=dt3d_#; + p2=dt3d_(#+1); + tmp=assign(nvec,["x",p1_1,"y",p1_2,"z",p1_3]); + tmp=parse(tmp); + if(Dotprod(tmp,pvec)>0, + if(flg==0 % flg==-1, + nohid=append(nohid,[p1,p2]); + flg=1; + ); + if(flg==1, + nohid_(length(nohid))=append(nohid_(length(nohid)),p2); + ); + , + if(flg==0 % flg==1, + hid=append(hid,[p1,p2]); + flg=-1; + ); + if(flg==-1, + hid_(length(hid))=append(hid_(length(hid)),p2); + ); + ); + ); + if(disp=="Y", + Changestyle3d([dt3dorg],["nodisp"]); + forall(1..length(nohid), + Spaceline(name+"nh"+text(#),nohid_#,options); + ); + forall(1..length(hid), + Spaceline(name+"h"+text(#),hid_#,options2); + ); + ); + tmp1="["; + forall(nohid,tmp1=tmp1+textformat(#,5)+","); + tmp1=substring(tmp1,0,length(tmp1)-1)+"]"; + parse(name+"nh="+tmp1); + tmp1="["; + forall(hid,tmp1=tmp1+textformat(#,5)+","); + tmp1=substring(tmp1,0,length(tmp1)-1)+"]"; + parse(name+"h="+tmp1); + [nohid,hid]; +); + +Beziersurf(nm,m,n,pL):=( +//help:Beziersurf("pt",2,2,pL); + regional(p3dL,ptlistx,ptlilsty,ptlistz); + factorial(n):=( + regional(out); + out=1; + forall(1..n, + out=out*#; + ); + out; + ); + Deffun("Comb(n,r)",[ + "regional(y)", + "y=factorial(n)/(factorial(r)*factorial(n-r))", + "y" + ]); + Deffun("Bterm(u,v,m,n,i,j)",[ + "regional(y)", + "y=Comb(m,i)*u^i*(1-u)^(m-i)", + "y=y*Comb(n,j)*v^j*(1-v)^(n-j)", + "y" + ]); + Deffun("Ball(u,v,m,n,pL)",[ + "regional(y,ii,jj,tmp,tmp1)", + "y=0", + "forall(0..m,ii, + forall(0..n,jj, + tmp=(n+1)*ii+jj+1; + tmp1=Op(tmp,pL); + tmp1=tmp1*Bterm(u,v,m,n,ii,jj); + y=y+tmp1; + ) + )", + "y" + ]); + if(ispoint(pL_1), + p3dL=apply(pL,parse(text(#)+"3d")); + , + p3dL=apply(pL,parse(#+"3d")); + ); + ptlistx=apply(p3dL,#_1); + ptlisty=apply(p3dL,#_2); + ptlistz=apply(p3dL,#_3); + Defvar(nm+"x",ptlistx); + Defvar(nm+"y",ptlisty); + Defvar(nm+"z",ptlistz); + tmp=[ + "p", + "x=Ball(U,V,2,2,"+nm+"x)", + "y=Ball(U,V,2,2,"+nm+"y)", + "z=Ball(U,V,2,2,"+nm+"z)", + "U=[0,1]", + "V=[0,1]" + ]; + tmp; +); + +//help:end(); diff --git a/texmf-dist/scripts/ketpic/ketlib/ketcindylib3dhelpE.txt b/texmf-dist/scripts/ketpic/ketlib/ketcindylib3dhelpE.txt new file mode 100644 index 00000000..27b40955 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketcindylib3dhelpE.txt @@ -0,0 +1,29 @@ +//help:start(); +//help:Changstyle3d*(change the attribute of 3d plot data); +//help:Findangle*(specify the angles theta and phi); +//help:Cancoordpara*(specify the coordinate with respect to canonical coordinate); +//help:Projcoordpara*(specify the coordinate of projected image); +//help:Parapt*(the coordinate of the point in the projected plane); +//help:Spaceline*(generate the plot data of 3d segments); +//help:Spacecurve*(generate the plot data of 3d curve); +//help:Xyzax3data*(generate the plot data of coordinate axes); +//help:Datalist3d*(list of plot data of the all objects on the screen. Both 2d and 3d values are returned); +//help:Skeletonparadata*(generate the plot data of the objects with hidden line elimination); +//help:Embed*(generate the embedded plot data); +//help:Rotate3pt*(rotate the point); +//help:Rotate3data*(rotate 3d plot data); +//help:Translate3pt*(parallelly transport the point); +//help:Translate3data*(parallelly transport the plot data); +//help:Reflect3point*(reflect the point); +//help:Xyzcoord*(coordinate of a point determined with respect to main screen and sub screen); +//help:PutonCurve3d*(put a point on the 3d curve); +//help:Ptsegdata*(generate the 3d plot data of point and segment derived from those on 2d screen); +//help:Putpoint3d*(put a specific point); +//help:Perppt*(the foot of the perpendicular on the plane); +//help:Perpplane*(a fiducial point of a plane with specific point on it and with specific normal vector); +//help:Drawpoint3d*(draw a specific point); +//help:Putaxes3d*(take a point with specific coordinates as geometric one); +//help:IntersectsgpL*(intersection between line and plane); +//help:Bezier3*(draw 3d Bezier curve); +//help:Mkbezierptcrv3*(draw 3d Bezier curve by automatically taking controll points); +//help:end(); diff --git a/texmf-dist/scripts/ketpic/ketlib/ketcindylib3dhelpJ.txt b/texmf-dist/scripts/ketpic/ketlib/ketcindylib3dhelpJ.txt new file mode 100644 index 00000000..bd29d25f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketcindylib3dhelpJ.txt @@ -0,0 +1,45 @@ +//help:start(); +//help:Changstyle3d*(3d繝励Ο繝繝医ョ繝シ繧ソ縺ョ螻樊ァ繧貞、画峩); +//help:Findangle*(theta,phi繧呈アゅa繧); +//help:Cancoordpara*(讓呎コ門コァ讓吶r豎ゅa繧); +//help:Projcoordpara*(謚募スア蠎ァ讓吶r豎ゅa繧); +//help:Parapt*(轤ケ縺ョ謚募スア髱「縺ァ縺ョ蠎ァ讓); +//help:Spaceline*(遨コ髢薙ョ謚倡キ壹ョ繝シ繧ソ菴懈); +//help:Spacecurve*(遨コ髢捺峇邱壹ョ繝繝シ繧ソ菴懈); +//help:Xyzax3data*(蠎ァ讓呵サク縺ョ繝繝シ繧ソ菴懈); +//help:Datalist3d*(逕サ髱「縺ォ謠上°繧後※縺繧九☆縺ケ縺ヲ縺ョ繝励Ο繝繝医ョ繝シ繧ソシ取綾繧雁、縺ッ3d,2d); +//help:Skeletonparadata*(繧ケ繧ア繝ォ繝医Φ蜃ヲ逅縺ョ繝繝シ繧ソ菴懈); +//help:Embed*(蝓九a霎シ縺ソ繝繝シ繧ソ菴懈); +//help:Rotatept3d*(遨コ髢鍋せ繧貞屓霆「); +//help:Rotatedata3d*(繝励Ο繝繝医ョ繝シ繧ソ繧貞屓霆「); +//help:Translatept3d*(遨コ髢鍋せ繧貞ケウ陦檎ァサ蜍); +//help:Translatedata3d*(遨コ髢薙励Ο繝繝医ョ繝シ繧ソ繧貞ケウ陦檎ァサ蜍); +//help:Reflectpoint3d*(轤ケ繧帝升譏); +//help:Xyzcoord*(荳サ蜑ッ逕サ髱「縺ァ豎コ縺セ繧狗せ縺ョ蠎ァ讓); +//help:PutonCurve3d*(遨コ髢捺峇邱壻ク翫↓轤ケ繧偵→繧); +//help:Ptsegdata*(逕サ髱「縺ォ縺ィ縺」縺溽せ縺ィ邱壼縺九i遨コ髢薙ョ轤ケ縺ィ邱壼繧剃ス懈); +//help:Putpoint3d*(遨コ髢鍋せ繧偵→繧); +//help:Perppt*(蟷ウ髱「縺ォ荳九m縺励◆蝙らキ壹ョ雜ウ); +//help:Perpplane*(轤ケ繧帝壹j蝙ら峩縺ェ蟷ウ髱「荳翫ョ蝓コ貅也せ); +//help:Drawpoint3d*(遨コ髢鍋せ繧呈緒縺); +//help:Putaxes3d*(蠎ァ讓咏せ繧貞ケセ菴慕せ縺ィ縺励※縺ィ繧); +//help:IntersectsgpL*(遨コ髢薙ョ逶エ邱壹→蟷ウ髱「縺ョ莠、轤ケ); +//help:Bezier3d*(遨コ髢薙吶ず繧ァ譖イ邱); +//help:Mkbezierptcrv3d*(蛻カ蠕。轤ケ繧定ェ蜍慕噪縺ォ縺ィ繧狗ゥコ髢薙吶ず繧ァ譖イ邱); +//help:Readobj*(obj繝輔ぃ繧、繝ォ繧定ェュ縺ソ霎シ繧シ弱が繝励す繝ァ繝ウ縺ッ荳贋ク句渚霆「シ育ャヲ蜿キシ峨→蛟咲紫); +//help:VertexandEdge*(鬆らせ縺ィ髱「縺九i霎コ繧呈アゅaシ瑚セコ繧呈緒縺); +//help:Phparadata*(螟夐擇菴薙r髯ー邱壼ヲ逅縺励※謠上¥ +//霑ス蜉繧ェ繝励す繝ァ繝ウ : "Hidden=邱夂ィョ"); +//help:Nohiddenbyfaces*(螟夐擇菴薙→遨コ髢捺峇邱壹r髯ー邱壼ヲ逅); +//help:Fixpoint3d*(遨コ髢薙ョ蝗コ螳夂せ繧偵→繧); +//help:Sf3data*(髯ー邱壼ヲ逅縺ェ縺励ョ遨コ髢捺峇髱「繧呈緒縺); +//help:Concatobj*(縺縺上▽縺九ョobj繝繝シ繧ソ繧堤オ仙粋); +//help:Crvsfparadata*(譖イ邱壹ョ譖イ髱「縺ォ繧医k髯ー邱壼ヲ逅); +//help:Intersectcrvsf*(譖イ邱壹→譖イ髱「縺ョ莠、轤ケ繧呈アゅa繧); +//help:Intersectcrvsf*(譖イ邱壹→譖イ髱「縺ョ莠、轤ケ繧呈アゅa繧); +//help:Sfbdparaparadata*(遨コ髢捺峇髱「縺ョ髯ー邱壼ヲ逅); +//help:Wireparadata*(譖イ髱「縺ョ繝ッ繧、繝、繝輔Ξ繝シ繝繧帝匆邱壼ヲ逅); +//help:Dist3d*(遨コ髢薙ョシ堤せ縺ョ霍晞屬); + + +//help:end(); diff --git a/texmf-dist/scripts/ketpic/ketlib/ketcindylib3dlog.txt b/texmf-dist/scripts/ketpic/ketlib/ketcindylib3dlog.txt new file mode 100644 index 00000000..63f107b7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketcindylib3dlog.txt @@ -0,0 +1,295 @@ +// s: 2017.07.13 +// Spaceline debugged ( ["A3d","B3d"] =>[A3d,B3d] ) +// s: 2017.07.01 +// Start3d changed (debugged) ( Initialize SlideColorList ) +// s: 2017.06.02 +// Putaxes3d debugged ( for THETA=90 ) +// Projpara debugged ( list with length <2 removed) +// s: 2017.05.18 +// Start3d changed ( Ch,ChNum added ) +// s: 2017.05.02 +// Ketinit3d, Start3d changed ( Sprintf(*.2) used ) +// s: 2017.04.14 +// Makeskeleton debugged ( Eps=10^(-4) ) +// s: 2017.01.19 +// Setangle changed ( for "" ) +// s: 2017.01.04 +// Bezier3 debugged ( t => T) +// s: 2016.12.24 +// Setangle added +// s: 2016.12.19 +// Skeletondatacindy debugged ( for null 2d data); +// s: 2016.12.18 +// Ptseg3data debugged ( points to be removed ); +// s: 2016.11.29 +// Start3d changed ( CONCATCMD,OCNAME added ) +// s: 2016.11.12 +// Start3d changed ( option:ptexception added ) +// ( with Ptseg3data, Mkpointlist ); +// s: 2016.11.11 +// Skeletondatacindy added +// ( with Makeskeletondata, Kukannozoku,ProjcoordCurve ) +// s: 2016.11.02 +// Divnohidhid added +// s: 2016.10.06 +// Joincrvs3d added +// s: 2016.08.20(22) +// Ptseg3data included in Start3d +// Wait option adjusted +// s: 2016.08.20(21) +// Mkpointlist changed ( x,y fixed when ptz changes ) +// Sfbdparadata,Wireparadata,Crvsfparadata debugged ( global var, for non list ) +// s: 2016.08.19 +// Nohiddenbyfaces, Mkbezierptcrv3d changed +// Start3d debugged ( BezierNumber3 added ) +// Concatobj changed ( Default : "rmf=y" ) +// s: 2016.08.17 +// Wireparadata debugged +// s: 2016.08.14 +// Xyzax3data changed ( options "a1","Osw" added ) +// Intersectcrvsf debugged +// s: 2016.08.09 +// Intersectcrvsf debugged ( //// => |||| ) +// s: 2016.06.20 +// Start3d changed ( no ketinit3d ) +// s: 2016.06.19 +// VertexEdgeFace changed ( for ptdata alone ) +// Putpoint3d debugged +// s: 2016.05.26 +// Putpoint3d debugged +// Beziersurf added +// s: 2016.05.26 +// Start3d changed ( pt2d added) + +///////////// +// s: 2014.12.13 v1.0.0(beta) +// Ketinit3d, Projpara, Parapt, Spaceline, Spacecurve, Xyzax3data +// e: 2014.12.14 +// Skeletonparadata +// e: 2014.12.18 +// Embed added +// e: 2014.12.19 +// Skeletonparadata debugged ( Extractdata used ) +// Dotprod, Crossprod added +// e: 2014.12.22 +// Skeletonparadata changed and debugged +// Rotate3pt, Rotate3data added +// Translate3pt, Translate3data added +// e: 2014.12.27 +// Projcurve changed ( options ) +// e: 2015.02.02 +// Ketinit3d changed ( slider position ) +// e: 2015.02.06 +// xyzcoord, Mkpointlist, Mkseg3d, Putpoint3d, Makescreen added +// e: 2015.02.07 +// Mkseg3d changed ( LineSeg ) +// 2nd frame changed (10 -> Pne.x-Psw.x ) +// e: 2015.02.08 +// Spacecurve changed ( Assign written to Scilab) +// Ketinit changed ( position of slider) +// e: 2015.02.09 +// Bezierpt3sub,Bezier3,Putbezier3data,Mkbezierptcrv3 added +// e: 2015.02.10 +// Spacecurve changed ( Num ) +// e: 2015.02.11 +// Ketinit3d, Ptseg3data,Putpoint3d changed ( SUBSCR ) +// Subscreen, Subgraph added +// Spaceline,Spacecurve, Rotate3data, Tranlate3data changed (SUBSCR) +// Bezier3 changed +// e: 2015,02.12 +// Bezier3, Putbezierpt debugged +// Spacecurve changed ( name when "bz") +// e: 2015.02.14 +// Ptseg3data changed ( alllines => allsegments ) +// e: 2015.02.15 +// Subscreen renamed to Start3d +// e: 2015.02.16 +// Ptseg3data, Mkpointlist changed +// e: 2015.02.17 +// Skeletonparadata debugged ( textformat was wrongly used) +// Mkpointlist debugged ( not finished ) +// e: 2015.02.18 +// Rotate3data, Translate3data changed ( available for pdlist ) +// Puttickmark3d ( not yet ) +// Putonaxes3 added +// drawpoint3d added +// e: 2015.02.23 +// help(example) added +// Pne,Psw,Th,Ph changed to NE,SW,TH,FI +// e: 2015.02.24 +// Bezier3 debugged +// Projpara changed ( for single data ) +// Reflectpt, PutonCurve3d added +// e: 2015.02.25 v1.2.1 +// Puonaxes changed ( sizelist for each axis ) +// e: 2015.02.26 +// Mkpointlist changed ( point moves perpendicular to xy-plain) +// e: 2015.02.27 +// IntersectsgpL, Fixpoint3d added +// Puonaxes3 renamed to Putaxes3d and changed +// e: 2015.02.28 +// Fixaxes3d removed +// Mkbezierptcrv changed +// Ketinit3d changed ( global BezierNumber3, BZLIST3) +// e: 2015.03.01 +// Findangle, Cancoordpara,Zparapt, Projcoordpara,added +// Putpoint3d changed ( fix option ); +// Putperp added +// e: 2015.03.02 +// Mkseg3d changed ( geoseg3 defined ) +// Changestyle3d added +// IntersectsgpL changed ( option put, draw, none ) +// Putperp rename to Perppt, available for segment, option added +// e: 2015.03.05 +// Start3d changed ( VLIST defined if empty ) +// e: 2015.03.06 v1.2.2 +// Keinit3d, Putpoint3d changed (TSIZE,TSIZEZ) +// Perpplane added +// Embed debugged (for data as string ) +// Pseg3d debugged (case of empty ) +// e: 2015:03.13 v1.2.3 +// Help ( Putoncurve3d ) added +// Putoncurve3d debugged +// e: 2015.03.25 v1.2.4 +// Skeletonparadata changed ( nm, options ); +// e: 2015.03.26 +// Bezier3, Mkbezierptcrv3d debugged +// e: 2015.03.28 +// Findangle ( and Perpplane ) debugged +// e: 2015.04.06 +// Start3d changed ( Var from Fhead ) +// e: 2015.05.12 v1.3.1 +// Datalist3d added +// e: 2015.05.14 +// Start3d debugged (SCEWRLIST, SCEWRLIST reset ) +// Skeletonpara changed (Divoptions used ) +// e: 2015.05.17 v1.3.2 +// Skeletonpara changed (out/in ) +// e: 2015.05.24 v1.3.3 +// Bezier3,Rotate3data,.. renamed to Bezier3d, ... +// help:start(), help:end() added +// VertexandEdge, Readobj, Removespace added +// Changestyle3d changed +// e: 2015.05.26 v1.4.1 +// Readobj, VertexandEdge added +// Phparadata added +// e: 2015.05.27 v1.4.1a +// Skeletonpara, Phparadata changed ( for string ) and debugged +// e: 2015.05.28 +// IntersectsgpL changed ( with segdata ) +// e: 2015.05.29 v1.4.2 +// Findhiddenseg added +// e: 2015.05.30 +// Spaceline changed ( name when "-" ) +// Datalist3d changed, Datalist2d added; +// Nohiddenbyfaces, Nohiddensegs, Nohiddenseg added +// e: 2015.06.02 v1.4.3 +// Nohiddenseg revised/debugged ( major revision ) +// Skeletonparadata changed +// e: 2015.06.06 v1.4.4 +// Readobj changed ( for #, f / ) +// Spaceline changed ( Message option ) +// e: 2015.06.08 v1.4.5 +// Nohiddenbyfaces changed +// e: 2015.06.15 v1.4.6 +// Vertexedgeface changed ( edge drawn as geometric figure ) +// Mkseg3data changed ( Points of Spaceline changed to vertex name ) +// e: 2015.06.22 v1.5.0 +// .cs adopted +// e: 2015.07.06 v1.5.1 +// Vertexedgeface changed ( options "Pt=..", "Sg=.." ); +// e: 2015.07.09 v1.5.2 +// Skeletonparadata debugged +// e: 2015.07.16 v1.5.3 +// Skeletonparadata debugged +// e: 2015.07.22 v1.5.4 +// Skeletonparadata debugged +// e: 2015.08.11 v1.5.6 +// Fullformfunc added +// e: 2015.08.14 v1.5.7 +// Spacecurve changed ( Msg option, tmpfn defined ) +// Start3d debugged ( FUNLIST initialized ) +// e: 2015.08.17 +// Spacecurve debugged +// Subgraph debugged +// e: 2015.10.04 v1.8.0 +// Sf3data, Sfbdparadata added +// Ketinit3d changed ( Position of Th,Phi sliders) +// e: 2015.10.05 +// Sfbdparadata changed +// Crvsfparadata added +// e: 2015.10.09 v1.8.1 +// Sfbdparadata,Crvsfparadata changed +// e: 2015.10.10 +// Sf3data debugged +// e: 2015.10.12 v1.8.2 +// Wireparadata, Intersectcrvsf added +// e: 2015.10.19 v1.8.4 +// Concatobj added +// Nohiddenbyseg changed ( optionh ) +// e: 2015.10.19 v1.8.5 +// Intersectcrvsf changed ( according to the mod of ReadOutData of Scilab) +// Drawpoint3d changed ( for pointlist) +// e: 2015.10.31 v2.0.0 +// Bugs fixed +// Embed debugged +// e: 2015.11.01 v2.0.1 +// Skeletonparadata changed to new version +// ( old version renamed to Skeletonparadata2 ) +// e: 2015.11.03 v2.0.1 +// Subgraph debugged +// e: 2015.11.05 v2.1.0 +// Start3d changed ( OutFileList reset ) +// e: 2015.12.16 +// VertexEdgeFace changed (help ) +// e:2016.01.24 +// Concatobj debugged ( major revision ) +// e:2016.01.30 +// geoseg3 => geoseg3d +// e:2016.01.31 +// Skeletonparadata debugged +// Start3d changed ( Arrow..counter reset ) +// e:2016.02.01 +// Skeletonparadata changed ( prec=4 ) +// Sfbdparadata changed ( precommandS added ) +// e:2016.02.02 +// IntersectsgpL changed ( for pointlist ) +// e:2016.02.02 +// Skeletonparadata debugged ( linestyle options ) +// e:2016.02.07 +// Dist3d added +// e:2016.02.10 +// Partcrv3d added +// Ketinit3d changed ( no display for sgTH,sgFI and TH,FI ,setwindow) +// Spaceline changed ( for [A,B,C,...] ) +// Vertexedgeface changed ( for [A,B,C,...] ) +// Nohiddenbyfaces, Nohiddenbyseg changed +// e:2016.02.11 +// Concatobj changed ( for duplicated point, removeface option ) +// e:2016.02.21 +// Nohiddenbyfaces debugged ( optionorg ) +// e:2016.02.22 +// Putonseg3d added +// Spaceline changed ( name defined automatically when no name ) +// e:2016.02.23 +// Nohiddenbyfaces debugged +// e:2016.02.28 +// Skeletonparadata debugged ( width option ) +// Concatobj changed ( for the list of points ) +// e:2016.02.29 +// Nohiddenbyfaces, Vertexedgeface debugged ( width option ) +// e:2016.03.02 +// Putpoint3d changed ( ("A",[1,2,3],"fix") is OK ) +// e:2016.03.30 +// Invparapt, InvparaptPp added +// e:2016.04.07 +// Mkseg3d debugged +// e:2016.04.08 +// Start3d changed (FigPdfList added ) +// e:2016.04.15 +// Spacecurve debugged ( option empty case ) +// e:2016.05.25 +// Sf3data debugged (parse in options ) +// Sfbdparadata, Wireparadata, Crvsfparadata debugged ( Sciform) +///////// To Reverse Sequence //////////////// + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketcindylibbasic1.cs b/texmf-dist/scripts/ketpic/ketlib/ketcindylibbasic1.cs new file mode 100644 index 00000000..bf9a81eb --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketcindylibbasic1.cs @@ -0,0 +1,4874 @@ +// Copyright (C) 2014 Setsuo Takato, KETCindy Japan project team +// +//This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/> +// + +println("KETCindy V.3.0.2(2017.08.23)"); +println(ketjavaversion());//17.06.05 +println("ketcindylibbasic1(2017.08.23) loaded"); + +//help:start(); + +//help:drawimage([0,0],"picture.png",scale->2,alpha->0.4); +//help:drawtext((2,1),"Text",size->2); +//help:system(list=append(list,"a");); +//help:system(list=concat(list,["a","b"]);); +//help:system(arccos,arcsin,arctan); +//help:system(abs,round,floor,ceil); + +//help:Option1(["dr","dr,2","da","da,2,1","do","do,1,2"]); +//help:Option2(["notex","nodisp","nodata"]); +//help :Option3(["in","out","in-","out-"]); + +//help:getdirhead(); +//help:gedirhead("/Applications"); +//help:gedirhead("C:\Users\(username)"); + +Ch=[0]; ChNum=1; + +Ketinit():=Ketinit(1); +//help:Ketinit(); +Ketinit(sy):=Ketinit(sy,[-5,5],[-5,5]); +Ketinit(sy,rangex,rangey):=( + regional(pt,tmp,tmp1,tmp2,letterc,boxc,shadowc,mboxc,sep); + PenThickInit=8; + ULEN="1cm"; + MARKLEN=0.2; //16.11.01 + KETPICLAYER=20; + MilliIn=1/2.54*1000; + PenThick=round(MilliIn*0.02); + PenThickInit=PenThick; + TenSizeInit=0.02; + TenSize=TenSizeInit; + YaSize=1; YaAngle=18; YaPosition=1; + YaThick=1; YaStyle='tf'; + KETPICCOUNT=1; + KCOLOR=[0,0,0]; + GLIST=[]; + GCLIST=[]; +// GDATALIST=[]; + GOUTLIST=[]; + POUTLIST=[]; + VLIST=[]; + FUNLIST=[]; + LETTERlist=[]; + COM0thlist=[]; + COM1stlist=[]; + COM2ndlist=[]; + SCIWRLIST=[]; + SCIRELIST=[]; + ADDAXES="1"; + LFmark=unicode("000a"); + CRmark=unicode("000d");//16.12.13 + Dq=unicode("0022"); + WaitUnit=10; + CONTINUED=0; + OutComList=[]; + OutFileLIst=[]; // 15.10.22 + FigPdfList=[]; // 16.04.08 + ADDPACK=[]; // 16.05.16 + ErrFlag=0; + setdirectory(Dirwork); + if(isstring(Fhead), // 15.04.06 + Fnametex=Fhead+".tex"; + Fnamesci=Fhead+".sce"; + Fnamescibody=Fhead+"body.sce"; + Fnameout=Fhead+".txt"; + ); + if(!isstring(Mackc),// 16.06.07 + Mackc="sh"; + ); + ArrowlineNumber=1; // 15.01.05 + ArrowheadNumber=1; + BezierNumber=1; //15.01.03 + SCALEX=1; + SCALEY=sy; +// Setscaling(sy); + XMIN=rangex_1/SCALEX; + XMAX=rangex_2/SCALEX; + YMIN=rangey_1/SCALEY; + YMAX=rangey_2/SCALEY; + Setwindow("Msg=n"); // 16.05.31 + // for Presentation + letterc=[0.98,0.13,0,0.43]; boxc=[0,0.32,0.52,0]; + shadowc=[0,0,0,0.5]; mboxc="yellow"; //17.03.02 regional debugged + SlideColorList=[letterc,boxc,boxc,boxc,shadowc,shadowc,6,1.3, + letterc,mboxc,mboxc,mboxc,62,2,letterc]; + ThinDense=0.1;//17.01.08 + if(indexof(PathS,"-6.")>0,//17.04.14from + if(iswindows(),sep="\",sep="/"); + if((indexof(PathT,"pdflatex")==0)&(indexof(PathT,"lualatex")==0), + Libname=Dirlib+sep+"ketpicscifiles6"; + , + Libname=Dirlib+sep+"ketpic2escifiles6"; + ); + );//17.04.14upto +); + +Setwindow():=Setwindow("Msg=yes"); +Setwindow(str):=( + regional(tmp,tmp1,tmp2,msg); + msg="y"; + tmp=indexof(str,"="); // 16.02.10 + tmp1=Toupper(substring(str,tmp,tmp+1)); + if(tmp1=="N",msg="n"); + if((ispoint(SW) & ispoint(NE)), + tmp1=Lcrd(SW); + tmp2=Lcrd(NE); + XMIN=tmp1_1; XMAX=tmp2_1; + YMIN=tmp1_2; YMAX=tmp2_2; + , +// XMIN=-5; XMAX=5; +// YMIN=Lcrdy(-5); YMAX=Lcrdy(5); +// createpoint("SW",Pcrd([XMIN,YMIN])); +// createpoint("NE", Pcrd([XMAX,YMAX])); + Putpoint("SW",Pcrd([XMIN,YMIN])); + Putpoint("NE", Pcrd([XMAX,YMAX])); + ); + if(msg=="y", + println("Setwindow(["+XMIN+","+XMAX+"],["+YMIN+","+YMAX+"])"); + ); + layer(KETPICLAYER); + autoclearlayer(KETPICLAYER,true); + drawpoly([Pcrd([XMIN,YMIN]), Pcrd([XMAX,YMIN]), + Pcrd([XMAX,YMAX]),Pcrd([XMIN,YMAX])],color->[1,1,1]); +); +Setwindow(xrange,yrange):=( +//help:Setwindow([2,3],[-1,1]); + XMIN=xrange_1; + XMAX=xrange_2; + YMIN=yrange_1; + YMAX=yrange_2; + Putpoint("SW",Pcrd([XMIN,YMIN]));//17.05.30 + Putpoint("NE",Pcrd([XMAX,YMAX]));//17.05.30 +// Ketinit(); +); + +Setfiles(file):=( // 17.01.16 +//help:Setfiles(file); + Fhead=file; + Fnametex=Fhead+".tex"; + Fnamesci=Fhead+".sce"; + Fnamescibody=Fhead+"body.sce"; + Fnameout=Fhead+".txt"; +); + +Setcindyname():=Setcindyname("");//16.12.25 +Setcindyname(file):=( +//help:Setcindyname("Fhead"); +//help:Setcindyname(<only when on the terminal "ketcindy/cindy.sh "+file>); + regional(tmp,tmp1,tmp2); + setdirectory(Dirhead); + CindyPathName=""; + CindyFileName=""; + CindyPathName=load("cindypath.txt"); + tmp2=load("cindyfile.txt"); + tmp2=replace(tmp2,".cdy",""); + if(length(tmp2)>0, + CindyFileName=tmp2; + if(length(file)>0, + tmp=file+"="+DqDq(tmp2); + parse(tmp); + println(file+" set to "+DqDq(tmp2)); + ); + , + println("set "+file+" manually"); + ); + setdirectory(Dirwork); + CindyFileName; +); + +Cindypath():=( // 16.12.26 +//help:Cindypath(); + regional(out); + CindyPathName=""; + setdirectory(Dirhead); + CindyPathName=load("cindypath.txt"); + setdirectory(Dirwork); + if(length(CindyPathName)==0, + out=Dirwork; + , + out=CindyPathName; + ); + println(" path name="+out); + out; +); + +Cindyfile():=( // 16.12.26 +//help:Cindyfile(); + regional(out); + CindyFileName=""; + setdirectory(Dirhead); + out=load("cindyfile.txt"); + out=replace(out,".cdy",""); + setdirectory(Dirwork); + CindyFileName=out; + println(" file name="+out); + out; +); + +DqDq(str):=unicode("0022")+str+unicode("0022"); + +Tab2list(dtstr):=Tab2list(dtstr,[]); +Tab2list(dtstrorg,options):=( +//help:Tab2list(datastr); +//help:Tab2list(options=["Blank=(null)","Sep=tab"]); + regional(dtstr,dtall,dt,rep,out,crm,lfm,htm,first,eqL,sep, + tmp,tmp1,tmp2); + crm=unicode("000d"); + lfm=unicode("000a"); + htm=unicode("0009"); + tmp=Divoptions(options); + eqL=tmp_5; + rep=""; + sep=htm; + forall(eqL, + tmp=indexof(#,"="); + tmp1=Toupper(substring(#,0,1)); + tmp2=substring(#,tmp,length(#)); + if(tmp1=="B", + tmp1="0123456789+-."; // 16.09.28from + tmp=substring(tmp2,0,1); + if(indexof(tmp1,tmp)>0,rep=parse(tmp2),rep=tmp2); // 16.09.28upto + ); + if(tmp1=="S", // 16.12.04 + if(tmp2!="tab",sep=tmp2); + ); + ); + first=lfm; // 16.09.05from + if(indexof(dtstr,crm)>0, + first=crm; + if(indexof(dtstr,crm+lfm)>0, + first=first+lfm; + ); // 16.09.05upto + ); + dtstr=dtstrorg;// 16.09.19from + tmp=substring(dtstr,length( dtstr)-1,length(dtstr)); + if(tmp!=lfm, + dtstr=dtstr+first; + );// 16.09.19upto + tmp1=Indexall(dtstr,first); + tmp1=prepend(0,tmp1); + tmp1=append(tmp1,length(dtstr)); + dtall=[]; + forall(1..(length(tmp1)-1), + tmp=substring(dtstr,tmp1_#,tmp1_(#+1)-1); + if(length(tmp)>0, + dtall=append(dtall,tmp); + ); + ); + out=[]; + forall(dtall,dt, + tmp1=tokenize(dt,sep); //16.12.04 + tmp2=[]; + forall(tmp1, + if(isstring(#),tmp=parse(#),tmp=#); + if(!isreal(tmp), + if(length(#)>0,tmp=#,tmp=rep); + ); + tmp2=append(tmp2,tmp); + ); + out=append(out,tmp2); + ); + out; +); + +Columnlist(dt,list):=( // 16.09.04 +//help:Columnlist(dt,1..3); + apply(dt,#_list); +); + +Dispmat(dt):=( // 16.09.16 +//help:Dispmat(dt); + regional(htm,crm,lfm,row,tmp,tmp1,tmp2); + htm=unicode("0009"); + crm=unicode("000d"); + lfm=unicode("000a"); + tmp2=""; + forall(dt,row, + tmp1=""; + forall(row, + if(isstring(#), + tmp1=tmp1+#+htm; + , + tmp1=tmp1+text(#)+htm; + ); + ); + tmp1=substring(tmp1,0,length(tmp1)-1); + tmp1=tmp1+lfm; + tmp2=tmp2+tmp1; + ); + print(tmp2); + println(); +); + +Sep1000(va):=( //17.07.18 +//help:Sep1000(1344555); +//help:Sep1000([12456,55567]); + regional(str,nall,out); + if(islist(va), + out=apply(va,Sep1000(#)); + , + str=text(va); + nall=length(str); + out=""; + forall(1..nall, + out=str_(nall+1-#)+out; + if((#<nall)&(mod(#,3)==0), + out=","+out; + ); + ); + ); + out; +); + +factorial(n):=( +//help:factorial(5); + regional(out); + out=1; + forall(1..n, + out=out*#; + ); + out; +); + +norm(v1):=( // 16.09.01 +//help:norm([2,1,3]); + regional(out,tmp,tmp1,tmp2); + out=0; + forall(1..(length(v1)), + out=out+(v1_#)^2; + ); + out=sqrt(out); + out; +); +norm(v1,v2):=( + norm(v2-v1); +); + +// 16.03.28 +Removespace(str):=( +//help:Removespace(" a b c "); + regional(tmp,flg,out); + tmp=length(str)+1; + flg=0; + forall(1..(length(str)), + if(flg==0, + if((str_#)!=" ", + tmp=#; + flg=1; + ); + ); + ); + out=substring(str,tmp-1,length(str)); + flg=0; + tmp=0; + forall(reverse(1..(length(out))), + if(flg==0, + if((out_#)!=" ", + tmp=#; + flg=1; + ); + ); + ); + out=substring(out,0,tmp); +); + +Indexall(str,key):=( + regional(rest,out,flg,tmp,tmp1,); + out=[]; + rest=str; + flg=0; + forall(1..(length(str)), + if(flg==0, + tmp=indexof(rest,key); + if(tmp>0, + tmp1=tmp+length(str)-length(rest); + out=append(out,tmp1); + rest=substring(rest,tmp,length(rest)); + , + flg=1; + ); + ); + ); + out; +); + +Parlevel(str):=Bracket(str); // 16.05.22from +Bracket(str):=Bracket(str,"()"); +Bracket(str,br):=( +//help:Bracket(string,"()"); + regional(ph,pt,out,noL,ncL,nall,level,tmp); + ph=substring(br,0,1); + pt=substring(br,1,2); + noL=Indexall(str,ph); + ncL=Indexall(str,pt); // 16.05.22upto + nall=sort(concat(noL,ncL)); + level=0; + out=[]; + forall(nall, + if(contains(noL,#), + level=level+1; + tmp=[#,level]; + , + tmp=[#,-level]; + level=level-1; + ); + out=append(out,tmp); + ); + out; +); + +Pardiagram(str):=Pardiagram(str,[20]); +Pardiagram(str,options):=( +//help:Pardiagram(exprstr); +//help:Pardiagram(options=[20,"Disp=y","Fig=y"]); + regional(reL,eqL,len,disp,scheme,bra,nn,sta,out, + opos,cpos,all,dx,dh,mxh,start,nn,p1,p2,p3,p4,tmp,tmp1,tmp2,tmp3); + len=20; + disp=1; + scheme=1; + tmp=Divoptions(options); + eqL=tmp_5; + reL=tmp_6; + forall(eqL, + tmp=indexof(#,"="); + tmp1=Toupper(substring(#,0,1)); + tmp2=Toupper(substring(#,tmp,tmp+1)); + if(tmp1=="D", + if(tmp2=="N" % tmp2=="F",disp=0); + ); + if(tmp1=="F", + if(tmp2=="N" % tmp2=="F",scheme=0); + ); + ); + forall(reL, + len=#; + ); + bra=Bracket(str); + tmp1=select(bra,#_2>0); + tmp2=select(bra,#_2<0); + out=[]; + forall(1..(length(tmp1)),nn, + sta=tmp1_nn; + tmp=select(tmp2,#_2==-sta_2 & #_1>sta_1); + tmp=tmp_1; + out=append(out, [substring(str,sta_1-1,tmp_1), + nn,sta_2,sta_1,tmp_1, + substring(str,sta_1-1,sta_1+len-1), + substring(str,tmp_1-len,tmp_1)] ); + ); + if(disp==1, + println("Printing from 2 to 7. (Extract full string using _1)"); + apply(out,println(#_(2..7))); + ); + if(scheme==1, + opos=sort(apply(out,#_4)); + cpos=sort(apply(out,#_5)); + tmp=concat(opos,cpos); + all=sort(tmp); + mxh=max(apply(out,#_3)); + dx=1; + dh=1; + start=[-5,5]; + forall(1..(length(all)),nn, + tmp=select(out,#_4==all_nn); + if(length(tmp)>0, + tmp1=tmp_1_3; + tmp2=tmp_1_4; + tmp3=tmp_1_5; + tmp=select(1..(length(all)),all_#==tmp3); + tmp4=tmp_1; + p1=start+[(nn-1)*dx,-0.5]; + p2=p1+[0,(tmp1-mxh-1)*dh]; + p3=p2+[(tmp4-nn)*dx,0]; + p4=p3+[0,(mxh+1-tmp1)*dh]; + Listplot("ch"+text(nn),[p1,p2,p3,p4],["Message=n"]); + Letter([p2,"s",text(tmp2),p3,"s",text(tmp3)]); + tmp=select(1..(length(opos)),opos_#==tmp2); + tmp=tmp_1; + if(tmp==1, + tmp=substring(str,tmp2-1,tmp2); + , + if(opos_(tmp-1)==opos_tmp-1, + tmp=substring(str,tmp2-1,tmp2); + , + tmp=substring(str,tmp2-2,tmp2); + ); + ); + tmp=replace(tmp,"^","**"); + Expr(p1,"n",tmp); + tmp=select(1..(length(cpos)),cpos_#==tmp3); + tmp=tmp_1; + if(tmp==length(cpos), + tmp=substring(str,tmp3-1,tmp3); + , + if(cpos_(tmp+1)==cpos_tmp+1, + tmp=substring(str,tmp3-1,tmp3); + , + tmp=substring(str,tmp3-1,tmp3+1); + ); + ); + tmp=replace(tmp,"^","**"); + Expr(p4,"n",tmp); + ); + ); + ); + out; +); + +Changelib(path):=( + Dirlib=path; + setdirectory(Dirlib); + import("ketcindyset.txt"); + setdirectory(Dirwork); // 16.04.23 +); + +Changework(path):=( //16.10.21 +//help:Changework(directory); + regional(tmp); + if(path=="" % !isexists(path,""), + println("Directory "+path+" not exist, so set to "+Dirwork); + ErrFlag=-1; + , + Dirwork=path; + setdirectory(Dirwork); + if(!iswindows(), //17.04.11 + if(!iskcexists(Dirwork), + SCEOUTPUT = openfile(Shellparent); + closefile(SCEOUTPUT); + println(setexec(Dirwork,Shellparent)); + ); + ); + ); +); + +Changestyle(nameL,style):=( +//help:Changestyle(["sgAB"],["da"]); + regional(nmL,name,Ltype,Ltypeorg,Noflg,opcindy,tmp); + tmp=Divoptions(style); + Ltypeorg=tmp_1; + Noflg=tmp_2; + opcindy=tmp_(length(tmp)); + if(islist(nameL),nmL=nameL,nmL=[nameL]); + forall(nmL,name, + Ltype=Ltypeorg; + GCLIST=select(GCLIST,#_1!=name); + COM2ndlist=select(COM2ndlist, + (indexof(#,"("+name)==0)%(indexof(#,"Shade")>0)); // 15.05.23,16.12.13 + if(Noflg<2, + if(isstring(Ltype), + Ltype=GetLinestyle(text(Noflg)+Ltype,name); + , + if(Noflg==1,Ltype=0); + ); + GCLIST=append(GCLIST,[name,Ltype,opcindy]); + ); + ); +); + +Op(n,object):=( // 16.05.25 +//help:Op(4,[1,2,3,4]); +//help:Op(3,"abcd"); + regional(out); + if(islist(object), + out=object_n; + , + if(isstring(object), + out=substring(object,n-1,n); + ); + ); + out; +); + +Finddef(G):=( + regional(def,tmp,tmp1,tmp2,tmp3); + if(isstring(G),tmp=parse(G),tmp=G); + def=text(inspect(tmp,"definition")); + tmp1=indexof(def,"("); + tmp2=indexof(def,";"); + tmp3=indexof(def,")"); + tmp=[substring(def,0,tmp1-1)]; + if(tmp2>0, + tmp=append(tmp,substring(def,tmp1,tmp2-1)); + if(indexof(def,")",tmp3+1)==0, + tmp=append(tmp,substring(def,tmp2,tmp3-1)); + , + tmp=append(tmp,substring(def,tmp2,tmp3)); + ); + , + tmp=append(tmp,substring(def,tmp1-1,tmp3)); + ); + tmp; +); + +Findgeoinfo(geo):=( + regional(out,tmp,tmp1,tmp2); + tmp=Finddef(geo); + if(ispoint(parse(tmp_2)), + out=[tmp_2,tmp_3]; + , + tmp1=Findgeoinfo(parse(tmp_2)); + if(ispoint(parse(tmp1_1)), + out=[tmp1_1,tmp1_2]; + , + tmp2=Findgeoinfo(parse(tmp1_2)); + out=[tmp2_1,tmp2_2]; + ); + ); + if(ispoint(geo), + if(!ispoint(parse(tmp_2)), + tmp1=Finddef(parse(tmp_2)); + , + tmp1=tmp; + ); + out=append(out,tmp1_3); + , + out=append(out,tmp_3); + ); + out; +); + +Dependgeo(geo):=( + regional(tmp,tmp1,tmp2,out); + tmp=Finddef(geo); + if(!iscircle(geo), + out=[text(geo)]; + , + out=[geo]; + ); + if(length(tmp)<3, + out=concat(out,[tmp_1,[]]); + , + out=concat(out,[tmp_1]); + tmp1=[tmp_2,tmp_3]; + tmp=parse(tmp1_2); + if(islist(tmp) % isreal(tmp), + tmp1=[tmp1_1]; + ); + out=append(out,tmp1); + ); + out; +); + +Workprocess():=Workprocess(300); +Workprocess(nn):=Drawprocess(nn); +Drawprocess():=Drawprocess(300); +Drawprocess(nn):=( +//help:Workprocess(); + regional(All,added,remain,out,flg,tmp,tmp1,tmp2); + tmp=remove(allpoints(),[NE,SW,TH,FI]); + tmp1=select(tmp, + substring(text(#),length(text(#))-1,length(text(#)))!="z"); + tmp1=concat(tmp1,alllines()); +// tmp1=concat(tmp1,allcircles()); + All=apply(tmp1,Dependgeo(#)); + added=select(All,length(#_3)==0); + out=sort(apply(added,#_1)); + remain=remove(All,added); + flg=0; + repeat(nn, + if(flg==0, + tmp1=select(remain,remove(#_3,out)==[]); + tmp2=sort(apply(tmp1,#_1)); + out=concat(out,tmp2); + remain=remove(remain,tmp1); + if(length(remain)==0,flg=1); + ); + ); + println("Process of drawing"); + forall(out, + println(Dependgeo(parse(#))); + ); + out; +); + +Sortpointlist(list):=( + regional(plist,ilist,jj,kk,flg,p1,p2,in1,in2, + tmp,tmp1,tmp2,out); + out=list; + plist=list_1; + ilist=list_2; + flg=0; + forall(1..(length(plist)),jj, + p1=plist_jj; + in1=ilist_jj; + forall((jj+1)..(length(plist)),kk, + if(flg==0, + p2=plist_kk; + in2=ilist_kk; + if(contains(in1,p2), + tmp1=plist_(1..(jj-1)); + tmp1=append(tmp1,p2); + tmp1=concat(tmp1,plist_((jj+1)..(kk-1))); + tmp1=append(tmp1,p1); + tmp1=concat(tmp1,plist_((kk+1)..(length(plist)))); + tmp2=ilist_(1..(jj-1)); + tmp2=append(tmp2,in2); + tmp2=concat(tmp2,ilist_((jj+1)..(kk-1))); + tmp2=append(tmp2,in1); + tmp2=concat(tmp2,ilist_((kk+1)..(length(plist)))); + out=Sortpointlist([tmp1,tmp2]); + flg=1; + ); + ); + ); + ); + out; +); + +Toupper(str):=( +//help:Toupper("Abc"); + regional(alphabet,out,tmp,tmp1); + alphabet="abcdefghijklmnopqrstuvwxyz"; + out=""; + forall(1..(length(str)), + tmp=substring(str,#-1,#); + tmp1=indexof(alphabet,tmp); + if(tmp1>0, + out=out+unicode(text(tmp1+64),base->10); + , + out=out+tmp; + ); + ); + out; +); + +Textformat(value,dig):=( +//help:Textformat(2/3,4); +//help:Textformat([gr1,gr2],5); + regional(vv,tmp,tmp1); + if(islist(value), + tmp1="["; + forall(value, + tmp1=tmp1+Textformat(#,dig)+","; + ); + tmp1=substring(tmp1,0,length(tmp1)-1)+"]"; + , + if(ispoint(value) % isstring(value), +// vv=Lcrd(value); +// tmp1=Textformat(vv,dig); +// tmp1=text(value); // 15.04.07 + if(isstring(value),tmp1=Dq+value+Dq,tmp1=text(value)); // 15.10.02 + , + tmp1=format(value,dig); + ); + ); + tmp1; +); + +Sprintf(value,dig):=( +//help:Sprintf(5.1,4); + regional(vv,tmp,tmp1); + if(!islist(value), // 17.03.12from + if(isstring(value), + vv=value; + , + vv=Textformat(value,dig); + ); // 17.03.12from + if(indexof(vv,".")==0,vv=vv+"."); + vv=vv+"0000000000000000"; + tmp=indexof(vv,".")+dig; + vv=substring(vv,0,tmp); + , + vv=apply(value,Sprintf(#,dig)); + ); + vv; +); + +Assign(str):=( // old + regional(out); + out=str; + forall(VLIST, + tmp=substring(#_1,0,length(#_1)-1); + out=replace(out,tmp,"("+#_2+")"); + ); + out; +); + +Assign(funstr,vrL):=( + regional(nn,out,tmp,tmp1); + nn=length(vrL)/2; + out=funstr; + forall(1..nn, + out=Assign(out,vrL_(2*#-1),vrL_(2*#)); + ); + out; +); + +Assign(funstr,varname,rep):=( +//help:Assign("x^2+a*x","a",1.3); +//help:Assign("a*x^2+b*x",["a",1,"b",2]); + regional(repstr,ii,jj,tmp,tmp1,tmp2,Notvar,Flg); + if(isstring(rep),repstr=rep,repstr="("+Textformat(rep,6)+")"); + // 15.02.09, 07.06,17.08.24 + tmp=[46]; // 12.20 + tmp=concat(tmp,48..57); + tmp=concat(tmp,65..90); + tmp=concat(tmp,97..122); + Notvar=apply(tmp,unicode(text(#),base->10)); + tmp2=""; + forall(1..100, + ii=indexof(funstr,varname); + if(ii>0, + Flg=0; + if(ii>1, + tmp=substring(funstr,ii-2,ii-1); + if(contains(Notvar,tmp), + tmp2=tmp2+substring(funstr,0,ii); + funstr=substring(funstr,ii,length(funstr)); + Flg=1; + ); + ); + if(Flg==0, + jj=ii-1+length(varname); + if(jj<length(funstr), + tmp=substring(funstr,jj,jj+1)); + if(contains(Notvar,tmp), + tmp2=tmp2+substring(funstr,0,jj); + funstr=substring(funstr,jj,length(funstr)); + Flg=1; + ); + ); + if(Flg==0, + tmp2=tmp2+substring(funstr,0,ii-1)+repstr; + funstr=substring(funstr,jj,length(funstr)); + ); + ); + ); + funstr=tmp2+funstr; + funstr; +); + +MeasureDepth(list):=( + regional(tmp,tmp1,Depth,Flg); + Flg=0; + Depth=0; + if(ispoint(list), // 15.01.22 + Depth=0; + Flg=1; + , + tmp1=select(1..(length(list)),length(list_#)>0);//17.05.21from + tmp=list_(tmp1_1);//17.05.21upto + ); + repeat(4, + if(Flg==0, + if(islist(tmp), + tmp=tmp_1; + Depth=Depth+1; + , + if(ispoint(tmp),Depth=Depth+1); + Flg=1; + ); + ); + ); + Depth; +); + +Flattenlist(pltlist):=( +//help:Flattenlist([[2,3],[[1,2],[5,6]]]); + regional(Out,nn,Dt,ii,tmp,flg); + Out=[]; + if(MeasureDepth(pltlist)==1, + Out=[pltlist]; + , + forall(1..(length(pltlist)),nn, + Dt=pltlist_nn; + if(MeasureDepth(Dt)<2, + Out=append(Out,Dt); + , + forall(1..(length(Dt)),ii, + tmp=Flattenlist(Dt_ii); + Out=concat(Out,tmp); + ); + ); + ); + ); + Out; +); + +Divoptions(options):=( +//help:Divoptions(options); + regional(Ltype,Noflg,Inflg,Outflg,eqL,realL,strL,opstr,opcindy,flg,tmp,tmp1); + Ltype="dr"; // 2015.01.13 + Noflg=0; + Inflg=0; + Outflg=0; + eqL=[]; + realL=[]; + strL=[]; + opstr=""; + opcindy=""; + forall(options, + flg=0; + if(flg==0, + if(isreal(#) % ispoint(#) % islist(#), + realL=append(realL,#); + opstr=opstr+","+text(#); + flg=1; + ); + ); + if(flg==0, + if(indexof(#,"=")>0, + eqL=append(eqL,#); + flg=1; + ); + ); + if(flg==0, + if(indexof(#,"no")+indexof(#,"No")>0, + if(indexof(#,"tex")>0,Noflg=1); + if(indexof(#,"disp")>0,Noflg=2); + if(indexof(#,"data")>0,Noflg=3); + flg=1; + ); + ); + if(flg==0, + if(indexof(#,"->")>0, + opcindy=opcindy+","+#; + flg=1; + ); + ); + if(flg==0, + if(indexof(#,"out")+indexof(#,"Out")>0, + if(indexof(#,"-")==0, + Outflg=1; + , + Outflg=2; + ); + flg=1; + ); + ); + if(flg==0, + if(indexof(#,"in")+indexof(#,"In")>0, + if(indexof(#,"-")==0, + Inflg=1; + , + Inflg=2; + ); + flg=1; + ); + ); + if(flg==0, + tmp=substring(#,0,2); + tmp1=indexof(tmp,"dr")+indexof(tmp,"Dr"); + tmp1=tmp1+indexof(tmp,"da")+indexof(tmp,"Da"); + tmp1=tmp1+indexof(tmp,"id")+indexof(tmp,"Id"); + tmp1=tmp1+indexof(tmp,"do")+indexof(tmp,"Do"); + tmp1=tmp1+indexof(tmp,"dp")+indexof(tmp,"Dp"); + if(tmp1>0, + Ltype=#; + flg=1; + ); + if(flg==0, + strL=append(strL,#); + opstr=opstr+","+Dq+#+Dq; + ); + ); + ); + if(indexof(opcindy,"color->")==0,// 16.10.07from + opcindy=opcindy+",color->[0,0,0]"; + ); + [Ltype,Noflg,Inflg,Outflg,eqL,realL,strL,opstr,opcindy]; +); + +Dotprod(vec1,vec2):=( +//help:Dotprod(vec1,vec2); + regional(v1,v2,tmp); + if(ispoint(vec1),v1=vec1.xy,v1=vec1); + if(ispoint(vec2),v2=vec2.xy,v2=vec2); + v1*v2; +); + +Crossprod(a,b):=( +//help:Crossprod(vec1,vec2); + regional(tmp1,tmp2,tmp3,Out); + if(length(a)==3, + tmp1=a_2*b_3-a_3*b_2; + tmp2=a_3*b_1-a_1*b_3; + tmp3=a_1*b_2-a_2*b_1; + Out=[tmp1,tmp2,tmp3]; + , + Out=a_1*b_2-a_2*b_1; + ); + Out; +); + +Ptstart(Fig):=( +//help:Ptstart("gr1"); + regional(tmp); + if(isstring(Fig),tmp=parse(Fig),tmp=Fig); // 16.01.21 + tmp_1; +); + +Ptend(Fig):=( +//help:Ptend("gr1"); + regional(tmp); + if(isstring(Fig),tmp=parse(Fig),tmp=Fig); + tmp_(length(tmp)); // 15.04.12 +); + +Numptcrv(Fig):=( +//help:Numptcrv("gr1"); + regional(tmp); + if(isstring(Fig),tmp=parse(Fig),tmp=Fig); // 15.12.23 + length(tmp); +); + +Ptcrv(Num,Fig):=( +//help:Ptcrv(10,"gr1"); + regional(tmp); + if(isstring(Fig),tmp=parse(Fig),tmp=Fig); + tmp_Num; +); + +Invert(Fig):=( +//help:Invert("gr1"); + regional(tmp); + if(isstring(Fig),tmp=parse(Fig),tmp=Fig); // 16.01.27 + reverse(tmp); +); +Invert(nm,Fig):=Invert(nm,Fig,["nodisp"]); // from 16.01.27 +Invert(nm,Fig,options):=( +//help:Invert("1","gr1"); + regional(name,tmp); + name="-inv"+nm; + tmp=Invert(Fig); + Listplot(name,tmp,options); +);// upto 16.01.27 + +Paramoncrv(pP,Gdata):=( + regional(Tmp,PtL); +// Eps=10^(-8); + if(isstring(Gdata),PtL=parse(Gdata),PtL=Gdata); + Tmp=Nearestpt(pP,PtL); + Tmp_2; +); + +ParamonCurve(pP,nN,plist):=( +//help:ParamonCurve(A,10,"gr1"); + regional(PtL,Out,Pa,Pb,vV,vW,sS); + if(isstring(plist),PtL=parse(plist),PtL=plist); + PtL=apply(PtL,LLcrd(#));//16.10.16 + if(nN==length(PtL), + Out=nN; + , + Pa=PtL_nN; + Pb=PtL_(nN+1); + vV=Pb-Pa; + vW=pP-Pa; + sS=vV*vW/|vV|^2; + sS=min([max([sS,0]),1]); + Out=nN+sS; + ); + Out; +); + +Pointoncrv(tT,PtL):=PointonCurve(tT,PtL); +PointonCurve(tT,Gdata):=( +//help:PointonCurve(20.5,"gr1"); + regional(Out,Eps,nN,sS,Pa,Pb,PtL); + if(isstring(Gdata),PtL=parse(Gdata),PtL=Gdata); + if(length(PtL)==1,PtL=PtL_1); + Eps=10^(-4); + nN=floor(tT+Eps); + sS=max([tT-nN,0]); + if(nN==length(PtL), + Out=PtL_nN; + , + Pa=PtL_nN; + Pb=PtL_(nN+1); + Out=(1-sS)*Pa+sS*Pb; + ); + Out; +); + +Koutenseg(pA,pB,pC,pD):=Koutenseg(pA,pB,pC,pD,[]); +Koutenseg(pA,pB,pC,pD,options):=( + regional(Eps0,Eps,Eps2,pV,Sv2,Out,pP,pQ,Flg,p1,p2,q1,q2, + em1,eM1,em2,eM2,rT,Tmp1,Tmp2); + Eps0=10^(-4); + pV=pB-pA; + Sv2=|pV|; + pP=pC-pA; pQ=pD-pA; + Eps=10^(-3); + Eps2=0.2; + Tmp1=0; + forall(options, + if(Tmp1==0, + Eps=#; + Tmp1=1; + , + Eps2=#; + ); + ); + Flg=0; + if(Sv2<10^(-3), + Out=["inf","inf"]; + Flg=1; + ); + if(Flg==0, + Eps=min([Eps2,Eps/Sv2]); + p1=pP*pV/Sv2^2; + p2=[pP_2,-pP_1]*pV/Sv2^2; + q1=pQ*pV/Sv2^2; + q2=[pQ_2,-pQ_1]*pV/Sv2^2; + em1=-Eps; eM1=1+Eps; + em2=-Eps; eM2=Eps; + if(max([p1,q1])<em1 % min([p1,q1])>eM1, + Out=["inf","inf"]; + Flg=1; + ); + if(max([p2,q2])<em2 % min([p2,q2])>eM2, + Out=["inf","inf"]; + Flg=1; + ); + ); + if(Flg==0 & p2*q2<0, + rT=p1-(q1-p1)/(q2-p2)*p2; + if(rT>em1 & rT<eM1, + if(rT>-Eps0 & rT<1+Eps0, + Tmp1=pA+rT*pV; + Tmp2=min([max([rT,0]),1]); + Out=[Tmp1,Tmp2,0]; + , + Tmp1=pA+rT*pV; + Tmp2=min([max([rT,0]),1]); + Out=[Tmp1,Tmp2,1]; + ); + Flg=1; + ); + if(Flg==0 & (p1<em1 % p1>eM1 % p2<em2 % p2>eM2), + if(q1<em1 % q1>eM1 % q2<em2 % q2>eM2, + Out=["inf","inf"]; + Flg=1; + ); + if(Flg==0, + rT=min([max([p1,0]),1]); + Tmp1=pA+rT*pV; + Out=[Tmp1,rT,1]; + Flg=1; + ); + ); + ); + if(Flg==0 & (p1 > -Eps0 & p1 < 1 + Eps0 & p2 > -Eps0 & p2 < Eps0), + rT= p1; + Tmp1=pA+rT*pV; + Out= [Tmp1, rT, 0]; + Flg=1; + ); + if(Flg==0 & (q1 > -Eps0 & q1 < 1 + Eps0 & q2 > -Eps0 & q2 < Eps0), + rT= q1; + Tmp1=pA+rT*pV; + Out=[Tmp1,rT,0]; + Flg=1; + ); + if(Flg==0 & (p1<em1 % p1>eM1 % p2<em2 % p2>eM2), + if(q1<em1 % q1>eM1 % q2<em2 % q2>eM2, + Out=["inf","inf"]; + Flg=1; + ); + if(Flg==0, + rT=min([max([q1,0]),1]); + Tmp1=pA+rT*pV; + Out=[Tmp1,rT,1]; + Flg=1; + ); + ); + if(Flg==0 & (q1<em1 % q1>eM1% q2<em2 % q2>eM2), + rT=min([max([p1,0]),1]); + Tmp1=pA+rT*pV; + Out=[Tmp1,rT,1]; + Flg=1; + ); + if(Flg==0, + if(abs(p2)<abs(q2), + rT=min([max([p1,0]),1]); + , + rT=min([max([q1,0]),1]); + ); + Tmp1=pA+rT*pV; + Out=[Tmp1,rT,1]; + ); + Out; +); + +IntersectcrvsPp(Gr1,Gr2):=IntersectcrvsPp(Gr1,Gr2,[]); +IntersectcrvsPp(Gr1,Gr2,options):=( +//help:IntersectcrvsPp("gr1","pa1"); +//help:IntersectcrvsPp(options=[Eps2(0.1),"Dif=0.05"]); + regional(Out,Eps,Eps2,Eps0,Flg,Data1,Data2, + Tmp1,Tmp2,Tmp3,Tmp,KL1,KL2,pA,pB,Ni,Nj, + pP,pQ,rT,Flg,eqL,realL,opstr,Dif); + Eps=10^(-4); + Eps2=0.1; + Dif=0.05; // 2015.05.31 + Flg=0; + Tmp1=Divoptions(options); // + eqL=Tmp1_5; + realL=Tmp1_6; + opstr=Tmp1_(length(Tmp1)); + forall(eqL, + if(substring(#,0,1)=="D", + Tmp1=indexof(#,"="); + Dif=parse(substring(#,Tmp1,length(#))); + ); + ); + Tmp1=length(realL); + if(Tmp1>0, + Eps=realL_1; + if(Tmp1>1, + Eps2=realL_2; + ); + ); + Flg=0; + if(isstring(Gr1),Data1=parse(Gr1),Data1=Gr1); + if(isstring(Gr2),Data2=parse(Gr2),Data2=Gr2); + if(MeasureDepth(Data1)==2,Data1=Data1_1); + if(MeasureDepth(Data2)==2,Data2=Data2_1); + Data1=apply(Data1,LLcrd(#)); + Data2=apply(Data2,LLcrd(#)); + if(length(Data1)==length(Data2), + Tmp1=Reverse(Data2); + Eps0=10^(-6); + Tmp2=0; + forall(1..(length(Data1)), + Tmp2=Tmp2+abs(Data1_#-Data2_#); + ); + Tmp3=0; + forall(1..(length(Data1)), + Tmp3=Tmp3+abs(Data1_#-Tmp1_#); + ); + if(Tmp2<Eps0 % Tmp3<Eps0, + Out=[]; + Flg=1; + ); + ); + if(Flg==0, + KL1=[]; + KL2=[]; + forall(1..(length(Data1)-1),Ni, + pA=Data1_Ni; + pB=Data1_(Ni+1); + forall(1..(length(Data2)-1), + pP=Data2_#; pQ=Data2_(#+1); + Tmp=Koutenseg(pA,pB,pP,pQ,[Eps,Eps2]); + if(Tmp!=["inf","inf"], + if(Tmp_3==0, + Tmp1=[Tmp_1,Tmp_2,Ni,#]; + KL1=concat(KL1,[Tmp1]); + , + Tmp2=[Tmp_1,Tmp_2,Ni,#]; + KL2=concat(KL2,[Tmp2]); + ); + ); + ); + ); + Out=[]; + if(length(KL1)>0, + Tmp=KL1_1; + pP=Tmp_1; + rT=Tmp_2; + Ni=Tmp_3; + Nj=Tmp_4; + Tmp=[pP,Ni+rT,Nj]; + Out=[Tmp]; + ); + forall(2..(length(KL1)),Ni, + Tmp=KL1_Ni; + pP=Tmp_1; + Tmp2=0; + Flg=0; + forall(1..(length(Out)),Nj, + if(Flg==0, + Tmp=Out_Nj; + if(|pP-Tmp_1|<Eps, + Tmp2=1; + Flg=1; + ); + ); + ); + if(Tmp2==0, + Tmp=KL1_Ni; + pP=Tmp_1; + rT=Tmp_2; + Tmp1=Tmp_3; + Tmp2=Tmp_4; + Tmp=[pP,Tmp1+rT,Tmp2]; + Out=concat(Out,[Tmp]); + ); + ); + forall(1..(length(KL2)),Ni, + Tmp=KL2_Ni; // 15.11.21 Usui + pP=Tmp_1; + Tmp2=0; + Flg=0; + forall(1..(length(Out)),Nj, + if(Flg==0, + Tmp=Out_Nj; + if(|pP-Tmp_1|<Eps, + Tmp2=1; + Flg=1; + ); + ); + ); + if(Tmp2==0, + Tmp=KL2_Ni; + rT=Tmp_2; + rT=min([max([rT,0]),1]); // 15.11.21 Usui + Tmp=[pP,Tmp_3+rT,Tmp_4]; + Out=concat(Out,[Tmp]); + ); + ); + ); + Tmp1=Out; // 15.04.06 from + Out=[]; + forall(Tmp1,Tmp2, + Tmp3=select(1..(length(Out)),//16.11.27, + |Out_#_1-Tmp2_1|<Dif & |Out_#_2-Tmp2_2|<=1& |Out_#_3-Tmp2_3|<=1); + //17.04.13 + if(length(Tmp3)==0, + Out=append(Out,Tmp2); + , + forall(Tmp3, //16.11.27 + Out_#_1=(Out_#_1+Tmp2_1)/2;//17.04.14 + ); + ); + ); // 15.04.06 upto + Out; +); + +Intersectcrvs(Gr1,Gr2):=Intersectcrvs(Gr1,Gr2,[]); +//help:Intersectcrvs("gr1","pa1"); +Intersectcrvs(Gr1,Gr2,options):=( + regional(tmp,tmp1,tmp2); + tmp1=IntersectcrvsPp(Gr1,Gr2,options); + apply(tmp1,#_1); +); + +NearestptcrvPhy(point,PL):=( + regional(tmp,pP,plist); + pP=Pcrd(point); + if(isstring(PL),plist=parse(PL),plist=PL); + if(MeasureDepth(plist)==2,plist=plist_1); + plist=apply(plist,#); // 14.12.18 + tmp=Nearestpt(pP,plist); + tmp=tmp_1; + [tmp_1/SCALEX,tmp_2/SCALEY]; +); + +Nearestptcrv(point,plist):=( +//help:Nearestptcrv(A,"gr1"); + regional(tmp); + tmp=Nearestpt(point,plist); + tmp_1; +); + +Nearestpt(point,PL2):=( + regional(PL1,PL,Ans,Flg,Eps,pA,Pm,Im,Sm,Nn,Ni, + a1,b1,a2,b2,v1,v2,x1,x2,Tmp,rT,pP,sS,Lm,Pm,Sm,Flg); +//help:Nearestpt("gr1","gr2"); + if(isstring(point),PL1=parse(point),PL1=point); + if(MeasureDepth(PL1)==2,PL1=PL1_1); + if(!islist(PL1_1), + PL1=[PL1]; + Flg=0; + , + Flg=1; + ); + if(isstring(PL2),PL=parse(PL2),PL=PL2); + if(MeasureDepth(PL)==2,PL=PL_1); + Eps=10^(-6); + Ans=[PL1_1,1,PL_1,1,|PL1_1-PL_1|]; + forall(1..(length(PL1)),Nn, // 16.05.04 + pA=PL1_Nn; + Pm=PL_1; + Im=1; + Sm=|Pm-pA|; + forall(1..(length(PL)-1),Ni, + a1=PL_Ni_1; a2=PL_Ni_2; + b1=PL_(Ni+1)_1; b2=PL_(Ni+1)_2; + v1=b1-a1; v2=b2-a2; + x1=pA_1; x2=pA_2; + Tmp=v2^2+v1^2; + if(abs(Tmp)>Eps, + rT=(-a2*v2-v1*a1+v1*x1+x2*v2)/Tmp; + if(rT<-Eps, + pP=[a1,a2]; + , + if(rT>1+Eps, + pP=[b1,b2]; + , + pP=[a1+rT*v1,a2+rT*v2]; + ); + ); + sS=|pP-pA|; + if(sS<Sm-Eps, + Tmp=ParamonCurve(pP,Ni,PL); + Pm=pP; Lm=Tmp; Sm=sS; + ); + ); + if(Sm<Ans_5, // 16.05.03from + Ans=[pA,Nn,Pm,Lm,Sm]; + ); + ); // 16.05.03upto + ); + if(Flg==0, + Ans=Ans_(3..5); + ); + Ans; +); + +Derivative(fun,var,value):=( +//help:Derivative("x^3","x",2); + regional(str,tmp); + str="d("; + str=str+replace(fun,var,"#")+","; + str=str+value+")"; + tmp=Pcrd([1,parse(str)]); // 14.11.08 + tmp_2; +); + +Integrate(pltdata,range):=Integrate(pltdata,range,[]); +Intergrate(Arg1,Arg2,Arg3):=( + regional(pltdata,range,options,fnstr,vartr); + if(islist(Arg2), + pltdata=Arg1; + range=Arg2; + options=Arg3; + Integrate(pltdata,range,options); + , + fnstr=Arg1; + vastr=Arg2; + range=Arg3; + Integrate(fnstr,vastr,range,[]); + ); +); + +Integrate(pltdata,range,options):=( +//help:Integrate("gr1",[1,3]); +//help:Integrate(options=["Rule=o"]); + regional(tmp,tmp1,eqL,Rule,pdata,Sm,ptP,ptQ,list,va1,va2); + tmp=Divoptions(options); + eqL=tmp_5; + Rule="o"; + forall(eqL, + if(Toupper(substring(#,0,1))=="R", + tmp=indexof(#,"="); + Rule=substring(#,tmp,tmp+1); + ); + ); + if(Rule=="o", + Sm= IntegrateO(pltdata,range); + , + if(isstring(pltdata),pdata=parse(pltdata),pdata=pltdata); + if(MeasureDepth(pdata)==2,pdata=pdata_1); + va1=MeetCurve(pdata,range_1,0); + va2=MeetCurve(pdata,range_2,0); + list=select(pdata,(#_1>range_1 & #_1<range_2)); + list=apply(list,LLcrd(#)); // 15.09.14 + list=concat([va1],list); + list=concat(list,[va2]); + Sm=0; + forall(1..(length(list)-1), + ptP=list_#; // 15.09.14 + ptQ=list_(#+1); + Sm=Sm+(ptP_2+ptQ_2)*(ptQ_1-ptP_1)/2; + ); + Sm; + ); +); + +Integrate(fnstr,vastr,range,options):=( +//help:Integrate("sin(x)","x",[0,pi],["Num=100","Rule=s"]); + regional(tmp,tmp1,Sm,Lx,Rx,va1,va2,Num,Waysx,ex,dx,xn,yn,x0,x1,x2,y0,y1,y2); + Num=100; + Way="t"; + forall(options, + if(indexof(#,"=")>0, + if(indexof(#,"N=")>0, + Num=parse(substring(#,indexof(#,"="),length(#))); + ); + if(indexof(#,"Num=")>0, + Num=parse(substring(#,indexof(#,"="),length(#))); + ); + if(Toupper(substring(#,0,1))=="R", + tmp=indexof(#,"="); + Way=substring(#,tmp,tmp+1); + ); + ); + ); + Sm=0; + if(Way=="t", + forall(1..Num, + Lx=range_1+(range_2-range_1)*(#-1)/Num; + Rx=range_1+(range_2-range_1)*#/Num; + va1=parse(replace(fnstr,vastr,textformat(Lx,5))); + va2=parse(replace(fnstr,vastr,textformat(Rx,5))); + Sm=Sm+(va1+va2)*(Rx-Lx)/2; + ); + , + sx=range_1; + ex=range_2; + dx=(ex-sx)/Num; + xn=apply(0..Num,sx+#*dx); + yn=apply(xn,parse(replace(fnstr,vastr,textformat(#,5)))); + dx=dx/2; + repeat(Num,s, + x0=xn_s; + x1=(xn_s+xn_(s+1))/2; + x2=xn_(s+1); + y0=yn_s; + y1=parse(replace(fnstr,vastr,textformat(x1,5))); + y2=yn_(s+1); + Sm=Sm+dx*(y0+4*y1+y2)/3; + ); + ); + Sm; +); + +IntegrateO(p0org,p1org,p2org,p3org):=( + regional(p0,p1,p2,p3,pQ,pR,cc,p01,p02, + p11,p12,p21,p22,p31,p32, tmp); + if(ispoint(p0org),p0=p0org.xy,p0=p0org); // 16.03.10 + if(ispoint(p1org),p1=p1org.xy,p1=p1org); // 16.03.16 + if(ispoint(p2org),p2=p2org.xy,p2=p2org); + if(ispoint(p3org),p3=p3org.xy,p3=p3org); + tmp=1+sqrt((1+Dotprod(p2-p0,p3-p1)/|p2-p0|/|p3-p1|)/2); + cc=4*|p2-p1|/3/(|p2-p0|+|p3-p1|)/tmp; + pQ=p1+cc*(p2-p0); + pR=p2+cc*(p1-p3); + p01=p1_1; p02=p1_2; + p31=p2_1; p32=p2_2; + p11=pQ_1; p12=pQ_2; + p21=pR_1; p22=pR_2; + tmp=-6*p12*p01+3*p12*p21+3*p12*p31+6*p02*p11- + 10*p02*p01+3*p02*p21+p02*p31-3*p22*p11- + 3*p22*p01+6*p22*p31-3*p32*p11-p32*p01- + 6*p32*p21+10*p32*p31; + tmp=tmp/20; +); +IntegrateO(pltdata,rangeorg):=( +//help:IntegrateO("gr1",[0,2]); + regional(tmp,tmp1,tmp2,pdata,va1,va2,list,Bzk,Bzc,range,pmflg, + Sm,p0,p1,p2,p3,pQ,pR,cc,p01,p02,p11,p12,p21,p22,p31,p32); + if(isstring(pltdata), + pdata=parse(pltdata); + , + pdata=pltdata; + ); + if(MeasureDepth(pdata)==2,pdata=pdata_1); + range=rangeorg; + pmflg=1; + if(range_2<range_1, + range=reverse(range); + pmflg=-1; + ); + va1=MeetCurve(pdata,range_1,0); + va2=MeetCurve(pdata,range_2,0); + list=select(pdata,(#_1>range_1 & #_1<range_2)); + if(length(list)>0, // 16.09.25 + if(list_1_1>list_(length(list))_1, //16.11.03 + list=reverse(list); +// pmflg=pmflg*(-1); + ); + ); + list=apply(list,LLcrd(#)); + list=concat([va1],list); + list=concat(list,[va2]); + Sm=0; + forall(1..(length(list)-1), + p1=list_#; + p2=list_(#+1); + if(#==1 % #==length(list)-1, + tmp1=(p1_2+p2_2)*(p2_1-p1_1)/2; + Sm=Sm+tmp1; + , + p0=list_(#-1); + p3=list_(#+2); + tmp=1+sqrt((1+Dotprod(p2-p0,p3-p1)/|p2-p0|/|p3-p1|)/2); + cc=4*|p2-p1|/3/(|p2-p0|+|p3-p1|)/tmp; + pQ=p1+cc*(p2-p0); + pR=p2+cc*(p1-p3); + p01=p1_1; p02=p1_2; + p31=p2_1; p32=p2_2; + p11=pQ_1; p12=pQ_2; + p21=pR_1; p22=pR_2; + tmp1=-6*p12*p01+3*p12*p21+3*p12*p31+6*p02*p11- + 10*p02*p01+3*p02*p21+p02*p31-3*p22*p11- + 3*p22*p01+6*p22*p31-3*p32*p11-p32*p01- + 6*p32*p21+10*p32*p31; + tmp1=tmp1/20; + Sm=Sm+tmp1; + ); + ); + if(pmflg==-1, + Sm=-Sm; + ); + Sm; +); + +Findarea(pdstr):=( +//help:Findarea("sgABCA"); + regional(pd,p1,p2,s,tmp); + if(isstring(pdstr),pd=parse(pdstr),pd=pdstr); + s=0; + forall(1..(length(pd)-1), + p1=Lcrd(pd_#); + p2=Lcrd(pd_(#+1)); + tmp=(p1_2+p2_2)*(p2_1-p1_1)/2; + s=s+tmp; + ); + if(s<0,s=-s); + s; +); + +Findarea(pdstr):=( // 15.11.27 +//help:Findarea("cr1"); + regional(pd,p0,p1,p2,p3,s,tmp); + if(isstring(pdstr),pd=parse(pdstr),pd=pdstr); + s=0; + forall(1..(length(pd)-1), + p1=pd_#; + p2=pd_(#+1); + if(#==1,p0=pd_(length(pd)-1),p0=pd_(#-1)); + if(#==length(pd)-1,p3=pd_2,p3=pd_(#+2)); + tmp=IntegrateO(p0,p1,p2,p3); + s=s+tmp; + ); + if(s<0,s=-s); + s; +); + +Findlength(pdstr):=( +//help:Findlength("gr1"); + regional(pd,p1,p2,s,tmp); + if(isstring(pdstr),pd=parse(pdstr),pd=pdstr); + s=0; + forall(1..(length(pd)-1), + p1=Lcrd(pd_#); + p2=Lcrd(pd_(#+1)); + tmp=|p2-p1|; + s=s+tmp; + ); + s; +); + +Inversefun(fnstr,rngstr,value):=( + regional(tmp,varstr,range,x1,x2,x3,va1,va2); + tmp=indexof(rngstr,"="); + varstr=substring(rngstr,0,tmp-1); + range=parse(substring(rngstr,tmp,length(rngstr))); + x1=range_1; x2=range_2; + repeat(15, + x3=(x1+x2)/2; + va1=parse(replace(fnstr,varstr,textformat(x1,5))); + va2=parse(replace(fnstr,varstr,textformat(x3,5))); + if((va1>value & va2>value) % (va1<value & va2<value), + x1=x3; + , + x2=x3; + ); + ); + va1=parse(replace(fnstr,varstr,textformat(x1,5)))-value; + va2=parse(replace(fnstr,varstr,textformat(x2,5)))-value; + if(x1==range_1 % x2==range_2, + println("not found in ("+textformat(range_1,5) + +","+textformat(range_2,5)+")"); + ); + if(abs(va1)<=abs(va2),x1,x2); +); + +Com0th(String):=( + regional(str); + str=replace(String,LFmark,""); + COM0thlist=append(COM0thlist,str); +); + +Com1st(String):=( + regional(str); + str=replace(String,LFmark,""); + GLIST=append(GLIST,str); // 15.05.27 +// COM1stlist=append(COM1stlist,str); +); + +Com2nd(String):=( +// help:Com2nd(""); + regional(str); + str=replace(String,LFmark,""); + COM2ndlist=append(COM2ndlist,str); +); + +Com2ndpre(String):=( + regional(str); + str=replace(String,LFmark,""); + COM2ndlist=prepend(str,COM2ndlist); +); + +Texcom(String):=( +//help:Texcom("\color[cmyk]{0,0,0,0.5}"); + regional(str); + str="Texcom("+Dq+String+Dq+")"; + Com2nd(str); +); + +Ketcindylogo():=( +//help:Ketcindylogo(); + Com2nd("Texcom("+Dq+"\def\ketcindy{{K\kern-.20em + \lower.5ex\hbox{E}\kern-.125em{TCindy}}}"+Dq+")"); +); + +Drwline():=Drwline(textformat(GrL,5)); +Drwline(gstr):=( + Com2nd("Drwline("+gstr+")"); +); + +Dashline(gstr):=( + Com2nd("Dashline("+gstr+")"); +); + +Invdashline(gstr):=( + Com2nd("Invdashline("+gstr+")"); +); + +Dottedline(gstr):=( + Com2nd("Dottedline("+gstr+")"); +); + +SetEnglish():=( +//help:SetEnglish(); + Com0th("setlanguage('en')"); +); + +Drawlinetype(name,type):=( +//help:Drawlinetype("gr1","da,1"); + regional(Dop,tmp,tmp1,tmp2); + Dop=""; + tmp1=indexof(type,","); + if(tmp1>0, + Dop=","+substring(type,tmp1,length(type)); + ); + tmp1=Toupper(substring(type,0,3)); + if(tmp1=="DR", + Drwline(name+Dop); + ); + if(tmp1=="DA", + Dashline(name+Dop); + ); + if(tmp1=="ID", + Invdashline(name+Dop); + ); + if(tmp1=="DO", + Dottedline(name+Dop); + ); +); + +Setunitlen(string):=( +//help:Setunitlen("5mm"); + ULEN=string; + GLIST=append(GLIST,"Setunitlen("+Dq+string+Dq+")"); +); + +Setmarklen(ratio):=( +//help:Setmarklen(0.2); + MARKLEN=ratio*0.2;//16.11.01 + Com2nd("Setmarklen("+textformat(ratio,5)+")"); +); + +Setorigin(point):=( +//help:Setorigin([1,2]); + Com2nd("Setorigin("+textformat(point,5)+")"); +); + +Fontsize(sizestr):=( +//help:Fontsize("s"); + Com2nd("Fontsize('"+sizestr+"')"); +); + +Setpen(width):=( +//help:Setpen(2); + PenThick=PenThickInit*width; // 16.04.09 + Com2nd("Setpen("+text(width)+")"); +); + +Lcrd(pt):=( + regional(tmp); + if(ispoint(pt), + tmp=[pt.x/SCALEX,pt.y/SCALEY]; + , + tmp=pt; + ); + tmp; +); + +Pcrd(pt):=( + regional(tmp); + if(ispoint(pt), + tmp=re(pt.xy); // 15.07.24 + , + tmp=[pt_1*SCALEX,pt_2*SCALEY]; + ); + tmp; +); + +LLcrd(pt):=( + regional(tmp); + if(ispoint(pt), + tmp=pt.xy + , + tmp=pt; + ); + tmp=[tmp_1/SCALEX,tmp_2/SCALEY]; + tmp; +); + +Doscaling(pltdata):=( + regional(Level,Out,gL,gr,tmp); + if(ispoint(pltdata) % isreal(pltdata_1), + gL=[[pltdata]]; + Level=0; + , + if(ispoint(pltdata_1) % isreal(pltdata_1_1), + gL=[pltdata]; + Level=1; + , + gL=pltdata; + Level=2; + ); + ); + Out=[]; + forall(gL,gr, + tmp=apply(gr,Lcrd(#)); + tmp=apply(tmp,LLcrd(#)); + Out=concat(Out,[tmp]); + ); + if(Level==0, + Out=Out_1_1; + ); + if(Level==1, + Out=Out_1; + ); + Out; +); + +Unscaling(pltdata):=( + regional(Level,Out,gL,gr,tmp); + if(ispoint(pltdata) % isreal(pltdata_1), + gL=[[pltdata]]; + Level=0; + , + if(ispoint(pltdata_1) % isreal(pltdata_1_1), + gL=[pltdata]; + Level=1; + , + gL=pltdata; + Level=2; + ); + ); + Out=[]; + forall(gL,gr, + tmp=apply(gr,Lcrd(#)); + tmp=apply(tmp,LLcrd(#)); + Out=concat(Out,[tmp]); + ); + if(Level==0, + Out=Out_1_1; + ); + if(Level==1, + Out=Out_1; + ); + Out; +); + +Setpt(n):=Ptsize(n); +//help:Setpt(5); +Ptsize(n):=( + println("Setpt("+text(n)+")"); + TenSize=TenSizeInit*n; + Com2nd("Setpt("+text(n)+")"); // 14.01.19 +); + +Definecolor(name,data):=( +//help:Definecolor("mycolor",[1,1,1,0]); + regional(type,tmp); + if(length(data)>3,type="cmyk",type="rgb"); + tmp=text(data); + tmp=substring(tmp,1,length(tmp)-1); + tmp="\definecolor{"+name+"}{"+type+"}{"+tmp+"}"; + Texcom(tmp); +); + +Setcolor(Par):=( +//help:Setcolor([1,0,0,1]); +//help:Setcolor([1,1,0]); + if(islist(Par), + if(length(Par)==3, + Setcolorrgb(Par); // 2015.04.28 +// KCOLOR=Par; + ); + if(length(Par)==4, + Setcolor(Par,[]); + ); + , + Setcolor(Par,[]); + ); +); + +Setcolor(colorname,options):=( +//help:Setcolor("greenyellow",0.3); + regional(tmp); + if(isstring(colorname), + tmp="Setcolor("+Dq+colorname+Dq; + if(length(options)>0, + tmp=tmp+","+text(options_1); + ); + Com2nd(tmp+")"); + ); + if(islist(colorname), + tmp=text(colorname); + tmp=substring(tmp,1,length(tmp)-1); + tmp="Texcom("+Dq+"\color[cmyk]{"+tmp+"}"+Dq+")"; + Com2nd(tmp); + ); +); + +Setcolorrgb(colorlist):=( +// help:Setcolorrgb([0.5,0.3,0.4]); + regional(tmp); + tmp=text(colorlist); + tmp=substring(tmp,1,length(tmp)-1); + tmp="Texcom("+Dq+"\color[rgb]{"+tmp+"}"+Dq+")"; + Com2nd(tmp); +); + +ColorRgb2Cmyk(clr):=( +// help:ColorRgb([0.2,0.5,0.1]); + regional(clrnew,tmp,black); + tmp=apply(clr,1-#); + black=min(tmp); + tmp=apply(clr,(1-#-black)/(1-black)); + clrnew=append(tmp,black); + clrnew; +); + +ColorCmyk2Rgb(clr):=( +// help:ColorRgb([0.2,0.5,0.1,0.2]); + regional(clrnew,tmp,black); + black=clr_4; + tmp=apply(clr,1-min(1,#*(1-black)+black)); + clrnew=tmp_(1..3); + clrnew; +); + +Colorrgbhsv(rgb):=( + regional(varR,varG,varB,varMin,varMax,delMax,hh,ss,vv,delR,delG,delB); + varR = rgb_1; + varG = rgb_2; + varB = rgb_3; + varMin = min( [varR, varG, varB] ); + varMax = max( [varR, varG, varB] ); + delMax = varMax - varMin ; + vv = varMax; + if ( delMax == 0 , + hh = 0 ; + ss = 0 ; + , + ss = delMax / varMax; + delR = ( ( ( varMax - varR ) / 6 ) + ( delMax / 2 ) ) / delMax; + delG = ( ( ( varMax - varG ) / 6 ) + ( delMax / 2 ) ) / delMax; + delB = ( ( ( varMax - varB ) / 6 ) + ( delMax / 2 ) ) / delMax; + if( varR == varMax , + hh = delB - delG; + , + if ( varG == varMax, + hh = ( 1 / 3 ) + delR - delB; + , + if ( varB == varMax , + hh = ( 2 / 3 ) + delG - delR; + ); + ); + ); + if ( hh < 0 ,hh = hh+1); + if ( hh > 1 ,hh = hh-1); + ); + [hh*360,ss,vv]; +); + +Colorhsvrgb(sL):=( + regional(tmp,tmp1,tmp2,tmp3,hi,ff,dL); + tmp=[sL_1/60,sL_2,sL_3]; + hi=mod(floor(tmp_1),6); + ff=tmp_1-floor(tmp_1); + tmp2=tmp_3*[1-tmp_2,1-tmp_2*ff,1-tmp_2*(1-ff)]; + tmp2=append(tmp2,tmp_3); + if(hi==0,dL=tmp2_[4,3,1]); + if(hi==1,dL=tmp2_[2,4,1]); + if(hi==2,dL=tmp2_[1,4,3]); + if(hi==3,dL=tmp2_[1,2,4]); + if(hi==4,dL=tmp2_[3,1,4]); + if(hi==5,dL=tmp2_[4,1,2]); + dL; +); + +Colorrgbhsl(rgb):=( + regional(rr,gg,bb,mn,mx,delta,deltaR,deltaG,deltaB,hh,ss,ll); + rr = rgb_1 ; + gg = rgb_2 ; + bb = rgb_3 ; + mn = min([rr, gg, bb]); + mx = max([rr, gg, bb]); + delta = mx - mn; + ll = (mx + mn) / 2; + if (delta == 0, + hh=0; + ss=0; + , + if (ll < 0.5, + ss = delta/ (mx + mn); + , + ss = delta / (2 - mx - mn); + ); + deltaR = (((mx - rr) / 6) + (delta / 2)) / delta; + deltaG = (((mx - gg) / 6) + (delta / 2)) / delta; + deltaB = (((mx - bb) / 6) + (delta / 2)) / delta; + if (rr == mx, + hh = deltaB - deltaG; + , + if (gg == mx, + hh = (1 / 3) + deltaR - deltaB; + , + if (bb == mx, + hh = (2 / 3) + deltaG - deltaR; + ); + ); + ); + if ( hh < 0, hh = hh+1); + if ( hh > 1, hh = hh-1); + ); + [hh*360,ss,ll]; +); + +Colorhslrgb(hsl):=( + regional(hh,ss,ll,rr,gg,bb,var1,var2); + hh=hsl_1/360; + ss=hsl_2; + ll=hsl_3; + if ( ss == 0.0, + rr = ll ; + gg = ll ; + bb = ll ; + , + if ( ll < 0.5 , + var2 = ll * ( 1.0 + ss ); + , + var2 = ( ll + ss ) - ( ss * ll ); + ); + var1 = 2.0 * ll - var2; + rr = hue2rgb( var1, var2, hh + ( 1.0 / 3.0 ) ); + gg = hue2rgb( var1, var2, hh ); + bb = hue2rgb( var1, var2, hh - ( 1.0 / 3.0 ) ); + ); + [rr,gg,bb]; +); + +hue2rgb(vv1,vv2,vh):=( + regional(out); + if ( vh < 0.0 ,vh =vh+1); + if ( vh > 1.0 ,vh =vh-1); + if ( 6.0*vh < 1.0 , + out = vv1 + ( vv2 - vv1 ) * 6.0 * vh ; + , + if( 2.0*vh < 1.0 , + out = vv2; + , + if ( 3.0*vh < 2.0 , + out = vv1 + ( vv2 - vv1 ) * ( ( 2.0 / 3.0 ) - vh ) * 6.0 ; + , + out= vv1 ; + ); + ); + ); + out; +); + +Colorrgbhwb(sL):=( + regional(dl1,dl2,dl3); + dl1 = Colorrgbhsl(sL)_1;//Colorcode("rgb","hsl",sL)_1; + dl2 = min(sL); + dl3 = 1 - max(sL); + dL= [dl1, dl2 , dl3 ]; +); + +Colorhwbrgb(sLorg):=( + regional(sL,tmp,tmp1,tmp2,tmp3,ratio,ff,ii,vv,nn,dL,flg); + sL=sLorg; + sL=[sL_1/360,sL_2,sL_3]; + ratio = sL_2 + sL_3; + // sL_2 + sL_3 cant be > 1 + if (ratio > 1., + sL_2 =sL_2 / ratio; + sL_3 = sL_3 / ratio; + ); + ii = floor(6 * sL_1); + vv = 1 - sL_3; + ff = 6 * sL_1 - ii; + if(mod(ii,2)==1,ff = 1 - ff); + nn = sL_2 + ff * (vv - sL_2); // linear interpolation + tmp=[[vv,nn,sL_2],[nn,vv,sL_2],[sL_2,vv,nn], + [sL_2,nn,vv],[nn,sL_2,vv],[vv,sL_2,nn],[vv,nn,sL_2]]; + flg=0; + forall(0..6, + if(flg==0 & ii == # , + dL=tmp_(#+1); + flg=1; + ); + ); + dL; +); + +Colorhslhsv(sL):=( + regional(dl1,dl2,dl3,dL); + dl1=sL_1; + if(sL_3 == 0, + // no need to do calc on black + // also avoids divide by 0 error + dL= [0, 0, 0]; + , + sL_3 = sL_3 * 2; + if(sL_3 <= 1,sL_2 = sL_2 * sL_3,sL_2 = sL_2 * (2 - sL_3)); + dl3 = (sL_3 + sL_2) / 2; + dl2 = (2 * sL_2) / (sL_3 + sL_2); + dL = [dl1, dl2, dl3]; + ); + dL; +); + +Colorcode(src,dest,sL):=( +//help:Colorcode("rgb","cmyk",[1,0.5,0]); + regional(tmp,tmp1,tmp2,tmp3,mn,mx,delta,black,dL,flg); + regional(dl1,dl2,dl3); + if(src=="rgb" & dest=="hsv", dL=Colorrgbhsv(sL)); + if(src=="hsv" & dest=="rgb", dL=Colorhsvrgb(sL)); + if(src=="rgb" & dest=="hsl", dL=Colorrgbhsl(sL)); + if(src=="hsl" & dest=="rgb", dL=Colorhslrgb(sL)); + if(src=="rgb" & dest=="hwb", dL=Colorrgbhwb(sL)); + if(src=="hwb" & dest=="rgb", dL=Colorhwbrgb(sL)); + if(src=="hsl" & dest=="hsv", dL=Colorhslhsv(sL)); + if(src=="hsv" & dest=="hsl", + dl1 = sL_1; + dl3 = (2 - sL_2) * sL_3; + dl2 = sL_2 * sL_3; + if(dl3 <= 1,dl2 = dl2/dl3,dl2=dl2/(2 - dl3)); + dl3 =d l3/ 2; + dL = [dl1, dl2 , dl3 ]; + ); + + if(src=="rgb" & dest=="cmyk", + tmp=apply(sL,1-#); + black=min(tmp); + tmp=apply(sL,(1-#-black)/(1-black)); + dL=append(tmp,black); + ); + if(src=="cmyk" & dest=="rgb", + black=sL_4; + tmp=apply(sL,1-min(1,#*(1-black)+black)); + dL=tmp_(1..3); + ); + if(src=="hsv" & dest=="cmyk", + tmp=Colorcode("hsv","rgb",sL); + dL=Colorcode("rgb","cmyk",tmp); + ); + if(src=="cmyk" & dest=="hsv", + tmp=Colorcode("cmyk","rgb",sL); + dL=Colorcode("rgb","hsv",tmp); + ); + + if(src=="hsv" & dest=="hwb", + tmp = Colorcode("hsv","rgb",sL); + dL = Colorcode("rgb","hwb",tmp); + ); + if(src=="hwb" & dest=="hsv", + tmp = Colorcode("hwb","rgb",sL); + dL = Colorcode("rgb","hsv",tmp); + ); + if(src=="hsl" & dest=="hwb", + tmp = Colorcode("hsl","rgb",sL); + dL = Colorcode("rgb","hwb",tmp); + ); + if(src=="hwb" & dest=="hsl", + tmp = Colorcode("hwb","rgb",sL); + dL = Colorcode("rgb","hsl",tmp); + ); + if(src=="hsl" & dest=="cmyk", + tmp = Colorcode("hsl","rgb",sL); + dL = Colorcode("rgb","cmyk",tmp); + ); + if(src=="hwb" & dest=="cmyk", + tmp = Colorcode("hwb","rgb",sL); + dL = Colorcode("rgb","cmyk",tmp); + ); + if(src=="cmyk" & dest=="hsl", + tmp = Colorcode("cmyk","rgb",sL); + dL = Colorcode("rgb","hsl",tmp); + ); + if(src=="cmyk" & dest=="hwb", + tmp = Colorcode("cmyk","rgb",sL); + dL = Colorcode("rgb","hwb",tmp); + ); + if(src=="hsb" & dest=="rgb",dL=Colorcode("hsv","rgb",sL)); + if(src=="rgb" & dest=="hsb",dL=Colorcode("rgb","hsv",sL)); + + if(src=="hsb" & dest=="hsl",dL=Colorcode("hsv","hsl",sL)); + if(src=="hsl" & dest=="hsb",dL=Colorcode("hsl","hsv",sL)); + + if(src=="hsb" & dest=="hwb",dL=Colorcode("hsv","hwb",sL)); + if(src=="hwb" & dest=="hsb",dL=Colorcode("hwb","hsv",sL)); + + if(src=="hsb" & dest=="cmyk",dL=Colorcode("hsv","cmyk",sL)); + if(src=="cmyk" & dest=="hsb",dL=Colorcode("cmyk","hsv",sL)); + + dL; +); + +Addcolor(cmdorg,list):=( +//help:Addcolor("Plotdata('1','x^2','x',[])",[1,1,0]); + regional(rgb,cmyk,cmd,tmp,tmp1,tmp2,tmp3,tmp4); + cmd=replace(cmdorg,"'",Dq); + if(length(list)==3, + rgb=list; + cmyk=Colorcode("rgb","cmyk",list); + , + cmyk=list; + rgb=Colorcode("cmyk","rgb",list); + ); + tmp1="color->"+text(rgb); + tmp2="Setcolor("+text(cmyk)+");"; + tmp3=substring(cmd,0,length(cmd)-2); + tmp=substring(tmp3,length(tmp3)-1,length(tmp3)); + if(tmp!="[", + tmp3=tmp3+","; + ); + tmp3=tmp3+Dq+tmp1+Dq+"])"; + parse(tmp2); + parse(tmp3); + Setcolor("black"); +); + +Colorinfile(filename,clrf,clrt):=( + regional(tmp,tmp1,tmp2,head,cstrL,chstrL,head,body); + if(length(clrf_1)==3, + head="[rgb]{"; + , + head="[cmyk]{"; + ); + tmp=apply(clrf,text(#)); + cstrL=apply(tmp,head+substring(#,1,length(#)-1)+"}"); + if(length(clrt_1)==3, + head="[rgb]{"; + , + head="[cmyk]{"; + ); + tmp=apply(clrt,text(#)); + chstrL=apply(tmp,head+substring(#,1,length(#)-1)+"}"); + tmp1=load(filename); + tmp=tokenize(tmp1,"{\unitlength"); + head=tokenize(tmp_1,"%%%"); + head=head_(2..(length(head))); + head=apply(head,"%%%"+#); + tmp2=tmp_2; + forall(1..5, + tmp2=replace(tmp2,cstrL_#,chstrL_#); + ); + body=tokenize(tmp2,"%"); + body_1="{\unitlength"+body_1; + body=apply(body,#+"%"); + body=body_(1..(length(body)-1)); + tmp=replace(filename,".tex","new.tex"); + SCEOUT=openfile(tmp); + forall(head, + println(SCEOUT,#); + ); + forall(1..(length(body)), + tmp=body_#; + if(#<length(body), + println(SCEOUT,tmp); + , + print(SCEOUT,tmp) + ); + ); + closefile(SCEOUT); +); + +GetLinestyle(str,name):=( + regional(noflg,tmp,tmp1,tmp2,Dop,Ltype,subflg); + Ltype=-1; + Dop=""; + tmp1=indexof(str,","); + if(tmp1>0, + Dop=","+substring(str,tmp1,length(str)); + ); + noflg=parse(substring(str,0,1)); + if(substring(name,0,3)=="sub",subflg=1,subflg=0); // 16.02.29 + tmp1=substring(str,1,3); + if(tmp1=="dr" % tmp1=="Dr", + Ltype=0; + if(noflg==0 & subflg==0, // 16.02.29 + Drwline(name+Dop); + ); + ); + if(tmp1=="da" % tmp1=="Da", + Ltype=1; + if(noflg==0 & subflg==0, // 16.02.29 + Dashline(name+Dop); + ); + ); + if(tmp1=="id" % tmp1=="Id", + Ltype=2; // 15.11.09 + if(noflg==0 & subflg==0, // 16.02.29 + Invdashline(name+Dop); + ); + ); + if(tmp1=="do" % tmp1=="Do", + Ltype=3; + if(noflg==0 & subflg==0, // 16.02.29 + Dottedline(name+Dop); + ); + ); + if(tmp1=="dp" % tmp1=="Dp", + Ltype=0; + tmp1=parse(name); + tmp2=""; + forall(tmp1, + tmp2=tmp2+textformat(#_1,5)+","; + ); + tmp2=substring(tmp2,0,length(tmp2)-1); + if(noflg==0, + Drwpt(tmp2+Dop); + ); + ); + if(tmp1=="no" % tmp1=="No", + Ltype=10; + ); + Ltype; +); + +Chunderscore(str):=( + regional(flg,tmp,tmp1,tmp2,tmp3); + if(indexof(str,"]")>0, + tmp1=replace(str,"]",",]"); + , + tmp1=str+","; + ); + flg=0; + tmp2=[]; + tmp3=0; + forall(1..(length(tmp1)), + if(flg==0, + tmp=substring(tmp1,tmp3,length(tmp1)); + tmp=indexof(tmp,"_"); + if(tmp==0, + flg=1; + , + tmp3=tmp3+tmp; + tmp=substring(tmp1,tmp3,length(tmp1)); + tmp=indexof(tmp,",")-1; + tmp=substring(tmp1,tmp3,tmp3+tmp); + tmp2=append(tmp2,tmp); + ); + ); + ); + forall(tmp2, + tmp1=replace(tmp1,"_"+#,"("+#+")"); + ); + if(indexof(str,"]")>0, + tmp1=replace(tmp1,",]",")"); + tmp1=replace(tmp1,"[","list("); + , + tmp1=substring(tmp1,0,length(tmp1)-1); + ); + tmp1; +); + +//AddGraph(pltdata):=AddGraph("-"+pltdata,pltdata,[]); +AddGraph(nm,pltdata):=AddGraph(nm,pltdata,[]); +// if(isstring(Arg2), +// AddGraph(Arg1,Arg2,[]); +// , +// if(MeasureDepth(Arg2)>0, +// Addgraph(Arg1,Arg2,[]); +// , +// Addgraph("-"+Arg1,Arg1,Arg2); +// ); +// ); +//); +AddGraph(nm,pltdata,options):=( +//help:AddGraph("1","imp1"); // 16.04.04 +//help:Addgraph("1",["[pt1]","gr1"],["nodisp"]); + regional(name,Ltype,Noflg,opcindy,pdata,fname,flg, + tmp,tmp1,tmp2,tmp3); + if(substring(nm,0,1)=="-", + name=substring(nm,1,length(nm)); + , + name="ad"+nm; + ); + tmp=Divoptions(options); + Ltype=tmp_1; + Noflg=tmp_2; + opcindy=tmp_9; + if(isstring(pltdata), + pdata=parse(pltdata) + , + if(!islist(pltdata),pdata=[pltdata],pdata=pltdata); + pdata=apply(pdata,parse(#)); + ); // 15.01.22 + pdata=Flattenlist(pdata); + tmp1=[]; + forall(pdata,tmp2, + tmp=apply(tmp2,Pcrd(#)); + tmp1=append(tmp1,tmp); + ); + if(length(tmp1)==1,tmp1=tmp1_1); + pdata=tmp1; + if(Noflg<3, + println("generate addgraph "+name); + tmp=name+"="+textformat(pdata,5); + parse(tmp); + if(isstring(pltdata), // 16.04.04 from + if(indexof(pltdata,"]")>0, + tmp1="list(Listplot("+substring(pltdata,1,length(pltdata)); + tmp1=replace(tmp1,"]",",]"); + , + tmp1="Listplot("+substring(pltdata,0,length(pltdata))+",]"; + ); + flg=0; + tmp2=[]; + tmp3=0; + forall(1..(length(tmp1)), + if(flg==0, + tmp=indexof(substring(tmp1,tmp3,length(tmp1)),"_"); + if(tmp==0, + flg=1; + , + tmp3=tmp3+tmp; + tmp=indexof(substring(tmp1,tmp3,length(tmp1)),",")-1; + tmp=substring(tmp1,tmp3,tmp3+tmp); + tmp2=append(tmp2,tmp); + ); + ); + ); + forall(tmp2, + tmp1=replace(tmp1,"_"+#,"("+#+")"); + ); + tmp1=replace(tmp1,",]",")"); + tmp1=replace(tmp1,",","),Listplot("); + if(indexof(pltdata,"[")>0, + tmp1=tmp1+")"; + ); + GLIST=append(GLIST,name+"="+tmp1); + , + if(MeasureDepth(pdata)==1, + tmp1=name+"=Listplot("+textformat(pdata,5)+")"; + , + tmp1="list("; + forall(1..(length(pdata)), + tmp=name+"p"+textformat(#,5)+"="; + if(length(pdata_#)>1, // 15.01.22 + tmp=tmp+"Listplot("+textformat(pdata_#,5)+")"; + , + tmp=tmp+"Pointdata("+textformat(pdata_#_1,5)+")"; + ); + GLIST=append(GLIST,tmp); + tmp1=tmp1+name+"p"+textformat(#,5)+","; + ); + tmp1=name+"="+substring(tmp1,0,length(tmp1)-1)+")"; + ); + GLIST=append(GLIST,tmp1); + ); + ); // 16.04.04 upto + if(Noflg<2, + if(isstring(Ltype), + Ltype=GetLinestyle(text(Noflg)+Ltype,name); + , + if(Noflg==1,Ltype=0); + ); + GCLIST=append(GCLIST,[name,Ltype,opcindy]); + ); +); + +Joincrvs(nm,plotstrL):=Joincrvs(nm,plotstrL,[]); +Joincrvs(nm,plotstrL,options):=( +//help:Joincrvs("1",["sgAB","sgDCB"]); + regional(plotlist,PtL,Eps,QdL,Flg,Ni,Qd,pP,pS,pQ,pR,rMN, + opcindy,tmp,tmp1,tmp2,str,name,Ltype,Noflg); + name="join"+nm; + plotlist=[]; + forall(plotstrL,str, + if(isstring(str), + tmp=parse(str); + tmp=apply(tmp,LLcrd(#)); + , + tmp=str; + ); + plotlist=append(plotlist,tmp); + ); + Eps=10^(-4); + tmp=Divoptions(options); + Ltype=tmp_1; + Noflg=tmp_2; + opcindy=tmp_(length(tmp)); + tmp1=tmp_6; + if(length(tmp1)>0,Eps=tmp1_1); + QdL=[]; + forall(plotlist,Qd, + if(ispoint(Qd_1) % !islist(Qd_1_1), + QdL=concat(QdL,[Qd]); + , + forall(Qd, + QdL=concat(QdL,[#]); + ); + ); + ); + Flg=0; + if(length(QdL)==0, + PtL=[]; + Flg=1; + ); + if(Flg==0, + PtL=QdL_1; + forall(2..(length(QdL)),Ni, + Qd=QdL_Ni; + if(Numptcrv(Qd)>1, + pP=Ptend(PtL); + pS=Ptstart(PtL); + pQ=Ptstart(Qd); + pR=Ptend(Qd); + rMN=min([|pP-pQ|,|pP-pR|,|pS-pQ|,|pS-pR|]); + if(rMN==|pP-pR|, + Qd=reverse(Qd); + , + if(rMN==|pS-pQ|, + PtL=reverse(PtL); + , + if(rMN==|pS-pR|, + PtL=reverse(PtL); + Qd=reverse(Qd); + ); + ); + ); + ); + if(rMN>Eps, + PtL=concat(PtL,Qd); + , + PtL=concat(PtL,Qd_(2..(length(Qd)))); + ); + ); + ); + if(Noflg<3, + println("generate joincurve "+name); + tmp1=apply(PtL,Pcrd(#)); + tmp=name+"="+textformat(tmp1,5); + parse(tmp); + tmp1=""; + forall(plotstrL, + tmp1=tmp1+#+","; + ); + tmp1=substring(tmp1,0,length(tmp1)-1); + GLIST=append(GLIST,name+"=Joincrvs("+tmp1+")"); + ); + if(Noflg<2, + if(isstring(Ltype), + Ltype=GetLinestyle(text(Noflg)+Ltype,name); + , + if(Noflg==1,Ltype=0); + ); + GCLIST=append(GCLIST,[name,Ltype,opcindy]); + ); + PtL; +); + +Partcrv(nm,pA,pB,PkLstr):=Partcrv(nm,pA,pB,PkLstr,[]); +Partcrv(nm,pA,pB,PkLstr,options):=( +//help:Partcrv("1",A,B,"sgABC"); +//help:Partcrv("1",1.3,2.5,"sgABC"); + regional(PkL,Ans,Eps,Npt,Out1,Out2,tmp,tmp1,Flg,nS,nE,PPL,pP, + opcindy,Ta,Tb,name,Ltype,Noflg,DepthFlg); + name="part"+nm; + if(isstring(PkLstr),PkL=parse(PkLstr),PkL=PkLstr); + DepthFlg=0; + if(MeasureDepth(PkL)==2, + PkL=PkL_1; + DepthFlg=1; + ); + PkL=apply(PkL,LLcrd(#)); + tmp=Divoptions(options); + Ltype=tmp_1; + Noflg=tmp_2; + opcindy=tmp_(length(tmp)); + Eps=10^(-3); + Flg=0; + if(isreal(pA), + if(pA>pB+Eps, + Npt=Numptcrv(PkL); + Out1=Partcrv("",pA,Npt,PkLstr,["nodata"]); + Out2=Partcrv("",1,pB,PkLstr,["nodata"]); + tmp=Ptstart(PkL)-Ptend(PkL); + if(|tmp|<Eps, + Ans=Joincrvs("",[Out1,Out2],["nodata"]); + , + Ans=[apply(Out1,Pcrd(#)),apply(Out2,Pcrd(#))]; + ); + Flg=1; + ); + if(Flg==0, + nS=ceil(pA); + nE=floor(pB); + PPL=[]; + if(pA<nS-Eps, + pP=(nS-pA)*PkL_(nS-1)+(1-nS+pA)*PkL_nS; + PPL=[pP]; + ); + PPL=concat(PPL,PkL_(nS..nE)); + if(pB>nE+Eps, + pP=(1-pB+nE)*PkL_nE+(pB-nE)*PkL_(nE+1); + PPL=concat(PPL,[pP]); + ); + Ans=PPL; + Flg=1; + ); + ); + if(Flg==0, + tmp=Nearestpt(LLcrd(Pcrd(pA)),PkL); + Ta=tmp_2; + tmp=Nearestpt(LLcrd(Pcrd(pB)),PkL); // 15.09.12 + Tb=tmp_2; + Ans=Partcrv("",Ta,Tb,PkL,["nodata"] ); + Ans=apply(Ans,Pcrd(#)); + ); + if(Noflg<3, + println("generate partcrv "+name); + tmp1=apply(Ans,Pcrd(#)); + tmp=name+"="+textformat(tmp1,5); + parse(tmp); +// GLIST=append(GLIST, // 16.04.03 + if(DepthFlg==0, + tmp=PkLstr; + , + tmp=PkLstr+"(1)"; + ); + tmp1=name+"=Partcrv("+textformat(Lcrd(pA),5) + +","+textformat(Lcrd(pB),5)+","+tmp+")"; // 16.04.03 + GLIST=append(GLIST,tmp1); + ); + if(Noflg<2, + if(isstring(Ltype), + Ltype=GetLinestyle(text(Noflg)+Ltype,name); + , + if(Noflg==1,Ltype=0); + ); + GCLIST=append(GCLIST,[name,Ltype,opcindy]); + ); + Ans; +); + +Opcrvs(num,Fig):=Opcrvs(num,Fig,["nodisp"]); +Opcrvs(num,Fig,options):=( + //help:Subgraph(2,"grfs"); + regional(name,tmp,tmp1); + name="-"+Fig+text(num); + tmp=Fig+"_"+text(num); + tmp1=parse(tmp); + Listplot(name,tmp1,options); +); + + +Pointdata(nm,list):=Pointdata(nm,list,[]); +Pointdata(nm,list,options):=( +//help:Pointdata("1",[2,4],["Size=5"]); +//help:Pointdata("2",[[2,3],[4,1]]); + regional(name,nameL,ptlist,opstr,opcindy, + eqL,size,thick,tmp,tmp1,tmp2,tmp3,Ltype,Noflg); + name="pt"+nm; + nameL=name+"L"; + println("generate pointdata "+name); + tmp=Divoptions(options); + Ltype=tmp_1; + Noflg=tmp_2; + opcindy=tmp_(length(tmp)); + opstr=tmp_(length(tmp)-1); + size=""; + eqL=tmp_5; + if(length(eqL)>0, + forall(eqL, + tmp=substring(#,0,1); + if(tmp=="s" % tmp=="S", + tmp=indexof(#,"="); + size=substring(#,tmp,length(#)); + ); + ); + ); + tmp=MeasureDepth(list); + if(tmp>0, // 2015.02.21 + if(tmp==1,ptlist=list,ptlist=list_1); + tmp=apply(ptlist,[textformat(Pcrd(#),5)]); + tmp1=text(tmp); + tmp2=substring(tmp1,1,length(tmp1)-1); + tmp3=tmp1; + , + ptlist=list; + tmp1=textformat(Pcrd(ptlist),5); + tmp2=tmp1; + tmp3="["+tmp1+"]"; + ); + tmp=name+"="+tmp1; + parse(tmp); + tmp=nameL+"="+tmp3; + parse(tmp); + if(Noflg<3, + GLIST=append(GLIST,name+"=Pointdata("+tmp2+")"); + ); + if(Noflg<2, + tmp=[nameL,0,opcindy]; + GCLIST=append(GCLIST,tmp); + if(Noflg==0, + if(length(size)>0, + Com2nd("Setpt("+size+")"); + ); + thick=PenThick/PenThickInit; // 16.04.09 from + if(length(size)>0,tmp1=parse(size),tmp1=1); + tmp1=max(tmp1,1)/8; + Setpen(tmp1); // 16.04.09 upto + Com2nd("Drwpt(list("+name+")"+opstr+")"); + Setpen(thick); // 16.04.09 + if(length(size)>0, + Com2nd("Setpt("+textformat(TenSize/TenSizeInit,1)+")"); + ); + ); + ); + ptlist; +); + +Listplot(nm,list,options):=( +//help:Listplot([A,B]); +// help:Listplot(["A","B"]); +//help:Listplot("1",[[2,1],[3,3]]); +//help:Listplot(options2=["Msg=yes"]); + regional(name,tmp,tmp1,ptlist,Ltype,opcindy,Noflg,eqL,Msg); + if(substring(nm,0,1)=="-", // 16.01.27 from + name=substring(nm,1,length(nm)); + , + name="sg"+nm; + ); // upto + tmp=Divoptions(options); + Ltype=tmp_1; + Noflg=tmp_2; + eqL=tmp_5; + opcindy=tmp_(length(tmp)); + Msg=1; // 15.09.17 + forall(eqL, + tmp=substring(#,0,1); + if(Toupper(tmp)=="M", + tmp=indexof(#,"="); + tmp1=substring(#,tmp,tmp+1); // 16.06.28 + if(Toupper(tmp1)=="N", // 16.06.28 + Msg=0; + ); + ); + ); + if(Noflg<3, + if(Msg==1, + println("generate Listplot "+name); + ); + if(isstring(list_1),tmp=apply(list,parse(#)),tmp=list); // 15.03.24 + ptlist=apply(tmp,Pcrd(#)); + tmp=name+"="+textformat(ptlist,5); + parse(tmp); + GLIST=append(GLIST,name+"=Listplot("+textformat(list,5)+")"); // 15.12.23 + ); + if(Noflg<2, + if(isstring(Ltype), + Ltype=GetLinestyle(text(Noflg)+Ltype,name); + , + if(Noflg==1,Ltype=0); + ); + GCLIST=append(GCLIST,[name,Ltype,opcindy]); + ); + tmp1=apply(list,Lcrd(#)); + tmp1; +); +Listplot(Arg1,Arg2):=( + regional(name,list,options,str); + if(isstring(Arg1), + name=Arg1; + list=Arg2; + Listplot(name,list,[]); + , + list=Arg1; + options=Arg2; + name=""; + forall(list, // 16.10.07from + name=name+#.name; + );// 16.10.07upto + Listplot(name,list,options); + ); +); +Listplot(list):=Listplot(list,[]); + +Lineplot(nm,list,options):=( +//help:Lineplot([A,B]); +//help:Lineplot("1",[[2,1],[3,3]]); + regional(name,Out,tmp,tmp1,opstr,opcindy,Mag,Semi, + Vec,pA,pB,Ltype,Noflg); + name="ln"+nm; + Mag=100; + Semi=""; + tmp=Divoptions(options); + Ltype=tmp_1; + Noflg=tmp_2; + opcindy=tmp_(length(tmp)); + opstr=tmp_(length(tmp)-1); + tmp1=tmp_6; + if(length(tmp1)>0,Mag=tmp1_1); + tmp1=tmp_7; + if(length(tmp1)>0,Semi=tmp1_1); + pA=Lcrd(list_1); pB=Lcrd(list_2); + Vec= Mag/dist(pA,pB)*(pB-pA); + if(length(Semi)==0, + Out=[pA-Vec,pA+Vec]; + , + if(Semi=="+", + Out=[pA,pA+Vec]; + , + Out=[pA-Vec,pA]; + ); + ); + if(Noflg<3, + println("generate Lineplot "+name); + tmp1=apply(Out,Pcrd(#)); + tmp=name+"="+textformat(tmp1,5); + parse(tmp); + GLIST=append(GLIST,name+"=Lineplot("+textformat(list,5)+opstr+")"); + ); + if(Noflg<2, + if(isstring(Ltype), + Ltype=GetLinestyle(text(Noflg)+Ltype,name); + , + if(Noflg==1,Ltype=0); + ); + GCLIST=append(GCLIST,[name,Ltype,opcindy]); + ); + Out; +); +Lineplot(Arg1,Arg2):=( + regional(name,list,options,str); + if(isstring(Arg1), + name=Arg1; + list=Arg2; + Lineplot(name,list,[]); + , + list=Arg1; + options=Arg2; + name=""; + forall(list, // 16.10.07from + name=name+#.name; + );// 16.10.07upto + Lineplot(name,list,options); + ); +); +Lineplot(list):=Lineplot(list,[]); + +Plotdata(name1,func,variable):=Plotdata(name1,func,variable,[]); +Plotdata(name1,func,variable,options):=( +//help:Plotdata("1","sin(x)","x",["Num=100"]); +//help:Plotdata("2","x^2","x=[-1,1]"); +//help:Plotdata("3","Fout(x)","x",["out"]); + regional(Fn,Va,tmp,tmp1,tmp2,eqL,name,Vname,x1,x2,dx, + PdL,QdL,Num,Ec,Dc,Fun,Exfun,x,Ke,Eps,Pa, + Ltype,Noflg,Inflg,Outflg,opstr,opcindy); + name="gr"+name1; + tmp=Divoptions(options); + Ltype=tmp_1; + Noflg=tmp_2; + Inflg=tmp_3; + Outflg=tmp_4; + opstr=tmp_(length(tmp)-1); + opcindy=tmp_(length(tmp)); + eqL=tmp_5; + Num=50; + Ec=[]; + Exfun=""; + Dc=1000; + forall(eqL, + tmp=indexof(#,"="); + tmp1=substring(#,tmp,length(#)); + opstr=opstr+",'"+#+"'"; + if(substring(#,0,1)=="N", + Num=parse(tmp1); + ); + if(substring(#,0,1)=="E", + if(substring(tmp1,0,1)=="[", + Ec=parse(tmp1); + , + Exfun=tmp1; + ); + ); + if(substring(#,0,1)=="D", + Dc=parse(tmp1); + ); + ); + if(Inflg==0 & Outflg==0, + Eps=10^(-3); + tmp=replace(func,LFmark,""); + tmp=tokenize(variable,"="); + Vname=tmp_1; + if(length(tmp)>1, + tmp=tmp_2; + tmp=parse(tmp); + x1=tmp_1; + x2=tmp_2; + , + x1=XMIN; + x2=XMAX; + ); + // dx=(x2-x2)/Num; + Ec=append(sort(Ec),10000); + Fun=Assign(func,Vname, "xx"); + Exfun=Assign(Exfun,Vname, "xx"); + PdL=[]; + Ke=1; + forall(0..Num, + xx=x1+#*(x2-x1)/Num; // differs from Scilab ( / Num-1) + if(length(Exfun)>0, + tmp=parse(Exfun); + if(abs(tmp)<Eps, + if(length(Pdt)>0, + PdL=concat(PdL,["inf"]); + ); + ); + , + Pa=[]; + if(xx-Ec_Ke<-Eps, + Pa=[xx,parse(Fun)]; + ); + if(abs(xx-Ec_Ke)<=Eps, + if(length(PdL)>0, + if(PdL_(length(PdL))_1!="inf", + Pa=["inf"]; + ); + ); + ); + if(xx-Ec_Ke>Eps, + Pa=[xx,parse(Fun)]; + Ke=Ke+1; + ); + if(length(Pa)>0, + if(Pa_1=="inf", + PdL=concat(PdL,[Pa]); + , + if(length(PdL)==0, + PdL=[Pa]; + , + tmp=PdL_(length(PdL)); + if(tmp_1=="inf", + PdL=concat(PdL,[Pa]); + , + if(dist(tmp,Pa)<Dc, + PdL=concat(PdL,[Pa]); + , + PdL=concat(PdL,[["inf"],Pa]); + ); + ); + ); + ); + ); + ); + ); + tmp1=[]; + tmp2=select(1..(length(PdL)),PdL_#==["inf"]); + tmp=1; + forall(tmp2, + if(#>tmp, + tmp1=concat(tmp1,[PdL_(tmp..(#-1))]) + ); + tmp=#+1; + ); + if(tmp<length(PdL), + tmp1=concat(tmp1,[PdL_(tmp..(length(PdL)))]); + ); + PdL=tmp1; + if(length(PdL)==1, + PdL=PdL_1; + ); + if(Noflg<3, + println("generate Plotdata "+name); + if(MeasureDepth(PdL)==1, + tmp1=apply(PdL,Pcrd(#)); + , + tmp1=[]; + forall(PdL,tmp2, + tmp1=append(tmp1,apply(tmp2,Pcrd(#))); + ); + ); + tmp=name+"="+textformat(tmp1,5); + parse(tmp); + tmp1=replace(func,LFmark,""); + tmp2=replace(variable,LFmark,""); + tmp=name+"=Plotdata('"+tmp1+"','"+tmp2+"'"+opstr+")"; + GLIST=append(GLIST,tmp); + ); + if(Noflg<2, + if(isstring(Ltype), + Ltype=GetLinestyle(text(Noflg)+Ltype,name); + , + if(Noflg==1,Ltype=0); + ); + GCLIST=append(GCLIST,[name,Ltype,opcindy]); + ); + PdL; + , + // Inflg or Outflg >0 15.05.15 + if(Noflg<3, + if(Outflg==1, + println("Output Plotdata "+name); + tmp=name+"=Plotdata('"+func+"','"+variable+"'"+opstr+")"; + GLIST=append(GLIST,tmp); + SCIWRLIST=append(SCIWRLIST,name); + if(Inflg==0,Inflg=1); // 15.05.17 + ); + if(Inflg==1, + println("Input Plotdata "+name); + if(length(SCIRELIST)==0, + ReadOutData(Fnameout); + ); + tmp=parse(name); + if(islist(tmp), + Extractdata(name,["nodisp"]); // 12.19 + ); + tmp="// "+name+"=Plotdata('"+func+"','"+variable+"'"+opstr+")"; + Com1st(tmp); + SCIRELIST=append(SCIRELIST,name); + ); + ); + if(Noflg<2, + if(isstring(Ltype), + Ltype=GetLinestyle(text(Noflg)+Ltype,name); + , + if(Noflg==1,Ltype=0); + ); + if(Inflg==1, + GCLIST=append(GCLIST,[name,Ltype,opcindy]); + ); + ); + ); +); + +Paramplot(name1,funstr,variable):=Paramplot(name1,funstr,variable,[]); +Paramplot(name1,funstr,variable,options):=( +//help:Paramplot("1","[2*cos(t),sin(t)]","t=[0,2*pi]"); + regional(name,Out,tmp,tmp1,tmp2,vname,func,str,Rng,Num, + Ec,Exfun,Dc,eqL,Fntmp,Vatmp,t1,t2,dt,tt,pa,ke, + Ltype,Noflg,Inflg,Outflg,opstr,opcindy); + name="gp"+name1; + Eps=10^(-4); + tmp=Divoptions(options); + Ltype=tmp_1; + Noflg=tmp_2; + Inflg=tmp_3; + Outflg=tmp_4; + opstr=tmp_(length(tmp)-1); + opcindy=tmp_(length(tmp)); + eqL=tmp_5; + Num=50; + Ec=[]; + Exfun=""; + Dc=1000; + forall(eqL, + tmp=indexof(#,"="); + tmp1=substring(#,tmp,length(#)); + opstr=opstr+",'"+#+"'"; + if(substring(#,0,1)=="N", + Num=parse(tmp1); + ); + if(substring(#,0,1)=="E", + if(substring(tmp1,0,1)=="[", + Ec=parse(tmp1); + , + Exfun=tmp1; + ); + ); + if(substring(#,0,1)=="D", + Dc=parse(tmp1); + ); + ); + if(Inflg==0 & Outflg==0, + tmp=indexof(variable,"="); + vname=substring(variable,0,tmp-1); + str=substring(variable,tmp,length(variable)); + Rng=parse(str); + t1=Rng_1; t2=Rng_2; + dt=(t2-t1)/Num;// differs from Scilab ( / Num-1) + func=Assign(funstr,vname,"tt"); + Out=[]; + Ec=append(sort(Ec),10000); + ke=1; + forall(0..Num, + pt=[]; + tt=Rng_1+#*dt; + if(tt-Ec_ke<-Eps, + pa=parse(func); + ); + if(abs(tt-Ec_ke)<=Eps, + if(length(Out)>0, + if(Out_(length(Out))_1!="inf", + pa=["inf"]; + ); + ); + ); + if(tt-Ec_ke>Eps, + pa=parse(func); + ke=ke+1; + ); + if(length(pa)>0, + if(pa_1=="inf", + Out=append(Out,pa); + , + if(length(Out)==0, + Out=[pa]; + , + tmp=Out_(length(Out)); + if(tmp_1=="inf", + Out=append(Out,pa); + , + if(|tmp-pa|<Dc, + Out=append(Out,pa); + , + Out=concat(Out,[["inf"],pa]); + ); + ); + ); + ); + ); + ); + tmp1=[]; + tmp2=select(1..(length(Out)),Out_#==["inf"]); + tmp=1; + forall(tmp2, + if(#>tmp, + tmp1=concat(tmp1,[Out_(tmp..(#-1))]) + ); + tmp=#+1; + ); + if(tmp<length(Out), + tmp1=concat(tmp1,[Out_(tmp..(length(Out)))]); + ); + Out=tmp1; + if(length(Out)==1, + Out=Out_1; + ); + if(Noflg<3, + println("generate Paramplot "+name); + if(MeasureDepth(Out)==1, + tmp1=apply(Out,Pcrd(#)); + , + tmp1=[]; + forall(Out,tmp2, + tmp1=append(tmp1,apply(tmp2,Pcrd(#))); + ); + ); + tmp=name+"="+textformat(tmp1,5); + parse(tmp); + tmp1=replace(funstr,LFmark,""); // 15.11.13 + tmp2=replace(variable,LFmark,""); + tmp=name+"=Paramplot('"+tmp1+"','"+tmp2+"'"+opstr+")"; + GLIST=append(GLIST,tmp); + ); + if(Noflg<2, + if(isstring(Ltype), + Ltype=GetLinestyle(text(Noflg)+Ltype,name); + , + if(Noflg==1,Ltype=0); + ); + GCLIST=append(GCLIST,[name,Ltype,opcindy]); + ); + Out; + , + // Inflg or Outflg >0 15.05.15 + if(Noflg<3, + if(Outflg==1, + println("Output Paramplot "+name); + tmp=name+"=Paramplot('"+funstr+"','"+variable+"'"+opstr+")"; + GLIST=append(GLIST,tmp); + SCIWRLIST=append(SCIWRLIST,name); + if(Inflg==0,Inflg=1); // 15.05.17 + ); + if(Inflg==1, + println("Input Paramplotdata "+name); + if(length(SCIRELIST)==0, + ReadOutData(Fnameout); + ); + tmp=parse(name); + if(islist(tmp), + Extractdata(name,["nodisp"]); // 12.19 + ); + tmp="// "+name+"=Paramplot('"+func+"','"+variable+"'"+opstr+")"; + Com1st(tmp); + SCIRELIST=append(SCIRELIST,name); + ); + ); + if(Noflg<2, + if(isstring(Ltype), + Ltype=GetLinestyle(text(Noflg)+Ltype,name); + , + if(Noflg==1,Ltype=0); + ); + if(Inflg==1, + GCLIST=append(GCLIST,[name,Ltype,opcindy]); + ); + ); + ); +); + +Circledata(cenrad):=Circledata(cenrad,[]); +Circledata(para1,para2):=( +//help:Circledata([A,B],["Rng=[0,pi/2]"]); +//help:Circledata([A,B,C]); + regional(name,cenrad,options,str,n); + if(isstring(para1), + name=para1; + cenrad=para2; + options=[]; + , + cenrad=para1; + options=para2; + name="";// 16.10.07from + forall(cenrad, + name=name+#.name; + );// 16.10.07upto + ); + Circledata(name,cenrad,options); +); +Circledata(nm,cenrad,options):=( + regional(name,Out,Ctr,Ptcir,ra,Num,Rg,opstr,opcindy, + tmp,tmp1,tmp1,Th,Ltype,Noflg,eqL,pA,pB,pC,d1,d2,Eps); + name="cr"+nm; + tmp=Divoptions(options); + Ltype=tmp_1; + Noflg=tmp_2; + opstr=tmp_(length(tmp)-1); + opcindy=tmp_(length(tmp)); + eqL=tmp_5; + Num=50; + Rg=[0,2*pi]; + forall(eqL, + tmp=indexof(#,"="); + tmp1=substring(#,tmp,length(#)); + opstr=opstr+",'"+#+"'"; + if(substring(#,0,1)=="N", + Num=parse(tmp1); + ); + if(substring(#,0,1)=="R", + Rg=parse(tmp1); + ); + ); + if(length(cenrad)==2, + Ctr=Lcrd(cenrad_1); + Ptcir=Lcrd(cenrad_2); + ra=dist(Ctr,Ptcir); + , + Eps=10^(-1); + pA=Lcrd(cenrad_1); + pB=Lcrd(cenrad_2); + pC=Lcrd(cenrad_3); + tmp=pB-pA; + tmp1=(tmp_2,-tmp_1); + tmp=pC-pB; + tmp2=(tmp_2,-tmp_1); + d1=det([tmp1,tmp2]); + d2=det([pC-pA,tmp2]); + if(abs(d1)<Eps & abs(d2)>10*Eps, + println("points are in a line"); + ra=0; + , + Ctr=1/2*(pA+pB)+1/2*d2/d1*tmp1; + ra=|pA-Ctr|; + tmp=name+"center="+Ctr; + parse(tmp); + Defvar(name+"center",Ctr); + ); + ); + if(ra>0, + Out=[]; + forall(0..Num, + Th=Rg_1+#*(Rg_2-Rg_1)/Num; + Out=append(Out,Ctr+ra*[cos(Th),sin(Th)]); + ); + , + Out=Lineplot("1",[pA,pB],["nodata"]); + ); + if(Noflg<3, + println("generate Circledata "+name); + tmp1=apply(Out,Pcrd(#)); + tmp=name+"="+textformat(tmp1,5); + parse(tmp); + if(length(cenrad)==2, + tmp=name+"=Circledata("+cenrad+opstr+")"; + , + if(ra>0, + tmp=name+"=Circledata(["+Ctr+","+cenrad_1+"]"+opstr+")"; + , + tmp=name+"=Lineplot("+cenrad_1+","+cenrad_2+")"; + ); + ); + GLIST=append(GLIST,tmp); + ); + if(Noflg<2, + if(isstring(Ltype), + Ltype=GetLinestyle(text(Noflg)+Ltype,name); + , + if(Noflg==1,Ltype=0); + ); + GCLIST=append(GCLIST,[name,Ltype,opcindy]); + ); + Out; +); + +Framedata():=Framedata(["dr"]);//16.10.29from +Framedata(list):=( + regional(pA,pB); + if(MeasureDepth(list)==0, + pA=LLcrd((SW+NE)/2); // 15.09.17 + pB=LLcrd(NE); + Framedata("win",[pA,pB],list); + , + Framedata(list,[]); + ); +);//16.10.29upto +Framedata(Arg1,Arg2):=( + regional(name,list,options,str); + if(isstring(Arg1), + name=Arg1; + list=Arg2; + Framedata(name,list,[]); + , + list=Arg1; + options=Arg2; + name="";// 16.10.07from + forall(list, + name=name+#.name; + );// 16.10.07upto + Framedata(name,list,options); + ); +); +Framedata(nm,list,options):=( +//help:Framedata(); +//help:Framedata([C,A]); +//help:Framedata("1",[C,A]); +//help:Framedata("1",[C,dx,dy]); + regional(name,Out,tmp,tmp1,pB,x1,x2,y1,y2,dx,dy, + opcindy,Ltype,Noflg,cent,dx,dy); + name="fr"+nm; + tmp=Divoptions(options); + Ltype=tmp_1; + Noflg=tmp_2; + opcindy=tmp_(length(tmp)); + if(length(list)==2, // 15.05.12 + pA=Lcrd(list_1); pB=Lcrd(list_2); + dx=abs(pB_1-pA_1); dy=abs(pB_2-pA_2); + , + pA=Lcrd(list_1); + dx=list_2; dy=list_3; + ); + x1=pA_1-dx; x2=pA_1+dx; + y1=pA_2-dy; y2=pA_2+dy; + Out=[[x1,y1],[x2,y1],[x2,y2],[x1,y2],[x1,y1]]; + if(Noflg<3, + println("generate Framedata "+name); + tmp1=apply(Out,Pcrd(#)); + tmp=name+"="+textformat(tmp1,5); + parse(tmp); + GLIST=append(GLIST,name+"=Framedata("+pA+","+dx+","+dy+")"); + ); + if(Noflg<2, + if(isstring(Ltype), + Ltype=GetLinestyle(text(Noflg)+Ltype,name); + , + if(Noflg==1,Ltype=0); + ); + GCLIST=append(GCLIST,[name,Ltype,opcindy]); + ); + Out; +); +Framedata(nm,cent,dx,dy):=Framedata(nm,cent,dx,dy,[]); +Framedata(nm,cent,dx,dy,options):=( + regional(name,Out,tmp,tmp1,x1,y1,x2,y2,Ltype,opcindy,Noflg); + name="fr"+nm; + tmp=Divoptions(options); + Ltype=tmp_1; + Noflg=tmp_2; + opcindy=tmp_(length(tmp)); + x1=cent.x-dx; x2=cent.x+dx; + y1=cent.y-dy; y2=cent.y+dy; + Out=[[x1,y1],[x2,y1],[x2,y2],[x1,y2],[x1,y1]]; + if(Noflg<3, + println("generate Framedata "+name); + tmp1=apply(Out,Pcrd(#)); + tmp=name+"="+textformat(tmp1,5); + parse(tmp); + GLIST=append(GLIST,name+"=Framedata("+cent.xy+","+dx+","+dy+")"); + ); + if(Noflg<2, + if(isstring(Ltype), + Ltype=GetLinestyle(text(Noflg)+Ltype,name); + , + if(Noflg==1,Ltype=0); + ); + GCLIST=append(GCLIST,[name,Ltype,opcindy]); + ); + Out; +); + +Framedata2(nm,list):=Framedata2(nm,list,[]); +Framedata2(nm,list,options):=( +//help:Framedata2("1",[A,B]); + regional(tmp,tmp1,pC,pB); + pC=(Lcrd(list_1)+Lcrd(list_2))/2; + pB=Lcrd(list_2); + Framedata(nm,[pC,pB],options); +); + +Ovaldata(nm,Pdata):=Ovaldata(nm,Pdata,[]); +Ovaldata(nm,Pdata,options):=( +//help:Ovaldata("1",[A,B]); +//help:Ovaldata(optios=[size]); + regional(name,Graph,Ctr,Dx,Dy,Rc,Out,Point,Graph, + opstr,opcindy,tmp,tmp1,tmp2,tmp3,Ltype,Noflg); + name="ov"+nm; + tmp=Divoptions(options); + Ltype=tmp_1; + Noflg=tmp_2; + opcindy=tmp_(length(tmp)); + opstr=tmp_(length(tmp)-1); + Rc=0.2; + tmp1=tmp_6; + if(length(tmp1)>0,Rc=tmp1_1*Rc); +// if(length(tmp1)>0,Rc=tmp1_1); //15.11.15 + Ctr=Lcrd(Pdata_1); + if(ispoint(Pdata_2) % islist(Pdata_2), + tmp1=Lcrd(Pdata_2); + Dx=abs(tmp1_1-Ctr_1); + Dy=abs(tmp1_2-Ctr_2); + , + Dx=Pdata_2; + Dy=Pdata_3; + ); + Point=Ctr+[Dx-Rc,Dy-Rc]; + tmp1=Circledata("1",[Point,Point+[Rc,0]], + ["Rng=[0,pi/2]","Num=10","nodata"]); + tmp2=Listplot("1",[Ctr+[Dx-Rc,Dy],Ctr+[0,Dy]], + ["nodata"]); + tmp3=Listplot("2",[Ctr+[Dx,0],Ctr+[Dx,Dy-Rc]], + ["nodata"]); + Graph=Joincrvs("1",[tmp3,tmp1,tmp2],["nodata"]); + tmp1=Reflectdata("1",[Graph],[Ctr,Ctr+[0,1]],["nodata"]); + Graph=Joincrvs("1",[Graph,tmp1],["nodata"]); + tmp2=Reflectdata("2",[Graph],[Ctr,Ctr+[1,0]], + ["nodata"]); + Graph=Joincrvs("2",[Graph,tmp2],["nodata"]); + if(Noflg<3, + println("generate Ovaldata "+name); + tmp1=apply(Graph,Pcrd(#)); + tmp=name+"="+textformat(tmp1,5); + parse(tmp); + GLIST=append(GLIST, + name+"=Ovaldata("+Ctr+","+Dx+","+Dy+opstr+")");//16.01.30 + ); + if(Noflg<2, + if(isstring(Ltype), + Ltype=GetLinestyle(text(Noflg)+Ltype,name); + , + if(Noflg==1,Ltype=0); + ); + GCLIST=append(GCLIST,[name,Ltype,opcindy]); + tmp1=apply(Graph,Pcrd(#)); + tmp=name+"="+textformat(tmp1,5); + parse(tmp); + tmp=textformat(Ctr,5)+","+textformat(Dx,5)+","+textformat(Dy,5); + ); + Graph; +); + +Segmark(nm,ptlist):=Segmark(nm,ptlist,[]); +Segmark(nm,ptlist,options):=Drawsegmark(nm,ptlist,options); +Drawsegmark(nm,ptlist):=Drawsegmark(nm,ptlist,[]); +Drawsegmark(nm,ptlist,options):=( +//help:Segmark("1",[A,B]); +//help:Segmark(options=["Type=1","Width=1","Size=1"]); + regional(name,pA,pB,wid,mid,size,tp,dir,nor,eqL, + tmp,tmp1,tmp2); + name="mrk"+nm; + pA=ptlist_1; + pB=ptlist_2; + size=0.15; + wid=0.05; + tp=1; + tmp1=Divoptions(options); + eqL=tmp1_5; + forall(eqL, + tmp=indexof(#,"="); + tmp1=substring(#,tmp,length(#)); + tmp1=parse(tmp1); + tmp=substring(#,0,1); + if(tmp=="S" % tmp=="s", + size=size*tmp1; + ); + if(tmp=="W" % tmp=="w", + wid=wid*tmp1; + ); + if(tmp=="T" % tmp=="t", + tp=tmp1; + ); + ); + mid=(pA+pB)/2; + dir=(pB-pA)/|pB-pA|; + nor=[-dir_2,dir_1]; +// nor=nor/|nor|; + if(tp==1, + tmp1=mid+size*nor; + tmp2=mid-size*nor; + Listplot(name,[tmp1,tmp2]); + ); + if(tp==2, + tmp1=mid+wid*dir+size*nor; + tmp2=mid+wid*dir-size*nor; + Listplot(name+"r",[tmp1,tmp2]); + tmp1=mid-wid*dir+size*nor; + tmp2=mid-wid*dir-size*nor; + Listplot(name+"l",[tmp1,tmp2]); + ); + if(tp==3, + tmp1=mid; + tmp2=mid+size*dir; + Circledata(name,[tmp1,tmp2]); + ); + if(tp==4, + tmp=mid+size*2/sqrt(3)*nor; + tmp1=mid+size*dir-size/sqrt(3)*nor; + tmp2=mid-size*dir-size/sqrt(3)*nor; + Listplot(name,[tmp,tmp1,tmp2,tmp]); + ); +); + +Parabolaplot(nm,ptlist):=Parabolaplot(nm,ptlist,"[-5,5]",[]); +Parabolaplot(nm,ptlist,Arg):=( + regional(rng,options); + if(isstring(Arg), + rng=Arg; + options=[]; + , + rng="[-5,5]"; + options=Arg; + ); + Parabolaplot(nm,ptlist,rng,options); +); +Parabolaplot(nm,ptlist,rng,options):=( +//help:Parabolaplot("1",[A,B,C]): +//help:Parabolaplot("1",[A,B,C],"[-5,5]"); + regional(pA,pB,pC,angle,tmp,tmp1,tmp2); + tmp1=Lcrd(ptlist_1); + tmp2=Lcrd(ptlist_3); + pB=Lcrd(ptlist_2); + tmp=(tmp2-pB)/|tmp2-pB|; + if(tmp_2>=0, + angle=arccos(tmp_1); + , + if(tmp_1>=0, + angle=arcsin(tmp_2); + , + angle=-arccos(tmp_1); + ); + ); + pA=Rotatepoint(tmp1,-angle,pB); + pC=Rotatepoint(tmp2,-angle,pB); + tmp1=1/(2*(pA_2-pB_2)); + tmp2=1/2*(pA_2+pB_2); + tmp="("+format(tmp1,5)+")*(x-("+format(pA_1,5)+"))^2"; + tmp=tmp+"+("+format(tmp2,5)+")"; + tmp1=parse(rng); + tmp1=[pA_1-(tmp1_2-tmp1_1)/2,pA_1+(tmp1_2-tmp1_1)/2]; + tmp2="x="+textformat(tmp1,5); + Plotdata(nm+"para",tmp,tmp2,append(options,"nodisp")); + Rotatedata(nm+"para","gr"+nm+"para",angle,append(options,pB)); +); + +Ellipseplot(nm,ptlist):=Ellipseplot(nm,ptlist,"[0,2*pi]",[]); +Ellipseplot(nm,ptlist,Arg):=( + regional(rng,options); + if(isstring(Arg), + rng=Arg; + options=[]; + , + rng="[0,2*pi]"; + options=Arg; + ); + Ellipseplot(nm,ptlist,rng,options); +); +Ellipseplot(nm,ptlist,rng,options):=( +//help:Ellipseplot("1",[A,B,3]); +//help:Ellipseplot("1",[A,B,C],"[0,pi]",[options]); + regional(pA,pB,d,angle,f,a,b,pM,tmp,tmp1,tmp2); + pA=Lcrd(ptlist_1); + tmp1=Lcrd(ptlist_2); + if(ispoint(ptlist_3), + tmp2=Lcrd(ptlist_3); + d=|tmp2-pA|+|tmp2-tmp1|; + , + d=ptlist_3; + ); + tmp=(tmp1-pA)/|tmp1-pA|; + if(tmp_2>=0, + angle=arccos(tmp_1); + , + if(tmp_1>=0, + angle=arcsin(tmp_2); + , + angle=-arccos(tmp_1); + ); + ); + pB=Rotatepoint(tmp1,-angle,pA); + f=|pB_1-pA_1|/2; + a=d/2; + b=sqrt(d^2/4-f^2); + pM=(pA+pB)/2; + tmp="["+format(pM_1,5)+","+format(pM_2,5)+"]"; + tmp=tmp+"+["+format(a,5)+"*cos(t),"+format(b,5)+"*sin(t)]"; + Paramplot(nm+"elp",tmp,"t="+rng,append(options,"nodisp")); + Rotatedata(nm+"elp","gp"+nm+"elp",angle,append(options,pA)); +); + +Hyperbolaplot(nm,ptlist):=Hyperbolaplot(nm,ptlist,"[-5/2,5/2]",[]); +Hyperbolaplot(nm,ptlist,Arg):=( + regional(rng,options); + if(isstring(Arg), + rng=Arg; + options=[]; + , + rng="[-5/2,5/2]"; + options=Arg; + ); + Hyperbolaplot(nm,ptlist,rng,options); +); +Hyperbolaplot(nm,ptlist,rng,optionsorg):=( +//help:Hyperbolaplot("1",[A,B,C],["Num=200"]): +//help:Hyperbolaplot("1",[A,B,C],"[-5,5]",["Asy=do"]); + regional(pA,pB,d,angle,f,a,b,pM,eqL,options,opasy,tmp,tmp1,tmp2); + tmp=Divoptions(optionsorg); + eqL=tmp_5; + options=optionsorg; + opasy=[]; + forall(eqL, + if(Toupper(substring(#,0,1))=="A", + tmp=indexof(#,"="); + opasy=[substring(#,tmp,length(#))]; + options=remove(options,[#]); + ); + ); + pA=Lcrd(ptlist_1); + tmp1=Lcrd(ptlist_2); + if(ispoint(ptlist_3), + tmp2=Lcrd(ptlist_3); + d=abs(|tmp2-pA|-|tmp2-tmp1|); + , + d=ptlist_3; + ); + tmp=(tmp1-pA)/|tmp1-pA|; + if(tmp_2>=0, + angle=arccos(tmp_1); + , + if(tmp_1>=0, + angle=arcsin(tmp_2); + , + angle=-arccos(tmp_1); + ); + ); + pB=Rotatepoint(tmp1,-angle,pA); + f=|pB_1-pA_1|/2; + a=d/2; + b=sqrt(f^2-d^2/4); + pM=(pA+pB)/2; + tmp="["+format(pM_1,5)+"+"+format(a,5)+"*(exp(t)+exp(-t))/2,"; + tmp=tmp+format(pM_2,5)+"+"+format(b,5)+"*(exp(t)-exp(-t))/2]"; + Paramplot(nm+"hyp1",tmp,"t="+rng,append(options,"nodisp")); + tmp="["+format(pM_1,5)+"-"+format(a,5)+"*(exp(t)+exp(-t))/2,"; + tmp=tmp+format(pM_2,5)+"+"+format(b,5)+"*(exp(t)-exp(-t))/2]"; + Paramplot(nm+"hyp2",tmp,"t="+rng,append(options,"nodisp")); + tmp=["gp"+nm+"hyp1","gp"+nm+"hyp2"]; + Rotatedata(nm+"hyp",tmp,angle,append(options,pA)); + if(length(opasy)>0, + Lineplot(nm+"asy1",[pM+[a,b],pM+[-a,-b]],["nodisp"]); + Lineplot(nm+"asy2",[pM+[-a,b],pM+[a,-b]],["nodisp"]); + tmp=["ln"+nm+"asy1","ln"+nm+"asy2"]; + Rotatedata(nm+"asy",tmp,angle,append(opasy,pA)); + ); +); + +Polygonplot(nm,ptlist,number):=Polygonplot(nm,ptlist,number,[]); +Polygonplot(nm,ptlist,number,options):=( +//help:Polygonplot("1",[A,B],12); + regional(rr,pA,pB,ptL,angle,tmp,tmp1,tmp2); + pA=Lcrd(ptlist_1); + pB=Lcrd(ptlist_2); + rr=|pB-pA|; + tmp=(pB-pA)/rr; + if(tmp_2>=0, + angle=arccos(tmp_1); + , + if(tmp_1>=0, + angle=arcsin(tmp_2); + , + angle=-arccos(tmp_1); + ); + ); + ptL=[]; + forall(0..number, + tmp=angle+#*2*pi/number; + tmp1=pA+rr*[cos(tmp),sin(tmp)]; + if(#>0 & #<number, + Putpoint((ptlist_2).name+text(#),tmp1);//16.10.07 + //Pointdata(nm,ptL); + ); + tmp2=tmp1; + ptL=append(ptL,tmp1); + ); + Listplot(nm+"ply",ptL,options); +); + +Putintersect(nm,pdata1,pdata2):=( +//help:Putintersect("Q","gr1","gr2"); + regional(pd1,pd2,tmp); + if(isstring(pdata1),pd1=parse(pdata1),pd1=pdata1); + if(isstring(pdata2),pd2=parse(pdata2),pd2=pdata2); + tmp=Intersectcrvs(pd1,pd2); + if(length(tmp)==1, + Putpoint(nm,tmp_1); + , + if(length(tmp)==0, + err("No intersect point"); + , + err("Multiple intersect points"); + println(tmp); + err("Choose point number"); + ); + ); +); +Putintersect(nm,pdata1,pdata2,ptno):=( + regional(pd1,pd2,tmp); + if(isstring(pdata1),pd1=parse(pdata1),pd1=pdata1); + if(isstring(pdata2),pd2=parse(pdata2),pd2=pdata2); + tmp=Intersectcrvs(pd1,pd2); + if(length(tmp)>0, + Putpoint(nm,tmp_ptno); + , + err("No intersect point"); + ); +); + +Arrowheaddata(point,direction):=Arrowheaddata(point,direction,[]); +Arrowheaddata(point,direction,options):=( +//help:Arrowheaddata(A,B); + regional(list,Ookisa,Hiraki,Futosa,Houkou,Str,Flg,tmp,Ev,Nv,pA,pB, + pP,rF,gG,Flg,Nj,Eps,tmp1,scx,scy); + Eps=10^(-3); + pP=point; + Ookisa=0.2*YaSize; + Hiraki=YaAngle; + Futosa=0; + Str=YaStyle; + tmp=Divoptions(options); + tmp1=tmp_6; + if(length(tmp1)>0,Ookisa=Ookisa*tmp1_1); + if(length(tmp1)>1, + tmp=tmp1_2; + if(tmp<5, + Hiraki=Hiraki*tmp; + , + Hiraki=tmp; + ); + ); + Flg=0; + Hiraki=Hiraki*pi/180; + if(isstring(direction),Houkou=parse(direction),Houkou=direction); + if(MeasureDepth(Houkou)==2,Houkou=Houkou_1); + if(islist(Houkou_1), +// pP=Lcrd(pP); +// pP=Doscaling(pP); +// Houkou=Dosscaling(Houkou); + pP=Pcrd(pP); + scy=SCALEY; + SCALEY=1; + tmp=Nearestpt(pP,Houkou); + pA=tmp_1; + rF=floor(tmp_2); + if(rF==1, + if(|Ptend(Houkou)-Ptstart(Houkou)|<Eps, + rF=Numptcrv(Houkou); + ); + ); + gG=apply(0..10,pP+Ookisa*cos(Hiraki)*[cos(2*pi/10*#),sin(2*pi/10*#)]); + Flg=0; + forall(1..rF,Nj, + if(Flg==0, + pB=Ptcrv(rF+1-Nj,Houkou); + tmp=IntersectcrvsPp([pA,pB],gG); + if(length(tmp)>0, + Houkou=pP-tmp_1_1; + Flg=1; + ); + pA=pB; + ); + ); + SCALEY=scy; + if(Flg==0, + println("Arrowhead may be too large (no intersect)"); + Flg=2; + ); + if(Flg==1, + Houkou=Unscaling(Houkou); + pP=Unscaling(pP); + ); + ); + if(Flg<2, +// pP=Doscaling(pP); +// Houkou=Doscaling(Houkou); + pP=Pcrd(pP); + if(!ispoint(point), + Houkou=Pcrd(Houkou); + ); +// if(MeasureDepth(Houkou)==0,Houkou=Pcrd(Houkou)); + Ev=-1/|Houkou|*Houkou; + Ev=Lcrd(Ev); + Nv=[-Ev_2, Ev_1]; + if(indexof(Str,"c")>0, + pP=pP-0.5*Ookisa*cos(Hiraki)*Ev; + ); + if(indexof(Str,"b")>0, + pP=pP-Ookisa*cos(Hiraki)*Ev; + ); + pA=pP+Ookisa*cos(Hiraki)*Ev+Ookisa*sin(Hiraki)*Nv; + pB=pP+Ookisa*cos(Hiraki)*Ev-Ookisa*sin(Hiraki)*Nv; + list=[pA,pP,pB]; + list=apply(list,LLcrd(#)); +// Out=Unscaling(Out); + list; + ); +); + +Arrowhead(point,Houkou):=Arrowhead(point,Houkou,[]); +Arrowhead(point,Houkou,options):=( +//help:Arrowhead(B,B-A,[1.5,30]); +//help:Arrowhead(A,"gr1"); + // global ArrowheadNumber + regional(name,Ltype,Noflg,reL,opstr,opcindy,ptstr,hostr,tmp,tmp1,list); + name="arh"+text(ArrowheadNumber); + ArrowheadNumber=ArrowheadNumber+1; + ptstr=textformat(point,5); + if(isstring(Houkou), // 15.01.11 + tmp=parse(Houkou); + if(MeasureDepth(tmp)<2, + hostr=Houkou; + , + hostr=Houkou+"(1)"; + ); + , + if(ispoint(point), + hostr=textformat(LLcrd(Houkou),5); + , + hostr=textformat(Houkou,5); + ); + ); + tmp=Divoptions(options); + Ltype=tmp_1; + Noflg=tmp_2; + reL=tmp_6; + opstr=tmp_(length(tmp)-1); + opcindy=tmp_(length(tmp)); + list=Arrowheaddata(point,Houkou,options); + if(Noflg<3, +// println("generate Arrowhead "+name); + tmp1=apply(list,Pcrd(#)); + tmp=name+"="+textformat(tmp1,5); + parse(tmp); +// GLIST=append(GLIST,name+"=Listplot("+list+")"); + ); + if(Noflg<2, + if(isstring(Ltype), + Ltype=GetLinestyle(text(1)+Ltype,name); + , +// if(Noflg==1,Ltype=0); + Ltype=0; + ); + GCLIST=append(GCLIST,[name,Ltype,opcindy]); + ); + if(Noflg==0, + if(length(reL)<3, // 16.04.09 from + forall(1..(2-length(reL)), + opstr=opstr+",1"; + ); + tmp=PenThick/PenThickInit; + opstr=opstr+","+text(tmp); + ); // 16.04.09 upto + Com2nd("Arrowhead("+ptstr+","+hostr+opstr+")"); + ); +); + +Arrowdata(ptlist):=Arrowdata(ptlist,[]); +Arrowdata(Arg1,Arg2):=( + regional(tmp,nm,ptlist,flg,pA,pB,options); + flg=0; + if(isstring(Arg1), + nm=Arg1; + ptlist=Arg2; + Arrowdata(nm,ptlist,[]); + flg=1; + ); + if(flg==0, + tmp=MeasureDepth(Arg1); + if(tmp==0, + pA=Arg1; + pB=Arg2; + Arrowdata(pA,pB,[]); + , + ptlist=Arg1; + options=Arg2; + nm=text(ArrowlineNumber); + ArrowlineNumber=ArrowlineNumber+1; + Arrowdata(nm,ptlist,options); + ); + ); +); +Arrowdata(Arg1,Arg2,options):=( +//help:Arrowdata([A,B],[2,10]); + regional(Retflg,nm,ptlist,name,opstr,opcindy,realL,strL,size, + flg,Ltype,Noflg,lineflg,tmp,tmp1,tmp2,pA,pB,segpos); + Retflg=0; + Noflg=0; + Ltype=0; + if(!isstring(Arg1), + pA=Arg1; + pB=Arg2; + Arrowdata(pA,pB,options,"old"); + Retflg=1; + ptlist=[pA,pB]; + ); + if(Retflg==0, + nm=Arg1; + ptlist=Arg2; + name="ar"+nm; + tmp=Divoptions(options); + Ltype=tmp_1; + Noflg=tmp_2; + realL=tmp_6; + strL=tmp_7; + opstr=tmp_(length(tmp)-1); + opcindy=tmp_(length(tmp)); + size=1; // 15.06.11 + if(length(realL)>0, + size=realL_1; + ); + tmp2=select(strL,indexof(#,"l")>0); // 16.04.09 + if(length(tmp2)>0,lineflg=1,lineflg=0); // 16.04.09 + segpos=1; + tmp1=tmp_5; + if(length(tmp1)>2, + segpos=tmp1_3; + ); + if(Noflg<3, +// println("generate Arrowdata "+name); + tmp1=apply(ptlist,Pcrd(#)); + tmp=name+"="+textformat(tmp1,5); + parse(tmp); + tmp1=Pcrd(ptlist_1);//16.10.20 + tmp2=Pcrd(ptlist_2);//16.10.20 + if(lineflg==0, // 16.04.09 from + tmp=tmp2-0.2*size/2*(tmp2-tmp1)/|tmp2-tmp1|; // 15.06.11 + , + tmp=tmp2; + ); // 16.04.09 upto + tmp=[LLcrd(tmp1),LLcrd(tmp)];//16.10.20 + GLIST=append(GLIST,name+"=Listplot("+textformat(tmp,5)+")"); + ); + if(Noflg<2, + if(isstring(Ltype), + Ltype=GetLinestyle(text(Noflg)+Ltype,name); + , + if(Noflg==1,Ltype=0); + ); + tmp=textformat(ptlist,5); + tmp=substring(tmp,1,length(tmp)-1); + tmp1=indexof(tmp,"],["); + if(tmp1>0, + pA=substring(tmp,0,tmp1); + pB=substring(tmp,tmp1+1,length(tmp)); + , + tmp1=indexof(tmp,","); + pA=substring(tmp,0,tmp1-1); + pB=substring(tmp,tmp1,length(tmp)); + ); + tmp1="Lcrd("+pA+")+" + +textformat(segpos,5)+"*(Lcrd("+pB+")-"+"Lcrd("+pA+"))"; + tmp1=parse(tmp1); + tmp2="Lcrd("+pB+")-Lcrd("+pA+")"; + tmp2=parse(tmp2); + Arrowhead(tmp1,tmp2,options); + GCLIST=append(GCLIST,[name,Ltype,opcindy]); + ); + ); + ptlist; +); +Arrowdata(pA,pB,options,str):=( + regional(ptA,ptB,opstr,Astr,Bstr,name,tmp,opcindy); + Astr=textformat(pA,5); + Bstr=textformat(pB,5); + name="ar"+pA.name+pB.name; + println("generate Arrow "+name); + opstr=""; + opcindy=""; + forall(options, + if(isstring(#), + if(indexof(#,"->")>0, + opcindy=opcindy+","+#; + , + tmp="'"+#+"'"; + ); + , + tmp=text(#); + ); + opstr=opstr+","+tmp; + ); + ptA=Lcrd(pA); + ptB=Lcrd(pB); + Arrowheaddata(ptB,ptB-ptA,options); + tmp="connect("+textformat([ptA,ptB],5) + +",linecolor->"+text(KCOLOR)+opcindy+");"; + parse(tmp); // 14.11.17 + Com2nd("Arrowline("+Astr+","+Bstr+opstr+")"); // 14.10.04 +); + +Anglemark(plist):=Anglemark(plist,[]); +Anglemark(Arg1,Arg2):=( // 2015.04.28 from + regional(nm,plist,options,tmp); + if(isstring(Arg1), + nm=Arg1; + plist=Arg2; + Anglemark(nm,plist,[]); + , + plist=Arg1; + options=Arg2; + tmp=textformat(plist,5); + tmp=replace(tmp,",",""); + nm=substring(tmp,1,length(tmp)-1); + Anglemark(nm,plist,options); + ); +); // upto +Anglemark(nm,plist,options):=( +//help:Anglemark([A,B,C],["E=\theta",2]); +//help:Anglemark("1",[A,B,C],["E=1.2,\theta",2]); +//help:Anglemark(options=["E/L=(sep,)letter",size]); + regional(name,Out,pB,pA,pC,Ctr,ra,sab,sac,ratio,opstr,Bname,Bpos, + Brat,tmp,tmp1,tmp2,Num,opcindy,Ltype,eqL,realL,Rg,Th,Noflg); + name="ag"+nm; + Bpos="md"+name; + ra=0.5; + tmp=Divoptions(options); + Ltype=tmp_1; + Noflg=tmp_2; + opstr=tmp_(length(tmp)-1); + opcindy=tmp_(length(tmp)); + eqL=tmp_5; + realL=tmp_6; + Bname=""; + Brat=1.5; + Num=20; + if(length(realL)>0, + ra=realL_1*ra; + opstr=opstr+","+text(realL_1); + ); + forall(eqL, + if(substring(#,0,1)=="L",Bname="Letter("); + if(substring(#,0,1)=="E",Bname="Expr("); + Bname=Bname+Bpos+","+Dq+"c"+Dq+","+Dq;//16.10.29 + tmp=substring(#,indexof(#,"="),length(#)); + tmp1=indexof(tmp,","); + Bname=Bname+substring(tmp,tmp1,length(tmp))+Dq+")"; + if(tmp1>0, + Brat=parse(substring(tmp,0,tmp1-1)); + ); + ); + pB=Lcrd(plist_1); pA=Lcrd(plist_2); pC=Lcrd(plist_3); + Ctr=Lcrd(pA); + sab=pB-pA; + sac=pC-pA; + Rg=[arctan2(sab)+0,arctan2(sac)+0]; + if(Rg_2<Rg_1,Rg_2=Rg_2+2*pi); + Out=[]; + if(ra>min(|sab|,|sac|), // 16.12.29 + println(" segments too short"); + , + forall(0..Num, + Th=Rg_1+#*(Rg_2-Rg_1)/Num; + Out=append(Out,Ctr+ra*[cos(Th),sin(Th)]); + ); + Th=(Rg_1+Rg_2)/2; //16.10.31from(moved) + tmp1=Ctr+Brat*ra*[cos(Th),sin(Th)]; + tmp="Defvar("+Dq+Bpos+"="; + tmp=tmp+textformat(tmp1,5)+Dq+");"; + parse(tmp);//16.10.31upto(moved) + if(length(Bname)>0, + parse(Bname); + ); + if(Noflg<3, + println("generate anglemark "+name+" and "+Bpos); + tmp1=apply(Out,Pcrd(#)); + tmp=name+"="+textformat(tmp1,5); + parse(tmp); + tmp=textformat(plist,5); + tmp1=substring(tmp,1,length(tmp)-1); + tmp=name+"=Anglemark("+tmp1+opstr+")"; + GLIST=append(GLIST,tmp); + ); + if(Noflg<2, + if(isstring(Ltype), + Ltype=GetLinestyle(text(Noflg)+Ltype,name); + , + if(Noflg==1,Ltype=0); + ); + GCLIST=append(GCLIST,[name,Ltype,opcindy]); + ); + ); + Out; +); + +Paramark(plist):=Paramark(plist,[]); +Paramark(Arg1,Arg2):=( // 17.03.27 from + regional(nm,plist,options,tmp); + if(isstring(Arg1), + nm=Arg1; + plist=Arg2; + Paramark(nm,plist,[]); + , + plist=Arg1; + options=Arg2; + tmp=textformat(plist,5); + tmp=replace(tmp,",",""); + nm=substring(tmp,1,length(tmp)-1); + Paramark(nm,plist,options); + ); +);// upto +Paramark(nm,plist,options):=( +//help:Paramark([A,B,C],["E=\theta"]); +//help:Paramark("1",[p1,p2,p3],["E=\theta"]); + regional(name,Out,pB,pA,pC,ra,sab,sac,ratio,opstr,Bname,Bpos, + Brat,tmp,tmp1,tmp2,Ltype,Noflg,eqL,realL,opcindy); + name="pm"+nm; + tmp=Divoptions(options); + Ltype=tmp_1; + Noflg=tmp_2; + opstr=tmp_(length(tmp)-1); + opcindy=tmp_(length(tmp)); + eqL=tmp_5; + realL=tmp_6; + ra=0.5; + Bname=""; + Brat=1.2; + if(length(realL)>0, + tmp=realL_1; + ra=tmp*ra; + opstr=opstr+","+text(tmp); + ); + forall(eqL, + if(substring(#,0,1)=="L",Bname="Letter("); + if(substring(#,0,1)=="E",Bname="Expr("); + Bpos="md"+name; + Bname=Bname+Dq+Bpos+Dq+","+Dq+"c"+Dq+","+Dq; + tmp=substring(#,indexof(#,"="),length(#)); + tmp1=indexof(tmp,","); + Bname=Bname+substring(tmp,tmp1,length(tmp))+Dq+")"; + if(tmp1>0, + Brat=parse(substring(tmp,0,tmp1-1)); + ); + ); + pB=Lcrd(plist_1); pA=Lcrd(plist_2); pC=Lcrd(plist_3); + Ctr=Lcrd(pA); + Out=[]; + Out=append(Out,pA+ra*(pB-pA)/|pB-pA|); + Out=append(Out,pA+ra*(pB-pA)/|pB-pA|+ra*(pC-pA)/|pC-pA|); + Out=append(Out,pA+ra*(pC-pA)/|pC-pA|); + if(length(Bname)>0, + tmp1=pA+Brat*ra*(pB-pA)/|pB-pA|+Brat*ra*(pC-pA)/|pC-pA|; + tmp="Defvar("+Dq+Bpos+"="+textformat(tmp1,5)+Dq+");"; + parse(tmp); + parse(Bname); + ); + if(Noflg<3, + println("generate paramark "+name); + tmp1=apply(Out,Pcrd(#)); + tmp=name+"="+textformat(tmp1,5); + parse(tmp); + tmp1=substring(textformat(plist,5),1,length(textformat(plist,5))-1); + tmp=name+"=Paramark("+tmp1+opstr+")"; + GLIST=append(GLIST,tmp); + ); + if(Noflg<2, + if(isstring(Ltype), + Ltype=GetLinestyle(text(Noflg)+Ltype,name); + , + if(Noflg==1,Ltype=0); + ); + GCLIST=append(GCLIST,[name,Ltype,opcindy]); + ); + Out; +); + +MakeBowdata(pA,pB,Hgt):=( + regional(angle,pB2,pH2,pC2,pC,tmp,Th1,Th2,ra,dMA); + angle=arctan2(pB-pA)+0; + pB2=Rotatepoint(pB,-angle,pA); + tmp=Lcrd(pA); + pH2=[(tmp_1+pB2_1)/2,tmp_2-Hgt]; + dMA=|tmp-pB2|/2; + ra=(dMA^2+Hgt^2)/(2*Hgt); + pC2=[pH2_1,pB2_2+(ra-Hgt)]; + pC=Rotatepoint(pC2,angle,pA); + Th1=arctan2(pA-pC2)+angle; + Th2=arctan2(pB2-pC2)+angle; + [pC,ra,Th1,Th2]; +); + +Bowdata(plist):=Bowdata(plist,[]); +Bowdata(plist,options):=( + regional(nm,tmp); + if(islist(plist), // 16.12.04from + tmp=textformat(plist,5); + tmp=replace(tmp,",",""); + nm=substring(tmp,1,length(tmp)-1); + Bowdata(nm,plist,options); + , + nm=plist; + tmp=options; + Bowdata(nm,tmp,[]); + ); // 16.12.04upto +); +Bowdata(nm,plist,options):=( +//help:Bowdata([C,A],[2,1.2,"Expr=10","da"]); +//help:Bowdata([A,B],["Expr=t0n3,a"]); +//help:Bowdata([A,B],["Exprrot=t0n2r,a"]); + regional(name,Out,pB,pA,pC,ra,tmp,tmp1,tmp2,Ltype,eqL,realL, + Bname,Bpos,Th,Cut,Num,Hgt,opstr,opcindy,Ydata,pC, + Th1,Th2,Noflg,Bops,Bmov,Tmov,Nmov,rev); + name="bw"+nm; + tmp=Divoptions(options); + Ltype=tmp_1; + Noflg=tmp_2; + opstr=tmp_(length(tmp)-1); + opcindy=tmp_(length(tmp)); + eqL=tmp_5; + realL=tmp_6; + pA=Lcrd(plist_1); pB=Lcrd(plist_2); + Hgt=1/2*|pB-pA|*0.2; + Cut=0; + Num=24; + Bname=""; + Tmov=0;//16.11.01from + Nmov=0; + Bmov=""; + rev=0;//16.11.01upto + if(length(realL)>0, + Hgt=realL_1*Hgt; // 15.04.12 + if(length(realL)>1,Cut=realL_2); + ); + forall(eqL, + tmp=substring(#,0,1); + if(tmp=="L" % tmp=="l", + if(indexof(#,"rot")>0, + Bname="Letterrot("; + , + Bname="Letter("; + ); + ); + if(tmp=="E" % tmp=="e", + if(indexof(#,"rot")>0, + Bname="Exprrot("; + , + Bname="Expr("; + ); + ); + tmp=indexof(#,"="); + Bops=substring(#,tmp,length(#)); // 16.11.01 + ); + Ydata=MakeBowdata(pA,pB,Hgt); + pC=Ydata_1; + ra=Ydata_2; + Th=(Ydata_3+Ydata_4)*0.5; + BOWMIDDLE=[pC_1+ra*cos(Th),pC_2+ra*sin(Th)]; + Bpos="md"+name; // 16.10.31from(moved) + tmp="Defvar("+Dq+Bpos+"="+textformat(BOWMIDDLE,5)+Dq+");"; + parse(tmp);// 16.10.31upto(moved) + if(length(Bname)>0, //16.11.01from + tmp=indexof(Bops,","); + if(tmp>0, + tmp1=substring(Bops,0,tmp-1); + if(length(tmp1)>=4 & substring(tmp1,0,1)=="t" & indexof(tmp1,"n")>0, + Bmov=tmp1; + Bops=substring(Bops,tmp,length(Bops)); + ); + ); + if(length(Bmov)>0, + tmp=indexof(Bmov,"t"); + if(tmp>0, + tmp1=indexof(Bmov,"n"); + Tmov=parse(substring(Bmov,tmp,tmp1-1)); + tmp=indexof(Bmov,"r"); + if(tmp>0, + Nmov=parse(substring(Bmov,tmp1,tmp-1)); + rev=1; + , + Nmov=parse(substring(Bmov,tmp1,length(Bmov))); + ); + ); + ); + Bname=Bname+Bpos;//16.11.01 + if(abs(Tmov)+abs(Nmov)>0, + tmp=Pcrd(pA)-Pcrd(pB); + tmp1=1/norm(tmp)*tmp; + tmp2=[-tmp1_2,tmp1_1]; + tmp=MARKLEN*(Tmov*tmp1+Nmov*tmp2); + tmp=LLcrd(tmp); + Bname=Bname+"+"+text(tmp); + ); + Bname=Bname+","; + if(indexof(Bname,"rot")>0, + if(rev==1,tmp=pB-pA,tmp=pA-pB); + Bname=Bname+textformat(tmp,5)+","; + , + Bname=Bname+Dq+"c"+Dq+","; + ); + Bname=Bname+Dq+Bops+Dq+")"; + parse(Bname); + );//16.11.01upto + if(Cut==0, + Th1=Ydata_3; + Th2=Ydata_4; + Out=[]; + forall(0..Num, + tmp=Th1+#*(Th2-Th1)/Num; + Out=append(Out,pC+ra*[cos(tmp),sin(tmp)]); + ); + , + Th1=Ydata_3; + Th2=Th-Cut/(2*ra); + tmp1=[]; + forall(0..Num/2, + tmp=Th1+#*(Th2-Th1)/(Num/2); + tmp1=append(tmp1,pC+ra*[cos(tmp),sin(tmp)]); + ); + Th1=Th+Cut/(2*ra); + Th2=Ydata_4; + tmp2=[]; + forall(0..Num/2, + tmp=Th1+#*(Th2-Th1)/(Num/2); + tmp2=append(tmp2,pC+ra*[cos(tmp),sin(tmp)]); + ); + Out=[tmp1,tmp2]; + ); + if(Noflg<3, + println("generate bowdata "+name+" and "+Bpos);//16.10.31 + if(MeasureDepth(Out)==1,Out=[Out]); + tmp1=[]; + forall(Out,tmp2, + tmp=apply(tmp2,Pcrd(#)); + tmp1=append(tmp1,tmp); + ); + tmp=name+"="+textformat(tmp1,5); + parse(tmp); + tmp1=substring(textformat(plist,5),1,length(textformat(plist,5))-1); + tmp=name+"=Bowdata("+tmp1+opstr+")"; + GLIST=append(GLIST,tmp); + ); + if(Noflg<2, + if(isstring(Ltype), + Ltype=GetLinestyle(text(Noflg)+Ltype,name); + , + if(Noflg==1,Ltype=0); + ); + GCLIST=append(GCLIST,[name,Ltype,opcindy]); + ); +); + +Bowname(str):=Bowname("c",str); +Bowname(dir,str):=( + Expr([BOWMIDDLE,dir,str]); +); + +Bownamerot(bwdata,str):=Bownamerot(bwdata,0,0,str,1); +Bownamerot(bwdata,str,updown):=Bownamerot(bwdata,0,0,str,updown); +Bownamerot(bwdata,tmov,nmov,str):=Bownamerot(bwdata,tmov,nmov,str,1); +Bownamerot(bwdata,tmov,nmov,str,updown):=( + regional(bdata,tmp); + tmp=MeasureDepth(bwdata); + if(tmp==1,bdata=[bwdata],bdata=bwdata); + if(length(bdata)>1, + tmp=Ptend(bdata_2)-Ptstart(bdata_1); + , + tmp=Ptend(bdata_1)-Ptstart(bdata_1); + ); + if(updown<0,tmp=-tmp); + Exprrot(BOWMIDDLE,tmp,tmov,nmov,str); +); + +Deqplot(nm,deq,rng,initf):=Deqplot(nm,deq,rng,Lcrd(initf)_1,initf,[]); +Deqplot(nm,deq,rng,Arg1,Arg2):=( + regional(initt,initf,options); + if(isreal(Arg1) & !islist(Arg1), + initt=Arg1; + initf=Arg2; + options=[]; + , + initf=Lcrd(Arg1); + initt=initf_1; + options=Arg2; + ); + Deqplot(nm,deq,rng,initt,initf,options); +); +Deqplot(nm,deq,rng,initt,initf,options):=( + regional(name,Noflg,Ltype,eqL,opstr,opcindy,pdL,var2,deq2,rng2,initt2,initf2, + tmp,tmp1,tmp2,tmp3,tmp4); + tmp=tokenize(deq,"="); + tmp1=tmp_1; + tmp2=tmp_2; + tmp3=tokenize(tmp1,"`"); + if(length(tmp3)==2, + if(indexof(tmp1,"[")>0, + Deqplot(nm,deq,rng,initt,initf,options,[2,3]); + , + if(indexof(rng,"=")>0,rng2=rng,rng2=rng+"=[XMIN,XMAX]"); + tmp=tokenize(rng2,"="); + deq2="["+tmp_1+","+replace(tmp1,"`","]")+"`=[1,"+tmp2+"]"; + rng2="tvar="+tmp_2; //17.02.26 + if(isreal(initf) & !islist(initf), + initf2=[initt,initf]; + initt2=initt; + , + initf2=Lcrd(initf); + initt2=initf2_1; + ); + Deqplot(nm,deq2,rng2,initt2,initf2,options,[2,3]); + ); + , + name="de"+nm; + tmp=Divoptions(options); + Ltype=tmp_1; + Noflg=tmp_2; + eqL=tmp_5; + opcindy=tmp_9; + opstr=""; + forall(eqL, + if(Toupper(substring(#,0,1))=="N", + tmp=indexof(#,"="); + tmp1="N="+substring(#,tmp,length(#)); + opstr=opstr+",'"+tmp1+"'"; + ); + ); + if(Noflg<1, + if(indexof(rng,"=")>0,rng2=rng,rng2=rng+"=[XMIN,XMAX]"); + var2="d"+tmp3_1; + deq2="["+tmp3_1+","+var2+"]`=["; + tmp=replace(tmp2,tmp3_1+"`",var2); + deq2=deq2+var2+","+tmp+"]"; + Deqplot(nm,deq2,rng2,initt,initf,append(options,"nodisp"),[1,2]); + parse(tmp); + tmp=name+"=Deqplot(Assign("+Dq+deq+Dq+"),'"+rng+"',"; + tmp=tmp+initt+","+initf+opstr+")"; + GLIST=append(GLIST,tmp); + ); + if(Noflg<2, + if(isstring(Ltype), + Ltype=GetLinestyle(text(Noflg)+Ltype,name); + , + if(Noflg==1,Ltype=0); + ); + GCLIST=append(GCLIST,[name,Ltype,opcindy]); + parse("de"+nm); + ); + ); +); +Deqplot(nm,deq,rng,initt,initf,options,Sel):=( +//help:Deqplot("2","y`=y*(1-y)","x",0, 0.5,["Num=100"]); +//help:Deqplot("1","y``=-y","x",0, [1,0]); +//help:Deqplot("3","[x,y]`=[x*(1-y),0.3*y*(x-1)]","t=[0,20]",[1,0.5]); + regional(Ltype,Noflg,Inflg,Outflg,strL,opstr,opcindy,Num, + outstr,name,func,xf,yf,pdL,Eps,Inf,t1,t2,tt,Vname,dt,funP,funN,flg, + kl1,kl2,kl3,kl4,x0,y0,x1,y1,tmp,tmp1,tmp2); + name="de"+nm; + tmp=Divoptions(options); + Ltype=tmp_1; + Noflg=tmp_2; + Inflg=tmp_3; + Outflg=tmp_4; + eqL=tmp_5; + strL=tmp_7; +// opstr=tmp_(length(tmp)-1); + opstr=""; + opcindy=tmp_(length(tmp)); + outstr=""; + forall(strL, + tmp=Toupper(substring(#,0,1)); + if(tmp=="S", + outstr="Sci"; + ); + ); + Num=50; + forall(eqL, + tmp=indexof(#,"="); + tmp2=substring(#,0,1); + tmp2=Toupper(tmp2); + tmp1=substring(#,tmp,length(#)); + opstr=opstr+",'"+tmp2+"="+tmp1+"'"; + if(Toupper(substring(#,0,1))=="N", + Num=parse(tmp1); + ); + ); + if(outstr=="Sci", + if(Inflg==0 & Outflg==0,Outflg=1;Inflg=1); + ); + if(Noflg<3, + if(outstr=="Sci", + if(Outflg==1, + println("Output Deqplot "+name); + SCIWRLIST=append(SCIWRLIST,name); + ); + if(Inflg==1, + println("Input Deqplot "+name); + if(length(SCIRELIST)==0, + ReadOutData(Fnameout); + ); + tmp=parse(name); + if(islist(tmp), + Extractdata(name,["nodisp"]); // 12.19 + ); + SCIRELIST=append(SCIRELIST,name); + ); + , + Eps=10^(-3); + Inf=10^3; + tmp=tokenize(deq,"="); + tmp1=tmp_1; + func=tmp_2; + tmp=indexof(tmp1,","); + xf=substring(tmp1,1,tmp-1); + yf=substring(tmp1,tmp,length(tmp1)); + tmp=indexof(yf,"]"); + yf=substring(yf,0,tmp-1); + tmp=tokenize(rng,"="); + Vname=tmp_1; + tmp=parse(tmp_2); + t1=tmp_1; + t2=tmp_2; + tmp="funP("+Vname+","+xf+","+yf+"):="+func+";"; + parse(tmp); + tmp=tokenize(func,","); + tmp1="-("+substring(tmp_1,1,length(tmp_1))+")"; + tmp2="-("+substring(tmp_2,0,length(tmp_2)-1)+")"; + tmp="funN("+Vname+","+xf+","+yf+"):=["+tmp1+","+tmp2+"];"; + parse(tmp); + dt=(t2-t1)/Num; + tt=initt; + tmp=Lcrd(initf); + x0=tmp_1; + y0=tmp_2; + pdL=[[tt,x0,y0]]; + flg=0; + forall(1..floor((t2-initt)/dt), + if(flg==0, + kl1=dt*funP(tt,x0,y0); + kl2=dt*funP(tt+dt/2,x0+kl1_1/2,y0+kl1_2/2); + kl3=dt*funP(tt+dt/2,x0+kl2_1/2,y0+kl2_2/2); + kl4=dt*funP(tt+dt,x0+kl3_1,y0+kl3_2);//16.10.14 + tmp1=[x0,y0]+(kl1+2*kl2+2*kl3+kl4)/6; + x0=tmp1_1; + y0=tmp1_2; + tt=initt+#*dt; + pdL=append(pdL,[tt,x0,y0]); + if(|tmp1|>Inf,flg=1); + ); + ); + tt=initt; + tmp=Lcrd(initf); + x0=tmp_1; + y0=tmp_2; + flg=0; + forall(1..floor((initt-t1)/dt), + if(flg==0, + kl1=dt*funN(tt,x0,y0); + kl2=dt*funN(tt+dt/2,x0+kl1_1/2,y0+kl1_2/2); + kl3=dt*funN(tt+dt/2,x0+kl2_1/2,y0+kl2_2/2); + kl4=dt*funN(tt+dt/2,x0+kl3_1/2,y0+kl3_2/2); + tmp1=[x0,y0]+(kl1+2*kl2+2*kl3+kl4)/6; + x0=tmp1_1; + y0=tmp1_2; + tt=initt-#*dt; + pdL=prepend([tt,x0,y0],pdL); + if(|tmp1|>Inf,flg=1); + ); + ); + println("Generate Deqplot "+name); + pdL=apply(pdL,#_Sel); + tmp1=apply(pdL,Pcrd(#)); + tmp=name+"="+textformat(tmp1,5); + parse(tmp); + ); + if(Noflg<1, + tmp=name+"=Deqplot(Assign("+Dq+deq+Dq+"),'"+rng+"',"; + tmp=tmp+initt+","+initf+opstr+")"; + GLIST=append(GLIST,tmp); + ); + ); + if(Noflg<2, + if(isstring(Ltype), + Ltype=GetLinestyle(text(Noflg)+Ltype,name); + , + if(Noflg==1,Ltype=0); + ); + if(outstr=="Sci", + if(Inflg==1, + GCLIST=append(GCLIST,[name,Ltype,opcindy]); + ); + , + GCLIST=append(GCLIST,[name,Ltype,opcindy]); + ); + ); + if(outstr!="Sci",pdL); // 17.02.17 +); + +Enclosing(nm,plist):=EnclosingS(nm,plist); +Enclosing(nm,plist,options):=EnclosingS(nm,plist,options); +EnclosingS(nm,plist):=EnclosingS(nm,plist,[]); +EnclosingS(nm,plist,options):=( +//help:Enclosing("1",["sc2","crAB","sc2","Invert(sc1)"],[pt,"dr"]); + regional(name,AnsL,Start,Eps,EEps,S,Flg,Fdata,Gdata,KL,pt,qt, + t1,t2,t3,ii,nn,tmp,tmp1,tmp2,Ltype,Noflg,realL,eqL,opstr,opcindy); + name="en"+nm; + tmp=Divoptions(options); + Ltype=tmp_1; + Noflg=tmp_2; + eqL=tmp_5; + realL=tmp_6; + opstr=tmp_(length(tmp)-1); + opcindy=tmp_(length(tmp)); + Eps=10^(-5); // 16.12.05 + EEps=0.05; + Start=[]; + Flg=0; + forall(realL, + if(isList(#) % ispoint(#), + Start=Lcrd(#); // 15.09.12 + , + Flg=Flg+1; + if(Flg==1,Eps=#); + if(Flg==2,EEps=#); + ); + ); +// tmp1=concat([Eps,EEps],eqL); // 15.04.06 + Fdata=plist_1; + Gdata=plist_(length(plist)); + KL=IntersectcrvsPp(Fdata,Gdata); + if(length(KL)==1, + pt=KL_1_1; + t1=KL_1_2; + ); + if(length(KL)==0, + if(Numptcrv(Fdata)>Numptcrv(Gdata), + tmp=Nearestpt(Fdata,Gdata); + pt=tmp_1; + t1=tmp_2; + , + tmp=Nearestpt(Gdata,Fdata); + pt=tmp_3; + t1=tmp_4; + ); + ); + if(length(KL)>1, + if(Start==[], + err("No Start Point"); + , + pt=KL_1_1; + t1=KL_1_2; + tmp=|pt-Start|; + forall(2..(length(KL)),ii, // 15.04.20 + tmp1=KL_ii_1; + tmp2=|tmp1-Start|; // 15.04.20 + if(tmp2<tmp, + pt=tmp1; + t1=KL_ii_2; + tmp=tmp2; + ); + ); + ); + ); +// pt=Pcrd(pt); // 15.09.12 + Start=pt; + AnsL=[]; + forall(1..(length(plist)),nn, + Fdata=plist_nn; + if(nn>1, pt=qt); + if(nn==length(plist), + qt=Start; + , + Flg=0; + Gdata=plist_(nn+1); +// tmp1=concat([Eps,EEps],eqL); // 15.04.06 + KL=IntersectcrvsPp(Gdata,Fdata); + if(length(KL)==1, + tmp=KL_1; + qt=KL_1_1; + t3=KL_1_2; + Flg=10; + ); + if(length(KL)==0,Flg=1); + if(length(KL)>1, + tmp1=KL_1_1; + tmp2=KL_2_1; + tmp=|tmp1-tmp2|; + if(tmp<Eps*10, Flg=1); + ); + if(Flg==1, + if(Numptcrv(Fdata)>Numptcrv(Gdata), + tmp=Nearestpt(Fdata,Gdata); + qt=tmp_1; + t3=tmp_4; + Flg=10; + , + tmp=Nearestpt(Gdata,Fdata); + qt=tmp_3; + t3=tmp_2; + Flg=10; + ); + ); + if(Flg<10, + t2=10^6; //%inf; + forall(1..(length(KL)),ii, + tmp1=KL_ii_1; + tmp=KL_ii_3; + tmp2=ParamonCurve(tmp1,tmp,Fdata); + tmp3=KL_ii_2; + if(tmp2>t1+Eps & tmp2<t2+Eps, + qt=tmp1; + t2=tmp2; + t3=tmp3; + ); + ); + ); + ); + tmp=Partcrv("",pt,qt,Fdata,["nodata"]); + t1=t3; + if(nn==1, + AnsL=tmp; + , + AnsL=concat(AnsL,tmp_(2..(length(tmp)))); + ); + ); + AnsL=apply(AnsL,Pcrd(#)); // 15.09.12 + AnsL_(length(AnsL))=AnsL_1;//16.10.20 + if(Noflg<3, + println("generate Enclosing "+name); + tmp=name+"="+textformat(AnsL,5); + parse(tmp); + tmp=name+"=Enclosing(";//16.11.07from + tmp1="list("; + forall(plist, + tmp1=tmp1+#+","; + ); + tmp=tmp+substring(tmp1,0,length(tmp1)-1)+")"+opstr+")"; + GLIST=append(GLIST,tmp);//16.11.07upto + // GLIST=append(GLIST,"Tmp=[]"); // 16.11.05from +// nn=floor(length(AnsL)/20); +// forall(1..nn,ii, +// tmp=AnsL_(((ii-1)*20+1)..(ii*20)); +// tmp=apply(tmp,LLcrd(#)); +// tmp="Tmp=[Tmp,"+textformat(tmp,5)+"]"; +// GLIST=append(GLIST,tmp); +// ); +// if(length(AnsL)>nn*20, +// tmp=AnsL_((nn*20+1)..(length(AnsL))); +// tmp=apply(tmp,LLcrd(#)); +// tmp="Tmp=[Tmp,"+textformat(tmp,5)+"]"; +// GLIST=append(GLIST,tmp); +// ); +// GLIST=append(GLIST,name+"=Listplot(Tmp)"); // 16.11.05upto + ); + if(Noflg<2, + if(isstring(Ltype), + Ltype=GetLinestyle(text(Noflg)+Ltype,name); + , + if(Noflg==1,Ltype=0); + ); + GCLIST=append(GCLIST,[name,Ltype,opcindy]); + ); + tmp=apply(AnsL,LLcrd(#));//16.10.20 + tmp; +); + +Shade(plist):=Shade(plist,[]); +Shade(plist,options):=( +//help:Shade(["gr2","sg1"],[0.5]); +//help:Shade([pointlist],[0.5]); + regional(tmp,tmp1,tmp2,opstr,opcindy,Str,G2,flg); + if(isstring(plist_1), // 16.01.24 + println("output Shade of "+plist); + , + println("output Shade of lists"); + ); + tmp=Divoptions(options); + opstr=tmp_(length(tmp)-1); + opcindy=tmp_(length(tmp)); + flg=0; + forall(plist, + if(flg==0, + if(isstring(#),tmp=parse(#),tmp=#); // from 16.01.24 + if(!islist(tmp),flg=1); upto + ); + ); + if(flg==1, +// err("some data not defined yet"); + , + G2=Joincrvs("1",plist,["nodata"]); + G2=apply(G2,Pcrd(#)); + tmp1="fillpoly("+textformat(G2,5)+opcindy+");"; + parse(tmp1); + ); + Str="Shade("; + tmp1="list("; + forall(plist, + if(isstring(#), // from 16.01.24 + if(length(#)>1, + tmp1=tmp1+#+","; + , + tmp1=tmp1+Dq+#+Dq+","; + ); + , + tmp1=tmp1+"Listplot("+textformat(#,5)+"),"; + ); // upto 16.01.24 + ); + Str=Str+substring(tmp1,0,length(tmp1)-1)+")"+opstr+")"; + Com2nd(Str); +); + +//help:end(); + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketcindylibbasic1log.txt b/texmf-dist/scripts/ketpic/ketlib/ketcindylibbasic1log.txt new file mode 100644 index 00000000..cf775fa8 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketcindylibbasic1log.txt @@ -0,0 +1,647 @@ +// s:2017.08.23 +// Help of getdirhead changed +// s:2017.07.19 +// Sep1000 added; +// s:2017.07.03 +// Deqplot debugged ( )); ) +// s:2017.06.26 +// Ch added at the first line +// s:2017.06.19 +// factorial added +// s:2017.06.05 +// Ketinit changed (ketjavaversion added) +// s:2017.05.21 +// Ketinit() debugged (Ch removed to setketcindy.txt) +// MeasureDepth debugged (in the case of null list) +// s:2017.05.18 +// Ketinit() debugged (Chnum => ChNum) +// s:2017.05.16 +// Ketinit() changed (Ch added) +// s:2017.05.15 +// C command for surface drawing are added (partly) +// s:2017.04.14 +// IntersectcrvPp debugged ( in samepoint ) +// Ketinit changed ( to change Libname for scilab6 ) +// s:2017.04.10(all) +// Buttons can be removed +// s:2017.04.08 +// bugs fixed +// e: 2017.03.27 +// Paramark changed ( name supported) +// e: 2017.03.12 +// Sprintf changed ( for string input ) +// e: 2017.03.02 +// Ketinit debugged ( regional changed from bodyc to mboxc) +// e: 2017.02.26 +// Deqplot debugged ( "t=" changed to "tvar=" ) +// e: 2017.02.17 +// Deqplot debugged ( for data output for "nodata" ) +// e: 2017.01.16 +// Setfiles added (Fhead,Fnamesci, Fnametex ) +// e: 2017.01.09 +// Ketinit changed ( slidecolor ) +// e: 2017.01.08 +// Ketinit changed ( for presentation ) +// e: 2016.12.29 +// Anglemark changed ( for too short segment ) +// e: 2016.12.26 +// Cindypathname,Cindyfilename added +// e: 2016.12.25 +// Setcindyname added +// Only avalable when Cinderella has been started in terminal mode. +// e: 2016.12.22 +// Changework changed ( ErrFlg=-1 if path not exists ) +// e: 2016.12.13 +// Changestyle changed ( "Shade" not removed from COM2ndlist) +// Ketinit change ( CRmark added); +// e: 2016.12.04 +// Bowdata debugged ( for 3 arguments ) +// Tab2list ( sep option added ) +// e: 2016.11.27 +// IntersectcrvsPp Changed ( for adjacent points ) +// e: 2016.11.22 +// Ovaldata debugged ( Double written to GLIST) +// e: 2016.11.07 +// Enclosing changed ( back to old version) +// e: 2016.11.05 +// Enclosing debugged +// e: 2016.11.03 +// Integrate(0) debugged +// e: 2016.11.01 +// Bowdata changed ( "Expr(rot)=t0n1(r),a" ) +// e: 2016.10.31 +// Bowdata,Anglemark changed ( Bpos ) +// e: 2016.10.30 +// Bowdata debugged ( Bname ) +// e: 2016.10.29 +// Framedata changed ( option for window size ) +// Anglemark debugged ( Bname ) +// e: 2016.10.21 +// Changework changed +// e: 2016.10.20 +// Arrowdata debugged ( Scaling ) +// Enclosing debugged ( data passed directly ) +// e: 2016.10.19 +// Changework changed ( Case that directory not exists, java "iskcexists" ) +// e: 2016.10.16 +// ParamonCurve debugged (scaling) +// e: 2016.10.14 +// Deqplot debugged (mistake of formula) +// e: 2016.10.10 +// Arrowdata debugged ( for scaling) +// e: 2016.10.07 +// Listplot,Lineplot,Circledata Framedata changed ( auto naming) +// Polygonplot changed ( Putpoint ) +// Divoptions changed ( opcindy) +// e: 2016.10.02 +// Changework debugged ( Fnametex) +// e: 2016.09.28 +// tab2list debugged ( for option "Blank" ) +// e: 2016.09.25 +// small bug-fix +// IntegrateO debugged +// e: 2016.09.19 +// Tab2list changed ( for numbers / mac ) +// e: 2016.09.16 +// Dispmat added +// e: 2016.09.01 +// Tab2list, Columnlist added +// e: 2016.09.01 +// norm added +// e: 2016.08.15 +// DqDq added +// e: 2016.07.30 +// Changework changed (Dq) +// e: 2016.07.23 +// Changework changed +// e: 2016.07.21 +// basic2 : makeshell,makebat changed +// e: 2016.06.28 +// StringinPar changed ( Chart implemented ) +// StringPar renamed to Pardiagram ( Chart => Fig ) +// Listplot changed (Message option 2chars => 1char) +// e: 2016.06.23 +// StringinPar added +// e: 2016.06.07 +// Mackc added +// Changework changed (iskcexists ) +// e: 2016.06.06 +// Changework changed ( "c" removed ) +// e: 2016.06.04 +// Ketinit, Changework changed (kc ) +// setketcindy.txt changed , kc changed in KetcindyPlugin +// e: 2016.05.31 +// Ketinit() changed ( Setwindow message=n ) +// e: 2016.05.29 +// Ketinit() changed ( for /Users ) + + +////////////////// +// s: 2014.12.01 v1.0.0 +// e: 2014.12.03 v1.0.1 +// e: 2014.12.05 v1.0.2 +// Paramplot debugged ( negative number ) +// e: 2014.12.09 v1.1.0 +// Setscaling changed ( Setwindow() added ) +// Arrowdata debugged ( Arrowhead options ) +// Arrowheadata debugged (Scaling ) +// Writetosci changed (XMIN,... assigned ) +// Coordinate System changed +// Pcrd used for GCLIST, Lcrd used calculating +// Extractdata added +// Plotdata debugged (Exc option) +// Assign added +// Plotdata, Paramplot changed ( Assign used ) +// e: 2014.12.11 +// Circledata through 3 pts supported +// e: 2014.12.14 +// ReadOutData changed ( for 3d ) +// e: 2014.12.16 v1.1.1 +// nodata option added +// Makeshell added +// e: 2014.12.17 +// Extractdata changed (GLIST ) +// e: 2014.12.18 +// Exptractdata changed ( case of list length==1) +// Integrate changed ( for scaling ) +// IntersectcrvPhy, Intersectcrv, Meetcurve changed ( for scaling) +// Arrowheaddata debugged ( for scaling ) +// e: 2014.12.19 +// Windispg changed ( empty case ) +// hatchdata changed ( Extractdata used ) +// e: 2014.12.20 +// Assign debugged ( case of .x ) +// Plotdata, Paramplot changed ( Num changed to number of intervals ) +// e: 2014.12.21 +// ReadOutData changed ( comment if headchar="#" ) +// e: 2014.12.22 +// Windispg changed ( case of empty data ) +// ReadOutData debugged +// Flattenlist, WriteOutData added +// e: 2014.12.24 +// Divoptions added +// Addgraph added ( need to be revised ) +// e: 2014.12.27 +// Dotprod, Crossprod moved from 3dlib +// BezierCurve added +// e: 2014.12.28 +// Bezier changed (2 & 3 ) +// e: 2014.12.30 +// ViewTeX added +// Bezier changed ( choosable 2/3 ) +// Hatchdata debugged ( iostr to list ) +// v1.1.3 +// e: 2014.12.31 +// Bezier changed ( varirous forms of Num, ctrlist usable) +// Pointdata changed ( opcindy supported ) +// e: 2015.01.01 +// Bezier(list) supported ([ptlist,ctrlist,name]); +// Readpcsvsla, Putbezierdata added +// e: 2015.01.02 +// Bezier changed ( corresponded to Bezier in ketsciL5.1.4 ) +// Mkbezierptcrv added +// e: 2015.01.03 +// Mkbeziercrv added +// Putbezierdata changed (option "Size=") +// BezierNumber added to Ketinit +// Mkbezierptcrv changed ( ptctrLL returned ) +// Shade changed ( case of not defined yet ) +// e: 2015.01.04 v1.1.4 +// ketcindylogo added +// e: 2015.01.05 +// CRspline added +// e: 2015.01.05 +// CRspline changed ( "Rat=" added ) +// Com2ndpre added ( ex) shade +// e: 2015.01.07 +// Com2ndpre added +// Shade changed ( Com2ndpre used ); +// Bzspline added +// e: 2015.01.08 +// Shade (Com2nd ) restored +// Bzsspline added +// Bspline added ( Usui ) +// e:2015.01.11 +// Beziersmooth, Beziersym = Bzspline, Bzsspline +// Arrowheaddata,Arrowhead, Arrowdata changed ( option etc) +// e: 2015.01.12 +// Setunitlen changed (added to GLIST ) +// e: 2015.01.13 +// Makeshell, Makebat changed ( case of Texmain==""); +// Divoptions used for options of all commands +// e: 2015.01.14 +// Arrowhead debugged +// e: 2015.01.15 +// Makesh, Makebat debugged and changed ( Warning message ) +// e: 2015.01.17 +// WriteOutData changed ( list of Gname permitted) +// e: 2015.01.20 +// Setpt changed ( written to COM2nd ) +// AddGraph debugged & changed +// e: 2015.01.22 +// AddGraph changed ( for, stringdata, for pointdata) +// MeasureDepth changed ( singlepoint =0) +// Mkbezierptcrv changed (label of points ) +// Setcolor changed ( Setcolor (ketpic)command supported) +// e: 2015.01.27 +// Plist, Vlist changed (format(. , 5 ) used ) +// e: 2015.01.31 +// Windispg(pltlist) added (changed from Windispg(GoutL)) +// e: 2015.02.05 +// format(.., 5) changed ( to remove "i" ) +// e: 2015.02.06 +// Defvar(name,value) changed (parse executed ) +// WritetoSci changed ( VLIST ) +// e: 2015.02.08 +// Defvar(name,value) debugged +// Bezierpt changed ( available for 3d ) +// e: 2015.02.09 +// Changestyle, ChangeTablestyle, Textformat added +// Assign changed (Textformat used ) +// e: 2015.02.13 +// Tabledata, Putpttable changed ( made from up to down ) +// e: 2015.02.14 +// Putpttable changed ( R0 fixed ) +// e: 2015.02.15 +// Putpttable debugged +// Mksegments, Mkcircles added +// PtonLine, PtonSeg added +// e: 2015.02.16 +// Finddef added +// e: 2015.02.18 +// Rotatedata,... debugged ( for pdlist ) +// e: 2015.02.19 +// Findgeoinfo,Sortpointlist added +// e: 2015.02.21 +// Pointdata changed ( for non list, and "size=" added ) +// e: 2015.02.22 +// Letter, Expr changed ( ` ) +// PtonLine,... renamed to PutonLine,.. +// Pne, Psw renamed to NE, SE +// e: 2015.02.23 +// help(example) added +// Mkbezierptcrv changed ( available for BezierNumber >26) +// Makehelplist,Makecmdlist,Savecmdlist,Quicksort,Lessstr added +// Helplist,Help added +// e: 2015.02.24 +// Help ( PointonCurve ) revised +// e: 2015.02.25 v1.2.1 +// Helplist changed +// Dependgeo, Viewprocess added +// e: 2015.02.27 +// Drawprocess renamed to Workprocess +// Help changed ( Capital transform quitted ) +// e: 2015.02.28 +// Makecmd changed ( Dirlb ) +// Mkbezierptcrv debugged ( name ) +// Shade changed ( err message removed ) +// system help added +// e: 2015.03.05 +// CRspline changed (cinderella options available ) +// e: 2015.03.06 v1.2.2 +// Findarea added +// e: 2015.03.07 +// Findlength added +// e: 2015.03.11 v1.2.3 +// Mkbezierptcrv changed ( A,... => a,... ) +// e: 2015.03.12 +// Bowdata debugged +// e: 2015.03.24 v.1.2.4 +// Listplot changed ( for stringdata ) +// e: 2015.03.25 +// Enclosing changed ( implemented to Cindy ) +// e: 2015.04.06 v.1.2.5 +// Ketinit changed ( for Fhead not defined ) +// IntersectcrvsPp changed ( Dif option added ) +// EnclosingS changed +// Letter, Expr changed ( options "nodisp" ) +// Textformat changed ( for point ) +// text => textformat +// e: 2015.04.10 v.1.2.6 +// Textformat debugged +// Writetosci changed ( ThisVersion written ) +// e: 2015.04.12 +// Anglemark debugged +// Bowdata debugged +// Ptend debugged +// e: 2015.04.20 v1.2.7 +// Enclosing debugged +// e: 2015.04.21 +// Setcolor changed (for [c,m,y,k] ) +// e: 2015.04.28 v1.2.8 +// Setcolorrgb added +// Setcolor changed ( KCOLOR abolished ) +// e: 2015.05.04 +// Toupper, Definecolor added +// e: 2015.05.11 v1.3.1 +// Widispg(Pdata) debugged +// Framedata changed ( for Findcell ) +// e: 2015.05.15 +// Writesci changed (arccos,.. added ) +// Plotdata, Paramplot changed (for out/in ) +// Deqplot added ( only executed externally ) +// Hatchdata changed ( in and out executed as default) +// Writetosci changed ( load only if the file exists ) +// e: 2015.20 v1.3.2 +// Framedata debugged +// Plotdata,Paramplot changed (for outdata ) +// Divoptions changed (Out-, In- supported ) +// e: 2015.21 v1.3.3 +// Tabledatalight, Tablelightseg added +// Tablelightdata, Tgrid, Tseginfo, Tlistplot, Tsegrmv added +// Putcell, ChangeTablestyle changed ( for Tabledatalight ) +// Help changed ( Description added with ? ) +// e: 2015.23 v1.3.3 +// Helplist changed ( fileslist is not to be added ) +// Tabledata changed (similar to Tabledatalight ) +// Findcell debugged +// Changestyle debugged +// Changetablestyle changed +// e: 2015.05.26 v1.4.1 +// Help of Hatchdata changed +// Removespace added +// Drawlinetype added +// e: 2015.05.27 v1.4.1a +// Com1st changed ( string is added to GLIST ) +// e: 2015.05.31 v1.4.2 +// Divoptions debugged +// IntersectcrvsPp debugged (Dif -> 0.05 ) +// e: 2015.0602 v1.4.3 +// Divoptions debugged +// e: 2015.06.02 v1.4.4 +// Writetosci changed ( for C version ) +// e: 2015.06.03 v1.4.5 +// Tlistplot changed ( for more than 2 points ) +// e: 2015.06.11 +// Talbedata debugged ( Setwindow ) +// Arrowdata changed ( listplot ) +// e: 2015.06.20 v1.4.6 +// Helplist debugged +// e: 2015.06.22 v1.5.0 +// .cs adopted +// Helplist changed +// Makeshell, Makebat changed ( "..." ) +// e: 2015.07.06 v1.5.1 +// helpJ slighty changed +// Assign debugged +// Depplot changed ( realtime ) +// e: 2015.07.15 +// Presentation, Mkslides added +// e: 2015.07.16 v 1.5.3 +// Mksh, Mkbat slightly changed +// Hatchdata changed ( for "nodisp" ) +// e: 2015.07.21 v 1.5.4 +// Presendata changed ( for preample) +// e: 2015.07.25 +// Pcrd changed ( re added for point ) +// e: 2015.07.26 v1.5.5 +// Drawsegmark, Parabolaplot, Putintersect added +// e: 2015.07.27 +// Polygonplot, Drawsegmark added +// e: 2015.07.28 +// Texmain renamed to Texparent +// e: 2015.08.07 v1.5.6 +// Ellipseplot added +// e: 2015.08.08 +// Hyperbolaplot added +// Parabolaplot changed ( range ) +// e: 2015.08.09 +// Polygonplot changed ( options added ) +// help of Letterrot,Exprrot debugged +// e: 2015.08.10 +// Ellipseplot changed ( range added ) +// e: 2015.08.14 v1.5.7 +// Mkslides debugged ( Texmain ) +// e: 2015.08.29 +// Ovaldata debugged +// e: 2015.09.10 v1.6.0 +// WritetoR, kcR, PlotdataR added +// e: 2015.09.12 v1.6.1 +// Writesci, Extractdata changed ( for length==1) +// Partcrv, Enclosing debugged (for scaling ) +// e: 2015.09.13 +// CalcbyR added +// e: 2015.09.14 +// Integrate changed ( Oshima rule implemented, Way => Rule ) +// Ospline added +// e: 2015.09.15 +// Sprintf added ( = sprintf("%*.(dig)f") ); +// Assign changed ( multi assignment supported ) +// e: 2015.09.16 v1.6.2 +// KcR changed ( wait added ) +// PlotdataR, CalcbyR changed ( PathR set as defalt ) +// Boxplot added +// e: 2015.09.17 v1.6.3 +// Histplot, Framedata2 added +// Boxplot changed ( from file ) +// Boxplot added +// e: 2015.09.18 v1.6.4 +// Rulerscale added +// Tlisplot changed ( "Msg=no" added ) +// e: 2015.09.20 v1.6.5 +// CalcbyR changed ( in case of name is a number ) +// e: 2015.09.21 +// Ospline changed ( in case of non-closed ) +// e: 2015.09.23 v1.6.6 +// ColorRgb2Cmyk, ColorCmyk2Rgb, Colorinfile added +// e: 2015.09.25 +// PlotdataR, CalcbyR changed ("make" option not needed ) +// e: 2015.09.29 v1.6.7 +// CalcbyR, Boxplot debugged/changed +// Readcsv added +// e: 2015.09.29 v1.6.8 +// Histplot debugged/changed +// WritetoR debugged +// e: 2015.09.30 v1.6.9 +// WritetoR changed ( "setwd" added ) +// PlotdiscR added +// e: 2015.10.01 v1.6.9a +// Readcsv changed ( for blank ) +// Scatterplot added +// e: 2015.10.02 v1.6.9b +// WritetoR,... changed ( options ) +// textformat changed ( Dq added for string ) +// CalcbyR chanded ( case of start with "=", name added ) +// e: 2015.10.03 v1.7.0 +// Histplot changed ( options for Listplot) +// Writecsv added +// e: 2015.10.04 v1.8.0 +// WritetoS, kcS, CalcbyS added +// ReadOutData debugged ( for null data, and case of outdt is null ) +// e: 2015.10.05 +// CalcbyR, CalcbyS changed (deleting the file at first, +// waiting until file generated ) +// PlotdataR, PlotdiscR, Readcsv, Boxplot, Histplot changed ( timing ) +// e: 2015.10.06 +// Implicitplot added ( using CalcbyS) +// e: 2015.10.08 v1.8.1 +// kcR, kcS,... changed ( path of "kc" can be at any place, etc ) +// Colorcode added +// e: 2015.10.13 v1.8.2 +// waiting added +// WritetoR changed +// PlotdataR debugged/changed +// WaitUnit (global var ) added +// e: 2015.10.15 v1.8.3 +// HatchdataS, MkprecommandS added +// Histplot changed ( density options ) +// Scaledata, ... debugged ( in case of list) +// Writecsv changed (option of "Col=" ) +// e: 2015.10.16 +// CalcbyS, CalcbyR, Hatchdata changed +// e: 2015.10.17 +// Readcsv changed ( option "Head=" added ) +// e: 2015.10.19 v1.8.4 +// Colorcode changed (hsi,hwb supported) +// e: 2015.10.22 v1.8.5 +// Boxplot, Histplot changed ( option "" ) +// OutFileLIst,Rform added +// e: 2015.10.29 v1.8.6 +// WriteOutData changed (endmark //// ) +// ReadOutData changed (renewal ) +// CalcbyR, CalcbyS changed ( //// used) +// ErrFlag are defined +// e: 2015.10.31 v2.0.0 +// Bugs fixed +// e: 2015.11.01 v2.0.1 +// CalcbyS changed ( for [[[ ... ]]] ) +// Hatchdata changed from HatchdataS +// (Old version renamed to Hatchdata2 ) +// e: 2015.11.03 v2.0.2 +// Default of waiting raised +// e: 2015.11.05 v2.1.0 +// lib divided to libbasic, libout +// Use of cs changed +// Mkhellp changed +// Colorcode,... changed/debugged +// Cindycolor added +// e: 2015.11.06 v2.1.1 +// libbasic divided to libbasic1,libbasic2 +// Readcsv, .., changed ( for case of non-exiting file ) +// e: 2015.11.09 v2.1.2 +// helplist debugged +// Getlinestyle debugged ( for id ) +// e: 2015.11.09 v2.1.3 +// Plotdata, Paramplot changed ( LFmark) +// e: 2015.11.20 v2.2.1 +// Addcolor added +// e: 2015.11.20 v2.2.2 +// Koutenseg, IntersectcrvsPp debugged (from Usui) +// e: 2015.11.24 v2.2.3 ( out ) +// e: 2015.11.26 +// IntegrateO changed ( for a>b of range ) +// e: 2015.11.29 v2.2.5 +// basic2, out +// example.txt adde +// e: 2015.12.08 v2.2.6 +// basic2, out +// e: 2015.12.12 v2.2.7 +// basic2, out ( autosetting ) +// e: 2015.12.14 v2.2.8 +// basic2, ( autosetting of slides) +// e: 2015.12.23 v2.2.9 +// Listplot, Lineplot debugged ( precision) +// Numcrv debugged (tmp) +// e: 2016.01.07 v2.3.0 +// out (Mxtex) +// e: 2016.01.10 v2.3.1 +// out (Mxtex,kcS) +// e: 2016.01.12 +// basic2 (Viewtex) +// e: 2016.01.18 v2.3.2 +// basic2 (Viewtex) +// out ( Mxtex ) +// e: 2016.01.21 v2.3.3 +// Ptstart debugged +// basic2 ( Drwxy,Sciform ) +// e: 2016.01.24 v2.3.4 +// Shade changed ( for non-string data ) +// 3d ( concatobj ) +// e: 2016.01.27 +// Invert debugged +// Invert changed ( for a list of plotdata ) +// Listplot changed ("sg" not added when name starts with "-" ) +// Opcrvs added +// e: 2016.01.29 +// Ovaldata debugged ( "nodisp" , Tex output) +// e: 2016.01.29 v2.3.5 +// out +// e: 2016.02.22 +// basic2, 3d, out +// e: 2016.02.24 +// out +// e: 2016.02.26 +// out +// e: 2016.02.29 v2.3.7 +// GetLinestyle changed ( "sub..." not outputted to TeX ) +// out,3d +// e: 2016.03.02 +// out,3d +// e: 2016.03.03 +// out +// e: 2016.03.05 +// basic2,out +// e: 2016.03.07 +// basic2 +// e: 2016.03.10 +// integrateO changed ( for geo. point ) +// e: 2016.03.14 +// out +// e: 2016.03.16 +// IntegralO debugged +// e: 2016.03.17 v2.3.8 +// out +// e: 2016.03.25 v2.3.9 +// basic2 +// e: 2016.03.26 +// out, basic2 +// e: 2016.03.27 +// out +// e: 2016.03.28 +// basic2 +// Removespace debugged +// e: 2016.04.01 +// mv +// e: 2016.04.03 +// Partcrv debugged +// e: 2016.04.04 +// Addgraph changed ( when data is a string ) +// e: 2016.04.05 +// Addgraph changed ( case data is a list of plotdata ) +// Chunderscore added +// e: 2016.04.06 +// out (Hatchdata) +// e: 2016.04.08 +// Ketinit() changed ( FigPdfList added ) +// e: 2016.04.09 v2.4.1 +// Setpen,Setpt changed ( PenThick, TenSize ) +// Arrowdata changed ( Arrow thickness/position for "l" ) +// Addgraph changed ( for non string data ) +// e: 2016.04.11 +// basic2(BBdata) +// e: 2016.04.13 +// Changework added +// e: 2016.04.15 +// out(Mkobj...) +// e: 2016.04.17 +// basic2, out +// e: 2016.04.23 +// Changework debugged +// e: 2016.04.25 +// Changelib added +// e: 2016.04.26 +// Indexall added +// e: 2016.05.03 +// Nearestpt debugged +// e: 2016.05.12 +// Parlevel added +// e: 2016.05.16 +// Ketinit changed ( ADDPACK added) +// e: 2016.05.22 +// Parlevel changed ( for any parenthes ) +// Bracket aded ( Parlevel renamed) +// e: 2016.05.25 +// Op added +////// To Reverse sequence ////// + + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketcindylibbasic2.cs b/texmf-dist/scripts/ketpic/ketlib/ketcindylibbasic2.cs new file mode 100644 index 00000000..80e48da9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketcindylibbasic2.cs @@ -0,0 +1,5135 @@ +// Copyright (C) 2014 Setsuo Takato, KETCindy Japan project team +// +//This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/> +// + +println("ketcindybasic2(2017.08.23) loaded"); + +//help:start(); + +Dispchoice():=( + if(islist(Ch), + if(!isreal(ChNum),ChNum=1); + drawtext(mouse().xy,"Ch="+text(Ch)+" N="+text(ChNum),size->24,color->[0,0,1]); + ); +); + +Datetime():=( +//help:Datetime(); + regional(names,dt,tmp); + tmp=getdatetime(); + dt=tokenize(tmp," "); + dt=apply(dt,if(!isstring(#),text(#),#)); + names=["Jan","Feb","Mar","Apr","May","Jun", + "Jul","Aug","Sep","Oct","Nov","Dec"]; + tmp=select(1..12,names_#==dt_2); + tmp=text(tmp_1); + tmp=[dt_6+"/"+tmp+"/"+dt_3,dt_4]; +); + +Rotatepoint(point,Theta,ctr):=( +//help:Rotatepoint(A,2*pi/3,B); + regional(X1,X2,Y1,Y2,Cx,Cy,tmp); + tmp=Lcrd(point); + X1=tmp_1; Y1=tmp_2; + tmp=Lcrd(ctr); + Cx=tmp_1; Cy=tmp_2; + X2=Cx+(X1-Cx)*cos(Theta)-(Y1-Cy)*sin(Theta); + Y2=Cy+(X1-Cx)*sin(Theta)+(Y1-Cy)*cos(Theta); + [X2,Y2]; +); + +Translatepoint(point,mov):=( +//help:Translatepoint(A,[2,3]); + regional(X1,X2,Y1,Y2,Cx,Cy,tmp); + tmp=Lcrd(point); + X1=tmp_1; Y1=tmp_2; + tmp=Lcrd(mov); + Cx=tmp_1; Cy=tmp_2; + X2=X1+Cx; + Y2=Y1+Cy; + [X2,Y2]; +); + +Scalepoint(point,ratio,center):=( +//help:Scalepoint(A,[3,2],[0,0]); + regional(X1,X2,Y1,Y2,Cx,Cy,tmp); + tmp=Lcrd(point); + X1=tmp_1; Y1=tmp_2; + tmp=Lcrd(center); + Cx=tmp_1; Cy=tmp_2; + X2=Cx+ratio_1*(X1-Cx); + Y2=Cy+ratio_2*(Y1-Cy); + [X2,Y2]; +); + +Reflectpoint(point,symL):=( +//help:Reflectpoint(A,B); +//help:Reflectpoint(A,[[2,3]]); +//help:Reflectpoint(A,[C,E]);\\ + regional(X1,X2,Y1,Y2,Us,Vs,Pt1,Pt2,Cx,Cy,tmp); + tmp=Lcrd(point); + X1=tmp_1; Y1=tmp_2; + Pt1=Lcrd(symL_1); + if(length(symL)==1, + Pt2=Pt1; + , + Pt2=Lcrd(symL_2); + ); + Us=Pt2_1-Pt1_1; + Vs=Pt2_2-Pt1_2; + if(Pt1==Pt2, + X2=2*Pt1_1-X1; + Y2=2*Pt1_2-Y1; + , + X2=(Us^2-Vs^2)/(Us^2+Vs^2)*X1+2*Us*Vs/(Us^2+Vs^2)*Y1 + -2*Vs*(Us*Pt1_2-Vs*Pt1_1)/(Us^2+Vs^2); + Y2=2*Us*Vs/(Us^2+Vs^2)*X1-(Us^2-Vs^2)/(Us^2+Vs^2)*Y1 + +2*Us*(Us*Pt1_2-Vs*Pt1_1)/(Us^2+Vs^2); + ); + [X2,Y2]; +); + +Rotatedata(nm,plist,Theta):=Rotatedata(nm,plist,Theta,[]); +Rotatedata(nm,plist,angle,options):=( +//help:Rotatedata("1","crAB",pi/3,[[1,5],"dr,2"]); + regional(tmp,tmp1,tmp2,pdata,Theta,Pt,Cx,Cy,PdLL,PdL, + opcindy,Nj,Njj,Kj,Mj,X1,Y1,X2,Y2,Ltype,Noflg,name); + name="rt"+nm; + Pt=[0,0]; + tmp=Divoptions(options); + Ltype=tmp_1; + Noflg=tmp_2; + opcindy=tmp_(length(tmp)); + tmp1=tmp_6; + if(length(tmp1)>0,Pt=Lcrd(tmp1_1)); + pdata=plist; + if(isstring(pdata),pdata=[pdata]); + if(!isstring(pdata_1) & MeasureDepth(pdata)==1, + pdata=[pdata]; + ); + if(isstring(angle),Theta=parse(angle),Theta=angle); + Cx=Pt_1; Cy=Pt_2; + PdL=[]; + forall(pdata,Njj, + if(isstring(Njj),Kj=parse(Njj),Kj=Njj); + if(MeasureDepth(Kj)==1,Kj=[Kj]); + tmp2=[]; + forall(Kj,Nj, + tmp1=[]; + forall(Nj, + tmp=LLcrd(#); + X1=tmp_1; + Y1=tmp_2; + X2=Cx+(X1-Cx)*cos(Theta)-(Y1-Cy)*sin(Theta); + Y2=Cy+(X1-Cx)*sin(Theta)+(Y1-Cy)*cos(Theta); + tmp1=concat(tmp1,[[X2,Y2]]); + ); + tmp2=concat(tmp2,[tmp1]); + ); + PdL=concat(PdL,tmp2); + ); + if(Noflg<3, + println("generate Rotatedata "+name); + tmp1=[]; + forall(PdL,tmp2, + tmp=apply(tmp2,Pcrd(#)); + tmp1=append(tmp1,tmp); + ); + if(length(tmp1)==1,tmp1=tmp1_1); + tmp=name+"="+textformat(tmp1,5); + parse(tmp); +// tmp1=textformat(plist,5); + tmp1=text(plist); // 15.10.15 + tmp1=replace(tmp1,"[","list("); + tmp1=replace(tmp1,"]",")"); + tmp=name+"=Rotatedata("+tmp1+"," + +textformat(angle,5)+","+textformat(Pt,5)+")"; + GLIST=append(GLIST,tmp); + ); + if(Noflg<2, + if(isstring(Ltype), + Ltype=GetLinestyle(text(Noflg)+Ltype,name); + , + if(Noflg==1,Ltype=0); + ); + GCLIST=append(GCLIST,[name,Ltype,opcindy]); + ); + PdL; +); + +Translatedata(nm,plist,mov):=Translatedata(nm,plist,mov,[]); +Translatedata(nm,plist,mov,options):=( +//help:Translatedata("1",["gr1"],[1,2]); + regional(tmp,tmp1,tmp2,pdata,Cx,Cy,PdL,Nj,Njj,Kj, + opcindy,X2,Y2,Ltype,Noflg,name); + name="tr"+nm; + tmp=Divoptions(options); + Ltype=tmp_1; + Noflg=tmp_2; + opcindy=tmp_(length(tmp)); + pdata=plist; + if(isstring(pdata),pdata=[pdata]); + if(!isstring(pdata_1) & MeasureDepth(pdata)==1, + pdata=[pdata]; + ); + tmp=Lcrd(mov); + Cx=tmp_1; Cy=tmp_2; + PdL=[]; + forall(pdata,Njj, + if(isstring(Njj),Kj=parse(Njj),Kj=Njj); + if(MeasureDepth(Kj)==1,Kj=[Kj]); + tmp2=[]; + forall(Kj,Nj, + tmp1=[]; + forall(Nj, + tmp=LLcrd(#); + X2=tmp_1+Cx; + Y2=tmp_2+Cy; + tmp1=concat(tmp1,[[X2,Y2]]); + ); + tmp2=concat(tmp2,[tmp1]); + ); + PdL=concat(PdL,tmp2); + ); + if(Noflg<3, + println("generate Translatedata "+name); + tmp1=[]; + forall(PdL,tmp2, + tmp=apply(tmp2,Pcrd(#)); + tmp1=append(tmp1,tmp); + ); + if(length(tmp1)==1,tmp1=tmp1_1); + tmp=name+"="+textformat(tmp1,5); + parse(tmp); +// tmp1=textformat(plist,5); + tmp1=text(plist); // 15.10.15 + tmp1=replace(tmp1,"[","list("); + tmp1=replace(tmp1,"]",")"); + tmp=name+"=Translatedata("+tmp1+","+textformat(mov,5)+")"; + GLIST=append(GLIST,tmp); + ); + if(Noflg<2, + if(isstring(Ltype), + Ltype=GetLinestyle(text(Noflg)+Ltype,name); + , + if(Noflg==1,Ltype=0); + ); + GCLIST=append(GCLIST,[name,Ltype,opcindy]); + ); + PdL; +); + +Scaledata(nm,plist,ratioV):=( + regional(tmp); + tmp=Lcrd(ratioV); + Scaledata(nm,plist,tmp_1,tmp_2,[]); +); +Scaledata(nm,plist,Arg1,Arg2):=( +//help:Scaledata("1","crAB",3,2,[[0,0]]); + regional(tmp,options); + if(islist(Arg2), + tmp=Lcrd(Arg1); + options=Arg2; + Scaledata(nm,plist,tmp_1,tmp_2,options); + , + Scaledata(nm,plist,Arg1,Arg2,[]); + ); +); +Scaledata(nm,plist,rx,ry,options):=( + regional(tmp,tmp1,tmp2,pdata,Theta,Pt,Cx,Cy,PdL, + opcindy,Nj,Njj,Kj,X2,Y2,Ltype,Noflg,name); + name="sc"+nm; + Pt=[0,0]; + tmp=Divoptions(options); + Ltype=tmp_1; + Noflg=tmp_2; + opcindy=tmp_(length(tmp)); + tmp1=tmp_6; + if(length(tmp1)>0, + Pt=Lcrd(tmp1_1); + ); + pdata=plist; + if(isstring(pdata),pdata=[pdata]); + if(!isstring(pdata_1) & MeasureDepth(pdata)==1, + pdata=[pdata]; + ); + Cx=Pt_1; Cy=Pt_2; + PdL=[]; + forall(pdata,Njj, + if(isstring(Njj),Kj=parse(Njj),Kj=Njj); + if(MeasureDepth(Kj)==1,Kj=[Kj]); + tmp2=[]; + forall(Kj,Nj, + tmp1=[]; + forall(Nj, + tmp=LLcrd(#); + X2=Cx+rx*(tmp_1-Cx); + Y2=Cy+ry*(tmp_2-Cy); + tmp1=concat(tmp1,[[X2,Y2]]); + ); + tmp2=concat(tmp2,[tmp1]); + ); + PdL=concat(PdL,tmp2); + ); + if(Noflg<3, + println("generate Scaledata "+name); + tmp1=[]; + forall(PdL,tmp2, + tmp=apply(tmp2,Pcrd(#)); + tmp1=append(tmp1,tmp); + ); + if(length(tmp1)==1,tmp1=tmp1_1); + tmp=name+"="+textformat(tmp1,5); + parse(tmp); + tmp1=text(plist); // 15.10.15 + tmp1=replace(tmp1,"[","list("); + tmp1=replace(tmp1,"]",")"); + tmp=name+"=Scaledata("+tmp1+"," + +textformat(rx,5)+","+textformat(ry,5)+","+textformat(Pt,5)+")"; + GLIST=append(GLIST,tmp); + ); + if(Noflg<2, + if(isstring(Ltype), + Ltype=GetLinestyle(text(Noflg)+Ltype,name); + , + if(Noflg==1,Ltype=0); + ); + GCLIST=append(GCLIST,[name,Ltype,opcindy]); + ); + PdL; +); + +Reflectdata(nm,plist,symL):=Reflectdata(nm,plist,symL,[]); +Reflectdata(nm,plist,symL,options):=( +//help:Reflectdata("1","crAB",[C]); + regional(tmp,tmp1,tmp2,pdata,Us,Vs,Pt1,Pt2,Cx,Cy,PdL, + opcindy,Nj,Njj,Kj,X1,Y1,X2,Y2,Ltype,Noflg,name); + name="re"+nm; + Pt=[0,0]; + tmp=Divoptions(options); + Ltype=tmp_1; + Noflg=tmp_2; + opcindy=tmp_(length(tmp)); + pdata=plist; + if(isstring(pdata),pdata=[pdata]); + if(!isstring(pdata_1) & MeasureDepth(pdata)==1, + pdata=[pdata]; + ); + Pt1=Lcrd(symL_1); + if(length(symL)==1, + Pt2=Pt1; + , + Pt2=Lcrd(symL_2); + ); + Us=Pt2_1-Pt1_1; + Vs=Pt2_2-Pt1_2; + PdL=[]; + forall(pdata,Njj, + if(isstring(Njj),Kj=parse(Njj),Kj=Njj); + if(MeasureDepth(Kj)==1,Kj=[Kj]); + tmp2=[]; + forall(Kj,Nj, + tmp1=[]; + forall(Nj, + tmp=LLcrd(#); + X1=tmp_1; + Y1=tmp_2; + if(Pt1==Pt2, + X2=2*Pt1_1-X1; + Y2=2*Pt1_2-Y1; + , + X2=(Us^2-Vs^2)/(Us^2+Vs^2)*X1+2*Us*Vs/(Us^2+Vs^2)*Y1 + -2*Vs*(Us*Pt1_2-Vs*Pt1_1)/(Us^2+Vs^2); + Y2=2*Us*Vs/(Us^2+Vs^2)*X1-(Us^2-Vs^2)/(Us^2+Vs^2)*Y1 + +2*Us*(Us*Pt1_2-Vs*Pt1_1)/(Us^2+Vs^2); + ); + tmp1=concat(tmp1,[[X2,Y2]]); + ); + tmp2=concat(tmp2,[tmp1]); + ); + PdL=concat(PdL,tmp2); + ); + if(Noflg<3, + println("generate Reflectdata "+name); + tmp1=[]; + forall(PdL,tmp2, + tmp=apply(tmp2,Pcrd(#)); + tmp1=append(tmp1,tmp); + ); + if(length(tmp1)==1,tmp1=tmp1_1); + tmp=name+"="+textformat(tmp1,5); + parse(tmp); +// tmp1=textformat(plist,5); + tmp1=text(plist); // 15.10.15 + tmp1=replace(tmp1,"[","list("); + tmp1=replace(tmp1,"]",")"); + tmp=name+"=Reflectdata("+tmp1+","+textformat(symL,5)+")"; + GLIST=append(GLIST,tmp); + ); + if(Noflg<2, + if(isstring(Ltype), + Ltype=GetLinestyle(text(Noflg)+Ltype,name); + , + if(Noflg==1,Ltype=0); + ); + GCLIST=append(GCLIST,[name,Ltype,opcindy]); + ); + PdL; +); + +Mksegments():=Mksegments([]); +Mksegments(options):=( +//help:Mksegments(); + regional(segstr,p,q,r,tmp1,tmp2,tmp3); + forall(allsegments(),seg, + str=text(inspect(seg,"definition")); + tmp1=indexof(str,"("); + tmp2=indexof(str,";"); + tmp3=indexof(str,")"); + p=substring(str,tmp1,tmp2-1); + q=substring(str,tmp2,tmp3-1); + Listplot([parse(p),parse(q)]); + ); +); + +Mkcircles():=Mkcircles([]); +Mkcircles(options):=( +//help:Mkcircles(): + regional(seg,cir,str,p,q,r,tmp1,tmp2,tmp3,tmp4); + forall(allcircles(),cir, + str=text(inspect(cir,"definition")); + tmp1=indexof(str,"("); + tmp2=indexof(str,";"); + tmp3=indexof(str,")"); + tmp4=indexof(str,";",tmp2+1); + if(tmp4==0, + p=substring(str,tmp1,tmp2-1); + q=substring(str,tmp2,tmp3-1); + Circledata([parse(p),parse(q)]); + , + p=substring(str,tmp1,tmp2-1); + q=substring(str,tmp2,tmp4-1); + r=substring(str,tmp4,tmp3-1); + Circledata([parse(p),parse(q),parse(r)]); + ); + ); +); + +Makesciarg(arglist):=( + regional(str,tmpstr); + str=""; + forall(arglist, + if(isstring(#), + tmpstr=Dq+#+Dq; + , + tmpstr=textformat(#,5); + ); + str=str+tmpstr+","; + ); + str=substring(str,0,length(str)-1); + str; +); + +Setax(arglist):=( +//help:Setax(["l","x","e","y","n","O","sw"]); +//help:Setax([7,"nw"]); + regional(tmp); + tmp=Makesciarg(arglist); + Com1st("Setax("+tmp+")"); +); + +Htickmark(arglist):=( +//help:Htickmark([1,"1",2,"sw","2"]); + regional(tmp); + tmp=""; + tmp=Makesciarg(arglist); + Com2nd("Htickmark("+tmp+")"); +); + +Vtickmark(arglist):=( +//help:Vtickmark([1,"1",2,"sw","2"]); + regional(tmp); + tmp=Makesciarg(arglist); + Com2nd("Vtickmark("+tmp+")"); +); + +Vtick(py):=Vtick(py,MARKLEN,[]); +Vtick(py,len):=Vtick(py,len,[]); +Vtick(py,len,options):=( +//help:Vtick(1,0.1,options); + regional(tmp,tmp1,tmp2); + tmp="v"+text(round(py*100)); + tmp=replace(tmp,"-","m"); + tmp1=[0-len/2,py]; + tmp2=[0+len/2,py]; + Listplot(tmp,[tmp1,tmp2],options); +); + +Htick(px):=Htick(px,MARKLEN,[]); +Htick(px,len):=Htick(px,len,[]); +Htick(px,lenorg,options):=( +//help:Htick(-1,0.1,options); + regional(len,tmp,tmp1,tmp2); + tmp=LLcrd([0,lenorg]); + len=tmp_2; + tmp="h"+text(round(px*100)); + tmp=replace(tmp,"-","m"); + tmp1=[px,0-len/2]; + tmp2=[px,0+len/2]; + Listplot(tmp,[tmp1,tmp2],options); +); + +Drwxy():=( +//help:Drwxy(); + Com2nd("Drwxy()"); + Addax(0); // 16.01.21 +); + +Drwpt(pstr):=Drawpoint(pstr); +Drwpt(ptlist,nn):=( // 16.03.05 from +//help:Drwpt(A); +//help:Drwpt("[1,1],0"); +//help:Drwpt(A,0); +//help:Drwpt([1,2],0); + Drawpoint(ptlist,nn); +); +Drawpoint(pstr):=( + if(isstring(pstr), + println("Drwpt : "+pstr); + Com2nd("Drwpt("+pstr+")"); + , + Drawpoint(pstr,1); + ); +); +Drawpoint(ptlistorg,nn):=( + regional(ptlist,thick,tmp,tmp1); + println("Drwpt : "+text(ptlistorg)); + if(islist(ptlistorg), + if(MeasureDepth(ptlistorg)==1, + ptlist=ptlistorg + , + ptlist=[ptlistorg] + ); + , + ptlist=[ptlistorg] + ); + thick=PenThick/PenThickInit;// 16.04.09 from + tmp1=max(TenSize/TenSizeInit,1)/8; + Setpen(tmp1); // 16.04.09 upto + forall(ptlist, + tmp=textformat(#,5)+","+text(nn); + Com2nd("Drwpt("+tmp+")"); // 16.04.09 + ); + Setpen(thick); // 16.04.09 +);// 16.03.05 upto + +Addax(param):=( +//help:Addax(0); + ADDAXES=textformat(param,5); +); + +Expr(Pt,Dr,St):=Expr([Pt,Dr,St]); +Expr(list):=Expr(list,[]); +Expr(listorg,options):=( //16.10.09 +//help:Expr([A,"e","f(x)=x^2"]); + regional(list,str,tmp,tmp1,tmp2); + list=listorg; + forall(1..round(length(list)/3), + str=list_(3*#); + if(!isstring(str),str=format(str,5)); + str="$"+str+"$"; + list_(3*#)=str; + ); + Letter(list,options); +); + +Letter(Pt,Dr,St):=Letter([Pt,Dr,St]); +Letter(list):=Letter(list,[]); +Letter(list,options):=( +//help:Letter([C,"c","Graph of f(x)"]); + regional(Nj,Pos,Dir,Str,Off,Dmv,Xmv,Ymv,Noflg,opcindy, + opL,aln,sz,clr,bld,ita,tmp,tmp1,tmp2); + tmp=Divoptions(options); + Noflg=tmp_2; + opL=select(options,indexof(#,"->")>0); //16.10.09from + tmp=select(opL,indexof(#,"color")); + size=12; + clr=[0,0,0]; + bld=false; + ita=false; + aln="left"; + forall(opL, + tmp=indexof(#,"->"); + tmp1=removespace(substring(#,0,tmp-1)); + tmp2=substring(#,tmp+1,length(#)); + if(tmp1=="size",sz=parse(tmp2)); + if(tmp1=="color",clr=parse(tmp2)); + if(tmp1=="bold",bld=parse(tmp2)); + if(tmp1=="ita",ita=parse(tmp2)); + );//16.10.09upto + Off=-4; + Dmv=8; + Nj=1; + while(Nj+2<=length(list), +// Pos=textformat(list_Nj,5); + Pos=list_Nj; + Dir=list_(Nj+1); + tmp=indexof(Dir,"s")+indexof(Dir,"n");//16.10.19from + if(tmp>0, + tmp=indexof(Dir,"w")+indexof(Dir,"e"); + if(tmp==0, + Dir="c"+Dir;//16.10.08 + ); + );//16.10.19upto + Str=list_(Nj+2); + if(!isstring(Str),Str=format(Str,5)); // 16.09.30,10.09 + tmp=replace(Str,".xy",""); + tmp=replace(tmp,".x","(1)"); + Str=replace(tmp,".y","(2)"); + if(indexof(Str,"`")>0, +// tmp=Dq+",Assign('"+Str+"','`',Prime()))"; + tmp=Dq+",Assign('"+Str+"'))"; // 15.02.22 + , + tmp=Dq+","+Dq+Str+Dq+")"; + ); + if(Noflg==0, + Com2nd("Letter("+Lcrd(Pos)+","+Dq+Dir+tmp);//16.10.10 + ); + if(Noflg<2, + Xmv=0;//16.10.13 + Ymv=-4; + if(indexof(Dir,"n")>0, + Ymv=Dmv/2; + ); + if(indexof(Dir,"s")>0, + Ymv=-Dmv*3/2;//16.10.13 + ); + if(indexof(Dir,"e")>0, + Xmv=Dmv/2; + Off=0; + aln="left"; + ); + if(indexof(Dir,"w")>0, + Xmv=-Dmv/2; + Off=0; // 16.09.30from + aln="right"; + ); + if(indexof(Dir,"c")>0, + Xmv=0;//16.10.13 + Off=0; + if(Ymv==0,Ymv=-4);//16.10.08 + aln="mid"; // 16.09.30upto + ); + drawtext(Pcrd(Pos),Str,offset->[Off+Xmv,Off+Ymv], + size->sz,color->clr,align->aln,bold->bld,italics->ita);//16.10.09 + ); + Nj=Nj+3; + ); +); + +Letterrot(pt,dir,str):=Letterrot(pt,dir,0,0,str); +Letterrot(pt,dir,movstr,str):=( +//help:Letterrot(C,B-A,"AB"): +//help:Letterrot(C,B-A,0,5,"AB"): +//help:Letterrot(C,B-A,"t0n5","AB"): + regional(tmov,nmov,tmp,tmp1,tmp2); + tmp1=indexof(movstr,"t"); + tmp2=indexof(movstr,"n"); + if(tmp1>0, + if(tmp2>0,tmp=tmp2-1,tmp=length(movstr)); + tmov=parse(substring(movstr,tmp1,tmp)); + , + tmov=0; + ); + if(tmp2>0, + nmov=parse(substring(movstr,tmp2,length(movstr))); + , + nmov=0; + ); + Letterrot(pt,dir,tmov,nmov,str); +); +Letterrot(pt,dir,tmov,nmov,str):=( + Letter([pt,"c",str],["notex"]); + Com2nd("Letterrot("+pt+","+dir+","+tmov+","+nmov+",'"+str+"')"); +); + +Exprrot(pt,dir,str):=Exprrot(pt,dir,0,0,str); +Exprrot(pt,dir,movstr,str):=( +//help:Exprrot(C,B-A,"d"): +//help:Exprrot(C,B-A,0,5,"d"): +//help:Exprrot(C,B-A,"t0n5","d"): + regional(tmov,nmov,tmp,tmp1,tmp2); + tmp1=indexof(movstr,"t"); + tmp2=indexof(movstr,"n"); + if(tmp1>0, + if(tmp2>0,tmp=tmp2-1,tmp=length(movstr)); + tmov=parse(substring(movstr,tmp1,tmp)); + , + tmov=0; + ); + if(tmp2>0, + nmov=parse(substring(movstr,tmp2,length(movstr))); + , + nmov=0; + ); + Exprrot(pt,dir,tmov,nmov,str); +); +Exprrot(pt,dir,tmov,nmov,str):=( + Expr([pt,"c",str],["notex"]); + Com2nd("Exprrot("+pt+","+dir+","+tmov+","+nmov+",'"+str+"')"); +); + +Putslider(ptstr,p1,p2):=Slider(ptstr,p1,p2); +Slider(ptstr,p1,p2):=( //17.04.11 +//help:Slider("A-C-B",[-3,0],[3,0]); + regional(pA,pB,pC,seg,sname,Alpha,tmp,tmp1); + tmp=indexall(ptstr,"-"); + pA=substring(ptstr,0,tmp_1-1); + pC=substring(ptstr,tmp_1,tmp_2-1); + pB=substring(ptstr,tmp_2,length(ptstr)); + seg=pA+pB; + Alpha="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + sname=""; + forall(1..(length(seg)), + tmp=substring(seg,#-1,#); + tmp1=indexof(Alpha,tmp); + if(tmp1>0, + sname=sname+unicode(text(tmp1+96),base->10); + , + sname=sname+tmp; + ); + ); + Putpoint(pA,p1); + Putpoint(pB,p2); + Listplot([parse(pA),parse(pB)],["notex","color->[0,0.4,0.4]","size->2"]); +// create([sname],"Segment",[parse(pA),parse(pB)]); +// tmp2=Listplot("",[p1,p2],["nodata"]); + Putonseg(pC,parse("sg"+pA+pB)); +// create([pC],"PointOn",[parse(sname),0.5]); +); + +Putpoint(name,Pt):=Putpoint(name,Pt,Pt); +Putpoint(name,Ptinit,Pt):=( +//help:Putpoint("A",[1,2],[1,A.y]); + regional(ptstr); + ptstr=apply(allpoints(),#.name);//16.10.06 + if(!contains(ptstr,name), + createpoint(name,Pcrd([Ptinit_1,Ptinit_2])); + , + ptstr=name+".xy="+textformat(Pcrd(Pt),5); + parse(ptstr); + ); +); + +Bezierpt(t,ptlist,ctrlist):=( + regional(flg3,p0,p1,p2,p3,p4,p5,p6,p7,p8,p9); + p0=ptlist_1; + p3=ptlist_2; + p1=ctrlist_1; + if(length(ctrlist)==1, + p2=p3; + flg3=0; + , + p2=ctrlist_2; + flg3=1; + ); + if(length(p0)<3, // 15.02.08 + p0=Lcrd(p0); + p3=Lcrd(p3); + p1=Lcrd(p1); + p2=Lcrd(p2); + ); + p4=(1-t)*p0+t*p1; + p5=(1-t)*p1+t*p2; + p6=(1-t)*p2+t*p3; + p7=(1-t)*p4+t*p5; + p8=(1-t)*p5+t*p6; + p9=(1-t)*p7+t*p8; + if(flg3==0,p7,p9); +); + +Bezier(ptctrlist):=BezierCurve(ptctrlist_3,ptctrlist_1,ptctrlist_2,[]); +Bezier(ptctrlist,options):=BezierCurve(ptctrlist_3,ptctrlist_1,ptctrlist_2,options); +Bezier(nm,ptlist,ctrlist):=BezierCurve(nm,ptlist,ctrlist,[]); +Bezier(nm,ptlist,ctrlist,options):=BezierCurve(nm,ptlist,ctrlist,options); +BezierCurve(nm,ptlist,ctrlist):=BezierCurve(nm,ptlist,ctrlist,[]); +BezierCurve(nm,ptlistorg,ctrlistorg,options):=( +//help:Bezier("1",[A,D],[B,C]); +//help:Bezier(options=["Num=10"]); + regional(name,Ltype,Noflg,opstr,opcindy,Num, + ptlist,ctrlist,tmp,tmp1,tmp2,ii,st,out,list); + name="bz"+nm; + tmp=Divoptions(options); + Ltype=tmp_1; + Noflg=tmp_2; + opstr=tmp_(length(tmp)-1); + opcindy=tmp_(length(tmp)); + Num=10; + tmp1=tmp_5; + forall(tmp1, // 14.12.31 + if(substring(#,0,1)=="N", + tmp2=indexof(#,"="); + Num=parse(substring(#,tmp2,length(#))); + opstr=opstr+","+Dq+#+Dq; + ); + ); + ptlist=apply(ptlistorg,Lcrd(#)); // 16.08.16 + ctrlist=[]; // 14.12.31 + if(length(ctrlistorg)==length(ptlist)-1, + forall(ctrlistorg,tmp1, + if(MeasureDepth(tmp1)==0,tmp=[tmp1],tmp=tmp1); + tmp=apply(tmp,Lcrd(#)); // 16.08.16 + ctrlist=append(ctrlist,tmp); + ); + , + forall(1..(length(ptlist)-1),ii, + tmp=ctrlistorg_((2*ii-1)..(2*ii)); + tmp=apply(tmp,Lcrd(#)); // 16.08.16 + ctrlist=append(ctrlist,tmp); + ); + ); + if(!islist(Num), + Num=apply(ctrlist,Num); + ); + list=[]; + forall(1..(length(ptlist)-1),ii, + tmp1=ptlist_(ii..(ii+1)); + tmp2=ctrlist_ii; + if(ii==1,st=0,st=1); + forall(st..Num_ii, + tmp=Bezierpt(#/Num_ii,tmp1,tmp2); + list=append(list,tmp); + ); + ); + if(Noflg<3, + println("generate Bezier "+name); + out=apply(list,Pcrd(#)); + tmp=name+"="+textformat(out,5); + parse(tmp); + tmp1=textformat(ptlist,5); + tmp1="list("+substring(tmp1,1,length(tmp1)-1)+")"; + tmp2=textformat(ctrlist,5); + tmp2="list("+substring(tmp2,1,length(tmp2)-1)+")"; + GLIST=append(GLIST,name+"=Bezier("+tmp1+","+tmp2+opstr+")"); + ); + if(Noflg<2, + if(isstring(Ltype), + Ltype=GetLinestyle(text(Noflg)+Ltype,name); + , + if(Noflg==1,Ltype=0); + ); + GCLIST=append(GCLIST,[name,Ltype,opcindy]); + ); + list; +); + +Readcsvsla(fname):=Readplotdigdata(fname,[]); +Readcsvsla(fname,options):=Readplotdigdata(fname,options); +Readplotdigdata(fname):=Readplotdigdata(fname,[]); +Readplotdigdata(fname,options):=( + regional(fsc,mv,cmdall,dataL,nd,npt,ptdata,ii,tmp,tmp1,tmp2,tmp3); + tmp=Divoptions(options); + tmp1=tmp_6; + sc=1;//10; + mv=[0,0];//[5,5]; + forall(tmp1, + if(!islist(#),sc=#,mv=#); + ); + if(indexof(fname,".")>0, + tmp=load(fname); + , + tmp=load(fname+".txt"); + ); + cmdall=tokenize(tmp,"//"); + dataL=[]; + forall(2..length(cmdall),ii, + tmp1=parse("["+cmdall_ii+"]"); + dataL=append(dataL,tmp1); + ); + if(length(dataL_(length(dataL)))<2, + dataL=dataL_(1..(length(dataL)-1)); + ); + nd=length(dataL_1)/2; + npt=length(dataL); + ptdata=[]; + forall(1..nd,ii, + tmp3=[]; + forall(1..npt, + tmp1=dataL_#_(2*ii-1); + tmp2=dataL_#_(2*ii); + if(isreal(tmp1), + tmp3=append(tmp3,[tmp1,tmp2]); + ); + ); + ptdata=append(ptdata,tmp3); + ); + tmp1=[]; + forall(ptdata, + tmp=#/sc; + tmp=Translatedata("1",[tmp],-mv,["nodata"]); + tmp1=append(tmp1,tmp); + ); + ptdata=tmp1; + ptdata; +); + +Putbezierdata(name,ptL):=Putbezierdata(name,ptL,[]); +Putbezierdata(name,ptL,options):=( + regional(psize,Deg,tmp,tmp1,tmp2,p1,p2,pts,ctrs); + tmp=Divoptions(options); + psize=3; + Deg=3; + tmp1=tmp_5; + forall(tmp1, + if(substring(#,0,1)=="D", + tmp=indexof(#,"="); + Deg=parse(substring(#,tmp,length(#))); + ); + if(substring(#,0,1)=="S", + tmp=indexof(#,"="); + psize=parse(substring(#,tmp,length(#))); + ); + ); + pts=[]; + ctrs=[]; + forall(1..length(ptL), + p2=ptL_#; // 16.08.16 + if(ispoint(p2), + tmp1=text(p2); + , + tmp1=name+text(#); + Putpoint(tmp1,p2,Lcrd(parse(tmp1))); // 16.08.16 + ); + inspect(parse(tmp1),"ptsize",psize); + pts=append(pts,parse(tmp1)); + inspect(parse(tmp1),"color",4); + if(#>1, + p1=Lcrd(ptL_(#-1)); // 16.08.16 + p2=Lcrd(ptL_#); // 16.08.16 + if(Deg==3, + tmp=(2*p1+p2)/3; + tmp1=name+"p"+text(#-1); + Putpoint(tmp1,tmp,Lcrd(parse(tmp1))); // 16.08.16 + inspect(parse(tmp1),"labeled",false); //15.01.22 + Letter([parse(tmp1),"ne",tmp1],["notex"]); //15.01.22 + inspect(parse(tmp1),"ptsize",psize); + inspect(parse(tmp1),"color",3); + tmp=(p1+2*p2)/3; + tmp2=name+"q"+text(#-1); + Putpoint(tmp2,tmp,Lcrd(parse(tmp2))); // 16.08.16 + inspect(parse(tmp2),"labeled",false); //15.01.22 + Letter([parse(tmp2),"ne",tmp2],["notex"]); //15.01.22 + inspect(parse(tmp2),"ptsize",psize); + inspect(parse(tmp2),"color",3); + ctrs=append(ctrs,[parse(tmp1),parse(tmp2)]); + , + tmp=(p1+p2)/2; + tmp1=name+"p"+text(#-1); + Putpoint(tmp1,tmp,Lcrd(parse(tmp1))); // 16.08.16 + inspect(parse(tmp1),"labeled",false); //15.01.22 + Letter([parse(tmp1),"ne",tmp1],["notex"]); //15.01.22 + inspect(parse(tmp1),"ptsize",psize); + inspect(parse(tmp1),"color",3); + ctrs=append(ctrs,[parse(tmp1)]); + ); + ); + ); + [pts,ctrs,name]; +); + +Bezierstart(n):=( // 2016.02.26 + BezierNumber=n; +); + +Mkbezierptcrv(ptdata):=Mkbezierptcrv(ptdata,[]); +Mkbezierptcrv(ptdata,options):=( + //help:Mkbezierptcrv([A,B,C,D]); + //help:Mkbezierptcrv([[A,B],[C,D]]); + //help:Mkbezierptcrv(options=["Num=10"]); + // global BezierNumber + regional(ptlist,Out,tmp,tmp1,tmp2); + if(isstring(ptdata), + ptlist=Readcsvsla(ptdata,options); + , + ptlist=ptdata; + ); + if(MeasureDepth(ptlist)==1,ptlist=[ptlist]); + Out=[]; + forall(1..length(ptlist), + tmp=floor((BezierNumber-1)/26);// 15.02.23 + if(tmp==0,tmp="",tmp=text(tmp)); + tmp2=mod(BezierNumber,26); + if(tmp2==0,tmp2=26); + tmp1=unicode(text(96+tmp2),base->10)+tmp;// 15.03.11 + tmp2=Putbezierdata(tmp1,ptlist_#,options); + Bezier(tmp2,options); + BezierNumber=BezierNumber+1; + Out=append(Out,tmp2_(1..2)); + ); + Out; +); + +Mkbeziercrv(nm,ptctrL):=Mkbeziercrv(nm,ptctrL,[]); +Mkbeziercrv(nm,ptctrL,options):=( + //help:Mkbeziercrv("1",[[A,B,C,D],[[P,Q],[R,S],T]]); + regional(ptctrLL,name,ptlist,ctrlist,tmp,tmp1,tmp2); + if(MeasureDepth(ptctrL)==2,ptctrLL=[ptctrL],ptctrLL=ptctrL); + forall(1..length(ptctrLL), + name=nm+text(#); + ptlist=ptctrLL_#_1; + ctrlist=ptctrLL_#_2; + Bezier(nm,ptlist,ctrlist,options); // 17.01.06 + ); +); + +Writebezier():=Writebezier(Fhead,"all"); +Writebezier(head):=Writebezier(head,"all"); +Writebezier(head,seL):=( +//help:Writebezier(file); +//help:Writebezier(file,"acd"); + regional(bz,dt,name,tmp,tmp1,tmp2); + bz=select(GLIST,indexof(#,"=Bezier")>0); + tmp1=[]; // 16.04.22from + if(seL!="all", + forall(1..length(seL), + tmp=substring(seL,#-1,#); + tmp=select(bz,indexof(#,"bz"+tmp)>0); + tmp1=concat(tmp1,tmp); + ); + bz=tmp1;// 16.04.22upto + ); + dt=[head+"n",[[length(bz),0]]]; + forall(1..length(bz), + tmp=indexof(bz_#,"="); + name=substring(bz_#,0,tmp-1); + tmp=indexof(bz_#,","+Dq); + if(tmp>0, + tmp1=substring(bz_#,0,tmp-1)+")"; + , + tmp1=bz_#; + ); + tmp1=replace(tmp1,"Bezier(","["); + tmp1=replace(tmp1,"list(","["); + tmp1=replace(tmp1,")","]"); + tmp1=replace(tmp1,",",".xy,"); + tmp1=replace(tmp1,"]",".xy]"); + tmp1=replace(tmp1,".xy,[",",["); + tmp1=replace(tmp1,"].xy","]"); + tmp1=replace(tmp1,name,head+text(#)); + parse(tmp1); + tmp=parse(head+text(#)+"_1"); + dt=concat(dt,[head+text(#)+"k",tmp]); + tmp=parse(head+text(#)+"_2"); + dt=concat(dt,[head+text(#)+"c",tmp]); + ); + WriteOutData(head+".txt",dt); + dt; +); + +Readbezier(file):=Readbezier(file,[]); +Readbezier(file,optionorg):=( +//help:Readbezier("xsr"); +//help:Readbezier(options=["Num=10","nogeo"]); + regional(nn,options,stL,geo,nc,alpha,out,tmp,tmp1,tmp2,tmp3); + options=optionorg; + tmp=Divoptions(options); + stL=tmp_7; + geo=0; + forall(stL, + tmp=Toupper(substring(#,0,1)); + if(tmp=="G",geo=1); + options=remove(options,[#]); + ); + ReadOutData(file); + tmp=file+"n_1_1"; + nn=parse(tmp); + out=[]; + forall(1..nn,nc, + tmp=file+text(nc); + tmp1=parse(tmp+"k"); + tmp2=parse(tmp+"c"); + if(MeasureDepth(tmp2)==1,tmp2=[tmp2]); // 16.04.22from + if(geo==1, + alpha="abcdefghijklmnopqrstuvwxyz"; + forall(1..length(tmp1), + tmp="k"+BezierNumber+"n"+text(nc)+substring(alpha,#-1,#); + Putpoint(tmp,tmp1_#,parse(tmp+".xy")); + inspect(parse(tmp),"labeled",false); + inspect(parse(tmp),"ptsize",3); + tmp1_#=parse(tmp+".xy"); + ); + forall(1..length(tmp2), + tmp="c"+BezierNumber+"n"+text(nc)+substring(alpha,#-1,#)+"1"; + Putpoint(tmp,tmp2_#_1,parse(tmp+".xy")); + inspect(parse(tmp),"labeled",false); + inspect(parse(tmp),"color",4); + inspect(parse(tmp),"ptsize",3); + tmp2_#_1=parse(tmp+".xy"); + tmp="c"+BezierNumber+"no"+text(nc)+substring(alpha,#-1,#)+"2"; + Putpoint(tmp,tmp2_#_2,parse(tmp+".xy")); + inspect(parse(tmp),"labeled",false); + inspect(parse(tmp),"color",4); + inspect(parse(tmp),"ptsize",3); + tmp2_#_2=parse(tmp+".xy"); + ); + BezierNumber=BezierNumber+1; + ); + Bezier(file+text(nc),tmp1,tmp2,options);// 16.04.22upto + out=append(out,"bz"+tmp); + ); + out; +); + +Ospline(nm,ptlist):=Ospline(nm,ptlist,[]); +Ospline(nm,ptlist,options):=( +//help:Ospline("1",ptlist,[options]); + regional(tmp,tmp1,tmp2,list,ptL,ctrL,name,closed,flg, + p0,p1,p2,p3,pQ,pR,cc,p01,p02,p11,p12,p21,p22,p31,p32); + name="o"+nm; + if(isstring(ptlist),list=parse(ptlist),list=ptlist); + if(|list_1-list_(length(list))|<10^(-6),closed=1,closed=0); +// list=apply(list,LLcrd(#)); + ctrL=[]; + forall(1..(length(list)-1), + flg=0; + p1=Lcrd(list_#); // 16.08.16 + p2=Lcrd(list_(#+1)); // 16.08.16 + if(#==1 % #==length(list)-1, + flg=1; + if(closed==0, + pQ=(p1+2*p2)/3; // 15.09.21 // 16.08.16 + pR=(2*p1+p2)/3; // 16.08.16 + ctrL=append(ctrL,[pQ,pR]); + flg=2; + , + if(#==1, + p0=Lcrd(list_(length(list)-1)); // 16.08.16 + p3=Lcrd(list_(#+2)); // 16.08.16 + , + p0=Lcrd(list_(#-1)); // 16.08.16 + p3=Lcrd(list_2); // 16.08.16 + ); + ); + ); + if(flg<=1, + if(flg==0, + p0=Lcrd(list_(#-1)); // 16.08.16 + p3=Lcrd(list_(#+2)); // 16.08.16 + ); + tmp=1+sqrt((1+Dotprod(p2-p0,p3-p1)/|p2-p0|/|p3-p1|)/2); + cc=4*|p2-p1|/3/(|p2-p0|+|p3-p1|)/tmp; + pQ=p1+cc*(p2-p0); // 15.09.21 // 16.08.16 + pR=p2+cc*(p1-p3); // 16.08.16 + ctrL=append(ctrL,[pQ,pR]); + ); + ); +// list=apply(list,LLcrd(#)); // 16.08.16 +// ctrL=apply(ctrL,LLcrd(#)); + if(closed==0, // 15.09.21 + p1=ctrL_2_1; + p2=Lcrd(list_2); // 16.08.16 + pQ=p2+(p2-p1); + ctrL_1=[pQ]; + tmp=length(ctrL); + tmp1=ctrL_(tmp-1); + p1=ctrL_(tmp-1)_2; + p2=Lcrd(list_(tmp)); // 16.08.16 + pQ=p2+(p2-p1); + ctrL_tmp=[pQ]; + ); + Bezier("o"+nm,list,ctrL,options); +); + +CRspline(nm,ptL):=CRspline(nm,ptL,[]); +CRspline(nm,ptL,options):=( + // Catmull-Rom spline +//help:CRspline("1",[A,B,C,A]); + regional(name,ptlist,ctrpts,eqL,opcindy,c,v,tmp,tmp1,tmp2,ctrlist,cflg); + name="crsp"+nm; + if(MeasureDepth(ptL)==1,tmp=[ptL],tmp=ptL); + ptlist=tmp_1; + if(length(tmp)==1, + cflg=1; + , + cflg=0; + ctrpts=tmp_2; + ); + c=1/6; + tmp=Divoptions(options); + eqL=tmp_5; + opcindy=tmp_(length(tmp)); // 15.03.05 + forall(eqL, + if(substring(#,0,1)=="R", + tmp2=indexof(#,"="); + c=parse(substring(#,tmp2,length(#))); + ); + ); + ptlist=apply(ptlist,Lcrd(#)); // 16.08.16 + ctrlist=[]; + forall(1..(length(ptlist)-1), + if(#==1, + if(cflg==0, + tmp1=ctrpts_1; + , + v=ptlist_2-ptlist_(length(ptlist)-1); + tmp1=ptlist_#+c*v; + ); + , + v=ptlist_(#+1)-ptlist_(#-1); + tmp1=ptlist_#+c*v; + ); + if(#==length(ptlist)-1, + if(cflg==0, + tmp2=ctrpts_2; + , + v=ptlist_2-ptlist_#; + tmp2=ptlist_(#+1)-c*v; + ); + , + v=ptlist_(#+2)-ptlist_#; + tmp2=ptlist_(#+1)-c*v; + ); + tmp=select(options,indexof(text(#),"->")>0); + tmp=append(tmp,"notex"); //15.03.05 + Pointdata(name+text(#),[tmp1,tmp2],tmp); + ctrlist=append(ctrlist,[tmp1,tmp2]); + ); + Bezier(nm,ptlist,ctrlist,options); +); + +Beziersmooth(nm,ptL):=Bzspline(nm,ptL,[]); +//help:Beziersmooth("1",[A,B,C,A]); +Beziersmooth(nm,ptL,options):=Bzspline(nm,ptL,options); +Bzspline(nm,ptL):=Bzspline(nm,ptL,[]); +Bzspline(nm,ptLorg,options):=( + // smooth bezier + regional(name,Eps,ptL,pt,pt1,pt2,pt3,npt,lstr, + tmp,tmp1,tmp2,cflg,ctrlist); + name="bzsp"+nm; + Eps=10^(-3); + ptL=apply(ptLorg,Lcrd(#)); // 16.08.16 + if(|ptL_1-ptL_(length(ptL))|<Eps,cflg=1,cflg=0); + forall(2..length(ptL), + pt=ptL_#; + pt1=ptL_(#-1); + tmp1="C"+text(#-1)+"q";// 16.10.07 + Putpoint(tmp1,(pt1+4*pt)/5,Lcrd(parse(tmp1))); // 16.08.16 + ); + forall(2..(length(ptL)-1), + if(#<length(ptL) % cflg==1, + lstr="c"+text(#); + pt=ptLorg_#; // 16.08.16 + pt1=parse("C"+text(#-1)+"q"); + create([lstr],"Join",[pt1,pt]); + tmp2="C"+text(#)+"p"; + tmp=Append((2*pt.xy-pt1.xy),1); + create([tmp2],"PointOnLine",[parse(lstr),tmp]); + ); + ); + if(cflg==0, + pt=ptL_1; + pt1=ptL_2; + tmp1="C1p"; + Putpoint(tmp1,(4*pt+pt1)/5,Lcrd(parse(tmp1))); // 16.08.16 + ); + if(cflg==1, + lstr="c1"; + pt=ptLorg_1; // 16.08.16 + pt1=parse("C"+text(length(ptL)-1)+"q"); + create([lstr],"Join",[pt1,pt]); + tmp1="C1p"; + tmp=Append((2*pt.xy-pt1.xy),1); + create([tmp1],"PointOnLine",[parse(lstr),tmp]); + ); + ctrlist=[]; + forall(1..(length(ptL)-1), + if(#>1 % cflg==1, + tmp1="c"+text(#); + inspect(parse(tmp1),"alpha",0.3); + ); + tmp1="C"+text(#)+"p"; + tmp2="C"+text(#)+"q"; + inspect(parse(tmp1),"ptsize",3); + inspect(parse(tmp1),"color",3); + inspect(parse(tmp2),"ptsize",3); + inspect(parse(tmp2),"color",3); + tmp=[parse(tmp1),parse(tmp2)]; + ctrlist=append(ctrlist,tmp); + ); + Bezier(nm,ptL,ctrlist,options); + [ptL,ctrlist]; +); + +Beziersym(nm,ptL):=Bzsspline(nm,ptL,[]); +Beziersym(nm,ptL,options):=Bzsspline(nm,ptL,options); +Bzsspline(nm,ptL):=Bzsspline(nm,ptL,[]); +Bzsspline(nm,ptLorg,options):=( + // smooth bezier with symmetric control points + regional(name,Eps,ptL,pt,pt1,pt2,pt3,npt,lstr, + tmp,tmp1,tmp2,cflg,ctrlist); + name="bzssp"+nm; + Eps=10^(-3); + ptL=apply(ptLorg,Lcrd(#)); // 16.08.16 + if(|ptL_1-ptL_(length(ptL))|<Eps,cflg=1,cflg=0); + forall(2..length(ptL), + pt=ptL_#; + pt1=ptL_(#-1); + tmp1="C"+text(#-1)+"q"; + Putpoint(tmp1,(pt1+4*pt)/5,Lcrd(parse(tmp1))); + ); + forall(2..(length(ptL)-1), + if(#<length(ptL) % cflg==1, + pt=ptL_#; + pt1=parse("C"+text(#-1)+"q"); + tmp2="C"+text(#)+"p=2*pt-pt1"; + parse(tmp2); + ); + ); + if(cflg==0, + pt=ptL_1; + pt1=ptL_2; + Putpoint("C1p",(4*pt+pt1)/5,Lcrd(C1p)); // 16.08.16 + inspect(C1p,"ptsize",3); + inspect(C1p,"color",3); + ); + if(cflg==1, + pt=ptL_1; + pt1=Lcrd(parse("C"+text(length(ptL)-1)+"q")); // 16.08.16 + tmp1="Putpoint("+Dq+"C1p"+Dq+",2*pt-pt1)"; // 16.08.16 + parse(tmp1); + ); + ctrlist=[]; + forall(1..(length(ptL)-1), + tmp1="C"+text(#)+"p"; + tmp2="C"+text(#)+"q"; + inspect(parse(tmp2),"ptsize",3); + inspect(parse(tmp2),"color",3); + tmp=[parse(tmp1),parse(tmp2)]; + ctrlist=append(ctrlist,tmp); + ); + Bezier(nm,ptL,ctrlist,options); + [ptL,ctrlist]; +); + +Listbspline2bz(listorg):=( + regional(Eps,list,pcl,ptl,ctrl,k); + Eps=10^(-3); + list=apply(listorg,Lcrd(#)); // 16.08.16 + k=length(list); + if(|list_1-list_k|>Eps, + pcl=list; + pcl_1=2*list_1-list_2; + pcl_k=2*list_k-list_(k-1); + , + pcl=concat(list,[list_2]); + ); + ctrl=apply(2..(length(pcl)-1),[pcl_#]); + ptl=apply(1..(length(pcl)-1),(pcl_#+pcl_(#+1))/2); + [ptl,ctrl]; +); + +Bspline(nm,ctrL):=Bspline(nm,ctrL,[]); +Bspline(nm,ctrL,options):=( +//help:Bspline("",[A,B,C]); + regional(list,tmp); + list=Listbspline2bz(ctrL); + tmp=BezierCurve("b"+nm,list_1,list_2,options); + tmp; +); + +MeetCurve(Crv,Xorg,Yorg):=( + regional(Cv,tmp,tmp1,tmp2,X0,Y0,x1,x2,y1,y2,Ylist,Ban,Tate); + if(isstring(Crv),Cv=parse(Crv),Cv=Crv); + if(MeasureDepth(Cv)==2,Cv=Cv_1); + Cv=apply(Cv,LLcrd(#)); // 14.12.18 + while(length(Cv)==1, + Cv=Cv_1; + ); + Cv=apply(Cv,Lcrd(#)); + tmp1=min(apply(Cv,#_1)); + tmp2=max(apply(Cv,#_1)); + if(isstring(Xorg),X0=parse(Xorg),X0=Xorg); + if(isstring(Yorg),Y0=parse(Yorg),Y0=Yorg); + if(X0<tmp1, + X0=tmp1; + , + if(X0>tmp2, + X0=tmp2; + ); + ); + tmp1=select( + 1..(length(Cv)-1),Cv_#_1<=X0 & X0<=Cv_(#+1)_1); + tmp2=select( + 1..(length(Cv)-1),Cv_#_1>=X0 & X0>=Cv_(#+1)_1); + tmp2=remove(tmp2,common(tmp2,tmp1)); + Ban=concat(tmp1,tmp2); + Tate=select(Ban, + abs(Cv_#_1-Cv_(#+1)_1)<= + 10^(-2)*abs(Cv_#_2-Cv_(#+1)_2) + ); + Ban=remove(Ban,Tate); + Ylist=[]; + forall(Ban, + tmp=Cv_#; + x1=tmp_1; y1=tmp_2; + tmp=Cv_(#+1); + x2=tmp_1; y2=tmp_2; + tmp=((x2-X0)*y1+(X0-x1)*y2)/(x2-x1); + Ylist=append(Ylist,tmp); + ); + forall(Tate, + tmp=Cv_#; + x1=tmp_1; y1=tmp_2; + tmp=Cv_(#+1); + x2=tmp_1; y2=tmp_2; + tmp1=min([y1,y2]); + tmp2=max([y1,y2]); + if(Y0<tmp1, + tmp=tmp1; + , + if(Y0>tmp2, + tmp=tmp2; + , + tmp=Y0; + ); + ); + Ylist=append(Ylist,tmp); + ); + tmp=sort(Ylist,abs(#_1-Y0)); + [X0,tmp_1]; +); + +PutonLine(name,p1,p2):=PutonLine(name,p1,p2,[]); +PutonLine(name,p1org,p2org,options):=( +//help:PutonLine("C","sgAB"); +//help:PutonLine("C",pA,pB); + regional(par,p1,p2,dx,dy,tmp,tmp1,tmp2); + par=0.5; + tmp=Divoptions(options); + if(length(tmp_6)>0, + par=tmp_6_1; + ); + p1=Lcrd(p1org);//16.10.11from + p2=Lcrd(p2org); + dx=p2_1-p1_1; + dy=p2_2-p1_2; + tmp1=(1-par)*p1+par*p2; + if(abs(dx)>abs(dy), + tmp=name+".x"; + tmp2="["+tmp+",dy/dx*("+tmp+"-p1_1)+p1_2]";//16.10.11upto + Putpoint(name,tmp1,parse(tmp2)); + , + if(abs(dy)>0, + tmp=name+".y"; + tmp2="[dx/dy*("+tmp+"-p1.y)+p1_1,"+tmp+"]"; + Putpoint(name,tmp1,parse(tmp2)); + , + tmp2=p1;//16.10.11 + Putpoint(name,tmp1,tmp2); + ); + ); +); + +PutonSeg(name,sgstr):=( + regional(seg,p1,p2); + if(isstring(sgstr),seg=parse(sgstr),seg=sgstr); + PutonSeg(name,LLcrd(seg_1),LLcrd(seg_2)); +); +PutonSeg(name,p1,p2):=PutonSeg(name,p1,p2,[]); +PutonSeg(name,p1org,p2org,options):=( +//help:PutonSeg("C","sgAB"); +//help:PutonSeg("C",pA,pB); + regional(par,dx,dy,p,tmp,tmp1,tmp2); + par=0.5; + tmp=Divoptions(options); + if(length(tmp_6)>0, + par=tmp_6_1; + ); + p1=Lcrd(p1org);//16.10.11from + p2=Lcrd(p2org); + PutonLine(name,p1,p2,[par]); + dx=p2_1-p1_1; + dy=p2_2-p1_2; + p=parse(name+".xy"); + p=LLcrd(p); + if(abs(dx)>abs(dy) & (p_1-p1_1)*(p_1-p2_1)>0, + if(|p-p1|<|p-p2|, + parse(name+".xy=Pcrd(p1)"); + , + parse(name+".xy=Pcrd(p2)"); + ); + ); + if(abs(dx)<abs(dy) & (p_2-p1_2)*(p_2-p2_2)>0, + if(|p-p1|<|p-p2|, + parse(name+".xy=Pcrd(p1)"); + , + parse(name+".xy=Pcrd(p2)");//16.10.11upto + ); + ); +); + +PutonCurve(pn,crv):=PutonCurve(pn,crv,[]); +PutonCurve(pn,crv,options):=( +//help:PutonCurve("A","gr1"); + regional(Pmt,pstr,optionL,leftlim,rightlim,tmp,tmp1,Flg,Msg); + if(!islist(options),optionL=[options],optionL=options); + leftlim=XMIN; + rightlim=XMAX; + Flg=0; + Msg="y"; + forall(optionL, + if(isstring(#), // 16.02.10 from + tmp=indexof(#,"="); + tmp1=Toupper(substring(#,tmp,tmp+1)); + if(tmp1=="N", Msg="n"); // 16.02.10 upto + , + if(Flg==0, + leftlim=#; + Flg=Flg+1; + , + rightlim=#; + ); + ); + ); + Pmt=MeetCurve(crv,leftlim,0); + pstr=apply(allpoints(),textformat(#,5)); // 15.04.07 + if(!contains(pstr,pn), + createpoint(pn,Pcrd(Pmt)); + , + tmp1=parse(pn+".x"); + if(tmp1< leftlim % tmp1>rightlim, + if(tmp1< leftlim,tmp= leftlim, tmp=rightlim); + Pmt=MeetCurve(crv,textformat(tmp,5),pn+".y"); + , + Pmt=MeetCurve(crv,pn+".x",pn+".y"); + ); + ptstr=pn+".xy="+textformat(Pcrd(Pmt),5)+";"; + parse(ptstr); + ); + if(Msg=="y", + println("Put "+pn+" on Curve "+text(crv)); + ); +); + +CrossPoint(name,Crv1,Crv2,range):=( + regional(Mx1,Mx2,Mx3,tmp,Crs1,Crs2,Crs3,Crs4,df1,df2); + Mx1=range_1; Mx2=range_2; + repeat(15, + Mx3=(Mx1+Mx2)/2; + Crs1=MeetCurve(Crv1,Mx1,0); + Crs2=MeetCurve(Crv2,Mx1,0); + Crs3=MeetCurve(Crv1,Mx3,0); + Crs4=MeetCurve(Crv2,Mx3,0); + df1=Crs1_2-Crs2_2; + df2=Crs3_2-Crs4_2; + if((df1>0 & df2>0) % (df1<0 & df2<0), + Mx1=Mx3; + , + Mx2=Mx3; + ); + ); + Putpoint(name,Crs1); +); + +Setscaling(sc):=( +//help:Setscaling(3); + SCALEX=1; + SCALEY=sc; + Com0th("Setscaling("+sc+")"); + Setwindow("Msg=no"); +); + +Periodfun(defL,rep):=Periodfun(defL,rep,[]); +Periodfun(defL,rep,optionorg):=( // 16.11.24 +//help:Periodfun(["0",[-1,0],"1",1,[0,1],1],2(num of repetition),options); +//help:Periodfun(options=["Con=y"]); +//help:Periodfun(defL=[function string, range, devision number,...]); + regional(nn,fun,range,num,options,nr,maxfun, + tmp,tmp1,tmp2,eqL,connect,minx,maxx,pdata,Eps,prept); + options=optionorg; + tmp=Divoptions(options); + eqL=tmp_5; + connect="Y"; + forall(eqL, + tmp=indexof(#,"="); + tmp2=substring(#,tmp,tmp+1); + tmp=substring(#,0,3); + if(Toupper(tmp)=="CON", + connect=Toupper(tmp2); + options=remove(options,[#]); + ); + ); + minx=10000; + maxx=-10000; + mxfun=""; + pdata=[]; + forall(1..(length(defL)/3),nn, + fun=defL_(3*nn-2); + range=defL_(3*nn-1); + tmp1=if(isstring(range_1),parse(range_1),range_1); //17.06.11(2lines) + tmp2=if(isstring(range_2),parse(range_2),range_2); + minx=min(minx,tmp1); + maxx=max(maxx,tmp2); + num=defL_(3*nn); + options=append(options,"Num="+text(num)); + Plotdata("pe"+text(nn),fun, + "x="+textformat([tmp1,tmp2],5),options); + pdata=append(pdata,"grpe"+text(nn)); + tmp1=range_1; //17.06.11(4lines) + if(isstring(tmp1),tmp1=replace(tmp1,"pi","%pi"),tmp1=format(tmp1,5)); + tmp2=range_2; + if(isstring(tmp2),tmp2=replace(tmp2,"pi","%pi"),tmp2=format(tmp2,5)); + mxfun=mxfun+"elseif ("+tmp1+ + "<=x and x<"+tmp2+") then "+fun+" "; + ); + per=maxx-minx; + forall(1..rep,nr, + tmp1=[]; + forall(pdata, + Translatedata("p"+#+text(nr),#,[per*nr,0],options); + Translatedata("m"+#+text(nr),#,[-per*nr,0],options); + tmp1=concat(tmp1,["trp"+#+text(nr),"trm"+#+text(nr)]); + ); + ); + pdata=concat(pdata,tmp1); + if(connect=="Y", + Eps=10^(-5); + pdata=sort(pdata,[parse(#)_1_1]); + prept=parse(pdata_1)_1; + forall(1..(length(pdata)), + tmp=parse(pdata_#); + tmp1=tmp_1; + tmp2=tmp_(length(tmp)); + if(|prept-tmp1|>Eps, + Listplot("con"+text(#),[prept,tmp1],append(options,"da")); + ); + prept=tmp_(length(tmp)); + ); + ); + mxfun=substring(mxfun,4,length(mxfun)-1); + [mxfun,per]; +); + +Fourierseries(nm,coeff,per,nterm):= + Fourierseries(nm,coeff,per,nterm,[]); // 16.11.24 +Fourierseries(nm,coeff,per,nterm,options):=( +//help:Fourierseries("1",[c0,cn,sn],period,numterm,options); + regional(c0,cn,sn,fs,tmp,tmp1,tmp2); + c0=coeff_1; + if(!isstring(c0),c0=format(c0,5)); + c0=replace(c0,"%pi","pi"); + cn=coeff_2; + if(!isstring(cn),cn=format(cn,5)); + cn=replace(cn,"%pi","pi"); + sn=coeff_3; + if(!isstring(sn),sn=format(sn,5)); + sn=replace(sn,"%pi","pi"); + fs=c0; + forall(1..nterm, + tmp=parse(Assign(cn,["n",#])); + tmp1=Assign("("+format(tmp,5)+")*cos(n*2*pi/per*x)", + ["n",#,"per",per]); + tmp=parse(Assign(sn,["n",#])); + tmp2=Assign("("+format(tmp,5)+")*sin(n*2*pi/per*x)", + ["n",#,"per",per]); + fs=fs+"+"+tmp1+"+"+tmp2; + ); + Plotdata("four"+nm,fs,"x",options); +); + +Tabledatalight(nm,xLst,yLst,rmvL):=Tabledatalight(nm,xLst,yLst,rmvL,[]); +Tabledatalight(nm,xLst,yLst,rmvL,optionorg):=( +//help:Tabledatalight("",xLst,yLst,rmvL,[2,"Rng=y"]); + regional(options,rng,name,upleft,ul,flg,tick,eqL,reL,n,m,xsize,ysize, + rlist,clist,Tb,tmp,tmp1,tmp2,tmp3,Eps); +// name="tb"+nm; + name="tb"; + options=optionorg; + tmp=Divoptions(options); + eqL=tmp_5; //16.12.16from + reL=tmp_6; + rng="Y"; + forall(eqL, + tmp=indexof(#,"="); + tmp1=Toupper(substring(#,0,2)); + tmp2=Toupper(substring(#,tmp,tmp+1)); + if(tmp1=="RN", + rng=tmp2; + options=remove(options,[#]); + ); + );//16.12.16upto + tick=1; + flg=0; + forall(reL, + if(flg==0, + tick=#; + flg=flg+1; + , + upleft=tmp_6_1; + ); + ); + tmp=sum(yLst); + upleft=[0,tmp]; + TableOptions=options; // 16.11.28 + println("Tabledatalight "+name+" generated"); + ul=upleft/10; + m=length(xLst); + n=length(yLst); + xsize=sum(xLst); + ysize=sum(yLst); + clist=[ul]; + rlist=[ul]; + forall(1..m, + tmp1=clist_(#)_1+xLst_#/10; + clist=append(clist,[tmp1,clist_1_2]); + ); + forall(1..n, + tmp1=rlist_(#)_2-yLst_#/10; + rlist=append(rlist,[0,tmp1]); + ); + Tb=[clist,rlist]; + tmp=name+"="+Tb; + parse(tmp); + forall(0..m, + tmp1="c"+text(#)+"r0"; + tmp2="c"+text(#)+"r"+text(n); + Tlistplot("c"+text(#)+"r0r"+text(n),[tmp1,tmp2],options); + if(mod(#,tick)==0 % #==m, + tmp=clist_(#+1); + drawtext(clist_(#+1)-[0.04,-0.1],"c"+text(#)); + ); + ); + forall(0..n, + tmp1="c0r"+text(#); + tmp2="c"+text(m)+"r"+text(#); + Tlistplot("r"+text(#)+"c0c"+text(m),[tmp1,tmp2],options); + if(mod(#,tick)==0 % #==n, + tmp=rlist_(#+1); + drawtext(rlist_(#+1)-[0.4,0.1],"r"+text(#)); + ); + ); + Tsegrmv(rmvL,options); + Addax(0); + Eps=10^(-3); + tmp1=clist_(length(clist)); + tmp2=rlist_1; + tmp3=rlist_(length(rlist)); + if(rng=="Y", // 16.12.16 + Setwindow([0-Eps,tmp1_1+Eps],[tmp3_2-Eps,tmp2_2+Eps]); + ); + Tb; +); + +Tabledata(nm,n,m,xsize,ysize,rmvL):= + Tabledata(nm,n,m,xsize,ysize,rmvL,[]); +Tabledata(nm,n,m,xsize,ysize,rmvL,options):=( +//help:Tabledata("",xLst,yLst,rmvL,[2,"Rng=y"]); + regional(Tb,name,tmp,xLst,yLst); + name="tb"+nm; + xLst=apply(1..n,xsize/n); + yLst=apply(1..m,ysize/m); + Tabledata(nm,xLst,yLst,rmvL,options) +); +Tabledata(nm,xLst,yLst,rmvL):=Tabledata(nm,xLst,yLst,rmvL,[]); +Tabledata(nm,xLst,yLst,rmvL,optionorg):=( +//help:Tabledata("",xLst,yLst,rmvL,[2,"Rng=y"]); + regional(name,options,eqL,reL,rng,upleft,ul,flg,tick,n,m,xsize,ysize, + rlist,clist,Tb,tmp,tmp1,tmp2,tmp3,Eps); +// name="tb"+nm; + name="tb"; + tmp=sum(yLst); + upleft=[0,tmp]; + options=optionorg; + tmp=Divoptions(options); + eqL=tmp_5; //16.12.16from + reL=tmp_6; + rng="Y"; + forall(eqL, + tmp=indexof(#,"="); + tmp1=Toupper(substring(#,0,2)); + tmp2=Toupper(substring(#,tmp,tmp+1)); + if(tmp1=="RN", + rng=tmp2; + options=remove(options,[#]); + ); + );//16.12.16upto + tick=1; + flg=0; + forall(reL, + if(flg==0, + tick=#; + flg=flg+1; + , + upleft=tmp_6_1; + ); + ); + TableOptions=options; // 16.11.28 + println("Tabledata "+name+" generated"); + ul=upleft/10; + m=length(xLst); + n=length(yLst); + xsize=sum(xLst); + ysize=sum(yLst); + clist=[ul]; + rlist=[ul]; + forall(1..m, + tmp1=clist_(#)_1+xLst_#/10; + clist=append(clist,[tmp1,clist_1_2]); + ); + forall(1..n, + tmp1=rlist_(#)_2-yLst_#/10; + rlist=append(rlist,[0,tmp1]); + ); + Tb=[clist,rlist]; + tmp=name+"="+Tb; + parse(tmp); + forall(0..m, + tmp="C"+text(#); + tmp1="c"+text(#)+"r0"; + if(#==0, + Putpoint(tmp,Tgrid(tmp1)); + , + Putpoint(tmp,Tgrid(tmp1),[parse(tmp+".x"),C0.y]); + clist_(#+1)=parse(tmp+".xy"); + ); + inspect(parse(tmp),"ptsize",3); + inspect(parse(tmp),"labeled",false); + if(mod(#,tick)==0 % #==m, + tmp=clist_(#+1); + drawtext(clist_(#+1)-[0.04,-0.1],"c"+text(#)); + ); + ); + forall(0..n, + tmp="R"+text(#); + tmp1="c0r"+text(#); + if(#==0, + Putpoint(tmp,Tgrid(tmp1)); + , + Putpoint(tmp,Tgrid(tmp1),[R0.x,parse(tmp+".y")]); + rlist_(#+1)=parse(tmp+".xy"); + ); + Putpoint(tmp,Tgrid(tmp1),[R0.x,parse(tmp+".y")]); + inspect(parse(tmp),"ptsize",3); + inspect(parse(tmp),"labeled",false); + if(mod(#,tick)==0 % #==n, + tmp=rlist_(#+1); + drawtext(rlist_(#+1)-[0.4,0.1],"r"+text(#)); + ); + ); + Tb=[clist,rlist]; + tmp=name+"="+Tb; + parse(tmp); + forall(0..m, + tmp1="c"+text(#)+"r0"; + tmp2="c"+text(#)+"r"+text(n); + Tlistplot("c"+text(#)+"r0r"+text(n),[tmp1,tmp2],options); + if(#<m, + tmp1=parse("C"+text(#)); + tmp2=parse("C"+text(#+1)); + tmp=(tmp1.xy+tmp2.xy)/2; + drawtext(tmp+[-0.2,0.5],text((tmp2.x-tmp1.x)*10)); + ); + ); + forall(0..n, + tmp1="c0r"+text(#); + tmp2="c"+text(m)+"r"+text(#); + Tlistplot("r"+text(#)+"c0c"+text(m),[tmp1,tmp2],options); + if(#<n, + tmp1=parse("R"+text(#)); + tmp2=parse("R"+text(#+1)); + tmp=(tmp1.xy+tmp2.xy)/2; + drawtext(tmp-[1.2,0.1],text(abs(tmp1.y-tmp2.y)*10)); + ); + ); + Tsegrmv(rmvL,options); + Addax(0); + Eps=10^(-3); + tmp1=clist_(length(clist)); + tmp2=rlist_1; + tmp3=rlist_(length(rlist)); // 15.06.11 + if(rng=="Y", // 16.12.16 + Setwindow([0-Eps,tmp1_1+Eps],[tmp3_2-Eps,tmp2_2+Eps]); + ); + Tb; +); + +Tseginfo(seg):=( + regional(cr,tp,tpc,n1,n2,n3,tmp,tmp1,tmp2); + if(substring(seg,0,2)=="sg", + cr=substring(seg,2,length(seg)); + , + cr=seg; + ); + tp=substring(cr,0,1); + if(tp=="c", + tpc="r"; + , + tpc="c"; + ); + tmp1=indexof(cr,tpc); + tmp=substring(cr,tmp1,length(cr)); + tmp2=tmp1+indexof(tmp,tpc); + n1=substring(cr,1,tmp1-1); + n2=substring(cr,tmp1,tmp2-1); + n3=substring(cr,tmp2,length(cr)); + [tp+n1,tpc,parse(n2),parse(n3)]; +); + +Tsegrmv(rmvL):=Tsegrmv(rmvL,[]); +Tsegrmv(rmvL,options):=( + regional(cr,gcL,flg,gc,hd,tail,tpc,m1,m2,n1,n2,tmp,tmp1,tmp2); + forall(rmvL,cr, + tmp1=Tseginfo(cr); + hd=tmp1_1; + tpc=tmp1_2; + m1=tmp1_3; + m2=tmp1_4; + gcL=select(GCLIST,Tseginfo(#_1)_1==tmp1_1); + flg=0; + forall(gcL, + if(flg==0, + tmp=Tseginfo(#_1); + n1=tmp_3; + n2=tmp_4; + if(m1>=n1 & m2<=n2, + gc=#; + flg=1; + ); + ); + ); + if(flg==1, + Changestyle([gc_1],["nodisp"]); + tail=""; + if(indexof(hd,"r")>0, + tail=hd; hd=""; + ); + if(n1<m1, + tmp1=tpc+text(n1); + tmp2=tpc+text(m1); + tmp=hd+tail+tmp1+tmp2; + Tlistplot(tmp,[hd+tmp1+tail,hd+tmp2+tail],options); + ); + if(m2<n2, + tmp1=tpc+text(m2); + tmp2=tpc+text(n2); + tmp=hd+tail+tmp1+tmp2; + Tlistplot(tmp,[hd+tmp1+tail,hd+tmp2+tail],options); + ); + ); + ); +); + +Tgrid(ptstr):=( +//help:Tgrid("c2r5"); + regional(tmp,tmp1,tmp2); + tmp=parse(ptstr); + if(islist(tmp), + tmp; + , + tmp=indexof(ptstr,"r"); + tmp1=substring(ptstr,1,tmp-1); + tmp1=parse(tmp1); + tmp2=substring(ptstr,tmp,length(ptstr)); + tmp2=parse(tmp2); + [tb_1_(tmp1+1)_1,tb_2_(tmp2+1)_2]; + ); +); + +Tlistplot(ptL):=Tlistplot(ptL,[]); +Tlistplot(Ag1,Ag2):=( + regional(nm,ptL,options); + if(isstring(Ag1), + nm=Ag1; + ptL=Ag2; + options=[]; + , + ptL=Ag1; + options=Ag2; + nm=ptL_1+ptL_2; + ); + Tlistplot(nm,ptL,options); +); +Tlistplot(nm,ptL,options):=( +//help:Tlistplot(["c0r0","c0r4"]); +//help:Tlistplot("1",["c0r0","c0r4"]); + regional(tmp); + tmp=apply(ptL,Tgrid(#)); // 15.06.03 + Listplot(nm,tmp,append(options,"Msg=no")); +); + +ChangeTablestyle(nameL,style):=( +////help:ChangeTablestyle(["r0c0c3"],["da"]); + regional(nmL,grid,head,sb,tmp,tmp1,tmp2, + tsg,segall,sg,str); + if(islist(nameL),nmL=nameL,nmL=[nameL]); + forall(nmL,grid, + if(substring(grid,0,1)=="r",sb="c",sb="r"); + tmp=Indexall(grid,sb); + head=substring(grid,0,tmp_1-1); + tmp1=substring(grid,tmp_1,tmp_2-1); + tmp2=substring(grid,tmp_2,length(grid)); + tsg=apply([tmp1,tmp2],parse(#)); + tmp1=apply(GCLIST,#_1); // 16.12.06from + segall=[]; + forall(tmp1, + tmp2=substring(#,2,length(#)); + tmp=indexof(tmp2,sb); + tmp2=substring(tmp2,0,tmp-1); + if(head==tmp2,segall=append(segall,#)); + );// 16.12.06upto + sg=[]; + forall(segall, + tmp=Indexall(#,sb); + tmp1=substring(#,tmp_1,tmp_2-1); + tmp2=substring(#,tmp_2,length(#)); + tmp=apply([tmp1,tmp2],parse(#)); + if((tsg_1>=tmp_1) & (tsg_2<=tmp_2), + sg=tmp; + Changestyle(#,["nodisp"]); + ); + ); + if(length(sg)==0, + println("No segment includes "+grid); + , + if(sb=="c",str=sb+"no"+head,str=head+sb+"no"); + if(sg_1<tsg_1, + tmp1=replace(str,"no",text(sg_1)); + tmp2=replace(str,"no",text(tsg_1)); + tmp=head+sb+text(sg_1)+"c"+text(tsg_1); + Tlistplot(tmp,[tmp1,tmp2],TableOptions); + ); + tmp1=replace(str,"no",text(tsg_1)); + tmp2=replace(str,"no",text(tsg_2)); + tmp=head+"c"+text(tsg_1)+"c"+text(tsg_2); + Tlistplot(tmp,[tmp1,tmp2],style); + if(tsg_2<sg_2, + tmp1=replace(str,"no",text(tsg_2)); + tmp2=replace(str,"no",text(sg_2)); + tmp=head+"c"+text(tsg_2)+"c"+text(sg_2); + Tlistplot(tmp,[tmp1,tmp2],TableOptions); + ); + ); + ); +); + +Findcell(pos1,pos2):=Findcell("",pos1,pos2); +Findcell(Tbdata,pos1,pos2):=( +//help:Findcell("c0r0","c2r1"); + regional(tmp1,tmp2,posnw,posse,ctr,dx,dy); + if(isstring(pos1), + posnw=Tgrid(pos1); // 15.05.20 + posse=Tgrid(pos2); + //posnw=parse(pos1); + //posse=parse(pos2); + , + if(islist(pos1), + posnw=pos1; + posse=pos2; + , + tmp1="c"+text(pos1-1)+"r"+text(pos2-1); + tmp2="c"+text(pos1)+"r"+text(pos2); + posnw=Tgrid(tmp1); + posse=Tgrid(tmp2); +// posnw=parse(tmp1); +// posse=parse(tmp2); + ); + ); + ctr=(posnw+posse)/2; + dx=abs(posse_1-ctr_1); + dy=abs(posnw_2-ctr_2); + [ctr,dx,dy]; +); + +Putcell(pos1,pos2,dir,lttr):=Putcell("",pos1,pos2,dir,lttr); +Putcell(Tbdata,pos1,pos2,dir,lttr):=( +//help:Putcell("c0r0","c2r1","lt","abc"); +//help:Putcell(2,3,"c","xyz"); + regional(tmp,tmp1,tmp2,posnw,posse, + posdir,posstr,ctr,dx,dy); + tmp=Findcell(Tbdata,pos1,pos2); + ctr=tmp_1; dx=tmp_2; dy=tmp_3; + posdir=ctr; + posstr=dir; + if(indexof(dir,"b")>0, + posdir_2=posdir_2-dy; + posstr=replace(posstr,"b","n"); + ); + if(indexof(dir,"t")>0, + posdir_2=posdir_2+dy; + posstr=replace(posstr,"t","s"); + ); + if(indexof(dir,"l")>0, + posdir_1=posdir_1-dx; + posstr=replace(posstr,"l","e"); + ); + if(indexof(dir,"r")>0, + posdir_1=posdir_1+dx; + posstr=replace(posstr,"r","w"); + ); + Letter(posdir,posstr,text(lttr)); +); + +Putcellexpr(pos1,pos2,dir,ex):=Putcellexpr("",pos1,pos2,dir,ex); +Putcellexpr(Tbdata,pos1,pos2,dir,ex):=( +//help:Putcellexpr("c0r0","c2r1","lt","abc"); +//help:Putcellexpr(2,3,"c","\sin x"); + Putcell(Tbdata,pos1,pos2,dir,"$"+text(ex)+"$"); +); + +Putrow(nrow,dir,lttrL):=Putrow("",nrow,dir,lttrL); +Putrow(Tbdata,nrow,dir,lttrL):=( +//help:Putrow(1,"c",["x","y","z"]); + regional(tmp,tmp1,mcol); + mcol=length(lttrL); + forall(1..mcol, + Putcell(Tbdata,#,nrow,dir,lttrL_#); + ); +); + +Putrowexpr(nrow,dir,exL):=Putrowexpr("",nrow,dir,exL); +Putrowexpr(Tbdata,nrow,dir,exL):=( +//help:Putrowexpr(2,"r",["x","y","z"]); + regional(lttrL); + lttrL=apply(exL,"$"+#+"$"); + Putrow(Tbdata,nrow,dir,lttrL); +); + +PutcoL(mcol,dir,lttrL):=PutcoL("",mcol,dir,lttrL); +PutcoL(Tbdata,mcol,dir,lttrL):=( +//help:PutcoL(1,"c",["x","y","z"]); + regional(tmp,tmp1,nrow); + nrow=length(lttrL); + forall(1..nrow, + Putcell(Tbdata,mcol,#,dir,lttrL_#); + ); +); +PutcoLexpr(mcol,dir,exL):=PutcoLexpr("",mcol,dir,exL); +PutcoLexpr(Tbdata,mcol,dir,exL):=( +//help:PutcoLexpr(2,"r",["x","y","z"]); + regional(lttrL); + lttrL=apply(exL,"$"+#+"$"); + PutcoL(Tbdata,mcol,dir,lttrL); +); + +Setrange():=( +//help:Setrange(); + SW.xy=Pcrd([XMIN,YMIN]); + NE.xy=Pcrd([XMAX,YMAX]); + drawpoly([Pcrd([XMIN,YMIN]), Pcrd([XMAX,YMIN]), + Pcrd([XMAX,YMAX]),Pcrd([XMIN,YMAX])],color->[1,1,1]); +); + +Sciform(list):=( + regional(plotlist,comp,pos,out,out2,nn,strL,flg, + tmp,tmp1,tmp2,tmp3,Nj); + plotlist=Flatten([list]); + out=replace(plotlist_1,".xy",""); + out=replace(out,".x","(1)"); + out=replace(out,".y","(2)"); + if(length(plotlist)==1, + comp=[]; + forall(1..length(out), + comp=append(comp,substring(out,#-1,#)); + ); + out=""; + pos=0; + forall(comp, + if(#!="'", + out=out+#; + , + if(pos==0, + tmp=indexof(out,"Assign("); + if(substring(out,length(out)-7,length(out))=="Assign(", + out=out+"'"; + pos=1; + , + out=out+"Assign('"; + pos=2; + ); + , + if(pos==2, + out=out+"')"; + , + out=out+"'"; + ); + pos=0; + ); + ); + ); + , + forall(2..length(plotlist), + comp=plotlist_#; + if(isstring(comp), + pos=indexof(comp,"Assign("); + if(pos>0, + comp=substring(comp,6,length(comp)); + ); + out=out+"Assign("; + comp=replace(comp,".xy",""); + comp=replace(comp,".x","(1)"); + comp=replace(comp,".y","(2)"); + out=out+"'"+comp+"'"; + out=out+"),"; + ); + if(islist(comp), + forall(comp, + out=out+"'"+#+"',"; + ); + ); + ); + if(length(plotlist)>1, + out=substring(out,0,length(out)-1); + out=out+");"; + ); + ); + pos=[]; + forall(1..length(out), + tmp=indexof(substring(out,#-1,length(out)),"Assign"); + if(tmp>0, + tmp1=#-1+tmp; + if(length(pos)==0, + pos=[tmp1]; + , + if(pos_(length(pos))<tmp1, + pos=append(pos,tmp1); + ); + ); + ); + ); + if(length(pos)>0, + strL=[]; + Nj=0; + forall(pos, + tmp=substring(out,Nj,#-1); + strL=append(strL,tmp); + Nj=#-1; + ); + strL=append(strL,substring(out,Nj,length(out))); + out=""; + forall(strL, + if(indexof(#,"Assign")==0, + out=out+#; + , + tmp=indexof(#,"('"); + tmp1=indexof(#,"')"); + tmp2=substring(#,tmp+1,tmp1-2); + tmp3=substring(#,tmp1-2,length(#)); + if(indexof(tmp2,"=")==0, + out=out+#; + , + tmp=substring(tmp2,0,indexof(tmp2,"=")); + out=out+"'"+tmp+"'+"+"Assign('"; + tmp=substring(tmp2,indexof(tmp2,"="),length(tmp2)); + out=out+tmp+tmp3; + ); + ); + ); + ); + out2=""; // patched 16.01.21 from + nn=length(out); + flg=0; + forall(1..nn, + if(flg==0, + tmp=indexof(out,"='+Assign('"); + if(tmp==0, + out2=out2+out; + flg=1; + , + out2=out2+substring(out,0,tmp); + out=substring(out,tmp+10,length(out)); + tmp=indexof(out,"'"); // 16.04.19 from + tmp1=substring(out,0,tmp-1); + tmp2="1234567890"; + tmp=apply(1..length(tmp1), + indexof(tmp2,substring(tmp1,#-1,#))); + tmp=min(tmp); + if(tmp==0, // 16.04.19 upto + out2=out2+"'+Assign('"; + , + tmp=indexof(out,"'"); + out=substring(out,0,tmp)+substring(out,tmp+1,length(out)); // 16.04.18 upto + ); + ); + ); + ); + out2=replace(out2,"Dist=","D="); + out2=replace(out2,"Dis=","D="); + out2; +); + + +Rform(list):=( + regional(plotlist,comp,pos,out,strL,tmp,tmp1,tmp2,tmp3,Nj); + out=list; + out=replace(out,"[[[","list([["); + out=replace(out,"[","c("); + out=replace(out,"]",")"); + out=replace(out,".xy",""); + out=replace(out,".x","[1]"); + out=replace(out,".y","[2]"); + out; +); + +Defvar(varstr):=( + regional(name,value,tmp,tmp1); + if(isstring(varstr), + parse(varstr); + tmp=indexof(varstr,"="); + name=substring(varstr,0,tmp-1); + value=substring(varstr,tmp,length(varstr)); + value=parse(value); + tmp1=select(1..length(VLIST),VLIST_#_1==name+"="); + if(length(tmp1)>0, + tmp=tmp1_1; + VLIST_tmp=[name+"=",value]; + , + VLIST=prepend([name+"=",value],VLIST); + ); + , + forall(1..(length(varstr)/2), // 16.11.16from + name=varstr_(2*#-1); + value=varstr_(2*#); + Defvar(name,value); + ); // 16.11.16upto + ); +); + +Defvar(name,value):=( +//help:Defvar("a",0.3); +//help:Defvar(["a",0.3,"b",2]); + regional(tmp,tmp1); + if(islist(value), + tmp1="["; + forall(value, + if(isstring(#), // 16.11.14 + tmp1=tmp1+Dq+#+Dq+","; // 16.11.14 + , + tmp1=tmp1+format(#,5)+","; + ); + ); + tmp1=substring(tmp1,0,length(tmp1)-1)+"]"; + , + tmp1=format(value,5); + ); + tmp=name+"="+tmp1; // 15.02.06 + parse(tmp); + VLIST=select(VLIST,#_1!=name+"="); // 15.02.08 + VLIST=prepend([name+"=",value],VLIST); +); + +Iftosci(strorg):=( // 16.06.10 + regional(str,ifL,ppL,cpL,kk,sL, + tmp,tmp1,tmp2,tmp3,tmp4); + str=replace(strorg,LFmark,""); + ifL=Indexall(str,"if("); + ppL=Bracket(str,"()"); + cpL=Indexall(str,","); + tmp1=Bracket(str,"[]"); + forall(1..(length(tmp1)/2),kk, + cpL=select(cpL,#<tmp1_(2*kk-1)_1%#_1>tmp1_(2*kk)_1); + ); + forall(1..length(ifL),kk, + tmp=select(ppL,#_1>ifL_kk); + tmp1=tmp_1; + tmp2=select(tmp,#_2==-tmp1_2); + tmp2=tmp2_1; + tmp3=select(cpL,#>tmp1_1 & #<tmp2_1); + ifL_kk=[tmp1_1,tmp2_1,tmp1_2,tmp3]; + ); + forall(1..length(cpL),kk, + tmp=select(1..length(ifL),contains(ifL_#_4,cpL_kk)); + tmp1=tmp_(length(tmp)); + cpL_kk=[cpL_kk,tmp1]; + ); + sL=apply(1..length(str),substring(str,#-1,#)); + forall(1..length(ifL),kk, + tmp1=ifL_kk_1; + tmp2=ifL_kk_2; + tmp=select(cpL,#_2==kk); + tmp3=apply(tmp,#_1); + sL_tmp1=" "; + sL_tmp2=";end;"; + sL_(tmp3_1)=" then,"; + if(length(tmp3)>1, + sL_(tmp3_2)=";else,"; + ); + ); + tmp=sum(sL); +); + +Fortosci(strorg):=( + regional(str,jj,var,tmp,tmp1,tmp2,tmp3,tmp4, + Out,repL,Pflg,Iflg,Cflg); + str=strorg; + repL=[]; + tmp1=Indexall(str,"forall"); + tmp2=Indexall(str,","); + forall(1..length(tmp1),jj, + tmp=select(tmp2,#>tmp1_jj); + var=substring(str,tmp_1,tmp_2-1); + tmp3=substring(str,tmp1_jj-1,tmp_2-1); + tmp=indexof(tmp3,"("); + tmp4=substring(tmp3,tmp,length(tmp3)); + tmp=indexof(tmp4,","); + tmp4=substring(tmp4,0,tmp-1); + tmp4="for "+var+"="+tmp4; + tmp4=replace(tmp4,"..",":"); + repL=concat(repL,[tmp3,tmp4]); + ); + forall(1..length(repL)/2, + str=replace(str,repL_(2*#-1),repL_(2*#)); + ); + tmp=Bracket(str); + tmp=select(tmp,#_2==0); + tmp=tmp_1_1; + tmp1=substring(str,tmp-1,length(str)); + tmp1=replace(tmp1,")",";end"); + str=substring(str,0,tmp-1)+tmp1; + str=replace(str,";;",";"); + str; +); + +Deffun(name,bodylist):=( +//help:Deffun("f(x)",["regional(y)","y=x^2*(x-3)","y"]); // 16.02.18 + regional(funstr,tmp,tmp1,str,Pos); + funstr=name+":=("; + forall(bodylist, + funstr=funstr+#+";"; + ); + funstr=funstr+");"; + parse(funstr); + tmp=bodylist_(length(bodylist)); + str="function "+tmp+"="+name+","; + forall(1..(length(bodylist)-1), + tmp1=bodylist_#; + tmp1=replace(tmp1,LFmark,"");// 16.05.26 + tmp1=replace(tmp1," ","");// 16.05.26 + Pos=indexof(tmp1,"regional")+indexof(tmp1,"local"); + if(Pos==0, + tmp=replace(tmp1,".xy",""); + tmp=replace(tmp,".x","(1)"); + tmp=replace(tmp,".y","(2)"); + if(indexof(tmp,"if(")>0, + tmp=iftosci(tmp); + ); + if(indexof(tmp,"forall(")>0, // 16.05.26from + tmp=Fortosci(tmp); + ); // 16.05.26upto + str=str+tmp+","; + ); + ); + str=str+"endfunction;"; + FUNLIST=append(FUNLIST,str); +); + +Windispg():=( + regional(Nj,Nk,Dt,Vj,tmp,tmp1,tmp2,opcindy); + gsave(); + layer(KETPIClayer); + forall(GCLIST,Nj, + if(isstring(Nj_1),Dt=parse(Nj_1),Dt=Nj_1); // 11.17 + if(islist(Dt) & length(Dt)>0, // 12.19,12.22 + tmp=MeasureDepth(Dt); + if(tmp==1,Dt=[Dt]); + opcindy=Nj_3; + if(Nj_2<0,tmp1=0,tmp1=Nj_2); + if(tmp1<10, + forall(Dt,Nk, +// tmp2=apply(Nk,if(ispoint(#),Lcrd(#),#)); +// tmp2=apply(tmp2,Pcrd(#)); + tmp2=Nk; // 14.12.04 + if(length(Nk)>1, + tmp="connect("+textformat(tmp2,5)+ + ",dashtype->"+text(tmp1)+",linecolor->"+KCOLOR+opcindy+")"; + parse(tmp); + , + if(length(Nk)==1, + tmp="draw("+text(tmp2_1)+opcindy+")"; // 14.12.31 + parse(tmp); + ); + ); + ); + ); + ); + ); +// if(ADDAXES=="1", // 16.10.08from +// draw([XMIN,0],[XMAX,0],color->[0,0.2,0]); +// draw([0,YMIIN],[0,YMAX],color->[0,0.2,0]); +// Letter([[XMAX,0],"e","x",[0,YMAX],"n","y"]); +// Letter([[0,0],"sw","O"]); +// ); // 16.10.08upto + grestore(); + layer(0); +); + +Windispg(pltdata):=( + regional(pdata,Nj,Nk,Dt,tmp,tmp1,tmp2,opcindy); + gsave(); + layer(KETPIClayer); + if(!islist(pltdata),tmp=[pltdata],tmp=pltdata); + pdata=select(GCLIST,contains(tmp,#_1)); + forall(pdata,Nj, + if(isstring(Nj_1),Dt=parse(Nj_1),Dt=Nj_1); // 11.17 + if(islist(Dt) & length(Dt)>0, // 12.19,12.22 + tmp=MeasureDepth(Dt); + if(tmp==1,Dt=[Dt]); + opcindy=Nj_3; + if(Nj_2<0,tmp1=0,tmp1=Nj_2); + if(tmp1<10, + forall(Dt,Nk, + tmp2=Nk; // 14.12.04 + if(length(Nk)>1, + tmp="connect("+textformat(tmp2,5)+ // 15.05.11 + ",dashtype->"+text(tmp1)+ + ",linecolor->"+KCOLOR+opcindy+")"; + parse(tmp); + , + if(length(Nk)==1, + tmp="draw("+text(tmp2_1)+opcindy+")"; // 14.12.31 + parse(tmp); + ); + ); + ); + ); + ); + ); + grestore(); + layer(0); +); + + +WritetoSci() := WritetoSci(Fnamesci); +WritetoSci(Arg) := ( + regional(string,filename,shch,tmp1,tmp2); + if(isstring(Arg), + string=Arg; + if(indexof(string,".sce")>0, + filename=string; + shchoice=""; + , + filename=Fnamesci; + shch=string; + ); + WritetoSci(filename,shch); + , + if(Arg<=1,WritetoSci(Fnamesci,"all")); + if(Arg==2,WritetoSci(Fnamesci,"sh")); + if(Arg==3,WritetoScibody(Fnamescibody)); + ); +); +WritetoSci(filename,shchoice) := ( + regional(Plist,Pos,Pnamelist,Pvaluelist,GrL,str,tmp,tmp1,tmp2,cmd); + println("Write to Sci "+filename); + Plist=[]; + Pnamelist=[]; + Pvaluelist=[]; + forall(remove(allpoints(),[SW,NE]), + tmp=Lcrd(#); + tmp1=format(re(tmp_1),5);// 15.02.05 + tmp2=format(re(tmp_2),5); + tmp="["+tmp1+","+tmp2+"]"; + Plist=append(Plist,#.name+"="+tmp+";"); + Pnamelist=append(Pnamelist,#.name); + Pvaluelist=append(Pvaluelist,tmp); + ); + SCEOUTPUT = openfile(filename); + tmp=Datetime();//16.12.25from + println(SCEOUTPUT,"//date time="+tmp_1+" "+tmp_2); + if(isstring(CindyPathName), // 16.12.25from + if(length(CindyPathName)>0, + println(SCEOUTPUT,"//path file="+CindyPathName+" "+CindyFileName+".cdy"); + , + println(SCEOUTPUT,""); + ); + , + println(SCEOUTPUT,""); + );//16.12.25upto + println(SCEOUTPUT,"cd('"+Dirwork+"');"); + if((indexof(PathT,"pdflatex")>0)%(indexof(PathT,"lualatex")>0) ,//16.11.29,12.16 + if(indexof(PathS,"-6.")>0, + Libname=Dirlib+"/ketpic2escifiles6";//17.05.13 + , + Libname=Dirlib+"/ketpic2esciL5";//16.11.29 + ); + ); + println(SCEOUTPUT,"Ketlib=lib('"+Libname+"');"); + tmp=length(Libname)-1; + if(substring(Libname,tmp-1,tmp)!="C", // 15.06.02 + println(SCEOUTPUT,"Ketinit();"); + , + println(SCEOUTPUT,"errcatch(235,"+DqDq("continue")+");"); + println(SCEOUTPUT,"Ketinit("+DqDq("Ketlib")+");"); + ); + println(SCEOUTPUT,"disp('KETpic '+ThisVersion())"); // 15.04.12 + println(SCEOUTPUT,"Fnametex='"+Fnametex+"';"); + println(SCEOUTPUT,"Fnamesci='"+Fnamesci+"';"); + println(SCEOUTPUT,"Fnamescibody='"+Fnamescibody+"';"); + println(SCEOUTPUT,"Fnameout='"+Fnameout+"';"); + if(iswindows(), // 17.01.11from + println(SCEOUTPUT,"setlanguage('en')"); + ); // 17.01.11upto + println(SCEOUTPUT,"pi=%pi; i=%i;"); + println(SCEOUTPUT,"arccos=acos; arcsin=asin; arctan=atan;"); // 15.05.15 + println(SCEOUTPUT,""); + forall(COM0thlist, + println(SCEOUTPUT,#+";"); + ); + println(SCEOUTPUT, + "Setwindow(["+XMIN+","+XMAX+"], ["+YMIN+","+YMAX+"]);"); + println(SCEOUTPUT,"Assignadd('pi',%pi);"); + println(SCEOUTPUT,"Assignadd('XMIN',Xmin());"); + println(SCEOUTPUT,"Assignadd('XMAX',Xmax());"); + println(SCEOUTPUT,"Assignadd('YMIN',Ymin());"); + println(SCEOUTPUT,"Assignadd('YMAX',Ymax());"); + forall(1..length(Plist), + print(SCEOUTPUT,Plist_#); + println(SCEOUTPUT," Assignrep('"+Pnamelist_#+"',"+Pvaluelist_#+");"); + ); + forall(VLIST, + tmp=Sciform(#_1); + tmp1=#_2; // 15.02.06 + if(!isstring(tmp1), + if(islist(tmp1), + tmp2="["; + forall(tmp1, + tmp2=tmp2+format(#,5)+","; + ); + tmp1=substring(tmp2,0,length(tmp2)-1)+"]"; + , + tmp1=format(tmp1,5); + ); + ); + print(SCEOUTPUT,tmp+"evstr('"+tmp1+"')"+"; "); + tmp=substring(tmp,0,length(tmp)-1); + println(SCEOUTPUT," Assignrep('"+tmp+"',"+tmp1+");"); // 15.01.27 + ); + forall(FUNLIST, + println(SCEOUTPUT,#); + ); + forall(GLIST, + println(SCEOUTPUT,Sciform(#)+";"); + ); + tmp=text(Pnamelist); + tmp=replace(tmp,"[","list("); + Pnamelist=replace(tmp,"]",")"); + println(SCEOUTPUT,"PtL="+Pnamelist+";"); + tmp=select(GCLIST,#_2==-1); + GrL=apply(tmp,#_1); + tmp=text(GrL); + tmp=replace(tmp,"[","list("); + tmp=replace(tmp,"]",")"); + println(SCEOUTPUT,"GrL="+tmp+";"); + tmp1=""; + forall(SCIWRLIST, + tmp1=tmp1+","+Dq+#+Dq+","+#; + ); + if(length(tmp1)>0, + tmp1="WriteOutData(Fnameout"+tmp1+");"; + println(SCEOUTPUT,tmp1); + ); + if(length(SCIRELIST)>0, + println(SCEOUTPUT,"if length(fileinfo(Fnameout))>0"); // 15.05.15 + println(SCEOUTPUT," Tmpout=ReadOutData(Fnameout);");// 15.09.12 + println(SCEOUTPUT," execstr(Tmpout);"); // 15.05.15 +// println(SCEOUTPUT," forall Tmp1=1:size(Tmpout,1)"); +// println(SCEOUTPUT," Tmp=strindex(Tmpout(Tmp1,1),'=list()');"); +// println(SCEOUTPUT," if length(Tmp)>0"); +// println(SCEOUTPUT," Tmp=part(Tmpout(Tmp1,1),1:(Tmp-1));"); +// println(SCEOUTPUT," if length(evstr(Tmp))==1,"); +// println(SCEOUTPUT," Tmp=Tmp+'='+Tmp+'(1)';"); +// println(SCEOUTPUT," execstr(Tmp);"); +// println(SCEOUTPUT," end;"); +// println(SCEOUTPUT," end;"); +// println(SCEOUTPUT," end;"); +// println(SCEOUTPUT,"end;"); + ); + if(shchoice=="sh", + println(SCEOUTPUT,"//if length(fileinfo(Fnamescibody))>0"); + println(SCEOUTPUT,"// Gbdy=ReadfromCindy(Fnamescibody);"); + println(SCEOUTPUT,"// execstr(Gbdy)"); + println(SCEOUTPUT,"//end;"); + , + println(SCEOUTPUT,"//if length(fileinfo(Fnamescibody))>0"); + println(SCEOUTPUT,"// Gbdy=ReadfromCindy(Fnamescibody);"); + println(SCEOUTPUT,"// execstr(Gbdy)"); + println(SCEOUTPUT,"//end;"); + ); + forall(COM1stlist, + println(SCEOUTPUT,#+";"); + ); +// forall(GOUTLIST, +// if(length(#_2)>0, +// tmp1=#_1; +// println(SCEOUTPUT,"execstr(ReadOutData('"+tmp1+"'));"); +// ); +// ); + println(SCEOUTPUT,""); + println(SCEOUTPUT,"//Windisp(GrL,'c');"); + println(SCEOUTPUT,""); + println(SCEOUTPUT,"if 1==1 then"); + println(SCEOUTPUT,""); + println(SCEOUTPUT,"Openfile('"+Dirwork+"/"+Fnametex+"','"+ULEN+"');");// 16.05.29 + forall(COM2ndlist, + println(SCEOUTPUT," "+#+";"); + ); + if(length(GrL)>0, + println(SCEOUTPUT," Drwline(GrL);"); + ); +// forall(GOUTLIST, +// if(length(#_2)>0, +// tmp1=textformat(#_2,5); +// tmp1=substring(tmp1,1,length(tmp1)-1); +// println(SCEOUTPUT," Drwline("+tmp1+");"); +// ); +// ); + println(SCEOUTPUT,"Closefile('"+ADDAXES+"');"); + println(SCEOUTPUT,""); + println(SCEOUTPUT,"end;"); + if(shchoice=="sh", + println(SCEOUTPUT,""); + println(SCEOUTPUT,"quit();"); + , + println(SCEOUTPUT,""); + println(SCEOUTPUT,"//quit();"); + ); + closefile(SCEOUTPUT); + +); + +WritetoScibody() := WritetoScibody(Fnamescibody); +WritetoScibody(filename) := ( + regional(Plist,Pos,Pnamelist,Pvaluelist,GrL,str,tmp,tmp1,cmd); + println("WritetoScibody "+filename); + Plist=[]; + Pnamelist=[]; + Pvaluelist=[]; + forall(remove(allpoints(),[SW,NE]), + Plist=append(Plist,#.name+"="+#.xy+";"); + Pnamelist=append(Pnamelist,#.name); + Pvaluelist=append(Pvaluelist,#.xy); + ); + SCEOUTPUT = openfile(filename); + println(SCEOUTPUT, + "Setwindow(["+XMIN+","+XMAX+"], ["+YMIN+","+YMAX+"]);"); + println(SCEOUTPUT,"Assignadd('pi',%pi);"); + println(SCEOUTPUT,"Assignadd('XMIN',Xmin());"); + println(SCEOUTPUT,"Assignadd('XMAX',Xmax());"); + println(SCEOUTPUT,"Assignadd('YMIN',Ymin());"); + println(SCEOUTPUT,"Assignadd('YMAX',Ymax());"); + forall(1..length(Plist), + print(SCEOUTPUT,Plist_#); + println(SCEOUTPUT," Assignrep('"+Pnamelist_#+"',"+Pvaluelist_#+");"); + ); + forall(VLIST, + tmp=Sciform(#_1); + tmp1=#_2; + if(!isstring(tmp1), + print(SCEOUTPUT,tmp+tmp1+"; "); + , + print(SCEOUTPUT,tmp+"evstr('"+tmp1+"')"+"; "); + ); + tmp=substring(tmp,0,length(tmp)-1); + println(SCEOUTPUT," Assignrep('"+tmp+"',"+#_2+");"); + ); + forall(FUNLIST, + println(SCEOUTPUT,#); + ); + forall(GLIST, + println(SCEOUTPUT,Sciform(#)+";"); + ); + tmp=text(Pnamelist); + tmp=replace(tmp,"[","list("); + Pnamelist=replace(tmp,"]",")"); + println(SCEOUTPUT,"PtL="+Pnamelist+";"); + tmp=select(GCLIST,#_2==-1); + GrL=apply(tmp,#_1); + tmp=textformat(GrL,5); + tmp=replace(tmp,"[","list("); + tmp=replace(tmp,"]",")"); + println(SCEOUTPUT,"GrL="+tmp+";"); + tmp1=""; + forall(SCIWRLIST, + tmp1=tmp1+","+Dq+#+Dq+","+#; + ); + if(length(tmp1)>0, + tmp1="WriteOutData(Fnameout"+tmp1+");"; + println(SCEOUTPUT,tmp1); + ); + if(length(SCIRELIST)>0, + println(SCEOUTPUT,"Tmpout=ReadOutData(Fnameout);"); + println(SCEOUTPUT,"execstr(Tmpout);"); + println(SCEOUTPUT,"forall Tmp1=1:size(Tmpout,1)"); + println(SCEOUTPUT," Tmp=strindex(Tmpout(Tmp1,1),'=list()');"); + println(SCEOUTPUT," if length(Tmp)>0"); + println(SCEOUTPUT," Tmp=part(Tmpout(Tmp1,1),1:(Tmp-1));"); + println(SCEOUTPUT," if length(evstr(Tmp))==1,"); + println(SCEOUTPUT," Tmp=Tmp+'='+Tmp+'(1)';"); + println(SCEOUTPUT," execstr(Tmp);"); + println(SCEOUTPUT," end;"); + println(SCEOUTPUT," end;"); + println(SCEOUTPUT,"end;"); + ); + if(shchoice=="sh", + println(SCEOUTPUT,"//if length(fileinfo(Fnamescibody))>0"); + println(SCEOUTPUT,"// Gbdy=ReadfromCindy(Fnamescibody);"); + println(SCEOUTPUT,"// execstr(Gbdy)"); + println(SCEOUTPUT,"//end;"); + , + println(SCEOUTPUT,"//if length(fileinfo(Fnamescibody))>0"); + println(SCEOUTPUT,"// Gbdy=ReadfromCindy(Fnamescibody);"); + println(SCEOUTPUT,"// execstr(Gbdy)"); + println(SCEOUTPUT,"//end;"); + ); + forall(COM1stlist, + println(SCEOUTPUT,#+";"); + ); +// forall(GOUTLIST, 2014.12.18 +// if(length(#_2)>0, +// tmp1=#_1; +// println(SCEOUTPUT,"execstr(ReadOutData('"+tmp1+"'));"); +// ); +// ); + println(SCEOUTPUT,""); + println(SCEOUTPUT,"//Windisp(GrL,'c');"); + println(SCEOUTPUT,""); + + closefile(SCEOUTPUT); +); + +Extractdata(name):=Extractdata(1,name,[]); +Extractdata(Arg1,Arg2):=( + if(isstring(Arg1), + Extractdata(1,Arg1,Arg2); + , + Extractdata(Arg1,Arg2,[]); + ); +); +Extractdata(number,name,options):=( +//help:ExtractData("ha1"); +//help:ExtractData(1,"ha1"); + regional(dlist,tmp,tmp1,tmp2,tmp3,File,Ltype,Noflg,opstr,opcindy); + tmp=Divoptions(options); + Ltype=tmp_1; + Noflg=tmp_2; + opstr=tmp_(length(tmp)-1); + opcindy=tmp_(length(tmp)); + tmp1=[]; + forall(1..length(GOUTLIST), + if(contains(GOUTLIST_#_2,name), + tmp1=append(tmp1,#); + ); + ); + if(length(tmp1)==0, + println(varname+" not found"); + , + tmp1=tmp1_number; + tmp2=GOUTLIST_tmp1; + tmp=remove(tmp2_2,[name]); + GOUTLIST_tmp1=[tmp2_1,tmp]; + File=tmp2_1; + ); + if(Noflg<3, + println("extract outdata "+name); + tmp1=parse(name); + if(1==0, + Com0th("Tmpout=ReadOutData("+Dq+File+Dq+");"); + Com0th("execstr(Tmpout);"); + Com0th("for Tmp1=1:size(Tmpout,1)"); + Com0th(" Tmp=strindex(Tmpout(Tmp1,1),'=list()');"); + Com0th(" if length(Tmp)>0"); + Com0th(" Tmp=part(Tmpout(Tmp1,1),1:(Tmp-1));"); + Com0th(" if length(evstr(Tmp))==1,"); + Com0th(" Tmp=Tmp+'='+Tmp+'(1)';"); + Com0th(" execstr(Tmp);"); + Com0th(" end;"); + Com0th(" end;"); + Com0th("end;"); + ); + tmp3=[ + "Tmpout=ReadOutData("+Dq+File+Dq+");", + "execstr(Tmpout);", + "for Tmp1=1:size(Tmpout,1)", + " Tmp=strindex(Tmpout(Tmp1,1),'=list()');", + " if length(Tmp)>0", + " Tmp=part(Tmpout(Tmp1,1),1:(Tmp-1));", + " if length(evstr(Tmp))==1", + " Tmp=Tmp+'='+Tmp+'(1)';", + " execstr(Tmp);", + " end;", + " end;", + "end;" + ]; + GLIST=concat(GLIST,tmp3); + ); + if(Noflg<2, + if(isstring(Ltype), + Ltype=GetLinestyle(text(Noflg)+Ltype,name); + , + if(Noflg==1,Ltype=0); + ); + GCLIST=append(GCLIST,[name,Ltype,opcindy]); + ); + tmp2; +); + +RemoveOut(pltlist):=( + regional(name,tmp,tmp1,tmp2); + forall(pltlist,name, + tmp1=[]; + forall(GOUTLIST, + tmp=remove(#_2,[name]); + tmp1=append(tmp1,[#_1,tmp]); + ); + GOUTLIST=tmp1; + ); +); + +ReadOutData():=ReadOutData(Fnameout); +ReadOutData(filename):=ReadOutData("",filename); //16.03.07 +ReadOutData(pathorg,filenameorg):=( +//help:ReadOutData(); +//help:Readoutdata(); +//help:ReadOutData("file.txt"); +//help:Readoutdata("file.txt"); +//help:ReadOutData("/datafolder","file.txt"); +//help:Readoutdata("/datafolder","file.txt"); + regional(path,filename,varname,varL,ptL,pts,tmp,tmp1,tmp2,tmp3,tmp4, + nmbr,cmdall,cmd,cmdorg,outdt,goutdt); + path=pathorg; //16.03.07 from + if(length(path)>0, + setdirectory(path); + if(indexof(path,"\")>0,tmp1="\",tmp1="/"); + tmp=substring(path,length(path)-1,length(path)); + if(tmp!=tmp1,path=path+tmp1); + ); //16.03.07 upto + filename=filenameorg; // 16.04.17 + if(indexof(filename,".")==0,filename=filename+".txt"); + tmp=load(filename); + cmdall=tokenize(tmp,"//"); + varname=cmdall_1; + cmdall=cmdall_(2..length(cmdall)); + outdt=[]; + varL=[varname]; + ptL=[]; + forall(cmdall,cmdorg, + cmd=replace(cmdorg,LFmark,""); + if(length(cmd)>0, + if(cmd=="start" % cmd=="end" % substring(cmd,0,1)=="[", + if(cmd=="start", + pts=[]; + ); + if(cmd=="end", + ptL=append(ptL,pts); + ); + if(substring(cmd,0,1)=="[", + tmp1=parse(cmd); + if(length(tmp1_1)==2, + tmp1=apply(tmp1,Pcrd(#)); + ); + pts=concat(pts,tmp1); + ); + , + if(length(ptL)>0, + if(length(ptL)==1, + ptL=ptL_1; + tmp=apply(ptL,textformat(#,6)); + , + tmp="["; + forall(ptL,tmp1, + tmp=tmp+apply(tmp1,textformat(#,6))+","; + ); + tmp=substring(tmp,0,length(tmp)-1)+"]"; + ); + , + tmp="[]"; + ); + parse(varname+"="+tmp); + outdt=append(outdt,ptL); + ptL=[]; + varname=cmd; + varL=append(varL,varname); + ); + ); + ); + if(length(ptL)>0, + if(length(ptL)==1, + ptL=ptL_1; + tmp=apply(ptL,textformat(#,6)); + , + tmp="["; + forall(ptL,tmp1, + tmp=tmp+apply(tmp1,textformat(#,6))+","; + ); + tmp=substring(tmp,0,length(tmp)-1)+"]"; + ); + , + tmp="[]"; + ); + parse(varname+"="+tmp); + outdt=append(outdt,ptL); + if(path=="",tmp=filename,tmp=path+filename); //16.03.07 + GOUTLIST=append(GOUTLIST,[tmp,varL]); + if(length(path)>0, // 16.03.09 + setdirectory(Dirwork); // 16.03.07 + ); + print("readoutdata from "+tmp+" : "); + println(varL); + varL; +); + +WriteOutData(filename,ptlist):=( +//help:WriteOutData("file.txt",["g1",gr1,"sg",sgAB]); +//help:Writeoutdata("file.txt",["g1",gr1,"sg",sgAB]); + regional(nn,Gname,Gdata,Str,Gstr,Gj,Pt,Flg,tmp,tmp1,loopend); + Flg=0; + if(isstring(ptlist_(length(ptlist))), + Flg=1; + ); + SCEOUTPUT = openfile(filename); + if(Flg==0, + loopend=length(ptlist)/2; + , + loopend=length(ptlist); + ); + Gstr="["; + forall(1..loopend,nn, + if(Flg==0, + Gname=ptlist_(2*nn-1); + , + Gname=ptlist_nn; + ); + Gstr=Gstr+Gname+","; + println(SCEOUTPUT,Gname+"//"); + if(Flg==0, + Gdata=ptlist_(2*nn); + , + Gdata=parse(Gname); + ); + Gdata=Flattenlist(Gdata); + if(MeasureDepth(Gdata)==1,Gdata=[Gdata]); + forall(Gdata,Gj, + println(SCEOUTPUT,"start//"); + Str=""; + forall(Gj,Pt, + if(length(Str)>0, + Str=Str+"," + ); + Str=Str+"["+format(Pt_1,5)+","; + Str=Str+format(Pt_2,5); + if(length(Pt)<3, + Str=Str+"]"; + , + Str=Str+","+format(Pt_3,5)+"]"; + ); + if(length(Str)>80, + println(SCEOUTPUT,"["+Str+"]//"); + Str=""; + ); + ); + if(length(Str)>0, + println(SCEOUTPUT,"["+Str+"]//"); + ); + if((nn==loopend) & (Gj==Gdata_(length(Gdata))), + println(SCEOUTPUT,"end////"); + , + println(SCEOUTPUT,"end//"); + ); + ); + ); + closefile(SCEOUTPUT); + Gstr=substring(Gstr,0,length(Gstr)-1)+"]"; + println("writeoutdata "+filename+":"+Gstr); +); + +Makeshell():=( + if(length(Texmain)>0, + Texparent=Texmain; + ); + if(length(Texparent)>0, + Makeshell(Texparent); + if(length(FigPdfList)>0, + SCEOUTPUT=openfile(Texparent+".tex"); + forall(FigPdfList,println(SCEOUTPUT,#)); + closefile(SCEOUTPUT); + ); + , + Makeshell(Fhead+"main"); + ); +); +Makeshell(texmainfile):=Makeshell(texmainfile,"stv"); +Makeshell(texmainfile,flow):=( + regional(parent,tmp,tmp1,tmp2,tmp3,flg,tex,path,shnm); + parent=Dirwork+Shellparent; // 16.05.29 + kc():=( + println("kc : "+kc(Dirwork+Shellparent,Mackc+Dirlib,Fnametex)); // 16.06.04,06.07 + ); + tmp1=""; +// tmp2=parent; + flg=0; + forall(reverse(1..length(parent)), + if(flg==0, + tmp=substring(parent,#-1,#); + if(tmp=="/" % tmp=="\", // 14.01.15 + tmp1=substring(parent,0,#-1); + tmp2=substring(parent,#,length(parent)); + flg=1; + ); + ); + ); + if(length(tmp1)>0, + setdirectory(tmp1); + ); + SCEOUTPUT = openfile(tmp2); + println(SCEOUTPUT,"#!/bin/sh"); + println(SCEOUTPUT,"cd "+Dq+Dirwork+Dq); // 15.07.16 + tmp1=" "+Dq+Fhead+Dq+" "+Dq+texmainfile+Dq; // 15.12.11 + if((isstring(Shellfile)) & (length(Shellfile)>5), // 16.04.01 + tmp="sh "+Dq+Shellchild+Dq+tmp1; // 16.05.15,16.05.30 + , + flg=0; + forall(reverse(1..length(PathT)), + if(flg==0, + if(substring(PathT,#-1,#)=="/", + tex=substring(PathT,#,length(PathT)); + path=substring(PathT,0,#-1); + flg=1; + ); + ); + ); + if(indexof(flow,"s")>0, + tmp=Dq+PathS+Dq+" -nwni -f "+Fhead+".sce"; // 16.07.21from + println(SCEOUTPUT,tmp); + ); + if(tex=="latex" % tex=="platex" % tex=="uplatex", //17.08.13 + tmp=Dq+PathT+Dq+" "+texmainfile+".tex"; + println(SCEOUTPUT,tmp); + if(indexof(Shellfile,"mv")>0, + println(SCEOUTPUT,tmp); + ); + tmp=replace(Dq+PathT+Dq,tex,"dvipdfmx")+" "+texmainfile+".dvi"; + println(SCEOUTPUT,tmp); + tmp="rm "+texmainfile+".dvi"; + println(SCEOUTPUT,tmp); + ); + if(tex=="xelatex", + tmp="export PATH=$"+path+":${PATH}"; + println(SCEOUTPUT,tmp); + tmp="xelatex"+" "+texmainfile+".tex"; + println(SCEOUTPUT,tmp); + if(indexof(Shellfile,"mv")>0, + println(SCEOUTPUT,tmp); + ); + tmp="rm "+texmainfile+".dvi"; + println(SCEOUTPUT,tmp); + ); + if(tex=="pdflatex" % tex=="pdftex",//16.11.22from + tmp=Dq+PathT+Dq+" "+texmainfile+".tex"; + println(SCEOUTPUT,tmp); + if(indexof(Shellfile,"mv")>0, + println(SCEOUTPUT,tmp); + ); + );//16.11.22upto + if(tex=="lualatex",//16.12.16 + tmp=Dq+PathT+Dq+" "+texmainfile+".tex"; + println(SCEOUTPUT,tmp); + if(indexof(Shellfile,"mv")>0, + println(SCEOUTPUT,tmp); + ); + );//16.12.16 + tmp=""; + if(isstring(Shellfile), + if(indexof(Shellfile,"mv")>0, + tmp=PathAd; + ); + ); + if(length(tmp)==0, + if(!isstring(Pathpdf), + tmp="preview"; + , + tmp=Pathpdf; + ); + ); + if(tmp=="preview" % tmp=="skim", // 16.09.09from,16.10.20 + tmp="open -a "+Dq+tmp+Dq+" "+texmainfile+".pdf"; + , + tmp=Dq+tmp+Dq+" "+texmainfile+".pdf"; + );// 16.09.09upto + ); + println(SCEOUTPUT,tmp); // 16.07.21upto + println(SCEOUTPUT,"exit 0"); + closefile(SCEOUTPUT); + setdirectory(Dirwork); +); + +Makebat():=( + if(length(Texmain)>0, + Texparent=Texmain; + ); + if(length(Texparent)>0, + Makebat(Texparent); + if(length(FigPdfList)>0, + SCEOUTPUT=openfile(Texparent+".tex"); + forall(FigPdfList,println(SCEOUTPUT,#)); + closefile(SCEOUTPUT); + ); + , + Makebat(Fhead+"main"); + ); +); +Makebat(texmainfile):=Makebat(texmainfile,"stv"); +Makebat(texmainfile,flow):=( + regional(drive,fname,tmp,tmp1,tmp2,tmp3,flg,tex,path,batnm); + drive="C:"; + fname=Dirwork+Batparent; + kc():=( + println("kc : "+kc(Dirwork+Batparent,Dirlib,Fnametex)); // 16.06.04 + ); + tmp=indexof(fname,":"); + if(tmp>0, + drive=substring(fname,0,tmp); + fname=substring(fname,tmp,length(fname)); + ); + tmp1=""; + tmp2=fname; + flg=0; + forall(reverse(1..length(fname)), + if(flg==0, + tmp=substring(fname,#-1,#); + if(tmp=="/" % tmp=="\" % tmp=="\", // 14.01.15 + tmp1=substring(fname,0,#-1); + tmp2=substring(fname,#,length(fname)); + flg=1; + ); + ); + ); + if(length(tmp1)>0, + setdirectory(drive+tmp1); + ); + SCEOUTPUT = openfile(tmp2); + fname=Dirwork; + tmp=indexof(fname,":"); + if(tmp>0, + drive=substring(Dirwork,0,tmp); + fname=substring(Dirwork,tmp,length(Dirwork)); + println(SCEOUTPUT,drive); + ); + println(SCEOUTPUT,"cd "+Dq+fname+Dq);// 15.07.16 + if((isstring(Shellfile)) & (length(Shellfile)>6), // 16.04.01 + tmp=Dq+Batchild+Dq+tmp1; + , + flg=0; + forall(reverse(1..length(PathT)), + if(flg==0, + if(substring(PathT,#-1,#)=="\", + tex=substring(PathT,#,length(PathT)); + path=substring(PathT,0,#-1); + flg=1; + ); + ); + ); + if(indexof(flow,"s")>0, + tmp=Dq+PathS+Dq+" -nb -nwni -f "+Fhead+".sce"; // 16.07.21from + println(SCEOUTPUT,tmp); + ); + if(tex=="latex" % tex=="platex" % tex=="uplatex", //17.08.13 + tmp=Dq+PathT+Dq+" "+texmainfile+".tex"; + println(SCEOUTPUT,tmp); + if(indexof(Shellfile,"mv")>0, + println(SCEOUTPUT,tmp); + ); + tmp=replace(Dq+PathT+Dq,tex,"dvipdfmx")+" "+texmainfile+".dvi"; + println(SCEOUTPUT,tmp); + tmp="del "+texmainfile+".dvi"; + println(SCEOUTPUT,tmp); + ); + if(tex=="xelatex", + tmp="set Path = %Path%;"+Dq+path+Dq; + println(SCEOUTPUT,tmp); + tmp="xelatex"+" "+texmainfile+".tex"; + println(SCEOUTPUT,tmp); + if(indexof(Shellfile,"mv")>0, + println(SCEOUTPUT,tmp); + ); + tmp="del "+texmainfile+".dvi"; + println(SCEOUTPUT,tmp); + ); + if(tex=="pdflatex" % tex=="pdftex",//16.11.22from + tmp=Dq+PathT+Dq+" "+texmainfile+".tex"; + println(SCEOUTPUT,tmp); + if(indexof(Shellfile,"mv")>0, + println(SCEOUTPUT,tmp); + ); + );//16.11.22upto + if(tex=="lualatex",//16.12.16 + tmp=Dq+PathT+Dq+" "+texmainfile+".tex"; + println(SCEOUTPUT,tmp); + if(indexof(Shellfile,"mv")>0, + println(SCEOUTPUT,tmp); + ); + );//16.12.16 +// tmp="del "+texmainfile+".dvi"; +// println(SCEOUTPUT,tmp); + tmp=""; + if(isstring(Shellfile), + if(indexof(Shellfile,"mv")>0, + tmp=PathAd; + ); + ); + if(length(tmp)==0, + if(!isstring(Pathpdf), + tmp=indexof(PathS,"\scilab");// 15.12.12 + tmp=substring(PathS,0,tmp-1)+"\SumatraPDF\SumatraPDF.exe"; + , + tmp=Pathpdf; + ); + ); + tmp=Dq+tmp+Dq+" "+texmainfile+".pdf"; + ); //16.07.21upto + println(SCEOUTPUT,tmp); + println(SCEOUTPUT,"exit 0"); + closefile(SCEOUTPUT); + if(indexof(Dirwork,":")==0, // 14.01.15 + drive="C:"; + , + drive=""; + ); + setdirectory(drive+Dirwork); +); + +Addpackage(packorg):=( +//help:Addpackage("bm"); +//help:Addpackage(["bm","enumerate"]); +//help:Addpackage(["bm","[c]{somepackage}"]); + regional(packL,tmp); + packL=packorg; //17.06.25from + if(!islist(packL),packL=[packL]); + packL=apply(packL,replace(#,"\","/")); + forall(1..(length(packL)), + tmp=packL_#; + if(substring(tmp,0,11)=="ketpicstyle", + tmp=replace(Dirhead+"/"+tmp,"\","/"); + ); + if(indexof(tmp,"[")==0, + packL_#="{"+tmp+"}"; + ); + ); + ADDPACK=concat(ADDPACK,packL); //17.06.25upto +); + +Viewtex():=( + regional(texfile,tmp,tmp1,sep); + texfile=Fhead+"main"; +// if(iswindows(),sep="\",sep="/"); // 17.04.07 +// sep="/"; + SCEOUTPUT=openfile(texfile+".tex"); + tmp="\documentclass{article}"; // 16.06.09from + if(indexof(PathT,"platex")>0, + tmp=replace(tmp,"article","jarticle"); + if(indexof(PathT,"uplatex")>0, //17.08.13from + tmp=replace(tmp,"jarticle","ujarticle"); + );//17.08.13upto + ); // 16.06.09upto + println(SCEOUTPUT,tmp); + if((indexof(PathT,"pdflatex")>0)%(indexof(PathT,"lualatex")>0) ,//16.11.23,12.16 + if(indexof(PathT,"pdflatex")>0, + println(SCEOUTPUT,"\usepackage[pdftex]{pict2e}");//16.11.24 + , + println(SCEOUTPUT,"\usepackage{pict2e}");//16.12.16 + println(SCEOUTPUT,"\usepackage{luatexja}");//16.12.18 + ); +// println(SCEOUTPUT,"\usepackage{ketpic2e,ketlayer2e}");// 17.04.07from + tmp=replace(Dirhead+"/ketpicstyle","\","/"); + println(SCEOUTPUT,"\usepackage{"+tmp+"/ketpic2e}"); + println(SCEOUTPUT,"\usepackage{"+tmp+"/ketlayer2e}"); + , +// println(SCEOUTPUT,"\usepackage{ketpic,ketlayer}"); + tmp=replace(Dirhead+"/ketpicstyle","\","/"); + println(SCEOUTPUT,"\usepackage{"+tmp+"/ketpic}"); + println(SCEOUTPUT,"\usepackage{"+tmp+"/ketlayer}"); + );//17.04.07upto + println(SCEOUTPUT,"\usepackage{amsmath,amssymb}"); + println(SCEOUTPUT,"\usepackage{graphicx}"); + println(SCEOUTPUT,"\usepackage{color}"); + forall(ADDPACK, // 16.05.16from + println(SCEOUTPUT,"\usepackage"+#); //17.05.25 + );// 16.05.16upto + println(SCEOUTPUT,""); +// println(SCEOUTPUT,"\def\ketcindy{{K\kern-.20em%"); // deleted 16.11.27,recovered11.29 redeleted17.04.07 +// println(SCEOUTPUT,"\lower.5ex\hbox{E}\kern-.125em{TCindy}}}"); +// println(SCEOUTPUT,""); + println(SCEOUTPUT,"\setmargin{20}{20}{20}{20}"); + println(SCEOUTPUT,""); + println(SCEOUTPUT,"\begin{document}"); + println(SCEOUTPUT,""); + println(SCEOUTPUT,"\verb|"+Fhead+"| by \ketcindy");// 16.01.12, 18, 16.04.08 +// println(SCEOUTPUT,"\verb|"+Fhead+"| by KeTCindy");// 16.11.29 temporarily + println(SCEOUTPUT,"\vspace{5mm}"); + println(SCEOUTPUT,""); + println(SCEOUTPUT,"\input{"+Fhead+".tex}"); + println(SCEOUTPUT,""); + println(SCEOUTPUT,"\end{document}"); + closefile(SCEOUTPUT); + if(iswindows(), + kc():=( + println("kc : "+kc(Dirwork+Batparent,Dirlib,Fnametex)); // 16.06.04 + ); + Makebat(texfile); + , + kc():=( + println("kc : "+kc(Dirwork+Shellparent,Mackc+Dirlib,Fnametex)); // 16.06.04 + ); + Makeshell(texfile); + ); + WritetoSci(2); +); + +Viewparent():=( //17.04.13 + if(!isexists(Dirwork,Texparent+".tex"), + if(isstring(Texparent), + drawtext(mouse().xy,Texparent+".tex not exist", + size->24,color->[1,0,0]); + , + drawtext(mouse().xy,"Texparent not defined", + size->24,color->[1,0,0]); + ); + , + if(iswindows(), + Makebat(); + , + Makeshell(); + ); + WritetoSci(2); + kc(); + ); +); + +Makecmdlist(libname):=( +//help:Makecmdlist("ketcindylib"); + regional(cmdall,cmd,flg,tmp,tmp1,tmp2,out); + setdirectory(Dirlib); + tmp=load(libname+".cs"); + cmdall=tokenize(tmp,":="); + out=[]; + forall(cmdall,cmd, + tmp=max([0,length(cmd)-50]); + tmp1=";"+substring(cmd,tmp,length(cmd)); + flg=0; + forall(reverse(1..length(tmp1)), + if(flg==0, + if(substring(tmp1,#-1,#)==";", + tmp=substring(tmp1,#,length(tmp1)); + tmp2=substring(tmp,0,1); + if(length(tmp)>0, + if(!contains([" ","/"],tmp2), + out=append(out,tmp); + flg=1; + ); + ); + ); + ); + ); + ); + setdirectory(Dirwork); + tmp=length(out)-1; + out=out_(2..tmp); + out=sort(out); +); + +Savecmdlist(cmdlist,cmdfile):=( + SCEOUTPUT=openfile(cmdfile+".cs"); + forall(cmdlist, + println(SCEOUTPUT,#); + ); + closefile(SCEOUTPUT); +); + +Quicksort(seq):=( + regional(pivot,left,right,out); + if(length(seq)<2, + out=seq; + , + pivot = max(seq_1,seq_2); + left = []; + right = []; + forall(seq, + if(#< pivot, + left=append(left,#); + , + right=append(right,#); + ); + ); + left = Quicksort(left); + right = Quicksort(right); + out=concat(left,right); + ); + out; +); + +Lessstr(st1,st2):=( + regional(tmp,tmp1,tmp2,out); + tmp=min(length(st1),length(st2)); + flg=0; + forall(1..tmp, + if(flg==0, + tmp1=substring(st1,#-1,#); + tmp2=substring(st2,#-1,#); + if(tmp1<tmp2, + out=(1<2); + flg=1; + , + if(tmp1>tmp2, + out=(1>2); + flg=1; + ); + ); + ); + ); + if(flg==0, + if(length(st1)<length(str2), + out=(1<2); + , + out=(1>2); + ); + ); + out; +); + +Figpdf():=Figpdf(Texparent,[]); +Figpdf(Arg1):=( + if(isstring(Arg1), + Figpdf(Arg1,[]); + , + Figpdf(Texparent,Arg1); + ); +); +Figpdf(fnameorg,optionorg):=( +//help:Figpdf(); +//help:Figpdf([10,,10,,[0,2] ]);(margin(4),move) +//help:Figpdf([[0,0]]);(move) +//help:Figpdf(options=[5,5,5,5,[0,0]]]); + regional(options,fname,mar,pos,dp,sc,tmp,tmp1,tmp2,sep); + fname=fnameorg; + if(indexof(fnameorg,".")==0, + fname=fnameorg+".tex"; + ); + tmp=apply(optionorg,if(isstring(#),parse("["+#+"]"),#)); // 16.04.07 + tmp=select(tmp,#!=[]); + options=optionorg;//16.11.08from +// mar=[5,5,5,5]; + dp=[0,-3]; + tmp=select(options,islist(#)); + if(length(tmp)>0, + dp=tmp_1; + options=remove(options,tmp); + ); + tmp=4-length(options); + tmp1=apply(1..tmp,5); + mar=concat(options,tmp1); + mar=apply(mar,if(length(#)==0,5,#));//16.11.08upto + pos=[mar_1+dp_1,mar_3+dp_2]; + sc=10; + tmp=indexof(ULEN,"cm"); + if(tmp>0, + tmp1=Removespace(substring(ULEN,0,tmp-1)); + sc=parse(tmp1)*10; + ); + tmp=indexof(ULEN,"mm"); + if(tmp>0, + tmp1=Removespace(substring(ULEN,0,tmp-1)); + sc=parse(tmp1); + ); + tmp="\documentclass{article}"; // 16.06.09from + if(indexof(PathT,"platex")>0, + tmp=replace(tmp,"article","jarticle"); + if(indexof(PathT,"uplatex")>0, //17.08.13from + tmp=replace(tmp,"jarticle","ujarticle"); + );//17.08.13upto + ); + FigPdfList=append(FigPdfList,tmp); // 16.06.09upto + tmp1="\special{papersize=W mm,H mm}"; + tmp=(XMAX-XMIN)*sc+(mar_1+mar_2); + tmp1=replace(tmp1,"W",text(tmp)); + tmp=(YMAX-YMIN)*sc+(mar_3+mar_4); + tmp1=replace(tmp1,"H",text(tmp)); +// if(iswindows(),sep="\",sep="/");//17.04.08 +// sep="/"; + FigPdfList=append(FigPdfList,tmp1); + if(indexof(PathT,"pdflatex")>0 ,//16.11.23 + Libname=Dirlib+"/ketpic2esciL5";//16.11.23 + FigPdfList=append(FigPdfList, + "\usepackage[pdftex]{pict2e}");//16.11.24 + tmp=replace(Dirhead+"/ketpicstyle","\","/"); + FigPdfList=concat(FigPdfList, // 17.04.08from +// "\usepackage{ketpic2e,ketlayer2e}"); + ["\usepackage{"+tmp+"/ketpic2e}", + "\usepackage{"+tmp+"/ketlayer2e}"] + ); + , + tmp=replace(Dirhead+"/ketpicstyle","\","/"); + FigPdfList=concat(FigPdfList, +// "\usepackage{ketpic,ketlayer}"); + ["\usepackage{"+tmp+"/ketpic}", + "\usepackage{"+tmp+"/ketlayer}"] + );// 17.04.08upto + );//16.11.22from + FigPdfList=append(FigPdfList, + "\usepackage{amsmath,amssymb}"); + FigPdfList=append(FigPdfList, + "\usepackage{graphicx,color}"); + forall(ADDPACK, // 16.05.16from +// if(indexof(#,"[")==0, // 16.09.05from +// tmp1="\usepackage{"+#+"}"; +// , + tmp1="\usepackage"+#; //17.07.10 +// ); + FigPdfList=append(FigPdfList,tmp1); // 16.09.05upto + ); + FigPdfList=append(FigPdfList,""); +// FigPdfList=append(FigPdfList, // deleted 2016.11.27 +// "\def\ketcindy{{K\kern-.20em%"); +// tmp="\lower.5ex\hbox{E}\kern-.125em"; +// tmp=tmp+"{TCindy}}}"; +// FigPdfList=append(FigPdfList,tmp); +// FigPdfList=append(FigPdfList,""); + FigPdfList=append(FigPdfList, + "\setmargin{0}{0}{0}{0}"); + FigPdfList=append(FigPdfList,""); + FigPdfList=append(FigPdfList,"\begin{document}"); + FigPdfList=append(FigPdfList,""); + FigPdfList=append(FigPdfList, + "\begin{layer}{50}{0}"); + tmp1="\putnotese{X}{Y}{\input{"; + tmp1=replace(tmp1,"X",text(pos_1)); + tmp1=replace(tmp1,"Y",text(pos_2)); + FigPdfList=append(FigPdfList,tmp1+Fhead+".tex}}"); + FigPdfList=append(FigPdfList,""); + FigPdfList=append(FigPdfList,"\end{layer}"); + FigPdfList=append(FigPdfList,""); + FigPdfList=append(FigPdfList,"\end{document}"); + if(fnameorg!=Texparent, + SCEOUTPUT=openfile(fname); + forall(FigPdfList,println(SCEOUTPUT,#)); + closefile(SCEOUTPUT); + ); + FigPdfList; +); + +Makehelplist(libname):=( + regional(cmdall,cmd,flg,lev,tmp,tmp1,out); + tmp=load(libname); + cmdall=tokenize(tmp,"//help:"); + cmdall=select(cmdall,substring(#,1,3)!=");"); + flg=0; + forall(1..3, + if(flg==0, + if(substring(cmdall_#,0,7)=="start()", + cmdall=cmdall_((#+1)..length(cmdall)); + flg=1; + ); + ); + ); + flg=0; + tmp=length(cmdall); + forall(0..2, + if(flg==0, + if(substring(cmdall_(tmp-#),0,5)=="end()", + cmdall=cmdall_(1..(tmp-#-1)); + flg=1; + ); + ); + ); + out=[]; + forall(cmdall,cmd, + tmp1=indexof(cmd,"("); + lev=1; + flg=0; + forall((tmp1+1)..length(cmd), + if(flg==0, + tmp=substring(cmd,#-1,#); + if(tmp=="(",lev=lev+1); + if(tmp==")", + lev=lev-1; + if(lev==0, + flg=1; + out=append(out,substring(cmd,0,#)+";"); + ); + ); + ); + ); + ); + sort(out); +); + +Helplist():=Helplist(Dirlib,["+","+3d"],"helpJ"); +// 15.05.22 +Helplist(Arg):=( + if(islist(Arg), + Helplist(Dirlib,Arg,"helpJ"); // 15.06.20 + , + if(indexof(Arg,"help")>0, + Helplist(Dirlib,["+","+3d"],Arg); + , + Helplist(Arg,["+","+3d"],"helpJ"); + ); + ); +); +Helplist(Arg1,Arg2):=( + if(islist(Arg1), + Helplist(Dirlib,Arg1,Arg2); + , + if(indexof(Arg2,"help")>0, + Helplist(Dirlib,Arg1,Arg2); + , + Helplist(Arg,["+","+3d"],Arg2); + ); + ); +); +Helplist(dir,files,help):=( +//help:Helplist(); +//help:Helplist("helpE"); + regional(ketfiles,tmp,tmp1,tmp2); + setdirectory(dir); + if(contains(files,"+"), + tmp=remove(files,["+"]); + ketfiles=concat(["+basic1","+basic2","+out"],tmp); + , + ketfiles=files; + ); + ketfiles=apply(ketfiles,replace(#,"+","ketcindylib")); + ketfiles=apply(ketfiles,#+".cs"); // 15.11.05 from + tmp=apply(files,replace(#,"+","ketcindylib")); +// tmp=apply(files,replace(#,".cs","")); +// tmp=remove(tmp,["ketcindylibout"]); +// tmp=apply(tmp,replace(#,"basic","")); + tmp=apply(tmp,#+help+".txt"); + ketfiles=concat(ketfiles,tmp);// 15.11.05 upto + tmp1=[]; + forall(ketfiles, + tmp=Makehelplist(#); + tmp1=concat(tmp1,tmp); + ); + if(!islist(HLIST), // 16.12.31from + HLIST=sort(tmp1); + , + HLIST=sort(concat(HLIST,tmp1)); + ); // 16.12.31upto + setdirectory(Dirwork); +); + + +Help():=( + forall(HLIST, + println(#); + ); +); +Help(strorg):=( +//help:Help("Plot"); +//help:Help("*"); + regional(str,sel,tmp,tmp1,tmp2,flg,Endflg); + if(length(HLIST)>0,flg=0,flg=-1); + str=replace(strorg,"'",Dq); // 15.11.25 + if(length(str)==0, + forall(HLIST, + if(indexof(#,"*")>0, + println(#); + ); + flg=1; + ); + , + if(str=="*", + sel=HLIST; + , + sel=select(HLIST,substring(#,0,length(str))==str); + ); + if(length(sel)>0,flg=1); + forall(sel, + tmp=indexof(#,"("); + if(substring(#,tmp-2,tmp-1)!="*", + println(#); + , +// println(substring(#,0,tmp-1)); + tmp1=substring(#,tmp,length(#)-2); + tmp2=indexof(tmp1,"//"); + Endflg=0; + forall(1..4, + if(Endflg==0, + tmp2=indexof(tmp1,"//"); + if(tmp2==0, + println(" "+tmp1); + Endflg=1; + , + println(" "+substring(tmp1,0,tmp2-1)); + tmp1=substring(tmp1,tmp2+1,length(tmp1)); + ); + ); + ); + ); + ); + ); + if(flg==-1,println(" Help not read in")); + if(flg==0,println(" no example")); +); + +Helpkey(str):=( + regional(tmp,tmp1,tmp2); + tmp1=select(HLIST,indexof(#,str)>0); + forall(tmp1, + tmp=substring(#,0,indexof(#,"*")-1); + Help(tmp); + ); +); +Helpkey(str1,str2):=( +//help:Helpkey(keyword); +//help:Helpkey(keyword1,keyword2); + regional(tmp,tmp1,tmp2); + tmp1=select(HLIST,indexof(#,str1)>0); + tmp1=select(tmp1,indexof(#,str2)>0); + forall(tmp1, + tmp=substring(#,0,indexof(#,"*")-1); + Help(tmp); + ); +); + +Slidework():=Slidework(Dirwork); // 16.06.10 +Slidework(dirorg):=( +//help:Slidework(directory); + regional(dir,tmp,sep); // 16.06.25 + dir=replace(dirorg,unicode("000a"),""); // 16.06.25 + sep="/"; //17.04.16from + if(iswindows(), + dir=replace(dir,"/","\"); + sep="\"; + ); //17.04.16upto + if(isexists(dir,""), // 16.12.20 + Changework(dir); + if(!isexists(Dirwork,"fig"), // 16.12.18 + cmdL=["createdir",[Dq+dir+sep+"fig"+Dq]];//16.12.27,17.04.16 + CalcbyS("crdr",cmdL,["m"]); + println(dir+sep+"fig generated"); //17.04.16 + ); + tmp=dir+sep+"fig"; //17.04.16from + Changework(tmp);// 17.02.19upto + , + println(dir+ " not exists"); + ); +); + +Setslidepage():=( // 17.03.05 + regional(tmp1,tmp2,tmp3); + tmp1=["letterc","boxc","framec","shadowc","xpos","size"]; + tmp2=apply([1,2,4,5,7,8],SlideColorList_#); + tmp3=apply(1..(length(tmp1)),tmp1_#+"="+tmp2_#); + println(tmp3); +); +Setslidepage(list):=( // 16.12.22 +//help:Setslidepage([letterc,boxc,framec,shadowc,xpos,size]); + regional(numlist,tmp,tmp1,letterc,boxc,shadowc,mboxc); + letterc=[0.98,0.13,0,0.43]; boxc=[0,0.32,0.52,0]; + shadowc=[0,0,0,0.5]; mboxc="yellow"; + if(!islist(SlideColorList), + SlideColorList=[letterc,boxc,boxc,boxc,shadowc,shadowc,6,1.3, + letterc,mboxc,mboxc,mboxc,62,2,letterc]; + ); + numlist=[1,2,4,5,7,8]; + forall(1..(length(list)), + if(length(list_#)>0, + tmp=numlist_#; + SlideColorList_tmp=list_#; + ); + ); + SlideColorList_3=SlideColorList_2; + SlideColorList_6=SlideColorList_5; +); + +Setslidemain():=( // 17.03.05 + regional(tmp1,tmp2,tmp3); + tmp1=["letterc","boxc","framec","xpos","size"]; + tmp2=apply([9,10,12,13,14],SlideColorList_#); + tmp3=apply(1..(length(tmp1)),tmp1_#+"="+tmp2_#); + println(tmp3); +); +Setslidemain(list):=( // 16.12.22 +//help:Setslidemain([letterc,boxc,framec,xpos,size]); + regional(numlist,tmp,tmp1,letterc,boxc,shadowc,mboxc); + letterc=[0.98,0.13,0,0.43]; boxc=[0,0.32,0.52,0]; + shadowc=[0,0,0,0.5]; mboxc="yellow"; + if(!islist(SlideColorList), + SlideColorList=[letterc,boxc,boxc,boxc,shadowc,shadowc,6,1.3, + letterc,mboxc,mboxc,mboxc,62,2,letterc]; + ); + numlist=[9,10,12,13,14]; + forall(1..(length(list)), + if(length(list_#)>0, //17.01.04 + tmp=numlist_#; + SlideColorList_tmp=list_#; + ); + ); + SlideColorList_11=SlideColorList_10; +); + +Setslidebody():=( // 17.03.05 + regional(tmp1,tmp2,tmp3); + tmp1=["letterc","style","thindense"]; + tmp2=[SlideColorList_(15),BodyStyle,ThinDense]; + tmp3=apply(1..(length(tmp1)),tmp1_#+"="+tmp2_#); + println(tmp3); +); +Setslidebody(str):=( + regional(clr,style,thin); + if(isstring(str), + Setslidebody(str,"\Large\bf\boldmath",0.1); + , + if(length(str)==1,Setslidebody(str_1)); + if(length(str)==2,Setslidebody(str_1,str_2)); + if(length(str)==3,Setslidebody(str_1,str_2,str_3)); + ); +); +Setslidebody(str,Arg):=( //17.01.08 + if(isstring(Arg), + Setslidebody(str,Arg,0.1); + , + Setslidebody(str,"\Large\bf\boldmath",Arg); + ); +); +Setslidebody(str,style,density):=( // 16.12.22,17.01.06,01.08 +//help:Setslidebody(["black",,0]); +//help:Setslidebody(["blue","\Large\bf\boldmath",0.1]); + regional(numlist,tmp,tmp1,letterc,boxc,shadowc,mboxc); + letterc=[0.98,0.13,0,0.43]; boxc=[0,0.32,0.52,0]; + shadowc=[0,0,0,0.5]; mboxc="yellow"; + if(!islist(SlideColorList), + SlideColorList=[letterc,boxc,boxc,boxc,shadowc,shadowc,6,1.3, + letterc,mboxc,mboxc,mboxc,62,2,letterc]; + ); + if(length(str)>0,SlideColorList_(15)=str); + if(length(style)>0,BodyStyle=style); + ThinDense=density;//17.01.08 +); + +Setslidehyper():=Setslidehyper(["cl=true,lc=blue,fc=blue",125,70,1]); +// 16.12.31from +Setslidehyper(Arg):=( + if(isstring(Arg), + if(length(Arg)==0, //17.01.29from + Setslidehyper(); + , + Setslidehyper(Arg,[]); + );//17.01.29upto + , + Setslidehyper("dvipdfmx",Arg); + ); +); +Setslidehyper(driver,options):=( +//help:Setslidehyper(); +//help:Setslidehyper("dvipdfmx",["cl=true,lc=blue,fc=blue",125,70,1]); + regional(reL,stL,tmp,tmp1,tmp2,str,reL); + str=""; + reL=[]; + forall(options, + if(isstring(#), + str=# + , + reL=append(reL,#); + ); + ); + if(length(str)>0,str=","+str); + tmp1=""; + if(length(driver+str)>0, + tmp1="["+driver+str+"]"; + ); + tmp1=replace(tmp1,"cl=","colorlinks="); + tmp1=replace(tmp1,"lc=","linkcolor="); + tmp1=replace(tmp1,"fc=","filecolor="); + tmp1=replace(tmp1,"uc=","urlcolor="); + Addpackage(tmp1+"{hyperref}"); + LinkPosH=125; + LinkPosV=70; + LinkSize=1; + if(length(reL)>0,LinkPosH=reL_1); + if(length(reL)>1,LinkPosV=reL_2); + if(length(reL)>2,LinkSize=max(reL_3,0.1)); // 17.07.31 +); + +Settitle(cmdL):=Settitle("slide0",cmdL,[]); +Settitle(Arg1,Arg2):=( + if(isstring(Arg1), + Settitle(Arg1,Arg2,[]); + , + Settitle("slide0",Arg1,Arg2); + ); +); +Settitle(name,cmdL,options):=( +//help:Settitle(cmdL); +//help:Settitle(name,cmdL); +//help:Settitle(options=["Layery=0","Color=blue"]); + regional(tmp,tmp1,tmp2,eqL,layery,color,size,font); + TitleName=name; + layery="0"; + color="blue"; + size="\Large"; + font="\bf"; + tmp=Divoptions(options); + eqL=tmp_5; + forall(eqL, + tmp1=Toupper(substring(#,0,1)); + tmp=indexof(#,"="); + tmp2=substring(#,tmp,length(#)); + if(tmp1=="L", + layery=tmp2; + ); + if(tmp1=="C", + color=tmp2; + ); + if(tmp1=="S", + size=tmp2; + if(substring(size,0,1)!="\",size="\"+size); + ); + if(tmp1=="F", + font=tmp2; + if(substring(font,0,1)!="\",font="\"+font); + ); + ); + TitleCmdL=["{"+size+font]; + if(indexof(color,"[")>0, + tmp=replace(color,"[","{"); + tmp=replace(tmp,"]","}"); + tmp1=Indexall(tmp,","); + if(length(tmp1)>=3, + tmp="\color[cmyk]"+tmp; + , + tmp="\color[rgb]"+tmp; + ); + , + tmp="\color{"+color+"}"; + ); + TitleCmdL=append(TitleCmdL,tmp); + TitleCmdL=concat(TitleCmdL,["","\begin{layer}{120}{"+layery+"}"]); + forall(1..(length(cmdL)), + tmp=cmdL_#; + if(length(tmp)>0, + if(#==1, + tmp="{\Huge \putnote"+tmp+"}" + , + tmp="\putnote"+tmp; + ); + TitleCmdL=append(TitleCmdL,tmp); + ); + ); + TitleCmdL=concat(TitleCmdL,["\end{layer}","","}"]); +); + +Maketitle():=( + if(!isstring(TitleName), //17.04.13from + drawtext(mouse().xy,"Settitle not defined", + size->24,color->[1,0,0]); + , //17.04.13upto + Maketitle(TitleName); + ); +); +Maketitle(name):=( +//help:Maketitle(); + regional(texfile,texmain,tmp,tmp1,sep); + texfile=name; + texmain=name+"main"; + SCEOUTPUT=openfile(texfile+".tex"); + forall(TitleCmdL, + println(SCEOUTPUT,#); + ); + closefile(SCEOUTPUT); + SCEOUTPUT=openfile(texmain+".tex"); + tmp="\documentclass[landscape,10pt]{article}"; + if(indexof(PathT,"platex")>0, + tmp=replace(tmp,"article","jarticle"); + if(indexof(PathT,"uplatex")>0, //17.08.13from + tmp=replace(tmp,"jarticle","ujarticle"); + );//17.08.13upto + ); + println(SCEOUTPUT,tmp); + tmp="\special{papersize=\the\paperwidth,\the\paperheight}"; + println(SCEOUTPUT,tmp); +// if(iswindows(),sep="\",sep="/"); // 17.04.08from +// sep="/"; + //println(SCEOUTPUT,"\usepackage{ketpic,ketlayer,ketslide}"); + tmp=replace(Dirhead+"/ketpicstyle","\","/"); + println(SCEOUTPUT,"\usepackage{"+tmp+"/ketpic}"); + println(SCEOUTPUT,"\usepackage{"+tmp+"/ketlayer}"); + println(SCEOUTPUT,"\usepackage{"+tmp+"/ketslide}"); + println(SCEOUTPUT,"\usepackage{amsmath,amssymb}"); + println(SCEOUTPUT,"\usepackage{bm,enumerate}"); + if((indexof(PathT,"pdflatex")>0)%(indexof(PathT,"lualatex")>0), + println(SCEOUTPUT,"\usepackage{graphicx}"); + , + println(SCEOUTPUT,"\usepackage[dvipdfmx]{graphicx}"); + ); + println(SCEOUTPUT,"\usepackage[usenames]{xcolor}"); + forall(ADDPACK, +// if(indexof(#,"[")==0, +// println(SCEOUTPUT,"\usepackage{"+#+"}"); +// , + println(SCEOUTPUT,"\usepackage"+#); // 17.07.10 +// ); + ); + if(indexof(PathT,"platex")>0,tmp="\ketmarginJ",tmp="\ketmarginE"); + println(SCEOUTPUT,tmp); + println(SCEOUTPUT,"\ketslideinit"); + println(SCEOUTPUT,""); + println(SCEOUTPUT,"\begin{document}"); + println(SCEOUTPUT,""); + println(SCEOUTPUT,"\input{"+texfile+".tex}"); + println(SCEOUTPUT,""); + println(SCEOUTPUT,"\end{document}"); + closefile(SCEOUTPUT); + if(iswindows(), + Makebat(texmain,"tv"); + , + Makeshell(texmain,"tv"); + ); + kc(); +); + +Repeatsameslide(repeatflg,sestr,addedL):=( + regional(seL,flg1,ss,nn,nrep,tmp,tmp1,tmp2,tmp3,str,j,k); + // global RepeatList, SCEOUTPUT + nrep=length(RepeatList); + flg1=0; + forall(addedL,ss, + if(repeatflg==0, + if(substring(ss,0,1)!="%", //16.01.04 + println(SCEOUTPUT,ss); + );//16.01.04 + , + forall(1..nrep,nn, + if(sestr=="", + RepeatList_nn=append(RepeatList_nn,ss); + ); + ); + if(sestr=="", + seL=[1]; + , + tmp1=substring(sestr,1,length(sestr)-1); + tmp1=replace(tmp1,",-",".."+text(nrep)); + tmp1=replace(tmp1,"-,","1.."); + tmp1="["+tmp1+"]"; //17.01.03 + seL=flatten(parse(tmp1)); //17.01.03 + ); + if(contains(seL,1), + if(substring(ss,0,1)!="%", //16.01.04 + println(SCEOUTPUT,ss); + ); + seL=remove(seL,[1]); + flg1=1; + ); + forall(1..(length(seL)),nn, + tmp=seL_nn; + if(tmp<=length(RepeatList), //17.01.12from + RepeatList_tmp=append( RepeatList_tmp,ss); + , + println(" "+sestr+" : "+text(tmp)+" > "+text(length(RepeatList))); + ); + ); + if(ThinFlg==1,//16.01.05from + if(flg1==1,seL=append(seL,1)); + seL=remove(1..nrep,seL); + str=ss; // 17.05.28from + repeat(10, + tmp1=Indexall(str,"{\color"); + if(length(tmp1)>0, + tmp2=Indexall(str,"}"); + tmp=select(tmp2,tmp1_1<#); + tmp=substring(str,tmp1_1,tmp_1); + str=replace(str,tmp+" ",""); + str=replace(str,tmp,""); + ); + );//17.05.28upto + if(contains(seL,1), + if(substring(str,0,1)!="%", + if(NonThinFlg==0, + if(!contains(["\begi","\end{"],substring(str,0,5)),//17.01.15 + println(SCEOUTPUT,"{\color[cmyk]{\thin,\thin,\thin,\thin}");//17.08.23 + println(SCEOUTPUT,str); + println(SCEOUTPUT,"}%"); + , + println(SCEOUTPUT,str); + ); + ); + if(NonThinFlg==1, + if(!contains(["\begi","\end{"],substring(str,0,5)),//17.01.15 + println(SCEOUTPUT,"{\color[cmyk]{\thin,\thin,\thin,\thin}");//17.08.23 + ); + println(SCEOUTPUT,str); + ); + if(NonThinFlg==2, + println(SCEOUTPUT,str); + if(!contains(["\begi","\end{"],substring(str,0,5)),//17.01.15 + println(SCEOUTPUT,"}%"); + ); + ); + seL=remove(seL,[1]); + ); + ); + if(substring(ss,0,1)!="%", //16.01.04 + forall(1..(length(seL)),nn, + tmp=seL_nn; + if(NonThinFlg==0, + tmp1="{\color[cmyk]{\thin,\thin,\thin,\thin}";//17.08.23 + tmp1=[tmp1,str,"}%"]; + ); + if(NonThinFlg==1, + tmp1="{\color[cmyk]{\thin,\thin,\thin,\thin}";//17.08.23 + tmp1=[tmp1,str];//17.01.08upto + ); + if(NonThinFlg==2, + tmp1=[str,"}%"]; + ); + RepeatList_tmp=concat( RepeatList_tmp,tmp1); + ); + ); + );//16.01.05upto + ); + );//16.12.05upto +); + +Presentation(texfile):=Presentation(texfile,texfile); +Presentation(texfile,txtfile):=( +//help:Presentation(texfile,txtfile); + regional(file,flgL,flg,verbflg,slideL,ns,slideorgL,wall,sld,slidecmd,tmp,tmp0,tmp1, + tmp2,tmp3,tmp4,tmp5,newoption,top,repeatflg,nrep,nrepprev,,repstr, + sestr,npara,paradt,parafiles,hyperflg,paractr, + letterc,boxc,shadowc,mboxc,sep); + slidecmd=["\ketcletter","\ketcbox","\ketdbox","\ketcframe", + "\ketcshadow","\ketdshadow","\slidetitlex","\slidetitlesize", + "\mketcletter","\mketcbox","\mketdbox","\mketcframe", + "\mslidetitlex","\mslidetitlesize"]; + if(!isstring(BodyStyle),//17.01.06 + BodyStyle="\Large\bf\boldmath"; + ); + repeatflg=0; + RepeatList=[]; + paractr=0; //16.12.31 + if(indexof(texfile,".")==0,file=texfile+".tex",file=texfile); + if(indexof(txtfile,".")==0,tmp1=txtfile+".txt",tmp1=txtfile); + tmp=load(tmp1); + tmp=replace(tmp,"////","||||");// 16.05.11, 06.24(reactivated) + slideL=tokenize(tmp,"//"); + slideorgL=slideL; // 16.07.11 + slideL=apply(slideL,Removespace(#)); + tmp=select(1..length(slideL),length(slideL_#)>0); // 16.07.11from + slideL=apply(tmp,slideL_#); + slideorgL=apply(tmp,slideorgL_#); +// slideL=select(slideL,length(#)>0); // 16.07.11upto + flg=0; // 16.06.09from + forall(1..10, + if(flg==0, + if(substring(slideL_1,0,1)!="%", + flg=1; + , + slideL=slideL_(2..length(slideL)); + slideorgL=slideorgL_(2..length(slideorgL)); + ); + ); + ); // 16.06.09upto + flgL=[]; + SCEOUTPUT = openfile(file); + tmp=tokenize(slideL_1,"::"); + tmp1=tmp_1; + if(length(tmp)>1, + tmp2=tmp_2; + tmp3=tmp_(3..length(tmp));//16.06.25 + , + tmp2=""; + tmp3=tmp_(2..length(tmp));//16.06.25 + ); + wall=""; // 16.06.10 + if(length(tmp3)>0,//16.06.25from + if(substring(tmp3_1,0,1)!="\" & indexof(tmp3_1,"=")==0, + wall=tmp3_1; + tmp3=tmp3_(2..length(tmp3)); + ); + );//16.06.25upto + tmp="%%% "+tmp1+" "+txtfile;// 16.06.09from + println(SCEOUTPUT,tmp); + tmp="\documentclass[landscape,10pt]{article}"; + if(indexof(PathT,"platex")>0, + tmp=replace(tmp,"article","jarticle"); + if(indexof(PathT,"uplatex")>0, //17.08.13from + tmp=replace(tmp,"jarticle","ujarticle"); + );//17.08.13upto + ); + println(SCEOUTPUT,tmp);// 16.06.09from + tmp=select(1..(length(tmp3)),indexof(tmp3_#,"\usepackage")>0);//17.06.18from + forall(tmp, + println(SCEOUTPUT,tmp3_#); + ); + tmp=remove(1..(length(tmp3)),tmp); + tmp3=tmp3_tmp;//17.06.18upto +// if(iswindows(),sep="\",sep="/"); // 17.04.08 +// sep="/"; + if((indexof(PathT,"pdflatex")>0)%(indexof(PathT,"lualatex")>0), + if(indexof(PathT,"lualatex")>0, + println(SCEOUTPUT,"\usepackage{luatexja}"); + ); + println(SCEOUTPUT,"\usepackage{pict2e}"); +// println(SCEOUTPUT,"\usepackage{ketpic2e,ketlayer2e}");// 17.04.08from + tmp=replace(Dirhead+"/ketpicstyle","\","/"); + println(SCEOUTPUT,"\usepackage{"+tmp+"/ketpic2e}"); + println(SCEOUTPUT,"\usepackage{"+tmp+"/ketlayer2e}"); + , + println(SCEOUTPUT,"\special{papersize=\the\paperwidth,\the\paperheight}"); + //println(SCEOUTPUT,"\usepackage{ketpic,ketlayer}"); + tmp=replace(Dirhead+"/ketpicstyle","\","/"); + println(SCEOUTPUT,"\usepackage{"+tmp+"/ketpic}"); + println(SCEOUTPUT,"\usepackage{"+tmp+"/ketlayer}"); + );// 17.04.08upto + if(length(wall)==0, + //println(SCEOUTPUT,"\usepackage{ketslide}");//17.04.08from + tmp=replace(Dirhead+"/ketpicstyle","\","/");//17.04.16 + println(SCEOUTPUT,"\usepackage{"+tmp+"/ketslide}"); + , + tmp=replace(Dirhead+"/ketpicstyle","\","/");//17.04.16 + //println(SCEOUTPUT,"\usepackage{ketslide2}"); + println(SCEOUTPUT,"\usepackage{"+tmp+"/ketslide2}"); + );//17.04.08upto + println(SCEOUTPUT,"\usepackage{amsmath,amssymb}"); + println(SCEOUTPUT,"\usepackage{bm,enumerate}"); + if((indexof(PathT,"pdflatex")>0)%(indexof(PathT,"lualatex")>0), + println(SCEOUTPUT,"\usepackage{graphicx}"); + , + println(SCEOUTPUT,"\usepackage[dvipdfmx]{graphicx}"); + ); +// println(SCEOUTPUT,"\usepackage[usenames]{color}"); +// println(SCEOUTPUT,"\usepackage{color}");//17.06.14 + println(SCEOUTPUT,"\usepackage{xcolor}");//17.07.31 + letterc=[0.98,0.13,0,0.43]; boxc=[0,0.32,0.52,0]; + shadowc=[0,0,0,0.5]; mboxc="yellow"; +// if(!islist(SlideColorList), //17.03.02from +// SlideColorList=[letterc,boxc,boxc,boxc,shadowc,shadowc,6,1.3, +// letterc,mboxc,mboxc,mboxc,62,2,letterc]; +// , //17.03.02upto + tmp4="abcdefghijklmno"; + forall(1..15, + tmp=SlideColorList_#; + if(islist(tmp), + tmp=text(tmp); + tmp=substring(tmp,1,length(tmp)-1); + if(length(SlideColorList_#)==4,//17.01.07from + println(SCEOUTPUT,"\definecolor{slidecolor"+tmp4_#+"}{cmyk}{"+tmp+"}"); + ); + if(length(SlideColorList_#)==3, + println(SCEOUTPUT,"\definecolor{slidecolor"+tmp4_#+"}{rgb}{"+tmp+"}"); + );//17.01.07upto + SlideColorList_#="slidecolor"+tmp4_#; + ); + ); +// ); //17.03.02 + println(SCEOUTPUT,"\def\setthin#1{\def\thin{#1}}");//17.08.23 + println(SCEOUTPUT,"\setthin{"+text(ThinDense)+"}");//17.08.23 + forall(ADDPACK,// 16.06.09from +// if(indexof(#,"[")==0, // 16.09.05from +// println(SCEOUTPUT,"\usepackage{"+#+"}"); +// , + println(SCEOUTPUT,"\usepackage"+#); //17.07.10 +// ); + );// 16.06.09upto + tmp=select(ADDPACK,indexof(#,"{hyperref}")>0);//16.12.31from + if(length(tmp)>0, + hyperflg=1; + , + hyperflg=0; //16.12.31upto + ); + forall(tmp3, + println(SCEOUTPUT,#); + ); + if(indexof(PathT,"platex")>0,tmp="\ketmarginJ",tmp="\ketmarginE"); // 16.06.09 + println(SCEOUTPUT,tmp); + println(SCEOUTPUT,"\ketslideinit"); + println(SCEOUTPUT,""); + forall(tmp, // 15.07.21 + if(substring(#,0,1)=="\", println(SCEOUTPUT,#)); + ); + if(!isstring(PageStyle),PageStyle="headings");//17.04.09 + println(SCEOUTPUT,"\pagestyle{"+PageStyle+"}");//17.04.09 + println(SCEOUTPUT,""); + println(SCEOUTPUT,"\begin{document}"); + println(SCEOUTPUT,""); + if(length(wall)>0, + println(SCEOUTPUT,"\input{fig/"+wall+".tex}"); + println(SCEOUTPUT,""); + ); + if(length(tmp2)>0, + if(indexof(tmp2," no")==0, // 16.11.11from + println(SCEOUTPUT,"\begin{layer}{120}{0}"); + if(substring(tmp2,0,1)!="\", + tmp2="\putnotese{0}{0}{\input{fig/"+tmp2+".tex}}";//16.12.27 + ); + println(SCEOUTPUT,tmp2); + println(SCEOUTPUT,"\end{layer}"); + println(SCEOUTPUT,""); + , + tmp=indexof(tmp2,"="); + if(tmp==0, + top="10mm"; + , + top=substring(tmp2,tmp,length(tmp2)); + ); + println(SCEOUTPUT,""); + println(SCEOUTPUT,"\vspace*{"+top+"}"); + println(SCEOUTPUT,""); + ); // 16.11.11upto + ); + println(SCEOUTPUT,"\def\mainslidetitley{22}"); + forall(1..14, //16.12.22from + tmp=SlideColorList_#; + if(!isstring(tmp),tmp=text(tmp)); + if(length(tmp)>0, + tmp="\def"+slidecmd_#+"{"+tmp+"}"; + println(SCEOUTPUT,tmp); + ); + );//16.12.22upto + println(SCEOUTPUT,""); + println(SCEOUTPUT,"\color{"+SlideColorList_(15)+"}"); + println(SCEOUTPUT,BodyStyle);//17.01.07 + println(SCEOUTPUT,"\thispagestyle{empty}");//17.01.29 + println(SCEOUTPUT,"\addtocounter{page}{-1}");//17.01.29 + println(SCEOUTPUT,""); + verbflg=0; //16.06.28 + repeatflg=0;//16.12.02 + nrep=0;//16.12.27 + nrepprev=0;//17.01.03 + npara=0;//16.12.27 + forall(2..length(slideL),ns, + ThinFlg=0; + NonThinFlg=0; + flg=0; + tmp1=""; + tmp2=""; + tmp3=""; + sld=removespace(slideL_ns); // 16.06.28 + sestr=""; + if((substring(sld,0,1)=="%") & (substring(sld,0,2)!="%%"), // 17.06.23 + Repeatsameslide(repeatflg,"",[slideL_ns]); + if(repeatflg>0, + tmp=indexof(sld,"]::"); + if(tmp>0, + if(substring(sld,1,2)!="%",//17.05.31 + if(substring(sld,1,5)=="thin", ThinFlg=1); // 17.05.28 + sestr=substring(sld,1,tmp); + sld=substring(sld,tmp+2,length(sld)); + tmp=indexof(sestr,"["); + sestr=substring(sestr,tmp-1,length(sestr));//17.01.05 + ); + ); + ); + if(substring(sld,1,7)=="repeat", // 16.12.09from + tmp=indexof(sld,"="); + tmp5=substring(sld,tmp,length(sld)); + tmp=indexof(tmp5,","); + if(tmp>0,//17.01.03from + tmp5=substring(tmp5,0,tmp-1); + );//17.01.03upto + repeatflg=1; + if(length(tmp5)>0, + nrep=parse(tmp5); + tmp=[]; + if(length(wall)>0, + tmp=["","\input{fig/"+wall+".tex}"]; + ); + tmp=concat(tmp,["","\sameslide"+NewSlideOption,"","\vspace*{18mm}",""]); + RepeatList=apply(1..nrep,if(#==1,[],tmp)); + ); + if(sestr=="",flg=1); + tmp=indexof(sld,",");//17.01.03from + if(tmp>0, + sld="%"+substring(sld,tmp,length(sld)); + if(indexof(sld,"=")==0,sld=sld+"="); + );//17.01.03upto + ); + if(substring(sld,1,5)=="para", + paractr=paractr+1; + repeatflg=1; + tmp=indexof(sld,"="); + tmp=substring(sld,tmp,length(sld)); + if(length(tmp)==0, //17.01.03 + npara=0; + , + paradt=tokenize(tmp,":"); + tmp=fileslist(Dirwork+"/fig/"+paradt_1); + if(length(tmp)>0, + parafiles=tokenize(tmp,","); + if(indexof(paradt_4,"input")>0, + tmp0=indexof(paradt_4,",");//17.01.29from + if(tmp0>0, + paradt=append(paradt,substring(paradt_4,tmp0,length(paradt_4))); + paradt_4=substring(paradt_4,0,tmp0-1); + );//17.01.29upto + parafiles=select(parafiles,indexof(#,".tex")>0); + if(indexof(paradt_4,"\input")==0,paradt_4="\"+paradt_4);//16.12.17 + ); + if(indexof(paradt_4,"include")>0, + parafiles=select(parafiles,indexof(#,".pdf")>0); + ); + npara=length(parafiles); + , + println(Dirwork+"/fig/"+paradt_1+" not found"); + parafiles=[]; + npara=0; + ); + if(nrep==0, + nrep=npara; + if(length(wall)>0, + tmp=["","\input{fig/"+wall+".tex}"]; + ); + tmp=concat(tmp,["","\sameslide"+NewSlideOption,"","\vspace*{18mm}",""]); + RepeatList=apply(1..nrep,if(#==1,[],tmp)); + ); + ); + forall(1..nrep, //16.12.28 + tmp4=[]; //16.12.31from + if(hyperflg>0, + tmp4=["\hypertarget{para"+text(paractr)+"pg"+text(#)+"}{}"]; + );//16.12.31upto + if(npara>0, //17.01.03 + tmp4=concat(tmp4,["","\begin{layer}{120}"+paradt_2]); + if(#<=npara, //16.12.28from + tmp=parafiles_#; + , + tmp=parafiles_npara; + ); + tmp="{"+paradt_4+"{fig/"+paradt_1+"/"+tmp+"}}"; + if(length(paradt)>=5, + tmp="{\scalebox{"+text(paradt_5)+"}"+tmp+"}"; + ); + if(substring(paradt_3,0,1)=="\", + tmp=paradt_3+tmp; + , + tmp="\putnote"+paradt_3+tmp; + ); + tmp4=concat(tmp4,[tmp]);//16.12.31 + , + tmp4=concat(tmp4,["","\begin{layer}{120}{0}"]); + ); + if((hyperflg>0) & (LinkSize>0.15), + tmp="{"+text(LinkPosV)+"}{\hyperlink{para"; // 17.01.12from + tmp1=tmp+text(paractr)+"pg"; + tmp2=tmp+text(paractr-1)+"pg"+text(nrepprev); + if(#>1,tmp=tmp1+text(1),tmp=tmp2); + tmp3=[text(LinkPosH-29*LinkSize)+"}"+tmp+"}{\fbox{\Ctab{" + +text(2.5*LinkSize)+"mm}{\scalebox{"+text(LinkSize) + +"}{\scriptsize $\mathstrut|\!\lhd$}}}}}"]; + if(#>1,tmp=tmp1+text(max(#-3,1)),tmp=tmp2); + tmp3=append(tmp3, + text(LinkPosH-24*LinkSize)+"}"+tmp+"}{\fbox{\Ctab{" + +text(2.5*LinkSize)+"mm}{\scalebox{"+text(LinkSize) + +"}{\scriptsize $\mathstrut\!\! \lhd\!\!\lhd\!$}}}}}"); + if(#>1,tmp=tmp1+text(#-1),tmp=tmp2); + tmp3=append(tmp3, + text(LinkPosH-17*LinkSize)+"}"+tmp+"}{\fbox{\Ctab{" + +text(4.5*LinkSize)+"mm}{\scalebox{"+text(LinkSize) + +"}{\scriptsize $\mathstrut\!\!\lhd\!\!$}}}}}"); + tmp="{"+text(LinkPosV)+"}{\hyperlink{para"; + tmp2=tmp+text(paractr+1)+"pg"+text(1); + if(#<nrep,tmp=tmp1+text(#+1),tmp=tmp2); + tmp3=append(tmp3, + text(LinkPosH-10*LinkSize)+"}"+tmp+"}{\fbox{\Ctab{" + +text(4.5*LinkSize)+"mm}{\scalebox{"+text(LinkSize) + +"}{\scriptsize $\mathstrut\!\rhd\!$}}}}}"); + if(#<nrep,tmp=tmp1+text(min(#+3,nrep)),tmp=tmp2); + tmp3=append(tmp3, + text(LinkPosH-5*LinkSize)+"}"+tmp+"}{\fbox{\Ctab{" + +text(2.5*LinkSize)+"mm}{\scalebox{"+text(LinkSize) + +"}{\scriptsize $\mathstrut\!\!\rhd\!\!\rhd\!$}}}}}"); + if(#<nrep,tmp=tmp1+text(nrep),tmp=tmp2); + tmp3=append(tmp3, + text(LinkPosH)+"}"+tmp+"}{\fbox{\Ctab{" // 17.01.19 + +text(2.5*LinkSize)+"mm}{\scalebox{"+text(LinkSize) + +"}{\scriptsize $\mathstrut \!\rhd\!\!|$}}}}}"); + tmp3=apply(tmp3,tmp,"\putnotew{"+tmp); + tmp4=concat(tmp4,tmp3);// 17.01.12uptor + tmp="\putnotew{"+text(LinkPosH)+"}{"+text(LinkPosV+6)+"}";//17.10.21from + tmp=tmp+"{\scriptsize\color{black} "+text(#)+"/"+text(nrep)+"}"; + tmp4=append(tmp4,tmp);//17.10.21upto + ); + tmp4=concat(tmp4,["\end{layer}",""]);//16.12.31upto + Repeatsameslide(repeatflg,text([#]),tmp4); + ); + ); + ); + if(substring(sld,0,2)=="%%", //17.06.23from + println(SCEOUTPUT,sld); + flg=1; + ); //17.06.23upto + if(flg==0, + if(indexof(sld,"\begin{verbatim}")==1, // 16.06.28from + Repeatsameslide(repeatflg,sestr,[slideL_ns]); + verbflg=1; + flg=1; + ); // 16.06.28 + if(indexof(sld,"\end{verbatim}")==1, + Repeatsameslide(repeatflg,sestr,[slideL_ns]); + verbflg=0; + flg=1; + ); // 16.06.28upto + if(flg==0, + tmp=replace(sld,"||||","//"); // 16.05.11 + tmp=tokenize(tmp,"::"); // 16.05.11 + tmp1=tmp_1; + if(length(tmp)>1,tmp2=tmp_2,tmp2=""); + if(length(tmp)>2,tmp3=tmp_3,tmp3=""); + if(length(tmp)>3,tmp4=tmp_4,tmp4=""); + if(length(tmp)>4,tmp5=tmp_5,tmp5=""); + if(contains(["main","new","same"],tmp1), + if(tmp1=="new", // 16.11.09from + newoption=""; + if(substring(tmp2,0,1)=="[",newoption=tmp2); + ); + if(tmp1=="same", + if(length(tmp2)==0,tmp2=newoption); + );// 16.11.09upto + println(SCEOUTPUT,""); + println(SCEOUTPUT,"%%%%%%%%%%%%%%%%%%%%"); + println(SCEOUTPUT,""); + ); + ); + if(flg==0&tmp1=="main", + if(repeatflg==1, + forall(2..(length(RepeatList)),nrep, + tmp=RepeatList_nrep; + forall(tmp, + if(substring(#,0,1)!="%", //16.01.04 + println(SCEOUTPUT,#); + ); + ); + ); + println(SCEOUTPUT,""); + repeatflg=0;RepeatList=[]; + nrepprev=nrep;//17.01.03 + nrep=0;//16.12.27 + npara=0;//16.12.27 + ); + if(length(wall)>0, + println(SCEOUTPUT,"\input{fig/"+wall+".tex}"); + ); + println(SCEOUTPUT,"\mainslide{"+tmp2+"}"); + println(SCEOUTPUT,""); + tmp2=""; + flg=1; + ); + if(flg==0&tmp1=="new", + if(repeatflg==1, + forall(2..(length(RepeatList)),nrep, + tmp=RepeatList_nrep; + forall(tmp, + if(substring(#,0,1)!="%", //16.01.04 + println(SCEOUTPUT,#); + ); + ); + ); + println(SCEOUTPUT,""); + repeatflg=0;RepeatList=[]; + nrepprev=nrep;//17.01.03 + nrep=0; + npara=0; + ); + if(length(wall)>0, + Repeatsameslide(repeatflg,sestr,["\input{fig/"+wall+".tex}"]); + ); + tmp="\newslide"; + NewSlideOption=""; //17.01.04 + if(substring(tmp2,0,1)=="[", + NewSlideOption=tmp2; //17.01.04 + tmp=tmp+tmp2; + tmp2=tmp3; + tmp3=tmp4; + tmp4=tmp5; + ); + tmp=tmp+"{"+tmp2+"}"; + Repeatsameslide(repeatflg,sestr,[tmp,"","\vspace*{18mm}",""]); + tmp2=""; + flg=1; + ); + if(flg==0&tmp1=="same", + if(repeatflg==1, + forall(2..(length(RepeatList)),nrep, + tmp=RepeatList_nrep; + forall(tmp, + if(substring(#,0,1)!="%", //16.01.04 + println(SCEOUTPUT,#); + ); + ); + ); + println(SCEOUTPUT,""); + repeatflg=0;RepeatList=[]; + nrepprev=nrep;//17.01.03 + nrep=0; + npara=0; + ); + if(length(wall)>0, + println(SCEOUTPUT,"\input{fig/"+wall+".tex}"); + ); + tmp="\sameslide"+NewSlideOption; //17.01.04; +// if(substring(tmp2,0,1)=="[", +// tmp=tmp+tmp2; +// tmp2=tmp3; +// tmp3=tmp4; +// ); + println(SCEOUTPUT,tmp); + println(SCEOUTPUT,""); + println(SCEOUTPUT,"\vspace*{18mm}"); + println(SCEOUTPUT,""); + tmp4=tmp3; + tmp3=tmp2; + tmp2=""; + flg=1; + ); + if(flg==0&tmp1=="itemize", + Repeatsameslide(repeatflg,sestr,["\begin{itemize}"]); + flgL=append(flgL,"i"); + tmp2=""; + tmp3=""; + flg=1; + ); + if(flg==0&tmp1=="enumerate", + Repeatsameslide(repeatflg,sestr,["\begin{enumerate}"+tmp2]); + flgL=append(flgL,"e"); + tmp2=""; + tmp3=""; + flg=1; + ); + if(flg==0&tmp1=="verbatim", //16.06.28from + Repeatsameslide(repeatflg,sestr,["\begin{verbatim}"]); + flgL=append(flgL,"v"); + tmp1=""; + tmp2=""; + tmp3=""; + verbflg=1; + flg=1; + ); //16.06.28upto + if(flg==0&tmp1=="layer", + Repeatsameslide(repeatflg,sestr,[""]); + tmp="\begin{layer}"; + if(length(tmp2)>0, + tmp=tmp+tmp2; + , + tmp=tmp+"{120}{0}"; + ); + Repeatsameslide(repeatflg,sestr,[tmp]); + flgL=append(flgL,"l"); + tmp2=""; + tmp3=""; + flg=1; + ); + if(flg==0&tmp1=="putnote", + tmp="\putnote"+tmp2+"{"; + if(indexof(tmp3,"include")==0, + tmp1=indexof(tmp3,","); + if(tmp1==0, + tmp=tmp+"\input{fig/"+tmp3+".tex}}"; + , + tmp2=substring(tmp3,tmp1,length(tmp3)); + tmp3=substring(tmp3,0,tmp1-1); + tmp=tmp+"\scalebox{"+tmp2+"}{\input{fig/"+tmp3+".tex}}}"; + ); + , + tmp2=indexof(tmp3,"["); + tmp3=substring(tmp3,tmp2-1,length(tmp3)); + tmp=tmp+"\includegraphics"+tmp3+"{fig/"+tmp4+"}}"; + ); + Repeatsameslide(repeatflg,sestr,[tmp]); + tmp2=""; + tmp3=""; + flg=1; + ); + if(flg==0&tmp1=="item", + NonThinFlg=1; + Repeatsameslide(repeatflg,sestr,["\item"]); + tmp3=""; + flg=1; + ); + if(flg==0&tmp1=="end", + tmp=flgL_(length(flgL)); + if(tmp=="i", + Repeatsameslide(repeatflg,sestr,["\end{itemize}"]); + ); + if(tmp=="e", + Repeatsameslide(repeatflg,sestr,["\end{enumerate}"]); + ); + if(tmp=="l", + Repeatsameslide(repeatflg,sestr,["\end{layer}",""]); + ); + if(tmp=="v", // 16.06.28from + Repeatsameslide(repeatflg,sestr,["\end{verbatim}",""]); + verbflg=0; + ); // 16.06.28upto + flgL=flgL_(1..(length(flgL)-1)); + tmp2=""; + tmp3=""; + flg=1; + ); + if(flg==0, // 16.06.28from + if(verbflg==0, + tmp2=tmp1; + , + tmp2=slideorgL_ns; // 16.07.11 + tmp2=replace(tmp2,"||","//"); // 16.07.10 + tmp3=""; + ); + ); // 16.06.28upto + if(length(tmp2)>0, + if(tmp2=="...", tmp2=""); + if(NonThinFlg==1,NonThinFlg=2); + Repeatsameslide(repeatflg,sestr,[tmp2]); + ); + if(length(tmp3)>0, + Repeatsameslide(repeatflg,sestr,["\begin{layer}{120}{0}"]); + if(substring(tmp3,0,1)=="{", + tmp=tmp3; + tmp3=tmp4; + , + tmp="{60}{0}"; + ); + tmp1=indexof(tmp3,","); + if(tmp1==0, + tmp3="\putnotes"+tmp+"{\input{fig/"+tmp3+".tex}}"; + , + tmp2=substring(tmp3,tmp1,length(tmp3)); + tmp3=substring(tmp3,0,tmp1-1); + tmp3="\putnotes"+tmp+"{\scalebox{"+tmp2+"} + {\input{fig/"+tmp3+".tex}}}"; + ); + Repeatsameslide(repeatflg,sestr,[tmp3,"\end{layer}",""]); + ); + ); + ); + if(repeatflg==1, + forall(2..(length(RepeatList)),nrep, + tmp=RepeatList_nrep; + forall(tmp, + if(substring(#,0,1)!="%", //16.01.04 + println(SCEOUTPUT,#); + ); + ); + ); + println(SCEOUTPUT,""); + ); + println(SCEOUTPUT,""); + println(SCEOUTPUT,"\end{document}"); + closefile(SCEOUTPUT); +); + +Mkslides():=( + regional(sep,parent,texparentorg,tmp,tmp1,tmp2,tmp3,tmp4,flg); + tmp4=Fhead; + Fhead=""; + if(length(Shellparent)>0, // 16.05.29 + sep="/"; + Dirwork=replace(Dirwork,"\",sep); + parent=replace(Dirwork+Shellparent,"\",sep);// 16.05.29 + , + sep="\"; + Dirwork=replace(Dirwork,"/",sep); + parent=replace(Dirwork+Batparent,"/",sep);// 16.05.29 + ); + Dirwork=replace(Dirwork,sep+"fig",""); + Setdirectory(Dirwork); + if(length(Texmain)>0, // 15.08.14 from + Texparent=Texmain; + ); + texparentorg=Texparent; //17.04.10from + if(isstring(Slidename), // 15.08.14 from + Texparent=Slidename; + );//17.04.10upto + if(!isexists(Dirwork,Texparent+".txt"), // 17.04.12from + drawtext(mouse().xy,Texparent+".txt not exist in "+Dirwork, + size->24,color->[1,0,0]); + , // 17.04.12upto + Presentation(Texparent); // 15.08.14 upto + if(iswindows(), + tmp1=Batchild; + tmp2=Batparent; + tmp3=Shellfile; + parent=replace(Dirwork+Batparent,sep+"fig","");// 16.05.29 + if((isstring(Sheslide)) & (length(Shellslide)>0), + Shellfile=Dirbin+sep+Shellslide+".bat"; // 15.12.08 + Batchild=Shellfile; + , + Shellfile=".bat"; + ); + Makebat(Texparent,"tv"); // 16.07.21 + kc():=( + println("kc : "+kc(parent,Dirlib,Fnametex)); // 16.06.10, 17.02.19 + ); + kc(); + Batchild=tmp1; + Batparent=tmp2; + Shellfile=tmp3; + , + tmp1=Shellchild; + tmp2=Shellparent; + tmp3=Shellfile; + parent=replace(Dirwork+Shellparent,sep+"fig","");// 16.05.29 + if((isstring(Shellslide)) & (length(Shellslide)>0), + Shellfile=Dirbin+sep+Shellslide+".sh"; // 15.12.08 + Shellchild=Shellfile; + , + Shellfile=".sh"; + ); + Shellparent=replace(Shellparent,sep+"fig",""); + Makeshell(Texparent,"tv"); // 16.07.21 + kc():=( + println("kc : "+kc(parent,Mackc+Dirlib,Fnametex)); // 16.06.10 + ); + kc(); + Shellchild=tmp1; + Shellparent=tmp2; + Shellfile=tmp3; + ); + ); + Dirwork=Dirwork+sep+"fig"; + setdirectory(Dirwork); + Fhead=tmp4; + Texparent=texparentorg;//17.04.10 +); + +Mkslidesummary():=( // 17.04.10revised + regional(texparentorg); + texparentorg=Texparent; + if(isstring(Slidename), + Texparent=Slidename; + ); + Mkslidesummary(Texparent,Texparent+"sum",["m","Wait=3"]); + Texparent=texparentorg;//17.04.10 +); +Mkslidesummary(fin,fout):= + Mkslidesummary(fin,fout,["m","Wait=3"]); +Mkslidesummary(inputfile,outputfile,options):=( +//help:Mkslidesummary(fin,fout,options); + regional(fin,fout,out,sep,figflg,dirworkorg,dirtop,tmp); + dirworkorg=Dirwork;//17.04.10from + if(iswindows(),sep="\",sep="/"); + dirtop=replace(Dirwork,sep+"fig",""); + Changework(dirtop);//17.04.10uptp + fin=inputfile; + if(indexof(fin,".")==0,fin=fin+".tex"); + fout=outputfile; + if(indexof(fout,".")==0,fout=fout+".tex"); + cmdL=[ + "Dt=mgetl('"+fin+"');",[], + "Tmp=find((strstr(Dt,'\hypertarget')=='') + &(strstr(Dt,'\hyperlink')==''))",[], + "Dt=Dt(Tmp)",[], + "Smain=strstr(Dt,'\mainslide')",[], + "Snew=strstr(Dt,'\newslide')",[], + "Ssame=strstr(Dt,'\sameslide')",[], + "Nnew=[]",[], + "Nsame=[]",[], + "for J=1:size(Dt,1), + if (length(Snew(J))>0)|(length(Smain(J))>0), + Nnew=[Nnew,J], + end; + if length(Ssame(J))>0, + Nsame=[Nsame,J], + end; + end",[], + "Out=Dt(1:Nnew(1))",[], + "for J=2:length(Nnew), + Tmp=find(Nsame<Nnew(J)); + Tmp=max(Tmp); + Tmp=max([Nsame(Tmp),Nnew(J-1)])+1; + Out=[Out;Dt(Tmp:Nnew(J))], + end",[], + "Tmp=max([Nsame($),Nnew($)])+1",[], + "Out=[Out;Dt(Tmp:size(Dt,1))]",[], + "mputl(Out,'"+fout+"');",[] + ]; + CalcbyS("out",cmdL,options); + wait(1000); + Changework(dirtop);//17.04.10 + tmp=replace(fout,".tex",""); + if(iswindows(), + Makebat(tmp,"tv"); + , + Makeshell(tmp,"tv"); + ); + kc(); + Changework(dirworkorg);//17.04.10 +); + +Example(exorg):=Example(exorg,""); +Example(exorg,suborg):=( +//help:Example("Mxfun","diff"); + regional(ex,tmp,tmp1,tmp2); + ex=replace(exorg,"'",Dq); + sub=replace(suborg,"'",Dq); + setdirectory(Dirlib); + tmp=load("examples.txt"); + setdirectory(Dirwork); + tmp=tokenize(tmp,"//"); + tmp=tmp_(1..(length(tmp)-1)); + tmp1=select(tmp,substring(#,0,length(ex))==ex); + tmp1=sort(tmp1); + if(length(sub)>0, + tmp1=select(tmp1,indexof(#,sub)>0); + ); + forall(tmp1, + if((indexof(#,"##")>0) % (indexof(#,"~#")>0), + tmp=indexof(#,","); + println(substring(#,tmp,length(#))); + , + println(#); + ); + ); +); + +BBdata():=Bbdata(BBTarget,0); +BBdata(fname):=Bbdata(fname,0); // 16.04.09 +BBdata(fname,optionorg):=( +//help:BBdata(filename); +//help:BBdata(options=0(automatic),1(make),"w=","h="); + regional(fout,flg,path,file,kcfile,options,eqL,reL,stL, + waiting,addop,tmp,tmp1,tmp2); + path=""; + file=fname; + flg=0; + waiting=2; + forall(reverse(1..length(fname)), + if(flg==0, + tmp=substring(fname,#-1,#); + if(tmp=="/" % tmp=="\", // 14.01.15 + path=substring(fname,0,#-1); + file=substring(fname,#,length(fname)); + flg=1; + ); + ); + ); + if(path=="",path=Dirwork);//16.10.05 + if(indexof(file,".")==0,file=file+".pdf"); + if(islist(optionorg),options=optionorg,options=[optionorg]); + tmp=divoptions(options); + eqL=tmp_5; + reL=tmp_6; + stL=tmp_7; + flg=0; + addop=""; + if(length(reL)>0, + tmp=reL_1; + if(tmp==1,flg=1); + ); + forall(stL, + tmp=Toupper(substring(#,0,1)); + if(tmp=="M",flg=1); + ); + forall(eqL, + tmp=indexof(#,"="); + tmp1=Toupper(substring(#,0,2)); + tmp2=substring(#,tmp,length(#)); + if(tmp1=="W=", + addop=addop+",width="+tmp2; + options=remove(options,[#]); + ); + if(tmp1=="H=", + addop=addop+",height="+tmp2; + options=remove(options,[#]); + ); + ); + tmp=indexof(file,"."); + tmp1=substring(file,0,tmp-1); + fout=tmp1+".txt"; + if(iswindows(), + kcfile="kc.bat"; + , + kcfile="kc.sh"; + ); + if(flg==0, + tmp=load(fout); // + if(length(tmp)==0, + flg=1; + , + tmp=tokenize(tmp,"%%"); + tmp=tmp_2; + tmp1=indexof(tmp,":"); + tmp=substring(tmp,tmp1,length(tmp)); + tmp=Removespace(tmp); + if(tmp!=file,flg=1); + ); + ); + if(length(path)==0, + path=Dirwork; + ); + if(flg==1, + setdirectory(path); + tmp=load(file); + setdirectory(Dirwork); + if(length(tmp)==0, + println(" => "+file+" not exists"); + flg=-1; + ); + ); + if(flg==1, + SCEOUTPUT = openfile(kcfile); + if(!iswindows(), + println(SCEOUTPUT,"#!/bin/sh"); + ); + println(SCEOUTPUT,"cd "+Dq+path+Dq); + tmp=replace(PathT,"pdflatex","extractbb"); //16.11.22 + tmp=replace(tmp,"pdftex","extractbb"); //16.11.22 + tmp=replace(tmp,"xelatex","extractbb"); + tmp=replace(tmp,"platex","extractbb"); + tmp=replace(tmp,"latex","extractbb"); + tmp=tmp+" -O "+file; + if(iswindows(), + tmp=tmp+" > "+Dirwork+"\"+fout; + , + tmp=tmp+" > "+Dirwork+"/"+fout; + ); + println(SCEOUTPUT,tmp); + println(SCEOUTPUT,"exit 0"); + closefile(SCEOUTPUT); + kc(Dirwork+"/"+kcfile,Mackc+Dirlib,Fnametex); // 16.06.07 + ); + if(flg>=0, + tmp1=0; + repeat(floor(waiting*1000/WaitUnit), + if(tmp1==0, + wait(10); + tmp=load(fout); + if(indexof(tmp,"CreationDate")>0, + tmp1=1; + ); + ); + ); + if(length(tmp)==0, + println(fout+" not generated. Maybe "+kcfile+" not run."); + , + tmp=tokenize(tmp,"%%"); + tmp=select(tmp,indexof(#,"Bounding")>0); + tmp=tmp_2; // + tmp1=indexof(tmp,":"); + tmp=substring(tmp,tmp1,length(tmp)); + tmp=removespace(tmp); + tmp=tokenize(tmp," "); + tmp1=""; + forall(tmp, + tmp1=tmp1+Sprintf(#,2)+" "; + ); + tmp1=removespace(tmp1)+addop; + tmp2="\includegraphics[bb="+tmp1+"]{"+file+"}"; + println(tmp2); + ); + ); +// setdirectory(Dirwork); + tmp2; // 16.04.25 +); + +//help:end(); + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketcindylibbasic2log.txt b/texmf-dist/scripts/ketpic/ketlib/ketcindylibbasic2log.txt new file mode 100644 index 00000000..98d7a8c3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketcindylibbasic2log.txt @@ -0,0 +1,293 @@ +// s:2017.08.23 +// thin changed so as to change dynamically +// \setthin{dense} supported +// s:2017.08.13 +// uplatex added +// s:2017.07.31 +// Presentation, Mktitle changed (color->xcolor) +// Setslidehyper, Presentation changed (the case LinkSize==0) +// s:2017.07.10 +// Presentation,.. debugged (Addpack ) +// s:2017.06.25 +// Addpackage changed ( change to full form of package ) +// Presentation changed ( ADDPACK ) +// s:2017.06.23 +// Presentation debugged ("%%") +// s:2017.06.19 +// Htick, Vtick added +// s:2017.06.18 +// Presentation changed ( usepackages in the1st line are writte first) +// s:2017.06.14 +// Presentation changed ( usepackage{color} ) +// s:2017.06.11 +// Periodfun debugged( for "pi",etc) +// e:2017.05.31 +// Presentation changed (for %%[, %%thin[ ) +// e:2017.05.30 +// Setwindow changed and moved to basic1( SW,NE ) +// e:2017.05.28 +// Repeatsameslide changed (color for thin) +// Presentation changed ( comment out the thin line ) +// e:2017.05.24 +// WriteOutData changed (format changed 4 -> 5) +// ReadOutdata changed ( for blank file ) +// e:2017.05.13 +// Dispchoice() added ( for Keypressed ) +// e:2017.05.13 +// WritetoSci debugged ( for Scilab6 and pdflatexs ) +// e:2017.04.16 +// Slidework debugged ( "\" for windows ) +// e:2017.04.13 +// Maketitle changed ( Error Message when Settitle is not defined ) +// Viewparent added +// e:2017.04.12 +// Mkslides changed ( Error Message when txt file do not exist ) +// e:2017.04.11 +// Putslider added +// e:2017.04.10 +// Mkslides,Mkslidesummary changed ( Slidename ) +// Mkslidesummary debugged +// e:2017.04.09 +// Presentation debugged (for verbatim ) +// Presentation changed (PageStyle ) +// s:2017.04.08 +// bugs fixed +// e:2017.04.08 +// Figpdf, Mktitle, Presentation changed +// ( To read stylefiles from ketpicstyle); +// e:2017.04.07 +// Viewtex changed ( To read stylefiles from ketpicstyle, log of ketcindy deleted); +// e:2017.03.05 +// Setslide... changed (to display values when no argment ) +// e:2017.03.02 +// Presentation changed ( To define SlideColorList removed); +// e:2017.02.19 +// Maketitle, Mkslides debugged ( for windows ) +// e:2017.01.29 +// Setslidehyper changed ( for null string) +// Presentation changed (pagestyle added, para for input(,) changed ) +// e:2017.01.21 +// Presentation changed ( counter added to para ) +// e:2017.01.20 +// Setrange added +// e:2017.01.15 +// Repeatsameslide debugged ( for \begin,\end ) +// e:2017.01.14 +// Mkslidesummary added +// e:2017.01.12 +// Repeatsameslide changed ( message for "n>nrep" added) +// Presentation changed ( hyperlink ) +// Writetosci changed ( english message for windows) +// e:2017.01.07 +// Setslide..., Presentation changed ( slidecolorlist); +// e:2017.01.06 +// Setslidebody, Presentation changed ( BodyStyle, "\boldmath"); +// Presentation changed ( thin added ) +// Mkbeziercrv changed ( name => nm ) +// Presentation changed ( for pdflatex,lualatex , not finished ) +// e:2017.01.05 +// Setslidemain debugged +// Presentation changed ( NewSlideOption added to sameslide ) +// Presentation,Repeatsameslide changed (ThinFlg,NonThinFlg) +// e:2017.01.03 +// Presentation changed (control button) +// e:2016.12.31 +// Helplist changed (when adding to HLIST) +// Setslidehyper added +// Presentation changed (paractr,hyherflg) +// e:2016.12.29 +// Writetosci changed ( add null row when path not defined) +/// e:2016.12.28 +// Maketitle debugged +// e:2016.12.27 +// Maketitle, Settitle added +// Slidework debugged ( when "fig" not exists ) +// Presentation changed ( nrep,npara ) +// e:2016.12.25 +// WritetoSci changed ( date/time and path/file stamped if possible) +// e:2016.12.23 +// BBdata changed ( waiting=2) +// e:2016.12.22 +// Setslidetitle,Setslidemain,Setslidebody added +// Presentation changed ( for commands above ) +// e:2016.12.20 +// Slidework changed ( isexists(dir) checked ) +// e:2016.12.18 +// Slidework changed ( to create "fig" when not exists ) +// Presentation changed ( input replaced to \input ) +// viewtex changed ( luatexja-core => luatexja ) +// e:2016.12.16 +// Tabledata,Tabledatalight changed ( "Rng" option added ); +// Viewtex,Writetosci,Makeshell,Makebat changed (for lualatex ); +// e:2016.12.09 +// Presentation changed ( for parapara ) here fileslist(directory) used +// e:2016.12.06 +// Changetablestyle debugged +// e:2016.12.05 +// Repeatsameslide added +// Presentation changed ( for repeated slide ) +// e:2016.11.29 +// Macro \ketcindy recovered +// Writetosci debugged ( for pdflatex ) +// e:2016.11.28 +// Tabledata,Tabldata changed (TableOptions added ) +// ChangeTablestyle changed completely +// e:2016.11.24 +// Periodfun,Fourierseries added +// Viewtex changed ( option [pdftex] added to pict2e ) +// e:2016.11.23 +// Viewtex changed (if pdflatex, Libname changed) +// e:2016.11.22 +// Viewtex changed (for pict2e) +// BBdata changed ( for pdflatex ) +// e:2016.11.16 +// Defvar changed (for a list of variables ) +// e:2016.11.11 +// Presentation changed (for no title (nodisp=10mm) ) +// e:2016.11.09 +// Presentation changed (for same option([]) ) +// e:2016.11.08 +// Figpdf changed (options ) +// e:2016.10.21 +// Datetime added +// e:2016.10.20 +// Makeshell changed (skim for mac ) +// e:2016.10.19 +// Letter debugged (case of s,e ) +// e:2016.10.13 +// Letter changed (position ) +// e:2016.10.11 +// PutonLine,PutonSeg debugged & changed ( scaling, segstr) +// e:2016.10.09 +// Expr and Letter(slightly) changed +// e:2016.10.07 +// Commands which use Putpoint changed (=> .name ) +// e:2016.10.06 +// Putpoint changed ( .name used ) +// BBdata changed (default path ) +// e:2016.09.30 +// Letter,Expr changed ( align, string ) +// e:2016.09.25 +// Small bug-fix ( :, ", _ ) +// e:2016.09.05 +// Texview, Figpdf, Presentation changed ( for ADDPACK ) +// e:2016.08.16 +// Mkbezierptcrv, Ospline, Bspline, Beziersmooth, +// CRspline, Beziersym changed ( for scaling ) +// e:2016.08.10 +// Setslidecolor added +// Presentation changed ( for color change ) +// e:2016.07.21 +// Makeshell,Makebat, Mkslides changed (no call of .sh/.bat ) +// e:2016.07.11 +// Presentation changed (spaces in verbatim, and || in verbatim changed // ) +// e:2016.07.07 +// Letter, Expr changed ( opcindy "size->..." supported ) +// e:2016.06.28 +// Presentation debugged and changed (verbatim, :: ) +// e:2016.06.25 +// Presentation debugged (Preamble addtion ) +// e:2016.06.10 +// Iftosci changed (Major change ) +// Presentation debugged ( wall ) +// Slidework added +// e:2016.06.09 +// Viewtex,Figpdf,Presentation changed ( jartcle used when platex ) +// Presentation changed ( for % ) +// e:2016.06.07 +// Mackc added +// e:2016.06.06 +// Makebat debugged +// e:2016.06.04 +// Viewtex,Mkslide, BBdata changed ( kc) +// e:2016.06.02 +// Makeshell,Makebat changed ( Pathpdf= ) +// e:2016.05.30 +// Makeshell changed ( output to kcout.txt ) +// Makebat changed ( for Sumatra ) +// e:2016.05.29 +// WritetoSci changed ( for /users ) +// Makeshell, Makebat, Mkslide changed ( for /users ) +// e: 2016.05.25 +// Defun changed ( for "forall") +// Iftosci debugged, Fortosci added + + +/////////////////// +// e: 2015.11.06 +// libbasic divided to libbasic1,libbasic2 +// e: 2015.11.09 +// helplist debugged +// e: 2015.11.25 +// Help changed ( ' changed to Dq) +// e: 2015.11.29 +// Example, Helpkey added +// e: 2015.12.08 +// Mkslide changed ( Dirbin ) +// e: 2015.12.12 +// Makeshell, Makebat changed ( for autosetting ) +// Mksliides changed ( for autosetting ) +// e: 2015.12.14 +// Mkslides, Makeshell, Makebat changed ( for autosetting of slides ) +// e: 2016.01.12 +// Viewtex changed ( Title changed to verb ) +// e: 2016.01.18 +// Viewtex debugged ( Title changed to verb ) +// e: 2016.01.21 +// Drwxy debugged +// Help of Drwpt added +// Sciform patched +// e: 2016.02.02 +// Helpkey changed ( for 2 keywords ) +// e: 2016.02.10 +// Putoncurve changed ( option :"Msg=no" ) +// Setwindow changed ( option :"Msg=no" ) +// e: 2016.02.16 +// Help of ExtractData changed +// e: 2016.02.18 +// Deffun ( help ) changed +// e: 2016.02.22 +// Ptonseg changed ( par option added ) +// e: 2016.03.05 +// Drwpt changed ( point/pointlist allowed) +// e: 2016.03.07 +// ReadOutData changed ( change of path supported) +// e: 2016.03.09 +// ReadOutData debugged ( in case of no path) +// e: 2016.03.25 +// Figpdf added +// e: 2016.03.26 +// Figpdf changed ( for various unitlen ) +// e: 2016.03.28 +// Mkshell, Mkbat changed ( for "mv" ) +// e: 2016.04.07 +// Viewtex changed ( by \ketcindy) +// Figpdf changed ( options "4,3,2" effective ) +// e: 2016.04.08 +// Figpdf,Makeshell, Makebat changed ( FigPdfList ) +// Figpdf changed ( options ) +// e: 2016.04.09 +// Drwpt,Pointdata changed ( boundary ) +// e: 2016.04.11 +// BBdata added +// BBdata changed ( to look at fig.txt) +// e: 2016.04.12 +// BBdata changed ( prec=2, option of width/heigh ) +// e: 2016.04.17 +// ReadOutData changed ( for file of no "." => ".txt" ) +// Writebezier, Readbezier added +// e: 2016.04.18 +// Sciform debugged +// e: 2016.04.19 +// Sciform changed +// e: 2016.04.22 +// Writebezier, Readbezier changed +// e: 2016.05.11 +// Presentation changed (for url //// ) +// e: 2016.05.15 +// Makeshell changed (sh added ) +// e: 2016.05.16 +// Addpackage added +// Viewtex,Figpdf changed ( for Addpackage ) +////// To Reverse sequence ////// + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketcindylibhelpE.txt b/texmf-dist/scripts/ketpic/ketlib/ketcindylibhelpE.txt new file mode 100644 index 00000000..437bdefd --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketcindylibhelpE.txt @@ -0,0 +1,116 @@ +//help:start(); +//help:drawimage*(import image into the screen); +//help:drawtext*(write letters on the screen); +//help:Option1*(specify the style of drawing lines); +//help:Option2*(specify the way of writing data out); +//help:Option3*(specify the way of reading and writing data in); +//help:Changestyle*(change the style for drawing plot data); +//help:Workprocess*(display the process of execution); +//help:Textformat*(convert number into string with specific number of digits); +//help:Assign*(replace the name of variable in the string by some specific value); +//help:Flattenlist*(flatten the list of data); +//help:Dotprod*(inner product); +//help:Crossprod*(exterior product); +//help:Ptstart*(starting point of plot data); +//help:Ptend*(ending point of plot data); +//help:Numptcrvtenn*(number of points in plot data); +//help:Ptcrv*(the n-th point of plot data); +//help:Invert*(reverse the orientation of curve); +//help:ParamonCurve*(information (parameter value etc.) of the point in plot data); +//help:PointonCurve*(the point in the plot data specified by the given information); +//help:Nearestptcrv*(the point in the curve which is nearest to the given point); +//help:Nearestpt*(the points in two given curves which are nearest each other); +//help:Derivative*(calculate the differential coefficient); +//help:Integrate*(numerical integration); +//help:Findarea*(calculate the area of the region surrounded by a closed curve); +//help:Findlength*(calculate the length of curve); +//help:Com2nd*(add the Scilab command to write out plot data into TeX); +//help:Texcom*(write command into TeX output exactly as written here); +//help:SetEnglish*(display Scilab messages in English language); +//help:Setunitlen*(specify the unit length); +//help:Setmarklen*(specify the unit length of the tickmarks on coordinate axis); +//help:Setorigin*(specify the position the origin); +//help:Fontsize*(specify the size of font); + //help:Setpen*(specify the thickness of line); +//help:Setpt*(specify the size of point); +//help:Definecolor*(define the color for user's own use); +//help:Setcolor*(specify the color); +//help:Joincrvs*(join curves); +//help:Partcrv*(cut out some part of the curve); +//help:Pointdata*(generate the plot data of point +//additional option : "Size="); +//help:Listplot*(generate the plot data of a polyline); +//help:Lineplot*(generate the plot data of line); +//help:Plotdata*(generate the plot data of function +//additional option : "Num=", "Exc=", "Dis="); +//help:Paramplot*(generate the plot data of parametric function +//additional option : "Num=", "Exc=", "Dis="); +//help:Circledata*(generate the plot data of circle +//additional option : "Num=", "Rng="); +//help:Framedata*(generate the plot data of rectangle); +//help:Ovaldata*(generate the plot data of oval shape); +//help:Arrowhead*(generate the plot data of arrowhead +//option : size, sharpness, shape and position in the arrow); +//help:Arrowdata*(generate the plot data of arrow line +//option : size of arrowhead, sharpness(angle)シ継osition of arrowhead); +//help:Anglemark*(generate the plot data of angle mark option : size); +//help:Paramark*(generate the plot data of right angle mark option : size); +//help:Bowdata*(generate the plot data of bow arched curve +//option : curvatute, size of the blank space, letter); +//help:Deqplot*(generate the solution curve of differential equation +//additional option : "Num="); +//help:Hatchdata*(add hatching into some region +// option : slope, degree, space betwen lines)); +//help:Enclosing*(generate the plot data of closed curve connecting some curves); +//help:Shade*(add shading into some region option : depth); +//help:Rotatepoint*(rotate the point, option : center); +//help:Translatepoint*(pararell transport of the point); +//help:Scalepoint*(magnify or reduce the position of point option : center); + //help:Reflectpoint*(reflect the point); +//help:Rotatedata*(rotate the plot data option : center); +//help:Scaledata*(magnify or reduce the plot data option : center); +//help:Reflectdata*(reflect the plot data); +//help:Mksegments*(generate the plot data of all segments on the screen); +//help:Mkcircles*(generate the plot data of all circles on the screen): +//help:Setax*(specify the setting of coordinate axes); +//help:Htickmark*(put a tickmark on the horizontal coordinate axis); +//help:Vtickmark*(put a tickmark on the vertical coordinate axis); +//help:Drwxy*(draw coordinate axes); +//help:Addax*(specify whether coordinate axes are drawn or not); +//help:Expr*(write mathematical expressions at a specific position); +//help:Letter*(write letters at a specific position); +//help:Letterrot*(write sloped letters at a specific position): +//help:Exprrot*(write sloped mathematical expressions at a specific position): +//help:Putpoint*(put a point at the specific position); +//help:Bezier*(generate the plot data of Bezier curve); +//help:Mkbezierptcrv*(generate the plot data of Bezier curve by automatically taking controll points); +//help:CRspline*(generate the plot data of Catmull-Rom spline curve); +//help:Beziersmooth*(generate the plot data of Bezier spline curve); +//help:Bspline*(generate the plot data of B-spline curve); +//help:PtonLine*(put a point on a specific line); +//help:PtonSeg*(put a point on a specific segment); +//help:PutonCurve*(put a point on a specific curve); +//help:Setscaling*(specify the rate of magnification in the vertical direction); + //help:Tabledatalight*(generate the plot data of table without geometric points + //additional option : rules to be removed); + //help:Tgrid*(return the coordinates of a cell in the table); + //help:Tlistplot*(draw segment connecting two lattice points in the table); +//help:ChangeTablestyle*(change the style for drawing rules in the table); +//help:Tabledata*(generate the plot data of table with geometric points + //option : usual optionsシ脚ules to be removed); +//help:Tabledata*(xLst=apply(1..5,10);yLst=apply(1..4,8);rmvL=[];); +//help:Findcell*(return the information of a cell in the table); +//help:Putcell*(write letters in a specific cell of the table); +//help:Putcellexpr*(write mathematical expressions in a specific cell of the table); +//help:Putrow*(write letters in a specific row of the table)); +//help:Putrowexpr*(write mathematical expressions in a specific row of the table); +//help:PutcoL*(write letters in a specific column of the table)); +//help:PutcoLexpr*(write mathematical expressions in a specific column of the table)); +//help:Setwindow*(specify the area of drawing); +//help:Defvar*(the definition of a variable is called by Scilab); +//help:Deffun*(the definition of a function is called by Scilab); +//help:Extractdata*(endow attribute to the imported plot data); +//help:ReadOutData*(import the plot data); +//help:WriteOutData*(export the plot data); +//help:Removespace*(remove spaces of in front and behind); +//help:end(); diff --git a/texmf-dist/scripts/ketpic/ketlib/ketcindylibhelpJ.txt b/texmf-dist/scripts/ketpic/ketlib/ketcindylibhelpJ.txt new file mode 100644 index 00000000..330a47c4 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketcindylibhelpJ.txt @@ -0,0 +1,140 @@ +//help:start(); +//help:drawimage*(逕サ蜒上r逕サ髱「縺ォ隱ュ縺ソ霎シ繧); +//help:drawtext*(逕サ髱「縺ォ譁蟄励r譖ク縺崎セシ繧); +//help:Option1*(邱夂ィョ繧呈欠螳夲シ弱さ繝槭Φ繝峨ョ繧ェ繝励す繝ァ繝ウ); +//help:Option2*(譖ク縺榊コ縺励r謖螳夲シ弱さ繝槭Φ繝峨ョ繧ェ繝励す繝ァ繝ウ); +//help:Option3*(螟夜Κ繝輔ぃ繧、繝ォ縺ョ隱ュ霎シシ乗嶌霎シ縺ョ謖螳夲シ弱さ繝槭Φ繝峨ョ繧ェ繝励す繝ァ繝ウ); +//help:Changestyle*(繝励Ο繝繝医ョ繝シ繧ソ縺ョ繧ェ繝励す繝ァ繝ウ繧貞、画峩); +//help:Workprocess*(螳溯。梧焔鬆繧定。ィ遉コ); +//help:Textformat*(謨ー蛟、縺ョ譁蟄怜怜喧縺ァ譯∵焚謖螳); +//help:Assign*(譁蟄怜怜縺ョ螟画焚縺ク縺ョ蜑イ蠖薙※); +//help:Flattenlist*(繝繝シ繧ソ繝ェ繧ケ繝医r蟷ウ蝮ヲ蛹); +//help:Dotprod*(蜀遨); +//help:Crossprod*(螟也ゥ); +//help:Ptstart*(繝励Ο繝繝医ョ繝シ繧ソ縺ョ蟋狗せ); +//help:Ptend*(繝励Ο繝繝医ョ繝シ繧ソ縺ョ邨らせ); +//help:Numptcrvtenn*(繝励Ο繝繝医ョ繝シ繧ソ縺ョ轤ケ縺ョ謨ー); +//help:Ptcrv*(繝励Ο繝繝医ョ繝シ繧ソ縺ョn逡ェ逶ョ縺ョ轤ケ); +//help:Invert*(繝励Ο繝繝医ョ繝シ繧ソ縺ョ蜷代″繧帝縺ォ縺吶k); +//help:ParamonCurve*(繝励Ο繝繝医ョ繝シ繧ソ荳翫ョ轤ケ縺ョ諠蝣ア); +//help:PointonCurve*(繝励Ο繝繝医ョ繝シ繧ソ荳翫ョ諠蝣ア縺ォ繧医k轤ケ); +//help:Nearestptcrv*(轤ケ縺ォ縺、縺縺ヲ繝励Ο繝繝医ョ繝シ繧ソ荳翫ョ譛霑醍せ); +//help:Nearestpt*(シ呈峇邱壹ョ譛霑醍せ); +//help:Derivative*(蠕ョ蛻菫よ焚); +//help:Integrate*(謨ー蛟、遨榊); +//help:Findarea*(髢画峇邱壹↓蝗イ縺セ繧後◆髱「遨); +//help:Findlength*(譖イ邱壹ョ髟キ縺); +//help:Com2nd*(TeX縺ョ譖ク縺榊コ縺励さ繝槭Φ繝峨r蜈・繧後k); +//help:Texcom*(TeX縺ョ繧ウ繝槭Φ繝峨r逶エ謗・險倩ソー); +//help:SetEnglish*(Scilab縺ョ繝。繝繧サ繝シ繧ク繧定恭隱槭↓縺吶k); +//help:Setunitlen*(蜊倅ス埼聞繧呈欠螳); +//help:Setmarklen*(蠕ョ蟆丞腰菴埼聞繧呈欠螳); +//help:Setorigin*(蜴溽せ縺ョ菴咲スョ繧呈欠螳); +//help:Fontsize*(繝輔か繝ウ繝医し繧、繧コ繧呈欠螳); + //help:Setpen*(邱壹ョ螟ェ縺輔r謖螳); +//help:Setpt*(轤ケ縺ョ螟ァ縺阪&繧呈欠螳); +//help:Definecolor*(繝ヲ繝シ繧カ繝シ濶イ繧貞ョ夂セゥ); +//help:Setcolor*(濶イ繧呈欠螳); +//help:Joincrvs*(譖イ邱壹r縺、縺ェ縺偵k); +//help:Partcrv*(驛ィ蛻譖イ邱壹r菴懊k); +//help:Pointdata*(轤ケ繝繝シ繧ソ繧定。ィ遉コシ丈ス懈 +//霑ス蜉繧ェ繝励す繝ァ繝ウ : "Size="); +//help:Listplot*(邱壼繧謚倥l邱壹ョ繝シ繧ソ繧剃ス懈); +//help:Lineplot*(逶エ邱壹ョ繝シ繧ソ繧剃ス懈); +//help:Plotdata*(髢「謨ー縺ョ繧ー繝ゥ繝輔r菴懈 +//霑ス蜉繧ェ繝励す繝ァ繝ウ : "Num=", "Exc=", "Dis="); +//help:Paramplot*(蟐剃サ句、画焚縺ョ髢「謨ー縺ョ繧ー繝ゥ繝輔r菴懈 +//霑ス蜉繧ェ繝励す繝ァ繝ウ : "Num=", "Exc=", "Dis="); +//help:Circledata*(蜀縺ョ繝繝シ繧ソ繧剃ス懈 +//霑ス蜉繧ェ繝励す繝ァ繝ウ : "Num=", "Rng="); +//help:Framedata*(髟キ譁ケ蠖「縺ョ繝繝シ繧ソ繧剃ス懈); +//help:Ovaldata*(繧ェ繝シ繝舌Ν繝繝シ繧ソ繧剃ス懈); +//help:Arrowhead*(髀繧剃ス懈 +//繧ェ繝励す繝ァ繝ウ : 螟ァ縺阪&シ碁幕縺崎ァ抵シ悟ス「迥カ縺ィ菴咲スョ); +//help:Arrowdata*(遏「蜊ー繧剃ス懈 +//繧ェ繝励す繝ァ繝ウ : 螟ァ縺阪&シ碁幕縺崎ァ抵シ檎泙縺倥j菴咲スョ); +//help:Anglemark*(隗貞コヲ繝槭シ繧ッ繧剃ス懈. 繧ェ繝励す繝ァ繝ウ : 隗偵ョ蜊ー縺ョ螟ァ縺阪&); +//help:Paramark*(蝙ら峩繝槭シ繧ッ繧剃ス懈. 繧ェ繝励す繝ァ繝ウ : 隗偵ョ蜊ー縺ョ螟ァ縺阪&); +//help:Bowdata*(蠑灘ス「繧呈緒縺 +//繧ェ繝励す繝ァ繝ウ : 譖イ縺後jシ檎ゥコ逋ス繧オ繧、繧コシ梧枚蟄); +//help:Deqplot*(蠕ョ蛻譁ケ遞句シ上ョ隗」譖イ邱壹r菴懈 +//霑ス蜉繧ェ繝励す繝ァ繝ウ : "Num="); +//help:Hatchdata*(譁懃キ壼。励j. 繧ェ繝励す繝ァ繝ウ : 蛯セ縺搾シ亥コヲシ会シ碁俣髫); +//help:Enclosing*(隍謨ー譖イ邱壹r縺、縺ェ縺偵※髢画峇邱壹r菴懈); +//help:Shade*(繧キ繧ァ繝シ繝繧」繝ウ繧ー. 繧ェ繝励す繝ァ繝ウ : 豼縺); +//help:Rotatepoint*(轤ケ繧貞屓霆「. 繧ェ繝励す繝ァ繝ウ : 荳ュ蠢); +//help:Translatepoint*(轤ケ繧貞ケウ陦檎ァサ蜍); +//help:Translatedata*(繝励Ο繝繝医ョ繝シ繧ソ繧貞ケウ陦檎ァサ蜍); +//help:Scalepoint*(轤ケ繧堤クョ蟆擾シ乗僑螟ァ. 繧ェ繝励す繝ァ繝ウ : 荳ュ蠢); +//help:Reflectpoint*(轤ケ繧帝升譏); +//help:Rotatedata*(繝励Ο繝繝医ョ繝シ繧ソ繧貞屓霆「. 繧ェ繝励す繝ァ繝ウ : 荳ュ蠢); +//help:Scaledata*(繝励Ο繝繝医ョ繝シ繧ソ繧堤クョ蟆擾シ乗僑螟ァ. 繧ェ繝励す繝ァ繝ウ : 荳ュ蠢); +//help:Reflectdata*(繝励Ο繝繝医ョ繝シ繧ソ繧帝升譏); +//help:Mksegments*(逕サ髱「縺ォ縺ゅk縺吶∋縺ヲ縺ョ邱壼繝繝シ繧ソ繧剃ス懈); +//help:Mkcircles*(逕サ髱「縺ォ縺ゅk縺吶∋縺ヲ縺ョ蜀繝繝シ繧ソ繧剃ス懈): +//help:Setax*(蠎ァ讓呵サク繧呈欠螳); +//help:Htickmark*(讓ェ霆ク縺ォ逶ョ逶帙j繧呈緒縺); +//help:Vtickmark*(邵ヲ霆ク縺ォ逶ョ逶帙j繧呈緒縺); +//help:Drwxy*(蠎ァ讓呵サク繧呈緒縺); +//help:Addax*(蠎ァ讓呵サク繧呈緒縺上°謠上°縺ェ縺縺九ョ謖螳); +//help:Expr*(謨ー蠑上r譖ク縺崎セシ繧); +//help:Letter*(譁蟄励r譖ク縺崎セシ繧); +//help:Letterrot*(蛯セ縺縺滓枚蟄励r譖ク縺崎セシ繧): +//help:Exprrot*(蛯セ縺縺滓焚蠑上r譖ク縺崎セシ繧): +//help:Putpoint*(蟷セ菴慕せ繧偵→繧); +//help:Bezier*(繝吶ず繧ァ譖イ邱壹ョ繝シ繧ソ繧剃ス懈); +//help:Mkbezierptcrv*(蛻カ蠕。轤ケ繧定ェ蜍慕噪縺ォ縺ィ縺」縺ヲ繝吶ず繧ァ繧剃ス懈); +//help:CRspline*(Catmull-Rom繧ケ繝励Λ繧、繝ウ繧剃ス懈); +//help:Beziersmooth*(繝吶ず繧ァ繧ケ繝励Λ繧、繝ウ繧剃ス懈); +//help:Bspline*(B-繧ケ繝励Λ繧、繝ウ繧剃ス懈); +//help:PtonLine*(逶エ邱壻ク翫↓轤ケ繧偵→繧); +//help:PtonSeg*(邱壼荳翫↓轤ケ繧偵→繧); +//help:PutonCurve*(譖イ邱壻ク翫↓轤ケ繧偵→繧); +//help:Setscaling*(邵ヲ譁ケ蜷代ョ蛟咲紫繧呈欠螳); + //help:Tabledatalight*(蟷セ菴慕せ繧偵b縺溘↑縺陦ィ繝繝シ繧ソ菴懈 + //霑ス蜉繧ェ繝励す繝ァ繝ウ : 繝ゥ繝吶Ν縺ョ縺ィ縺ウシ梧緒逕サ鬆伜沺繧定。ィ縺ォ蜷医o縺帙k縺); + //help:Tgrid*(陦ィ縺ョ繧サ繝ォ縺ョ蠎ァ讓吶r霑斐☆); + //help:Tlistplot*(陦ィ縺ョ2譬シ蟄千せ繧堤オ舌カ邱壼); +////help:ChangeTablestyle*(陦ィ縺ョ鄂ォ邱壹ョ繧ケ繧ソ繧、繝ォ螟画峩); +//help:Tabledata*(蟷セ菴慕せ繧偵b縺、陦ィ繝繝シ繧ソ繧剃ス懈 + //霑ス蜉繧ェ繝励す繝ァ繝ウ : 繝ゥ繝吶Ν縺ョ縺ィ縺ウシ梧緒逕サ鬆伜沺繧定。ィ縺ォ蜷医o縺帙k縺); +//help:Tabledata*(xLst=apply(1..5,10);yLst=apply(1..4,8);rmvL=[];); +//help:Findcell*(陦ィ縺ョ繧サ繝ォ縺ョ諠蝣ア繧定ソ斐☆); +//help:Putcell*(陦ィ縺ョ繧サ繝ォ縺ォ譁蟄励r譖ク縺榊・繧後k); +//help:Putcellexpr*(陦ィ縺ョ繧サ繝ォ縺ォ謨ー蠑上r譖ク縺榊・繧後k); +//help:Putrow*(陦ィ縺ョ陦後↓譁蟄励r譖ク縺榊・繧後k)); +//help:Putrowexpr*(陦ィ縺ョ陦後↓謨ー蠑上r譖ク縺榊・繧後k); +//help:PutcoL*(陦ィ縺ョ蛻励↓譁蟄励r譖ク縺榊・繧後k)); +//help:PutcoLexpr*(陦ィ縺ョ蛻励↓謨ー蠑上r譖ク縺榊・繧後k)); +//help:Setwindow*(謠冗判鬆伜沺繧呈欠螳); +//help:Defvar*(螟画焚繧担cilab縺ォ貂。縺); +//help:Deffun*(髢「謨ー繧担cilab縺ォ貂。縺); +//help:Extractdata*(隱ュ縺ソ霎シ繧薙□繝繝シ繧ソ縺ォ螻樊ァ繧剃ク弱∴繧); +//help:ReadOutData*(繝繝シ繧ソ繧定ェュ縺ソ霎シ繧); +//help:WriteOutData*(繝繝シ繧ソ繧呈嶌縺榊コ縺); +//help:Removespace*(蜑榊セ後ョ繧ケ繝壹シ繧ケ繧帝勁縺); +//help:Drawlinetype*(邱夂ィョ繧呈欠螳壹@縺ヲ譖イ邱壹r謠上¥); +//help:Intersectcrvs*(莠、轤ケ繝ェ繧ケ繝医r豎ゅa繧); +//help:IntersectcrvsPp*(莠、轤ケ縺ィ繝代Λ繝。繝シ繧ソ蛟、縺ョ繝ェ繧ケ繝医r豎ゅa繧); +//help:Implicitplot*(髯ー髢「謨ー縺ョ繧ー繝ゥ繝輔r謠上¥); +//help:Boxplot*(邂ア繝偵ご蝗ウ繧呈緒縺擾シR菴ソ逕ィシ); +//help:CalcbyR*(R縺ョ繧ウ繝槭Φ繝峨r螳溯。後@縺ヲ邨先棡繧定ソ斐☆); +//help:CalcbyS*(Scilab縺ョ繧ウ繝槭Φ繝峨r螳溯。後@縺ヲ邨先棡繧定ソ斐☆); +//help:Framedata2*(蟾ヲ荳九→蜿ウ荳翫ョ轤ケ縺ァ髟キ譁ケ蠖「繧呈緒縺); +//help:HIstplot*(繝偵せ繝医げ繝ゥ繝繧呈緒縺擾シR菴ソ逕ィシ); +//help:Hyperbolaplot*(蜿梧峇邱壹r謠上¥); +//help:Ellipseplot*(讌募繧呈緒縺); +//help:Ospline*(Oshima縺ョ繧ケ繝励Λ繧、繝ウ繧呈緒縺); +//help:Parabolaplot*(謾セ迚ゥ邱壹r謠上¥); +//help:PlotdataR*(R縺ョ髢「謨ー縺ョ繧ー繝ゥ繝輔r謠上¥); +//help:Polygonplot*(豁」螟夊ァ貞ス「繧呈緒縺); +//help:Putintersect*(莠、轤ケ縺ォ蟷セ菴慕せ繧偵→繧); +//help:Rulerscale*(轤ケ縺ョ蜿ウ縺ィ荳翫↓逶ョ逶帙r謠上¥); +//help:Segmark*(邱壼縺ォ繝槭シ繧ッ繧偵▽縺代k); +//help:Sprintf*(蟆乗焚轤ケ莉・荳九ョ髟キ縺輔r蝗コ螳壹@縺滓枚蟄怜励↓螟画鋤); +//help:Readcsv*(csv繝輔ぃ繧、繝ォ繧定ェュ縺ソ霎シ縺ソ); +//help:Writecsv*(csv繝輔ぃ繧、繝ォ繧呈嶌縺崎セシ縺ソ); +//help:Drwpt*(轤ケ繧探eX縺ォ謠上¥シ弱が繝励す繝ァ繝ウシ夂區謚懊″ 0); + + +//help:end(); diff --git a/texmf-dist/scripts/ketpic/ketlib/ketcindylibmv.cs b/texmf-dist/scripts/ketpic/ketlib/ketcindylibmv.cs new file mode 100644 index 00000000..bf846d08 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketcindylibmv.cs @@ -0,0 +1,812 @@ +// Copyright (C) 2014 Masataka Kaneko, Setsuo Takato, KETCindyJapan project team +// +//This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/> +// + +println("ketcindymv(2017.08.19) loaded"); + +//help:start(); + +Ketinitmv():=( + regional(tmp,tmp1,tmp2,tmp3); + Ketinit();//17.04.10 + Texmov=Fhead+"movie"; + Texpara=Fhead+"para"; + ParaTitle=Texpara;//16.12.10 + tmp1=round(4*SW.y)/4-0.5; + tmp2=SW.x+1; + tmp3=NE.x-1; + Listplot("sl",[[tmp2,tmp1],[tmp3,tmp1]],["notex","linecolor->[0,1,0]"]); + PutonCurve("MF",sgsl,[tmp2,tmp3]); + Paraamble(); // 16.08.10 + Shellfile="mv"; // 17.04.09 +); + +Moviedata(func,var):=Moviedata(func,var,[]); +Moviedata(func,var,options):=( +//help:Moviedata("mf(t)","t=[0,4]"); +//help:Moviedata(Options=["Cut=20","Div=80"]); + regional(tmp,tmp1,tmp2,eqL); + tmp=Divoptions(options); + eqL=tmp_5; + CUT=20; + DVALL=0; + Ec=[]; + forall(eqL, + tmp=indexof(#,"="); + tmp1=Toupper(substring(#,0,1)); + tmp2=Toupper(substring(#,tmp,length(#))); + if(tmp1=="D", + DVALL=parse(tmp2); + ); + if(tmp1=="C", + CUT=parse(tmp2); + ); + ); + if(DVALL==0, + DVALL=4*CUT; + ); + tmp=indexof(var,"="); + tmp1=substring(var,0,tmp-1); + tmp2=substring(var,tmp,length(var)); + tmp2=parse(tmp2); + if(indexof(func,"Moiveframe")==0, + tmp="Movieframe("+tmp1+"):="+func+";"; + parse(tmp); + ); + tmp="Movierange="+tmp2+";"; + parse(tmp); +// tmp="Movieoptions=["+Dq+"Div="+text(DVALL)+Dq+","+Dq+"Cut="+text(CUT)+Dq+"]"; +// parse(tmp); +); + +Paraamble():=Paraamble(""); +Paraamble(str):=( +//help:Paraamble(); +//help:Paraamble(amblelist); +//help:Paraamble(filename); + regional(cmdall,sep,tmp,tmp1,tmp2); + if(isstring(str), + if(str=="", + Parafirsthead=[ + "\def\ketcbox{white}", // 17.02.26 + "\newslide[0]{"+ParaTitle+"}", //16.12.10 + "", + "\hypertarget{FIRST}{}", + "Commonhead" + ]; + Parafirsttail=[ + "Commontail" + ]; + Parahead=[ + "\sameslide[0]", + "Commonhead" + ]; + Paratail=[ + "Commontail" + ]; + Paralasthead=[ + "\sameslide[0]", + "", + "\hypertarget{LAST}{}", + "Commonhead" + ]; + Paralasttail=[ + "Commontail" + ]; + Commonhead=[ + "", + "\definecolor{thinblue}{cmyk}{0.3,0.3,0,0}", //17.02.19 + "\begin{layer}{130}{0}", + "\hyperlink{FIRST}{\colorframe[8]{0}{80}{thinblue}{yellow}{blue}{FIRST}}", //17.02.19 + "\hyperlink{LAST}{\colorframe[8]{110}{80}{thinblue}{yellow}{blue}{LAST}}", //17.02.19 + "\putnotec{60}{40}{" // 16.07.06 + ]; + Commontail=[ + "", + "}", + "\end{layer}", + "" + ]; + , + if(indexof(str,".")>0,tmp1=str,tmp1=str+".txt"); + tmp=load(tmp1); + cmdall=tokenize(tmp,"..."); + cmdall=apply(cmdall,Removespace(#)); + sep=select(1..length(cmdall),substring(cmdall_#,0,5)=="%Para"); + Parafirsthead=cmdall_(2..(sep_2-1)); + Parafirsttail=cmdall_((sep_2+1)..(sep_3-1)); + Parahead=cmdall_((sep_3+1)..(sep_4-1)); + Paratail=cmdall_((sep_4+1)..(sep_5-1)); + Paralasthead=cmdall_((sep_5+1)..(sep_6-1)); + tmp1=cmdall_((sep_6+1)..length(cmdall)); + sep=select(1..length(tmp1),substring(tmp1_#,0,7)=="%Common"); + Paralasttail=tmp1_(1..sep_1-1); + Commonhead=tmp1_((sep_1+1)..(sep_2-1)); + Commontail=tmp1_((sep_2+1)..length(tmp1)); + ); + ); + if(islist(str), + Parafirsthead=str_1; + Parafirsttail=str_2; + Parahead=str_3; + Paratail=str_4; + Paralasthead=str_5; + Paralasttail=str_6; + Commonhead=str_7; + Commontail=str_8; + ); + tmp1=apply(Parafirsthead,Dq+#+Dq); + tmp2=apply(Parafirsttail,Dq+#+Dq); + tmp=[tmp1,tmp2]; + tmp1=apply(Parahead,Dq+#+Dq); + tmp2=apply(Paratail,Dq+#+Dq); + tmp=concat(tmp,[tmp1,tmp2]); + tmp1=apply(Paralasthead,Dq+#+Dq); + tmp2=apply(Paralasttail,Dq+#+Dq); + tmp=concat(tmp,[tmp1,tmp2]); + tmp1=apply(Commonhead,Dq+#+Dq); + tmp2=apply(Commontail,Dq+#+Dq); + tmp=concat(tmp,[tmp1,tmp2]); + tmp; +); + +Writeparaamble(filename):=( + //regional(tmp,tmp1,tmp2); + SCEOUTPUT=openfile(filename); + println(SCEOUTPUT,"%Parafirsthead"+"..."); + forall(Parafirsthead, + println(SCEOUTPUT,#+"..."); + ); + println(SCEOUTPUT,""); + println(SCEOUTPUT,"%Parafirsttail"+"..."); + forall(Parafirsttail, + println(SCEOUTPUT,#+"..."); + ); + println(SCEOUTPUT,""); + println(SCEOUTPUT,"%Parahead"+"..."); + forall(Parahead, + println(SCEOUTPUT,#+"..."); + ); + println(SCEOUTPUT,""); + println(SCEOUTPUT,"%Paratail"+"..."); + forall(Paratail, + println(SCEOUTPUT,#+"..."); + ); + println(SCEOUTPUT,""); + println(SCEOUTPUT,"%Paralasthead"+"..."); + forall(Paralasthead, + println(SCEOUTPUT,#+"..."); + ); + println(SCEOUTPUT,""); + println(SCEOUTPUT,"%Paralasttail"+"..."); + forall(Paralasttail, + println(SCEOUTPUT,#+"..."); + ); + println(SCEOUTPUT,""); + println(SCEOUTPUT,"%Commonhead"+"..."); + forall(Commonhead, + println(SCEOUTPUT,#+"..."); + ); + println(SCEOUTPUT,""); + println(SCEOUTPUT,"%Commontail"+"..."); + forall(Commontail, + println(SCEOUTPUT,#+"..."); + ); + closefile(SCEOUTPUT); +); + +Mvdispg():=( + regional(tmp,tmp1,tmp2,tmp3,num,s,i); + CLIST=COM2ndlist; + FIXGLIST=[]; + forall(2..length(GLIST), + FIXGLIST=append(FIXGLIST,GLIST_#); + ); + STPTlist=remove(allpoints(),[SW,NE,MF]); + STPlist=[]; + STPnamelist=[]; + STPvaluelist=[]; + forall(STPTlist, + tmp=Lcrd(#); + tmp1=format(re(tmp_1),5); + tmp2=format(re(tmp_2),5); + tmp="["+tmp1+","+tmp2+"]"; + STPlist=append(STPlist,#.name+"="+tmp+";"); + STPnamelist=append(STPnamelist,#.name); + STPvaluelist=append(STPvaluelist,tmp); + ); + tmp1=round(4*SW.y)/4-0.5; + tmp2=SW.x+1; + tmp3=NE.x-1; + if(length(Movierange)==2, + s=Movierange_1+(MF.x-tmp2)/(tmp3-tmp2)*(Movierange_2-Movierange_1); + Movieframe(s); + , + num=length(Movierange); + tmp=Movierange_1+(MF.x-tmp2)/(tmp3-tmp2)*(Movierange_num-Movierange_1); + i=1; + while(Movierange_(i+1)<=tmp, + i=i+1; + ); + s=Movierange_i; + Movieframe(s); + ); + Windispg(); + Defvar("s",s); + GOUTLIST=[]; +); + +Mkmovie():=Mkmovie(Movierange); +Mkmovie(rng):=( + regional(x1,x2,PLIST,GL,num0,num1,num2,num3,num4,num5,num6,num, + l,s,k,tmp,tmp1,tmp2,tmp3,Plist,Pnamelist,Pvaluelist, + ALLPlist,MVPlist); + if(length(rng)==2, + x1=rng_1; + x2=rng_2; + PLIST=[x1]; + forall(1..DVALL,k, + s=x1+k*(x2-x1)/DVALL; + PLIST=append(PLIST,s); + ); + , + PLIST=rng; + DVALL=length(rng)-1; + ); + if(VERNUM==0, + SCEOUTPUT=openfile(Texmov+".sce"); + , + SCEOUTPUT=openfile(Texpara+".sce"); + ); + println(SCEOUTPUT,"cd('"+Dirwork+"');"); + println(SCEOUTPUT,"Ketlib=lib('"+Libname+"');"); + println(SCEOUTPUT,"Ketinit();"); + println(SCEOUTPUT,"pi=%pi;"); + tmp="Setwindow(["+text(XMIN)+","+text(XMAX)+ + "],["+text(YMIN)+","+text(YMAX)+"]);";// 16.05.19 + println(SCEOUTPUT,tmp); + //println(SCEOUTPUT,"Setax('l','x','e','y','n','O','sw');"); + num1=length(COM1stlist); + forall(1..num1,l, + println(SCEOUTPUT,COM1stlist_l+";"); + ); + forall(1..length(STPlist), + print(SCEOUTPUT,STPlist_#); + println(SCEOUTPUT," Assignrep('"+STPnamelist_#+"',"+STPvaluelist_#+");"); + ); + num2=length(CLIST); + num3=length(FIXGLIST); + num=0; + repeat(num3, + num=num+1; + tmp1=FIXGLIST_num; + num4=indexof(tmp1,"="); + if(num4>0, + tmp2=substring(tmp1,num4,length(tmp1)); + tmp=substring(tmp1,0,num4-1); + println(SCEOUTPUT,tmp+"="+text(tmp2)+";"); + ); + ); + if(VERNUM==0, + println(SCEOUTPUT,"Openfile('"+Texmov+"figs.tex');"); + println(SCEOUTPUT,"Texcom('\begin{animateinline}{"+text(CUT)+"}');"); + , + println(SCEOUTPUT,"Openfile('"+Texpara+"figs.tex');"); + ); + println(SCEOUTPUT,""); + forall(0..DVALL,k, + s=PLIST_(k+1); + println(SCEOUTPUT,"s="+format(s,5)+";"); + GLIST=[]; + COM2ndlist=[]; + GCLIST=FIXGCLIST; + Movieframe(s); + clrscr(); // 15.06.17 + Plist=[]; + Pnamelist=[]; + Pvaluelist=[]; + ALLPlist=remove(allpoints(),[SW,NE,MF]); + RMPlist=[]; + forall(1..length(ALLPlist), + tmp=indexof(STPvaluelist_#,","); + tmp1=substring(STPvaluelist_#,1,tmp-1); + tmp2=substring(STPvaluelist_#,tmp,length(STPvaluelist_#)-1); + if(parse(format(Lcrd(ALLPlist_#)_1,5))==parse(tmp1), + if(parse(format(Lcrd(ALLPlist_#)_2,5))==parse(tmp2), + RMPlist=append(RMPlist,ALLPlist_#); + ); + ); + ); + MVPlist=remove(ALLPlist,RMPlist); + forall(MVPlist, + tmp=Lcrd(#); + tmp1=format(re(tmp_1),5); + tmp2=format(re(tmp_2),5); + tmp="["+tmp1+","+tmp2+"]"; + Plist=append(Plist,#.name+"="+tmp+";"); + Pnamelist=append(Pnamelist,#.name); + Pvaluelist=append(Pvaluelist,tmp); + ); + forall(1..length(Plist), + print(SCEOUTPUT,Plist_#); + println(SCEOUTPUT," Assignrep('"+Pnamelist_#+"',"+Pvaluelist_#+");"); + ); + num3=length(GLIST); + num=0; + GL=[]; + forall(GCLIST, + GL=append(GL,#_1); + ); + repeat(num3, + num=num+1; + tmp1=GLIST_num; + num4=indexof(tmp1,"="); + tmp2=substring(tmp1,num4,length(tmp1)); + tmp=substring(tmp1,0,num4-1); + //if(indexof(tmp2,"=")>0, + if(substring(tmp2,0,5)=="Param", + num5=indexof(tmp2,"="); + tmp3=substring(tmp2,num5,length(tmp2)-2); + tmp3=parse(tmp3); + if(tmp3_1==tmp3_2, + tmp2="Pointdata([0,0])"; + ); + ); + println(SCEOUTPUT,tmp+"="+text(tmp2)+";"); + ); + forall(GOUTLIST, + tmp=#_1; + println(SCEOUTPUT,"Tmpout=ReadOutData('"+tmp+"');"); + println(SCEOUTPUT,"execstr(Tmpout);"); + ); + if(VERNUM==1, + if(k==0, + tmp1=apply(Parafirsthead,Removespace(#)); + , + if(k<DVALL, + tmp1=apply(Parahead,Removespace(#)); + , + tmp1=apply(Paralasthead,Removespace(#)); + ); + ); + tmp1=apply(tmp1,if(length(#)==0,"newline",#)); + tmp=select(1..length(tmp1),indexof(tmp1_#,"Common")>0); + tmp2=apply(Commonhead,Removespace(#)); + tmp2=apply(tmp2,if(length(#)==0,"newline",#)); + tmp1_(tmp_1)=tmp2; + tmp1=flatten(tmp1); + forall(tmp1, + println(SCEOUTPUT,"Texcom('"+#+"');"); + ); + ); + tmp=indexof(ULEN,"cm"); // 16.05.19from + if(tmp>0, + tmp1=Removespace(substring(ULEN,0,tmp-1)); + tmp2=0.5/parse(tmp1) + ); // 16.05.19upto + tmp=indexof(ULEN,"mm"); + if(tmp>0, + tmp1=Removespace(substring(ULEN,0,tmp-1)); + tmp2=5/parse(tmp1); + ); + tmp="Setwindow(["+text(XMIN)+","+text(XMAX+tmp2)+ + "],["+text(YMIN)+","+text(YMAX+tmp2)+"]);";// 16.05.19 + println(SCEOUTPUT,tmp);// 16.05.19 + println(SCEOUTPUT,"Beginpicture('"+ULEN+"');"); + tmp="Setwindow(["+text(XMIN)+","+text(XMAX)+ + "],["+text(YMIN)+","+text(YMAX)+"]);";// 16.05.19 + println(SCEOUTPUT,tmp);// 16.05.19 + forall(1..num2,l, + println(SCEOUTPUT,CLIST_l+";"); + ); + forall(1..length(COM2ndlist),l, + println(SCEOUTPUT,COM2ndlist_l+";"); + ); + println(SCEOUTPUT,"Endpicture("+ADDAXES+");"); + if(VERNUM==0, + println(SCEOUTPUT,""); + println(SCEOUTPUT,"Texcom('');"); + if(k<DVALL, + println(SCEOUTPUT,"Texcom('\newframe');"); + println(SCEOUTPUT,""); + , + println(SCEOUTPUT,"Texcom('\end{animateinline}')"); + println(SCEOUTPUT,"Closefile();"); + println(SCEOUTPUT,"quit();"); + closefile(SCEOUTPUT); + ); + , + if(k==0, + tmp1=apply(Parafirsttail,Removespace(#)); + , + if(k<DVALL, + tmp1=apply(Paratail,Removespace(#)); + , + tmp1=apply(Paralasttail,Removespace(#)); + ); + ); + tmp1=apply(tmp1,if(length(#)==0,"newline",#)); + tmp=select(1..length(tmp1),indexof(tmp1_#,"Common")>0); + tmp2=apply(Commontail,Removespace(#)); + tmp2=apply(tmp2,if(length(#)==0,"newline",#)); + tmp1_(tmp_1)=tmp2; + tmp1=flatten(tmp1); + forall(tmp1, + println(SCEOUTPUT,"Texcom('"+#+"');"); + ); + if(k==DVALL, + println(SCEOUTPUT,""); + println(SCEOUTPUT,"Closefile();"); + println(SCEOUTPUT,"quit();"); + closefile(SCEOUTPUT); + ); + ); + Windispg(GL); + time=1000/CUT; + wait(time); + GLIST=[]; + GCLIST=[]; + COM2ndlist=[]; + GOUTLIST=[]; + ); +); + +Mkmovietexmain():=( + TEXOUTPUT=openfile(Texmov+"main"+".tex"); // 15.03.28 + println(TEXOUTPUT,""); + println(TEXOUTPUT,"\documentclass{article}"); + println(TEXOUTPUT,"\usepackage{amsmath,amssymb}"); // 16.07.06 + println(TEXOUTPUT,"\usepackage{graphicx}"); + println(TEXOUTPUT,"\usepackage[dvipdfmx]{animate}"); + println(TEXOUTPUT,"\usepackage{color}"); + println(TEXOUTPUT,"\usepackage{ketpic,ketlayer}"); + println(TEXOUTPUT,"\setmargin{20}{20}{20}{20}"); + println(TEXOUTPUT,"\begin{document}"); + println(TEXOUTPUT,"\input{"+Texmov+"figs.tex}%"); + println(TEXOUTPUT,"\end{document}"); + closefile(TEXOUTPUT); +); + +Mkmoviesh():=( + regional(parentorg,tmp); + parentorg=Texparent;//17.04.10 + Texparent="";//17.04.10 + tmp=Fhead;// 15.03.28 + Fhead=Texmov; + if(length(Shellparent)>0, + Makeshell() + , + Makebat(); + ); + Fhead=tmp; + Texparent=parentorg;//17.04.10 +); + +Texmovie():=( + VERNUM=0; + Mkmovie(); + Mkmovietexmain(); + Mkmoviesh(); +); + +Mkparatexmain():=( + TEXOUTPUT=openfile(Texpara+"main"+".tex"); + println(TEXOUTPUT,""); + println(TEXOUTPUT,"\documentclass[landscape,10pt]{article}"); + println(TEXOUTPUT,"\usepackage{amsmath,amssymb}"); // 16.07.06 + println(TEXOUTPUT,"\usepackage{graphicx}"); + println(TEXOUTPUT,"\usepackage[dvipdfmx,colorlinks=true,linkcolor=black]{hyperref}"); + println(TEXOUTPUT,"\AtBeginDvi{\special{pdf:tounicode 90ms-RKSJ-UCS2}}"); + println(TEXOUTPUT,"\usepackage{color}"); + println(TEXOUTPUT,"\usepackage{ketpic,ketlayer,ketslide}"); + println(TEXOUTPUT,"\ketmarginE"); + println(TEXOUTPUT,"\ketslideinit"); + println(TEXOUTPUT,"\begin{document}"); + println(TEXOUTPUT,"\input{"+Texpara+"figs.tex}%"); + println(TEXOUTPUT,"\end{document}"); + closefile(TEXOUTPUT); +); + +Mkparash():=( + regional(tmp); + tmp=Fhead; + Fhead=Texpara; + if(length(Shellparent)>0, + Makeshell() + , + Makebat(); + ); + Fhead=tmp; +); + +Texpara():=( + VERNUM=1; + Mkmovie(); + Mkparatexmain(); + Mkparash(); +); + +Setpara(path,fstr,sL):=Setpara(path,fstr,sL,[]); // 16.12.27added +Setpara(pathorg,fstr,sL,options):=( +//help:Setpara("folder name","funstr","range",options); +//help:Setpara(folder,funstr,range,options); +//help:Setpara(options=["m/r","Div=25"]); +//help:Setpara(options=["Frate=10","Scale=1","OpA=[loop]"] for animation); + regional(path);//17.04.10 + if(length(pathorg)==0, path=Slidename,path=pathorg);//17.04.10 + ParaPath=path; + ParaFstr=fstr; + ParaSL=sL; + ParaOp=options; + GLISTback=GLIST; + GCLISTback=GCLIST; + GOUTLISTback=GOUTLIST; + POUTLISTback=POUTLIST; + VLISTback=VLIST; + FUNLISTback=FUNLIST; + LETTERlistback=LETTERlist; + COM0thlistback=COM0thlist; + COM1stlistback=COM1stlist; + COM2ndlistback=COM2ndlist; +); + +Parafolder():=Parafolder(ParaPath,ParaFstr,ParaSL,ParaOp); +Parafolder(path,fstr,sL):=Parafolder(path,fstr,sL,[]); +Parafolder(path,fstr,sLorg,optionorg):=( +//help:Parafolder(foldername,1..4); +//help:Parafolder(foldername,"s=[0,1]"); +//help:Parafolder("mf(s)",foldername,"s=[0,1]"); +//help:Parafolder(options=["m/r","Div=25"]); +//help:Paraslide(para=folder:layery:pos:input,scale); +//help:Paraslide(para=folder:layery:pos:include:[width=100]); + regional(nn,sL,tmp,tmp1,tmp2,strL,eqL, + mksce,mktex,ndiv,options,sciall,sfL); + if(!isstring(ParaPath), + println("Setpara not executed"); + , + sL=sLorg;//16.12.24from + if(!isstring(sL), + tmp=indexof(fstr,"("); + tmp1=substring(fstr,tmp,length(fstr)); + tmp=indexof(tmp1,")"); + tmp1=substring(tmp1,0,tmp-1); + , + tmp=indexof(sL,"=");//16.12.21from + if(length(tmp)>0, + tmp1=substring(sL,0,tmp-1); + ); + );//16.12.21,24upto + parse("Movieframe("+tmp1+"):="+fstr); + options=optionorg; + tmp=Divoptions(options); + eqL=tmp_5; + strL=tmp_7; + if(length(strL)==0,options=append(options,"m"));//16.12.18 + mksce="A"; + mktex="A"; + ndiv=25; + forall(eqL, + tmp=Indexof(#,"="); + tmp1=Toupper(substring(#,0,1)); + tmp2=substring(#,tmp,length(#)); + if(tmp1=="D", + ndiv=parse(tmp2); + options=remove(options,[#]); + ); + ); + forall(strL, + tmp1=Toupper(substring(#,0,1)); + if(tmp1=="M", + mksce="Y"; mktex="Y"; + ); + ); + sL=sLorg; + if(isstring(sL), + tmp=indexof(sL,"="); + tmp1=parse(substring(sL,tmp,length(sL))); + sL=apply(0..ndiv,tmp1_1+#*(tmp1_2-tmp1_1)/ndiv); + ); + if(!isexists(Dirwork,path), + if(ErrFlag!=-1, + cmdL=["createdir",[Dq+path+Dq]];//16.12.20 + CalcbyS("crdr",cmdL,["m"]); + wait(200);//17.02.20from + repeat(1..30, + if(!isexists(Dirwork,path),wait(100)); + );//17.02.20upto + , + println(" ==> Changework may not work properly"); + sL=[]; + ); + , + if(mksce=="Y", + cmdL=[ + "rmdir",[Dq+path+Dq,Dq+"s"+Dq], + "createdir",[Dq+path+Dq] + ];//16.12.20 + CalcbyS("crdr",cmdL,["m"]); + wait(200);//17.02.20from + tmp=Dirwork+"/"+path; + if(iswindows(),tmp=replace(tmp,"/","\")); + repeat(1..30, + if(!isexists(Dirwork,path), + wait(100); + , + if(length(fileslist(tmp))>0,wait(100)); + ); + ); + );//17.02.20upto + ); + sciall=path+"/all.sce"; + if(iswindows(),sciall=replace(sciall,"/","\"));//17.02.20 + sfL=[]; + forall(1..(length(sL)),nn, + clrscr(); // 16.12.28 + GLIST=GLISTback; + GCLIST=GCLISTback; + GOUTLIST=GOUTLISTback; + POUTLIST=POUTLISTback; + VLIST=VLISTback; + FUNLIST=FUNLISTback; + LETTERlist=LETTERlistback; + COM0thlist=COM0thlistback; + COM1stlist=COM1stlistback; + COM2ndlist=COM2ndlistback; + tmp1=Sprintf(nn/1000,3); + tmp=indexof(tmp1,"."); + tmp1=substring(tmp1,tmp,length(tmp1)); + Fnamesci=path+"/p"+tmp1+".sce"; + sfL=append(sfL,Fnamesci); + Fnametex=replace(Fnamesci,".sce",".tex"); + Movieframe(sL_nn); +// windispg();//16.12.28 + if(!isexists(Dirwork,Fnamesci) % mksce=="Y", + if(ErrFlag!=-1, + Viewtex(); + ); + ); + ); // 16.12.27upto + cmdL=[ + "fL="+text(apply(sfL,Dq+#+Dq)),[], + "Dt=mgetl(fL(1));",[], + "Dt=Dt(1:(size(Dt,1)-1),:)",[], + "for I=2:size(fL,2),Tmp=mgetl(fL(I));N=size(Tmp,1)-1;Tmp1=Tmp(13:N,:);Dt=[Dt;Tmp1],end",[], + "mputl(Dt,'"+sciall+"')",[], + "exec('"+sciall+"',-1)",[] + ]; + if(ErrFlag!=-1, + if(!isexists(Dirwork,Fnametex) % mktex=="Y", + CalcbyS("all",cmdL,options); + , + println("Parafolder "+path+" finished");//16.12.20 + ); + if(length(after)>0, // 16.12.27 + parse(after); + ); + Fnamesci=Fhead+".sce"; + Fnametex=Fhead+".tex"; + ); + ); +); + +Flipbook():=( //17.04.09 + regional(parentorg,Dirworkorg,figfolder,sep,x0,y0,sc,title,tmp,tmp1,tmp2); + Dirworkorg=Dirwork; + Slidework(Dirwork); + figfolder=Dirwork; + parentorg=Texparent; + PageStyle="empty"; + title=Texparent; + tmp=Divoptions(ParaOp); + tmp1=tmp_5; + forall(tmp1, + tmp2=substring(Toupper(#),0,1); + if(tmp2=="T", + tmp=indexof(#,"="); + title=substring(#,tmp,length(#)); + ParaOp=remove(ParaOp,[#]); + ); + ); + x0="60"; y0="5"; sc="1"; + tmp=select(ParaOp,islist(#)); + if(length(tmp)>0, + x0=text(tmp_1_1); + y0=text(tmp_1_2); + ParaOp=remove(ParaOp,[tmp_1]); + ); + tmp=select(ParaOp,!islist(#) & isreal(#)); + if(length(tmp)>0, + sc=text(tmp_1); + ParaOp=remove(ParaOp,[tmp_1]); + ); + Parafolder(); + Changework(Dirworkorg); + if(isstring(Slidename), + Texparent=Slidename; + , + Texparent=parentorg+"flip"; + ); + SCEOUTPUT = openfile(Texparent+".txt"); + println(SCEOUTPUT,"%title//"); + println(SCEOUTPUT,"\pagestyle{empty};//"); + println(SCEOUTPUT,"new::"+title+"//"); + println(SCEOUTPUT, + "%repeat=,para="+ParaPath+":{0}:s{"+x0+"}{"+y0+"}:input:"+sc+"//"); + closefile(SCEOUTPUT); + Changework(figfolder); + Setslidebody("black"); + Setslidehyper(""); + Mkslides(); + Changework(Dirworkorg); + Texparent=parentorg; +); + +Animatefile():=Animatefile(Dirwork,ParaPath); +Animatefile(path,folder):=( +//help:Animatefile(); +//help:Animatefile(Dirwork,ParaPath); + regional(FRate, Scale, OpA, pa,fname,eqL,tmp,tmp1,tmp2); + tmp=divoptions(ParaOp); + eqL=tmp_5; + FRate="10"; + Scale="1"; + OpA=""; + forall(eqL, + tmp1=Toupper(substring(#,0,2)); + tmp=indexof(#,"="); + tmp2=substring(#,tmp,length(#)); + if(tmp1=="FR", + FRate=tmp2; + ); + if(tmp1=="SC", + Scale=tmp2; + ); + if(tmp1=="OP", + if(substring(tmp2,0,1)!="[",tmp2="["+tmp2+"]"); + OpA=tmp2; + ); + ); + pa=replace(path,"\","/"); + fname="anim"+folder+".tex"; + tmp=Dirwork+"/"+folder; + path=replace(tmp,"\","/"); + if(iswindows(),tmp=replace(tmp,"/","\")); + tmp1=fileslist(tmp); + tmp1=tokenize(tmp1,","); + tmp1=select(tmp1,indexof(#,".tex")>0); + SCEOUTPUT= openfile(fname); + println(SCEOUTPUT,"\def\parapath{"+pa+"}%"); //17.06.22 + println(SCEOUTPUT,"\begin{animateinline}"+OpA+"{"+FRate+"}%"); + forall(1..(length(tmp1)), + if(Scale==1, // 17.08.30from + tmp="\input{\parapath/"; + tmp=tmp+folder+"/"+tmp1_#+"}%"; + , + tmp="\scalebox{"+Scale+"}{\input{\parapath/";//17.06.22(3lines) + tmp=tmp+folder+"/"+tmp1_#+"}}%"; + ); // 17.08.30upto + println(SCEOUTPUT,tmp); +// println(SCEOUTPUT,""); //17.06.25 + if(#<length(tmp1), + println(SCEOUTPUT,"\newframe%"); + ); + ); + println(SCEOUTPUT,"\end{animateinline}%"); + closefile(SCEOUTPUT); + println(fname+" has been generated"); +); + +//help:end(); + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketcindylibmvhelpE.txt b/texmf-dist/scripts/ketpic/ketlib/ketcindylibmvhelpE.txt new file mode 100644 index 00000000..9a7edb2e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketcindylibmvhelpE.txt @@ -0,0 +1,4 @@ +//help:start(); +//help:Moviedata*(generate movie/para data); +//help:Paraamble*(Define preamble and postamble); +//help:end(); diff --git a/texmf-dist/scripts/ketpic/ketlib/ketcindylibmvhelpJ.txt b/texmf-dist/scripts/ketpic/ketlib/ketcindylibmvhelpJ.txt new file mode 100644 index 00000000..354d6596 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketcindylibmvhelpJ.txt @@ -0,0 +1,4 @@ +//help:start(); +//help:Moviedata*(movie繝繝シ繧ソ繧貞ョ夂セゥ +//繧ェ繝励す繝ァ繝ウ : "Cut=シ醍ァ偵ョ繧ウ繝樊焚(20)", "Div=蜈ィ菴薙ョ繧ウ繝樊焚(80)"); +//help:end(); diff --git a/texmf-dist/scripts/ketpic/ketlib/ketcindylibmvlog.txt b/texmf-dist/scripts/ketpic/ketlib/ketcindylibmvlog.txt new file mode 100644 index 00000000..b39a48e0 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketcindylibmvlog.txt @@ -0,0 +1,66 @@ +// e: 2017.08.19 +// Help of Setpara changed +// e: 2017.06.25 +// Animatefile changed (remove blank lines) +// e: 2017.06.22 +// Animatefile changed (parapath) +// e: 2017.06.18 +// Animatefile added +// e: 2017.04.10 +// Mkmoviesh changed ( Texparent ) +// Ketinitmv changed ( Ketinit included ) +// e: 2017.04.09 +// Ketinitmv changed ( Shellfile="mv" added ) +// Flipbook added +// s:2017.04.08 +// bugs fixed +// e: 2017.02.26 +// Paraamble debugged ( \def\ketcbox{white} added ) +// e: 2017.02.20 +// Parafolder debugged ( waiting time ) +// e: 2017.02.19 +// Paraamble debugged ( "colorframe" ) +// e: 2016.12.29 +// Parafolder changed (rmdir added); +// e: 2016.12.28 +// Parafolder changed (clrscr,windispg); +// e: 2016.12.27 +// Setpara added ( for Para button ) +// Parafolder changed( "m" for remake) +// e: 2016.12.26 +// Parafolder debugged("quit" removed from all.sce) +// e: 2016.12.25 +// Parafolder debugged/changed (OK for "Scetex=m or m,r") +// e: 2016.12.24 +// Parafolder debugged (definition of movieframe ) +// e: 2016.12.22 +// Parafolder changed ( not executed when Errflg=-1 from Changework ) +// e: 2016.12.21 +// Parafolder changed ( for functionstring ) +// e: 2016.12.19 +// Parafolder debugged +// e: 2016.12.15 +// Parafolder added +// e: 2016.12.10 +// Setpara added (global var ParaTitle added ) +// e: 2016.08.10 +// Ketinitmv changed ( Paraamble() added) +// e: 2016.07.06 +// amsmath,amssymb added +// putnotes => putnotec in paraamble + +//////////// old //// +// s: 2015.06.20 v1.4.6 +// e: 2015.06.22 v1.5.0 +// .cs adopted +// movie, para embodied +// e: 2015.07.10 v1.5.1 +// applied to Deqplot +// e: 2015.07.10 v1.5.2 +// rename "start","end" to "First", "Last" +// e: 2016.04.01 v1.5.3 +// rename Texmovie to Texmov +// e: 2016.05.19 +// Mkmovie changed ( for name of axis ) +//////// To Reverse Sequence + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketcindylibout.cs b/texmf-dist/scripts/ketpic/ketlib/ketcindylibout.cs new file mode 100644 index 00000000..baf06a73 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketcindylibout.cs @@ -0,0 +1,5359 @@ +// Copyright (C) 2014 Setsuo Takato, KETCindy Japan project team +// +//This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see <http://www.gnu.org/licenses/> +// + +println("ketcindyout(2017.06.23) loaded"); + +//help:start(); + +WritetoS(fname,cmdL):=( +// help:WritetoS("outdata",cmdL); + regional(tmp,tmp1,tmp2,filename); + if(indexof(fname,".")==0, + filename=fname+".sce"; + , + filename=fname; + ); + SCEOUTPUT = openfile(filename); + tmp="cd('"+Dirwork+"');//"; + println(SCEOUTPUT,tmp); +// tmp1=replace(Dirlib,"\","/"); + tmp="Ketlib=lib("+Dq+Libname+Dq+");//"; + println(SCEOUTPUT,tmp); + tmp="Ketinit();//"; + println(SCEOUTPUT,tmp); + tmp="Setwindow([XMIN,XMAX],[YMIN,YMAX]);"; // 16.06.26from + tmp=Assign(tmp,["XMIN",XMIN,"XMAX",XMAX,"YMIN",YMIN,"YMAX",YMAX]); + println(SCEOUTPUT,tmp); // 16.06.26upto + if(iswindows(), // 17.01.11from + println(SCEOUTPUT,"setlanguage('en')"); + ); // 17.01.11upto + tmp="pi=%pi;////"; + println(SCEOUTPUT,tmp); + forall(cmdL, + println(SCEOUTPUT,#+"//"); + ); + closefile(SCEOUTPUT); +); + +kcS(path,fname):=kcS(path,fname,[]); +kcS(path,fname,optionorg):=( +//help:kcS(PathS,"boxdata"); +//help:kcS(options=["r/m"]); + regional(options,tmp,tmp1,tmp2,eqL,strL,filename,flg); + if(indexof(fname,".")==0, + filename=fname+".sce"; + , + filename=fname; + ); + options=optionorg; + tmp=Divoptions(options); + eqL=tmp_5; + strL=tmp_7; + forall(eqL, + tmp=indexof(#,"="); + tmp1=substring(#,0,tmp-1); + tmp2=substring(#,tmp,length(#)); + ); + flg=0; + forall(strL, + if(Toupper(substring(#,0,1))=="R", + flg=0; + options=remove(options,[#]); + ); + if(Toupper(substring(#,0,1))=="M", + flg=1; + ); + ); + if(flg==0, + tmp2=replace(filename,".sce",".txt"); + tmp1=load(tmp2); + if(length(tmp1)==0, + flg=1; + ); + ); + if(flg==1, + tmp1=""; // 15.10.08 from + if(iswindows(), + tmp2=Batparent; + , + tmp2=Shellparent; + ); + flg=0; + forall(reverse(1..length(tmp2)), + if(flg==0, + tmp=substring(tmp2,#-1,#); + if(tmp=="/" % tmp=="\", // 14.01.15 + tmp1=substring(tmp2,0,#-1); + tmp2=substring(tmp2,#,length(tmp2)); + flg=1; + ); + ); + ); + if(length(tmp1)>0, + setdirectory(tmp1); + ); // 15.10.08 to + if(iswindows(), + SCEOUTPUT = openfile("kc.bat"); + println(SCEOUTPUT,"cd "+Dq+Dirwork+Dq); + tmp=Dq+path+Dq+" -nb -nwni -f "+filename; + println(SCEOUTPUT,tmp); + println(SCEOUTPUT,"exit"); + closefile(SCEOUTPUT); + println(kc(Dirwork+Batparent,Dirlib,Fnametex));// 16.05.29, 0605 + , + SCEOUTPUT = openfile("kc.sh"); + println(SCEOUTPUT,"#!/bin/sh"); + println(SCEOUTPUT,"cd "+Dq+Dirwork+Dq); + tmp=Dq+path+Dq+" -nwni -f "+filename; + println(SCEOUTPUT,tmp); + println(SCEOUTPUT,"exit 0"); + closefile(SCEOUTPUT); + println(kc(Dirwork+Shellparent,Mackc+Dirlib,Fnametex));// 16.05.29 + ); + wait(WaitUnit); + setdirectory(Dirwork); + ); +); + +SetpathS():=( + regional(tmp,tmp1); + if(!isstring(PathS), // 15.12.11 + Setdirectory(Dirbin); // 15.12.07 + tmp=load(Shellfile); + if(iswindows(), + tmp=tokenize(tmp," -nb"); + PathS=tmp_1; + , + tmp=tokenize(tmp," -nwni"); + tmp=tokenize(tmp_1,"/Applications/sci"); + PathS="/Applications/sci"+tmp_2; + ); + setdirectory(Dirwork); + ); + PathS; +); + +ErrhandleS(fname):=( // 2016.02.28 + regional(str); //17.04.14 + if(indexof(PathS,"-6.")==0, + str=["if iserror(-1) then"," error=lasterror()+'????';"]; + str=append(str," errclear(-1);"); // 16.03.14 + str=append(str," Fd=mopen("+Dq+wfile+Dq+",'wt');"); + str=append(str," mfprintf(Fd,'%s','Error: '+error);"); + str=append(str," mclose(Fd);"); + str=append(str," quit();"); + str=append(str,"end;"); + str; + , + str=[]; //17.04.14 + ); +); + +Testfunstr(funstr,varx,vary):=( + regional(var,val,fun,tmp,tmp1,tmp2); + fun=replace(funstr,".x","(1)"); // 16.05.19 + fun=replace(fun,".y","(2)"); // 16.05.19 + tmp=indexof(varx,"="); + var=substring(varx,0,tmp-1); + val=substring(varx,tmp+1,length(varx)); + tmp=indexof(val,","); + val=substring(val,0,tmp-1); + tmp1=replace(fun,var,"("+val+")"); + tmp=indexof(vary,"="); + var=substring(vary,0,tmp-1); + val=substring(vary,tmp+1,length(vary)); + tmp=indexof(val,","); + val=substring(val,0,tmp-1); + tmp1=replace(tmp1,var,"("+val+")"); + tmp1; +); + +CalcbyS(name,cmd):=CalcbyS(name,SetpathS(),cmd,[]); +CalcbyS(name,Arg1,Arg2):=( + if(isstring(Arg1), + CalcbyS(name,Arg1,Arg2,[]); + , + CalcbyS(name,SetpathS(),Arg1,Arg2); + ); +); +CalcbyS(name,path,cmd,optionorg):=( +//help:CalcbyS("a",cmd); +//help:CalcbyS(options= ["m/r","Wait=10","Cat=middle"]]); +//help:CalcbyS(options1= ["Ncol=2","File=result","Dig=5"]]); + regional(options,tmp,tmp1,tmp2,tmp3,tmp4,realL,strL,eqL, + ncoL,cat,dig,flg,wflg,file,nc,arg,cmdS,cmdlist,wfile,ext, + waiting, errcheck); + options=optionorg; + tmp=divoptions(options); + eqL=tmp_5; + realL=tmp_6; + strL=tmp_7; + cat="M";//16.11.24 + ncoL=2; + ext=".txt"; + waiting=10; + dig=5; + wfile=""; + forall(eqL, + tmp=indexof(#,"="); + tmp1=Toupper(substring(#,0,2)); + tmp2=substring(#,tmp,length(#)); + if(tmp1=="CA", + cat=Toupper(substring(tmp2,0,1));// 16.11.24 + options=remove(options,[#]); + ); + if(tmp1=="NC", + ncoL=parse(tmp2); + options=remove(options,[#]); + ); + if(tmp1=="EX", + if(indexof(tmp2,".")==0,ext="."+tmp2,ext=tmp2); + options=remove(options,[#]); + ); + if(tmp1=="WA", + waiting=parse(tmp2); + options=remove(options,[#]); + ); + if(tmp1=="DI", + dig=parse(tmp2); + options=remove(options,[#]); + ); + if(tmp1=="FI", // 16.06.26from + wfile=tmp2; + options=remove(options,[#]); + ); // 16.06.26upto + ); + if(wfile=="", + if(cat=="Y", + wfile=Fhead+name; + , + wfile="resultS"; + ); + ); + if(indexof(wfile,".")==0,// 16.06.26from + wfile=wfile+ext; + ); // 16.06.26upto + wflg=0; + forall(strL, + tmp=Toupper(substring(#,0,1)); + if(tmp=="M", + wflg=1; + options=remove(options,[#]); + ); + if(tmp=="R", + wflg=-1; + options=remove(options,[#]); + ); + ); + if(CONTINUED==0, + if((wflg==0) & (cat=="Y"), // 16.11.24 + tmp=load(wfile); + if(length(tmp)==0,wflg=1); + ); + ); + file=Fhead+name; + cmdS=cmd; + cmdlist=[]; + forall(1..floor(length(cmdS)/2),nc, //17.05.18 + tmp1=cmdS_(2*nc-1); + tmp1=replace(tmp1,LFmark,""); // 16.06.12 + tmp1=replace(tmp1,CRmark,""); // 16.12.13 + if(nc==length(cmdR)/2, //16.10.23from + if(indexof(tmp1,"=")==0,tmp1="="+tmp1); + ); //16.10.23from + if(substring(tmp1,0,1)=="=", +// tmp1=name+tmp1; // 16.12.20 + ); + tmp2=cmdS_(2*nc); // list of argments + tmp3=""; + tmp4=""; + errcheck=0; + forall(tmp2,arg, + if(isstring(arg), + if(Toupper(arg)=="ERROR", + errcheck=1; + , + tmp3=tmp3+replace(arg,"'",Dq)+","; + ); + , + if(!islist(arg), + tmp3=tmp3+textformat(arg,dig)+","; + , + tmp=select(arg,isstring(#) % islist(#)); + if(length(tmp)>0, + tmp3=tmp3+"list("; + tmp4=")"; + , + tmp3=tmp3+"["; + tmp4="]"; + ); + forall(arg, + if(isstring(#), + tmp3=tmp3+replace(#,"'",Dq)+","; + , + if(!islist(#), // 15.11.01 from + tmp3=tmp3+textformat(#,dig)+","; + , + tmp=textformat(#,dig); + tmp=replace(tmp,"],[","];["); + tmp3=tmp3+tmp+","; + ); // 15.11.01 upto + ); + ); + tmp3=substring(tmp3,0,length(tmp3)-1)+tmp4+","; + ); + ); + ); + if(length(tmp3)>0, + tmp3=substring(tmp3,0,length(tmp3)-1); + tmp1=tmp1+"("+tmp3+");"; + ); + if(errcheck==1, + if(indexof(Dirlib,"sciL5")>0, // 17.03.20 + cmdlist=append(cmdlist,"errcatch(-1,'continue','nomessage');"); + ); // 17.03.20 + ); + cmdlist=append(cmdlist,tmp1); + if(errcheck==1, + tmp=ErrhandleS(wfile); + cmdlist=concat(cmdlist,tmp); + ); + ); + if(CONTINUED==1, + ComOutList=concat(ComOutList,cmdlist); + , + if(cat=="Y", + tmp=[]; + tmp=append(tmp,"Fd=mopen("+Dq+file+".txt"+Dq+",'wt');"); + // 16.03.11 from + tmp=append(tmp,"mfprintf(Fd,'%s',"+name+");"); + tmp=append(tmp,"mclose(Fd);"); + cmdlist=concat(cmdlist,tmp); +// tmp="fprintfMat("+Dq+file+".txt"+Dq+","+name+")"; +// cmdlist=append(cmdlist,tmp); // 16.03.11 upto + , +// tmp="mputl(['????'],"+Dq+file+".txt"+Dq+");"; // 16.06.2 from +// cmdlist=concat(cmdlist,[tmp]); // 16.06.2 upto + ); + if(cat!="Y", // 16.12.18 + cmdlist=append(cmdlist,"mputl('||||','"+wfile+"')"); + ); + cmdlist=append(cmdlist,"quit()"); + if(wflg==0, + tmp1=load(file+".sce"); + if(length(tmp1)==0, + wflg=1; + , + tmp1=tokenize(tmp1,"////"); + tmp1=tokenize(tmp1_2,"//"); + tmp1=tmp1_(1..(length(tmp1)-1)); + if(length(tmp1)!=length(cmdlist), + wflg=1; + , + tmp=select(1..length(tmp1),tmp1_#!=cmdlist_#); + if(length(tmp)>0, wflg=1); + ); + ); + ); + if(wflg==0,wflg=-1); // 15.10.16 + if(wflg==1, + if(length(wfile)>0, // 15.10.05 + SCEOUTPUT=openfile(wfile); + println(SCEOUTPUT,""); + closefile(SCEOUTPUT); + ); + WritetoS(file+".sce",cmdlist); + kcS(path,file,concat(options,["m"])); // 15.09.25 + ); + flg=0; + tmp1=floor(waiting*1000/WaitUnit); + repeat(tmp1, + if(flg==0, + tmp=load(wfile); + if(length(tmp)>=4, + tmp2=substring(tmp,length(tmp)-4,length(tmp)); + if(tmp2=="////" % tmp2=="||||" % tmp2=="????", // 16.08.09 + if(indexof(Toupper(tmp),"ERROR")>0, + println(tmp); + flg=2; + , + flg=1; + ); + ); + tmp2=#*WaitUnit/1000; + , + if(wflg==-1, + flg=-1; + , + wait(WaitUnit); + ); + ); + ); + ); + if(flg<=0, + ErrFlag=1; + if(flg==-1, + println(wfile+" does not exist"); + , + tmp="("+text(waiting)+" s )"; + println(wfile+" not generated "+tmp); + ); + , + if(flg==1, + println(" CalcbyS succeeded "+name+"("+text(tmp2)+" sec)"); //16.06.03 + , + ErrFlag=1; + ); + ); + ); + if(wflg>-1, +// wait(WaitUnit); + ); +); + +Scifun(name,fun,argL):=Scifun(name,fun,argL,[]);//16.10.22 +Scifun(name,fun,argL,optionorg):=( +//help:Scifun("1","date()",[]); +//help:Scifun(options=["Disp=y"]); + regional(nm,options,eqL,disp,cmdL,fname, + tmp,tmp1,tmp2); + nm="sc"+name; + fname=Fhead+nm+".txt"; + options=optionorg; + tmp=divoptions(options); + precise=6; + disp=1; + pack=[]; + set=[]; + add=""; + eqL=tmp_5; + forall(eqL, + tmp=indexof(#,"="); + tmp1=Toupper(substring(#,0,3)); + tmp2=substring(#,tmp,length(#)); + if((tmp1=="DIS") % (tmp1=="DSP") , + tmp=Toupper(substring(tmp2,0,1)); + if((tmp=="F") % (tmp=="N"), + disp=0; + ); + options=remove(options,[#]); + ); + ); + cmdL=[]; + cmdL=concat(cmdL,[ + nm+"="+fun,argL, + "Fd=mopen",[Dq+fname+Dq,Dq+"wt"+Dq], + "Sla=char(47)+char(47);",[], + "mputl",["string("+nm+")+Sla","Fd"], + "mputl",["Sla","Fd"], + "mclose",["Fd"] + ]); + options=append(options,"Wait=2"); + CalcbyS(nm,cmdL,options); + if(ErrFlag==0, + tmp=load(fname); + tmp=replace(tmp,"////",""); + tmp=tokenize(tmp,"//"); + tmp=apply(tmp,if(!isstring(#),textformat(#,6),Dq+#+Dq)); + if(length(tmp)==1, + tmp=tmp_1; + ); + tmp=nm+"="+text(tmp); + parse(tmp); + if(disp==1, // 15.11.24 + println(nm+" is : "); + println(parse(nm)); + ); + ); + parse(nm); +); + +WritetoR(fname,cmdL):=WritetoR(fname,cmdL,[]); +WritetoR(fname,cmdL,options):=( +// help:WritetoR("outdata",cmdL); + regional(eqL,tmp,tmp1,tmp2,filename,waiting); + if(indexof(fname,".")==0, + filename=fname+".r"; + , + filename=fname; + ); + tmp=divoptions(options); + eqL=tmp_5; + waiting=5; + forall(eqL, + tmp=indexof(#,"="); + tmp1=substring(#,0,tmp-1); + tmp2=substring(#,tmp,length(#)); + if(Toupper(substring(tmp1,0,1))=="W", + waiting=parse(tmp2); + ); + ); + SCEOUTPUT = openfile(filename); + tmp1=replace(Dirwork,"\","/"); + tmp="setwd("+Dq+tmp1+Dq+")##"; + println(SCEOUTPUT,tmp); + tmp1=replace(Dirlib,"\","/"); + tmp="load("+Dq+tmp1; + tmp=tmp+"/ketpic_ltd.Rdata"+Dq+")##"; + println(SCEOUTPUT,tmp); + println(SCEOUTPUT,"Ketinit()##"); // 16.07.07 + tmp="Setwindow(c(XMIN,XMAX),c(YMIN,YMAX))####"; // 16.06.26from + tmp=Assign(tmp,["XMIN",XMIN,"XMAX",XMAX,"YMIN",YMIN,"YMAX",YMAX]); + println(SCEOUTPUT,tmp); + forall(cmdL, + println(SCEOUTPUT,#+"##"); + ); + closefile(SCEOUTPUT); +// flg=0; +// tmp1=floor(waiting*1000/WaitUnit); +// repeat(tmp1, +// if(flg==0, +// tmp=load(filename); +// if(length(tmp)>0, +// flg=1; +// , +// wait(WaitUnit); +// ); +// ); +// ); +); + +kcR(path,fname):=kcR(path,fname,[]); +kcR(path,fname,optionorg):=( +//help:kcR(PathR,"boxdata"); +//help:kcR(options=["m/r","Wait=10"]); + regional(options,tmp,tmp1,tmp2,eqL,strL,filename,ferr,flg); + if(indexof(fname,".")==0, + filename=fname+".r"; + , + filename=fname; + ); + options=optionorg; + tmp=Divoptions(options); + eqL=tmp_5; + strL=tmp_7; + forall(eqL, + tmp=indexof(#,"="); + tmp1=substring(#,0,tmp-1); + tmp2=substring(#,tmp,length(#)); + ); + flg=0; + forall(strL, + if(Toupper(substring(#,0,1))=="R", + flg=0; + options=remove(options,[#]); + ); + if(Toupper(substring(#,0,1))=="M", + flg=1; + options=remove(options,[#]); + ); + ); + if(flg==0, + tmp2=replace(filename,".r",".txt"); + tmp1=load(tmp2); + if(length(tmp1)==0, + flg=1; + ); + ); + if(flg==1, + tmp1=""; // 15.10.08 from + if(iswindows(), + tmp2=Batparent; + , + tmp2=Shellparent; + ); + flg=0; + forall(reverse(1..length(tmp2)), + if(flg==0, + tmp=substring(tmp2,#-1,#); + if(tmp=="/" % tmp=="\", // 14.01.15 + tmp1=substring(tmp2,0,#-1); + tmp2=substring(tmp2,#,length(tmp2)); + flg=1; + ); + ); + ); + if(length(tmp1)>0, + setdirectory(tmp1); + ); // 15.10.08 to + ferr="errormessageR.txt";//16.10.22from + SCEOUTPUT=openfile(ferr); + closefile(SCEOUTPUT);//16.10.22uptp + if(iswindows(), + SCEOUTPUT = openfile("kc.bat"); + println(SCEOUTPUT,"cd "+Dq+Dirwork+Dq); + tmp=Dq+path+"\R"+Dq+" --vanilla --slave < "+filename+" 2> "+ferr; + //16.10.22 + println(SCEOUTPUT,tmp); + println(SCEOUTPUT,"exit"); + closefile(SCEOUTPUT); + println(kc(Dirwork+Batparent,Dirlib,Fnametex));// 16.05.29,06.05 + , + SCEOUTPUT = openfile("kc.sh"); + println(SCEOUTPUT,"#!/bin/sh"); + println(SCEOUTPUT,"cd "+Dq+Dirwork+Dq); + if(PathR=="",tmp="R",tmp=PathR);//16.10.20 + tmp=tmp+" --vanilla --slave < "+filename+" >& "+ferr;//16.10.22 + println(SCEOUTPUT,tmp); + println(SCEOUTPUT,"exit 0"); + closefile(SCEOUTPUT); + println(kc(Dirwork+Shellparent,Mackc+Dirlib,Fnametex));// 16.05.29,06.05 + ); + wait(WaitUnit); + setdirectory(Dirwork); + ); +); + +Dataframe(nmL,dL):=Dataframe(nmL,dL,[]); +Dataframe(nmL,dL,options):=( +//help:Dataframe(["name","no1","no2"],dtL); +//help:Dataframe(options=["Dig=5"]); + regional(dig,tmp,tmp1,tmp2,out); + dig=5; + tmp=Divoptions(options); + tmp=tmp_5; + forall(tmp, + tmp1=Toupper(substring(#,0,1)); + tmp2=indexof(#,"="); + tmp2=substring(#,tmp2,length(#)); + if(tmp1=="D", + dig=parse(tmp2); + ); + ); + out="data.frame("; + forall(1..(length(nmL)), + tmp1=nmL_#; + tmp2=column(dL,#); + tmp2=apply(tmp2,if(isstring(#),Dq+#+Dq,format(#,dig))); + tmp=tmp1+"="+tmp2+","; + out=out+tmp; + ); + out=substring(out,0,length(out)-1)+")"; + out=replace(out,"[","c("); + out=replace(out,"]",")"); +); + +CalcbyR(name,cmd):=CalcbyR(name,PathR,cmd,[]); +CalcbyR(name,Arg1,Arg2):=( + if(isstring(Arg1), + CalcbyR(name,Arg1,Arg2,[]); + , + CalcbyR(name,PathR,Arg1,Arg2); + ); +); +CalcbyR(name,path,cmd,optionorg):=( +//help:CalcbyR("Pr",cmd); +//help:CalcbyR(options=["m/r","Wait=2","Cat=yes","File=result" ]); + regional(options,tmp,tmp1,tmp2,tmp3,realL,strL,eqL, + cat,dig,flg,wflg,file,nc,arg,cmdR,cmdlist,wfile,ext,waiting); + options=optionorg; + tmp=divoptions(options); + eqL=tmp_5; + realL=tmp_6; + strL=tmp_7; + dig=5; + cat="Y"; + wfile=""; + ext=".txt"; + waiting=2; + forall(eqL, + tmp=indexof(#,"="); + tmp1=Toupper(substring(#,0,1)); + tmp2=substring(#,tmp,length(#)); + if(tmp1=="C", + cat=Toupper(substring(tmp2,0,1)); + options=remove(options,[#]); + ); + if(tmp1=="W", + waiting=parse(tmp2); + options=remove(options,[#]); + ); + if(tmp1=="E", + if(indexof(tmp2,".")==0,ext="."+tmp2,ext=tmp2); + options=remove(options,[#]); + ); + if(tmp1=="D", + dig=parse(tmp2); + options=remove(options,[#]); + ); + if(tmp1=="F", + wfile=tmp2; + options=remove(options,[#]); + ); + ); + if(wfile=="", + if(cat=="Y", + wfile=Fhead+name+ext; + , + wfile="resultR"+ext; + ); + ); + wflg=0; + forall(strL, + tmp=Toupper(substring(#,0,1)); + if(tmp=="M", + wflg=1; + options=remove(options,[#]); + ); + if(tmp=="R", + wflg=-1; + options=remove(options,[#]); + ); + ); + if(CONTINUED==0, + if((wflg==0) & (cat!="N"), // 16.11.13 + tmp=load(wfile); + if(length(tmp)==0,wflg=1); + ); + ); + file=Fhead+name; +// cmdR=flatten(cmd); + cmdR=cmd; + cmdlist=[]; + if(dig>5, //16.10.28from + cmdlist=append(cmdlist,"options(digits="+text(dig+2)+");"); + ); //16.10.28upto + forall(1..floor(length(cmdR)/2),nc, //17.05.18 + tmp1=cmdR_(2*nc-1); + tmp1=replace(tmp1,LFmark,""); // 16.06.12 + if(nc==length(cmdR)/2, //16.10.23from +// if(indexof(tmp1,"=")==0,tmp1="="+tmp1);//16.12.20 + ); //16.10.23uptp + if(substring(tmp1,0,1)=="=", + tmp1=name+tmp1; + ); + tmp2=cmdR_(2*nc); // list of argments + tmp3=""; + forall(tmp2,arg, + if(isstring(arg), + tmp3=tmp3+replace(arg,"'",Dq)+","; + , + if(length(arg)==1, + tmp3=tmp3+textformat(arg,dig)+","; + , + tmp3=tmp3+"c("; + forall(arg, + tmp3=tmp3+textformat(#,dig)+","; + ); + tmp3=substring(tmp3,0,length(tmp3)-1)+")"+","; + ); + ); + ); + if(length(tmp3)>0, + tmp3=substring(tmp3,0,length(tmp3)-1); + tmp1=tmp1+"("+tmp3+")"; + ); + cmdlist=append(cmdlist,tmp1); + ); + if(CONTINUED==1, + ComOutList=concat(ComOutList,cmdlist); + , + if(cat=="Y", //16.10.23from + tmp="sharp=rawToChar(as.raw(35))"; + cmdlist=append(cmdlist,tmp); + tmp="sharps=paste(sharp,sharp,'\n',sep='')"; + cmdlist=append(cmdlist,tmp); + cmdlist=append(cmdlist,"if(is.matrix("+name+")){"); + cmdlist=append(cmdlist," "+name+"=as.data.frame("+name+")"); + cmdlist=append(cmdlist,"}"); + cmdlist=append(cmdlist,"if(is.list("+name+")){"); + tmp=" cat(names("+name+"),file='"+wfile+"',sep=',')"; + cmdlist=append(cmdlist,tmp); + tmp=" cat(sharps,file='"+wfile+"',append=TRUE)"; + cmdlist=append(cmdlist,tmp); + cmdlist=append(cmdlist," for(ii in 1:length("+name+")){"); + tmp=" cat("+name+"[[ii]],file='"+wfile+"',"; + tmp=tmp+"sep=',',append=TRUE)"; + cmdlist=append(cmdlist,tmp); + tmp=" cat(sharps,file='"+wfile+"',append=TRUE)"; + cmdlist=append(cmdlist,tmp); + cmdlist=append(cmdlist," }"); + cmdlist=append(cmdlist,"}else{"); + tmp=" cat("+name+",file='"+wfile+"',sep=',')"; + cmdlist=append(cmdlist,tmp); + tmp=" cat(sharps,file='"+wfile+"',append=TRUE)"; + cmdlist=append(cmdlist,tmp); + cmdlist=append(cmdlist,"}"); + tmp="cat('////',file='"+wfile+"',sep=',',append=TRUE)"; + cmdlist=append(cmdlist,tmp); + ); //16.10.23upto + if(cat!="Y", // 16.12.18 + cmdlist=append(cmdlist,"cat('////',file='"+wfile+"',sep='')"); + ); + cmdlist=append(cmdlist,"quit()"); + if(wflg==0, + tmp1=load(file+".r"); + if(length(tmp1)==0, + wflg=1; + , + tmp1=tokenize(tmp1,"####"); // 15.09.25 from + tmp1=tokenize(tmp1_2,"##"); + tmp1=tmp1_(1..(length(tmp1)-1)); + if(length(tmp1)!=length(cmdlist), + wflg=1; + , + tmp=select(1..length(tmp1),tmp1_#!=cmdlist_#); + if(length(tmp)>0, wflg=1); + ); + ); // 15.09.25 to + ); + if(wflg==0,wflg=-1); // 15.10.16 + if(wflg==1, + if(length(wfile)>0, // 15.10.05 + SCEOUTPUT=openfile(wfile); + println(SCEOUTPUT,""); + closefile(SCEOUTPUT); + ); + WritetoR(file+".r",cmdlist); + kcR(PathR,file,concat(options,["m"])); // 15.09.25 + ); + flg=0; + tmp1=floor(waiting*1000/WaitUnit); + repeat(tmp1, + if(flg==0, + tmp=load(wfile); + if(length(tmp)>=4, + tmp2=substring(tmp,length(tmp)-4,length(tmp)); + if(tmp2=="////", + tmp=substring(tmp,0,length(tmp)-4); + flg=1; + tmp2=#*WaitUnit/1000; + ); + , + if(wflg==-1, + flg=-1; + , + wait(WaitUnit); + ); + ); + ); + ); + if(flg<=0, + ErrFlag=1; + if(flg==-1, + println(wfile+" does not exist"); + , + tmp="("+text(waiting)+" s )"; + println(wfile+" not generated "+tmp); + tmp=load("errormessageR.txt");//16.10.22 + if(length(tmp)>1,println(tmp));//16.10.22 + ); + , + println(" CalcbyR succeeded "+name+" ("+text(tmp2)+" sec)"); + if(cat=="Y", // 16.10.29,11.25 + tmp1=tokenize(tmp,"##"); //16.10.23from + tmp1=tmp1_(1..(length(tmp1)-1)); + tmp2=[]; + forall(tmp1,tmp3, + if(!isstring(tmp3),tmp3=format(tmp3,dig)); + tmp=tokenize(tmp3,","); + tmp=apply(tmp,if(isstring(#),Dq+#+Dq,format(#,dig))); + tmp2=append(tmp2,tmp); + ); + if(length(tmp2)==1, + tmp2=tmp2_1; + if(length(tmp2)==1,tmp2=tmp2_1);//16.10.24 + , + tmp2=[tmp2_1,tmp2_(2..(length(tmp2)))]; + ); + tmp=name+"="+text(tmp2); //16.10.23upto + parse(tmp); + ); + ); + ); +); + +Rfun(name,fun,argL):=Rfun(name,fun,argL,[]);//16.10.22 +Rfun(name,fun,argL,optionorg):=( +//help:Rfun("1","rnorm",[10]); +//help:Rfun(options=["Disp=y"]); + regional(nm,options,eqL,disp,cmdL, + tmp,tmp1,tmp2); + nm="R"+name; + options=optionorg; + tmp=divoptions(options); + precise=6; + disp=1; + pack=[]; + set=[]; + add=""; + eqL=tmp_5; + forall(eqL, + tmp=indexof(#,"="); + tmp1=Toupper(substring(#,0,3)); + tmp2=substring(#,tmp,length(#)); + if((tmp1=="DIS") % (tmp1=="DSP") , + tmp=Toupper(substring(tmp2,0,1)); + if((tmp=="F") % (tmp=="N"), + disp=0; + ); + options=remove(options,[#]); + ); + ); + cmdL=[]; + cmdL=concat(cmdL,[ + nm+"="+fun,argL + ]); + options=concat(options,["Wait=2"]); + CalcbyR(nm,cmdL,options); + if(ErrFlag==0, + if(disp==1, // 15.11.24 + println(nm+" is : "); + println(parse(nm)); + ); + ); + parse(nm); +); + +Readcsv(file):=Readcsv(Dirwork,file,[]); +Readcsv(Arg1,Arg2):=( + if(isstring(Arg2), + Readcsv(Arg1,Arg2,[]); + , + Readcsv(Dirwork,Arg1,Arg2); + ); +); +Readcsv(pathorg,file,optionorg):=( +//help:Readcsv("ex.csv"); +//help:Readcsv(directory,"ex.csv"); +//help:Readcsv(options=["Head=yes","Sep=-999","Flat=no","Use=R"]); + regional(path,fname,fout,options,eqL,header,cmdL,sep, + dt,nrow,tmp,tmp1,tmp2,csv,use,flat); + options=optionorg; + tmp=divoptions(options); + eqL=tmp_5; + header=1; + sep="-999"; + csv="Y"; // 16.12.12 + use="R"; + flat="N"; + forall(eqL, + tmp=indexof(#,"="); + tmp1=substring(#,0,tmp-1); + tmp2=substring(#,tmp,length(#)); + tmp=Toupper(substring(tmp1,0,2)); + if(tmp=="HE", + tmp=Toupper(substring(tmp2,0,1)); + if(tmp=="F" % tmp=="N", + header=0; + options=remove(options,[#]); + ); + ); +// if(tmp=="WA", // removed:17.02.19 +// waiting=parse(tmp2); +// options=remove(options,[#]); +// ); + if(tmp=="SE", + sep=tmp2; + options=remove(options,[#]); + ); + if(tmp=="CS", + csv=Toupper(substring(tmp2,0,1)); + options=remove(options,[#]); + ); + if(tmp=="US", + use=Toupper(substring(tmp2,0,1)); + options=remove(options,[#]); + ); + if(tmp=="FL", + flat=Toupper(substring(tmp2,0,1)); + options=remove(options,[#]); + ); + ); + if(flat=="Y",csv="N"); + sep=","+sep; + tmp=indexof(file,"."); + if(tmp==0, + fname=file+".csv"; + fout=file+"sep.csv"; + , + fname=file; + tmp1=substring(file,0,tmp-1); + tmp2=substring(file,tmp-1,length(file)); + fout=tmp1+"sep"+tmp2; + ); + path=pathorg; + if(!isexists(path,fname), + println(path+" "+fname+" not found"); + , + path=replace(path,"\","/"); + if(use=="S", + cmdL=[ // 16.12.20from + "cd('"+path+"')",[], + "Dt=mgetl('"+fname+"');",[], + "cd('"+Dirwork+"')",[], + "Dt2=[]",[], + "for I=1:size(Dt,1), + Tmp=Dt(I,:)+'"+sep+"'; + Dt2=[Dt2;Tmp]; + end",[], + "mputl(Dt2,'"+fout+"')",[] + ]; + CalcbyS("sep",cmdL,options); + , + cmdL=[ + "setwd",[Dq+path+Dq], + "tmp1=readLines",[Dq+fname+Dq,"warn=FALSE"], + "fun=function(s) paste(s,"+Dq+sep+Dq+",sep="+Dq+Dq+")",[], + "tmp2=sapply(tmp1,fun)",[], + "writeLines",["tmp2",Dq+fout+Dq] + ]; + CalcbyR("sep",cmdL,concat(options,["Cat=n"])); + ); // 16.12.20upto + if(ErrFlag==1, + println("Readcsv not completed"); + , + dt=load(fout); + dt=tokenize(dt,sep); + dt=dt_(1..(length(dt)-1));//16.12.20 + if(isstring(dt_1),// 17.02.10from + if(indexof(dt_1,",")==0,csv="N"); + , + csv="N"; + );// 17.02.10upto + if(csv=="Y", + dt=apply(dt,tokenize(#,",")); + , + dt=apply(dt,[#]); + ); + forall(1..(length(dt)),nrow, + tmp1=dt_nrow; + tmp2=[]; + forall(tmp1, + if(!isstring(#), + tmp=#; + , + if(substring(#,0,1)==Dq, + tmp=parse(#); + , + tmp=#; + ); + ); + tmp2=append(tmp2,tmp); + ); + dt_nrow=tmp2; + ); + if(header==0,dt=dt_(2..(length(dt)))); + if(length(dt)==1, + dt=dt_1 + , + if(length(dt_1)==1, + dt=apply(dt,#_1); + ); + ); + dt; + ); + ); +); + +Writecsv(nmL,data,file):=Writecsv(nmL,data,file,[]); +Writecsv(nmL,dataorg,file,optionorg):=( +//help:Writecsv([],data,"ex.csv"); +//help:Writecsv(["a","b"],data,"ex.csv"); +//help:Writecsv(optins=["Col=1"]); + regional(nameL,data,eqL,strL,ncol,nrow,fname,dig,tmp,tmp1,tmp2); + ncol=0; // 17.02.09from + dig=5; + if(isstring(dataorg),data=parse(dataorg),data=dataorg); + if(islist(data_1), + ncol=length(data_1); + data=flatten(data); + ); // 17.02.09upto + options=optionorg; + tmp=divoptions(options); + eqL=tmp_5; + forall(eqL, + tmp=indexof(#,"="); + tmp1=substring(#,0,tmp-1); + tmp2=substring(#,tmp,length(#)); + if(Toupper(substring(tmp1,0,1))=="C", + ncol=parse(tmp2); + options=remove(options,[#]); + ); + ); + if(indexof(file,".")==0,fname=file+".csv",fname=file); + if(ncol==0,ncol=max(1,length(nmL))); + tmp1=mod(length(data),ncol); + if(tmp1>0, + tmp=apply(1..(ncol-tmp1),-1); + data=concat(data,tmp); + ); + nrow=length(data)/ncol; + if(length(nmL)<ncol, + nameL=apply(1..ncol,"c"+text(#)); +// tmp=nameL_length(nameL)+"##";//17.02.09 + tmp=nameL_(length(nameL));//17.02.09 + nameL_(length(nameL))=tmp; + , + nameL=nmL; + ); + SCEOUTPUT=openfile(fname); + tmp=text(nameL); + println(SCEOUTPUT,substring(tmp,1,length(tmp)-1)); + forall(1..nrow, + tmp1=data_(((#-1)*ncol+1)..(#*ncol)); + tmp2=""; + forall(tmp1, + tmp2=tmp2+textformat(#,5)+","; + ); + tmp2=substring(tmp2,0,length(tmp2)-1); + println(SCEOUTPUT,tmp2); + ); + closefile(SCEOUTPUT); +); + +PlotdataR(name1,func,var):=PlotdataR(name1,PathR,func,var); +PlotdataR(name1,Arg1,Arg2,Arg3):=( + if(islist(Arg3), + PlotdataR(name1,PathR,Arg1,Arg2,Arg3); + , + PlotdataR(name1,Arg1,Arg2,Arg3,[]); + ); +); +PlotdataR(name1,path,func,variable,optionorg):=( +//help:PlotdataR("1","dnorm(x)","x"); +//help:PlotdataR(options=["m/r","Num=50","Wait=10"]); + regional(options,tmp,tmp1,tmp2,tmp3,name,varstr,flg,Num, + Ltype,Noflg,eqL,strL,flg,outreg,filename,wfile,cmdL,waiting); + name="grR"+name1; + options=optionorg; + tmp=Divoptions(options); + eqL=tmp_5; + strL=tmp_7; + Num=50; + waiting=5; + outreg=0; + flg=0; + forall(eqL, + tmp=indexof(#,"="); + tmp1=substring(#,tmp,length(#)); + if(Toupper(substring(#,0,1))=="N", + Num=parse(tmp1); + options=remove(options,[#]); + ); + if(Toupper(substring(#,0,1))=="W", + waiting=parse(tmp1); + options=remove(options,[#]); + ); + if(Toupper(substring(#,0,1))=="O", + tmp=Toupper(substring(tmp1,0,1)); + if(tmp=="T" % tmp=="Y", outreg=1); + options=remove(options,[#]); + ); + ); + tmp=indexof(variable,"="); + if(tmp>0, + varstr=variable; + , + varstr=variable+"="+textformat([XMIN,XMAX],5); + ); + varstr=replace(varstr,"[","c("); + varstr=replace(varstr,"]",")"); + filename=Fhead+name+".r"; + wfile=Fhead+name+".txt"; + cmdL=MkprecommandR(); + cmdL=concat(cmdL,[ + name+"=Plotdata",[Dq+func+Dq,Dq+varstr+Dq,Dq+"Num="+text(Num)+Dq], + "WriteOutData",[Dq+wfile+Dq,Dq+name+Dq,name] + ]); + if(ErrFlag==0, + CalcbyR(name,cmdL,concat(options,["Cat=middle","Wait="+text(waiting)])); + ); + if(ErrFlag==1, + println("PlotdataR not completed"); + , + if(outreg==1, + OutFileList=remove(OutFileList,[wfile]); + OutFileList=append(OutFileList,wfile); + ); + ReadOutData(wfile); + Extractdata(name,options); + tmp=parse(name); + tmp1=name+"="+textformat(tmp,5); + parse(tmp1); + tmp2=apply(tmp,Lcrd(#)); + tmp2; + ); +); + +PlotdiscR(nm,fun,varrng):=PlotdiscR(nm,fun,varrng,[]); +PlotdiscR(nm,fun,varrng,options):=( +//help:PlotdiscR("1","dbinom(k,10,0.4)","k=[0,10]"); + regional(name,pb,cmdL,var,range,tmp,tmp1,tmp2,wfile); + name="grd"+nm; + tmp=indexof(varrng,"="); + var=substring(varrng,0,tmp-1); + range=parse(substring(varrng,tmp,length(varrng))); + if(length(range)==2, + range=(range_1)..(range_2); + ); + cmdL=[ + "fnb=function("+var+") "+fun,[], + name+"=sapply",[range,"fnb"] + ]; + wfile=Fhead+name+".txt"; + if(ErrFlag==0, + CalcbyR(name,cmdL,options); + ); + if(ErrFlag==1, + println("PlotdiscR not completed"); + , + tmp1=load(wfile); + tmp1=substring(tmp1,0,length(tmp1)-4); + tmp1=replace(tmp1,"##",""); + pb=tokenize(tmp1,","); + tmp=apply(range,[#,pb_(#+1)]); + Listplot(name,tmp,options); + ); +); + +Boxplot(nm,dataorg,ypos,dy):=Boxplot(nm,dataorg,ypos,dy,[]); +Boxplot(nm,dataorg,ypos,dy,optionorg):=( +//help:Boxplot("1",dt,2,1/2,[""]); + regional(options,name,data,bp,cmdL,waiting,tmp,tmp1,tmp2,tmp3,tmp4, + out,eqL,strL,pstr,ext,file,flg,wrflg); + name="bp"+nm; + options=optionorg; + tmp=divoptions(options); + eqL=tmp_5; + strL=tmp_7; + waiting=3; + wrflg=0; + forall(eqL, + tmp=indexof(#,"="); + tmp1=substring(#,0,tmp-1); + tmp2=substring(#,tmp,length(#)); + if(Toupper(substring(tmp1,0,1))=="W", + waiting=parse(tmp2); + options=remove(options,[#]); + ); + ); + forall(strL, + tmp=Toupper(substring(#,0,1)); + if(tmp=="R", + wrflg=-1; + options=remove(options,[#]); + ); + if(tmp=="M", + wrflg=1; + options=remove(options,[#]); + ); + ); + data=dataorg; + if(isstring(data), + if(indexof(data,".")==0,data=data+".dat"); + if(iswindows(), // 15.11.10 + data=replace(data,"/","\"); + flg="\"; + , + data=replace(data,"\","/"); + flg="/"; + ); + forall(reverse(1..length(data)), + if(length(flg)>0, + tmp=substring(data,#-1,#); + if(tmp==flg, + tmp3=substring(data,0,#-1); + tmp4=substring(data,#,length(data)); + if(indexof(tmp3,":")==0, // 11.11.10 + tmp=substring(tmp3,0,1); + if(tmp!=flg, + tmp3=Dirwork+flg+tmp3; + ); + ); + flg=""; + ); + ); + ); + if(length(flg)>0, + tmp3=Dirwork; //15.11.10 + tmp4=data; + ); + setdirectory(tmp3); + tmp=load(tmp4); + if(length(tmp)==0, ErrFlag=2); // 15.11.07 upto + setdirectory(Dirwork); + , + file=Fhead+name+".dat"; + tmp=load(file); + if(length(tmp)>0, + tmp1=tokenize(tmp,","); + tmp1=tmp1_(1..(length(tmp1)-1)); + , + tmp1=[]; + ); + flg=0; + if(length(tmp1)==length(data), + tmp=tmp1-data; + tmp=select(tmp,#!=0); + if(length(tmp)>0,flg=1); + , + flg=1; + ); + if(flg==1, + SCEOUTPUT=openfile(file); + forall(data, + print(SCEOUTPUT,textformat(#,5)+","); + ); + println(SCEOUTPUT,"////"); + closefile(SCEOUTPUT); +// wait(WaitUnit); + ); + data=file; + ); + data=replace(data,"\","/"); + cmdL=[ + "tmp=readLines",[Dq+data+Dq, "warn=FALSE"], + "tmp=substring",["tmp",1,"nchar(tmp)-4"], + "data=strsplit",["tmp",Dq+","+Dq,"fix=TRUE"], + "data=data[[1]]",[], + "fun=function(s) eval(parse(text=s))",[], + "data=sapply",["data","fun"], + "data=data[!is.na(data)]",[], + "tmp=boxplot",["data","plot=FALSE"], + "tmp1=tmp$stat",[], + "tmp2=tmp$out",[], + name+"=c(tmp1,tmp2)",[] + ]; + file=Fhead+name+".txt"; + options=append(options,"Wait="+text(waiting)); + if(wrflg==1,options=append(options,"m")); + if(wrflg==-1,options=append(options,"r")); + if(ErrFlag==0, + CalcbyR(name,cmdL,options); + ); + if(ErrFlag>0, + if(ErrFlag==1,println("Boxplot not completed")); + if(ErrFlag==2,println(Dq+data+Dq+" not found")); + , +// tmp=load(file);//16.10.23from +// println([1449,tmp]); +// tmp=replace(tmp,"/",""); +// tmp=tokenize(tmp,","); +// tmp=name+"="+textformat(tmp,5); +// parse(tmp);//16.10.23upto + bp=parse(name); + pstr="["; + tmp1=[bp_1,ypos-dy/2]; + tmp2=[bp_1,ypos+dy/2]; + Listplot(name+text(1),[tmp1,tmp2],["Msg=no"]); + pstr=pstr+Dq+"sg"+name+text(1)+Dq+","; + tmp1=[bp_2,ypos-dy]; + tmp2=[bp_2,ypos+dy]; + tmp3=[bp_4,ypos+dy]; + tmp4=[bp_4,ypos-dy]; + Listplot(name+text(2),[tmp1,tmp2,tmp3,tmp4,tmp1],["Msg=no"]); + pstr=pstr+Dq+"sg"+name+text(2)+Dq+","; + tmp1=[bp_5,ypos-dy/2]; + tmp2=[bp_5,ypos+dy/2]; + Listplot(name+text(3),[tmp1,tmp2],["Msg=no"]); + pstr=pstr+Dq+"sg"+name+text(3)+Dq+","; + tmp1=[bp_3,ypos-dy]; + tmp2=[bp_3,ypos+dy]; + Listplot(name+text(4),[tmp1,tmp2],["dr,2","Msg=no"]); + pstr=pstr+Dq+"sg"+name+text(4)+Dq+","; + tmp1=[bp_1,ypos]; + tmp2=[bp_2,ypos]; + Listplot(name+text(5),[tmp1,tmp2],["da","Msg=no"]); + pstr=pstr+Dq+"sg"+name+text(5)+Dq+","; + tmp1=[bp_4,ypos]; + tmp2=[bp_5,ypos]; + Listplot(name+text(6),[tmp1,tmp2],["da","Msg=no"]); + pstr=pstr+Dq+"sg"+name+text(6)+Dq+","; + out=bp_(6..length(bp)); + if(length(out)>0, + out=apply(out,[#,ypos]); + Pointdata(name+text(1),out,[0,"Size=4"]); + ); + pstr=substring(pstr,0,length(pstr)-1)+"]"; + println("generate totally "+name); + tmp=name+"="+pstr; + [bp_(1..5),out]; + ); +); + +Histplot(nm,dataorg):=Histplot(nm,dataorg,[]); +Histplot(nm,dataorg,optionorg):=( +//help:Histplot("1",data(fillename)); +//help:Histplot(options=["Breaks=","Den=no","Rel=no"]); + regional(options,name,data,waiting,hp,cmdL,tmp,tmp1,tmp2,tmp3,tmp4, + out,eqL,strL,breaks,bdata,cdata,pstr,file,flg,rwflg,density,relative); + name="hp"+nm; + options=optionorg; + tmp=divoptions(options); + eqL=tmp_5; + strL=tmp_7; + breaks = "breaks="+Dq+"Sturges"+Dq; + density=0; + relative=0; + waiting=3; + forall(eqL, + tmp=indexof(#,"="); + tmp1=substring(#,tmp,length(#)); + if(Toupper(substring(#,0,1))=="B", + if(substring(tmp1,0,1)=="[", + tmp1="c("+substring(tmp1,1,length(tmp1)-1)+")"; + ); + breaks="breaks="+tmp1; + options=remove(options,[#]); + ); + if(Toupper(substring(#,0,1))=="D", + tmp2=Toupper(substring(tmp1,0,1)); + if(tmp2=="T" % tmp2=="Y", + density=1; + ); + options=remove(options,[#]); + ); + if(Toupper(substring(#,0,1))=="R", + tmp2=Toupper(substring(tmp1,0,1)); + if(tmp2=="T" % tmp2=="Y", + relative=1; + ); + options=remove(options,[#]); + ); + if(Toupper(substring(#,0,1))=="W", + waiting=parse(tmp1); + options=remove(options,[#]); + ); + ); + wrflg=0; + forall(strL, + tmp=Toupper(substring(#,0,1)); + if(tmp=="R", + wrflg=-1; + options=remove(options,[#]); + ); + if(tmp=="M", + wrflg=1; + options=remove(options,[#]); + ); + ); + data=dataorg; + if(isstring(data), + if(indexof(data,".")==0,data=data+".csv"); + if(iswindows(), // 15.11.10 + data=replace(data,"/","\"); + flg="\"; + , + data=replace(data,"\","/"); + flg="/"; + ); + forall(reverse(1..length(data)), + if(length(flg)>0, + tmp=substring(data,#-1,#); + if(tmp==flg, + tmp3=substring(data,0,#-1); + tmp4=substring(data,#,length(data)); + if(indexof(tmp3,":")==0, // 11.11.10 + tmp=substring(tmp3,0,1); + if(tmp!=flg, + tmp3=Dirwork+flg+tmp3; + ); + ); + flg=""; + ); + ); + ); + if(length(flg)>0, + tmp3=Dirwork; //15.11.10 + tmp4=data; + ); + setdirectory(tmp3); + tmp=load(tmp4); + if(length(tmp)==0, ErrFlag=2); // 15.11.07 upto + setdirectory(Dirwork); + , + file=Fhead+name+".dat"; + tmp=load(file); + if(length(tmp)>0, + tmp1=tokenize(tmp,","); + tmp1=tmp1_(1..(length(tmp1)-1)); + , + tmp1=[]; + ); + flg=0; + if(length(tmp1)==length(data), + tmp=tmp1-data; + tmp=select(tmp,#!=0); + if(length(tmp)>0,flg=1); + , + flg=1; + ); + if(flg==1, + SCEOUTPUT=openfile(file); + forall(data, + print(SCEOUTPUT,textformat(#,5)+","); + ); + println(SCEOUTPUT,"////"); + closefile(SCEOUTPUT); +// wait(WaitUnit); + ); + data=file; + ); + data=replace(data,"\","/"); + cmdL=[ + "tmp=readLines",[Dq+data+Dq, "warn=FALSE"], + "tmp=substring",["tmp",1,"nchar(tmp)-4"], + "data=strsplit",["tmp",Dq+","+Dq,"fix=TRUE"], + "data=data[[1]]",[], + "fun=function(s) eval(parse(text=s))",[], + "data=sapply",["data","fun"], + "data=data[!is.na(data)]",[], + "tmp=hist",["data","plot=FALSE",breaks], + "tmp1=tmp$breaks",[], + "tmp2=tmp$count",[], + "tmp3=tmp$density",[], + name+"=c(tmp1,tmp2,tmp3)",[] + ]; + file=Fhead+name+".txt"; + options=append(options,"Wait="+text(waiting)); + if(wrflg==1,options=append(options,"m")); + if(wrflg==-1,options=append(options,"r")); + if(ErrFlag==0, + CalcbyR(name,cmdL,options); + ); + if(ErrFlag>0, + if(ErrFlag==1,println("Histplot not completed")); + if(ErrFlag==2,println(Dq+data+Dq+" not found")); + , +// tmp=load(file); +// tmp=replace(tmp,"/",""); +// tmp=tokenize(tmp,","); +// tmp=name+"="+textformat(tmp,5); +// parse(tmp); + hp=parse(name); + tmp1=(length(hp)-1)/3+1; + tmp2=tmp1+(length(hp)-1)/3; + bdata=hp_(1..tmp1); + if(density==0, + cdata=hp_((tmp1+1)..tmp2); + , + cdata=hp_((tmp2+1)..length(hp)); + ); + if(relative==1, + cdata=cdata/sum(cdata); + ); + options=append(options,"Msg=no"); // 15.10.03 + pstr="["; + forall(1..length(cdata), + tmp1=[bdata_#,0]; + tmp2=[bdata_#,cdata_#]; + tmp3=[bdata_(#+1),cdata_#]; + tmp4=[bdata_(#+1),0]; + Listplot(name+text(#),[tmp1,tmp2,tmp3,tmp4,tmp1],options); + pstr=pstr+Dq+"sg"+name+text(#)+Dq+","; + ); + pstr=substring(pstr,0,length(pstr)-1)+"]"; + println("generate totally "+name); + tmp=name+"="+pstr; + parse(tmp); + [bdata,cdata]; + ); +); + +Scatterplot(nm,file):=Scatterplot(nm,file,[]); +Scatterplot(nm,file,optionorg):=( +//help:Scatterplot("1",path+filename); +//help:Scatterplot(options=["Reg=yes",A,B,C,"Size"=4"]); + regional(tmp,tmp1,tmp2,fname,name,reg,eqL,reL,cdysize, + options,dtx,dty,nn,mx,my,sx,sy,sxy,rr,aa,bb,size); + name="sc"+nm; + options=optionorg; + tmp=divoptions(options); + eqL=tmp_5; + reL=tmp_6; + options=remove(options,reL); + cdysize=select(options,indexof(#,"size->")>0); + options=remove(options,cdysize); + size=4; + reg="yes"; + forall(eqL, + tmp=indexof(#,"="); + tmp1=Toupper(substring(#,0,1)); + tmp2=substring(#,tmp,length(#)); + if(tmp1=="R", + reg=tmp2; + options=remove(options,[#]); + ); + if(tmp1=="S", + size=parse(tmp2); + options=remove(options,[#]); + ); + ); + if(indexof(file,".")==0, + fname=file+".csv"; + , + fname=file; + ); + Readcsv(nm,fname); + tmp=concat(options,cdysize); + Pointdata(name,parse("rc"+nm),append(tmp,"Size="+text(size))); + tmp=parse("rc"+nm); + dtx=apply(tmp,#_1); + dty=apply(tmp,#_2); + nn=length(dtx); + mx=sum(dtx)/nn; + my=sum(dty)/nn; + sx=sqrt(dtx*dtx/nn-mx^2); + sy=sqrt(dty*dty/nn-my^2); + sxy=dtx*dty/nn-mx*my; + rr=sxy/sx/sy; + aa=sxy/sx^2; + bb=my-aa*mx; + tmp=Assign("a*x+b",["a",aa,"b",bb]); + if(reg!="no", + Plotdata(name,tmp,"x",append(options,"Num=2")); + ); + if(length(reL)>=2, + Framedata2(name,[reL_1,reL_2]); + if(length(reL)>2, + tmp="r="+textformat(rr,3)+",\ y="; + tmp=tmp+textformat(aa,3)+"x"; + if(bb>0,tmp=tmp+"+",tmp=tmp+"-"); + tmp=tmp+textformat(abs(bb),3); + Expr([reL_3,"e",tmp]); + ); + ); + [mx,my,sx,sy,sxy,rr,bb,aa]; +); + +Rulerscale(pt,hscale,vscale):=Rulerscale(pt,hscale,vscale,0.1); +Rulerscale(pt,hscale,vscale,tick):=( +//help:Rulerscale(A,["r",0,5,1],["s2",0,2,4]); +//help:Rulerscale(A,["r",0,5,1],["f",10,"a",20,"w2","b"]); +//help:Rulerscale(A,["r",0,5,1],["r",0,10,1],0.2); + regional(pA,pos,mrk,dir,tmp,tmp1,tmp2,tmp3); + pA=Lcrd(pt); + if(length(hscale)>0, + pos=[]; mrk=[]; dir=[]; + tmp=Toupper(substring(hscale_1,0,1)); + if(tmp=="R" % tmp=="F", + if(tmp=="R", + dir="s2"; + tmp1=hscale_2; + tmp2=hscale_3; + tmp3=hscale_4; + tmp=floor((tmp2-tmp1)/tmp3); + pos=apply(0..tmp,tmp1+#*tmp3); + mrk=apply(pos,text(#)); + dir=apply(1..length(pos),"s2"); + , + forall(2..(length(hscale)-2), + tmp1=hscale_(#); + tmp2=hscale_(#+1); + tmp3=hscale_(#+2); + if(isreal(tmp1), + pos=append(pos,tmp1); + if(isstring(tmp3), + dir=append(dir,tmp2); + mrk=append(mrk,tmp3); + , + dir=append(dir,"s2"); + mrk=append(mrk,tmp2); + ); + ); + ); + if(isreal(tmp2), + pos=append(pos,tmp2); + dir=append(dir,"s2"); + mrk=append(mrk,tmp3); + ); + ); + , + pos=hscale_(2..length(hscale)); + dir=apply(pos,"s2"); + mrk=apply(pos,text(#)); + ); + pos=apply(pos,[#,pA_2]); + forall(1..length(pos), + Expr([pos_#,dir_#,mrk_#]); + tmp1=pos_#; + tmp2=pos_#-[0,tick/SCALEY]; + Listplot("rsh"+text(#),[tmp1,tmp2],["Msg=no"]); + ); + ); + if(length(vscale)>0, + pos=[]; mrk=[]; dir=[]; + tmp=Toupper(substring(vscale_1,0,1)); + if(tmp=="R" % tmp=="F", + if(tmp=="R", + dir="w2"; + tmp1=vscale_2; + tmp2=vscale_3; + tmp3=vscale_4; + tmp=floor((tmp2-tmp1)/tmp3); + pos=apply(0..tmp,tmp1+#*tmp3); + mrk=apply(pos,text(#)); + dir=apply(1..length(pos),"w2"); + , + forall(2..(length(vscale)-2), + tmp1=vscale_(#); + tmp2=vscale_(#+1); + tmp3=vscale_(#+2); + if(isreal(tmp1), + pos=append(pos,tmp1); + if(isstring(tmp3), + dir=append(dir,tmp2); + mrk=append(mrk,tmp3); + , + dir=append(dir,"w2"); + mrk=append(mrk,tmp2); + ); + ); + ); + if(isreal(tmp2), + pos=append(pos,tmp2); + dir=append(dir,"w2"); + mrk=append(mrk,tmp3); + ); + ); + , + pos=vscale_(2..length(vscale)); + dir=apply(pos,"w1"); + mrk=apply(pos,text(#)); + ); + pos=apply(pos,[pA_1,#]); + forall(1..length(pos), + Expr([pos_#,dir_#,mrk_#]); + tmp1=pos_#; + tmp2=pos_#-[tick/SCALEX,0]; + Listplot("rsv"+text(#),[tmp1,tmp2],["Msg=no"]); + ); + ); +); + +MkprecommandR():=MkprecommandR(5); // 15.02.01 +MkprecommandR(prec):=( + regional(cmdL,Plist,Pnamelist,Pvaluelist,tmp,tmp1,tmp2); + Plist=[]; + Pnamelist=[]; + Pvaluelist=[]; + forall(remove(allpoints(),[SW,NE]), + tmp=Lcrd(#); + tmp1=format(re(tmp_1),prec);// 15.02.05 + tmp2=format(re(tmp_2),prec); + tmp="c("+tmp1+","+tmp2+")"; + Plist=append(Plist,#.name+"="+tmp); + Pnamelist=append(Pnamelist,#.name); + Pvaluelist=append(Pvaluelist,tmp); + ); + cmdL=[]; + forall(1..length(Plist), + cmdL=concat(cmdL,[Plist_#,[]]); + cmdL=concat(cmdL, + ["Assign("+Dq+Pnamelist_#+Dq+","+Pvaluelist_#+")",[]]); + ); + tmp2=sort(apply(VLIST,#_1)); // 16.02.03 from + tmp1=[]; + forall(tmp2,tmp, + tmp1=concat(tmp1,select(VLIST,#_1==tmp)); + ); + VLIST=tmp1;// 16.02.03 upto + forall(VLIST, + tmp=Rform(#_1); + tmp1=#_2; // 15.02.06 + if(!isstring(tmp1), + if(islist(tmp1), + tmp2="["; + forall(tmp1, + if(abs(#)<10^(-5), // 16.01.30 + tmp2=tmp2+"0,"; + , + tmp2=tmp2+format(#,prec)+","; + ); + ); + tmp1=substring(tmp2,0 + ,length(tmp2)-1)+"]"; + , + tmp1=format(tmp1,prec); + ); + ); + cmdL=concat(cmdL,["eval(parse(text="+tmp+Dq+tmp1+Dq+")",[]]); + tmp=substring(tmp,0,length(tmp)-1); + cmdL=concat(cmdL, + ["Assign("+Dq+tmp+Dq+","+tmp1+")",[]]); // 15.01.27 + ); + forall(OutFileList, + cmdL=concat(cmdL,["tmp=ReadOutData",[Dq+#+Dq]]); + ); +// forall(FUNLIST, // 16.04.23from +// cmdL=concat(cmdL,[#,[]]); +// ); // 16.02.17 upto +// forall(GLIST, +// tmp1=Rform(#); +// cmdL=concat(cmdL,[tmp1,[]]); +// );// 16.04.23upto + cmdL; +); + +MkprecommandS():=MkprecommandS(5); +MkprecommandS(prec):=( + regional(cmdL,Plist,Pnamelist,Pvaluelist,tmp,tmp1,tmp2); + cmdL=[]; + Plist=[]; + Pnamelist=[]; + Pvaluelist=[]; + forall(remove(allpoints(),[SW,NE]), + tmp=Lcrd(#); + tmp1=format(re(tmp_1),prec);// 15.02.05 + tmp2=format(re(tmp_2),prec); + tmp="["+tmp1+","+tmp2+"]"; + Plist=append(Plist,#.name+"="+tmp); + Pnamelist=append(Pnamelist,#.name); + Pvaluelist=append(Pvaluelist,tmp); + ); + forall(1..length(Plist), + cmdL=concat(cmdL,[Plist_#,[]]); + cmdL=concat(cmdL,["Assignrep('"+Pnamelist_#+"',"+Pvaluelist_#+")",[]]); + ); + tmp2=sort(apply(VLIST,#_1)); // 16.02.03 from + tmp1=[]; + forall(tmp2,tmp, + tmp1=concat(tmp1,select(VLIST,#_1==tmp)); + ); + VLIST=tmp1;// 16.02.03 upto + forall(VLIST, + tmp=Sciform(#_1); + tmp1=#_2; // 15.02.06 + if(!isstring(tmp1), + if(islist(tmp1), + if(!isstring(tmp1_1), // 16.11.14 + tmp2="["; + forall(tmp1, + if(abs(#)<10^(-prec), // 16.01.30 + tmp2=tmp2+"0,"; + , + tmp2=tmp2+format(#,prec)+","; + ); + ); + tmp1=substring(tmp2,0,length(tmp2)-1)+"]"; + , + tmp2="list("; // 16.11.14from + forall(tmp1, + tmp2=tmp2+#+","; + ); + tmp1=substring(tmp2,0,length(tmp2)-1)+")"; + ); // 16.11.14upto + , + tmp1=format(tmp1,prec); + ); + ); + cmdL=concat(cmdL,[tmp+"evstr('"+tmp1+"')",[]]); + tmp=substring(tmp,0,length(tmp)-1); + cmdL=concat(cmdL,["Assignrep('"+tmp+"',"+tmp1+")",[]]); // 15.01.27 + ); + forall(OutFileList, + tmp=["tmp=ReadOutData",[Dq+#+Dq], + "if length(tmp(1))>8,execstr(tmp),end",[]]; + cmdL=concat(cmdL,tmp); + ); + forall(FUNLIST, // 16.02.17 from + cmdL=concat(cmdL,[#,[]]); + ); // 16.02.17 upto + forall(GLIST, + tmp1=Sciform(#); + cmdL=concat(cmdL,[tmp1,[]]); + ); + cmdL; +); + +PlotdataS(name1,func,var):=PlotdataS(name1,func,var,[]); +PlotdataS(nm,fun,variable,optionorg):=( +//help:PlotdataS("1","besselj(1,x)","x"); +//help:PlotdataS(options=["m/r","Num=50","Wait=5","Mx=no"]); + regional(options,name,varstr,Num,waiting,mxcheck,outreg, + eqL,strL,fname,tmp,tmp1,tmp2,tmp3,cmdL,flg,wflg); + name="grsc"+nm; + fname=Fhead+name+".txt"; + options=optionorg; + tmp=Divoptions(options); + eqL=tmp_5; + strL=tmp_7; + Num=50; + waiting=5; + mxcheck=0; // 16.03.02 + outreg=0; + flg=0; + forall(eqL, + tmp=indexof(#,"="); + tmp1=Toupper(substring(#,0,1)); + tmp2=substring(#,tmp,length(#)); + if(tmp1=="N", + Num=parse(tmp2); + options=remove(options,[#]); + ); + if(tmp1=="W", + waiting=parse(tmp2); + options=remove(options,[#]); + ); + if(tmp1=="O", + tmp=Toupper(substring(tmp2,0,1)); + if(tmp=="T" % tmp=="Y", outreg=1); + options=remove(options,[#]); + ); + if(tmp1=="M", + tmp=Toupper(substring(tmp2,0,1)); + if(tmp=="T" % tmp=="Y", mxcheck=1); + options=remove(options,[#]); + ); + ); + wflg=0; + forall(strL, + tmp=Toupper(substring(#,0,1)); + if(length(#)==0, + options=remove(options,[#]); + ); + if(tmp=="M", + wflg=1; + options=remove(options,[#]); + ); + if(tmp=="R", + wflg=-1; + options=remove(options,[#]); + ); + ); + tmp=indexof(variable,"="); + if(tmp>0, + varstr=variable; + , + varstr=variable+"="+textformat([XMIN,XMAX],5); + ); + cmdL=MkprecommandS(); + cmdL=concat(cmdL,[ + name+"=Plotdata",[Dq+fun+Dq,Dq+varstr+Dq,Dq+"Num="+text(Num)+Dq], + "WriteOutData",[Dq+fname+Dq,Dq+name+Dq,name] + ]); + ErrFlag=0; // 16.03.02 from + if(mxcheck==1, + Mxfun(name,fun,[],["Disp=n"]); + tmp=parse("mx"+name); + if(!isstring(tmp),ErrFlag=1); + ); + options=append(options,"Wait="+text(waiting)); + if(wflg==1,options=append(options,"m")); + if(wflg==-1,options=append(options,"r"));// 16.03.02 upto + if(ErrFlag==0, + CalcbyS(name,cmdL,concat(options,["cat=middle","Wait="+text(waiting)])); + ); + if(ErrFlag==1, + println(" PlotdataS not completed"); + , + if(outreg==1, // 2016.03.02 ( // ) + OutFileList=remove(OutFileList,[wfile]); + OutFileList=append(OutFileList,wfile); + ); + ReadOutData(fname); + Extractdata(name,options); + tmp=parse(name); + tmp1=name+"="+textformat(tmp,5); + parse(tmp1); +// Addgraph(name); // 16.04.04 + tmp2=apply(tmp,Lcrd(#)); + tmp2; + ); +); + +Implicitplot(nm,fun,varx,vary):= + Implicitplot(nm,fun,varx,vary,[]); +Implicitplot(nm,fnorg,varx,vary,optionorg):=( +//help:Implicitplot("1","3*x^2+y^2=1","x=[-3,3]","y=[-3,3]"); +//help:Implicitplot(options2=["Wait=10","Out=no","Mx=no"]); + regional(options,name,fun,waiting,mxcheck,outreg, + eqL,reL,strL,fname,var,rng,val,tmp,tmp1,tmp2,cmdL,flg,wflg); + name="imp"+nm; + fname=Fhead+name+".txt"; + fun=fnorg; + tmp=indexof(fun,"="); + if(tmp>0, + tmp1=substring(fun,0,tmp-1); + tmp2=substring(fun,tmp,length(fun)); + fun=tmp1+"-("+tmp2+")"; + ); + options=optionorg; + tmp=Divoptions(options); + eqL=tmp_5; + reL=tmp_6; + strL=tmp_7; + waiting=5; // 16.02.29 + mxcheck=0; // 16.02.29 + outreg=0; + forall(eqL, + tmp=indexof(#,"="); + tmp1=Toupper(substring(#,0,2)); + tmp2=substring(#,tmp,length(#)); + if(tmp1=="WA", + waiting=parse(tmp2); + options=remove(options,[#]); + ); + if(tmp1=="OU", + tmp=Toupper(substring(tmp2,0,1)); + if(tmp=="T" % tmp=="Y", outreg=1); + options=remove(options,[#]); + ); + if(tmp1=="MX", + tmp=Toupper(substring(tmp2,0,1)); + if(tmp=="T" % tmp=="Y", mxcheck=1); + options=remove(options,[#]); + ); + ); + wflg=0; + forall(strL, + tmp=Toupper(substring(#,0,1)); + if(length(#)==0, + options=remove(options,[#]); + ); + if(tmp=="M", + wflg=1; + options=remove(options,[#]); + ); + if(tmp=="R", + wflg=-1; + options=remove(options,[#]); + ); + ); + tmp1=Testfunstr(fun,varx,vary); + tmp=apply([fun,varx,vary],Dq+#+Dq); + tmp_1=Sciform(tmp_1); + tmp=concat(tmp,reL); +// tmp=append(tmp,"Error"); // 16.02.29 + cmdL=MkprecommandS(); + cmdL=concat(cmdL,[ + "evstr",[tmp1,"Error"], // 16.03.15 + name+"=Implicitplot",tmp, // 16.03.15 + "WriteOutData",[Dq+fname+Dq,Dq+name+Dq,name] + ]); +// tmp=[""]; + ErrFlag=0; // 16.02.29 from + if(mxcheck==1, + Mxfun(name,"expand",[fun],["Disp=n"]); + tmp=parse("mx"+name); + if(!isstring(tmp),ErrFlag=1); + ); // 16.02.29 upto + options=concat(options,["Wait="+text(waiting)]); + if(wflg==1,options=append(options,"m")); + if(wflg==-1,options=append(options,"r")); + if(ErrFlag==0, + CalcbyS(name,cmdL,options); + ); + if(ErrFlag==1, + println(" Implicitplot not completed"); + , + if(outreg==1, + OutFileList=remove(OutFileList,[fname]); + OutFileList=append(OutFileList,fname); + ); + ReadOutData(fname); + Extractdata(name,options); + tmp=parse(name); + tmp1=name+"="+textformat(tmp,5); + parse(tmp1); +// Addgraph(name); // 16.04.04 + tmp2=apply(tmp,Lcrd(#)); + tmp2; + ); +); + +Hatchdata2(nm,iostr,pltlist):=Hatchdata2(nm,iostr,pltlist,[]); +Hatchdata2(nm,iostr,pltlist,options):=( +// help: Hatchdata2("1",["i"],[["crAB"]],["dr,0.7"]); + regional(name,Ltype,Noflg,PdL,tmp,tmp1,tmp2,opstr,opcindy,Str,Outflg,Inflg); + name="ha"+nm; +// println("output hatchdata2 "+name); + tmp=Divoptions(options); + Ltype=tmp_1; + Noflg=tmp_2; + Inflg=tmp_3; + Outflg=tmp_4; + if(Inflg==0 & Outflg==0, Inflg=1;Outflg=1); // 15.05.15 + opstr=tmp_(length(tmp)-1); + opcindy=tmp_(length(tmp)); + Str="Hatchdata("; + if(islist(iostr), + tmp="list("; + forall(iostr, + tmp=tmp+Dq+#+Dq+","; + ); + Str=Str+substring(tmp,0,length(tmp)-1)+"),"; + , + Str=Str+Dq+iostr+Dq+","; + ); + PdL=pltlist; + if(isstring(PdL_1) % !islist(PdL),PdL=[PdL]); + forall(PdL,tmp1, + tmp="list("; + forall(tmp1, + if(length(#)>1, + tmp=tmp+#+","; + , + tmp=tmp+Dq+#+Dq+","; + ); + ); + Str=Str+substring(tmp,0,length(tmp)-1)+"),"; + ); + Str=substring(Str,0,length(Str)-1)+opstr+")"; + if(Noflg<3, // 2015.07.16 + GLIST=append(GLIST,name+"="+Str); + ); + if(Noflg<2, + if(Outflg==1, + println("Output Hatchdata2 "+name); + SCIWRLIST=append(SCIWRLIST,name); + ); + if(Inflg==1, + println("Input Hatchdata2 "+name); + if(length(SCIRELIST)==0, + ReadOutData(Fnameout); + ); + tmp=parse(name); + if(islist(tmp), + Extractdata(name,["nodisp"]); // 12.19 + ); + SCIRELIST=append(SCIRELIST,name); + ); + ); + if(Noflg<1, + if(isstring(Ltype), + Ltype=GetLinestyle(text(Noflg)+Ltype,name); + , + if(Noflg==1,Ltype=0); + ); + if(Inflg==1, + GCLIST=append(GCLIST,[name,Ltype,opcindy]); + ); + ); +); + +Hatchdata(nm,iostr,pltlist):=Hatchdata(nm,iostr,pltlist,[]); +Hatchdata(nm,iostr,pltlist,optionorg):=( +//help:Hatchdata("1","ii",[["gr1"],["gr2","n"]]); +//help:Hatchdata(options=["Wait=5"]); + regional(options,name,fun,eqL,reL,strL,outreg, + plt,fname,options,tmp,tmp1,tmp2,tmp3,flg,wflg,waiting); + name="ha"+nm; + fname=Fhead+name+".txt"; + fun=fnorg; + tmp=indexof(fun,"="); + if(tmp>0, + tmp1=substring(fun,0,tmp-1); + tmp2=substring(fun,tmp,length(fun)); + fun=tmp1+"-("+tmp2+")"; + ); + options=optionorg; + tmp=Divoptions(options); + eqL=tmp_5; + reL=tmp_6; + strL=tmp_7; + waiting=5; + outreg=0; + forall(eqL, + tmp=indexof(#,"="); + tmp1=Toupper(substring(#,0,1)); + tmp2=substring(#,tmp,length(#)); + if(tmp1=="W", + waiting=parse(tmp2); + options=remove(options,[#]); + ); + if(tmp1=="O", + tmp=Toupper(substring(tmp2,0,1)); + if(tmp=="T" % tmp=="Y", outreg=1); + options=remove(options,[#]); + ); + ); + wflg=0; + forall(strL, + tmp=Toupper(substring(#,0,1)); + if(length(#)==0, + options=remove(options,[#]); + ); + if(tmp=="M", + wflg=1; + options=remove(options,[#]); + ); + if(tmp=="R", + wflg=-1; + options=remove(options,[#]); + ); + ); + if(islist(iostr), + tmp1=text(apply(iostr,Dq+#+Dq)); + tmp1=replace(tmp1,"[","list("); //16.02.14 + tmp1=replace(tmp1,"]",")"); //16.02.14 + , + tmp1=Dq+iostr+Dq; + ); + if(!islist(pltlist_1), + tmp2=apply(pltlist,if(length(#)==1,Dq+#+Dq,Chunderscore(#))); + tmp2=text(tmp2); + tmp2="list("+substring(tmp2,1,length(tmp2)-1)+"),"; + , + tmp2=""; + forall(pltlist,plt, + tmp=apply(plt,if(length(#)==1,Dq+#+Dq,Chunderscore(#))); // 16.04.06 + tmp=text(tmp); + tmp="list("+substring(tmp,1,length(tmp)-1)+")"; + tmp2=tmp2+tmp+","; + ); + ); + cmdL=MkprecommandS(); + tmp2=substring(tmp2,0,length(tmp2)-1); + tmp=[tmp1,tmp2]; + tmp=concat(tmp,reL); + tmp=append(tmp,"Error"); // 16.03.05 + cmdL=concat(cmdL,[ + "Setscaling",[SCALEY], + "Setunitlen",[Dq+ULEN+Dq], + name+"=Hatchdata",tmp, //16.12.23 + "WriteOutData",[Dq+fname+Dq,Dq+name+Dq,name], + ]); + options=append(options,"Wait="+text(waiting)); + if(wflg==1,options=concat(options,["m"])); + if(wflg==-1,options=concat(options,["r"])); + if(ErrFlag==0, + CalcbyS(name,cmdL,options); + ); + if(ErrFlag==1, + err("Hatchdata not completed"); + , + if(outreg==1, + OutFileList=remove(OutFileList,[fname]); + OutFileList=append(OutFileList,fname); + ); + if(ErrFlag==0, + ReadOutData(fname); + Extractdata(name,options); + ); + ); +); + +Dotfilldata(nm,iostr,pltlist):= + Dotfilldata(nm,iostr,pltlist,[]); +Dotfilldata(nm,iostr,pltlist,optionorg):=( +//help:Dotfilldata("1","ii",[["sg1"],["sg2"]]); +//help:Dotfilldata(options=[0.3,"Wait=5"]); + regional(options,name,fun,eqL,reL,strL,outreg, + plt,fname,options,tmp,tmp1,tmp2,tmp3,flg, + wflg,waiting,dense); + name="df"+nm; + fname=Fhead+name+".txt"; + fun=fnorg; + tmp=indexof(fun,"="); + if(tmp>0, + tmp1=substring(fun,0,tmp-1); + tmp2=substring(fun,tmp,length(fun)); + fun=tmp1+"-("+tmp2+")"; + ); + options=optionorg; + tmp=Divoptions(options); + eqL=tmp_5; + reL=tmp_6; + strL=tmp_7; + dense=0.3; + waiting=5; + outreg=0; + forall(reL, + dense=#; + ); + forall(eqL, + tmp=indexof(#,"="); + tmp1=Toupper(substring(#,0,1)); + tmp2=substring(#,tmp,length(#)); + if(tmp1=="W", + waiting=parse(tmp2); + options=remove(options,[#]); + ); + if(tmp1=="O", + tmp=Toupper(substring(tmp2,0,1)); + if(tmp=="T" % tmp=="Y", outreg=1); + options=remove(options,[#]); + ); + ); + wflg=0; + forall(strL, + tmp=Toupper(substring(#,0,1)); + if(length(#)==0, + options=remove(options,[#]); + ); + if(tmp=="M", + wflg=1; + options=remove(options,[#]); + ); + if(tmp=="R", + wflg=-1; + options=remove(options,[#]); + ); + ); + if(islist(iostr), + tmp1=text(apply(iostr,Dq+#+Dq)); + tmp1=replace(tmp1,"[","list("); //16.02.14 + tmp1=replace(tmp1,"]",")"); //16.02.14 + , + tmp1=Dq+iostr+Dq; + ); + if(!islist(pltlist_1), + tmp2=apply(pltlist,if(length(#)==1,Dq+#+Dq,#)); + tmp2=text(tmp2); + tmp2="list("+substring(tmp2,1,length(tmp2)-1)+"),"; + , + tmp2=""; + forall(pltlist,plt, + tmp=apply(plt,if(length(#)==1,Dq+#+Dq,#)); + tmp=text(tmp); + tmp="list("+substring(tmp,1,length(tmp)-1)+")"; + tmp2=tmp2+tmp+","; + ); + ); + cmdL=MkprecommandS(); + tmp2=substring(tmp2,0,length(tmp2)-1); + tmp=[tmp1,tmp2]; + tmp=concat(tmp,dense); + cmdL=concat(cmdL,[ + "Setscaling",[SCALEY], + "Setunitlen",[Dq+ULEN+Dq], + name+"=Dotfilldata",tmp, + "WriteOutData",[Dq+fname+Dq,Dq+name+Dq,name], + ]); + options=append(options,"Wait="+text(waiting)); + if(wflg==1,options=concat(options,["m"])); + if(wflg==-1,options=concat(options,["r"])); + if(ErrFlag==0, + CalcbyS(name,cmdL,options); + ); + if(ErrFlag==1, + println("Dotfilldata not completed"); + , + if(outreg==1, + OutFileList=remove(OutFileList,[fname]); + OutFileList=append(OutFileList,fname); + ); + if(ErrFlag==0, + ReadOutData(fname); + tmp1=parse(name); + forall(tmp1, + tmp=#_1; + draw(tmp,pointsize->1); + ); + Com2nd("tmp=ReadOutData("+Dq+fname+Dq+")"); + Com2nd("execstr(tmp)"); + Com2nd("Drwpt(list("+name+")"+")"); + ); + ); +); + +WritetoA(fname,cmdL):=( +// help:WritetoA("outdata",cmdL); + regional(tmp,tmp1,tmp2,filename,wfilename,endmark); + if(indexof(fname,".")==0, + filename=fname+".rr"; + , + filename=fname; + ); + wfilename=replace(filename,".rr",".txt"); + SCEOUTPUT = openfile(filename); +// tmp=replace(Dirlib,"\","/"); +// tmp="load("+Dq+tmp+"/oshima/os_muldif.rr"+Dq+")$/*####*/"; + tmp="/*####*/"; // 16.03.11 + println(SCEOUTPUT,tmp); + tmp="output("+Dq+wfilename+Dq+")$/*##*/"; // 16.05.18from + println(SCEOUTPUT,tmp); // 16.05.18upto + forall(1..(length(cmdL)), + tmp1=cmdL_#; + tmp=indexof(tmp1,";"); // 16.05.18from + if(tmp>0,endmark=";",endmark="$"); + tmp1=replace(tmp1,";",""); // 16.05.18upto + if(#==length(cmdL)-1, + println(SCEOUTPUT,tmp1+";/*##*/"); + , + println(SCEOUTPUT,tmp1+endmark+"/*##*/");//16.05.18 + ); + ); + closefile(SCEOUTPUT); +); + +kcA(fname):=kcA(fname,[]); +kcA(fname,optionorg):=( +//help:kcA("boxdata"); +//help:kcA(options=["r/m"]); + regional(options,tmp,tmp1,tmp2,eqL,strL,filename,flg); + if(indexof(fname,".")==0, + filename=fname+".rr"; + , + filename=fname; + ); + options=optionorg; + tmp=Divoptions(options); + eqL=tmp_5; + strL=tmp_7; + forall(eqL, + tmp=indexof(#,"="); + tmp1=substring(#,0,tmp-1); + tmp2=substring(#,tmp,length(#)); + ); + flg=0; + forall(strL, + if(Toupper(substring(#,0,1))=="R", + flg=0; + options=remove(options,[#]); + ); + if(Toupper(substring(#,0,1))=="M", + flg=1; + ); + ); + if(flg==0, + tmp2=replace(filename,".rr",".txt"); + tmp1=load(tmp2); + if(length(tmp1)==0, + flg=1; + ); + ); + if(flg==1, + tmp1=""; + if(iswindows(), + tmp2=Batparent; + , + tmp2=Shellparent; + ); + flg=0; + forall(reverse(1..length(tmp2)), + if(flg==0, + tmp=substring(tmp2,#-1,#); + if(tmp=="/" % tmp=="\", // 14.01.15 + tmp1=substring(tmp2,0,#-1); + tmp2=substring(tmp2,#,length(tmp2)); + flg=1; + ); + ); + ); + if(length(tmp1)>0, + setdirectory(tmp1); + ); + if(iswindows(), + SCEOUTPUT = openfile("kc.bat"); + println(SCEOUTPUT,"cd "+Dq+Dirwork+Dq); + tmp="del "+replace(filename,".rr",".txt"); + println(SCEOUTPUT,tmp); + tmp=Dq+PathA+Dq+" -quiet -f "+Dq+filename+Dq; + println(SCEOUTPUT,tmp); + println(SCEOUTPUT,"exit"); + closefile(SCEOUTPUT); + tmp=replace(filename,".rr",".txt"); + println(kc(Dirwork+Batparent,Dirlib,tmp)); // 16.05.29,06.05 + , + SCEOUTPUT = openfile("kc.sh"); + println(SCEOUTPUT,"#!/bin/sh"); + println(SCEOUTPUT,"cd "+Dq+Dirwork+Dq); + tmp="rm "+replace(filename,".rr",".txt"); + println(SCEOUTPUT,tmp); + tmp=Dq+PathA+Dq+" -quiet -f "+Dq+filename+Dq; + println(SCEOUTPUT,tmp); + println(SCEOUTPUT,"exit 0"); + closefile(SCEOUTPUT); + tmp=replace(filename,".rr",".txt"); + println(kc(Dirwork+Shellparent,Mackc+Dirlib,tmp));// 16.05.29,06.05 + + ); +// wait(WaitUnit); + setdirectory(Dirwork); + ); +); + +CalcbyA(name,cmd):=CalcbyA(name,cmd,[]); +CalcbyA(name,cmd,optionorg):=( +//help:CalcbyA("a",cmd); +//help:CalcbyA(options= ["m/r","Wait=10","Ext=txt","Dig=16"]]); + regional(options,tmp,tmp1,tmp2,tmp3,tmp4,realL,strL,eqL, + dig,flg,wflg,file,nc,arg,cmdA,cmdlist,wfile,ext,waiting,num,st); + options=optionorg; + tmp=divoptions(options); + eqL=tmp_5; + realL=tmp_6; + strL=tmp_7; + wfile=""; + ext=".txt"; + waiting=2; + dig=6; + forall(eqL, + tmp=indexof(#,"="); + tmp1=Toupper(substring(#,0,1)); + tmp2=substring(#,tmp,length(#)); + if(tmp1=="E", + if(indexof(tmp2,".")==0,ext="."+tmp2,ext=tmp2); + options=remove(options,[#]); + ); + if(tmp1=="W", + waiting=parse(tmp2); + options=remove(options,[#]); + ); + if(tmp1=="D", + dig=parse(tmp2); + options=remove(options,[#]); + ); + ); + wfile=Fhead+name+ext; + wflg=0; + forall(strL, + tmp=Toupper(substring(#,0,1)); + if(tmp=="M", + wflg=1; + options=remove(options,[#]); + ); + if(tmp=="R", + wflg=-1; + options=remove(options,[#]); + ); + ); + file=Fhead+name; + cmdA=cmd; + cmdlist=[]; + forall(1..floor(length(cmdA)/2),nc, //17.5.18 + tmp1=cmdA_(2*nc-1); + tmp1=replace(tmp1,LFmark,""); // 16.06.12 + if(nc==length(cmdA)/2, + tmp=indexof(tmp1,"="); + tmp1=substring(tmp1,tmp,length(tmp1)); + if(substring(tmp1,0,1)=="[", + tmp=substring(tmp1,0,length(tmp1)-1); + , + tmp="["+Dq+"/start/"+Dq+","+tmp1; // 16.05.18 + ); + tmp=replace(tmp,"::",","+Dq+"//"+Dq+","); + tmp1=tmp+","+Dq+"////"+Dq+"]"; + ); + tmp2=cmdA_(2*nc); // list of argments + tmp3=""; + tmp4=""; + forall(tmp2,arg, + if(isstring(arg), + tmp3=tmp3+replace(arg,"'",Dq)+","; +// tmp3=tmp3+arg; + , + if(!islist(arg), + tmp3=tmp3+textformat(arg,dig)+","; + , + tmp3=tmp3+"["; + tmp4="]"; + forall(arg, + if(isstring(#), +// tmp3=tmp3+Dq+#+Dq+","; + tmp=replace(#,"'",Dq); +// tmp=#;// 2016.03.03 + tmp3=tmp3+tmp+","; + , + if(!islist(#), + tmp3=tmp3+textformat(#,dig)+","; + , + tmp=textformat(#,dig); + tmp=replace(tmp,"],[","];["); + tmp3=tmp3+tmp+","; + ); + ); + ); + tmp3=substring(tmp3,0,length(tmp3)-1)+tmp4+","; + ); + ); + ); + if(length(tmp3)>0, + tmp3=substring(tmp3,0,length(tmp3)-1); + tmp1=tmp1+"("+tmp3+")"; + ); + cmdlist=append(cmdlist,tmp1); + ); + cmdlist=append(cmdlist,"quit"); + if(wflg==0, + tmp1=load(file+".rr"); + if((length(tmp1)==0) % (indexof(tmp1,"/*####*/")==0), //15.11.26 + wflg=1; + , + tmp1=tokenize(tmp1,"/*####*/"); + tmp1=tokenize(tmp1_2,"/*##*/"); + tmp1=tmp1_(1..(length(tmp1)-1)); + tmp=select(tmp1,indexof(#,"output")>0); + tmp1=remove(tmp1,tmp); + tmp1=apply(tmp1,substring(#,0,length(#)-1)); + if(length(tmp1)!=length(cmdlist), // 15.12.06 + wflg=1; + , + tmp=select(1..length(tmp1),tmp1_#!=cmdlist_#); + if(length(tmp)>0, wflg=1); + ); + ); + ); + if(wflg==0,wflg=-1); // 15.10.16 + if(wflg==1, + if(length(wfile)>0, // 15.10.05 + SCEOUTPUT=openfile(wfile); + println(SCEOUTPUT,""); + closefile(SCEOUTPUT); + ); + WritetoA(file+".rr",cmdlist); + kcA(file,concat(options,["m"])); + ); + flg=0; + tmp1=floor(waiting*1000/WaitUnit); + repeat(tmp1, + if(flg==0, + tmp=load(wfile); + if(length(tmp)>=4, + tmp2=substring(tmp,length(tmp)-5,length(tmp)); + if(tmp2=="////]", + tmp=substring(tmp,1,length(tmp)-6); +// old tmp1=tokenize(tmp,",//,"); +// old tmp1=apply(tmp1,if(isstring(#),Dq+#+Dq,textformat(#,dig))); + num="1234567890+-."; + tmp1=tokenize(","+tmp,",//"); + tmp3=apply(tmp1,substring(#,1,length(#))); + tmp1="["; + forall(tmp3,st, + tmp=select(1..length(st),indexof(num,substring(st,#-1,#))==0); + if((length(tmp)==0) & (length(st)<4), // 16.05.10 16=>4 + tmp1=tmp1+st+","; + , + tmp1=tmp1+Dq+st+Dq+","; + ); + ); + tmp=Indexof(tmp1,"/start/,"); // 16.05.18from + tmp1="["+Dq+substring(tmp1,tmp+7,length(tmp1)-1)+"]"; + // 16.05.18upto +// tmp1=substring(tmp1,0,length(tmp1)-1)+"]"; + parse(name+"="+tmp1); + tmp=parse(name); + if(length(tmp)==1, + tmp1=substring(tmp1,1,length(tmp1)-1); + parse(name+"="+tmp1); + ); + flg=1; + tmp2=#*WaitUnit/1000; + ); + , + if(wflg==-1, + flg=-1; + , + wait(WaitUnit); + ); + ); + ); + ); + if(flg<=0, + ErrFlag=1; + if(flg==-1, + println(wfile+" does not exist"); + , + tmp="("+text(waiting)+" s )"; + println(wfile+" not generated "+tmp); + ); + , + println(" CalcbyA succeeded "+name+" ("+text(tmp2)+" sec)"); + ); +); + +AsfunO(name,fun,argL):=AsirfunO(name,fun,argL); // 16.02.03 +AsfunO(name,fun,argL,options):=AsirfunO(name,fun,argL,options); +Asfun(name,fun,argL):=Asirfun(name,fun,argL); +Asfun(name,fun,argL,optionorg):=Asirfun(name,fun,argL,optionorg); +AsirfunO(name,fun,argL):=AsirfunO(name,fun,argL,[]); +AsirfunO(name,fun,argLorg,options):=( +//help:AsirfunO("an1","fint",["1/(x^2+1)",32,"['-','+']"]); + regional(argL,tmp,tmp1,tmp2,eqL);// 16.05.26from + tmp=divoptions(options); + eqL=tmp_5; + argL=argLorg; + forall(eqL, + tmp=indexof(#,"="); + tmp1=Toupper(substring(#,0,3)); + tmp2=substring(#,tmp,length(#)); + if(tmp1=="PRO", // 16.05.26from + tmp=Toupper(substring(tmp2,0,1)); + if((tmp=="T") % (tmp=="Y"), + tmp1=argL_(length(argL)); + tmp=indexof(tmp1,"|"); + if(tmp==0, + argL_(length(argL))=tmp1+"|dumb=-1,dviout=-2"; + ); + ); + ); + ); // 16.05.26upto + Asirfun(name,"os_md."+fun,argL,options); +); +Asirfun(name,fun,argL):=Asirfun(name,fun,argL,[]); +Asirfun(name,fun,argL,optionorg):=( +//help:Asirfun("al1","2*(3+5^4)",[],[""]); + regional(nm,options,eqL,precise,disp,process, + cmdL,tmp,tmp1,tmp2,tmp3,tmp4,out,out2); + nm="as"+name; + options=optionorg; + tmp=divoptions(options); + precise=6; + disp=1; + process=0; + eqL=tmp_5; + forall(eqL, + tmp=indexof(#,"="); + tmp1=Toupper(substring(#,0,3)); + tmp2=substring(#,tmp,length(#)); + if(tmp1=="PRE", + precise=parse(tmp2); + options=remove(options,[#]); + ); + if((tmp1=="DIS") % (tmp1=="DSP"), + tmp=Toupper(substring(tmp2,0,1)); + if((tmp=="F") % (tmp=="N"), + disp=0; + ); + options=remove(options,[#]); + ); + if(tmp1=="PRO", // 16.05.26from + tmp=Toupper(substring(tmp2,0,1)); + if((tmp=="T") % (tmp=="Y"), + process=1; + ); + options=remove(options,[#]); + ); // 16.05.26upt + ); + tmp=replace(Dirlib,"\","/"); + cmdL=[ + "load",[Dq+tmp+"/oshima/os_muldif.rr"+Dq], // 16.03.11 + "ctrl",[Dq+"real_digit"+Dq,precise], + "A="+fun,argL, // 16.05.26from + "A",[] + ]; + CalcbyA(nm,cmdL,options); + out=parse(nm); //16.05.26from + if(process==1, + tmp1=Bracket(out,"[]"); + tmp2=select(tmp1,abs(#_2)==2); + tmp2=apply(tmp2,#_1); + out=[]; + forall(1..length(tmp2)/2, + tmp3=tmp2_(2*#-1); + tmp4=tmp2_(2*#); + tmp=substring(as1,tmp3+1,tmp4-2); + tmp=tokenize(tmp,"],["); + out=append(out,tmp); + ); + out2=[]; + forall(out,tmp2, + tmp4=""; + forall(tmp2,tmp3, + tmp1=tokenize(tmp3,","); + if(tmp1_1==0, + tmp4=tmp4+tmp1_2+"="+tmp1_3+"+"; + , + if(tmp1_1==1, + tmp4=tmp4+tmp1_2+"+"; + , + tmp="'integrate("; + forall(2..length(tmp1), + tmp=tmp+tmp1_#+"+"; + ); + tmp=substring(tmp,0,length(tmp)-1); + tmp=tmp+","+tmp1_1+")"; + tmp4=tmp4+tmp+"+"; + ); + ); + ); + tmp4=substring(tmp4,0,length(tmp4)-1); + out2=append(out2,tmp4); + ); + out=out2; + tmp=apply(out,Dq+#+Dq); + parse(nm+"="+tmp); + ); + if(ErrFlag==0, + if(disp==1, // 15.11.24 + println(nm+" is : "); + println(parse(nm)); + ); + ); + out; //16.05.26upto +); + +WritetoM(fname,cmdL,allflg):=( +// help:WritetoM("outdata",cmdL); + regional(tmp,tmp1,tmp2,filename,wfilename,outflg); + if(indexof(fname,".")==0, + filename=fname+".max"; + , + filename=fname; + ); + wfilename=replace(filename,".max",".txt"); + SCEOUTPUT = openfile(filename); + outflg=0; + forall(1..(length(cmdL)), + tmp1=cmdL_#; + + if(allflg==1, // 2016.02.23 from + if(#==1, + tmp="writefile("+Dq+Dirwork+"/"+wfilename+Dq+")$/*##*/"; + tmp=replace(tmp,"\","/"); + println(SCEOUTPUT,tmp); + outflg=1; + println(SCEOUTPUT,tmp1+"$/*##*/"); + , + println(SCEOUTPUT,tmp1+"$/*##*/"); + ); + , + if((indexof(tmp1,"disp(")>0) & (outflg==0), + tmp="writefile("+Dq+Dirwork+"/"+wfilename+Dq+")$/*##*/"; + tmp=replace(tmp,"\","/"); + println(SCEOUTPUT,tmp); + outflg=1; + println(SCEOUTPUT,tmp1+"$/*##*/"); + , + println(SCEOUTPUT,tmp1+"$/*##*/"); + ); + ); + ); + closefile(SCEOUTPUT); +); + +kcM(fname):=kcM(fname,[]); +kcM(fname,optionorg):=( +//help:kcM("boxdata"); +//help:kcM(options=["r/m"]); + regional(options,tmp,tmp1,tmp2,eqL,strL,filename,flg); + if(indexof(fname,".")==0, + filename=fname+".max"; + , + filename=fname; + ); + options=optionorg; + tmp=Divoptions(options); + eqL=tmp_5; + strL=tmp_7; + forall(eqL, + tmp=indexof(#,"="); + tmp1=substring(#,0,tmp-1); + tmp2=substring(#,tmp,length(#)); + ); + flg=0; + forall(strL, + if(Toupper(substring(#,0,1))=="R", + flg=0; + options=remove(options,[#]); + ); + if(Toupper(substring(#,0,1))=="M", + flg=1; + ); + ); + if(flg==0, + tmp2=replace(filename,".max",".txt"); + tmp1=load(tmp2); + if(length(tmp1)==0, + flg=1; + ); + ); + if(flg==1, + tmp1=""; + if(iswindows(), + tmp2=Batparent; + , + tmp2=Shellparent; + ); + flg=0; + forall(reverse(1..length(tmp2)), + if(flg==0, + tmp=substring(tmp2,#-1,#); + if(tmp=="/" % tmp=="\", // 14.01.15 + tmp1=substring(tmp2,0,#-1); + tmp2=substring(tmp2,#,length(tmp2)); + flg=1; + ); + ); + ); + if(length(tmp1)>0, + setdirectory(tmp1); + ); + if(iswindows(), + SCEOUTPUT=openfile(replace(filename,".max",".txt")); + println(SCEOUTPUT,""); + closefile(SCEOUTPUT); + SCEOUTPUT = openfile("kc.bat"); + println(SCEOUTPUT,"cd "+Dq+Dirwork+Dq); +// tmp="del "+replace(filename,".max",".txt"); +// println(SCEOUTPUT,tmp); + tmp=Indexall(PathM,"."); + tmp=substring(PathM,tmp_1,tmp_2-1); + tmp=parse(tmp); + if(tmp<39, + tmp="call "+Dq+Dq+PathM+Dq+Dq+" -b "+Dq+filename+Dq; + , + tmp="call "+Dq+PathM+Dq+" -b "+Dq+filename+Dq; + ); +// tmp="cmd/c "+Dq+PathM+" -b "+filename+Dq; + println(SCEOUTPUT,tmp); + println(SCEOUTPUT,"exit"); + closefile(SCEOUTPUT); + tmp=replace(filename,".max",".txt"); + println(kc(Dirwork+Batparent,Mackc+Dirlib,tmp));// 16.05.29,06.05 + , + SCEOUTPUT = openfile("kc.sh"); + println(SCEOUTPUT,"#!/bin/sh"); + println(SCEOUTPUT,"cd "+Dq+Dirwork+Dq); + tmp="rm "+replace(filename,".max",".txt"); + println(SCEOUTPUT,tmp); + tmp=Dq+PathM+Dq+" -b "+Dq+filename+Dq; + println(SCEOUTPUT,tmp); + println(SCEOUTPUT,"exit 0"); + closefile(SCEOUTPUT); + tmp=replace(filename,".max",".txt"); + println(kc(Dirwork+Shellparent,Mackc+Dirlib,tmp));// 16.05.29,06.05 + ); +// wait(WaitUnit); + setdirectory(Dirwork); + ); +); + +CalcbyM(name,cmd):=CalcbyM(name,cmd,[]); +CalcbyM(name,cmd,optionorg):=( +//help:CalcbyM("a",cmdL); +//help:CalcbyM(options1= ["m/r","Wait=5","Ext=txt","Dig=6","Pow=no","All=y"]); +//help:CalcbyM(options2= ["line=1000"]); + regional(options,tmp,tmp0,tmp1,tmp2,tmp3,tmp4,realL,strL,eqL,allflg,indL,line, + dig,flg,wflg,file,nc,arg,add,powerd,cmdM,cmdlist,wfile,ext,waiting,num,st); + options=optionorg; + tmp=divoptions(options); + eqL=tmp_5; + realL=tmp_6; + strL=tmp_7; + wfile=""; + ext=".txt"; + waiting=5; + dig=6; + allflg=1; + powerd="false"; + line=1000; // 16.06.13 + forall(eqL, + tmp=indexof(#,"="); + tmp1=Toupper(substring(#,0,1)); + tmp2=substring(#,tmp,length(#)); + if(tmp1=="E", + if(indexof(tmp2,".")==0,ext="."+tmp2,ext=tmp2); + options=remove(options,[#]); + ); + if(tmp1=="W", + waiting=parse(tmp2); + options=remove(options,[#]); + ); + if(tmp1=="D", + dig=parse(tmp2); + options=remove(options,[#]); + ); + if(tmp1=="L", // 16.06.13 + line=parse(tmp2); + options=remove(options,[#]); + ); + if(tmp1=="P", + tmp=Toupper(substring(tmp2,0,1)); + if((tmp=="y") % (tmp=="F"),powerd="true"); + options=remove(options,[#]); + ); + if(tmp1=="A", // 2016.02.23 + tmp=Toupper(substring(tmp2,0,1)); + if((tmp=="N") % (tmp=="F"),allflg=0); + options=remove(options,[#]); + ); + ); + wfile=Fhead+name+ext; + wflg=0; + forall(strL, + tmp=Toupper(substring(#,0,1)); + if(tmp=="M", + wflg=1; + options=remove(options,[#]); + ); + if(tmp=="R", + wflg=-1; + options=remove(options,[#]); + ); + ); + file=Fhead+name; + cmdM=cmd; + cmdlist=[ + "powerdisp:"+powerd,"display2d:false","linel:"+text(line) //15.11.25,16.06.13 + ]; + forall(1..floor(length(cmdM)/2),nc, //17.5.18 + tmp1=replace(cmdM_(2*nc-1),"`","'");//2016.02.23 + tmp1=replace(tmp1,LFmark,""); // 16.06.12 + if(nc==length(cmdM)/2, + tmp=indexof(tmp1,"="); + tmp1=substring(tmp1,tmp,length(tmp1)); + if(substring(tmp1,0,1)=="[", + tmp=substring(tmp1,0,length(tmp1)-1); + , + tmp="["+tmp1; + ); + tmp2=""; + forall(1..length(tmp1), + if(substring(tmp1,#-1,#+1)=="::", + if(substring(tmp2,0,1)==":", tmp2=substring(tmp2,1,length(tmp2))); + cmdlist=append(cmdlist,"disp("+tmp2+")"); + tmp2=""; + , + tmp2=tmp2+substring(tmp1,#-1,#); + ); + ); + if(length(tmp2)>0, + if(substring(tmp2,0,1)==":", tmp2=substring(tmp2,1,length(tmp2))); + cmdlist=append(cmdlist,"disp("+tmp2+")"); + ); + , + tmp2=cmdM_(2*nc); // list of argments + tmp3=""; + tmp4=""; + add=""; + forall(tmp2,arg, + if(isstring(arg), + if(substring(arg,0,1)!=",", +// tmp=replace(arg,"'",Dq); // 16.03.03 + tmp=arg; // 16.03.03 + tmp=replace(tmp,"`","'");// 2016.02.23 + tmp3=tmp3+tmp+","; + , + add=add+arg; + ); + , + if(!islist(arg), + tmp3=tmp3+textformat(arg,dig)+","; + , + tmp3=tmp3+"["; + tmp4="]"; + forall(arg, + if(isstring(#), +// tmp3=tmp3+Dq+#+Dq+","; + tmp=replace(#,"'",Dq); + tmp3=tmp3+tmp+","; + , + if(!islist(#), + tmp3=tmp3+textformat(#,dig)+","; + , + tmp=textformat(#,dig); + tmp=replace(tmp,"],[","];["); + tmp3=tmp3+tmp+","; + ); + ); + ); + tmp3=substring(tmp3,0,length(tmp3)-1)+tmp4+","; + ); + ); + ); + if(length(tmp3)>0, + tmp3=substring(tmp3,0,length(tmp3)-1); + tmp1=tmp1+"("+tmp3+")"+add; + ); + cmdlist=append(cmdlist,tmp1); + ); + ); + cmdlist=append(cmdlist,"closefile()"); + cmdlist=append(cmdlist,"quit()"); + if(wflg==0, + tmp1=load(file+".max"); + if(length(tmp1)==0, + wflg=1; + , + if(indexof(tmp1,"/*##*/")==0, // 15.11.26 + wflg=1; + , + tmp1=tokenize(tmp1,"/*##*/"); + tmp1=tmp1_(1..(length(tmp1)-1)); + tmp=select(tmp1,indexof(#,"writefile")>0); + tmp1=remove(tmp1,tmp); + tmp1=apply(tmp1,substring(#,0,length(#)-1)); + if(length(tmp1)!=length(cmdlist), // 15.12.07 + wflg=1; + , + tmp=select(1..length(tmp1),tmp1_#!=cmdlist_#); + if(length(tmp)>0, wflg=1); + ); + ); + ); + ); + if(wflg==0,wflg=-1); // 15.10.16 + if(wflg==1, + if(length(wfile)>0, // 15.10.05 + SCEOUTPUT=openfile(wfile); + println(SCEOUTPUT,""); + closefile(SCEOUTPUT); + ); + WritetoM(file+".max",cmdlist,allflg); // 2016.02.23 + kcM(file,concat(options,["m"])); + ); + flg=0; + tmp1=floor(waiting*1000/WaitUnit); + repeat(tmp1, + if(flg==0, + tmp1=load(wfile); + if(wflg==1,wait(WaitUnit)); // 2016.02.23 + if(length(tmp1)>0, + tmp=indexof(tmp1,"error")+indexof(tmp1,"syntax"); //2016.02.23 + if(tmp>0, + println("Some error(s) occurred"); //2016.02.24 from + tmp2=tokenize(tmp1,"(%"); + forall(4..length(tmp2),println(tmp2_#)); //2016.02.24 upto + flg=2; //2016.02.23 + , + if(indexof(tmp1,"closefile()")>0, // 15.11.24 + tmp=tokenize(tmp1,"disp("); + tmp1=tmp_(2..length(tmp)); + tmp4=[]; + forall(tmp1,tmp2, + tmp=indexof(tmp2,")"); + tmp3=substring(tmp2,tmp,length(tmp2)); + indL=Indexall(tmp3,"(%i"); // 16.04.26from + tmp0=0; + forall(indL, + if(tmp0==0, + tmp=substring(tmp3,#+2,#+3); + if(indexof("0123456789",tmp)>0,//16.04.25? + tmp3=removespace(substring(tmp3,0,#-1)); + tmp4=append(tmp4,tmp3); + tmp0=1; + ); + );// 16.04.26upto + ); + ); + num="1234567890+-."; + tmp1="["; + forall(tmp4,st, + tmp=select(1..length(st),indexof(num,substring(st,#-1,#))==0); + if((length(tmp)==0) & (length(st)<4), // 16.05.10 16=>4 + tmp1=tmp1+st+","; + , + tmp1=tmp1+Dq+st+Dq+","; + ); + ); + tmp1=substring(tmp1,0,length(tmp1)-1)+"]"; + tmp1=replace(tmp1,".d+0",""); // 15.11.23 + parse(name+"="+tmp1); + tmp=parse(name); + if(length(tmp)==1, + tmp1=substring(tmp1,1,length(tmp1)-1); + parse(name+"="+tmp1); + ); + flg=1; + tmp2=#*WaitUnit/1000; + ); + ); + , + if(wflg==-1, + flg=-1; + , + wait(WaitUnit); + ); + ); + ); + ); + if(flg<=0, + ErrFlag=1; + if(flg==-1, + println(wfile+" does not exist"); + , + tmp="("+text(waiting)+" s )"; + tmp1=load(wfile); + if(length(tmp1)>0, + println(wfile+" incomplete"+tmp); // 2016.02.24 + , + println(wfile+" not generated "+tmp); + ); + ); + , + if(flg==1, // 2016.02.23 + println(" CalcbyM succeeded "+name+" ("+text(tmp2)+" sec)"); + ); + ); +); + +Mxfun(name,fun,argL):=Mxfun(name,fun,argL,[]); +Mxfun(name,fun,argL,optionorg):=( +//help:Mxfun("ca1","diff",["sin(x)^3","x"],[""]); +//help:Mxfun(options=["Pre=6","Disp=y","Load= :: ","Set=::","Add="]); + regional(nm,options,eqL,precise,disp,pack,set,add,cmdL,tmp,tmp1,tmp2); + nm="mx"+name; + options=optionorg; + tmp=divoptions(options); + precise=6; + disp=1; + pack=[]; + set=[]; + add=""; + eqL=tmp_5; + forall(eqL, + tmp=indexof(#,"="); + tmp1=Toupper(substring(#,0,3)); + tmp2=substring(#,tmp,length(#)); + if(tmp1=="PRE", + precise=parse(tmp2); + options=remove(options,[#]); + ); + if((tmp1=="DIS") % (tmp1=="DSP") , + tmp=Toupper(substring(tmp2,0,1)); + if((tmp=="F") % (tmp=="N"), + disp=0; + ); + options=remove(options,[#]); + ); + if((tmp1=="PAC") % (tmp1=="LOA"), // 16.02.08 + pack=tokenize(tmp2,"::"); + options=remove(options,[#]); + ); + if(tmp1=="SET", + set=tokenize(tmp2,"::"); + options=remove(options,[#]); + ); + if(tmp1=="ADD", + add=","+tmp2; + options=remove(options,[#]); + ); + ); + cmdL=[]; + forall(pack, + cmdL=concat(cmdL,["load",[#]]); + ); + forall(set, + cmdL=concat(cmdL,[#,[]]); + ); + if(length(add)>0, + tmp=append(argL,add); + , + tmp=argL; + ); + cmdL=concat(cmdL,[ + "ans"+":"+fun,tmp, + "ans",[] + ]); + CalcbyM(nm,cmdL,options); + if(ErrFlag==0, + if(disp==1, // 15.11.24 + println(nm+" is : "); + println(parse(nm)); + ); + ); + parse(nm); +); + +Mxtex(nm,ex):=Mxtex(nm,ex,[]); +Mxtex(nm,ex,optionorg):=( +//help:Mxtex("1","sin(x)/x"); +//help:Mxtex(options=["Disp=y"]); + regional(name,cmdL,eqL,options,tx,disp,out,set, + tmp,tmp1,tmp2); // 16.01.25 + name="tx"+nm; + options=optionorg; + tmp=divoptions(options); + eqL=tmp_5; + disp=1; + set=[]; + forall(eqL, + tmp=indexof(#,"="); + tmp1=Toupper(substring(#,0,3)); + tmp2=substring(#,tmp,length(#)); + if((tmp1=="DIS") % (tmp1=="DSP") , + tmp=Toupper(substring(tmp2,0,1)); + if((tmp=="F") % (tmp=="N"), + disp=0; + ); + options=remove(options,[#]); + ); + if(tmp1=="SET", // 16.03.01 + set=tokenize(tmp2,"::"); + options=remove(options,[#]); + ); + if(tmp1=="ORD", // 16.03.01 + tmp="ordergreat("+tmp2+")"; + set=append(set,tmp); + options=remove(options,[#]); + ); + ); + cmdL=[ + "load",[Dq+"mactex-utilities.lisp"+Dq]]; // 16.03.03 + forall(set, // 16.03.01 + cmdL=concat(cmdL,[#,[]]); + ); + cmdL=concat(cmdL,[ + name+":disp(tex("+ex+"))",[], // 16.01.18 + name,[] // 16.01.18 + ]); + CalcbyM(name,cmdL,options); // 16.02.19 + tx=parse(name); + if(islist(tx), // 16.01.10 + out=tx_1; + , + out=tx; + ); + tmp=indexof(out,"$$")+1; + out=substring(out,tmp,length(out)); + tmp=indexof(out,"$$")-1; + out=substring(out,0,tmp); + if(disp==1, // 16.01.10 + println(name+" is:"); + println(out); + ); + tmp=name+"="+Dq+out+Dq; //16.01.10 + parse(tmp); + out; +); + +MxtexL(nm,exlist):=MxtexL(nm,exlist,[]); // 16.05.27 +MxtexL(nm,exlist,options):=( + regional(out,tmp,tmp1); + out=[]; + forall(1..length(exlist), + tmp=Mxtex(nm+"n"+text(#),exlist_#,["Disp=n"]); + out=append(out,Dq+tmp+Dq); + ); + tmp="tx"+nm+"="+out; + parse(tmp); + println("tx"+nm+"is:"); + apply(out,println(#)); + out; +); + +Mxbatch(file):=( +//help:Mxbatch(["matoperation.max"]); + regional(figL,out,path,tmp,tmp1,tmp2); + if(!islist(file),figL=[file],figL=file); + path=replace(Dirlib+"/maximaL/","\","/"); + out=[]; + forall(figL, + if(indexof(#,".")==0,tmp1=#+".max",tmp1=#); + tmp1=Dq+path+tmp1+Dq; + tmp2=["batch",[tmp1]]; + out=concat(out,tmp2); + ); + out; +); + +Mxload(file):=( //17.06.16 +//help:Mxload(["rkfun.lispp"]); + regional(figL,out,path,tmp,tmp1,tmp2); + if(!islist(file),figL=[file],figL=file); + path=replace(Dirlib+"/maximaL/","\","/"); + out=[]; + forall(figL, + if(indexof(#,".")==0,tmp1=#+".lisp",tmp1=#); + tmp1=Dq+path+tmp1+Dq; + tmp2=["load",[tmp1]]; + out=concat(out,tmp2); + ); + out; +); + +kcV3(fname):=kcV3(Dirwork,fname); +kcV3(path,fname):=( +//help:kcV3(path,"ex.obj"); + regional(tmp,tmp1,tmp2,eqL,strL,filename,flg); + if(indexof(fname,".")==0, + filename=fname+".obj"; + , + filename=fname; + ); + flg=1; + if(flg==1, + tmp1=""; // 15.10.08 from + if(iswindows(), + tmp2=Batparent; + , + tmp2=Shellparent; + ); + tmp=replace(path,"\","/"); + tmp=substring(tmp,length(tmp)-1,length(tmp)); + if(tmp=="/" % tmp=="\", tmp1=path, tmp1=path+"/"); + if(iswindows(), + SCEOUTPUT = openfile("kc.bat"); + println(SCEOUTPUT,"cd "+Dq+Dirwork+Dq); + tmp=Dq+PathV3+Dq+" "+tmp1+filename; + println(SCEOUTPUT,tmp); + println(SCEOUTPUT,"exit"); + closefile(SCEOUTPUT); + println(kc(Dirwork+Batparent,Dirlib,Fnametex));// 16.05.29,06.05 + , + SCEOUTPUT = openfile("kc.sh"); + println(SCEOUTPUT,"#!/bin/sh"); + println(SCEOUTPUT,"cd "+Dq+Dirwork+Dq); + tmp=Dq+PathV3+Dq+" "+tmp1+filename; + println(SCEOUTPUT,tmp); + println(SCEOUTPUT,"exit 0"); + closefile(SCEOUTPUT); + println(kc(Dirwork+Shellparent,Mackc+Dirlib,Fnametex));// 16.05.29,06.05 + ); + wait(WaitUnit); + ); + if(fig==2, + println("Obj file not exist / imperfect"); + ); +); + +Changeobjscale(fname):=Changeobjscale(ULEN,fname,fname,[]); +Changeobjscale(fname,Arg):=( + if(islist(Arg), + Changeobjscale(ULEN,fname,fname,Arg); + , + Changeobjscale(ULEN,fname,Arg,[]); + ); +); +Changeobjscale(Arg1,Arg2,Arg3):=( + if(islist(Arg3), + Changeobjscale(ULEN,Arg1,Arg2,Arg3); + , + Changeobjscale(Arg1,Arg2,Arg3,[]); + ); +); +Changeobjscale(unitlen,fnameorg,foutorg,optionorg):=( +//help:Changeobjscale("20mm",fnamei,fmediate); +//help:Changeobjscale(options=["Unit=mm",[0,0,0]]); + regional(fname,fout,fmd,unit,val,options,eqL,reL, + origin,outunit,sc,stL,nn,tmp,tmp1,tmp2); + options=optionorg; + tmp=Divoptions(options); + eqL=tmp_5; + reL=tmp_6; + outunit="IN"; + forall(eqL, + tmp=indexof(#,"="); + tmp1=Toupper(substring(#,0,1)); + tmp2=Toupper(substring(#,tmp,length(#))); + if(tmp1=="O" % tmp1=="U", + outunit=tmp2; + options=remove(options,[#]); + ); + ); + options=remove(options,reL); + origin=[0,0,0]; + forall(reL, + if(islist(#),origin=#); + ); + options=remove(options,reL); + tmp1=".0123456789+-*/"; + unit=""; + val=1; + tmp2=0; + forall(reverse(1..length(unitlen)), + tmp=substring(unitlen,#-1,#); + if(tmp2==0, + if(indexof(tmp1,tmp)>0, + tmp2=#; + ); + ); + unit=substring(unitlen,tmp2,length(unitlen)); + unit=removespace(unit); + val=parse(substring(unitlen,0,tmp2)); + ); + sc=1; + if(unit=="cm",sc=1); + if(unit=="mm",sc=0.1); + if(unit=="in",sc=2.54); + sc=sc*val; + if(outunit=="IN",sc=sc/2.54); + if(outunit=="MM",sc=sc*10); + fname=fnameorg; + if(indexof(fname,".")==0,fname=fname+".obj"); + fmd=replace(fname,".obj",".txt"); + fout=foutorg; + if(indexof(fout,".")==0,fout=fout+".obj"); + tmp1=Textformat(origin,4); + tmp1=replace(tmp1,",",";"); + cmdL=[ + "Origin="+tmp1+";",[], + "Sc="+format(sc,6)+";",[], + "Stv=mgetl",[Dq+fname+Dq], + "for nn=1:size(Stv,1),Tmp=Stv(nn);",[], + " if part(Tmp,1:2)=='v ' then,Tmp=tokens(Tmp,' ');",[], + " Tmp=evstr(Tmp(2:4));",[], + " Tmp=Origin+Sc*(Tmp-Origin);",[], + " Tmp='v '+msprintf('%7.4f %7.4f %7.4f',Tmp(1),Tmp(2),Tmp(3));",[], + " Stv(nn,1)=Tmp;",[], + " end;",[], + "end;",[], + "mputl",["Stv",Dq+fout+Dq], + "mputl",["['finished////']",Dq+fmd+Dq] + ]; + options=concat(["Wait=3","Cat=n","File="+fmd],options); // 16.06.26 + CalcbyS("cs",cmdL,options); + println("Scale of "+fname+" changed"); +); + +Mkviewobj(fname,cmdL):=Mkviewobj(Dirwork,fname,cmdL,[]); +Mkviewobj(Arg1,Arg2,Arg3):=( + if(!isstring(OCNAME), //17.04.13from + drawtext(mouse().xy,"Mkobjcmd not defined", + size->24,color->[1,0,0]); + , //17.04.13upto + if(islist(Arg2), + Mkviewobj(Dirwork,Arg1,Arg2,Arg3); + , + Mkviewobj(Arg1,Arg2,Arg3,[]); + ); + ); +); +Mkviewobj(pathorg,fnameorg,cmdLorg,optionorg):=( +//help:Mkviewobj(fname,cmdlist); +//help:Mkviewobj(fname,[]); +//help:Mkviewobj(path,fname,cmdlist); +//help:Mkviewobj(options=["M/R","V","Unit=in","Wait=5"]); + regional(path,cmdL,eqL,strL,flg,fname,options,make,view,cmdlist, + vtx,face,unit,tmp,tmp1,tmp2); + path=replace(pathorg,"\","/"); + if(substring(path,length(path)-1,length(path))!="/",path=path+"/"); + fname=fnameorg; + if(indexof(fname,".")==0,fname=fname+".obj"); + cmdL=cmdLorg; + options=optionorg; + tmp=divoptions(options); + eqL=tmp_5; + strL=tmp_7; + make=-1; + view=0; + unit=""; + forall(eqL, + tmp=indexof(#,"="); + tmp1=Toupper(substring(#,0,1)); + tmp2=substring(#,tmp,length(#)); + if(tmp1=="M", + tmp2=Toupper(substring(tmp2,0,1)); + if(tmp2=="N" % tmp2=="F", + make=0; + ); + options=remove(options,[#]); + ); + if(tmp1=="V", + tmp2=Toupper(substring(tmp2,0,1)); + if(tmp2=="N" % tmp2=="F", + view=0; + ); + options=remove(options,[#]); + ); + if(tmp1=="U", // 16.06.30from + unit=tmp2; + options=remove(options,[#]); + ); // 16.06.30upto + ); + forall(strL, + tmp=Toupper(substring(#,0,1)); + if(tmp=="M", + make=1; + options=remove(options,[#]); + ); + if(tmp=="R", + make=0; + options=remove(options,[#]); + ); + if(tmp=="V", + view=1; + options=remove(options,[#]); + ); + ); + if(islist(cmdL), + if(length(cmdL)==0, + make=0; + println("Command sequence not defnamed"); + ); + , + make=0; + println("Command sequence not defined"); + ); + if(make==-1, + setdirectory(pathorg); + tmp1=load(fname); + if(length(tmp1)==0,make=1,make=0); + setdirectory(Dirwork); + ); + if(make==1, + if(isstring(cmdL_1), + cmdlist=MkprecommandS(); // 16.04.23 + cmdlist=concat(cmdlist,["Openobj",[Dq+path+fname+Dq]]); + cmdlist=concat(cmdlist,cmdL); + tmp=["Closeobj()",[],"ans="+Dq+"||||"+Dq,[]];//16.12.26 + cmdlist=concat(cmdlist,tmp); + tmp=append(options,"Cat=y"); + tmp1=apply(tmp,Toupper(substring(#,0,1))); // 16.04.23from + tmp1=select(tmp1,#=="W"); + if(length(tmp1)==0, + tmp=append(tmp,"Wait=5"); + );// 16.04.23upto + CalcbyS("ans",cmdlist,tmp); + wait(WaitUnit*100); // 16.03.18 + , + vtx=cmdL_1; + face=cmdL_2; + setdirectory(pathorg); + SCEOUTPUT = openfile(fname); + forall(vtx,tmp1, + tmp2=tmp1; + if(ispoint(tmp1), + tmp2=parse(text(tmp1)+"3d"); + ); + tmp2=apply(tmp2,format(#,5)); + tmp="v "+tmp2_1+" "+tmp2_2+" "+tmp2_3; + println(SCEOUTPUT,tmp); + ); + forall(face,tmp1, + tmp="f"; + forall(tmp1, + tmp=tmp+" "+text(#); + ); + println(SCEOUTPUT,tmp); + ); + closefile(SCEOUTPUT); + setdirectory(Dirwork); + ); + ); + if(length(unit)>0, // 16.06.30from + Changeobjscale(fname,["Unit="+unit]);//16.10.04 + ); // 16.06.30upto + if(view==1, + flg=0; // 16.03.14 from + if(isstring(ViewFile), + if(ViewFile==fname,flg=1); + ); + if(flg==0, + kcV3(path,fname); + ViewFile=fname; + ); // 16.03.14 upto + ); +); + +SetObj(str):=Objname(str,["m","v"]); //17.01.12 +SetObj(str,options):=Objname(str,options); //17.01.12 +Objnameoptions(str,options):=Objname(str,options);// 16.11.29 +Objname(str):=Objname(str,["m","v"]); // 16.11.29 +Objname(str,options):=( +//help:Objname("sample"); +//help:Objname(options=["m","v"]); +//help:Setobj("sample"); +//help:Setobj(options=["m","v"]); + if(length(str)>0, + OCNAME=str; + ); + OCOPTION=options; + println([OCNAME,OCOPTION]); +); + +Mkobjcmd(nm,fd):=Mkobjcmd(nm,fd,[40,40,"+"]); +Mkobjcmd(nm,fd,options):=( +//help:Mkobjcmd("1",fd,[40,40,"+"]); + regional(ffd,cmd,out,div1,div2,side, + reL,stL,tmp,tmp1,tmp2,tmp3,tmp4); + div1=40; + div2=40; + side="+"; + tmp=Divoptions(options); + reL=tmp_6; + stL=select(tmp_7,length(#)>0); + forall(1..length(reL), + if(#==1, + div1=reL_1; + div2=div1; + , + div2=reL_2; + ); + ); + forall(stL, + side=#; + ); + side="'"+side+"'"; + ffd=Fullformfunc(fd); + tmp=indexof(ffd_5,"="); + tmp1=substring(ffd_5,0,tmp-1); + tmp2=substring(ffd_5,tmp,length(ffd_5)); + tmp=indexof(ffd_6,"="); + tmp3=substring(ffd_6,0,tmp-1); + tmp4=substring(ffd_6,tmp,length(ffd_6)); + out=["function Out=Fun"+nm+"("+tmp1+","+tmp3+")",[]]; + tmp=" Out=["+ffd_2+","+ffd_3+","+ffd_4+"]"; + out=concat(out,[tmp,[]]); + out=concat(out,["endfunction",[]]); + tmp1=["Objsurf", + ["Fun"+nm,tmp2,tmp4,div1,div2,side]]; + out=concat(out,tmp1); + tmp2=[]; // 16.06.10from + forall(out,tmp1, + if(islist(tmp1), + tmp=apply(tmp1,if(isstring(#),Dq+#+Dq,Textformat(#,5))); + , + if(isstring(tmp1),tmp=Dq+tmp1+Dq,tmp=Textformat(#,5)); + ); + tmp2=append(tmp2,tmp); + ); + parse("oc"+nm+"="+tmp2); + println("cmd seq oc"+nm+" generated"); // 16.06.10upto + OBJCMD=concat(OBJCMD,out);//16.11.29 + out; +); + +Mkobjnrm(nm,fd):=Mkobjnrm(nm,fd,[]); +Mkobjnrm(nm,fd,optionorg):=( +//help:Mkobjnrm("1",fd1,["Disp=y"]); +//help:Mkobjnrm("1","[x,y,x*y/(x^2+y^2)],x,y"); + regional(name,options,stL,eqL,disp,ffd,fst,xst,yst,cmdL, + precmd,out,tmp,tmp1,tmp2,tmp3); + name="nrm"+nm; + options=select(optionorg,length(#)>0); + tmp=Divoptions(options); + eqL=tmp_5; + stL=tmp_7; + precmd=[]; + disp="N"; + forall(eqL, // 16.05.02 + tmp1=Toupper(substring(#,0,1)); + tmp=indexof(#,"="); + tmp2=Toupper(substring(#,tmp,tmp+1)); + if(tmp1=="D", + if(tmp2=="Y" % tmp2=="T", + disp="Y"; + options=remove(options,[#]); + ); + ); + ); + forall(stL, + if(indexof(#,"+")+indexof(#,"-")==0, + precmd=concat(precmd,[#,[]]); + options=remove(options,[#]); + ); + ); + if(isstring(fd), + tmp=Indexall(fd,","); + fst=[ + substring(fd,1,tmp_1-1), + substring(fd,tmp_1,tmp_2-1), + substring(fd,tmp_2,tmp_3-2) + ]; + xst=substring(fd,tmp_3,tmp_4-1); + yst=substring(fd,tmp_4,length(fd)); + , + ffd=Fullformfunc(fd); + fst=text(ffd_(2..4)); + tmp=indexof(ffd_5,"="); + xst=substring(ffd_5,0,tmp-1); + tmp=indexof(ffd_6,"="); + yst=substring(ffd_6,0,tmp-1); + ); + cmdL=precmd; + cmdL=concat(cmdL,[ + "fx:diff",[fst,xst], + "fy:diff",[fst,yst], + "nx:fx[2]*fy[3]-fx[3]*fy[2]",[], + "ny:fx[3]*fy[1]-fx[1]*fy[3]",[], + "nz:fx[1]*fy[2]-fx[2]*fy[1]",[], + "nn:factor(nx^2+ny^2+nz^2)",[], // 16.04.21 + "nn:sqrt(nn)",[], // 16.04.20 + "nx:nx/nn",[], + "ny:ny/nn",[], + "nz:nz/nn",[], + "n:[nx,ny,nz]",[], // 16.04.21from + "n:ratsimp(n)",[], + "n:trigsimp(n)",[], + "n:factor(n)",[], // 16.04.21upto + "n",[] + ]); + CalcbyM(name,cmdL,options); // 16.05.12 + tmp1=parse(name); // 16.05.12 + out=[tmp1]; // 15.04.21b from + tmp2=[]; + forall(1..3, + tmp=indexof(tmp1,","); + if(tmp==0, + tmp=indexof(tmp1,"]"); + ); + tmp3=substring(tmp1,0,tmp-1); + tmp1=substring(tmp1,tmp,length(tmp1)); + tmp=indexof(tmp3,"/"); + if(tmp>0, + tmp3=substring(tmp3,tmp,length(tmp3)); + tmp2=append(tmp2,tmp3); + , + tmp2=append(tmp2,"1"); + ); + ); +// out=append(out,tmp2); + out=out_1; // 16.05.02from + println("calculate "+name+":"); // 16.05.12 + if(disp=="Y", // 16.05.02 + println(out); + // println(out_2); + ); // 16.05.02upto + out; +); + +Mkobjthickcmd(nm,fd):=Mkobjthickcmd(nm,fd,"",[40,40,"+"]); +Mkobjthickcmd(nm,fd,Arg):=( + if(islist(Arg), + Mkobjthickcmd(nm,fd,"",Arg); + , + Mkobjthickcmd(nm,fd,Arg,[]); + ); +); +Mkobjthickcmd(nm,fd,fnrm,optionorg):=( +//help:Mkobjthickcmd("1",fd,["assume(R>0)"]); +//help:Mkobjthickcmd("1",fd,fnorm); +//help:Mkobjthickcmd(options1=[40,40,0.05,-0.05,"+n+s+e+w+"]); +//help:Mkobjthickcmd(options2=["ratsimp","trigsimp"]); + regional(options,ffd,cmd,out,div1,div2,thick1,thick2,side, + reL,stL,addcmd,fst,xst,yst,tmp,tmp1,tmp2,tmp3,tmp4); + div1=40; + div2=40; + thick1=0.05; + thick2=-0.05; + side="+n+s+e+w+"; + options=select(optionorg,length(#)>0); + tmp=Divoptions(options); + reL=tmp_6; + stL=tmp_7; + tmp1=1; // 16.04.21from + tmp2=1; + forall(1..length(reL), + tmp=reL_#; + if(tmp>1, + if(tmp1==1, + div1=tmp; + div2=tmp; + , + div2=tmp; + ); + tmp1=tmp1+1; + , + if(tmp2==1, + thick1=tmp; + thick2=-tmp; + , + thick2=tmp; + ); + tmp2=tmp2+1; + ); + ); // 16.04.21upto + options=remove(options,reL); + forall(stL, + if(length(#)>0, + tmp=indexof(#,"+")+indexof(#,"-"); + if(tmp>0, + side=#; + options=remove(options,[#]); + ); + ); + ); + side="'"+side+"'"; + ffd=Fullformfunc(fd); + tmp=indexof(ffd_5,"="); + tmp1=substring(ffd_5,0,tmp-1); + tmp2=substring(ffd_5,tmp,length(ffd_5)); + tmp=indexof(ffd_6,"="); + tmp3=substring(ffd_6,0,tmp-1); + tmp4=substring(ffd_6,tmp,length(ffd_6)); + fst=text(ffd_(2..4)); + tmp=indexof(ffd_5,"="); + xst=substring(ffd_5,0,tmp-1); + tmp=indexof(ffd_6,"="); + yst=substring(ffd_6,0,tmp-1); + out=["function Out=Fun"+nm+"("+tmp1+","+tmp3+")",[]]; + tmp=" Out=["+ffd_2+","+ffd_3+","+ffd_4+"]"; + out=concat(out,[tmp,[]]); + out=concat(out,["endfunction",[]]); + tmp=["function Out=Fnrm"+nm+"("+xst+","+yst+")",[]]; + out=concat(out,tmp); + if(fnrm=="", + tmp=Mkobjnrm(nm,fd,options); + tmp1="Out="+tmp; // 16.05.17 + tmp="Fnrmden"+nm+"("+xst+","+yst+"):="+tmp_2; + parse(tmp); + , +// tmp1=" Out="+fnrm; // 16.04.30 + tmp1=fnrm; // 16.04.30 + if(indexof(tmp1,"Out=")==0, // 16.05.09from + tmp1="Out="+tmp1; + ); // 16.05.09upto + ); + out=concat(out,[tmp1,[]]); + out=concat(out,["endfunction",[]]); + tmp1=["Objthicksurf", + ["Fun"+nm,tmp2,tmp4,div1,div2,"Fnrm"+nm,thick1,thick2,side]]; + out=concat(out,tmp1); + tmp2=[]; // 16.06.10from + forall(out,tmp1, + if(islist(tmp1), + tmp=apply(tmp1,if(isstring(#),Dq+#+Dq,Textformat(#,5))); + , + if(isstring(tmp1),tmp=Dq+tmp1+Dq,tmp=Textformat(#,5)); + ); + tmp2=append(tmp2,tmp); + ); + parse("oc"+nm+"="+tmp2); + println("cmd seq oc"+nm+" generated"); // 16.06.10upto + OBJCMD=concat(OBJCMD,out);//16.11.29 + out; +); + +Mkobjpolycmd(nm,pd):=Mkobjpolycmd(nm,pd,[]); +Mkobjpolycmd(nm,pd,optionorg):=( +//help:Mkobjpolycmd("1",pd); +//help:Mkobjpolycmd(options1=[internal([0,0,0])]); + regional(options,cmd,out,thick1,thick2,origin, + reL,stL,vtx,face,pt1,pt2,pt3,tmp,tmp1,tmp2); + thick1=0; + thick2=-0; + origin=[0,0,0]; + options=select(optionorg,length(#)>0); + tmp=Divoptions(options); + reL=tmp_6; + stL=tmp_7; + tmp1=1; + forall(1..length(reL), + tmp=reL_#; + if(islist(tmp), + origin=tmp; + , + if(tmp1==1, + thick1=tmp; + thick2=-tmp; + , + thick2=tmp; + ); + tmp1=tmp1+1; // 16.07.08 + ); + ); + options=remove(options,reL); + forall(stL, + tmp=indexof(#,"+")+indexof(#,"-"); + if(tmp>0, + side=#; + options=remove(options,[#]); + ); + ); + vtx=pd_1; //16.04.23from + if(length(pd)==2,face=pd_2,face=pd_3); + if(isstring(vtx),vtx=parse(vtx)); + vtx=apply(vtx,if(isstring(#),parse(#),#)); // 16.06.18 + if(isstring(face),face=parse(face)); + forall(1..length(face), + tmp=face_#; + pt1=vtx_(tmp_1);// 16.06.18 + pt2=vtx_(tmp_2);// 16.06.18 + pt3=vtx_(tmp_(length(tmp)));// 16.06.18 + tmp1=Crossprod(pt2-pt1,pt3-pt1); + tmp2=Dotprod(tmp1,pt1-origin); + if(tmp2<0, + face_#=reverse(face_#); + ); + ); + out=["Objpolyhedron",[vtx,face]]; + tmp2=[]; // 16.06.10from + forall(out,tmp1, + if(islist(tmp1), + tmp=apply(tmp1,if(isstring(#),Dq+#+Dq,Textformat(#,5))); + , + if(isstring(tmp1),tmp=Dq+tmp1+Dq,tmp=Textformat(#,5)); + ); + tmp2=append(tmp2,tmp); + ); + parse("oc"+nm+"="+tmp2); + println("cmd seq oc"+nm+" generated"); // 16.06.10upto + OBJCMD=concat(OBJCMD,out);//16.11.29 + out; +); + +Mkobjplatecmd(nm,pd):=Mkobjplatecmd(nm,pd,[]); +Mkobjplatecmd(nm,pdorg,optionorg):=( // 16.06.18 +//help:Mkobjplatecmd("1",pd); +//help:Mkobjplatecmd("1",vtxlist); +//help:Mkobjplatecmd(options1=[0.05,-0.05]); + regional(pd,options,cmd,out,thick1,thick2,nn,pdn, + reL,vtx,face,nv,npttmp,tmp1,tmp2,tmp3); + pd=pdorg; + if(MeasureDepth(pd)==1,pd=[pd]); + if(MeasureDepth(pd)==2,pd=[pd]);//16.10.04from + forall(1..length(pd),nn, // 16.06.19from + pdn=pd_nn; + vtx=pdn_1; + if(length(pdn)==1,face=[1..(length(vtx))],face=pdn_2); + vtx=apply(vtx,if(isstring(#),parse(#),#)); + vtx=apply(vtx,if(ispoint(#),parse(text(#)+"3d"),#)); + pd_nn=[vtx,face];//16.10.04upto + ); // 16.06.19upto + thick1=0.05; + thick2=-0.05; + options=select(optionorg,length(#)>0); + tmp=Divoptions(options); + reL=tmp_6; + tmp1=1; + forall(1..length(reL), + tmp=reL_#; + if(tmp1==1, + thick1=tmp; + thick2=-tmp; + , + thick2=tmp; + ); + tmp1=tmp1+1;// 16.07.08 + ); + options=remove(options,reL); + out=[]; + forall(1..length(pd),npd, + forall(pd_npd_2,face, + vtx=apply(face,pd_npd_1_#); + npt=length(vtx); + tmp1=vtx_1; + tmp2=vtx_2; + tmp3=vtx_npt; + tmp=Crossprod(tmp2-tmp1,tmp3-tmp1); + nv=tmp/Dist3d(tmp); + tmp1=apply(vtx,#+thick1*nv); + tmp2=apply(vtx,#+thick2*nv); + vtx=concat(tmp1,tmp2); + tmp=apply(1..npt,#+npt); + tmp2=[1..npt,reverse(tmp)]; + tmp=apply(1..(npt-1),[#,#+npt,#+npt+1,#+1]); + tmp2=concat(tmp2,tmp); + tmp=[npt,npt+npt,1+npt,1]; + tmp2=append(tmp2,tmp); + out=concat(out,["Objpolyhedron",[vtx,tmp2]]); + ); + ); + tmp3="["; // 16.06.10from + forall(out,tmp1, + tmp2=""; + if(isstring(tmp1), + tmp2=tmp2+Dq+tmp1+Dq+",["; + , + tmp2=tmp2+Textformat(tmp1_1,5)+","; + tmp2=tmp2+Textformat(tmp1_2,5)+"],"; + ); + tmp3=tmp3+tmp2; + ); + tmp3=substring(tmp3,0,length(tmp3)-1)+"]"; + parse("oc"+nm+"="+tmp3); + println("cmd seq oc"+nm+" generated"); + OBJCMD=concat(OBJCMD,out);//16.11.29 + out; +); + +Mkobjcrvcmd(nm,pst):=Mkobjcrvcmd(nm,pst,[]); +Mkobjcrvcmd(nm,pstorg,options):=( +//help:Mkobjcrvcmd("1","sc3d1",[0.02,6,"xy"]); + regional(cmd,out,thick,poly,dir,phead,pst, + reL,stL,tmp,tmp1,tmp2,tmp3,tmp4,flg); + thick=0.02; + poly=6; + dir="xy"; + tmp=Divoptions(options); + reL=tmp_6; + stL=select(tmp_7,length(#)>0); + forall(1..length(reL), + if(#==1, + thick=reL_1; + , + poly=reL_2; + ); + ); + forall(stL, + dir=#; + ); + dir="'"+dir+"'"; + tmp=indexof(pstorg,"_"); + if(tmp==0, + phead=pstorg; + , + phead=substring(pstorg,0,tmp-1); + ); + pst=pstorg; + out=[]; + tmp1=select(GLIST,indexof(#,phead+"=")>0); + if(length(tmp1)==0, println(phead+" incorrect")); +// out=[tmp1_1,[]]; + out=[]; + tmp1=parse(pst); + flg=0; // 16.04.23from + if(MeasureDepth(tmp1)==2,flg=1); + if(MeasureDepth(tmp1)==0, + if(islist(tmp1),flg=1); + ); + if(flg==1, // 16.04.23upto + if(!isstring(tmp1_1), + forall(1..length(tmp1), + tmp=["Objcurve",[pst+"("+text(#)+")",thick,poly,dir]]; + out=concat(out,tmp); + ); + , + forall(1..length(tmp1), // 16.11.14from + tmp=["Objcurve",[tmp1_#,thick,poly,dir]]; + out=concat(out,tmp); + );// 16.11.14upto + ); + , + tmp1=Chunderscore(pst); + tmp=["Objcurve",[tmp1,thick,poly,dir]]; + out=concat(out,tmp); + ); + tmp2=[]; // 16.06.10from + forall(out,tmp1, + if(islist(tmp1), + tmp=apply(tmp1,if(isstring(#),Dq+#+Dq,Textformat(#,5))); + , + if(isstring(tmp1),tmp=Dq+tmp1+Dq,tmp=Textformat(#,5)); + ); + tmp2=append(tmp2,tmp); + ); + parse("oc"+nm+"="+tmp2); + println("cmd seq oc"+nm+" generated"); // 16.06.10upto + OBJCMD=concat(OBJCMD,out);//16.11.29 + out; +); + +Mkobjsymbcmd(symb,size,rot,dir,pos):= + Mkobjsymbcmd("",symb,size,rot,dir,pos,[]); +Mkobjsymbcmd(Ar1,Ar2,Ar3,Ar4,Ar5,Ar6):=( + if(isstring(Ar2), + Mkobjsymbcmd(Ar1,Ar2,Ar3,Ar4,Ar5,Ar6,[]); + , + Mkobjsymbcmd("",Ar1,Ar2,Ar3,Ar4,Ar5,Ar6); + ); +); +Mkobjsymbcmd(path,symborg,size,rot,dir,pos,optionorg):=( +//help:Mkobjsymbcmd("x",0.5,0,V3d,A3d); +//help:Mkobjsymbcmd("P",0.5,0,V3d,A3d); +//help:Mkobjsymbcmd(options=[0.05,4,"'yz'"]); + regional(symb,options,opbez,eqL,reL,stL,dtL,dt, + alpha,Alpha,out,mx,Mx,my,My,center,tmp,tmp1,tmp2); + alpha="abcdefghijklmnopqrstuvwxyz"; + Alpha=Toupper(alpha); + symb=symborg; + options=optionorg; + opbez=["nodisp"]; + tmp=Divoptions(options); + eqL=tmp_5; + reL=tmp_6; + stL=tmp_7; + opbez=concat(opbez,eqL); + options=remove(options,eqL); + tmp1=[0.05,4,"'yz'"]; + if(length(reL)==0, + options=concat(options,tmp1_(1..2)); + ); + if(length(reL)==1, // debugged 16.06.18 + options=concat(options,[tmp1_2]); + ); + if(length(stL)==0, + options=concat(options,[tmp1_3]); + ); + tmp=parse(symb); + if(islist(tmp), + tmp1=select(GLIST,substring(#,0,length(symb))==symb); + tmp1=tmp1_1; + out=[tmp1,[]]; + dtL=symb; + , + tmp=substring(symb,0,1); + if(tmp>="a" & tmp<="z",tmp1=tmp+"s"); + if(tmp>="A" & tmp<="Z", + tmp=indexof(Alpha,tmp); + tmp=substring(alpha,tmp-1,tmp); + tmp1=tmp+"c"; + ); + if(length(symb)==1, + if(symb>"Z", + symb=tmp1+"i"; + , + symb=tmp1+"r"; + ); + ); + if(length(symb)==2,symb=tmp1+substring(symb,1,2)); + out=[]; + if(length(path)>0, // 16.04.23from + setdirectory(path); + , +// tmp=Dirhead+"/ketsample/samples/s13meshlab/fontF"; + tmp=Dirhead+"/data/fontF"; // 16.05.10 + setdirectory(tmp); + ); // 16.04.23upto + dtL=Readbezier(symb,opbez); + setdirectory(Dirwork); + forall(dtL,dt, + tmp=dt+"="; + tmp1=select(GLIST,indexof(#,tmp)>0); + tmp1=tmp1_1; + out=concat(out,[tmp1,[]]); + ); + mx=100;Mx=-100;my=100;My=-100; + forall(dtL,dt, + tmp=apply(parse(dt),#_1); + mx=min(append(tmp,mx)); + Mx=max(append(tmp,Mx)); + tmp=apply(parse(dt),#_2); + my=min(append(tmp,my)); + My=max(append(tmp,My)); + ); + center=[(mx+Mx)/2,(my+My)/2]; + tmp1=[]; + forall(dtL,dt, + Rotatedata(dt,dt,rot,[center,"nodisp"]); // 16.04.23 + Translatedata(dt,"rt"+dt,-center,["nodisp"]); + tmp1=append(tmp1,"tr"+dt); + ); + dtL=tmp1; + forall(dtL,dt, + tmp=dt+"="; + tmp1=select(GLIST,indexof(#,tmp)>0); + tmp1=tmp1_1; + out=concat(out,[tmp1,[]]); + ); + ); + tmp1=text(options); + tmp1=substring(tmp1,1,length(tmp1)-1); + out=concat(out,[ + "Sd=Symb3data",[dtL,size,0,dir,pos], // 16.04.23 + "Objsymb(Sd,"+tmp1+")",[] + ]); + tmp2=[]; // 16.06.10from + forall(out,tmp1, + if(islist(tmp1), + tmp=apply(tmp1,if(isstring(#),Dq+#+Dq,Textformat(#,5))); + , + if(isstring(tmp1),tmp=Dq+tmp1+Dq,tmp=Textformat(#,5)); + ); + tmp2=append(tmp2,tmp); + ); + parse("oc"+symborg+"="+tmp2); + println("cmd seq oc"+symborg+" generated"); // 16.06.10upto + OBJCMD=concat(OBJCMD,out);//16.11.29 + out; +); + +Concatcmd(cmdlist):=( +//help:Concatcmd([cmdL1,cmdL2]); + regional(out); + out=[]; + forall(cmdlist, + out=concat(out,#); + ); + out; +); + +WritetoF(fname,cmdL):=( +// help:WritetoF("outdata",cmdL); + regional(tmp,tmp1,tmp2,filename,wfilename); + if(indexof(fname,".")==0, + filename=fname+".input"; + , + filename=fname; + ); + wfilename=replace(filename,".input",".txt"); + SCEOUTPUT = openfile(filename); + forall(1..(length(cmdL)), + tmp1=cmdL_#; + if(substring(tmp1,0,1)=="[", + tmp1=tmp1+" --##"; + println(SCEOUTPUT,tmp1); + , + println(SCEOUTPUT,tmp1); + println(SCEOUTPUT," --##"); + ); + ); + closefile(SCEOUTPUT); +); + +kcF(fname):=kcF(fname,[]); +kcF(fname,optionorg):=( + regional(options,tmp,tmp1,tmp2,eqL,strL, + filename,wfile,flg); + if(indexof(fname,".")==0, + filename=fname+".input"; + , + filename=fname; + ); + wfile=replace(filename,".input",".sfort"); + options=optionorg; + tmp=Divoptions(options); + eqL=tmp_5; + strL=tmp_7; + forall(eqL, + tmp=indexof(#,"="); + tmp1=substring(#,0,tmp-1); + tmp2=substring(#,tmp,length(#)); + ); + flg=0; + forall(strL, + if(Toupper(substring(#,0,1))=="R", + flg=0; + options=remove(options,[#]); + ); + if(Toupper(substring(#,0,1))=="M", + flg=1; + ); + ); + if(flg==0, + tmp2=replace(filename,".input",".sfort"); + tmp1=load(tmp2); + if(length(tmp1)==0, + flg=1; + ); + ); + if(flg==1, + tmp1=""; + if(iswindows(), + tmp2=Batparent; + , + tmp2=Shellparent; + ); + flg=0; + forall(reverse(1..length(tmp2)), + if(flg==0, + tmp=substring(tmp2,#-1,#); + if(tmp=="/" % tmp=="\", // 14.01.15 + tmp1=substring(tmp2,0,#-1); + tmp2=substring(tmp2,#,length(tmp2)); + flg=1; + ); + ); + ); + if(length(tmp1)>0, + setdirectory(tmp1); + ); + if(iswindows(), +// SCEOUTPUT=openfile(wfile); +// println(SCEOUTPUT,""); +// closefile(SCEOUTPUT); + SCEOUTPUT = openfile("kc.bat"); + tmp=Dq+PathF+"\bash"+Dq+" --login -i -c "+Dq+"/cygdrive/"; + tmp1=replace(Dirwork,"\","/"); + if(indexof(tmp1,":")==0, + tmp=tmp+"c/"+tmp1+"/kc.sh"+Dq; + , + tmp1=replace(tmp1,":",""); + tmp=tmp+tmp1+"/kc.sh"+Dq; + ); + println(SCEOUTPUT,tmp); + println(SCEOUTPUT,"exit 0"); + closefile(SCEOUTPUT); + SCEOUTPUT = openfile("kc.sh"); + Lf=unicode("10",base->10); + print(SCEOUTPUT,"#!/bin/sh"+Lf); + tmp1=replace(Dirwork,"\","/"); + if(indexof(tmp1,":")==0, + tmp="cd "+Dq+"/cygdrive/c/"+tmp1+Dq; + , + tmp1=replace(tmp1,":",""); + tmp="cd "+Dq+"/cygdrive/"+tmp1+Dq; + ); + print(SCEOUTPUT,tmp+Lf); + tmp=Dq+"/opt/fricas/bin/fricas"; + tmp=tmp+Dq+" -nox -eval "; + tmp=tmp+Dq+")read "+filename+Dq; +// tmp=tmp+" > "+Dq+wfile+Dq; + print(SCEOUTPUT,tmp+Lf); + print(SCEOUTPUT,"exit 0"+Lf); + closefile(SCEOUTPUT); + println(kc(Dirwork+Batparent,Dirlib,Fnametex));// 16.05.29,06.05 + , + SCEOUTPUT = openfile("kc.sh"); + println(SCEOUTPUT,"#!/bin/sh"); + println(SCEOUTPUT,"cd "+Dq+Dirwork+Dq); + tmp=Dq+PathF+Dq+" -nox -eval "+Dq+")read "+filename+Dq; +// tmp=tmp+" > "+wfile; + println(SCEOUTPUT,tmp); + println(SCEOUTPUT,"exit 0"); + closefile(SCEOUTPUT); + println(kc(Dirwork+Shellparent,Mackc+Dirlib,Fnametex));// 16.05.29,06.05 + ); + setdirectory(Dirwork); + ); +); + +CalcbyF(name,cmd):=CalcbyM(name,cmd,[]); +CalcbyF(name,cmd,optionorg):=( +//help:CalcbyF("a",cmdL); +//help:CalcbyF(options= ["m/r","Wait=5"]]); + regional(options,tmp,tmp1,tmp2,tmp3,tmp4,strL,eqL, + flg,wflg,file,nc,arg,cmdF,cmdlist,wfile,Alpha, + waiting,num,dig,varlist); + options=optionorg; + tmp=divoptions(options); + eqL=tmp_5; + strL=tmp_7; + waiting=5; + dig=5; + forall(eqL, + tmp=indexof(#,"="); + tmp1=Toupper(substring(#,0,1)); + tmp2=substring(#,tmp,length(#)); + if(tmp1=="W", + waiting=parse(tmp2); + options=remove(options,[#]); + ); + ); + file=Fhead+name+".input"; + wfile=Fhead+name+".sfort"; + wflg=0; + forall(strL, + tmp=Toupper(substring(#,0,1)); + if(tmp=="M", + wflg=1; + options=remove(options,[#]); + ); + if(tmp=="R", + wflg=-1; + options=remove(options,[#]); + ); + ); + cmdF=cmd; + tmp1=")set breakmode quit"; + tmp2=")set output fortran on"; + tmp3=")set fortran precision single"; + cmdlist=[tmp1,tmp2,tmp3]; + tmp=")set output fortran "+wfile; + cmdlist=append(cmdlist,tmp); + forall(1..floor(length(cmdF)/2),nc, //17.5.18 + tmp1=cmdF_(2*nc-1); + tmp1=replace(tmp1,LFmark,""); // 16.06.12 + tmp2=cmdF_(2*nc); // list of argments + if(nc<length(cmdF)/2, + tmp3=""; + forall(tmp2,arg, + if(isstring(arg), + tmp3=tmp3+arg+","; + , + tmp3=tmp3+textformat(arg,dig)+","; + ); + ); + if(length(tmp3)>0, + tmp3=tmp1+ + "("+substring(tmp3,0,length(tmp3)-1)+")"; + , + tmp3=tmp1; + ); + cmdlist=append(cmdlist,tmp3); + , + if(indexof(tmp1,"::")==0, + varlist=[tmp1]; + , + varlist=tokenize(tmp1,"::"); + ); + forall(varlist, + cmdlist=append(cmdlist,"["+#+"]"); + ); + ); + ); + cmdlist=concat(cmdlist,["111111*1",")quit"]); + if(wflg==0, + tmp1=load(file); + if(length(tmp1)==0, + wflg=1; + , + if(indexof(tmp1," --##")==0, // 15.11.26 + wflg=1; + , + tmp1=tokenize(tmp1," --##"); + tmp1=tmp1_(1..(length(tmp1)-1)); + if(length(tmp1)!=length(cmdlist), + wflg=1; + , + tmp=select(1..length(tmp1),tmp1_#!=cmdlist_#); + if(length(tmp)>0, wflg=1); + ); + ); + ); + ); + if(wflg==0,wflg=-1); + if(wflg==1, + if(length(wfile)>0, + SCEOUTPUT=openfile(wfile); + println(SCEOUTPUT,""); + closefile(SCEOUTPUT); + ); + WritetoF(file,cmdlist); + kcF(file,concat(options,["m"])); + ); + Alpha="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + flg=0; + tmp1=floor(waiting*1000/WaitUnit); + repeat(tmp1, + if(flg==0, + tmp1=load(wfile); + if(wflg==1,wait(WaitUnit)); + tmp=indexof(tmp1,"Error")+indexof(tmp1,"find"); + if(tmp>0, + println("Some error(s) occurred"); + tmp=tokenize(tmp1," --##"); + forall(tmp, + if(indexof(#,"Error")+indexof(#,"find")>0, + println(tmp_(length(tmp))); + ); + ); + flg=2; + ); + if(indexof(tmp1,"111111")>0, + tmp1=replace(tmp1," &",""); + tmp3="["; + forall(1..length(varlist), + tmp=indexof(tmp1,"["+varlist_#+"]"); + tmp1=substring(tmp1,tmp,length(tmp1)); + tmp=indexof(tmp1,"(1)="); + tmp1=substring(tmp1,tmp+3,length(tmp1)); + tmp=indexof(tmp1," "); + tmp3=tmp3+Dq+substring(tmp1,0,tmp-1)+Dq+","; + ); + tmp3=replace(tmp3,"**","^"); + tmp3=replace(tmp3,".0",""); + tmp4=""; + forall(1..length(tmp3), + tmp=substring(tmp3,#-1,#); + tmp1=indexof(Alpha,tmp); + if(tmp1>0, + tmp4=tmp4+unicode(text(tmp1+96),base->10); + , + if(tmp==" " % tmp=="&", + , + tmp4=tmp4+tmp; + ); + ); + ); + tmp=name+"="+substring(tmp4,0,length(tmp4)-1)+"]"; + parse(tmp); + tmp=parse(name); + if(length(tmp)==1, + tmp1=substring(tmp4,1,length(tmp3)-1); + parse(name+"="+tmp1); + ); + flg=1; + tmp2=#*WaitUnit/1000; + , + if(wflg==-1, + flg=-1; + , + wait(WaitUnit); + ); + ); + ); + ); + if(flg<=0, + if(flg==-1, + println(wfile+" does not exist"); + , + tmp="("+text(waiting)+" s )"; + tmp1=load(wfile); + if(length(tmp1)>0, + println(wfile+" incomplete"+tmp); // 2016.02.24 + , + println(wfile+" not generated "+tmp); + ); + ); + , + if(flg==1, + println(" Succeeded "+name+" ("+text(tmp2)+" sec)"); + ); + ); +); + +Frfun(name,fun,argL):=Frifun(name,fun,argL,[]); +Frfun(name,fun,argL,optionorg):=Frifun(name,fun,argL,optionorg); +Frifun(name,fun,argL):=Frifun(name,fun,argL,[]); +Frifun(name,fun,argL,optionorg):=( +//help:Frfun("1","integrate",["sin(x)^3","x"],[""]); +//help:Mxfun(options=["Disp=y"]); + regional(nm,options,eqL,disp,cmdL,tmp,tmp1,tmp2); + nm="fri"+name; + options=optionorg; + tmp=divoptions(options); + disp=1; + eqL=tmp_5; + forall(eqL, + tmp=indexof(#,"="); + tmp1=Toupper(substring(#,0,3)); + tmp2=substring(#,tmp,length(#)); + if((tmp1=="DIS") % (tmp1=="DSP") , + tmp=Toupper(substring(tmp2,0,1)); + if((tmp=="F") % (tmp=="N"), + disp=0; + ); + options=remove(options,[#]); + ); + ); + cmdL=[]; + cmdL=concat(cmdL,[ + "ans"+":="+fun,argL, + "ans",[] + ]); + CalcbyF(nm,cmdL,options); + if(disp==1, // 15.11.24 + println(nm+" is : "); + println(parse(nm)); + ); + parse(nm); +); + +Mkketcindyjs():=Mkketcindyjs("ketcindylib"); //16.10.07,11.06 +Mkketcindyjs(Arg):=( + if(isstring(Arg), + Mkketcindyjs(Arg,[]) + , + Mkketcindyjs("ketcindylib",Arg) + ); +); +Mkketcindyjs(libname,options):=( +//help:Mkketcindyjs("ketcindylib"); +//help:Mkketcindyjs(options="Tex=y","Net=y"]); + regional(texflg,netflg,tmp,tmp1,tmp2); + texflg="Y"; + netflg="Y"; + forall(options, + tmp1=Toupper(#); + if(indexof(tmp1,"TEX")>0, + tmp=indexof(tmp1,"="); + texflg=Toupper(substring(tmp1,tmp,tmp+1)); + ); + if(indexof(tmp1,"NET")>0, + tmp=indexof(tmp1,"="); + netflg=Toupper(substring(tmp1,tmp,tmp+1)); + ); + ); + SCEOUTPUT = openfile(Fhead+".sce"); + println(SCEOUTPUT,"cd('"+Dirhead+"/CindyJS);"); + println(SCEOUTPUT,"Dtket=mgetl('"+libname+".txt');"); + println(SCEOUTPUT,"cd('"+Dirwork+"');"); + println(SCEOUTPUT,"Dtjs=mgetl('"+Fhead+".html');"); + println(SCEOUTPUT,"Qt=char(34);"); + println(SCEOUTPUT,"Fb=0;Lb=0;Ka=0;"); + println(SCEOUTPUT, + "for I=1:size(Dtjs,1)"); + println(SCEOUTPUT, + " Tmp=strindex(Dtjs(I,:),['<script id=','csinit']);"); + println(SCEOUTPUT, + " if length(Tmp)>1 then Fb=I,end;"); + println(SCEOUTPUT, + " if Fb>0 then"); + println(SCEOUTPUT, + " Tmp=strindex(Dtjs(I,:),'</script>');"); + println(SCEOUTPUT, + " if Tmp>0 then Lb=I,end;"); + println(SCEOUTPUT, + " Tmp=strindex(Dtjs(I,:),'scripts: '+Qt+'cs*'+Qt+',');"); + println(SCEOUTPUT, + " if Tmp>0 then Ka=I;break,end;"); + println(SCEOUTPUT, + " end;"); + println(SCEOUTPUT, + "end;"); + if(netflg=="N", //16.11.08from + println(SCEOUTPUT, + "for I=1:Fb"); + println(SCEOUTPUT, + " Tmp=strindex(Dtjs(I,:),['href=','CindyJS.css']);"); + println(SCEOUTPUT, + " if length(Tmp)>1 then"); + println(SCEOUTPUT, + " Tmp=part(Dtjs(I,:),1:(Tmp(1)+4))+Qt+'CindyJS.css'+Qt+'>';"); + println(SCEOUTPUT, + " Dtjs(I,:)=Tmp;"); + println(SCEOUTPUT, + " end;"); + println(SCEOUTPUT, + " Tmp=strindex(Dtjs(I,:),['src=','Cindy.js']);"); + println(SCEOUTPUT, + " if length(Tmp)>1 then"); + println(SCEOUTPUT, + " Tmp=part(Dtjs(I,:),1:(Tmp(1)+3))+Qt+'Cindy.js'+Qt+'></script>';"); + println(SCEOUTPUT, + " Dtjs(I,:)=Tmp;"); + println(SCEOUTPUT, + " end;"); + println(SCEOUTPUT, + "end;"); + );//16.11.08upto + println(SCEOUTPUT, + "Dtket=[Dtjs(1:Fb,:);Dtket;Dtjs(Lb:Ka,:)];"); + if(texflg=="Y", + println(SCEOUTPUT, + "Dtket=[Dtket;' use: ['+Qt+'katex'+Qt+'],'];"); + ); + println(SCEOUTPUT, //16.11.08from + "for I=Ka+1:size(Dtjs,1)"); + println(SCEOUTPUT, + " Tmp=strindex(Dtjs(I,:),['Button',Qt+'Figure']);"); + println(SCEOUTPUT, + " if length(Tmp)>1 then continue,end;"); + println(SCEOUTPUT, + " Tmp=strindex(Dtjs(I,:),['Button',Qt+'Exekc']);"); + println(SCEOUTPUT, + " if length(Tmp)>1 then continue,end;"); + println(SCEOUTPUT, + " Tmp=strindex(Dtjs(I,:),['Button',Qt+'Parent']);"); + println(SCEOUTPUT, + " if length(Tmp)>1 then continue,end;"); + println(SCEOUTPUT, + " Tmp=strindex(Dtjs(I,:),['Button',Qt+'KeTJS']);"); + println(SCEOUTPUT, + " if length(Tmp)>1 then continue,end;"); + println(SCEOUTPUT, + " Dtket=[Dtket;Dtjs(I,:)];"); + println(SCEOUTPUT, + "end"); //16.11.08upto +// println(SCEOUTPUT, +// "Dtket=[Dtket;Dtjs((Ka+1):(size(Dtjs,1)),:)];"); + println(SCEOUTPUT, + "mputl(Dtket,'"+Fhead+"ketcindy.html');"); + println(SCEOUTPUT,"quit()"); + closefile(SCEOUTPUT); + kcS(PathS,Fhead+".sce",["m"]); +); + +Cheader():=Cheader(FdC,FheadC+"header.h"); +Cheader(fdc,fname):=( + regional(tmp,tmp1,tmp2,j, dW,dE,dS,dN,dstr, + DsizeLL,DsizeL,DsizeM,DsizeS,Eps,Eps1,Eps2,Eps3); + Mdv=50; Ndv=50; + DsizeLL=15000; DsizeL=1500; DsizeM=500; DsizeS=200; + Eps=0.00001; Eps1=0.05; Eps2=0.2; Eps3=1; + SCEOUTPUT = openfile(fname); + tmp=indexof(fdc_2,"="); + tmp1=substring(fdc_2,tmp,length(fdc_2)); + tmp1=replace(tmp1,"[","{"); + tmp1=replace(tmp1,"]","}"); + tmp=indexof(fdc_3,"="); + tmp2=substring(fdc_3,tmp,length(fdc_3)); + tmp2=replace(tmp2,"[","{"); + tmp2=replace(tmp2,"]","}"); + tmp="const double Urng[2]="+tmp1+", Vrng[2]="+tmp2; + println(SCEOUTPUT,tmp+";"); + tmp="const double XMIN="+Sprintf(XMIN,6); + tmp=tmp+",XMAX="+Sprintf(XMAX,6); + println(SCEOUTPUT,tmp+";"); + tmp="const double THETA="+Sprintf(THETA,6); + tmp=tmp+",PHI="+Sprintf(PHI,6); + println(SCEOUTPUT,tmp+";"); + tmp=" //THETA:"+Sprintf(THETA*180/pi,2); + tmp=tmp+", PHI:"+Sprintf(PHI*180/pi,2); + println(SCEOUTPUT,tmp+";"); + dstr=fdc_4; + if(indexof(dstr,"w")>0,dW=1,dW=0); + if(indexof(dstr,"e")>0,dE=1,dE=0); + if(indexof(dstr,"s")>0,dS=1,dS=0); + if(indexof(dstr,"n")>0,dN=1,dN=0); + tmp="const int DrawW="+text(dW)+", DrawE="+text(dE); + tmp=tmp+", DrawS="+text(dS)+", DrawN="+text(dN); + println(SCEOUTPUT,tmp+";"); + forall(j=5..(length(fdc)), + tmp=fdc_#; //17.05.21from + if(length(tmp)==2, + if(tmp_1>1, //17.05.24from + Mdv=tmp_1; Ndv=tmp_2; + , + if(length(tmp_1)>0, Eps1=tmp_1); + if(length(tmp_1)>0, Eps2=tmp_2); + ); //17.05.24upto + ); + if(length(tmp)==3, + if(length(tmp_1)>0, DsizeLL=tmp_1);//17.06.09(3lines) + if(length(tmp_2)>0, DsizeL=tmp_2); + if(length(tmp_3)>0, DsizeM=tmp_3); + ); + if(length(tmp)==4, + if(min(tmp)<1, + if(length(tmp_1)>0, Eps=tmp_1); + if(length(tmp_2)>0, Eps1=tmp_2); + if(length(tmp_3)>0, Eps2=tmp_3); + if(length(tmp_4)>0, Eps3=tmp_4); + , + if(length(tmp_1)>0, DsizeLL=tmp_1); + if(length(tmp_2)>0, DsizeL=tmp_2); + if(length(tmp_3)>0, DsizeM=tmp_3); + if(length(tmp_4)>0, DsizeS=tmp_4); + ) + );//17.05.21upto + ); + tmp1=text(fdc_5_1); + tmp2=text(fdc_5_2); + tmp="const int Mdv="+text(Mdv)+", Ndv="+text(Ndv); + println(SCEOUTPUT,tmp+";"); + tmp="#define DsizeLL "+text(DsizeLL);//17.05.21 + println(SCEOUTPUT,tmp); + tmp="#define DsizeL "+text(DsizeL); + println(SCEOUTPUT,tmp); + tmp="#define DsizeM "+text(DsizeM); + println(SCEOUTPUT,tmp); + tmp="#define DsizeS "+text(DsizeS); + println(SCEOUTPUT,tmp); + tmp="const double Eps="+format(Eps,7); + tmp=tmp+", Eps1="+format(Eps1,7); + tmp=tmp+", Eps2="+format(Eps2,7); + tmp=tmp+", Eps3= "+format(Eps3,7); + println(SCEOUTPUT,tmp+";"); + tmp="void surffun(double u, double v, double pt[3]){"; + println(SCEOUTPUT,tmp); + forall(fdc_1, + tmp1=replace(#,"x=","pt[0]="); + tmp1=replace(tmp1,"y=","pt[1]="); + tmp1=replace(tmp1,"z=","pt[2]="); + println(SCEOUTPUT," "+tmp1+";"); + ); + println(SCEOUTPUT,"}"); + closefile(SCEOUTPUT); +); + +Cmain():=Cmain(FheadC+".c",MainC); +Cmain(fname,cmdLorg):=( +//help:MainC(writesfbd("sfbd");) +//help:MainC(writeax("ax");) +//help:MainC(writewire("wire" (,2), [10,10]);) +//help:MainC(writewire("wire", [[0.5,1],[0,1,2]]]);) +//help:MainC(writecut("sfcut","x+y+2*z-4");) +//help:MainC(writesc("sl3d1");) +//help:MainC(skeleton("sk",[objlist],[pltlist] (,width));) +//help:MainC(writewire ptincrease (=2) are optional);) + regional(cmdL, tmp,tmp1,tmp2,tmp3,tmp4,nL, nn,kk,jj, num, en,cmd, + ax1,ax2,ax3,path, var,varh,file,fileh, flg, cutctr); + path=Dirwork+"/"; //17.05.29from + path=replace(path,"\","/"); + cmdL=cmdLorg;// 17.05.26from + nL=select(1..(length(cmdL)),cmdL_#=="writeax"); + cmd=[]; + if(length(nL)>0,tmp3=cmdL_(1..(nL_1-1)),tmp3=[]); + forall(1..(length(nL)), + tmp2=cmdL_(nL_#+1); + if(length(tmp2)==1,tmp2=append(tmp2,"Surf")); + tmp=tmp2_1; // 17.06.08(5lines) + if(substring(tmp,length(tmp)-2,length(tmp))!="3d", + tmp=tmp+"3d"; + ); + tmp1=parse(tmp); + tmp="axx="+textformat(tmp1_1,5); + parse(tmp); + tmp="axy="+textformat(tmp1_2,5); + parse(tmp); + tmp="axz="+textformat(tmp1_3,5); + parse(tmp); + tmp3=concat(tmp3,[ + "double "+tmp2_1+"[DsizeL][3];",[], //17.06.07(2lines) + "double axx[3][3], axy[3][3], axz[3][3];",[], + "spaceline",["axx"], + "spaceline",["axy"], + "spaceline",["axz"], + tmp2_1+"[0][0]=0;",[], + "appendd3(2,1,2,axx,"+tmp2_1+");",[], + "appendd3(2,1,2,axy,"+tmp2_1+");",[], + "appendd3(2,1,2,axz,"+tmp2_1+");",[], + "writecrv",[tmp2_1,tmp2_2] //17.06.07 + ]); + cmd=concat(cmd,tmp3); + if(#<length(nL), + tmp3=cmdL_((nL_#+2)..(nL_(#+1)-1)); + , + tmp3=cmdL_((nL_#+2)..(length(cmdL))); + cmdL=concat(cmd,tmp3); + ); + ); + nL=select(1..(length(cmdL)),cmdL_#=="writesc"); + cmd=[]; + if(length(nL)>0,tmp3=cmdL_(1..(nL_1-1)),tmp3=[]); + forall(1..(length(nL)), + tmp2=cmdL_(nL_#+1); + if(length(tmp2)==1, + tmp2=[tmp2_1,"Surf"]; + ); + tmp3=concat(tmp3,[ + "double "+tmp2_1+"[DsizeL][3];",[], //17.06.07(2lines) + "double "+tmp2_1+"h[DsizeL][3];",[], + "spaceline",[tmp2_1], + "writecrv",[tmp2_1,tmp2_2] //17.06.07 + ]); + cmd=concat(cmd,tmp3); + if(#<length(nL), + tmp3=cmdL_((nL_#+2)..(nL_(#+1)-1)); + , + tmp3=cmdL_((nL_#+2)..(length(cmdL))); + cmdL=concat(cmd,tmp3); + ); + ); + nL=select(1..(length(cmdL)),cmdL_#=="writesfbd"); + cmd=[]; + if(length(nL)>0,tmp3=cmdL_(1..(nL_1-1)),tmp3=[]); + forall(1..(length(nL)), + tmp2=cmdL_(nL_#+1); + if(length(tmp2)==1,tmp2=append(tmp2,"Surf")); + var=Dq+tmp2_1+"3d"+Dq; + varh=Dq+tmp2_1+"h3d"+Dq; + file=Dq+path+FheadC+tmp2_1+".txt"+Dq; + fileh=Dq+path+FheadC+tmp2_1+"h.txt"+Dq; + tmp="Borderhiddendata"; + tmp3=concat(tmp3,[ + "double "+tmp2_1+"[DsizeL][3];",[], //17.06.09(6lines) + "sfbdparadata",[tmp2_1], + "output3h",[var, varh,file,tmp2_1], + "dataindexd3",[3,tmp2_1,"din"], + tmp2_2+"[0][0]=0;",[], + "appendd3",[2,"din[1][0]","din[1][1]",tmp2_1,tmp2_2] + ]); + cmd=concat(cmd,tmp3); + if(#<length(nL), + tmp3=cmdL_((nL_#+2)..(nL_(#+1)-1)); + , + tmp3=cmdL_((nL_#+2)..(length(cmdL))); + cmdL=concat(cmd,tmp3); + ); + ); + nL=select(1..(length(cmdL)),cmdL_#=="writecrv"); + cmd=[]; + if(length(nL)>0,tmp3=cmdL_(1..(nL_1-1)),tmp3=[]); + forall(1..(length(nL)), + tmp2=cmdL_(nL_#+1); + if(length(tmp2)==1,tmp2=append(tmp2,"Surf")); + var=Dq+tmp2_1+"3d"+Dq; + varh=Dq+tmp2_1+"h3d"+Dq; + file=Dq+path+FheadC+tmp2_1+".txt"+Dq; + tmp3=concat(tmp3,[ + "crvsfparadata",[tmp2_1,tmp2_2,1,"Crvdata"], + tmp2_1+"[0][0]=0;",[], //17.06.09(3lines) + "appendd3",[0,1,"length3(Crvdata)","Crvdata",tmp2_1], + "output3h",[var, varh, file,tmp2_1] + ]); + cmd=concat(cmd,tmp3); + if(#<length(nL), + tmp3=cmdL_((nL_#+2)..(nL_(#+1)-1)); + , + tmp3=cmdL_((nL_#+2)..(length(cmdL))); + cmdL=concat(cmd,tmp3); + ); + ); + nL=select(1..(length(cmdL)),cmdL_#=="writescrvonsf"); + cmd=[]; + if(length(nL)>0,tmp3=cmdL_(1..(nL_1-1)),tmp3=[]); + forall(1..(length(nL)), + tmp2=cmdL_(nL_#+1); + if(length(tmp2)==1,tmp2=append(tmp2,"Surf")); + var=Dq+tmp2_1+"3d"+Dq; + varh=Dq+tmp2_1+"h3d"+Dq; //17.06.09(8lines) + file=Dq+path+FheadC+tmp2_1+".txt"+Dq; + tmp3=concat(tmp3,[ + "double "+tmp2_1+"[DsizeL][3];",[], + " crv3onsfparadata",[tmp2_1,tmp2_2,1,"Crvdata"], + tmp2_1+"[0][0]=0;",[], + "appendd3",[0,1,"length3(Crvdata)","Crvdata",tmp2_1], + "output3h",[var,varh, file ,tmp2_1] + ]); + cmd=concat(cmd,tmp3); + if(#<length(nL), + tmp3=cmdL_((nL_#+2)..(nL_(#+1)-1)); + , + tmp3=cmdL_((nL_#+2)..(length(cmdL))); + cmdL=concat(cmd,tmp3); + ); + ); + nL=select(1..(length(cmdL)),cmdL_#=="writecut"); + cmd=[]; + if(length(nL)>0,tmp3=cmdL_(1..(nL_1-1)),tmp3=[]); + cutctr=0; + forall(1..(length(nL)), + cutctr=#; + tmp2=cmdL_(nL_#+1); + if(length(tmp2)==2, + tmp2=[tmp2_1,"Surf",tmp2_2]; + ); + var=Dq+tmp2_1+"3d"+Dq; + varh=Dq+tmp2_1+"h3d"+Dq; //17.06.09(10lines) + file=Dq+path+FheadC+tmp2_1+".txt"+Dq; + tmp3=concat(tmp3,[ + "cutfun",[tmp2_3], + "double "+tmp2_1+"[DsizeL][3];",[], + "sfcutdata",[text(cutctr),"out"], //17.06.02 + "crv3onsfparadata",["out",tmp2_2,"Crvdata"], + tmp2_1+"[0][0]=0;",[], + "appendd3",[0,1,"length3(Crvdata)","Crvdata",tmp2_1], + "output3h",[var, varh, file, tmp2_1] + ]); + cmd=concat(cmd,tmp3); + if(#<length(nL), + tmp3=cmdL_((nL_#+2)..(nL_(#+1)-1)); + , + tmp3=cmdL_((nL_#+2)..(length(cmdL))); + cmdL=concat(cmd,tmp3); + ); + ); + nL=select(1..(length(cmdL)),cmdL_#=="writewire"); + cmd=[]; + if(length(nL)>0,tmp3=cmdL_(1..(nL_1-1)),tmp3=[]); + forall(1..(length(nL)), + tmp2=cmdL_(nL_#+1); + if(!isstring(tmp2_2), + tmp2=[tmp2_1,"Surf",tmp2_2,tmp2_3]; + ); + var=Dq+tmp2_1+"3d"+Dq; + varh=Dq+tmp2_1+"h3d"+Dq; //17.06.09 + file=Dq+path+FheadC+tmp2_1+".txt"+Dq; + tmp4=tmp2_(length(tmp2)); num=2; + if(!islist(tmp4), + num=tmp4; tmp4=tmp2_(length(tmp2)-1); + ); + if(!islist(tmp4_1), + tmp3=concat(tmp3,[ + "double udv[2]={-1,"+text(tmp4_1)+"};",[] + ]); + , + len=length(tmp4_1); + tmp="double udv["+text(len+1)+"]={"+text(len)+","; + forall(tmp4_1, + tmp=tmp+format(#,5)+","; + ); + tmp=substring(tmp,0,length(tmp)-1)+"};"; + tmp3=concat(tmp3,[tmp,[]]); + ); + if(!islist(tmp4_2), + tmp3=concat(tmp3,[ + "double vdv[2]={-1,"+text(tmp4_2)+"};",[] + ]); + , + len=length(tmp4_2); + tmp="double vdv["+text(len+1)+"]={"+text(len)+","; + forall(tmp4_2, + tmp=tmp+format(#,5)+","; + ); + tmp=substring(tmp,0,length(tmp)-1)+"};"; + tmp3=concat(tmp3,[tmp,[]]); + ); + tmp3=concat(tmp3,[ + "double "+tmp2_1+"[DsizeLL][3];",[], //17.06.09(5lines) + "wireparadata",["Surf", "udv","vdv", num, "Wiredata"], + tmp2_1+"[0][0]=0;",[], + "appendd3",[0,1,"length3(Wiredata)","Wiredata",tmp2_1], + "output3h",[var, varh, file, tmp2_1] + ]); + cmd=concat(cmd,tmp3); + if(#<length(nL), + tmp3=cmdL_((nL_#+2)..(tmp_(#+1)-1)); + , + tmp3=cmdL_((nL_#+2)..(length(cmdL))); + cmdL=concat(cmd,tmp3); + ); + );// 17.05.29upto + nL=select(1..(length(cmdL)),cmdL_#=="skeleton");// 17.06.05from + cmd=[]; + if(length(nL)>0, + tmp3=cmdL_(1..(nL_1-1)); + tmp3=concat(tmp3,["double sk[DsizeLL][3];",[]]);//17.06.13 + , + tmp3=[]; + ); + forall(1..(length(nL)),nn, + tmp2=cmdL_(nL_nn+1); + var=Dq+tmp2_1+"3d"+Dq; + file=Dq+path+FheadC+tmp2_1+".txt"+Dq; + tmp3=concat(tmp3,[ //17.06.08from + "data[0][0]=0;",[] + ]); + forall(tmp2_2, + if(substring(#,length(#)-1,length(#))!="h", + tmp1=#; + tmp=[0,"din[1][0]","din[1][1]",tmp1,"data"]; + , + tmp1=substring(#,0,length(#)-1); + tmp=[0,"din[2][0]","din[2][1]",tmp1,"data"]; + ); + tmp3=concat(tmp3,[ + "dataindexd3",[3,tmp1,"din"], + "appendd3",tmp + ]); + ); + forall(1..(length(tmp2_3)), + if(substring(tmp2_3_#,length(tmp2_3_#)-1,length(tmp2_3_#))!="h", + tmp1=tmp2_3_#; + tmp=[0,"din[1][0]","din[1][1]",tmp1,"data"]; + , + tmp1=substring(tmp2_3_#,0,length(tmp2_3_#)-1); + tmp=[0,"din[2][0]","din[2][1]",tmp1,"data"]; + ); + tmp3=concat(tmp3,[ + "push3",["Inf",3,0,"data"], + "dataindexd3",[3,tmp1,"din"], + "appendd3",tmp + ]); + ); + if(length(tmp2)<=3,tmp=1,tmp=tmp2_4); + tmp3=concat(tmp3,[ + "skeletondata3",["data", tmp, "Eps1","Eps2","sk"],//17.06.13 + "output3",[var, file, 2, "sk"] + ]); + cmd=concat(cmd,tmp3); + if(nn<length(nL), + tmp3=cmdL_((nL_nn+2)..(nL_(nn+1)-1)); + , + tmp3=cmdL_((nL_nn+2)..(length(cmdL))); + cmdL=concat(cmd,tmp3); + );//17.06.08upto + );// 17.06.05upto + path=DirlibC+"/"; + path=replace(path,"\","/"); + cmd=[ + "#include <stdio.h>", "#include <math.h>", + "#include "+Dq+FheadC+"header.h"+Dq, + "#include "+Dq+path+"ketcommon.h"+Dq, + "#include "+Dq+path+"surflibhead.h"+Dq, + "#include "+Dq+path+"surflib.h"+Dq, + "int main(void){", + " double out[DsizeL][3], data[DsizeLL][3];", //17.06.10 + " int i, j, nall, din[DsizeS][2];" //17.06.09 + ]; +// tmp=select(cmdL,#=="cutfun"); +// if(length(tmp)==0, + if(cutctr==0, //17.06.02 + cmdL=prepend(["1"],cmdL); + cmdL=prepend("cutfun",cmdL); + );// 17.05.26upto + cutctr=0; + forall(1..(floor(length(cmdL))/2),nn, + tmp1=cmdL_(2*nn-1); tmp2=cmdL_(2*nn); + flg=0; // 17.05.26from + if(tmp1=="cutfun", + cutctr=cutctr+1; + tmp=select(1..(length(cmd)), indexof(cmd_#,"main")>0); + tmp3=cmd_((tmp_1)..(length(cmd))); + cmd=cmd_(1..(tmp_1-1)); + cmd=append(cmd,"double cutfun"+text(cutctr)+"(double u, double v){"); + cmd=append(cmd," double p[3],val;"); + cmd=append(cmd," surffun(u,v,p);"); + tmp=" val="+assign(tmp2_1,["x","p[0]","y","p[1]","z","p[2]"])+";"; + cmd=concat(cmd, [tmp," return val;", "}"]); + cmd=concat(cmd, tmp3); + flg=1; + ); + if(tmp1=="xyzax3data", + tmp=" "+tmp1+"("; + tmp=tmp+textformat(tmp2_1_1_1_1,5)+","; + tmp=tmp+textformat(tmp2_1_1_2_1,5)+","; + tmp=tmp+textformat(tmp2_1_2_1_2,5)+","; + tmp=tmp+textformat(tmp2_1_2_2_2,5)+","; + tmp=tmp+textformat(tmp2_1_3_1_3,5)+","; + tmp=tmp+textformat(tmp2_1_3_2_3,5)+","; + tmp=tmp+tmp2_2+");"; + cmd=append(cmd,tmp); + flg=1; + ); + if(tmp1=="spaceline", + if(!isstring(tmp2_1), + println(tmp2_1+" should be assgined as a string"); + , + tmp3=parse(tmp2_1); + tmp=text(length(tmp3)+1); +// cmd=append(cmd, " double "+tmp2_1+"["+tmp+"][3];"); + tmp=text(length(tmp3)); + cmd=append(cmd, " "+tmp2_1+"[0][0]="+tmp+";"); + forall(1..(length(tmp3)), + tmp=" "+tmp2_1+"["+text(#)+"][0]="+textformat(tmp3_#_1,5)+","; + tmp=tmp+tmp2_1+"["+text(#)+"][1]="+textformat(tmp3_#_2,5)+","; + tmp=tmp+tmp2_1+"["+text(#)+"][2]="+textformat(tmp3_#_3,5)+";"; + cmd=append(cmd,tmp); + ); + ); + flg=1; + ); + if(flg==0, + tmp=" "+tmp1; + if(length(tmp2)>0, + tmp=tmp+"("; + forall(1..length(tmp2),kk, + if(isstring(tmp2_kk), + if((kk==1)&(substring(tmp1,0,5)=="write"), + file=path+FheadC+tmp2_kk+".txt"; + fileh=path+FheadC+tmp2_kk+"h.txt"; + tmp=tmp+Dq+tmp2_kk+Dq+","+Dq+file+Dq+","+Dq+fileh+Dq; + , + tmp=tmp+tmp2_kk; + ); + , + if(!islist(tmp2_kk), + tmp=tmp+textformat(tmp2_kk,5); + , + ); + ); + if(kk<length(tmp2), + tmp=tmp+","; + , + tmp=tmp+");"; + ); + ); + ); + cmd=append(cmd, tmp);// 17.05.26upto + ); + ); + tmp=select(1..(length(cmd)), indexof(cmd_#,"main")>0);//17.06.02from + tmp3=cmd_((tmp_1)..(length(cmd))); + cmd=cmd_(1..(tmp_1-1)); + cmd=append(cmd,"double cutfun(int ch, double u, double v){"); + cmd=append(cmd," double val;"); + forall(1..cutctr, + tmp=text(#); + cmd=append(cmd," if(ch=="+tmp+"){val=cutfun"+tmp+"(u,v);}"); + ); + cmd=concat(cmd,[" return val;", "}"]); + cmd=concat(cmd, tmp3);//17.06.02upto + cmd=concat(cmd, [" return 0;", "}"]); + SCEOUTPUT = openfile(fname); + forall(cmd, + println(SCEOUTPUT,#); + ); + closefile(SCEOUTPUT); + tmp=fileslist(Dirwork); // 17.05.20from + tmp=tokenize(tmp,","); + tmp=select(tmp,indexof(#,".txt")>0); + tmp=select(tmp,indexof(#,FheadC)>0); + forall(tmp, + SCEOUTPUT = openfile(#); + println(SCEOUTPUT,""); + closefile(SCEOUTPUT); + ); // 17.05.20upto +); + +kcC():=kcC(FheadC); +kcC(cname):=( + regional(tmp, tmp1, flg); + if(iswindows(), + SCEOUTPUT = openfile("kc.bat"); + println(SCEOUTPUT,"set path="+Dirwork); + tmp=Indexall(PathC,"\"); + if(length(tmp)==0, tmp=ndexall(PathC,"/")); + tmp1=substring(PathC,0,tmp_(length(tmp))-1); + println(SCEOUTPUT,"cd "+tmp1); + tmp=PathC+" %path%\"+cname+".c"; + tmp=tmp+" -o %path%\main.exe"; + println(SCEOUTPUT,tmp); + println(SCEOUTPUT,"%path%\main.exe"); + println(SCEOUTPUT,"echo //// > %path%\resultC.txt"); + println(SCEOUTPUT,"exit"); + closefile(SCEOUTPUT); + tmp=cname+".txt"; + println(kc(Dirwork+Batparent,Mackc+Dirlib,tmp)); + , + SCEOUTPUT = openfile("kc.sh"); + println(SCEOUTPUT,"#!/bin/sh"); + println(SCEOUTPUT,"cd "+Dq+Dirwork+Dq); + tmp=PathC+" "+cname+".c -o main.out"; + println(SCEOUTPUT,tmp); + println(SCEOUTPUT,"./main.out"); + println(SCEOUTPUT,"echo //// > resultC.txt"); + println(SCEOUTPUT,"exit 0"); + closefile(SCEOUTPUT); + tmp=cname+".txt"; + println(kc(Dirwork+Shellparent,Mackc+Dirlib,tmp)); + ); + SCEOUTPUT=openfile("resultC.txt"); + println(SCEOUTPUT,""); + closefile(SCEOUTPUT); + flg=0; + repeat(floor(10*1000/WaitUnit), + if(flg==0, + tmp1=load("resultC.txt"); + if(substring(tmp1,0,4)=="////", + flg=1; + ); + wait(WaitUnit); + ); + ); + if(flg==0, + println("Ckc not completed"); + , + println("Ckc succeeded"); + ); +); + +ReadCdata(var, fname):=ReadCdata(var, fname,[]); +ReadCdata(var, fname,options):=( + regional(file,dt,name,str,tmp,tmp1,opstr,gout, out3,out2); + if(indexof(fname,".")==0, + file=fname+".txt"; + name=fname; + , + file=fname; + tmp=indexof(fname,"."); + name=substring(fname,0,tmp-1); + ); + tmp=Divoptions(options); + opstr=tmp_8; + gout=ReadOutData(file); + GLIST=Append(GLIST,"Tmpstr=ReadOutData("+Dq+file+Dq+")");//17.06.16from + GLIST=Append(GLIST,"execstr(Tmpstr)"); + if(substring(var,length(var)-1,length(var))!="h", + if(length(parse(gout_1))>0, + Projpara(var+"3d",options); + ); + , + if(length(parse(gout_2))>0, + Projpara(var+"3d",options); + ); + );//17.06.16upto +); + +WriteCdata(fnameorg,dataorg):=( +//help:WriteCdata(filename, 3ddata); + regional(tmp,fname,data,kk,nn,pt); + data=dataorg; + if(isstring(data),data=parse(data)); + if(MeasureDepth(data)==1,data=[data]); + fname=fnameorg; + if(indexof(fname,".")==0, fname=fname+".txt"); + SCEOUTPUT=openfile(fname); + forall(1..(length(data)),kk, + forall(1..(length(data_kk)),nn, + pt=apply(1..3,Sprintf(data_kk_nn_#,5)); + tmp=pt_1+" "+pt_2+" "+pt_3; + println(SCEOUTPUT,tmp); + ); + if(kk<length(data), + println(SCEOUTPUT,"99999.00000 2.00000 0.00000"); + ); + ); + closefile(SCEOUTPUT); +); + +DisplayC():=DisplayC(DispC); +DisplayC(name,options):=DisplayC([name,options]); +DisplayC(dispc):=( +//help:DisplayC("out",["Color=[1,0,0]"); +//help:DispC(options=["dr", "Color=[0,0,0]"]) + regional(tmp,tmp1,cflg,var, file,options,eqL,opcindy,color); + forall(1..(floor(length(dispc)/2)), //17.05.18 + var=dispc_(2*#-1); // 17.05.24 + if(substring(var,length(var)-1,length(var))!="h",//17.06.09(5lines) + file=FheadC+var+".txt"; + , + file=FheadC+substring(var,0,length(var)-1)+".txt"; + ); + options=dispc_(2*#); + cflg=0; + tmp=Divoptions(options);//17.06.18from + eqL=tmp_5; + opcindy=tmp_9; + forall(eqL, + if(Toupper(substring(#,0,2))=="CO", + tmp=indexof(#,"="); + color=substring(#,tmp,length(#)); + if(substring(color,0,1)=="[", + color=parse(color); + if(length(color)==3, + tmp1="color->"+text(color); + , + tmp=Colorcode("rgb","cmyk",color); + tmp1="color->"+text(tmp); + ); + options=append(options,tmp1); + ); + options=remove(options,[#]); + cflg=1; + ); + ); + if(cflg==1, + Texcom("{"); + Setcolor(color); + ); + ReadCdata(var,file,options);// 17.05.24 + if(cflg==1, + Texcom("}"); + ); + ); +); + +//help:end(); + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketcindyliboutlog.txt b/texmf-dist/scripts/ketpic/ketlib/ketcindyliboutlog.txt new file mode 100644 index 00000000..1e4a426e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketcindyliboutlog.txt @@ -0,0 +1,325 @@ +//// s:2017.08.26 +//// MkketcindyJS ( data/js => CindyJS ) +// s:2017.07.02 +// MkketcindyJS ( Texview => Figure ) +// s:2017.06.23 +// MainC changed (ax1 => axx ,etc) +// s:2017.06.16 +// Mxload added +// ReadCdata debugged (for null list ) +// s:2017.06.13 +// Cmain changed (skeleton : sk1,2 -> sk) +// s:2017.06.10 +// Cmain debugged(skeleton "data" should be declared commonly) +// s:2017.06.09 +// Cmain, Cheader changed (output3h used ) +// s:2017.06.08 +// Cmain changed (skeleton finished ) +// s:2017.06.07 +// Cmain debugged ( ax3d ) /changed ( local data name) +// s:2017.06.05 +// Cmain changed ( for skeleton) +// s:2017.06.02 +// ReadCdata debugged ( for hiddenfile ) +// s:2017.05.29 +// DisplayC changed ( DisplayC(name,options) supported ) +// Cmain changed ("write..." are resolved in Cmain) +// s:2017.05.27 +// Cmain changed (coding arranged) +// s:2017.05.25 +// Cmain changed (cmd list, surfcut) +// s:2017.05.24 +// Cmain changed ("write" changed) +// Cheader changed (options) +// ReadCdata3 changed +// s:2017.05.23 +// Cmain changed (point number option) +// s:2017.05.21 +// Cheader debugge ( Assignment of values) +// s:2017.05.20 +// Cmain changed (files reset, param for writewire) +// ReadCdata3 changed ( for blank data ) +// s:2017.05.18 +// CalcbyS,... changed (/2 => floor( /2)) +// DisplayC changed (color option added, floor(./2)) +// changed +// s:2017.05.15 +// WriteCdata added +// s:2017.05.14 +// Cheader,Cmain, kcC, ReadCdata3, DisplayC added +// s:2017.04.14 +// ErrhandleS changed (nothing for scilab6) +// s:2017.04.13 +// Mkviewobj changed (Error message when Setobj not defined ) +// s:2017.04.08 +// bugs fixed +// s:2017.03.29 +// kcM changed ( for Maxima version >3.38 ) +// s:2017.02.19 +// Readcsv debugged ( waiting removed ) +// s:2017.02.09 +// Writecsv changed ( for double list ) +// Readcsv changed ( for sigle column ) +// s:2017.01.13 +// Setobj added (=Objname) +// s:2017.01.12 +// WritetoS changed (English message for Windows ) +// s:2016.12.27 +// Mkviewobj debugged ( = ) +// s:2016.12.23 +// Hatchdata,Dotfilldata,... debugged ( "=.." => name+"=... ) +// s:2016.12.20 +// CalcbyR changed (in case of Cat!="Y" ) +// Readcsv changed (Both R and Scilab available with "Use=", +// Flat option added ) +// s:2016.12.18 +// CalcbyS debugged (in case of Cat!="Y" ) +// s:2016.12.13 +// CalcbyS changed ( LFmark ) +// s:2016.12.12 +// Readcsv changed ( csv option added ) +// s:2016.12.11 +// CalcbyS debugged +// Readcsv rewritten ( CalcbyS used ) +// s:2016.11.29 +// Mkobj... changed (OBJCMD added ) +// Objname(option) added +// s: 2016.11.25 +// CalcbyR changed(about .txt file, cat="yes"(default),"no","middle") +// s: 2016.11.24 +// CalcbyS changed(about .txt file, cat="yes","no","middle"(default)) +// s: 2016.11.22 +// CalcbyS debugged ( comment out : wfile when cat!="Y") +// s: 2016.11.14 +// CalcbyS changed ( wfile when cat!="Y") +// Mkobjcrvcmd changed ( for a string of a list of strings ) +// s: 2016.11.13 +// CalcbyS, CalcbyR debugged ( wflg==0 & cat!="Y") +// s: 2016.11.08 +// Mkketcindy changed ( Buttons of KeTCindy removed) +// Mkketcindy changed ( "Net=" option) +// s: 2016.11.06 +// Mkketcindy debugged +// s: 2016.10.29 +// CalcbyR debugged ( case of "Cat=no" ) +// s: 2016.10.28 +// CalcbyR changed ( options(digits=,,,) added) +// s: 2016.10.24 +// Dataframe added +// CalcbyR changed ( for only 1 value) +// s: 2016.10.23 +// CalcbyS changed ( = in last line ) +// CalcbyR changed ( for output in list, vector,matrix) +// MkketcindyJS changed ( libname ) +// MkketcindyJS changed ( libname ) +// s: 2016.10.22 +// Scifun, Rfun added +// err => println +// kcR,CalcbyR changed ( error message ) +// s: 2016.10.21 +// Help of Dotfilldata changed +// s: 2016.10.20 +// kcR changed (for pathR) +// s: 2016.10.13 +// Mkketcindyjs changed (for katex) +// s: 2016.10.07 +// Mkketcindyjs added +// s: 2016.10.04 +// Mkviewobj, Mkobjplate, Changeobjscale debugged +// s: 2016.09.18 +// Histplot(help) debugged +// s: 2016.08.09 +// CalcbyS changed ( |||| added ) +// s: 2016.07.08 +// Mkobjpoly,Mkobjplate debugged( option thick1,thick2 ) +// s: 2016.07.07 +// CalcbyR debugged( add "####" at setwindow ) +// s: 2016.06.30 +// Mkviewobj changed ( Changeobjscale executed when "Unit=.." ) +// s: 2016.06.27 +// Mkobjplatecmd debugged ( nv ) +// s: 2016.06.26 +// CalcbyS re-debugged and chaged ( case of "Cat=n", "File=" added ) +// Changeobjscale changed +// WritetoS, WritetoR changed ( Setwindow added ) +// Changeobjscale majorly revised ( Scilab mainly used ) +// s: 2016.06.25 +// CalcbyS debugged ( case of "Cat=n" ) +// Changeobjscale added +// s: 2016.06.19 +// Mkobjplatecmd debugged +// s: 2016.06.18 +// Mkobjplatecmd added +// Mkobjsymbcmd debugged ( rel > reL ) +// s: 2016.06.17 +// Mkobjpoiycmd,Mkobjsymbcmd changed (Help modified) +// s: 2016.06.13 +// CalcbyM changed (Oprion Line=1000 ) +// s: 2016.06.12 +// CalcbyS,... changed ( LFmark removed ) +// s: 2016.06.08 +// Mkobjnrm debugged ( option eqL ) +// s: 2016.06.07 +// kcA,kcS,kcM,kcR,kcF,kcV3 changed ( kc(,Mackc+,) ) +// s: 2016.06.05 +// kcA,kcS,kcM,kcR,kcF,kcV3 changed ( kc(,,) ) +// s: 2016.06.03 +// Calcby. changed ( name added after "suceeded" ) +// s: 2016.05.29 +// kcA,kcS,kcM,kcR,kcF,kcV3 changed ( kc(Dirwork+ ) ) +// s: 2016.05.27 +// MxtexL added ( for the list of expressions ) +// s: 2016.05.26 +// AsirfunO changed ( Process implemented ) + +////////////// +// s: 2015.11.05 v2.1.0 +// Divided from ketcindylib +// kcR, kcS changed ( waiting removed ) +// PlotdataS added +// e: 2015.11.07 v2.1.1 +// Readcsv, .., changed ( for case of non-exiting file ) +// e: 2015.11.10 v2.1.2 +// Boxplot, Readcsv, Hatchdata debugged ( directory of input file ) +// e: 2015.11.11 +// Boxplot, Readcsv, Hatchdata re-debugged ( directory of input file ) +// e: 2015.11.17 +// WritetoA, kcA, CalcbyA, Asirfun added +// e:2015.11.18 +// WritetoA, kcA, CalcbyA, Asirfun changed ( PathA ) +// CalcbyA changed ( ' for Dq=" ) +// Asirfun changed ( name adde ) +// e:2015.11.19 +// kcA changed ( for windows ) +// CalcbyR,CalcbyS changed ( ' for Dq ) +// CalcbyA changed ( a big number represented as string ) +// e:2015.11.20 +// Asirfun changed ( precise option added ) +// e:2015.11.21 +// MkprecommandS debugged +// e:2015.11.22 +// WritetoM, kcM, CalcbyM, Mxfun added +// PathA change ( to full path ) +// e:2015.11.23 +// CalcbyM changed ( for "+d") +// e:2015.11.24 +// CalcbyM changed ( for windows) +// Asirfun, Mxfun changed ( Disp, Pack options ) +// Example added +// Mxfun changed ( Set option ) +// e:2015.11.25 +// changed "fortran" to "disp" +// kcM changed ( for windows ) +// e:2015.11.26 +// CalcbyA, CalcbyB changed ( for wflg=0) +// e:2015.11.27 +// AsirfunO added +// e:2015.12.06 +// CalcbyS, CalcbyR, CalcbyM,CalcbyA changed +// ( for length(tmp1)!=length(cmdlsit) ) +// e:2015.12.07 +// SetpathS changed ( Dirlib => Dirbin ) +// e:2015.12.11 +// SetpathS changed ( for autosetting ) +// e:2016.01.07 +// Mxtex added +// e:2016.01.10 +// Mxtex debugged +// kcS debugged ( for Windows ) +// e:2016.01.18 +// Mxtex debugged +// e:2016.01.25 +// Mxtex debugged ( regional ) +// e:2016.01.30 +// MkprecommandR, MkprecommandS debugged ( -0 and 0 ) +// e:2016.02.01 +// MkprecommandR, MkprecommandS changed ( prec option added ) +// e:2016.02.03 +// MkprecommandR, MkprecommandS debugged ( sorting of VLIST ) +// AsfunO, Asfun supported +// e:2016.02.08 +// Mxfun changed ( option PACK or LOAD) +// e:2016.02.14 +// Hatchdata debugged ( bug of ["ii","oo"] for example) +// e:2016.02.16 +// Dotfilldata added +// e:2016.02.19 +// Mxtex debugged ( options ) +// e:2016.02.23 +// WritetoM, CalcbyM changed ( option "All=y" added for error ) +// CalcbyM changed ( ` changed to ' ) +// e:2016.02.24 +// CalcbyM changed ( if errors occurred, output displayed under "All=y" ) +// e:2016.02.26 +// CalcbyM changed ( defalut of All changed to "y" ) +// e:2016.02.29 +// ErrhandleS added +// CalcbyS changed ( "Error" option ) +// Implicitplot changed ( "Mx" option added ) +// e:2016.03.01 +// Mxtex changed ( Set & Ord option added ) +// e:2016.03.02 +// PlotdataS,Implicitdata changed ( equalized ) +// e:2016.03.03 +// CalcbyM changed ( replacement ' abolished ) +// e:2016.03.05 +// Hatchdata changed ( "Error" added ) +// e:2016.03.09 +// Implicitplot, Hatchdata changed ( "Out=" option readded) +// e:2016.03.11 +// WritetoA,AsirfunO changed ( ooshima lib read in AsirfunO) +// e:2016.03.12 +// CalcbyM changed (output for "Cat=y") +// kcV3,Mkviewobj added +// e:2016.03.12 +// kcV3,Mkviewobj debugged/changed +// e:2016.03.14 +// Mkviewobj changed ( repetition of Meshlab avoided ) +// e:2016.03.15 +// Mkviewobj changed ( for making from objlist ) +// Implicitplot changed ( error handling) +// e:2016.03.17 +// WritetoF,kcF,CalcbyF,Frifun added +// e:2016.03.26 +// kcF changed ( added for windows ) +// e: 2016.04.04 +// PlotdataS, Implicitplot changed (Addgraph added ) +// e: 2016.04.06 +// Hatchdata changed (Chunderscore added ) +// e: 2016.04.14 +// Mkobjcmd added +// e:2016.04.15 +// Mkobjthickcmd, Mkobjnrm, Mkobjcrvcmd added +// Mkobjcrvcmd, Concatcmd added +// e:2016.04.17 +// Mkobjsymbcmd added +// e:2016.04.20 +// Mkobjnrm,Mkobjthickcmd changed +// e:2016.04.21 +// Mkobjnrm,Mkobjthickcmd changed (precmd added , option "simp" unused) +// e:2016.04.22 +// Mkobjpolycmd added +// e:2016.04.23 +// Mkviewobj,Mkobjpolycmd,Mkobjcrvcmd,Mkobjsymbcmd changed +// MkprecommandR debugged +// e:2016.04.26 +// CalcbyM changed ( Indexall used) +// e:2016.04.29 +// Mxbatch added +// e:2016.04.30 +// Mkobjnrm changed ( twice ) +// Mxbatch debugged +// e:2016.05.02 +// Mkobjnrm changed ( Out= , disp option ) +// e:2016.05.10 +// Mkobjsymbcmd changed ( defaut path changed ) +// e:2016.05.12 +// Mkobjnrm changed ( name => "nrm"+nm ) +// e:2016.05.18 +// WritetoA changed ( output ) +// CalcbyA changed ( ; supported ) +// e:2016.05.1 +// Testfunstr debugged ( ".x", ".y" ) +////// To Reverse sequence ////// + + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Addcounter.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Addcounter.bin Binary files differnew file mode 100644 index 00000000..c1e3ef24 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Addcounter.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Anglemark.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Anglemark.bin Binary files differnew file mode 100644 index 00000000..8b094651 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Anglemark.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Arrowdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Arrowdata.bin Binary files differnew file mode 100644 index 00000000..2af2be64 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Arrowdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Arrowhead.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Arrowhead.bin Binary files differnew file mode 100644 index 00000000..f4101b32 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Arrowhead.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Arrowheaddata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Arrowheaddata.bin Binary files differnew file mode 100644 index 00000000..3640469b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Arrowheaddata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Arrowline.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Arrowline.bin Binary files differnew file mode 100644 index 00000000..0d68e6d0 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Arrowline.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Assign.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Assign.bin Binary files differnew file mode 100644 index 00000000..3f243306 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Assign.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Assignadd.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Assignadd.bin Binary files differnew file mode 100644 index 00000000..99a0cecd --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Assignadd.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Assignrep.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Assignrep.bin Binary files differnew file mode 100644 index 00000000..47ac2ac9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Assignrep.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Assignset.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Assignset.bin Binary files differnew file mode 100644 index 00000000..afb1b3bc --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Assignset.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Beginpicture.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Beginpicture.bin Binary files differnew file mode 100644 index 00000000..81625f07 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Beginpicture.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Bezier.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Bezier.bin Binary files differnew file mode 100644 index 00000000..1e8b41fb --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Bezier.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Bezierpt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Bezierpt.bin Binary files differnew file mode 100644 index 00000000..f146b511 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Bezierpt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/BorderHiddenData.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/BorderHiddenData.bin Binary files differnew file mode 100644 index 00000000..bb466f84 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/BorderHiddenData.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/BorderPt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/BorderPt.bin Binary files differnew file mode 100644 index 00000000..80964b1c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/BorderPt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Borderparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Borderparadata.bin Binary files differnew file mode 100644 index 00000000..94cfb714 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Borderparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Borderpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Borderpersdata.bin Binary files differnew file mode 100644 index 00000000..bee787d9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Borderpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Borderrawdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Borderrawdata.bin Binary files differnew file mode 100644 index 00000000..f53ad324 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Borderrawdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Bowdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Bowdata.bin Binary files differnew file mode 100644 index 00000000..05a4fb2e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Bowdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Bowmiddle.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Bowmiddle.bin Binary files differnew file mode 100644 index 00000000..bc02de52 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Bowmiddle.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Bowname.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Bowname.bin Binary files differnew file mode 100644 index 00000000..77aa840f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Bowname.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Bownamerot.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Bownamerot.bin Binary files differnew file mode 100644 index 00000000..49978903 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Bownamerot.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/CalcHeight.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/CalcHeight.bin Binary files differnew file mode 100644 index 00000000..5e3f28b9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/CalcHeight.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/CalcWidth.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/CalcWidth.bin Binary files differnew file mode 100644 index 00000000..426023be --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/CalcWidth.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Calcfun.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Calcfun.bin Binary files differnew file mode 100644 index 00000000..7745bccc --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Calcfun.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/CameraCurve.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/CameraCurve.bin Binary files differnew file mode 100644 index 00000000..d037c656 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/CameraCurve.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/CameracoordCurve.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/CameracoordCurve.bin Binary files differnew file mode 100644 index 00000000..13e374db --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/CameracoordCurve.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Cancoordpara.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Cancoordpara.bin Binary files differnew file mode 100644 index 00000000..c16f84ba --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Cancoordpara.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Cancoordpers.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Cancoordpers.bin Binary files differnew file mode 100644 index 00000000..55b15ad7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Cancoordpers.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Circledata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Circledata.bin Binary files differnew file mode 100644 index 00000000..9a27e094 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Circledata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Clipindomain.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Clipindomain.bin Binary files differnew file mode 100644 index 00000000..73ea5db3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Clipindomain.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Closefile.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Closefile.bin Binary files differnew file mode 100644 index 00000000..e7a00c3e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Closefile.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Closeobj.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Closeobj.bin Binary files differnew file mode 100644 index 00000000..f62af795 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Closeobj.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Closepar.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Closepar.bin Binary files differnew file mode 100644 index 00000000..f73458f1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Closepar.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Closephr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Closephr.bin Binary files differnew file mode 100644 index 00000000..5960bb73 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Closephr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Closepicture.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Closepicture.bin Binary files differnew file mode 100644 index 00000000..1c8fd062 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Closepicture.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Connectseg.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Connectseg.bin Binary files differnew file mode 100644 index 00000000..70566c55 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Connectseg.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Crossprod.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Crossprod.bin Binary files differnew file mode 100644 index 00000000..ade04624 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Crossprod.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Crv3onsfHiddenData.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Crv3onsfHiddenData.bin Binary files differnew file mode 100644 index 00000000..5c4f8404 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Crv3onsfHiddenData.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Crv3onsfparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Crv3onsfparadata.bin Binary files differnew file mode 100644 index 00000000..7d645929 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Crv3onsfparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Crv3onsfpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Crv3onsfpersdata.bin Binary files differnew file mode 100644 index 00000000..7f994b75 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Crv3onsfpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/CrvonsfHiddenData.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/CrvonsfHiddenData.bin Binary files differnew file mode 100644 index 00000000..d92d7a5a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/CrvonsfHiddenData.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Crvonsfparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Crvonsfparadata.bin Binary files differnew file mode 100644 index 00000000..71b24de1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Crvonsfparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Crvonsfpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Crvonsfpersdata.bin Binary files differnew file mode 100644 index 00000000..835d570f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Crvonsfpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/CrvsfHiddenData.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/CrvsfHiddenData.bin Binary files differnew file mode 100644 index 00000000..0ecbcb1c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/CrvsfHiddenData.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Crvsfparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Crvsfparadata.bin Binary files differnew file mode 100644 index 00000000..dba77269 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Crvsfparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Crvsfpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Crvsfpersdata.bin Binary files differnew file mode 100644 index 00000000..b3a3f8e4 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Crvsfpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/CuspData.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/CuspData.bin Binary files differnew file mode 100644 index 00000000..b2124b51 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/CuspData.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/CuspPt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/CuspPt.bin Binary files differnew file mode 100644 index 00000000..08f82d89 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/CuspPt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/CuspSplitPt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/CuspSplitPt.bin Binary files differnew file mode 100644 index 00000000..2fbf6adb --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/CuspSplitPt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Cuspsplitpara.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Cuspsplitpara.bin Binary files differnew file mode 100644 index 00000000..b09e4aeb --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Cuspsplitpara.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Cuspsplitpers.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Cuspsplitpers.bin Binary files differnew file mode 100644 index 00000000..609d057a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Cuspsplitpers.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Cutsf2d.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Cutsf2d.bin Binary files differnew file mode 100644 index 00000000..e6f70b1c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Cutsf2d.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Dashline.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Dashline.bin Binary files differnew file mode 100644 index 00000000..8f7d28a1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Dashline.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Dataindex.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Dataindex.bin Binary files differnew file mode 100644 index 00000000..e3bd11d0 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Dataindex.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Definecolor.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Definecolor.bin Binary files differnew file mode 100644 index 00000000..f0ff3ef8 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Definecolor.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Deqplot.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Deqplot.bin Binary files differnew file mode 100644 index 00000000..a3ba57b6 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Deqplot.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Derivative.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Derivative.bin Binary files differnew file mode 100644 index 00000000..8ab45716 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Derivative.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Diagcelldata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Diagcelldata.bin Binary files differnew file mode 100644 index 00000000..70d3663e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Diagcelldata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Dividegraphics.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Dividegraphics.bin Binary files differnew file mode 100644 index 00000000..03498fd7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Dividegraphics.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Dividetable.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Dividetable.bin Binary files differnew file mode 100644 index 00000000..abf752c8 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Dividetable.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Doscaling.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Doscaling.bin Binary files differnew file mode 100644 index 00000000..1a024a4d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Doscaling.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Dotfilldata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Dotfilldata.bin Binary files differnew file mode 100644 index 00000000..589adeaf --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Dotfilldata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Dotprod.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Dotprod.bin Binary files differnew file mode 100644 index 00000000..7a097bea --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Dotprod.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Dottedline.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Dottedline.bin Binary files differnew file mode 100644 index 00000000..c4c45ddd --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Dottedline.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Dropnumlistcrv.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Dropnumlistcrv.bin Binary files differnew file mode 100644 index 00000000..9ac44969 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Dropnumlistcrv.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Droppoint.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Droppoint.bin Binary files differnew file mode 100644 index 00000000..f4bff84e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Droppoint.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Drwline.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Drwline.bin Binary files differnew file mode 100644 index 00000000..69c411ef --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Drwline.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Drwpt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Drwpt.bin Binary files differnew file mode 100644 index 00000000..5af3db83 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Drwpt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Drwxy.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Drwxy.bin Binary files differnew file mode 100644 index 00000000..54ce1e7c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Drwxy.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Embed.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Embed.bin Binary files differnew file mode 100644 index 00000000..5a081c10 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Embed.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Enclosing.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Enclosing.bin Binary files differnew file mode 100644 index 00000000..17e55798 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Enclosing.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/EnclosingS.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/EnclosingS.bin Binary files differnew file mode 100644 index 00000000..1a6860c5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/EnclosingS.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Endpicture.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Endpicture.bin Binary files differnew file mode 100644 index 00000000..7fa6e7b9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Endpicture.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Evlptablepara.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Evlptablepara.bin Binary files differnew file mode 100644 index 00000000..e4bb3e12 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Evlptablepara.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Evlptablepers.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Evlptablepers.bin Binary files differnew file mode 100644 index 00000000..a300752a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Evlptablepers.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Execmd.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Execmd.bin Binary files differnew file mode 100644 index 00000000..3ed90ff9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Execmd.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Expr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Expr.bin Binary files differnew file mode 100644 index 00000000..3cae8493 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Expr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Exprrot.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Exprrot.bin Binary files differnew file mode 100644 index 00000000..e249a055 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Exprrot.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Faceremovaldata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Faceremovaldata.bin Binary files differnew file mode 100644 index 00000000..f7f2e09b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Faceremovaldata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Facesdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Facesdata.bin Binary files differnew file mode 100644 index 00000000..003930bd --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Facesdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Findcell.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Findcell.bin Binary files differnew file mode 100644 index 00000000..1cc63d81 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Findcell.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Flattenlist.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Flattenlist.bin Binary files differnew file mode 100644 index 00000000..47cd3aff --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Flattenlist.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Fontsize.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Fontsize.bin Binary files differnew file mode 100644 index 00000000..d0ac6d1f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Fontsize.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Fouriercoeff.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Fouriercoeff.bin Binary files differnew file mode 100644 index 00000000..0c1ff22d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Fouriercoeff.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/FouriercoeffL.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/FouriercoeffL.bin Binary files differnew file mode 100644 index 00000000..0ada7614 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/FouriercoeffL.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Fouriersum.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Fouriersum.bin Binary files differnew file mode 100644 index 00000000..80d7fa1d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Fouriersum.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Fracform.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Fracform.bin Binary files differnew file mode 100644 index 00000000..f17997ae --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Fracform.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Framedata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Framedata.bin Binary files differnew file mode 100644 index 00000000..4dfc5fba --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Framedata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Fullformfunc.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Fullformfunc.bin Binary files differnew file mode 100644 index 00000000..a445388d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Fullformfunc.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Gaiseki.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Gaiseki.bin Binary files differnew file mode 100644 index 00000000..00cefe7b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Gaiseki.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Getcounter.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Getcounter.bin Binary files differnew file mode 100644 index 00000000..5efa1ba3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Getcounter.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Gettrace.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Gettrace.bin Binary files differnew file mode 100644 index 00000000..31de11e2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Gettrace.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Hatchdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Hatchdata.bin Binary files differnew file mode 100644 index 00000000..8bc86748 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Hatchdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Hexahedrondata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Hexahedrondata.bin Binary files differnew file mode 100644 index 00000000..ebb9f45e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Hexahedrondata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/HiddenWireData.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/HiddenWireData.bin Binary files differnew file mode 100644 index 00000000..0335b185 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/HiddenWireData.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Htickmark.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Htickmark.bin Binary files differnew file mode 100644 index 00000000..88ce57e9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Htickmark.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/ImplicitData.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/ImplicitData.bin Binary files differnew file mode 100644 index 00000000..f52ad0ee --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/ImplicitData.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Implicitplot.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Implicitplot.bin Binary files differnew file mode 100644 index 00000000..5662575f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Implicitplot.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/InWindow.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/InWindow.bin Binary files differnew file mode 100644 index 00000000..38306a20 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/InWindow.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Initangle.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Initangle.bin Binary files differnew file mode 100644 index 00000000..3c6ed6c5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Initangle.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Integrate.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Integrate.bin Binary files differnew file mode 100644 index 00000000..deb2de0d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Integrate.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Intersectcrvs.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Intersectcrvs.bin Binary files differnew file mode 100644 index 00000000..3a87071b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Intersectcrvs.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/IntersectcrvsPp.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/IntersectcrvsPp.bin Binary files differnew file mode 100644 index 00000000..de85e2a9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/IntersectcrvsPp.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Intersectcrvsf.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Intersectcrvsf.bin Binary files differnew file mode 100644 index 00000000..3a918b84 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Intersectcrvsf.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Intersectlines.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Intersectlines.bin Binary files differnew file mode 100644 index 00000000..5b1846e7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Intersectlines.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/IntersectselfPp.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/IntersectselfPp.bin Binary files differnew file mode 100644 index 00000000..2b895f4d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/IntersectselfPp.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Invdashline.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Invdashline.bin Binary files differnew file mode 100644 index 00000000..76baa221 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Invdashline.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Invert.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Invert.bin Binary files differnew file mode 100644 index 00000000..def0bb31 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Invert.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Invparapt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Invparapt.bin Binary files differnew file mode 100644 index 00000000..07c0c078 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Invparapt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Invperspt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Invperspt.bin Binary files differnew file mode 100644 index 00000000..5dbdc7cb --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Invperspt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Joincrvs.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Joincrvs.bin Binary files differnew file mode 100644 index 00000000..dafe1e24 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Joincrvs.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Joingraphics.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Joingraphics.bin Binary files differnew file mode 100644 index 00000000..97caac64 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Joingraphics.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Ketinit.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Ketinit.bin Binary files differnew file mode 100644 index 00000000..70e1971c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Ketinit.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Kouten.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Kouten.bin Binary files differnew file mode 100644 index 00000000..21dc66a1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Kouten.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/KoutenList.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/KoutenList.bin Binary files differnew file mode 100644 index 00000000..9ccea2a3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/KoutenList.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Koutenseg.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Koutenseg.bin Binary files differnew file mode 100644 index 00000000..d191d41a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Koutenseg.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Kukannozoku.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Kukannozoku.bin Binary files differnew file mode 100644 index 00000000..313c934d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Kukannozoku.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Kukeiwake.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Kukeiwake.bin Binary files differnew file mode 100644 index 00000000..f705d5b1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Kukeiwake.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Kyorihensuu.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Kyorihensuu.bin Binary files differnew file mode 100644 index 00000000..3940a613 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Kyorihensuu.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Kyoukai.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Kyoukai.bin Binary files differnew file mode 100644 index 00000000..c9ce9f14 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Kyoukai.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Letter.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Letter.bin Binary files differnew file mode 100644 index 00000000..bcaebbbd --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Letter.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Letterrot.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Letterrot.bin Binary files differnew file mode 100644 index 00000000..4bc6206a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Letterrot.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Lineplot.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Lineplot.bin Binary files differnew file mode 100644 index 00000000..51fbfbe1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Lineplot.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Listplot.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Listplot.bin Binary files differnew file mode 100644 index 00000000..0fa577df --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Listplot.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/MakeBowdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/MakeBowdata.bin Binary files differnew file mode 100644 index 00000000..fb13efa4 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/MakeBowdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/MakeCurves.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/MakeCurves.bin Binary files differnew file mode 100644 index 00000000..98ddd1a4 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/MakeCurves.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/MakecutbycrvL.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/MakecutbycrvL.bin Binary files differnew file mode 100644 index 00000000..6356eaed --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/MakecutbycrvL.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Makehasen.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Makehasen.bin Binary files differnew file mode 100644 index 00000000..0d7bd77d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Makehasen.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Makeliststr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Makeliststr.bin Binary files differnew file mode 100644 index 00000000..83ba3861 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Makeliststr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Makesfcutoffdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Makesfcutoffdata.bin Binary files differnew file mode 100644 index 00000000..92534466 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Makesfcutoffdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Makeshasen.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Makeshasen.bin Binary files differnew file mode 100644 index 00000000..2d013048 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Makeshasen.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Makeskeletondata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Makeskeletondata.bin Binary files differnew file mode 100644 index 00000000..0bd11580 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Makeskeletondata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Makeskeletonpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Makeskeletonpersdata.bin Binary files differnew file mode 100644 index 00000000..49a24e6c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Makeskeletonpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Makevaltable.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Makevaltable.bin Binary files differnew file mode 100644 index 00000000..67316bd1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Makevaltable.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/MakeveLfaceL.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/MakeveLfaceL.bin Binary files differnew file mode 100644 index 00000000..1658b408 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/MakeveLfaceL.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Makexybdy.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Makexybdy.bin Binary files differnew file mode 100644 index 00000000..95c31670 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Makexybdy.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Mawarikomi.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Mawarikomi.bin Binary files differnew file mode 100644 index 00000000..fcf74e3c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Mawarikomi.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/MeetWindow.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/MeetWindow.bin Binary files differnew file mode 100644 index 00000000..f5ced4c3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/MeetWindow.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Meetpoints.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Meetpoints.bin Binary files differnew file mode 100644 index 00000000..6cd9f985 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Meetpoints.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Member.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Member.bin Binary files differnew file mode 100644 index 00000000..c41eb72e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Member.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Menkakusi.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Menkakusi.bin Binary files differnew file mode 100644 index 00000000..ab493424 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Menkakusi.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Menkakusi2.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Menkakusi2.bin Binary files differnew file mode 100644 index 00000000..659d412f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Menkakusi2.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Mix.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Mix.bin Binary files differnew file mode 100644 index 00000000..f26a75b6 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Mix.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/MixL.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/MixL.bin Binary files differnew file mode 100644 index 00000000..1a2a931f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/MixL.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/MixS.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/MixS.bin Binary files differnew file mode 100644 index 00000000..92c22101 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/MixS.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Mixadd.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Mixadd.bin Binary files differnew file mode 100644 index 00000000..43809cb9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Mixadd.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Mixdisp.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Mixdisp.bin Binary files differnew file mode 100644 index 00000000..4562fd87 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Mixdisp.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Mixjoin.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Mixjoin.bin Binary files differnew file mode 100644 index 00000000..29800896 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Mixjoin.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Mixlength.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Mixlength.bin Binary files differnew file mode 100644 index 00000000..dc725565 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Mixlength.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Mixmake.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Mixmake.bin Binary files differnew file mode 100644 index 00000000..e1ab36e0 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Mixmake.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Mixop.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Mixop.bin Binary files differnew file mode 100644 index 00000000..74a5a6aa --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Mixop.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Mixsub.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Mixsub.bin Binary files differnew file mode 100644 index 00000000..332d7968 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Mixsub.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Mixtype.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Mixtype.bin Binary files differnew file mode 100644 index 00000000..b188ade7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Mixtype.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Naigai.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Naigai.bin Binary files differnew file mode 100644 index 00000000..4c0a5b2d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Naigai.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Naiseki.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Naiseki.bin Binary files differnew file mode 100644 index 00000000..d7d9f480 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Naiseki.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Nearestpt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Nearestpt.bin Binary files differnew file mode 100644 index 00000000..bf51af8a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Nearestpt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Newlength.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Newlength.bin Binary files differnew file mode 100644 index 00000000..80a32401 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Newlength.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Nohiddenpara.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Nohiddenpara.bin Binary files differnew file mode 100644 index 00000000..b7f0d8cf --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Nohiddenpara.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Nohiddenpara2.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Nohiddenpara2.bin Binary files differnew file mode 100644 index 00000000..7bfcf7ab --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Nohiddenpara2.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Nohiddenpers.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Nohiddenpers.bin Binary files differnew file mode 100644 index 00000000..2bdabcc4 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Nohiddenpers.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Nohiddenpers2.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Nohiddenpers2.bin Binary files differnew file mode 100644 index 00000000..b692d55a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Nohiddenpers2.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Numptcrv.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Numptcrv.bin Binary files differnew file mode 100644 index 00000000..57a2ce6f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Numptcrv.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Objcurve.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Objcurve.bin Binary files differnew file mode 100644 index 00000000..845d40ca --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Objcurve.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Objjoin.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Objjoin.bin Binary files differnew file mode 100644 index 00000000..92afe9ad --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Objjoin.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Objname.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Objname.bin Binary files differnew file mode 100644 index 00000000..a14bcc2f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Objname.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Objpolygon.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Objpolygon.bin Binary files differnew file mode 100644 index 00000000..da05430c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Objpolygon.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Objpolyhedron.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Objpolyhedron.bin Binary files differnew file mode 100644 index 00000000..18416f1c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Objpolyhedron.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Objrecs.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Objrecs.bin Binary files differnew file mode 100644 index 00000000..bef4fb7d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Objrecs.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Objsurf.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Objsurf.bin Binary files differnew file mode 100644 index 00000000..6bbe6d7d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Objsurf.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Objsymb.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Objsymb.bin Binary files differnew file mode 100644 index 00000000..8c215679 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Objsymb.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Objthicksurf.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Objthicksurf.bin Binary files differnew file mode 100644 index 00000000..e66c254e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Objthicksurf.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Op.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Op.bin Binary files differnew file mode 100644 index 00000000..fb3d3b45 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Op.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Openfile.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Openfile.bin Binary files differnew file mode 100644 index 00000000..e1625a76 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Openfile.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Openobj.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Openobj.bin Binary files differnew file mode 100644 index 00000000..2024ea60 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Openobj.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Openpar.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Openpar.bin Binary files differnew file mode 100644 index 00000000..c812540a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Openpar.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Openphr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Openphr.bin Binary files differnew file mode 100644 index 00000000..41d69ca5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Openphr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Openpicture.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Openpicture.bin Binary files differnew file mode 100644 index 00000000..f10f1efc --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Openpicture.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Ovalbox.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Ovalbox.bin Binary files differnew file mode 100644 index 00000000..32bf34e8 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Ovalbox.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Ovaldata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Ovaldata.bin Binary files differnew file mode 100644 index 00000000..d28e36ee --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Ovaldata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Paramark.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Paramark.bin Binary files differnew file mode 100644 index 00000000..a7078f9c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Paramark.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/ParamonCurve.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/ParamonCurve.bin Binary files differnew file mode 100644 index 00000000..e4c31df3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/ParamonCurve.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Paramoncrv.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Paramoncrv.bin Binary files differnew file mode 100644 index 00000000..f532d7ee --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Paramoncrv.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Paramplot.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Paramplot.bin Binary files differnew file mode 100644 index 00000000..ffebca84 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Paramplot.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Parapt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Parapt.bin Binary files differnew file mode 100644 index 00000000..e7958ab9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Parapt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Partcrv.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Partcrv.bin Binary files differnew file mode 100644 index 00000000..d54eb52f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Partcrv.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Partcrv3.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Partcrv3.bin Binary files differnew file mode 100644 index 00000000..07321262 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Partcrv3.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Partframe.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Partframe.bin Binary files differnew file mode 100644 index 00000000..a13d3f5f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Partframe.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/PartitionPt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/PartitionPt.bin Binary files differnew file mode 100644 index 00000000..58cef916 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/PartitionPt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Partitionseg.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Partitionseg.bin Binary files differnew file mode 100644 index 00000000..6f557a3b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Partitionseg.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Perspt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Perspt.bin Binary files differnew file mode 100644 index 00000000..f95c613a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Perspt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/PhFaceL.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/PhFaceL.bin Binary files differnew file mode 100644 index 00000000..2d1eec35 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/PhFaceL.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/PhHiddenData.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/PhHiddenData.bin Binary files differnew file mode 100644 index 00000000..ac5490d9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/PhHiddenData.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/PhVertexL.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/PhVertexL.bin Binary files differnew file mode 100644 index 00000000..814b8791 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/PhVertexL.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Phcutdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Phcutdata.bin Binary files differnew file mode 100644 index 00000000..d700ec69 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Phcutdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Phcutoffdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Phcutoffdata.bin Binary files differnew file mode 100644 index 00000000..ccea3366 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Phcutoffdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Phidegree.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Phidegree.bin Binary files differnew file mode 100644 index 00000000..c3f667e3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Phidegree.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Phparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Phparadata.bin Binary files differnew file mode 100644 index 00000000..2e3c664b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Phparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Phpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Phpersdata.bin Binary files differnew file mode 100644 index 00000000..1a2bbf95 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Phpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Phrawparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Phrawparadata.bin Binary files differnew file mode 100644 index 00000000..903c9029 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Phrawparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Phrawpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Phrawpersdata.bin Binary files differnew file mode 100644 index 00000000..5e7b5ffb --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Phrawpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Phsparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Phsparadata.bin Binary files differnew file mode 100644 index 00000000..da8b1196 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Phsparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Phspersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Phspersdata.bin Binary files differnew file mode 100644 index 00000000..6ac27dcb --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Phspersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Phsrawparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Phsrawparadata.bin Binary files differnew file mode 100644 index 00000000..a3da7dd1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Phsrawparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Phsrawpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Phsrawpersdata.bin Binary files differnew file mode 100644 index 00000000..8843cde4 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Phsrawpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Plotdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Plotdata.bin Binary files differnew file mode 100644 index 00000000..c0547852 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Plotdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Pointdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Pointdata.bin Binary files differnew file mode 100644 index 00000000..8c11c2c2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Pointdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/PointonCurve.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/PointonCurve.bin Binary files differnew file mode 100644 index 00000000..e6055b42 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/PointonCurve.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Pointoncrv.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Pointoncrv.bin Binary files differnew file mode 100644 index 00000000..cf693dd1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Pointoncrv.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Powersum.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Powersum.bin Binary files differnew file mode 100644 index 00000000..1dce322f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Powersum.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Prime.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Prime.bin Binary files differnew file mode 100644 index 00000000..e7094eb4 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Prime.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Printobjstr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Printobjstr.bin Binary files differnew file mode 100644 index 00000000..3a62be73 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Printobjstr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/ProjCurve.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/ProjCurve.bin Binary files differnew file mode 100644 index 00000000..2ca583e9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/ProjCurve.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/ProjcoordCurve.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/ProjcoordCurve.bin Binary files differnew file mode 100644 index 00000000..5de23ccd --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/ProjcoordCurve.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Projpara.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Projpara.bin Binary files differnew file mode 100644 index 00000000..bda03ab0 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Projpara.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Projpers.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Projpers.bin Binary files differnew file mode 100644 index 00000000..fbf6d134 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Projpers.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Ptcrv.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Ptcrv.bin Binary files differnew file mode 100644 index 00000000..13f43f67 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Ptcrv.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Ptend.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Ptend.bin Binary files differnew file mode 100644 index 00000000..10ac2f07 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Ptend.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/PthiddenQ.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/PthiddenQ.bin Binary files differnew file mode 100644 index 00000000..cf36ca4e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/PthiddenQ.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Ptne.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Ptne.bin Binary files differnew file mode 100644 index 00000000..4f608b89 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Ptne.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Ptnw.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Ptnw.bin Binary files differnew file mode 100644 index 00000000..727cf4d5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Ptnw.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Ptse.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Ptse.bin Binary files differnew file mode 100644 index 00000000..f09e463c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Ptse.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Ptstart.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Ptstart.bin Binary files differnew file mode 100644 index 00000000..c1303557 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Ptstart.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Ptsw.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Ptsw.bin Binary files differnew file mode 100644 index 00000000..1003cd61 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Ptsw.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Putcell.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Putcell.bin Binary files differnew file mode 100644 index 00000000..be3a6f13 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Putcell.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Putcirmark.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Putcirmark.bin Binary files differnew file mode 100644 index 00000000..d154a0a0 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Putcirmark.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/PutcoL.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/PutcoL.bin Binary files differnew file mode 100644 index 00000000..77a99874 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/PutcoL.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/PutcoLexpr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/PutcoLexpr.bin Binary files differnew file mode 100644 index 00000000..01e1b69c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/PutcoLexpr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/PutcoLstr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/PutcoLstr.bin Binary files differnew file mode 100644 index 00000000..a4872a7f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/PutcoLstr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Putdashmark.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Putdashmark.bin Binary files differnew file mode 100644 index 00000000..1e679bfc --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Putdashmark.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Putrecmark.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Putrecmark.bin Binary files differnew file mode 100644 index 00000000..5df6db75 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Putrecmark.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Putrow.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Putrow.bin Binary files differnew file mode 100644 index 00000000..042a7261 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Putrow.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Putrowexpr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Putrowexpr.bin Binary files differnew file mode 100644 index 00000000..df1a3849 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Putrowexpr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Putrowstr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Putrowstr.bin Binary files differnew file mode 100644 index 00000000..da18fb37 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Putrowstr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Puttrace.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Puttrace.bin Binary files differnew file mode 100644 index 00000000..10769324 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Puttrace.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Ratiocmyk.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Ratiocmyk.bin Binary files differnew file mode 100644 index 00000000..56a87566 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Ratiocmyk.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/ReadOutData.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/ReadOutData.bin Binary files differnew file mode 100644 index 00000000..0acb33cf --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/ReadOutData.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/ReadfromCindy.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/ReadfromCindy.bin Binary files differnew file mode 100644 index 00000000..8d4a1b0e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/ReadfromCindy.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Readtextdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Readtextdata.bin Binary files differnew file mode 100644 index 00000000..f51f7599 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Readtextdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Reflectdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Reflectdata.bin Binary files differnew file mode 100644 index 00000000..02bd0619 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Reflectdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Rmmember.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Rmmember.bin Binary files differnew file mode 100644 index 00000000..1036fe46 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Rmmember.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Rotate3data.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Rotate3data.bin Binary files differnew file mode 100644 index 00000000..6cfc7b1c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Rotate3data.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Rotate3pt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Rotate3pt.bin Binary files differnew file mode 100644 index 00000000..7bc8974d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Rotate3pt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Rotatedata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Rotatedata.bin Binary files differnew file mode 100644 index 00000000..dcde7e7d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Rotatedata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Roundstr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Roundstr.bin Binary files differnew file mode 100644 index 00000000..c9678719 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Roundstr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Scaledata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Scaledata.bin Binary files differnew file mode 100644 index 00000000..aca40719 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Scaledata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Sectionview.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Sectionview.bin Binary files differnew file mode 100644 index 00000000..bfdb8495 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Sectionview.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setangle.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setangle.bin Binary files differnew file mode 100644 index 00000000..997e8178 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setangle.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setarrow.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setarrow.bin Binary files differnew file mode 100644 index 00000000..1d2063bf --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setarrow.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setax.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setax.bin Binary files differnew file mode 100644 index 00000000..46e49d69 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setax.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setcolor.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setcolor.bin Binary files differnew file mode 100644 index 00000000..ae62bffa --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setcolor.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setcounter.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setcounter.bin Binary files differnew file mode 100644 index 00000000..3a609bc9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setcounter.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setmark.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setmark.bin Binary files differnew file mode 100644 index 00000000..be2cbbb6 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setmark.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setmarklen.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setmarklen.bin Binary files differnew file mode 100644 index 00000000..79ae6660 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setmarklen.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setobjdecimals.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setobjdecimals.bin Binary files differnew file mode 100644 index 00000000..3fe068d8 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setobjdecimals.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setobjscale.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setobjscale.bin Binary files differnew file mode 100644 index 00000000..adc5ef97 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setobjscale.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setorigin.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setorigin.bin Binary files differnew file mode 100644 index 00000000..ed695e7f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setorigin.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setpen.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setpen.bin Binary files differnew file mode 100644 index 00000000..934f8764 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setpen.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setpers.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setpers.bin Binary files differnew file mode 100644 index 00000000..e417c91f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setpers.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setpt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setpt.bin Binary files differnew file mode 100644 index 00000000..f9fb21b4 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setpt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setscaling.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setscaling.bin Binary files differnew file mode 100644 index 00000000..faf60668 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setscaling.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/SetstereoL.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/SetstereoL.bin Binary files differnew file mode 100644 index 00000000..c0d4e9e7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/SetstereoL.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/SetstereoR.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/SetstereoR.bin Binary files differnew file mode 100644 index 00000000..44dc173e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/SetstereoR.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setunitlen.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setunitlen.bin Binary files differnew file mode 100644 index 00000000..d6b8e988 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setunitlen.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setversion.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setversion.bin Binary files differnew file mode 100644 index 00000000..9658e1ab --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setversion.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setwindow.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setwindow.bin Binary files differnew file mode 100644 index 00000000..fc39c4e1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Setwindow.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Sf3data.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Sf3data.bin Binary files differnew file mode 100644 index 00000000..bed3747e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Sf3data.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Sfbdparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Sfbdparadata.bin Binary files differnew file mode 100644 index 00000000..bd7b7168 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Sfbdparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Sfbdpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Sfbdpersdata.bin Binary files differnew file mode 100644 index 00000000..86ba2a9e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Sfbdpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Sfbdrawparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Sfbdrawparadata.bin Binary files differnew file mode 100644 index 00000000..c4009953 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Sfbdrawparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Sfbdrawpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Sfbdrawpersdata.bin Binary files differnew file mode 100644 index 00000000..278af331 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Sfbdrawpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Sfcutdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Sfcutdata.bin Binary files differnew file mode 100644 index 00000000..5aa6fd04 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Sfcutdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Sfcutoffparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Sfcutoffparadata.bin Binary files differnew file mode 100644 index 00000000..b22043d8 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Sfcutoffparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Sfcutoffpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Sfcutoffpersdata.bin Binary files differnew file mode 100644 index 00000000..64f416d6 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Sfcutoffpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Sfcutoffrawparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Sfcutoffrawparadata.bin Binary files differnew file mode 100644 index 00000000..cd356699 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Sfcutoffrawparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Sfcutoffrawpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Sfcutoffrawpersdata.bin Binary files differnew file mode 100644 index 00000000..295812ba --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Sfcutoffrawpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Sfparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Sfparadata.bin Binary files differnew file mode 100644 index 00000000..c98b95ed --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Sfparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Sfpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Sfpersdata.bin Binary files differnew file mode 100644 index 00000000..5a780fab --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Sfpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Shade.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Shade.bin Binary files differnew file mode 100644 index 00000000..c4a3aef7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Shade.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Skeleton2data.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Skeleton2data.bin Binary files differnew file mode 100644 index 00000000..b3d2d402 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Skeleton2data.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Skeletonpara3data.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Skeletonpara3data.bin Binary files differnew file mode 100644 index 00000000..5895e254 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Skeletonpara3data.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Skeletonparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Skeletonparadata.bin Binary files differnew file mode 100644 index 00000000..c34f7e16 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Skeletonparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Skeletonpers3data.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Skeletonpers3data.bin Binary files differnew file mode 100644 index 00000000..4ba4947b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Skeletonpers3data.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Skeletonpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Skeletonpersdata.bin Binary files differnew file mode 100644 index 00000000..9c83ea64 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Skeletonpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Spacecurve.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Spacecurve.bin Binary files differnew file mode 100644 index 00000000..0e8bacaf --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Spacecurve.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Spaceline.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Spaceline.bin Binary files differnew file mode 100644 index 00000000..b097e980 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Spaceline.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Splinedata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Splinedata.bin Binary files differnew file mode 100644 index 00000000..7a3c634c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Splinedata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Strop.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Strop.bin Binary files differnew file mode 100644 index 00000000..ca70656e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Strop.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Subs.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Subs.bin Binary files differnew file mode 100644 index 00000000..66f8e6c0 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Subs.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Sumfun.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Sumfun.bin Binary files differnew file mode 100644 index 00000000..a2bafc2c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Sumfun.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Symb3data.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Symb3data.bin Binary files differnew file mode 100644 index 00000000..131297e0 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Symb3data.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Symbdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Symbdata.bin Binary files differnew file mode 100644 index 00000000..a1a27f00 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Symbdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Tabledata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Tabledata.bin Binary files differnew file mode 100644 index 00000000..ab4bb5ed --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Tabledata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texcom.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texcom.bin Binary files differnew file mode 100644 index 00000000..74871299 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texcom.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texctr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texctr.bin Binary files differnew file mode 100644 index 00000000..e0e2dab3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texctr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texelse.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texelse.bin Binary files differnew file mode 100644 index 00000000..4e974456 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texelse.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texend.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texend.bin Binary files differnew file mode 100644 index 00000000..d22ea31d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texend.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texendfor.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texendfor.bin Binary files differnew file mode 100644 index 00000000..0d86b601 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texendfor.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texendif.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texendif.bin Binary files differnew file mode 100644 index 00000000..46fd7b7e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texendif.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texfor.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texfor.bin Binary files differnew file mode 100644 index 00000000..f5e92c99 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texfor.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texforinit.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texforinit.bin Binary files differnew file mode 100644 index 00000000..a8140128 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texforinit.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texif.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texif.bin Binary files differnew file mode 100644 index 00000000..be4c9157 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texif.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texletter.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texletter.bin Binary files differnew file mode 100644 index 00000000..99ef9902 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texletter.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texnewcmd.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texnewcmd.bin Binary files differnew file mode 100644 index 00000000..0904029d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texnewcmd.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texnewctr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texnewctr.bin Binary files differnew file mode 100644 index 00000000..7d332cfd --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texnewctr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texrenewcmd.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texrenewcmd.bin Binary files differnew file mode 100644 index 00000000..1abdf882 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texrenewcmd.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texsetctr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texsetctr.bin Binary files differnew file mode 100644 index 00000000..ccfce689 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texsetctr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texthectr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texthectr.bin Binary files differnew file mode 100644 index 00000000..f2e50561 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texthectr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texvalctr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texvalctr.bin Binary files differnew file mode 100644 index 00000000..a224f885 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texvalctr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texvctr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texvctr.bin Binary files differnew file mode 100644 index 00000000..2fee3584 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Texvctr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Thetadegree.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Thetadegree.bin Binary files differnew file mode 100644 index 00000000..5f360f2f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Thetadegree.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/ThisVersion.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/ThisVersion.bin Binary files differnew file mode 100644 index 00000000..5aa530ec --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/ThisVersion.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Tolist.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Tolist.bin Binary files differnew file mode 100644 index 00000000..5e76126d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Tolist.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Translate3data.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Translate3data.bin Binary files differnew file mode 100644 index 00000000..3fd4aeda --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Translate3data.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Translatedata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Translatedata.bin Binary files differnew file mode 100644 index 00000000..3262007d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Translatedata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Trunc.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Trunc.bin Binary files differnew file mode 100644 index 00000000..a05f649a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Trunc.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Unscaling.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Unscaling.bin Binary files differnew file mode 100644 index 00000000..1bd27535 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Unscaling.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Vecnagasa.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Vecnagasa.bin Binary files differnew file mode 100644 index 00000000..1668581e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Vecnagasa.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Vecnagasa2.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Vecnagasa2.bin Binary files differnew file mode 100644 index 00000000..3acff07e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Vecnagasa2.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Viewfrom.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Viewfrom.bin Binary files differnew file mode 100644 index 00000000..06515c27 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Viewfrom.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Vtickmark.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Vtickmark.bin Binary files differnew file mode 100644 index 00000000..e0c9fdf2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Vtickmark.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Windisp.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Windisp.bin Binary files differnew file mode 100644 index 00000000..487a5881 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Windisp.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/WireHiddenData.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/WireHiddenData.bin Binary files differnew file mode 100644 index 00000000..15d7c7ea --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/WireHiddenData.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/WirePt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/WirePt.bin Binary files differnew file mode 100644 index 00000000..8356c7d3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/WirePt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Wireparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Wireparadata.bin Binary files differnew file mode 100644 index 00000000..8a956544 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Wireparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Wirepersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Wirepersdata.bin Binary files differnew file mode 100644 index 00000000..06813c26 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Wirepersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Wirerawparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Wirerawparadata.bin Binary files differnew file mode 100644 index 00000000..53ef48f2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Wirerawparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Wirerawpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Wirerawpersdata.bin Binary files differnew file mode 100644 index 00000000..a4463d6f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Wirerawpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/WriteOutData.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/WriteOutData.bin Binary files differnew file mode 100644 index 00000000..35bbb30a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/WriteOutData.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Writeobjpoint.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Writeobjpoint.bin Binary files differnew file mode 100644 index 00000000..1c115eb9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Writeobjpoint.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Writetextdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Writetextdata.bin Binary files differnew file mode 100644 index 00000000..90e83be0 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Writetextdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/WritetoCindy.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/WritetoCindy.bin Binary files differnew file mode 100644 index 00000000..3cc76a71 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/WritetoCindy.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Xmax.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Xmax.bin Binary files differnew file mode 100644 index 00000000..51ccdf48 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Xmax.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Xmin.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Xmin.bin Binary files differnew file mode 100644 index 00000000..bba8a4ee --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Xmin.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Xyzax3data.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Xyzax3data.bin Binary files differnew file mode 100644 index 00000000..3a5e517b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Xyzax3data.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Xyzaxparaname.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Xyzaxparaname.bin Binary files differnew file mode 100644 index 00000000..d89801c7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Xyzaxparaname.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Xyzaxpersname.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Xyzaxpersname.bin Binary files differnew file mode 100644 index 00000000..f89ae3a7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Xyzaxpersname.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Ymax.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Ymax.bin Binary files differnew file mode 100644 index 00000000..cc5aea83 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Ymax.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Ymin.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Ymin.bin Binary files differnew file mode 100644 index 00000000..e454fb5a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Ymin.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Zparapt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Zparapt.bin Binary files differnew file mode 100644 index 00000000..1749fad9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Zparapt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Zperspt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Zperspt.bin Binary files differnew file mode 100644 index 00000000..8613eba7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/Zperspt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/ketcindylibhelpE.txt b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/ketcindylibhelpE.txt new file mode 100644 index 00000000..437bdefd --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/ketcindylibhelpE.txt @@ -0,0 +1,116 @@ +//help:start(); +//help:drawimage*(import image into the screen); +//help:drawtext*(write letters on the screen); +//help:Option1*(specify the style of drawing lines); +//help:Option2*(specify the way of writing data out); +//help:Option3*(specify the way of reading and writing data in); +//help:Changestyle*(change the style for drawing plot data); +//help:Workprocess*(display the process of execution); +//help:Textformat*(convert number into string with specific number of digits); +//help:Assign*(replace the name of variable in the string by some specific value); +//help:Flattenlist*(flatten the list of data); +//help:Dotprod*(inner product); +//help:Crossprod*(exterior product); +//help:Ptstart*(starting point of plot data); +//help:Ptend*(ending point of plot data); +//help:Numptcrvtenn*(number of points in plot data); +//help:Ptcrv*(the n-th point of plot data); +//help:Invert*(reverse the orientation of curve); +//help:ParamonCurve*(information (parameter value etc.) of the point in plot data); +//help:PointonCurve*(the point in the plot data specified by the given information); +//help:Nearestptcrv*(the point in the curve which is nearest to the given point); +//help:Nearestpt*(the points in two given curves which are nearest each other); +//help:Derivative*(calculate the differential coefficient); +//help:Integrate*(numerical integration); +//help:Findarea*(calculate the area of the region surrounded by a closed curve); +//help:Findlength*(calculate the length of curve); +//help:Com2nd*(add the Scilab command to write out plot data into TeX); +//help:Texcom*(write command into TeX output exactly as written here); +//help:SetEnglish*(display Scilab messages in English language); +//help:Setunitlen*(specify the unit length); +//help:Setmarklen*(specify the unit length of the tickmarks on coordinate axis); +//help:Setorigin*(specify the position the origin); +//help:Fontsize*(specify the size of font); + //help:Setpen*(specify the thickness of line); +//help:Setpt*(specify the size of point); +//help:Definecolor*(define the color for user's own use); +//help:Setcolor*(specify the color); +//help:Joincrvs*(join curves); +//help:Partcrv*(cut out some part of the curve); +//help:Pointdata*(generate the plot data of point +//additional option : "Size="); +//help:Listplot*(generate the plot data of a polyline); +//help:Lineplot*(generate the plot data of line); +//help:Plotdata*(generate the plot data of function +//additional option : "Num=", "Exc=", "Dis="); +//help:Paramplot*(generate the plot data of parametric function +//additional option : "Num=", "Exc=", "Dis="); +//help:Circledata*(generate the plot data of circle +//additional option : "Num=", "Rng="); +//help:Framedata*(generate the plot data of rectangle); +//help:Ovaldata*(generate the plot data of oval shape); +//help:Arrowhead*(generate the plot data of arrowhead +//option : size, sharpness, shape and position in the arrow); +//help:Arrowdata*(generate the plot data of arrow line +//option : size of arrowhead, sharpness(angle)シ継osition of arrowhead); +//help:Anglemark*(generate the plot data of angle mark option : size); +//help:Paramark*(generate the plot data of right angle mark option : size); +//help:Bowdata*(generate the plot data of bow arched curve +//option : curvatute, size of the blank space, letter); +//help:Deqplot*(generate the solution curve of differential equation +//additional option : "Num="); +//help:Hatchdata*(add hatching into some region +// option : slope, degree, space betwen lines)); +//help:Enclosing*(generate the plot data of closed curve connecting some curves); +//help:Shade*(add shading into some region option : depth); +//help:Rotatepoint*(rotate the point, option : center); +//help:Translatepoint*(pararell transport of the point); +//help:Scalepoint*(magnify or reduce the position of point option : center); + //help:Reflectpoint*(reflect the point); +//help:Rotatedata*(rotate the plot data option : center); +//help:Scaledata*(magnify or reduce the plot data option : center); +//help:Reflectdata*(reflect the plot data); +//help:Mksegments*(generate the plot data of all segments on the screen); +//help:Mkcircles*(generate the plot data of all circles on the screen): +//help:Setax*(specify the setting of coordinate axes); +//help:Htickmark*(put a tickmark on the horizontal coordinate axis); +//help:Vtickmark*(put a tickmark on the vertical coordinate axis); +//help:Drwxy*(draw coordinate axes); +//help:Addax*(specify whether coordinate axes are drawn or not); +//help:Expr*(write mathematical expressions at a specific position); +//help:Letter*(write letters at a specific position); +//help:Letterrot*(write sloped letters at a specific position): +//help:Exprrot*(write sloped mathematical expressions at a specific position): +//help:Putpoint*(put a point at the specific position); +//help:Bezier*(generate the plot data of Bezier curve); +//help:Mkbezierptcrv*(generate the plot data of Bezier curve by automatically taking controll points); +//help:CRspline*(generate the plot data of Catmull-Rom spline curve); +//help:Beziersmooth*(generate the plot data of Bezier spline curve); +//help:Bspline*(generate the plot data of B-spline curve); +//help:PtonLine*(put a point on a specific line); +//help:PtonSeg*(put a point on a specific segment); +//help:PutonCurve*(put a point on a specific curve); +//help:Setscaling*(specify the rate of magnification in the vertical direction); + //help:Tabledatalight*(generate the plot data of table without geometric points + //additional option : rules to be removed); + //help:Tgrid*(return the coordinates of a cell in the table); + //help:Tlistplot*(draw segment connecting two lattice points in the table); +//help:ChangeTablestyle*(change the style for drawing rules in the table); +//help:Tabledata*(generate the plot data of table with geometric points + //option : usual optionsシ脚ules to be removed); +//help:Tabledata*(xLst=apply(1..5,10);yLst=apply(1..4,8);rmvL=[];); +//help:Findcell*(return the information of a cell in the table); +//help:Putcell*(write letters in a specific cell of the table); +//help:Putcellexpr*(write mathematical expressions in a specific cell of the table); +//help:Putrow*(write letters in a specific row of the table)); +//help:Putrowexpr*(write mathematical expressions in a specific row of the table); +//help:PutcoL*(write letters in a specific column of the table)); +//help:PutcoLexpr*(write mathematical expressions in a specific column of the table)); +//help:Setwindow*(specify the area of drawing); +//help:Defvar*(the definition of a variable is called by Scilab); +//help:Deffun*(the definition of a function is called by Scilab); +//help:Extractdata*(endow attribute to the imported plot data); +//help:ReadOutData*(import the plot data); +//help:WriteOutData*(export the plot data); +//help:Removespace*(remove spaces of in front and behind); +//help:end(); diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/names b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/names new file mode 100755 index 00000000..02079ff8 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2esciL5/names @@ -0,0 +1,341 @@ +Addcounter +Anglemark +Arrowdata +Arrowhead +Arrowheaddata +Arrowline +Assign +Assignadd +Assignrep +Assignset +Beginpicture +Bezierpt +Bezier +BorderHiddenData +Borderparadata +Borderpersdata +BorderPt +Borderrawdata +Bowdata +Bowmiddle +Bowname +Bownamerot +Calcfun +CalcHeight +CalcWidth +CameracoordCurve +CameraCurve +Cancoordpara +Cancoordpers +Circledata +Clipindomain +Closefile +Closepar +Closephr +Closepicture +Closeobj +Connectseg +Crossprod +Crv3onsfHiddenData +Crv3onsfparadata +Crv3onsfpersdata +CrvonsfHiddenData +Crvonsfparadata +Crvonsfpersdata +CrvsfHiddenData +Crvsfparadata +Crvsfpersdata +CuspData +CuspPt +Cuspsplitpara +Cuspsplitpers +CuspSplitPt +Cutsf2d +Dashline +Dataindex +Definecolor +Deqplot +Derivative +Diagcelldata +Dividegraphics +Dividetable +Doscaling +Dotfilldata +Dotprod +Dottedline +Dropnumlistcrv +Droppoint +Drwline +Drwpt +Drwxy +Embed +Enclosing +EnclosingS +Endpicture +Evlptablepara +Evlptablepers +Execmd +Expr +Exprrot +Faceremovaldata +Facesdata +Findcell +Flattenlist +Fontsize +Fouriercoeff +FouriercoeffL +Fouriersum +Fracform +Framedata +Fullformfunc +Gaiseki +Getcounter +Gettrace +Hatchdata +Hexahedrondata +HiddenWireData +Htickmark +Implicitplot +ImplicitData +Initangle +Integrate +Intersectcrvs +Intersectcrvsf +IntersectcrvsPp +Intersectlines +IntersectselfPp +Invdashline +Invert +Invparapt +Invperspt +InWindow +Joincrvs +Joingraphics +Ketinit +Kouten +KoutenList +Koutenseg +Kukannozoku +Kukeiwake +Kyorihensuu +Kyoukai +Letter +Letterrot +Lineplot +Listplot +MakeBowdata +MakecutbycrvL +MakeCurves +Makehasen +Makeliststr +Makesfcutoffdata +Makeshasen +Makeskeletondata +Makeskeletonpersdata +Makevaltable +MakeveLfaceL +Makexybdy +Mawarikomi +Meetpoints +MeetWindow +Member +Menkakusi +Menkakusi2 +Mix +Mixadd +Mixdisp +Mixjoin +MixL +Mixlength +Mixmake +Mixop +MixS +Mixsub +Mixtype +Naigai +Naiseki +Nearestpt +Newlength +Nohiddenpara +Nohiddenpara2 +Nohiddenpers +Nohiddenpers2 +Numptcrv +Objjoin +Objname +Objcurve +Objpolyhedron +Objpolygon +Objrecs +Objsurf +Objsymb +Objthicksurf +Openobj +Op +Openfile +Openpar +Openphr +Openpicture +Ovalbox +Ovaldata +Paramark +Paramoncrv +ParamonCurve +Paramplot +Parapt +Partcrv +Partcrv3 +Partframe +PartitionPt +Partitionseg +Perspt +Phcutdata +Phcutoffdata +Phidegree +PhFaceL +PhHiddenData +Phparadata +Phpersdata +Phsparadata +Phspersdata +Phrawparadata +Phrawpersdata +Phsrawparadata +Phsrawpersdata +PhVertexL +Plotdata +Pointdata +Pointoncrv +PointonCurve +Powersum +Prime +Printobjstr +ProjcoordCurve +ProjCurve +Projpara +Projpers +Ptcrv +Ptend +PthiddenQ +Ptne +Ptnw +Ptse +Ptstart +Ptsw +Putcell +Putcirmark +PutcoL +PutcoLexpr +PutcoLstr +Putdashmark +Putrecmark +Putrow +Putrowexpr +Putrowstr +Puttrace +Ratiocmyk +ReadfromCindy +ReadOutData +Readtextdata +Reflectdata +Rmmember +Rotate3data +Rotate3pt +Rotatedata +Roundstr +Scaledata +Sectionview +Setangle +Setarrow +Setax +Setcolor +Setcounter +Setmark +Setmarklen +Setobjdecimals +Setobjscale +Setorigin +Setpen +Setpers +Setpt +Setscaling +SetstereoL +SetstereoR +Setunitlen +Setversion +Setwindow +Sf3data +Sfbdparadata +Sfbdpersdata +Sfbdrawparadata +Sfbdrawpersdata +Sfcutdata +Sfcutoffparadata +Sfcutoffpersdata +Sfcutoffrawparadata +Sfcutoffrawpersdata +Sfparadata +Sfpersdata +Shade +Skeleton2data +Skeletonparadata +Skeletonpara3data +Skeletonpersdata +Skeletonpers3data +Spacecurve +Spaceline +Splinedata +Strop +Subs +Sumfun +Symbdata +Symb3data +Tabledata +Texcom +Texctr +Texelse +Texend +Texendfor +Texendif +Texfor +Texforinit +Texif +Texletter +Texnewcmd +Texnewctr +Texrenewcmd +Texsetctr +Texthectr +Texvalctr +Texvctr +Thetadegree +ThisVersion +Tolist +Translate3data +Translatedata +Trunc +Unscaling +Vecnagasa +Vecnagasa2 +Viewfrom +Vtickmark +Windisp +WireHiddenData +Wireparadata +Wirepersdata +WirePt +Wirerawparadata +Wirerawpersdata +WriteOutData +Writetextdata +WritetoCindy +Writeobjpoint +Xmax +Xmin +Xyzaxparaname +Xyzaxpersname +Xyzax3data +Ymax +Ymin +Zparapt +Zperspt diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Addcounter.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Addcounter.bin Binary files differnew file mode 100644 index 00000000..04ec361b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Addcounter.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Addcounter.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Addcounter.sci new file mode 100755 index 00000000..c940a543 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Addcounter.sci @@ -0,0 +1,12 @@ +// 09.09.10 + +function Addcounter(varargin) + global GCOUNTER; + if Nargs==0 + N=1; + else + N=varargin(1); + GCOUNTER=GCOUNTER+N; + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Anglemark.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Anglemark.bin Binary files differnew file mode 100644 index 00000000..9e505d61 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Anglemark.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Anglemark.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Anglemark.sci new file mode 100755 index 00000000..6deb302c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Anglemark.sci @@ -0,0 +1,33 @@ +// 08.06.05 +// 16.12.29 ( for too short segment ) + +function Out=Anglemark(varargin) + Nargs=length(varargin); + Eps=10^(-3); + PA=varargin(1); PB=varargin(2); PC=varargin(3); + r = 0.5; + if Nargs>=4 + r = varargin(4)*r; + end + Out=[]; // 16.12.29 + if r>min(norm(PA-PB),norm(PC-PB)) then + return; + end; + Cir=Circledata(PB,r); + Tmp=IntersectcrvsPp(Cir,Listplot(PA,PB)); + P1=Op(2,Op(1,Tmp)); + Tmp=IntersectcrvsPp(Cir,Listplot(PC,PB)); + P2=Op(2,Mixop(1,Tmp)); + if abs(P1-P2)<Eps + Out=[]; + return; + end + if P1<P2-Eps + Out=Partcrv(P1,P2,Cir); + else + Tmp=Numptcrv(Cir); + Tmp1=Partcrv(P1,Tmp,Cir); + Tmp2=Partcrv(1,P2,Cir); + Out=Joincrvs(Tmp1,Tmp2); + end +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Arrowdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Arrowdata.bin Binary files differnew file mode 100644 index 00000000..fa50bd08 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Arrowdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Arrowdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Arrowdata.sci new file mode 100755 index 00000000..f6ac6ef2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Arrowdata.sci @@ -0,0 +1,58 @@ +// 08.05.08 + +function Out=Arrowdata(varargin) + global YaSize YaAngle YaPosition YaThick YaStyle; + Nargs=length(varargin); + P=varargin(1); + Q=varargin(2); + R=Q; + Futosa=YaThick; + Ookisa=YaSize; + Thickness=1; + Hiraki=YaAngle; + Yapos=YaPosition; + Position=1; + Str=YaStyle; + Flg=0; + for I=3:Nargs + Tmp=varargin(I); + if type(Tmp)==1 + if length(Tmp)>1 + R=Tmp + else + if Flg==0 + Ookisa=Ookisa*Tmp; + end + if Flg==1 + if Tmp<5 + Hiraki=Tmp*Hiraki; + else + Hiraki=Tmp; + end + end + if Flg==2 + R=P+Tmp*(Q-P); + else + R=P+Yapos*(Q-P); + end + if Flg==3 + Futosa=Tmp + end + Flg=Flg+1; + end + end + if type(Tmp)==10 + if mtlb_findstr(Tmp,'=')~=[] + execstr(Tmp); + Futosa=Futosa*Thickness; + R=P+Position*(Q-P); + else + Str=Tmp + end + end + end + Tmp1=Listplot([P,Q]); + Tmp2=Arrowheaddata(R,Q-P,Ookisa,Hiraki,Futosa,Str); + Out=Joingraphics(Tmp1,Tmp2); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Arrowhead.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Arrowhead.bin Binary files differnew file mode 100644 index 00000000..bbd95348 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Arrowhead.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Arrowhead.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Arrowhead.sci new file mode 100755 index 00000000..9073ca6e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Arrowhead.sci @@ -0,0 +1,107 @@ +// +// 08.06.01 +// 09.12.25 +// 12.01.07 kirikomi(Cut) +// 12.04.16 debugged +// 13.05.17 debugged +// 13.11.13 debugged +// 15.06.11 debugged +// 15.06.14 debugged +// 15.06.15 improved + +function Arrowhead(varargin) + global Wfile FID MilliIn YaSize + global YaAngle YaPosition YaThick YaStyle; + Nargs=length(varargin); + P=varargin(1); + Houkou=varargin(2); + Ookisa=0.2*YaSize; + Hiraki=YaAngle; + Futosa=0.5*YaThick; + Cut=0; + Str=YaStyle; + Flg=0; + for I=3:Nargs + Tmp=varargin(I); + if type(Tmp)==10 + Equal=mtlb_findstr(Tmp,'='); // 12.01.07 from + if length(Equal)>0 + Tmp2=strsplit(Tmp,Equal-1); + if Tmp2(1)=="Cut" | Tmp2(1)=="cut" + Tmp="Cut"+Tmp2(2); + execstr(Tmp); + end; + else + Str=Tmp; + end; // 12.01.07 upto + end; + if type(Tmp)==1 & length(Tmp)==1 + if Flg==0 + Ookisa=Ookisa*Tmp; + end + if Flg==1 + if Tmp<5 + Hiraki=Tmp*Hiraki + else + Hiraki=Tmp + end + end + if Flg==2 + Futosa=Tmp + end + Flg=Flg+1; + end + end; + Ookisa=1000/2.54/MilliIn*Ookisa; + Theta=Hiraki*%pi/180; + if size(Houkou,1)>1 + P=Doscaling(P); + Houkou=Doscaling(Houkou); + Tmp=Nearestpt(P,Houkou); + A=Op(1,Tmp); + I=floor(Op(2,Tmp)); + G=Circledata(P,Ookisa*cos(Theta),'N=10'); + Flg=0; // 13.11.13 + for J=I:-1:1 + B=Ptcrv(J,Houkou); + Tmp=IntersectcrvsPp(Listplot([A,B]),G); + if Mixlength(Tmp)>0 + Flg=1; + break + end + A=B + end + if Flg==0 // 13.11.13 + disp('Arrowhead may be too large (no intersect)'); + return + end + Houkou=P-Op(1,Op(1,Tmp)); + Houkou=Unscaling(Houkou); + P=Unscaling(P); + end; + P=Doscaling(P); + Houkou=Doscaling(Houkou); + Ev=-1/Vecnagasa(Houkou)*Houkou; + Nv=[-Ev(2),Ev(1)]; + if mtlb_findstr(Str,'c')~=[] + P=P-0.5*Ookisa*cos(Theta)*Ev + end; + if mtlb_findstr(Str,'b')~=[] + P=P-Ookisa*cos(Theta)*Ev + end; + A=P+Ookisa*cos(Theta)*Ev+Ookisa*sin(Theta)*Nv; + B=P+Ookisa*cos(Theta)*Ev-Ookisa*sin(Theta)*Nv; + if mtlb_findstr(Str,'l')~=[] + Tmp=Listplot([A,P,B]); + Tmp1=Unscaling(Tmp); // 13.05.17 + Drwline(Tmp1,Futosa); + else + C=P+(1-Cut)*((A+B)/2-P); // 12.01.05 + Tmp=Listplot([A,P,B,C,A]); // 12.01.05 + Tmp1=Unscaling(Tmp); + Shade(Tmp1); + Tmp=Listplot([A,P,B,C,A,P]); // 15.6.20 + Tmp1=Unscaling(Tmp); + Drwline(Tmp1,0.1); // 15.06.11, 15.06.14 + end +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Arrowheaddata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Arrowheaddata.bin Binary files differnew file mode 100644 index 00000000..99f58621 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Arrowheaddata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Arrowheaddata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Arrowheaddata.sci new file mode 100755 index 00000000..68dfe27c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Arrowheaddata.sci @@ -0,0 +1,89 @@ +// 08.05.31 +// 09.12.25 +// 13.11.13 debugged +// 14.11.02 debugged + +function Out=Arrowheaddata(varargin) + global YaSize YaAngle YaPosition YaThick YaStyle; + Eps=10^(-3); + Nargs=length(varargin); + Out=[]; + P=varargin(1); + Houkou=varargin(2); + Ookisa=0.2*YaSize; + Hiraki=YaAngle; + Futosa=0; + Thickness=1; + Str=YaStyle; + Flg=0; + for I=3:Nargs + Tmp=varargin(I); + if type(Tmp)==10 + if mtlb_findstr(Tmp,'=')~=[] + execstr(Tmp); + Futosa=Thickness; + else + Str=Tmp; + end + end + if type(Tmp)==1 & length(Tmp)==1 + if Flg==0 + Ookisa=Ookisa*Tmp; + end + if Flg==1 + if Tmp<5 + Hiraki=Tmp*Hiraki; + else + Hiraki=Tmp; + end + end + Flg=Flg+1; + end + end + Theta=Hiraki*%pi/180; + if size(Houkou,1)>1 + P=Doscaling(P); + Houkou=Doscaling(Houkou); + Tmp=Nearestpt(P,Houkou); + A=Op(1,Tmp); + I=floor(Op(2,Tmp)); + if I==1 // 14.11.02 + if norm(Ptend(Houkou)-Ptstart(Houkou))<Eps + l=Numptcrv(Houkou); + end; + end; + G=Circledata(P,Ookisa*cos(Theta),'N=10'); + Flg=0; // 13.11.13 + for J=I:-1:1 + B=Ptcrv(J,Houkou); + Tmp=IntersectcrvsPp(Listplot([A,B]),G); + if Mixlength(Tmp)>0 + Flg=1; + break + end + A=B + end + if Flg==0 // 13.11.13 + disp('Arrowhead may be too large (no intersect)'); + return + end + Houkou=P-Op(1,Op(1,Tmp)); + Houkou=Unscaling(Houkou); + P=Unscaling(P); + end + P=Doscaling(P); + Houkou=Doscaling(Houkou); + E=-1/Vecnagasa(Houkou)*Houkou; + N=[-E(2),E(1)]; + if mtlb_findstr(Str,'c')~=[] + P=P-0.5*Ookisa*cos(Theta)*E; + end + if mtlb_findstr(Str,'b')~=[] + P=P-Ookisa*cos(Theta)*E + end + A=P+Ookisa*cos(Theta)*E+Ookisa*sin(Theta)*N; + B=P+Ookisa*cos(Theta)*E-Ookisa*sin(Theta)*N; + Out=Listplot([A,P,B]); + Out=Unscaling(Out); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Arrowline.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Arrowline.bin Binary files differnew file mode 100644 index 00000000..dec6b519 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Arrowline.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Arrowline.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Arrowline.sci new file mode 100755 index 00000000..881662b1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Arrowline.sci @@ -0,0 +1,57 @@ +// +// 12.01.07 kirikomi(Cut) +// 12.08.26 debugged +// 15.06.11 debugged +// 15.10.24 debugged + +function Arrowline(varargin) + global YaSize YaAngle YaPosition YaThick YaStyle Kirikomi; + Nargs=length(varargin) + P=varargin(1); + Q=varargin(2); + Futosa=YaThick; + Ookisa=YaSize; + Hiraki=YaAngle; + Yapos=YaPosition; + Cutstr="Cut=0"; + Str=YaStyle; + Flg=0; + for I=3:Nargs + Tmp=varargin(I); + if type(Tmp)==10 + Equal=mtlb_findstr(Tmp,'='); // 12.01.07 from + if length(Equal)>0 + Tmp2=strsplit(Tmp,Equal-1); + if (Tmp2(1)=="Cut") | (Tmp2(1)=="cut") + Tmp="Cut"+Tmp2(2); + Cutstr=Tmp; + end + else + Str=Tmp; // 12.01.07 upto (debugged on 12.08.26) + end; + end; + if (type(Tmp)==1) & (length(Tmp)==1) + if Flg==0 + Ookisa=Ookisa*Tmp; + end + if Flg==1 + if Tmp<5 + Hiraki=Tmp*Hiraki; + else + Hiraki=Tmp; + end + end + if Flg==2 + Yapos=Tmp; + end + if Flg==3 + Futosa=Tmp; + end + Flg=Flg+1; + end + end + R=P+Yapos*(Q-P); + Tmp=Q-Unscaling(0.2*Ookisa/2*(Q-P)/norm(Q-P)); // 15.10.24 + Drwline(Listplot([P,Tmp]),Futosa); + Arrowhead(R,Q-P,Ookisa,Hiraki,Futosa,Cutstr,Str); // 12.01.07 +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Assign.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Assign.bin Binary files differnew file mode 100644 index 00000000..a4ad2b27 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Assign.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Assign.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Assign.sci new file mode 100755 index 00000000..8d9201cc --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Assign.sci @@ -0,0 +1,202 @@ +// 08.09.26 +// 09.09.21 +// 09.09.26 +// 09.10.01 +// 09.10.03 +// 09.10.05 +// 09.10.08 +// 09.10.09 ( format=20) +// 09.10.15 ( added Assign('') : reset +// 09.10.17 ( Matrix added, ? -> number returned) +// 09.10.21 ( list supported with Makeliststr ) +// 14.10.04 format=12 +// 14.12.11 only replaced when variable name +// 14.12.28 debugged ( tmp2, ` ) +// 15.02.18 debugged ( for list of string ) +// 15.02.19 debugged +// 15.04.18 debugged + +function Out=Assign(varargin) + global ASSIGNLIST; + Curfmt=format(); + format(12); // 14.10.04 + Nargs=length(varargin); + if Nargs==0 + ASSIGNLIST=list('`',Prime()); + Out=ASSIGNLIST; + format(Curfmt(2)); + return; + end; + L=list('`',char(39)); + NL=length(L); + if modulo(Nargs,2)==0 + for I=1:Nargs + L(I+NL)=varargin(I); + end; + ASSIGNLIST=L; + Out=L; + format(Curfmt(2)); + return; + end; + if Nargs==1 + Fnstr=varargin(1); + if Fnstr=='' + L=ASSIGNLIST; + Out=[]; + for I=1:2:length(L) + Tmp1=L(I); + Tmp2=L(I+1); + if length(Tmp2)==1 + Tmp3=string(Tmp2); + else + Tmp3='['; + for J=1:length(Tmp2) + Tmp3=Tmp3+string(Tmp2(J)); + if J<length(Tmp2) + Tmp3=Tmp3+','; + end; + end; + Tmp3=Tmp3+']'; + end; + Out=[Out,Tmp1+'='+Tmp3]; + end; + format(Curfmt(2)); + return; + end; + if part(Fnstr,1)=='?' + Tmp=strsplit(Fnstr,1); + Fnstr=Tmp(2); + for I=1:2:length(ASSIGNLIST) + Tmp=ASSIGNLIST(I); + if Tmp==Fnstr + Out=Mixjoin(I,ASSIGNLIST(I+1)); + format(Curfmt(2)); + return; + end; + end; + Out='Not found'; + format(Curfmt(2)); + return; + end; // + L=ASSIGNLIST; + else + if type(varargin(2))==1 + Fnstr=varargin(Nargs); + for I=1:Nargs-1 + L(I)=varargin(I); + end; + else + Fnstr=varargin(1); + for I=2:Nargs + L(I-1)=varargin(I); + end; + end; + end; + Tmp3=Fnstr; // 15.04.18 + for I=1:2:length(L) + Vname=L(I); + Val=L(I+1); + if Vname=="`" // 14.12.28 + Tmp3=strsubst(Tmp3,Vname,Val); + continue + end; + if type(Val)==1 + if size(Val,1)==1 & size(Val,2)>1 // 15.04.18 + for K=1:length(Val) + Tmp=Vname+'('+string(K)+')'; + if mtlb_findstr(Tmp3,Tmp)~=[] + if type(Val(K))==1 + Tmp1='('+string(Val(K))+')'; + else + Tmp1=Val(K); + end; + Tmp3=strsubst(Tmp3,Tmp,Tmp1); + end; + end; + else + for J=1:size(Val,1) + for K=1:size(Val,2) + Tmp=Vname+'('+string(J)+','+string(K)+')'; + if mtlb_findstr(Tmp3,Tmp)~=[] + if type(Val(J,K))==1 + Tmp1='('+string(Val(J,K))+')'; + else + Tmp1=Val(J,K); + end; + Tmp3=strsubst(Tmp3,Tmp,Tmp1); + end; + end; + end; + end; + if length(Val)==1 + Rep=string(Val); + else + Rep='['; + for J=1:size(Val,1) + for K=1:size(Val,2) + Rep=Rep+string(Val(J,K)); + if K<size(Val,2) + Rep=Rep+','; + end; + end; + if J<size(Val,1) + Rep=Rep+';'; + else + Rep=Rep+']'; + end; + end; + end; + Tmp1='('+Rep+')'; + end; + if type(Val)==10 + Tmp1=Val; + end; + if type(Val)==15 + Tmp1=Makeliststr(Val); + end; + Notvar=[48:57,65:90,97:122]; + for K=1:size(Tmp3,2) + Tmp2=Tmp3(K); + if length(Tmp2)>0 then + Flist=mtlb_findstr(Tmp2,Vname); + else + Flist=[]; + end + if length(Flist)==0 then + Tmp3(K)=Tmp2; // 15.04.18 + continue + end + Str=part(Tmp2,1:(Flist(1)-1)); + for I=1:length(Flist) + Flg=0; + J=Flist(I); + if J>1 then + Tmp=ascii(part(Tmp2,J-1)); + if Member(Tmp,Notvar) then + Flg=1; + end; + end + if J+length(Vname)-1<length(Tmp2) then // 15.04.18 + Tmp=ascii(part(Tmp2,J+length(Vname))); // 15.04.18 + if Member(Tmp,Notvar) then + Flg=1; + end; + end; + if Flg==0 then + Str=Str+Tmp1; + else + Str=Str+Vname; + end; + if I<length(Flist) then + Tmp=Flist(I+1)-1; + else + Tmp=length(Tmp2); + end; + Str=Str+part(Tmp2,(J+length(Vname)):Tmp); + Tmp3(K)=Str; // 15.04.18 + end; + end; + end; + Out=Tmp3; // 15.02.18 upto + format(Curfmt(2)); +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Assignadd.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Assignadd.bin Binary files differnew file mode 100644 index 00000000..c6c202fa --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Assignadd.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Assignadd.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Assignadd.sci new file mode 100755 index 00000000..d8883e6c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Assignadd.sci @@ -0,0 +1,14 @@ +// 09.10.03 + +function Out=Assignadd(varargin) + global ASSIGNLIST; + Nargs=length(varargin); + L=ASSIGNLIST; + Is=length(L); + for I=1:Nargs + L(I+Is)=varargin(I); + end; + ASSIGNLIST=L; + Out=L; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Assignrep.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Assignrep.bin Binary files differnew file mode 100644 index 00000000..3e962180 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Assignrep.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Assignrep.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Assignrep.sci new file mode 100755 index 00000000..0a362b01 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Assignrep.sci @@ -0,0 +1,22 @@ +// 09.10.17 +// 09.12.05 +// 09.12.29 +// 14.09.30 addition supported + +function Assignrep(varargin) + global ASSIGNLIST; + Nargs=length(varargin); + for I=1:2:Nargs + Vname=varargin(I); + Val=varargin(I+1); + Tmp=Assign('?'+Vname); + if Tmp=='Not found' + Tmp=length(ASSIGNLIST); + ASSIGNLIST(Tmp+1)=Vname; + ASSIGNLIST(Tmp+2)=Val; + else + I=Tmp(1); + ASSIGNLIST(I+1)=Val; + end; + end +endfunction;
\ No newline at end of file diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Assignset.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Assignset.bin Binary files differnew file mode 100644 index 00000000..04246041 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Assignset.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Assignset.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Assignset.sci new file mode 100755 index 00000000..bb77c105 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Assignset.sci @@ -0,0 +1,7 @@ +// 09.10.21 + +function Assignset(varargin) + I=1:length(varargin); + Tmp=Assign(varargin(I));; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Beginpicture.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Beginpicture.bin Binary files differnew file mode 100644 index 00000000..aa6d94ab --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Beginpicture.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Beginpicture.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Beginpicture.sci new file mode 100755 index 00000000..f93e3200 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Beginpicture.sci @@ -0,0 +1,6 @@ +// 08.05.22 + +function Beginpicture(ul) + Openpicture(ul) +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Bezier.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Bezier.bin Binary files differnew file mode 100644 index 00000000..4de26d03 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Bezier.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Bezier.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Bezier.sci new file mode 100644 index 00000000..7d1993eb --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Bezier.sci @@ -0,0 +1,35 @@ +// 15.01.01 + +function Out=Bezier(varargin) + Nargs=length(varargin); + Ptlist=varargin(1); + Ctrlist=varargin(2); + Num=10; + for J=3:Nargs + Tmp=varargin(J); + K=mtlb_findstr(Tmp,'='); + Tmp1=strsplit(Tmp,[K-1,K]); + Tmp2=ascii(Tmp1(1,1)); + Lhs=char(Tmp2(1)); + if Lhs=="N" then + Num=evstr(Tmp1(3,1)); + end; + end; + if length(Num)==1 + Num=Num*ones(1:length(Ctrlist)) + end; + Out=[]; + for ii=1:length(Ctrlist) + Tmp1=[Ptlist(ii),Ptlist(ii+1)]; + Tmp2=Ctrlist(ii); + if ii==1 then + St=0 + else + St=1 + end; + for J=St:Num(ii) + Tmp=Bezierpt(J/Num(ii),Tmp1,Tmp2); + Out=[Out;Tmp]; + end; + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Bezierpt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Bezierpt.bin Binary files differnew file mode 100644 index 00000000..53d89112 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Bezierpt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Bezierpt.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Bezierpt.sci new file mode 100644 index 00000000..ac639249 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Bezierpt.sci @@ -0,0 +1,39 @@ +// 15.01.01 +// 15.02.08 for 3d + +function Out=Bezierpt(t,Ptlist,Ctrlist) + if length(Ptlist)==6 then // 3d 15.02.08 + P0=Ptlist(1:3); + P3=Ptlist(4:6); + P1=Ctrlist(1:3); + if length(Ctrlist)==3 then + P2=P3; + flg3=0; + else + P2=Ctrlist(4:6); + flg3=1; + end; + else + P0=Ptlist(1:2); + P3=Ptlist(3:4); + P1=Ctrlist(1:2); + if length(Ctrlist)==2 then + P2=P3; + flg3=0; + else + P2=Ctrlist(3:4); + flg3=1; + end; + end; + P4=(1-t)*P0+t*P1; + P5=(1-t)*P1+t*P2; + P6=(1-t)*P2+t*P3; + P7=(1-t)*P4+t*P5; + P8=(1-t)*P5+t*P6; + P9=(1-t)*P7+t*P8; + if flg3==0 then + Out=P7; + else + Out=P9; + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/BorderHiddenData.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/BorderHiddenData.bin Binary files differnew file mode 100644 index 00000000..2c743976 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/BorderHiddenData.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/BorderHiddenData.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/BorderHiddenData.sci new file mode 100755 index 00000000..dac12561 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/BorderHiddenData.sci @@ -0,0 +1,7 @@ +// 08.09.13 + +function Out=BorderHiddenData() + global BORDERHIDDENDATA + Out=BORDERHIDDENDATA; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/BorderPt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/BorderPt.bin Binary files differnew file mode 100644 index 00000000..6fb6e54e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/BorderPt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/BorderPt.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/BorderPt.sci new file mode 100755 index 00000000..12947bcd --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/BorderPt.sci @@ -0,0 +1,7 @@ +// 08.09.13 + +function Out=BorderPt() + global BORDERPT + Out=BORDERPT +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Borderparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Borderparadata.bin Binary files differnew file mode 100644 index 00000000..1e0a62fc --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Borderparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Borderparadata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Borderparadata.sci new file mode 100755 index 00000000..2e944821 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Borderparadata.sci @@ -0,0 +1,121 @@ +// 08.09.13 +// 08.09.16 +// 08.10.10 +// 08.10.11 +// 08.10.15 +// 08.10.28 +// 09.03.09 +// 09.05.27 +// 09.06.03 +// 10.02.16 Eps=> [Eps, Epsmg] +// 13.10.21 ( __ added to varibles ) + +function FsL__=Borderparadata(varargin) + global BORDERPT OTHERPARTITION HIDDENDATA BORDERHIDDENDATA + global PARTITIONPT + Nargs__=length(varargin); + FkL__=varargin(1); + Fd__=varargin(2); N__=3; + FdL__=Fullformfunc(Fd__); + Fxy__=Mixop(1,FdL__); + Tmp__1=Mixop(2,FdL__); + Tmp__2=Mixop(3,FdL__); + Tmp__3=Mixop(4,FdL__); + Xyzstr__=[Tmp__1,Tmp__2,Tmp__3]; + DrwS__=Mixop(7,FdL__); + Tmp__=Mixop(5,FdL__); + K__=mtlb_findstr(Tmp__,'='); + Uname__=part(Tmp__,1:K__-1); + Urg__=evstr(part(Tmp__,K__+1:length(Tmp__))); + Tmp__=Mixop(6,FdL__); + K__=mtlb_findstr(Tmp__,'='); + Vname__=part(Tmp__,1:K__-1); + Vrg__=evstr(part(Tmp__,K__+1:length(Tmp__))); + Np__=[50,50]; + if Nargs__>=3 + Np__=varargin(3); N__=4; + if type(Np__)==1 & length(Np__)==1 + Np__=[Np__,Np__]; + end; + end; + Eps__=[0.05,1]; // + if Nargs__>=N__ Eps__=varargin(N__); end; + Eps__2=0.2; + if Nargs__>=N__+1 Eps__2=varargin(N__+1); end; + Umin__=Urg__(1); Umax__=Urg__(2); + Vmin__=Vrg__(1); Vmax__=Vrg__(2); + EkL__=[]; + Tmp__=mtlb_findstr(DrwS__,'e'); + if length(Tmp__)~=0 + Tmp__1=strsubst(Xyzstr__,Uname__,'('+string(Umax__)+')'); + Tmp__2=Mixop(6,FdL__); + Tmp__3='N='+string(Np__(2)); + Tmp__=Spacecurve(Tmp__1,Tmp__2,Tmp__3); + EkL__=Mixadd(EkL__,Tmp__); + end; + Tmp__=mtlb_findstr(DrwS__,'n'); + if length(Tmp__)~=0 + Tmp__1=strsubst(Xyzstr__,Vname__,'('+string(Vmax__)+')'); + Tmp__2=Mixop(5,FdL__); + Tmp__3='N='+string(Np__(1)); + Tmp__=Spacecurve(Tmp__1,Tmp__2,Tmp__3); + EkL__=Mixadd(EkL__,Tmp__); + end; + Tmp__=mtlb_findstr(DrwS__,'w'); + if length(Tmp__)~=0 + Tmp__1=strsubst(Xyzstr__,Uname__,'('+string(Umin__)+')'); + Tmp__2=Mixop(6,FdL__); + Tmp__3='N='+string(Np__(2)); + Tmp__=Spacecurve(Tmp__1,Tmp__2,Tmp__3); + EkL__=Mixadd(EkL__,Tmp__); + end; + Tmp__=mtlb_findstr(DrwS__,'s'); + if length(Tmp__)~=0 + Tmp__1=strsubst(Xyzstr__,Vname__,'('+string(Vmin__)+')'); + Tmp__2=Mixop(5,FdL__); + Tmp__3='N='+string(Np__(1)); + Tmp__=Spacecurve(Tmp__1,Tmp__2,Tmp__3); + EkL__=Mixadd(EkL__,Tmp__); + end; + if Mixlength(EkL__)>0 + FkL__=Mixjoin(FkL__,EkL__); + end; + Fall__=Projpara(FkL__); + if Mixtype(Fall__)==1 + Fall__=Mix(Fall__) + end; + Fbdxy__=Makexybdy(Fd__,Np__); + Tmp__=Mixop(2,Fd__); + K__=mtlb_findstr(Tmp__,'='); + Xname__=part(Tmp__,1:K__-1); + Tmp__=Mixop(3,Fd__); + K__=mtlb_findstr(Tmp__,'='); + Yname__=part(Tmp__,1:K__-1); + BORDERPT=[]; + Tmp__=[]; + for I__=1:Mixlength(Fall__) + Tmp__=Mixadd(Tmp__,[]); + end; + OTHERPARTITION=Tmp__; + FsL__=[]; + BORDERHIDDENDATA=[]; + for I__=1:Mixlength(Fall__) + Tmp__=Mixop(I__,FkL__); + Tmp__=Projpara(Tmp__); + Par__=Partitionseg(Tmp__,Fall__,Eps__(1),Eps__2,I__); // + if Mixlength(PARTITIONPT)>2 + Tmp__=Mixlength(PARTITIONPT)-1; + Tmp__1=Mixsub(2:Tmp__,PARTITIONPT); + BORDERPT=Mixjoin(BORDERPT,Tmp__1); + end; + Tmp__1=Mixop(I__,FkL__); + Tmp__=Nohiddenpara2(Par__,Tmp__1,Fd__,1,Np__,Eps__); + if Mixlength(HIDDENDATA)>0 + BORDERHIDDENDATA=Mixjoin(BORDERHIDDENDATA,HIDDENDATA); + end; + if Mixlength(Tmp__)>0 + FsL__=Mixjoin(FsL__,Tmp__); + end; + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Borderpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Borderpersdata.bin Binary files differnew file mode 100644 index 00000000..2a4cc650 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Borderpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Borderpersdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Borderpersdata.sci new file mode 100755 index 00000000..f86ddfa0 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Borderpersdata.sci @@ -0,0 +1,120 @@ +// 08.09.21 +// 08.10.10 +// 08.10.11 +// 08.10.28 +// 09.03.09 +// 09.05.27 +// 09.06.03 +// 10.02.16 Eps__ +// 13.11.01 ( __ added to varibles ) + +function FsL__=Borderpersdata(varargin) + global BORDERPT OTHERPARTITION HIDDENDATA BORDERHIDDENDATA + global PARTITIONPT + Nargs__=length(varargin); + FkL__=varargin(1); + Fd__=varargin(2); N=3; + FdL__=Fullformfunc(Fd__); + Fxy__=Mixop(1,FdL__); + Tmp__1=Mixop(2,FdL__); + Tmp__2=Mixop(3,FdL__); + Tmp__3=Mixop(4,FdL__); + Xyzstr__=[Tmp__1,Tmp__2,Tmp__3]; + DrwS__=Mixop(7,FdL__); + Tmp__=Mixop(5,FdL__); + K__=mtlb_findstr(Tmp__,'='); + Uname__=part(Tmp__,1:K__-1); + Urg__=evstr(part(Tmp__,K__+1:length(Tmp__))); + Tmp__=Mixop(6,FdL__); + K__=mtlb_findstr(Tmp__,'='); + Vname__=part(Tmp__,1:K__-1); + Vrg__=evstr(part(Tmp__,K__+1:length(Tmp__))); + Np__=[50,50]; + if Nargs__>=3 + Np__=varargin(3); N=4; + if type(Np__)==1 & length(Np__)==1 + Np__=[Np__,Np__]; + end; + end; + Eps__=0.05; + Eps__=[0.05,1]; // + if Nargs__>=N Eps__=varargin(N); end; + Eps__2=0.2; + if Nargs__>=N+1 Eps__2=varargin(N+1); end; + Umin__=Urg__(1); Umax__=Urg__(2); + Vmin__=Vrg__(1); Vmax__=Vrg__(2); + EkL__=[]; + Tmp__=mtlb_findstr(DrwS__,'e'); + if length(Tmp__)~=0 + Tmp__1=strsubst(Xyzstr__,Uname__,'('+string(Umax__)+')'); + Tmp__2=Mixop(6,FdL__); + Tmp__3='N='+string(Np__(2)); + Tmp__=Spacecurve(Tmp__1,Tmp__2,Tmp__3); + EkL__=Mixadd(EkL__,Tmp__); + end; + Tmp__=mtlb_findstr(DrwS__,'n'); + if length(Tmp__)~=0 + Tmp__1=strsubst(Xyzstr__,Vname__,'('+string(Vmax__)+')'); + Tmp__2=Mixop(5,FdL__); + Tmp__3='N='+string(Np__(1)); + Tmp__=Spacecurve(Tmp__1,Tmp__2,Tmp__3); + EkL__=Mixadd(EkL__,Tmp__); + end; + Tmp__=mtlb_findstr(DrwS__,'w'); + if length(Tmp__)~=0 + Tmp__1=strsubst(Xyzstr__,Uname__,'('+string(Umin__)+')'); + Tmp__2=Mixop(6,FdL__); + Tmp__3='N='+string(Np__(2)); + Tmp__=Spacecurve(Tmp__1,Tmp__2,Tmp__3); + EkL__=Mixadd(EkL__,Tmp__); + end; + Tmp__=mtlb_findstr(DrwS__,'s'); + if length(Tmp__)~=0 + Tmp__1=strsubst(Xyzstr__,Vname__,'('+string(Vmin__)+')'); + Tmp__2=Mixop(5,FdL__); + Tmp__3='N='+string(Np__(1)); + Tmp__=Spacecurve(Tmp__1,Tmp__2,Tmp__3); + EkL__=Mixadd(EkL__,Tmp__); + end; + if Mixlength(EkL__)>0 + FkL__=Mixjoin(FkL__,EkL__); + end; + Fall__=Projpers(FkL__); + if Mixtype(Fall__)==1 + Fall__=Mix(Fall__); + end; + Fbdxy__=Makexybdy(Fd__,Np__); + Tmp__=Mixop(2,Fd__); + K__=mtlb_findstr(Tmp__,'='); + Xname__=part(Tmp__,1:K__-1); + Tmp__=Mixop(3,Fd__); + K__=mtlb_findstr(Tmp__,'='); + Yname__=part(Tmp__,1:K__-1); + BORDERPT=[]; + Tmp__=[]; + for I__=1:Mixlength(Fall__) + Tmp__=Mixadd(Tmp__,[]); + end; + OTHERPARTITION=Tmp__; + FsL__=[]; + BORDERHIDDENDATA=[]; + for I__=1:Mixlength(Fall__) + Tmp__=Mixop(I__,FkL__); + Tmp__=Projpers(Tmp__); + Par__=Partitionseg(Tmp__,Fall__,Eps__(1),Eps__2,I__); + if Mixlength(PARTITIONPT)>2 + Tmp__=Mixlength(PARTITIONPT)-1; + Tmp__1=Mixsub(2:Tmp__,PARTITIONPT); + BORDERPT=Mixjoin(BORDERPT,Tmp__1); + end; + Tmp__1=Mixop(I__,FkL__); + Tmp__=Nohiddenpers2(Par__,Tmp__1,Fd__,1,Np__,Eps__); + if Mixlength(HIDDENDATA)>0 + BORDERHIDDENDATA=Mixjoin(BORDERHIDDENDATA,HIDDENDATA); + end; + if Mixlength(Tmp__)>0 + FsL__=Mixjoin(FsL__,Tmp__); + end; + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Borderrawdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Borderrawdata.bin Binary files differnew file mode 100644 index 00000000..fb44560f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Borderrawdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Borderrawdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Borderrawdata.sci new file mode 100755 index 00000000..657efc23 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Borderrawdata.sci @@ -0,0 +1,64 @@ +// 08.09.10 + +function FkL=Borderrawdata(varargin) + Nall=length(varargin); + FkL=varargin(1); + FdL=Fullformfunc(varargin(2)); + Tmp1=Mixop(2,FdL); + Tmp2=Mixop(3,FdL); + Tmp3=Mixop(4,FdL); + Xyzstr=[Tmp1,Tmp2,Tmp3]; + DrwS=Mixop(7,FdL); + Tmp=Mixop(5,FdL); + K=mtlb_findstr(Tmp,'='); + Uname=part(Tmp,1:K-1); + Urg=evstr(part(Tmp,K+1:length(Tmp))); + Tmp=Mixop(6,FdL); + K=mtlb_findstr(Tmp,'='); + Vname=part(Tmp,1:K-1); + Vrg=evstr(part(Tmp,K+1:length(Tmp))); + Np=[50,50]; + if Nall>=3 + Np=varargin(3); + if type(Np)==1 & length(Np)==1 + Np=[Np,Np]; + end; + end; + Um=Urg(1); UM=Urg(2); + Vm=Vrg(1); VM=Vrg(2); + EkL=[]; + Tmp=mtlb_findstr(DrwS,'e'); + if length(Tmp)~=0 + Tmp1=strsubst(Xyzstr,Uname,'('+string(UM)+')'); + Tmp2=Mixop(6,FdL); + Tmp3='N='+string(Np(2)); + Tmp=Spacecurve(Tmp1,Tmp2,Tmp3); + EkL=Mixadd(EkL,Tmp); + end; + Tmp=mtlb_findstr(DrwS,'n'); + if length(Tmp)~=0 + Tmp1=strsubst(Xyzstr,Vname,'('+string(VM)+')'); + Tmp2=Mixop(5,FdL); + Tmp3='N='+string(Np(1)); + Tmp=Spacecurve(Tmp1,Tmp2,Tmp3); + EkL=Mixadd(EkL,Tmp); + end; + Tmp=mtlb_findstr(DrwS,'w'); + if length(Tmp)~=0 + Tmp1=strsubst(Xyzstr,Uname,'('+string(Um)+')'); + Tmp2=Mixop(6,FdL); + Tmp3='N='+string(Np(2)); + Tmp=Spacecurve(Tmp1,Tmp2,Tmp3); + EkL=Mixadd(EkL,Tmp); + end; + Tmp=mtlb_findstr(DrwS,'s'); + if length(Tmp)~=0 + Tmp1=strsubst(Xyzstr,Vname,'('+string(Vm)+')'); + Tmp2=Mixop(5,FdL); + Tmp3='N='+string(Np(1)); + Tmp=Spacecurve(Tmp1,Tmp2,Tmp3); + EkL=Mixadd(EkL,Tmp); + end; + FkL=Mixjoin(FkL,EkL); +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Bowdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Bowdata.bin Binary files differnew file mode 100644 index 00000000..a5819013 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Bowdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Bowdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Bowdata.sci new file mode 100755 index 00000000..48154cf1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Bowdata.sci @@ -0,0 +1,45 @@ +// +// 08.05.22 +// 08.08.24 + +function Pd=Bowdata(varargin) + global BOWMIDDLE BOWSTART BOWEND + Nargs=length(varargin); + PA=varargin(1); + PB=varargin(2); + Cut=0; + D=1/2*Vecnagasa(PB-PA); + if Nargs>=3 + H=varargin(3)*D*0.2; + else + H=D*0.2; + end + H=min(H,D); + if Nargs>=4 + Cut=varargin(4); + end + Ydata=MakeBowdata(PA,PB,H); + C=Mixop(1,Ydata); + r=Mixop(2,Ydata); + R1=Mixop(3,Ydata); + R2=Mixop(4,Ydata); + Rng='R=['+string(R1)+','+string(R2)+']'; + Theta=(R1+R2)*0.5; + BOWMIDDLE=MixS([C(1)+r*cos(Theta),C(2)+r*sin(Theta)],Theta); + M=Mixop(1,BOWMIDDLE); + ThetaM=Mixop(2,BOWMIDDLE); + BOWSTART=PA; + BOWEND=PB; + if Cut==0 + Pd=Circledata(C,r,Rng); + else + Alpha=R1; Beta=ThetaM-Cut/(2*r); + Rng='R=['+string(Alpha)+','+string(Beta)+']'; + Pd=Circledata(C,r,Rng); + Alpha=ThetaM+Cut/(2*r); Beta=R2; + Rng='R=['+string(Alpha)+','+string(Beta)+']'; + Tmp=Circledata(C,r,Rng); + Pd=[Pd;%inf,%inf;Tmp]; + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Bowmiddle.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Bowmiddle.bin Binary files differnew file mode 100644 index 00000000..b212c380 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Bowmiddle.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Bowmiddle.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Bowmiddle.sci new file mode 100755 index 00000000..5157c111 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Bowmiddle.sci @@ -0,0 +1,53 @@ +// +// 08.05.22 +// 08.05.31 +// 09.08.12 + +function M=Bowmiddle(varargin) + global BOWMIDDLE; + Nargs=length(varargin); + if Nargs==0 + M=BOWMIDDLE; + return; + end; + if Nargs==1 + Bdata=varargin(1); + A=Bdata(1,:); + Dind=Dataindex(Bdata); + Dc=size(Dind,1); + Tmp=Dind(Dc,2); + B=Bdata(Tmp,:); + if Dc==1 + Tmp1=round(Tmp/2); + else + Tmp1=Dind(1,2); + end; + D=Bdata(Tmp1,:); + B=B-A; + D=D-A; + Tmp1=B(1)*D(2)-D(1)*B(2); + Tmp2=((B(1)^2+B(2)^2)*D(2)-B(2)*(D(1)^2+D(2)^2))/2; + Tmp3=-((B(1)^2+B(2)^2)*D(1)-B(1)*(D(1)^2+D(2)^2))/2; + C=[Tmp2,Tmp3]/Tmp1+A; + R=norm(C-A); + B=B+A; + V=(A+B)/2-C; + V=V/norm(V); + M=C+R*V; + else + A=varargin(1); B=varargin(2); + D=1/2*Vecnagasa(B-A); + H=0.2*D; + if length(varargin)>=3 + Tmp=varargin(3); + H=Tmp*D*0.2; + end + H=min(H,D); + Ydata=MakeBowdata(A,B,H); + C=Op(1,Ydata); + R=Op(2,Ydata); + T=(Op(3,Ydata)+Op(4,Ydata))/2; + P=C+R*[cos(T),sin(T)]; + M=MixS(P,T); + end +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Bowname.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Bowname.bin Binary files differnew file mode 100644 index 00000000..7286b547 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Bowname.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Bowname.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Bowname.sci new file mode 100755 index 00000000..f57c4961 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Bowname.sci @@ -0,0 +1,40 @@ +// +// 08.08.24 +// 09.08.12 +// 09.08.13 +// 13.11.30 Directon supported + +function Bowname(varargin) + global BOWMIDDLE; + Nargs=length(varargin); + Siki=varargin(Nargs); + Nargs=Nargs-1; // 13.11.30 + Dr="c"; + if Nargs>=1 then + Tmp=varargin(Nargs); + if type(Tmp)==10 + Dr=Tmp; + Nargs=Nargs-1; + end + end + if Nargs==0 // 13.11.30 + P=Mixop(1,BOWMIDDLE); + elseif Nargs==1 // 13.11.30 + Bdata=varargin(1); + P=Bowmiddle(Bdata); + else + A=varargin(1); B=varargin(2); + D=1/2*Vecnagasa(B-A); + Tmp=varargin(3); + if type(Tmp)==10 + H=D*0.2; + else + H=Tmp*D*0.2; + end; + H=min(H,D); + Ydata=MakeBowdata(A,B,H); + Tmp=Bowmiddle(Ydata); + P=Mixop(1,Tmp); + end + Expr(P,Dr,Siki); //13.11.30 +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Bownamerot.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Bownamerot.bin Binary files differnew file mode 100644 index 00000000..b66d56a9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Bownamerot.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Bownamerot.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Bownamerot.sci new file mode 100755 index 00000000..8d1edf78 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Bownamerot.sci @@ -0,0 +1,77 @@ +// 08.05.31 +// 08.08.24 +// 09.08.12 +// 09.08.13 +// 13.12.15 tiny move supported +// A,B type no longer supported + +function Bownamerot(varargin) + global Wfile FID BOWMIDDLE BOWSTART BOWEND; + Nargs=length(varargin); + Eps=10^(-6); + Flg=1; + Tmp=varargin(Nargs); + if type(Tmp)==1 & length(Tmp)==1 & Tmp<0 + Flg=Tmp; + Nargs=Nargs-1; + end; + Siki=varargin(Nargs); + Nargs=Nargs-1; + Dr="c"; + if Nargs>=1 then + Tmp=varargin(Nargs); + if type(Tmp)==10 + Dr=Tmp; + Nargs=Nargs-1; + end + end + if Nargs==0 + P=Mixop(1,BOWMIDDLE); + A=BOWSTART; + B=BOWEND; + else + Bdata=varargin(1); + P=Bowmiddle(Bdata); + A=Bdata(1,:); + B=Bdata(size(Bdata,1),:); + Tm=0; Tv=0; + if Nargs>1 then // 13.12.15 + Tm=varargin(2); + if Nargs>2 then + Tv=varargin(3); + end + end + end; +// elseif Nargs==1 +// Bdata=varargin(1); +// P=Bowmiddle(Bdata); +// A=Bdata(1,:); +// B=Bdata(size(Bdata,1),:); +// else +// A=varargin(1); B=varargin(2); +// D=1/2*Vecnagasa(B-A); +// Tmp=varargin(3); +// if type(Tmp)==10 +// H=0.2*D; Siki=Tmp; +// else +// H=Tmp*D*0.2; Siki=varargin(4); +// end +// H=min(H,D); +// Ydata=MakeBowdata(A,B,H); +// C=Op(1,Ydata); +// R=Op(2,Ydata); +// T=(Op(3,Ydata)+Op(4,Ydata))/2; +// P=C+R*[cos(T),sin(T)]; +// end; + if A(1)>B(1)+Eps + Tmp=A; + A=B; + B=Tmp; + end; + if Flg>0 + Tmp=B-A; + else + Tmp=A-B; + end; + Exprrot(P,Tmp,Tm,Tv,Siki); +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CalcHeight.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CalcHeight.bin Binary files differnew file mode 100644 index 00000000..dd6d1a9c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CalcHeight.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CalcHeight.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CalcHeight.sci new file mode 100755 index 00000000..aa1216dd --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CalcHeight.sci @@ -0,0 +1,31 @@ +function CalcHeight(Hoko,Moji) + global Wfile FID; + D=0; + Tmp=ascii(Hoko); + H=char(Tmp(1)); + Str=['\settoheight{\Height}{'+Moji+'}']; + Str=[Str,'\settodepth{\Depth}{'+Moji+'}']; + if H=='n' + Str=[Str,'\setlength{\Height}{\Depth}']; + end + if H=='s' + Str=[Str,'\setlength{\Height}{-\Height}']; + end + if H=='c' + Str=[Str,'\setlength{\Height}{-0.5\Height}']; + Str=[Str,'\setlength{\Depth}{0.5\Depth}']; + Str=[Str,'\addtolength{\Height}{\Depth}']; + end + if Wfile=='default' + for I=1:size(Str,2) + mprintf('%s',Str(I)); + end + mprintf('%s\n','%'); + else + for I=1:size(Str,2) + mfprintf(FID,'%s',Str(I)); + end + mfprintf(FID,'%s\n','%'); + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CalcWidth.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CalcWidth.bin Binary files differnew file mode 100644 index 00000000..cba76bac --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CalcWidth.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CalcWidth.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CalcWidth.sci new file mode 100755 index 00000000..111e9b3b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CalcWidth.sci @@ -0,0 +1,26 @@ +function CalcWidth(Hoko,Moji) + global Wfile FID + D=0; + Tmp=ascii(Hoko); + H=char(Tmp(2)); + if H=='e' + D=0; + end + if H=='w' + D=-1.0; + end + if H=='c' + D=-0.5; + end + Str1='\settowidth{\Width}{'+Moji+'}'; + Tmp=string(D); + Str2='\setlength{\Width}{'+Tmp+'\Width}'; + if Wfile=='default' + mprintf('%s',Str1); + mprintf('%s%s\n',Str2,'%'); + else + mfprintf(FID,'%s',Str1); + mfprintf(FID,'%s%s\n',Str2,'%'); + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Calcfun.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Calcfun.bin Binary files differnew file mode 100644 index 00000000..4fdb507e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Calcfun.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Calcfun.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Calcfun.sci new file mode 100755 index 00000000..30c646a6 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Calcfun.sci @@ -0,0 +1,9 @@ +// 08.05.30 + +function PL=Calcfun(Siki,Namae,Atai) + execstr(Namae+'=Atai'); + Tmp='XY='+Siki; + execstr(Tmp); + PL=[Atai(:,1),XY(:,2)]; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CameraCurve.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CameraCurve.bin Binary files differnew file mode 100644 index 00000000..5227aec7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CameraCurve.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CameraCurve.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CameraCurve.sci new file mode 100755 index 00000000..fcc7687c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CameraCurve.sci @@ -0,0 +1,24 @@ +// 08.08.12
+// 08.10.07
+// 09.06.02
+
+function AnsL=CameraCurve(Curve)
+ Eps=10^(-6);
+ for I=1:size(Curve,1)
+ P=Curve(I,:);
+ x=P(1); y=P(2); z=P(3);
+ if x~=%inf
+ Tmp=Perspt(P);
+ if I==1
+ AnsL=[Tmp];
+ else
+ Tmp1=AnsL(size(AnsL,1),:);
+ if Tmp1(1)==%inf | norm(Tmp-Tmp1)>Eps
+ AnsL=[AnsL;Tmp];
+ end;
+ end;
+ else
+ AnsL=[AnsL;%inf,%inf];
+ end;
+ end;
+endfunction
diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CameracoordCurve.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CameracoordCurve.bin Binary files differnew file mode 100644 index 00000000..dfe76941 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CameracoordCurve.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CameracoordCurve.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CameracoordCurve.sci new file mode 100755 index 00000000..310ac166 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CameracoordCurve.sci @@ -0,0 +1,28 @@ +// 08.08.14 +// 08.10.16 +// 09.09.25 + +function Out=CameracoordCurve(Curve) + global FocusPoint EyePoint; + Out=[]; // 09.09.25 + for J=1:size(Curve,1) + P=Curve(J,:); + Tmp=P-FocusPoint; + X1=Tmp(1); Y1=Tmp(2); Z1=Tmp(3); + Tmp=EyePoint-FocusPoint; + E1=Tmp(1); F1=Tmp(2); G1=Tmp(3); + Ca=E1/sqrt(E1^2+F1^2); + Sa=F1/sqrt(E1^2+F1^2); + X2=X1*Ca+Y1*Sa; Y2=-X1*Sa+Y1*Ca; Z2=Z1; + E2=E1*Ca+F1*Sa; F2=-E1*Sa+F1*Ca; G2=G1; + Cb=E2/sqrt(E2^2+G2^2); + Sb=G2/sqrt(E2^2+G2^2); + X3=X2*Cb+Z2*Sb; Y3=Y2; Z3=-X2*Sb+Z2*Cb; + E3=E2*Cb+G2*Sb; F3=F2; G3=-E2*Sb+G2*Cb; + Xz=X3; + Yz=E3/(E3-X3)*Y3; + Zz=E3/(E3-X3)*Z3; + Out=[Out;Yz,Zz,Xz]; + end; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Cancoordpara.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Cancoordpara.bin Binary files differnew file mode 100644 index 00000000..58fd0152 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Cancoordpara.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Cancoordpara.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Cancoordpara.sci new file mode 100644 index 00000000..1574d812 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Cancoordpara.sci @@ -0,0 +1,11 @@ +// 13.08.13 + +function Out=Cancoordpara(P) + global PHI THETA; + Xz=P(1); Yz=P(2); Zz=P(3); + X=-Xz*sin(PHI)-Yz*cos(PHI)*cos(THETA)+Zz*cos(PHI)*sin(THETA); + Y=Xz*cos(PHI)-Yz*sin(PHI)*cos(THETA)+Zz*sin(PHI)*sin(THETA); + Z=Yz*sin(THETA)+Zz*cos(THETA); + Out=[X,Y,Z]; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Cancoordpers.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Cancoordpers.bin Binary files differnew file mode 100644 index 00000000..57e2e49c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Cancoordpers.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Cancoordpers.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Cancoordpers.sci new file mode 100755 index 00000000..b63aba5c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Cancoordpers.sci @@ -0,0 +1,22 @@ +// 08.08.12 + +function Out=Cancoordpers(P) + global EyePoint FocusPoint; + Tmp=EyePoint-FocusPoint; + E1=Tmp(1); F1=Tmp(2); G1=Tmp(3); + Ca=E1/sqrt(E1^2+F1^2); + Sa=F1/sqrt(E1^2+F1^2); + E2=E1*Ca+F1*Sa; F2=-E1*Sa+F1*Ca; G2=G1; + Cb=E2/sqrt(E2^2+G2^2); + Sb=G2/sqrt(E2^2+G2^2); + E3=E2*Cb+G2*Sb; F3=F2; G3=-E2*Sb+G2*Cb; + Xz=P(3); Yz=P(1); Zz=P(2); + X3=Xz; Y3=Yz*(E3-Xz)/E3; Z3=Zz*(E3-Xz)/E3; + X2=X3*Cb-Sb*Z3; Y2=Y3; Z2=Cb*Z3+Sb*X3; + X1=X2*Ca-Sa*Y2; Y1=Ca*Y2+Sa*X2; Z1=Z2; + X=X1+FocusPoint(1); + Y=Y1+FocusPoint(2); + Z=Z1+FocusPoint(3); + Out=[X,Y,Z]; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Circledata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Circledata.bin Binary files differnew file mode 100644 index 00000000..0b9ca934 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Circledata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Circledata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Circledata.sci new file mode 100755 index 00000000..2148c061 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Circledata.sci @@ -0,0 +1,32 @@ +// s:2008,05.12 +// e:2014.09.08 [A,B] supported +// e:2014.10.24 N,R => N__, ... + +function P=Circledata(varargin) + Nargs=length(varargin); + C=varargin(1); + if length(C)==4 then + ra=norm(C(1:2)-C(3:4)); + C=C(1:2); + Nop=2; + else + ra=varargin(2); + Nop=3; + end; + R__=[0,2*%pi]; + N__=50; // Numpoints + for I=Nop:Nargs + Tmp=varargin(I); + K=mtlb_findstr(Tmp,'='); + Tmp1=strsplit(Tmp,[K-1,K]); + Tmp2=ascii(Tmp1(1,1)); + Lhs=char(Tmp2(1)); + Str=Lhs+'__='+Tmp1(3,1); + execstr(Str); + end; + Dt=(R__(2)-R__(1))/N__; + T=R__(1):Dt:R__(2); + X=C(1)+ra*cos(T); + Y=C(2)+ra*sin(T); + P=[X',Y']; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Clipindomain.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Clipindomain.bin Binary files differnew file mode 100644 index 00000000..374f6316 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Clipindomain.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Clipindomain.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Clipindomain.sci new file mode 100755 index 00000000..bf9572c5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Clipindomain.sci @@ -0,0 +1,58 @@ +// 08.09.10 +// 08.09.16 +// 09.12.31 (gsort) + +function OutL=Clipindomain(ObjL,FigL) + EEps=10^(-4); + Eps=0.01; + Eps2=0.2; + Bdy=Kyoukai(FigL); + if Mixlength(Bdy)>=2 + Fbdy=Joincrvs(FigL) + else + Fbdy=Mixop(1,FigL); + end; + if Mixtype(ObjL)==1 + ObjL=Mix(ObjL) + end; + if Mixtype(FigL)==1 + FigL=Mix(FigL) + end; + OutL=[]; + for Nobj=1:Mixlength(ObjL); + Obj=Mixop(Nobj,ObjL); + ParL=[1,Numptcrv(Obj)]; + Tmp=IntersectcrvsPp(Obj,Fbdy,Eps,Eps2); + for J=1:Mixlength(Tmp) + Tmp1=Mixop(J,Tmp); + ParL=[ParL,Mixop(2,Tmp1)]; + end; + ParL=gsort(ParL); + ParL=ParL(length(ParL):-1:1); + Tmp=[1]; + for I=1:length(ParL) + Tmp1=Tmp(length(Tmp)); + Tmp2=ParL(I); + if Tmp2-Tmp1>EEps + Tmp=[Tmp,Tmp2]; + end; + end; + ParL=Tmp; + Tmp1=ParL(length(ParL)); + Tmp2=Numptcrv(Obj); + if abs(Tmp1-Tmp2)<Eps + ParL=[ParL(1:length(ParL)-1),Tmp2]; + end; + Fig=[]; + for N=1:length(ParL)-1 + Tmp=(ParL(N)+ParL(N+1))*0.5; + Tmp=PointonCurve(Tmp,Obj); + Tmp=Naigai(Tmp,Bdy); + Tmp1=modulo(sum(Tmp),2); + if Tmp1==0 continue; end; + Fig=Mixadd(Fig,Partcrv(ParL(N),ParL(N+1),Obj)); + end; + OutL=Mixjoin(OutL,Fig); + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Closefile.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Closefile.bin Binary files differnew file mode 100644 index 00000000..991de452 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Closefile.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Closefile.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Closefile.sci new file mode 100755 index 00000000..f2928103 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Closefile.sci @@ -0,0 +1,24 @@ +// +// 13.05.19 openfile error tackled +// 13.11.01 Endpicture joined optionally +// 13.11.05 debugged + +function Closefile(varargin) + global Wfile FID; + if length(varargin)>=1 then + Pa=varargin(1); + if type(Pa)==10 then + if Pa=="1" then // 2013.11.05 + Endpicture(1) + end; + if Pa=="0" then + Endpicture(0) + end // + end + end + if Wfile~='default' then + mclose(FID); + FID=[]; // 2013.05.19 + end + Wfile='default'; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Closeobj.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Closeobj.bin Binary files differnew file mode 100644 index 00000000..d8f4d64d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Closeobj.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Closeobj.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Closeobj.sci new file mode 100644 index 00000000..da7c3850 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Closeobj.sci @@ -0,0 +1,10 @@ +// s : 2014.06.22 + +function Closeobj() + global Wfile FID; + if Wfile~='default' then + mclose(FID); + FID=[]; + end; + Wfile='default'; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Closepar.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Closepar.bin Binary files differnew file mode 100644 index 00000000..0e0991c3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Closepar.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Closepar.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Closepar.sci new file mode 100755 index 00000000..64b93e1a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Closepar.sci @@ -0,0 +1,15 @@ +// 08.05.31 + +function Closepar() + global Wfile FID + S='\end{minipage}' + if Wfile=='default' + mprintf('%s\n','%'); + mprintf('%s',S); + else + mfprintf(FID,'%s\n','%'); + mfprintf(FID,'%s',S); + end + Closephr(); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Closephr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Closephr.bin Binary files differnew file mode 100644 index 00000000..6bffbf74 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Closephr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Closephr.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Closephr.sci new file mode 100755 index 00000000..39b363f6 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Closephr.sci @@ -0,0 +1,13 @@ +// 08.05.31 + +function Closephr() + global Wfile FID; + if Wfile=='default' + mprintf('%s\n','%'); + mprintf('%s\n','}%'); + else + mfprintf(FID,'%s\n','%'); + mfprintf(FID,'%s\n','}%'); + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Closepicture.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Closepicture.bin Binary files differnew file mode 100644 index 00000000..c0c13ad5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Closepicture.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Closepicture.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Closepicture.sci new file mode 100755 index 00000000..a3f345cb --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Closepicture.sci @@ -0,0 +1,22 @@ +// +// 08.12.17 +// 09.02.20 +// 10.04.12 + +function Closepicture(varargin) + global Wfile FID MEMORI MEMORINow ULEN MilliIn; + Nargs=length(varargin); + if Nargs==0 + Drwxy(); + elseif varargin(1)==1 + Drwxy(); + end + if Wfile=='default' + mprintf('%s','\end{picture}}%'); + else + mfprintf(FID,'%s','\end{picture}}%'); + end +// MEMORI=MEMORINow*1000/2.54/MilliIn; + Setunitlen('1cm'); +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Connectseg.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Connectseg.bin Binary files differnew file mode 100644 index 00000000..7504d934 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Connectseg.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Connectseg.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Connectseg.sci new file mode 100755 index 00000000..2abe8c90 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Connectseg.sci @@ -0,0 +1,76 @@ +// 08.09.09 +// 08.09.10 +// 08.09.24 + +function PlotL=Connectseg(varargin) + Nargs=length(varargin); + Pdata=varargin(1); + Eps=10^(-5); + if Nargs>=2 + Eps=varargin(2) + end; + if Mixtype(Pdata)~=1 + Tmp=Mixop(1,Pdata); + Tmp=size(Tmp,2); + Sep=%inf*ones(1,Tmp); + Tmp=[]; + for I=1:Mixlength(Pdata) + Tmp1=Mixop(I,Pdata); + Tmp=[Tmp;Sep;Tmp1]; + end; + Pdata=Tmp(2:size(Tmp,1),:); + end; + Din=Dataindex(Pdata); + PlotL=[]; + Qd=Pdata(Din(1,1):Din(1,2),:); + Din=Din(2:size(Din,1),:); + N=size(Din,1); + while N>0 + Ah=Qd(1,:);Ao=Qd(size(Qd,1),:); + Flg=0; + for J=1:N + St=Din(J,1); + En=Din(J,2); + P=Pdata(St,:); + Q=Pdata(En,:); + if norm(P-Ao)<Eps + Tmp=Pdata(St+1:En,:); + Qd=[Qd;Tmp]; + Din=[Din(1:J-1,:);Din(J+1:N,:)]; + Flg=1; + break; + end; + if norm(Q-Ao)<Eps + Tmp=Pdata(En-1:-1:St,:); + Qd=[Qd;Tmp]; + Din=[Din(1:J-1,:);Din(J+1:N,:)]; + Flg=1; + break; + end; + if norm(P-Ah)<Eps + Tmp=Pdata(En:-1:St+1,:); + Qd=[Tmp;Qd]; + Din=[Din(1:J-1,:);Din(J+1:N,:)]; + Flg=1; + break; + end; + if norm(Q-Ah)<Eps + Tmp=Pdata(St:En-1,:); + Qd=[Tmp;Qd]; + Din=[Din(1:J-1,:);Din(J+1:N,:)]; + Flg=1; + break; + end; + end; + if Flg==0 + PlotL=Mixadd(PlotL,Qd); + Qd=Pdata(Din(1,1):Din(1,2),:); + Din=Din(2:N,:); + end; + N=size(Din,1); + end; + if size(Qd,1)>0 + PlotL=Mixadd(PlotL,Qd); + end; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crossprod.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crossprod.bin Binary files differnew file mode 100644 index 00000000..c22f1e9e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crossprod.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crossprod.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crossprod.sci new file mode 100755 index 00000000..ab4d55b5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crossprod.sci @@ -0,0 +1,13 @@ +// 09.10.0 + +function Out=Crossprod(a,b) + if length(a)==3 + Tmp1=a(2)*b(3)-a(3)*b(2); + Tmp2=a(3)*b(1)-a(1)*b(3); + Tmp3=a(1)*b(2)-a(2)*b(1); + Out=[Tmp1,Tmp2,Tmp3]; + else + Out=a(1)*b(2)-a(2)*b(1); + end; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crv3onsfHiddenData.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crv3onsfHiddenData.bin Binary files differnew file mode 100644 index 00000000..9de876b4 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crv3onsfHiddenData.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crv3onsfHiddenData.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crv3onsfHiddenData.sci new file mode 100755 index 00000000..07c17303 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crv3onsfHiddenData.sci @@ -0,0 +1,7 @@ +// 08.09.19 + +function Out=Crv3onsfHiddenData() + global CRV3ONSFHIDDENDATA + Out=CRV3ONSFHIDDENDATA; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crv3onsfparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crv3onsfparadata.bin Binary files differnew file mode 100644 index 00000000..b2cafb90 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crv3onsfparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crv3onsfparadata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crv3onsfparadata.sci new file mode 100755 index 00000000..ba168b71 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crv3onsfparadata.sci @@ -0,0 +1,49 @@ +// 08.09.16 +// 08.10.11 +// 08.10.15 +// 10.02.16 Eps + +function Out=Crv3onsfparadata(varargin) + global PARTITIONPT HIDDENDATA CRV3ONSFHIDDENDATA + Nargs=length(varargin); + Fk=varargin(1); + Fbdy=Projpara(varargin(2)); + Fd=varargin(3); N=4; + FdL=Fullformfunc(Fd); + Fxy=Mixop(1,FdL); + Np=[50,50]; + if Nargs>=N + Np=varargin(N); N=N+1; + if type(Np)==1 & length(Np)==1 + Np=[Np,Np]; + end; + end; + Eps=[0.05,1]; // + if Nargs>=N + Eps=varargin(N); + end; + if length(Eps)==1 // + Eps=[Eps,1]; // + end; // + Eps2=0.2; + if Nargs>=N+1 + Eps2=varargin(N+1); + end; + Tmp=Mixop(2,Fd); + K=mtlb_findstr(Tmp,'='); + Xname=part(Tmp,1:K-1); + Tmp=Mixop(3,Fd); + K=mtlb_findstr(Tmp,'='); + Yname=part(Tmp,1:K-1); + Fbdxy=Makexybdy(Fd,Np); + Tmp=Projpara(Fk); + Par=Partitionseg(Tmp,Fbdy,Eps(1),Eps2); // + if Fxy=='p' + Out=Nohiddenpara2(Par,Fk,Fd,1,Np,Eps); + else + Tmp=Mix(Fxy,Fbdxy,Xname,Yname); + Out=Nohiddenpara(Par,Fk,Tmp); + end; + CRV3ONSFHIDDENDATA=HIDDENDATA; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crv3onsfpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crv3onsfpersdata.bin Binary files differnew file mode 100644 index 00000000..55aa8c1f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crv3onsfpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crv3onsfpersdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crv3onsfpersdata.sci new file mode 100755 index 00000000..5fc40737 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crv3onsfpersdata.sci @@ -0,0 +1,50 @@ +// 08.09.21 +// 08.10.11 +// 08.10.15 +// 10.02.16 Eps + +function Out=Crv3onsfpersdata(varargin) + global PARTITIONPT HIDDENDATA CRV3ONSFHIDDENDATA + Nargs=length(varargin); + Fk=varargin(1); + Fbdy=Projpers(varargin(2)); + Fd=varargin(3); N=4; + FdL=Fullformfunc(Fd); + Fxy=Mixop(1,FdL); + Np=[50,50]; + if Nargs>=N + Np=varargin(N); N=N+1; + if type(Np)==1 & length(Np)==1 + Np=[Np,Np]; + end; + end; + Eps=[0.05,1]; // + if Nargs>=N + Eps=varargin(N); + end; + if length(Eps)==1 // + Eps=[Eps,1]; // + end; // + Eps2=0.2; + if Nargs>=N+1 + Eps2=varargin(N+1); + end; + Tmp=Mixop(2,Fd); + K=mtlb_findstr(Tmp,'='); + Xname=part(Tmp,1:K-1); + Tmp=Mixop(3,Fd); + K=mtlb_findstr(Tmp,'='); + Yname=part(Tmp,1:K-1); + Fbdxy=Makexybdy(Fd,Np); + Tmp=Projpers(Fk); + Par=Partitionseg(Tmp,Fbdy,Eps(1),Eps2); // + if Fxy=='p' + Out=Nohiddenpers2(Par,Fk,Fd,1,Np,Eps); + else + Tmp=Mix(Fxy,Fbdxy,Xname,Yname); + Out=Nohiddenpers(Par,Fk,Tmp); + end; + + CRV3ONSFHIDDENDATA=HIDDENDATA; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CrvonsfHiddenData.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CrvonsfHiddenData.bin Binary files differnew file mode 100644 index 00000000..5269bbf1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CrvonsfHiddenData.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CrvonsfHiddenData.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CrvonsfHiddenData.sci new file mode 100755 index 00000000..9d97b3ce --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CrvonsfHiddenData.sci @@ -0,0 +1,7 @@ +// 08.09.19 + +function Out=CrvonsfHiddenData() + global CRVONSFHIDDENDATA + Out=CRVONSFHIDDENDATA; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crvonsfparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crvonsfparadata.bin Binary files differnew file mode 100644 index 00000000..69551af4 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crvonsfparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crvonsfparadata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crvonsfparadata.sci new file mode 100755 index 00000000..a530284b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crvonsfparadata.sci @@ -0,0 +1,90 @@ +// 08.09.16 +// 08.10.11 +// 08.10.15 +// 10.02.16 Eps +// 13.10.22 ( __ added to varibles ) + +function OutL__=Crvonsfparadata(varargin) + global PARTITIONPT HIDDENDATA CRVONSFHIDDENDATA + Nargs__=length(varargin); + Eps__0=10^(-4); + Figuv__=varargin(1); + Fbdy__=Projpara(varargin(2)); + Fd__=varargin(3); N__=4; + Fd__L=Fullformfunc(Fd__); + Fxy__=Mixop(1,Fd__L); + Xf__=Mixop(2,Fd__L); + Yf__=Mixop(3,Fd__L); + Zf__=Mixop(4,Fd__L); + Np__=[50,50]; + if Nargs__>=N__ + Np__=varargin(N__); N__=N__+1; + if type(Np__)==1 & length(Np__)==1 + Np__=[Np__,Np__]; + end; + end; + Eps__=[0.05,1]; // + if Nargs__>=N__ + Eps__=varargin(N__); + end; + if length(Eps__)==1 + Eps__=[Eps__,1]; + end; + Eps__2=0.2; + if Nargs__>=N__+1 + Eps__2=varargin(N__+1); + end; + Tmp__=Mixop(2,Fd__); + K__=mtlb_findstr(Tmp__,'='); + Xname__=part(Tmp__,1:K__-1); + Tmp__=Mixop(3,Fd__); + K__=mtlb_findstr(Tmp__,'='); + Yname__=part(Tmp__,1:K__-1); + Tmp__=Mixop(5,Fd__L); + K__=mtlb_findstr(Tmp__,'='); + Uname__=part(Tmp__,1:K__-1); + Urg__=evstr(part(Tmp__,K__+1:length(Tmp__))); + Tmp__=Mixop(6,Fd__L); + K__=mtlb_findstr(Tmp__,'='); + Vname__=part(Tmp__,1:K__-1); + Vrg__=evstr(part(Tmp__,K__+1:length(Tmp__))); + Fbdxy__=Makexybdy(Fd__,Np__); + Fbdy__uv=Mixop(8,Fd__L); + if Fbdy__uv==[] + Fbdy__uv=Mix(Framedata(Urg__,Vrg__)); + end; + FigL__=Clipindomain(Figuv__,Fbdy__uv); + CRVONSFHIDDENDATA=[]; + OutL__=[]; + for N__=1:Mixlength(FigL__) + PtL__=Mixop(N__,FigL__); + Tmp__=[]; + for I__=1:size(PtL__,1) + P__=PtL__(I__,:); + Tmp__1=strsubst(Xf__,Uname__,'('+string(P__(1))+')'); + Tmp__1=strsubst(Tmp__1,Vname__,'('+string(P__(2))+')'); + Tmp__1=evstr(Tmp__1); + Tmp__2=strsubst(Yf__,Uname__,'('+string(P__(1))+')'); + Tmp__2=strsubst(Tmp__2,Vname__,'('+string(P__(2))+')'); + Tmp__2=evstr(Tmp__2); + Tmp__3=strsubst(Zf__,Uname__,'('+string(P__(1))+')'); + Tmp__3=strsubst(Tmp__3,Vname__,'('+string(P__(2))+')'); + Tmp__3=evstr(Tmp__3); + Tmp__=[Tmp__,[Tmp__1,Tmp__2,Tmp__3]]; + end; + Fk__=Spaceline(Tmp__); + Par__=Partitionseg(Projpara(Fk__),Fbdy__,Eps__(1),Eps__2); // + if Fxy__=='p' + Tmp__=Nohiddenpara2(Par__,Fk__,Fd__,1,Np__,Eps__); + else + Tmp__1=Mix(Fxy__,Fbdxy__,Xname__,Yname__); + Tmp__=Nohiddenpara(Par__,Fk__,Tmp__1); + end; + if Tmp__~=[] + OutL__=Mixjoin(OutL__,Tmp__); + end; + if HIDDENDATA~=[] + CRVONSFHIDDENDATA=Mixjoin(CRVONSFHIDDENDATA,HIDDENDATA); + end; + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crvonsfpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crvonsfpersdata.bin Binary files differnew file mode 100644 index 00000000..48451c6b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crvonsfpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crvonsfpersdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crvonsfpersdata.sci new file mode 100755 index 00000000..f3bdf700 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crvonsfpersdata.sci @@ -0,0 +1,86 @@ +// 08.09.21 +// 08.10.11 +// 08.10.15 +// 10.02.16 Eps + +function OutL=Crvonsfpersdata(varargin) + global PARTITIONPT HIDDENDATA CRVONSFHIDDENDATA + Nargs=length(varargin); + Eps0=10^(-4); + Figuv=varargin(1); + Fbdy=Projpers(varargin(2)); + Fd=varargin(3); N=4; + FdL=Fullformfunc(Fd); + Fxy=Mixop(1,FdL); + Xf=Mixop(2,FdL); + Yf=Mixop(3,FdL); + Zf=Mixop(4,FdL); + Np=[50,50]; + if Nargs>=N + Np=varargin(N); N=N+1; + if type(Np)==1 & length(Np)==1 + Np=[Np,Np]; + end; + end; + Eps=[0.05,1]; // + if Nargs>=N + Eps=varargin(N); + end; + if length(Eps)==1 + Eps=[Eps,1]; + end; + Eps2=0.2; + if Nargs>=N+1 + Eps2=varargin(N+1); + end; + Tmp=Mixop(2,Fd); + K=mtlb_findstr(Tmp,'='); + Xname=part(Tmp,1:K-1); + Tmp=Mixop(3,Fd); + K=mtlb_findstr(Tmp,'='); + Yname=part(Tmp,1:K-1); + Tmp=Mixop(5,FdL); + K=mtlb_findstr(Tmp,'='); + Uname=part(Tmp,1:K-1); + Urg=evstr(part(Tmp,K+1:length(Tmp))); + Tmp=Mixop(6,FdL); + K=mtlb_findstr(Tmp,'='); + Vname=part(Tmp,1:K-1); + Vrg=evstr(part(Tmp,K+1:length(Tmp))); + Fbdxy=Makexybdy(Fd,Np); + Fbdyuv=Mixop(8,FdL); + if Fbdyuv==[] + Fbdyuv=Mix(Framedata(Urg,Vrg)); + end; + FigL=Clipindomain(Figuv,Fbdyuv); + CRVONSFHIDDENDATA=[]; + OutL=[]; + for N=1:Mixlength(FigL) + PtL=Mixop(N,FigL); + Tmp=[]; + for I=1:size(PtL,1) + P=PtL(I,:); + Tmp1=strsubst(Xf,Uname,'('+string(P(1))+')'); + Tmp1=strsubst(Tmp1,Vname,'('+string(P(2))+')'); + Tmp1=evstr(Tmp1); + Tmp2=strsubst(Yf,Uname,'('+string(P(1))+')'); + Tmp2=strsubst(Tmp2,Vname,'('+string(P(2))+')'); + Tmp2=evstr(Tmp2); + Tmp3=strsubst(Zf,Uname,'('+string(P(1))+')'); + Tmp3=strsubst(Tmp3,Vname,'('+string(P(2))+')'); + Tmp3=evstr(Tmp3); + Tmp=[Tmp,[Tmp1,Tmp2,Tmp3]]; + end; + Fk=Spaceline(Tmp); + Par=Partitionseg(Projpers(Fk),Fbdy,Eps(1),Eps2); // + if Fxy=='p' + Tmp=Nohiddenpers2(Par,Fk,Fd,1,Np,Eps); + else + Tmp1=Mix(Fxy,Fbdxy,Xname,Yname); + Tmp=Nohiddenpers(Par,Fk,Tmp1); + end; + OutL=Mixjoin(OutL,Tmp); + CRVONSFHIDDENDATA=Mixjoin(CRVONSFHIDDENDATA,HIDDENDATA); + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CrvsfHiddenData.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CrvsfHiddenData.bin Binary files differnew file mode 100644 index 00000000..110cf0de --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CrvsfHiddenData.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CrvsfHiddenData.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CrvsfHiddenData.sci new file mode 100755 index 00000000..0081b20c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CrvsfHiddenData.sci @@ -0,0 +1,7 @@ +// 08.10.24 + +function Out=CrvsfHiddenData() + global CRVSFHIDDENDATA + Out=CRVSFHIDDENDATA; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crvsfparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crvsfparadata.bin Binary files differnew file mode 100644 index 00000000..b759eff5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crvsfparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crvsfparadata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crvsfparadata.sci new file mode 100755 index 00000000..a87506d2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crvsfparadata.sci @@ -0,0 +1,81 @@ +// 08.10.24 +// 08.10.25 +// 08.10.26 +// 08.10.27 +// 09.06.02 +// 09.12.31 (gsort) +// 10.02.16 + +function Out=Crvsfparadata(varargin) + global PARTITIONPT HIDDENDATA CRVSFHIDDENDATA + Nargs=length(varargin); + Sepflg=0; + Tmp=varargin(Nargs); + if type(Tmp)==1 & Tmp<=0 + Sepflg=1; + Nargs=Nargs-1; + end; + Fk=varargin(1); + if Mixtype(Fk)==1 + FkL=Mix(Fk); + else + FkL=Fk; + end; + Fbdy=Projpara(varargin(2)); + Fd=varargin(3); N=4; + FdL=Fullformfunc(Fd); + Fxy=Mixop(1,FdL); + Np=[50,50]; + if Nargs>=N + Np=varargin(N); N=N+1; + if type(Np)==1 & length(Np)==1 + Np=[Np,Np]; + end; + end; + Eps=[0.05,1]; // + if Nargs>=N + Eps=varargin(N); + end; + if length(Eps)==1 // + Eps=[Eps,1]; // + end; // + Eps2=0.2; + if Nargs>=N+1 + Eps2=varargin(N+1); + end; + Tmp=Mixop(2,Fd); + K=mtlb_findstr(Tmp,'='); + Xname=part(Tmp,1:K-1); + Tmp=Mixop(3,Fd); + K=mtlb_findstr(Tmp,'='); + Yname=part(Tmp,1:K-1); + Out=[]; + CRVSFHIDDENDATA=[]; + for Nn=1:Mixlength(FkL) + Fk=Mixop(Nn,FkL); + Tmp=Projpara(Fk); + Par=Partitionseg(Tmp,Fbdy,Eps(1),Eps2); // + if Sepflg==0 + for I=1:Numptcrv(Fk)-1 + Pa=Ptcrv(I,Fk); + Pb=Ptcrv(I+1,Fk); + PtL=Meetpoints(Pa,Pb,Fd,1,Np,Eps(1)); // + for J=1:Mixlength(PtL) + Tmp=Mixop(J,PtL); + Tmp=Parapt(Tmp); + Tmp1=ParamonCurve(Tmp,I,Projpara(Fk)); + Tmp2=min(abs(Par-Tmp1)); + if Tmp2*norm(Parapt(Pb-Pa))>Eps (1) // + Par=[Par,Tmp1]; + end; + end; + Par=gsort(Par); + Par=Par(length(Par):-1:1); + end; + end; + Tmp1=Nohiddenpara2(Par,Fk,Fd,1,Np,Eps); + Out=Mixjoin(Out,Tmp1); + CRVSFHIDDENDATA=Mixjoin(CRVSFHIDDENDATA,HIDDENDATA); + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crvsfpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crvsfpersdata.bin Binary files differnew file mode 100644 index 00000000..af00090e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crvsfpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crvsfpersdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crvsfpersdata.sci new file mode 100755 index 00000000..7e24efcb --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Crvsfpersdata.sci @@ -0,0 +1,80 @@ +// 08.10.24 +// 08.10.25 +// 08.10.26 +// 08.10.27 +// 09.06.02 +// 09.12.31 (gsort) + +function Out=Crvsfpersdata(varargin) + global PARTITIONPT HIDDENDATA CRVSFHIDDENDATA + Nargs=length(varargin); + Sepflg=0; + Tmp=varargin(Nargs); + if type(Tmp)==1 & Tmp<=0 + Sepflg=1; + Nargs=Nargs-1; + end; + Fk=varargin(1); + if Mixtype(Fk)==1 + FkL=Mix(Fk); + else + FkL=Fk; + end; + Fbdy=Projpers(varargin(2)); + Fd=varargin(3); N=4; + FdL=Fullformfunc(Fd); + Fxy=Mixop(1,FdL); + Np=[50,50]; + if Nargs>=N + Np=varargin(N); N=N+1; + if type(Np)==1 & length(Np)==1 + Np=[Np,Np]; + end; + end; + Eps=[0.05,1]; // + if Nargs>=N + Eps=varargin(N); + end; + if length(Eps)==1 // + Eps=[Eps,1]; // + end; // + Eps2=0.2; + if Nargs>=N+1 + Eps2=varargin(N+1); + end; + Tmp=Mixop(2,Fd); + K=mtlb_findstr(Tmp,'='); + Xname=part(Tmp,1:K-1); + Tmp=Mixop(3,Fd); + K=mtlb_findstr(Tmp,'='); + Yname=part(Tmp,1:K-1); + Out=[]; + CRVSFHIDDENDATA=[]; + for Nn=1:Mixlength(FkL) + Fk=Mixop(Nn,FkL); + Tmp=Projpers(Fk); + Par=Partitionseg(Tmp,Fbdy,Eps(1),Eps2); // + if Sepflg==0 + for I=1:Numptcrv(Fk)-1 + Pa=Ptcrv(I,Fk); + Pb=Ptcrv(I+1,Fk); + PtL=Meetpoints(Pa,Pb,Fd,1,Np,Eps(1)); // + for J=1:Mixlength(PtL) + Tmp=Mixop(J,PtL); + Tmp=Perspt(Tmp); + Tmp1=ParamonCurve(Tmp,I,Projpers(Fk)); + Tmp2=min(abs(Par-Tmp1)); + if Tmp2*norm(Perspt(Pb-Pa))>Eps(1) // + Par=[Par,Tmp1]; + end; + end; + Par=gsort(Par); + Par=Par(length(Par):-1:1); + end; + end; + Tmp1=Nohiddenpers2(Par,Fk,Fd,1,Np,Eps); + Out=Mixjoin(Out,Tmp1); + CRVSFHIDDENDATA=Mixjoin(CRVSFHIDDENDATA,HIDDENDATA); + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CuspData.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CuspData.bin Binary files differnew file mode 100644 index 00000000..e6820112 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CuspData.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CuspData.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CuspData.sci new file mode 100755 index 00000000..8c2b6eee --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CuspData.sci @@ -0,0 +1,7 @@ +// 08.09.10 + +function Out=CuspData() + global CUSPDATA + Out=CUSPDATA; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CuspPt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CuspPt.bin Binary files differnew file mode 100644 index 00000000..a31b8fa0 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CuspPt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CuspPt.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CuspPt.sci new file mode 100755 index 00000000..33f1d807 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CuspPt.sci @@ -0,0 +1,7 @@ +// 08.09.10 + +function Out=CuspPt() + global CUSPPT + Out=CUSPPT; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CuspSplitPt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CuspSplitPt.bin Binary files differnew file mode 100644 index 00000000..040b5f3e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CuspSplitPt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CuspSplitPt.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CuspSplitPt.sci new file mode 100755 index 00000000..07cbb09b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/CuspSplitPt.sci @@ -0,0 +1,7 @@ +// 08.09.10 + +function PL=CuspSplitPt() + global CUSPSPLITPT + PL=CUSPSPLITPT; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Cuspsplitpara.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Cuspsplitpara.bin Binary files differnew file mode 100644 index 00000000..333137e7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Cuspsplitpara.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Cuspsplitpara.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Cuspsplitpara.sci new file mode 100755 index 00000000..0ea935b6 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Cuspsplitpara.sci @@ -0,0 +1,179 @@ +// 08.09.10 +// 08.09.13 +// 08.09.15 +// 08.10.10 +// 10.02.16 Eps +// 13.10.21 ( __ added to varibles ) +// 14.06.28 debug in the case of no cusp + +function OutkL__=Cuspsplitpara(varargin); + global CUSPSPLITPT; + Nargs__=length(varargin); + Gdxy__=varargin(1); + if Mixtype(Gdxy__)==1 + Gdxy__=Mix(Gdxy__); + end; + Fd__=varargin(2); + FdL__=Fullformfunc(Fd__); + Eps0__=10^(-5); + Eps__=0.05; + if Nargs__>2 Eps__=varargin(3); end; + if length(Eps__)>1 // + Eps__=Eps__(1); + end; // + Fxy__=Mixop(1,FdL__); N__=2; + Tmp1__=Mixop(2,FdL__); + Tmp2__=Mixop(3,FdL__); + Tmp3__=Mixop(4,FdL__); + Xyzstr__=[Tmp1__,Tmp2__,Tmp3__]; + Tmp__=Mixop(5,FdL__); + K__=mtlb_findstr(Tmp__,'='); + Uname__=part(Tmp__,1:K__-1); + Urg__=evstr(part(Tmp__,K__+1:length(Tmp__))); + Tmp__=Mixop(6,FdL__); + K__=mtlb_findstr(Tmp__,'='); + Vname__=part(Tmp__,1:K__-1); + Vrg__=evstr(part(Tmp__,K__+1:length(Tmp__))); + CUSPSPLITPT=[]; + OutkL__=[]; + for Ng__=1:Mixlength(Gdxy__) + PtxyL__=Mixop(Ng__,Gdxy__); + PtkL__=[]; + PthL__=[]; + for I__=1:size(PtxyL__,1) + Tmp__=PtxyL__(I__,:); + Tmp1__=Uname__+'='+string(Tmp__(1)); + execstr(Tmp1__); + Tmp1__=Vname__+'='+string(Tmp__(2)) + execstr(Tmp1__); + Tmp2__=evstr(Xyzstr__); + Tmp3__=Parapt(Tmp2__); + if I__==1 + PtkL__=[Tmp2__]; + PthL__=[Tmp3__]; + else + Tmp4__=PthL__(size(PthL__,1),:); + if norm(Tmp3__-Tmp4__)>Eps0__ + PtkL__=[PtkL__;Tmp2__]; + PthL__=[PthL__;Tmp3__] + end; + end; + end; + if size(PthL__,1)==0 then // from 20140628 + OutkL__=[]; + return; + end; // upto 20140628 + Ps__=PthL__(1,:); Pe__=PthL__(size(PthL__,1),:); + Cflg__=0; + if norm(Ps__-Pe__)<Eps__ Cflg__=1; end; + CuspL__=[]; + Cva__=cos(10*%pi/180); + for I__=1:size(PthL__,1)-1 + if size(PthL__,1)==2 break; end; + Tmp__=PthL__(I__,:); + if I__==1 + if Cflg__==0 continue; end; + Tmp1__=PthL__(size(PthL__,1)-1,:); + else + Tmp1__=PthL__(I__-1,:); + end; + Tmp2__=PthL__(I__+1,:); + V1__=Tmp__-Tmp1__; + V2__=Tmp2__-Tmp__; + Tmp3__=V1__(1)*V2__(1)+V1__(2)*V2__(2); + Tmp3__=Tmp3__/(norm(V1__)*norm(V2__)); + Cuspflg__=0; + if Tmp3__<Cva__ + P__=PthL__(I__,:); + Kaku__=acos(Tmp3__)*180/%pi; + if V1__(1)*V2__(2)-V1__(2)*V2__(1)<0 + Kaku__=-Kaku__ + end; + Cuspflg__=0; + for J__=I__+1:size(PthL__,1)-1 + if abs(Kaku__)>90 + Cuspflg__=1; + break + end; + Q__=PthL__(J__,:); + if norm(P__-Q__)>Eps__ + break + end; + V1__=Q__-PthL__(J__-1,:); + V2__=PthL__(J__+1,:)-Q__; + Tmp3__=V1__(1)*V2__(1)+V1__(2)*V2__(2); + Tmp3__=Tmp3__/(norm(V1__)*norm(V2__)); + Tmp__=acos(Tmp3__)*180/%pi; + if V1__(1)*V2__(2)-V1__(2)*V2__(1)<0 + Tmp__=-Tmp__ + end; + Kaku__=Kaku__+Tmp__ + end; + if Cuspflg__==1 + Tmp__=Trunc((I__+J__)*0.5); + I__=J__; + if length(CuspL__)==0 + CuspL__=[Tmp__] + else + CuspL__=[CuspL__,Tmp__]; + end; + end; + end; + end; + if Cflg__==0 + CuspL__=[1,CuspL__,size(PthL__,1)]; + elseif length(CuspL__)==0 + CuspL__=[1,size(PthL__,1)]; + elseif CuspL__(1)==1 + CuspL__=[CuspL__,size(PthL__,1)]; + else + Tmp__=CuspL__(1); + Tmp1__=size(PthL__,1); + PthL__=[PthL__(Tmp__:Tmp1__,:);PthL__(2:Tmp__,:)]; + PtkL__=[PtkL__(Tmp__:Tmp1__,:);PtkL__(2:Tmp__,:)]; + CuspL__=CuspL__-Tmp__+1; + CuspL__=[CuspL__,size(PthL__,1)]; + end; + if length(CuspL__)==2 + //Outh=[plot(PthL__)]; + Tmp4__=PthL__(size(PthL__,1),:); + if size(PtkL__,1)>=2 + CUSPSPLITPT=Mixadd(CUSPSPLITPT,Tmp4__); + OutkL__=Mixadd(OutkL__,PtkL__); + end; + continue + end; + //Outh=[]; + Outk__=[]; + Is__=1; + for I__=1:length(CuspL__)-1 + Tmp1__=CuspL__(Is__); Tmp2__=CuspL__(I__+1); + Tmp3__=PthL__(Tmp1__,:); Tmp4__=PthL__(Tmp2__,:); + if norm(Tmp3__-Tmp4__)>Eps__ + //Tmph__=[op(Tmp1__..Tmp2__,PthL__)]; + Tmpk__=PtkL__(Tmp1__:Tmp2__,:); + //Outh=[op(Outh),plot(Tmph__)]; + Outk__=Mixadd(Outk__,Tmpk__); + CUSPSPLITPT=Mixadd(CUSPSPLITPT,Tmp4__); + Is__=I__+1; + end; + end; + OutkL__=Mixjoin(OutkL__,Outk__); + end; + Tmp1__=Dropnumlistcrv(Projpara(OutkL__),Eps__*0.5); + Tmp__=[]; + for I__=1:Mixlength(OutkL__) + Tmp2__=Mixop(I__,OutkL__); + Tmp3__=Mixop(I__,Tmp1__); + Tmp4__=[]; + for J__=1:length(Tmp3__) + Tmp5__=Tmp2__(Tmp3__(J__),:); + Tmp4__=[Tmp4__;Tmp5__]; + end; + if Tmp4__~=[] + Tmp__=Mixadd(Tmp__,Tmp4__); + end; + end; + OutkL__=Tmp__; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Cuspsplitpers.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Cuspsplitpers.bin Binary files differnew file mode 100644 index 00000000..d5f47f89 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Cuspsplitpers.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Cuspsplitpers.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Cuspsplitpers.sci new file mode 100755 index 00000000..a8221f5b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Cuspsplitpers.sci @@ -0,0 +1,176 @@ +// 08.09.21 +// 08.10.10 +// 10.02.16 Eps__ +// 13.11.01 ( __ added to varibles ) +// 14.06.28 debug in the case of no cusp + +function OutkL__=Cuspsplitpers(varargin); + global CUSPSPLITPT; + Nargs__=length(varargin); + Gdxy__=varargin(1); + if Mixtype(Gdxy__)==1 + Gdxy__=Mix(Gdxy__); + end; + Fd__=varargin(2); + FdL__=Fullformfunc(Fd__); + Eps__0=10^(-5); + Eps__=0.05; + if Nargs__>2 Eps__=varargin(3); end; + if length(Eps__)>1 // + Eps__=Eps__(1); + end; // + Fxy__=Mixop(1,FdL__); N=2; + Tmp__1=Mixop(2,FdL__); + Tmp__2=Mixop(3,FdL__); + Tmp__3=Mixop(4,FdL__); + Xyzstr__=[Tmp__1,Tmp__2,Tmp__3]; + Tmp__=Mixop(5,FdL__); + K__=mtlb_findstr(Tmp__,'='); + Uname__=part(Tmp__,1:K__-1); + Urg__=evstr(part(Tmp__,K__+1:length(Tmp__))); + Tmp__=Mixop(6,FdL__); + K__=mtlb_findstr(Tmp__,'='); + Vname__=part(Tmp__,1:K__-1); + Vrg__=evstr(part(Tmp__,K__+1:length(Tmp__))); + CUSPSPLITPT=[]; + OutkL__=[]; + for Ng__=1:Mixlength(Gdxy__) + PtxyL__=Mixop(Ng__,Gdxy__); + PtkL__=[]; + PthL__=[]; + for I__=1:size(PtxyL__,1) + Tmp__=PtxyL__(I__,:); + Tmp__1=Uname__+'='+string(Tmp__(1)); + execstr(Tmp__1); + Tmp__1=Vname__+'='+string(Tmp__(2)) + execstr(Tmp__1); + Tmp__2=evstr(Xyzstr__); + Tmp__3=Perspt(Tmp__2); + if I__==1 + PtkL__=[Tmp__2]; + PthL__=[Tmp__3]; + else + Tmp__4=PthL__(size(PthL__,1),:); + if norm(Tmp__3-Tmp__4)>Eps__0 + PtkL__=[PtkL__;Tmp__2]; + PthL__=[PthL__;Tmp__3] + end; + end; + end; + if size(PthL__,1)==0 then // from 20140628 + OutkL__=[]; + return; + end; // upto 20140628 + Ps__=PthL__(1,:); Pe=PthL__(size(PthL__,1),:); + Cflg__=0; + if norm(Ps__-Pe)<Eps__ Cflg__=1; end; + CuspL__=[]; + Cva__=cos(10*%pi/180); + for I__=1:size(PthL__,1)-1 + if size(PthL__,1)==2 break; end; + Tmp__=PthL__(I__,:); + if I__==1 + if Cflg__==0 continue; end; + Tmp__1=PthL__(size(PthL__,1)-1,:); + else + Tmp__1=PthL__(I__-1,:); + end; + Tmp__2=PthL__(I__+1,:); + V1__=Tmp__-Tmp__1; + V2__=Tmp__2-Tmp__; + Tmp__3=V1__(1)*V2__(1)+V1__(2)*V2__(2); + Tmp__3=Tmp__3/(norm(V1__)*norm(V2__)); + Cuspflg__=0; + if Tmp__3<Cva__ + P__=PthL__(I__,:); + Kaku__=acos(Tmp__3)*180/%pi; + if V1__(1)*V2__(2)-V1__(2)*V2__(1)<0 + Kaku__=-Kaku__ + end; + Cuspflg__=0; + for J__=I__+1:size(PthL__,1)-1 + if abs(Kaku__)>90 + Cuspflg__=1; + break + end; + Q__=PthL__(J__,:); + if norm(P__-Q__)>Eps__ + break + end; + V1__=Q__-PthL__(J__-1,:); + V2__=PthL__(J__+1,:)-Q__; + Tmp__3=V1__(1)*V2__(1)+V1__(2)*V2__(2); + Tmp__3=Tmp__3/(norm(V1__)*norm(V2__)); + Tmp__=acos(Tmp__3)*180/%pi; + if V1__(1)*V2__(2)-V1__(2)*V2__(1)<0 + Tmp__=-Tmp__ + end; + Kaku__=Kaku__+Tmp__ + end; + if Cuspflg__==1 + Tmp__=Trunc((I__+J__)*0.5); + I__=J__; + if length(CuspL__)==0 + CuspL__=[Tmp__] + else + CuspL__=[CuspL__,Tmp__]; + end; + end; + end; + end; + if Cflg__==0 + CuspL__=[1,CuspL__,size(PthL__,1)]; + elseif length(CuspL__)==0 + CuspL__=[1,size(PthL__,1)]; + elseif CuspL__(1)==1 + CuspL__=[CuspL__,size(PthL__,1)]; + else + Tmp__=CuspL__(1); + Tmp__1=size(PthL__,1); + PthL__=[PthL__(Tmp__:Tmp__1,:);PthL__(2:Tmp__,:)]; + PtkL__=[PtkL__(Tmp__:Tmp__1,:);PtkL__(2:Tmp__,:)]; + CuspL__=CuspL__-Tmp__+1; + CuspL__=[CuspL__,size(PthL__,1)]; + end; + if length(CuspL__)==2 + //Outh__=[plot(PthL__)]; + Tmp__4=PthL__(size(PthL__,1),:); + if size(PtkL__,1)>=2 + CUSPSPLITPT=Mixadd(CUSPSPLITPT,Tmp__4); + OutkL__=Mixadd(OutkL__,PtkL__); + end; + continue + end; + //Outh__=[]; + Outk__=[]; + Is__=1; + for I__=1:length(CuspL__)-1 + Tmp__1=CuspL__(Is__); Tmp__2=CuspL__(I__+1); + Tmp__3=PthL__(Tmp__1,:); Tmp__4=PthL__(Tmp__2,:); + if norm(Tmp__3-Tmp__4)>Eps__ + //Tmp__h=[op(Tmp__1..Tmp__2,PthL__)]; + Tmp__k=PtkL__(Tmp__1:Tmp__2,:); + //Outh__=[op(Outh__),plot(Tmp__h)]; + Outk__=Mixadd(Outk__,Tmp__k); + CUSPSPLITPT=Mixadd(CUSPSPLITPT,Tmp__4); + Is__=I__+1; + end; + end; + OutkL__=Mixjoin(OutkL__,Outk__); + end; + Tmp__1=Dropnumlistcrv(Projpers(OutkL__),Eps__*0.5); + Tmp__=[]; + for I__=1:Mixlength(OutkL__) + Tmp__2=Mixop(I__,OutkL__); + Tmp__3=Mixop(I__,Tmp__1); + Tmp__4=[]; + for J__=1:length(Tmp__3) + Tmp__5=Tmp__2(Tmp__3(J__),:); + Tmp__4=[Tmp__4;Tmp__5]; + end; + if Tmp__4~=[] + Tmp__=Mixadd(Tmp__,Tmp__4); + end; + end; + OutkL__=Tmp__; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Cutsf2d.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Cutsf2d.bin Binary files differnew file mode 100644 index 00000000..d9fb0edd --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Cutsf2d.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Cutsf2d.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Cutsf2d.sci new file mode 100755 index 00000000..fa26b319 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Cutsf2d.sci @@ -0,0 +1,14 @@ +// 08.10.15 + +function Out=Cutsf2d(Nvec,GL,Flg) + global THETA PHI + Theta=THETA; Phi=PHI; + Tmp=Rotate3data(GL,Nvec,[-1,0,0]); + THETA=%pi/2; PHI=0; + Out=Projpara(Tmp); + if Flg==1 + Windisp(Out); + end; + THETA=Theta; PHI=Phi; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dashline.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dashline.bin Binary files differnew file mode 100644 index 00000000..dc144378 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dashline.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dashline.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dashline.sci new file mode 100755 index 00000000..1df8e5e3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dashline.sci @@ -0,0 +1,31 @@ +// 08.05.21 +// 08.07.14 +// 10.01.02 bin remade +// 10.11.13 Flattenlist used + +function Dashline(varargin) + global MilliIn + Nargs=length(varargin); + Nall=Nargs; Sen=1 ; Gap=1; + Tmp=varargin(Nall); + if type(Tmp)==1 & length(Tmp)==1 & Tmp>0 + Tmp1=varargin(Nall-1); + if type(Tmp1)==1 & length(Tmp1)==1 & Tmp1>0 + Sen=Tmp1; Gap=Tmp; + Nall=Nall-2; + else + Sen=Tmp; Gap=Sen; + Nall=Nall-1; + end + end + Sen=1000/2.54/MilliIn*Sen; + Gap=1000/2.54/MilliIn*Gap; + for N=1:Nall + Tmp=varargin(N); + Fdata=Flattenlist(Tmp); + for I=1:length(Fdata); + Figdata=Fdata(I); + Makehasen(Figdata,Sen,Gap,0); + end; + end; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dataindex.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dataindex.bin Binary files differnew file mode 100644 index 00000000..b64a96c8 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dataindex.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dataindex.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dataindex.sci new file mode 100755 index 00000000..82e9ac48 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dataindex.sci @@ -0,0 +1,24 @@ +// +// 08.05.31 + +function Ndm=Dataindex(P) + // %inf;%inf -> end + Ndm=[]; + if P==[] return; end + N1=1; + Flg=0; + for J=1:size(P,1) + if P(J,1)==%inf + Ndm=[Ndm;N1,J-1]; + N1=J+1; + if P(N1,1)==%inf + Flg=1; + break; + end + end + end + if Flg==0 + Ndm=[Ndm;N1,size(P,1)]; + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Definecolor.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Definecolor.bin Binary files differnew file mode 100644 index 00000000..7ffb898a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Definecolor.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Definecolor.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Definecolor.sci new file mode 100644 index 00000000..b06ac44b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Definecolor.sci @@ -0,0 +1,23 @@ +// 15.05.04 + +function Definecolor(Name,Data) + Tmp1=size(Data,2); + if Tmp1<3 | Tmp1>4 + disp("Size of data should be 3 or 4."); + return; + end; + if Tmp1==4 + Tp="cmyk" + else + Tp="rgb" + end; + Tmp=""; + for J=1:Tmp1 + Tmp=Tmp+string(Data(J)); + if J<Tmp1 + Tmp=Tmp+","; + end; + end + Tmp="\definecolor{"+Name+"}{"+Tp+"}{"+Tmp+"}"; + Texcom(Tmp); +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Deqplot.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Deqplot.bin Binary files differnew file mode 100644 index 00000000..a2f5f722 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Deqplot.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Deqplot.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Deqplot.sci new file mode 100755 index 00000000..43d8ea6e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Deqplot.sci @@ -0,0 +1,195 @@ + +// 08.09.22 +// 09.03.10 +// 09.10.09 ( ` and order ) +// 09.10.09b ( system ) +// 09.11.12 ( debug for x<0 ) +// 13.10.19 ( __ added to variables ) +// 15.11.16 N changed to number of intervals +// 15.12.08 bug of optiion ( __ ) fixed + +function P__=Deqplot(varargin) + global XMIN XMAX YMIN YMAX + Nargs__=length(varargin); + Eps__=10^(-5); + Fnstr__=varargin(1); + Fnstr__=strsubst(Fnstr__,Prime(),'`'); + K__=mtlb_findstr(Fnstr__,'='); + Str__=part(Fnstr__,1:(K__-1)); + Fnstr__=part(Fnstr__,(K__+1):length(Fnstr__)); + JL__=mtlb_findstr(Str__,'`'); + Yname__=part(Str__,1:(JL__(1)-1)); + Yname__=strsubst(Yname__,',',';'); + Tmp__=mtlb_findstr(Yname__,';'); + if length(Tmp__)>0 + Dim__=length(Tmp__)+1; + Order__=1; + Fnstr__=strsubst(Fnstr__,',',';'); + else + Dim__=1; + Order__=length(JL__); + end; + Rgstr__=varargin(2); + K__=mtlb_findstr(Rgstr__,'='); + if K__~=[] + Xname__=part(Rgstr__,1:K__-1); + Rng__=evstr(part(Rgstr__,K__+1:length(Rgstr__))); + else + Xname__=Rgstr__; + Rng__=[XMIN,XMAX]; + end; + X0__=varargin(3); + Y0__=varargin(4); + if size(Y0__,2)>1 + Y0__=Y0__'; + end; + N__=50; + if Nargs__>=5 + Tmp__=varargin(5); + Tmp__=strsubst(Tmp__,"=","__="); // 15.12.08 + Tmp__=strsubst(Tmp__,"____","__"); + execstr(Tmp__); + end; + X1__=Rng__(1); X2__=Rng__(2); + dX__=(X2__-X1__)/(N__-1); + dX__=(X2__-X1__)/(N__); // 15.11.16 + if Dim__>1 + Tmp__=mtlb_findstr(Yname__,'['); + Data__=part(Yname__,Tmp__+1:length(Yname__)); + Tmp__=mtlb_findstr(Data__,']'); + Data__=part(Data__,1:Tmp__-1); + Data__=';'+Data__+';'; + NL__=mtlb_findstr(Data__,';'); + NameL__=list(); + for I__=1:length(NL__)-1 + Tmp__=part(Data__,NL__(I__)+1:NL__(I__+1)-1); + NameL__(I__)=Tmp__; + end; + Fnrep__=Fnstr__; + for I__=1:length(NameL__) + Tmp__=NameL__(I__); + Fnrep__=strsubst(Fnrep__,Tmp__,'Pt('+string(I__)+')'); + end; + Tmp1__='Outf=Dfp__('+Xname__+',Pt)'; + Tmp2__='Outf='+Fnrep__; + deff(Tmp1__,Tmp2__); + Y0p__=Y0__; + Tmp1__='Outf=Dfn__('+Xname__+',Pt)'; + Tmp2__='Outf=-('+Fnrep__+')'; + deff(Tmp1__,Tmp2__); + Y0n__=Y0__; + else + YL__=mtlb_findstr(Fnstr__,Yname__); + Fnrep__=part(Fnstr__,1:YL__(1)-1); + for I__=1:length(YL__) + Py__=YL__(I__); + J__=1; + K__=Py__+1; + while part(Fnstr__,K__:K__)=='`' + J__=J__+1; K__=K__+1; + end; + Fnrep__=Fnrep__+Yname__+'('+string(J__)+')'; + if I__==length(YL__) + Fnrep__=Fnrep__+part(Fnstr__,K__:length(Fnstr__)); + else + J__=YL__(I__+1)-1; + if J__>=K__ + Fnrep__=Fnrep__+part(Fnstr__,K__:J__); + end; + end; + end; + Eqvec__='['; + for I__=1:Order__-1 + Eqvec__=Eqvec__+Yname__+'('+string(I__+1)+');'; + end; + Eqvec__=Eqvec__+Fnrep__+']'; + Tmp1__='Outf=Dfp__('+Xname__+','+Yname__+')'; + Tmp2__='Outf='+Eqvec__; + deff(Tmp1__,Tmp2__); + Y0p__=Y0__; + YL__=mtlb_findstr(Fnstr__,Yname__); + Fnrep__=part(Fnstr__,1:YL__(1)-1); + for I__=1:length(YL__) + Py__=YL__(I__); + J__=1; + K__=Py__+1; + while part(Fnstr__,K__:K__)=='`' + J__=J__+1; K__=K__+1; + end; + if modulo(J__,2)==1 + Fnrep__=Fnrep__+Yname__+'('+string(J__)+')'; + else + Fnrep__=Fnrep__+'(-'+Yname__+'('+string(J__)+'))'; + end; + if I__==length(YL__) + Fnrep__=Fnrep__+part(Fnstr__,K__:length(Fnstr__)); + else + J__=YL__(I__+1)-1; + if J__>=K__ + Fnrep__=Fnrep__+part(Fnstr__,K__:J__); + end; + end; + end; + if modulo(Order__,2)==1 + Fnrep__='-('+Fnrep__+')'; + end; + Fnrep__=strsubst(Fnrep__,Xname__,'(-'+Xname__+')'); // 09.11.12 + Eqvec__='['; + for I__=1:Order__-1 + Eqvec__=Eqvec__+Yname__+'('+string(I__+1)+');'; + end; + Eqvec__=Eqvec__+Fnrep__+']'; + Tmp1__='Outf=Dfn__('+Xname__+','+Yname__+')'; + Tmp2__='Outf='+Eqvec__; + deff(Tmp1__,Tmp2__); + Y0n__=[]; + for I__=1:size(Y0__,1) + Y0n__=[Y0n__;(-1)^(I__-1)*Y0__(I__)]; + end; + end; + if X0__<=X1__ + X__=X1__:dX__:X2__; + Y__=ode(Y0p__,X0__,X__,Dfp__); + M__=min(size(X__,2),size(Y__,2)); + if Dim__>1 + PL__=Y__'; + P__=PL__(1:M__,:); + else + P__=[X__(:,1:M__);Y__(1,1:M__)]'; + end; + return; + end; + if X2__<=X0__ + X__=(-X2__):dX__:(-X1__); + Y__=ode(Y0n__,-X0__,X__,Dfn__); + X__=-X__; + M__=min(size(X__,2),size(Y__,2)); + if Dim__>1 + PL__=Y__'; + P__=PL__(1:M__,:); + else + P__=[X__(:,1:M__);Y__(1,1:M__)]'; + end; + return; + end; + XP__=X0__:dX__:X2__; + YP__=ode(Y0p__,X0__,XP__,Dfp__); + M__=min(size(XP__,2),size(YP__,2)); + XP__=XP__(:,1:M__); + YP__=YP__(:,1:M__); + XN__=(-X0__)+dX__:dX__:(-X1__); + YN__=ode(Y0n__,-X0__,XN__,Dfn__); + M__=min(size(XN__,2),size(YN__,2)); + XN__=XN__(:,1:M__); + YN__=YN__(:,1:M__); + XN__=-XN__; + XN__=XN__(length(XN__):-1:1); + YN__=YN__(:,size(YN__,2):-1:1); + if Dim__>1 + P__=[YN__';YP__'] + else + X__=[XN__,XP__]; + Y__=[YN__(1,:),YP__(1,:)]; + P__=[X__;Y__]'; + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Derivative.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Derivative.bin Binary files differnew file mode 100644 index 00000000..c30c8ae4 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Derivative.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Derivative.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Derivative.sci new file mode 100755 index 00000000..cbffc3d7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Derivative.sci @@ -0,0 +1,64 @@ +// 09.10.04 +// 09.10.05 +// 09.10.06 +// 14.10.24 numderivative used after 5.5 + +function Out=Derivative(varargin) + Nargs=length(varargin); + Out=[]; + Fs=varargin(1); + Vv=varargin(2); + Np=3; + if type(Vv)==10 + Prstr=strsubst(Vv,'[','('); + Prstr=strsubst(Prstr,']',')'); + Tmp=part(Prstr,1); + if Tmp~='(' + Prstr='('+Prstr+')'; + end; + deff('Out=Tmpfun'+Prstr,'Out='+Fs); + Fs='Tmpfun'+Prstr; + Vv=varargin(Np); + Np=Np+1; + end; + Nd=[]; + if Np<=Nargs + Nd=varargin(Np); + end; + Js=mtlb_findstr(Fs,'('); + JL=mtlb_findstr(Fs,','); + Je=mtlb_findstr(Fs,')'); + Sep=[Js(1),JL,Je]; + Fse=Fs; + for I=1:length(Vv) + J1=Sep(I)+1; + J2=Sep(I+1)-1; + Tmp1=part(Fs,J1:J2); + Tmp2='X_'+string(I); + Fse=strsubst(Fse,Tmp1,Tmp2); + end; + function Ans=Tmpf(W) + X1=W(1); + if length(W)>1 + X2=W(2); + else; + X2=%inf; + end; + if length(W)>2 + X3=W(3); + else + X3=%inf; + end; + Tmp=Assign(Fse,'X_1',X1,'X_2',X2,'X_3',X3); + Ans=evstr(Tmp)'; + endfunction; + Tmp1=getversion("scilab"); + if Tmp1(1)*10+Tmp1(2)>=55 then + Out=numderivative(Tmpf,Vv')'; + else + Out=derivative(Tmpf,Vv')'; + end + if Nd~=[] + Out=Out(Nd,:) + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Diagcelldata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Diagcelldata.bin Binary files differnew file mode 100644 index 00000000..6f9d2eaf --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Diagcelldata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Diagcelldata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Diagcelldata.sci new file mode 100755 index 00000000..b6a53b62 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Diagcelldata.sci @@ -0,0 +1,15 @@ +// 10.03.28 + +function Out=Diagcelldata(Tb,Nc,Nr) + Tmp=Findcell(Tb,Nc,Nr); + C=Tmp(1); + Dx=Tmp(2); + Dy=Tmp(3); + Pne=C+[Dx,Dy]; + Pnw=C+[-Dx,Dy]; + Psw=C+[-Dx,-Dy]; + Pse=C+[Dx,-Dy]; + Tmp1=Listplot(Pnw,Pse); + Tmp2=Listplot(Pne,Psw); + Out=list(Tmp1,Tmp2); +endfunction;
\ No newline at end of file diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dividegraphics.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dividegraphics.bin Binary files differnew file mode 100644 index 00000000..76090b77 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dividegraphics.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dividegraphics.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dividegraphics.sci new file mode 100755 index 00000000..be16b473 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dividegraphics.sci @@ -0,0 +1,20 @@ +// 08.05.31 +// 10.01.01 +// 11.01.07 + +function OutL=Dividegraphics(Pd) + if length(Pd)==0 + OutL=Pd; + return; + end; + DtL=Flattenlist(Pd); + OutL=list(); + for J=1:length(DtL) + Dt= DtL(J); + Ndm=Dataindex(Dt); + for I=1:size(Ndm,1) + Fd=Dt(Ndm(I,1):Ndm(I,2),:); + OutL($+1)=Fd; + end; + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dividetable.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dividetable.bin Binary files differnew file mode 100644 index 00000000..f65a407d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dividetable.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dividetable.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dividetable.sci new file mode 100644 index 00000000..36531da2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dividetable.sci @@ -0,0 +1,9 @@ +// 13.05.03 + +function Out=Dividetable(Tb) + G=Tb(1); + Gw=G(1); + Gt=Mixsub(Tb(2),G); + Gy=Mixsub(Tb(3),G); + Out=list(Gw,Gt,Gy) +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Doscaling.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Doscaling.bin Binary files differnew file mode 100644 index 00000000..921b0546 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Doscaling.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Doscaling.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Doscaling.sci new file mode 100755 index 00000000..5054faf2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Doscaling.sci @@ -0,0 +1,14 @@ +// 09.12.25 + +function Out=Doscaling(G) + global LOGX LOGY SCALEX SCALEY; + GLg=G; + if LOGX==1 + GLg=[log10(G(:,1)),GLg(:,2)]; + end; + if LOGY==1 + GLg=[GLg(:,1),log10(G(:,2))]; + end; + Out=[SCALEX*GLg(:,1),SCALEY*GLg(:,2)]; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dotfilldata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dotfilldata.bin Binary files differnew file mode 100644 index 00000000..9b3d417e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dotfilldata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dotfilldata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dotfilldata.sci new file mode 100755 index 00000000..fc2847c7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dotfilldata.sci @@ -0,0 +1,186 @@ +// 08.05.31 +// 10.01.01 +// 10.03.07 (Kosa ) + +function ShaL=Dotfilldata(varargin) + global XMIN XMAX YMIN YMAX MilliIn; + Nargs=length(varargin); + ShaL=[]; + Eps=0.01; + Kakudo=45; + Kosa=0.5; + Tmp=Doscaling([XMIN,YMIN]); + Xmn=Tmp(1); Ymn=Tmp(2); + Tmp=Doscaling([XMAX,YMAX]); + Xmx=Tmp(1); Ymx=Tmp(2); + for N=Nargs:-1:1 + Tmp=varargin(N); + if Mixtype(Tmp)~=1 + break + end + end + if N<Nargs + Kosa=varargin(N+1); + end +// Kosa=min(Kosa,1); // 100307 + Tmp=1/(2*Kosa); + Kankaku=Tmp*0.100*1000/2.54/MilliIn; + NaitenL=varargin(1); + if Mixtype(NaitenL)==1 + NaitenL=list(NaitenL); + end + Ns=2; + StartP=Op(1,NaitenL); + if type(StartP)==10 + StartP=[(XMIN+XMAX)/2,(YMIN+YMAX)/2]; + else + StartP=Doscaling(StartP); + end; + Tmp=varargin(2); + if Mixtype(Tmp)==1 + StartP=Doscaling(Tmp); + Ns=3; + end + Tmp=[]; + for I=Ns:N + Tmp=Mixjoin(Tmp,list(varargin(I))); + end + Bdy=Kyoukai(Tmp); + Bdys=list(); + for I=1:length(Bdy) + Tmp1=Bdy(I); + Tmp2=Doscaling(Tmp1); + Bdys=Mixjoin(Bdys,list(Tmp2)) + end; + Bdy=Bdys; + PtnL=[]; + for I=1:length(NaitenL) + Tmp=Op(I,NaitenL); + if type(Tmp)==1 + Tmp1=Naigai(Tmp,Bdy) + PtnL=Mixjoin(PtnL,list(Tmp1)); + else + if type(Tmp)~=10 + disp('Type Error'); + return; + end + Ptn=[]; + for J=1:length(Tmp) + if Op(J,Tmp)=='i' + Ptn=[Ptn,1]; + else + Ptn=[Ptn,0]; + end + end + PtnL=Mixjoin(PtnL,list(Ptn)); + end + end + Call=length(Bdy); + Ptn=zeros(1,Call); + if Member(Ptn,PtnL) + Wn=Doscaling(Framedata()); + Bdy=Mixjoin(Bdy,list(Wn)); + Tmp=[]; + for I=1:Mixlength(PtnL) + Tmp1=[Op(I,PtnL),1]; + Tmp=Mixjoin(Tmp,list(Tmp1)); + end + PtnL=Tmp; + end + V=[cos(Kakudo*%pi/180),sin(Kakudo*%pi/180)]; + Vm=[-sin(Kakudo*%pi/180),cos(Kakudo*%pi/180)]; + Tmp=Op(1,NaitenL); + if type(Tmp)==1 & size(Tmp,2)>1 + Delta=Tmp-StartP; + K=Trunc(Dotprod(Delta,Vm)/Kankaku); + PA=StartP+K*Kankaku*Vm; + P=PA; + Sha=Makeshasen(PtnL,P,V,Bdy); + Sha=Dividegraphics(Sha); + I=1; + while length(Sha)~=0 + for J=1:length(Sha) + Tmp=Op(J,Sha); + Q=Tmp(1,:); + R=Tmp(2,:); + Tmp=Dotprod(Q-P,V)/Kankaku; + K1=ceil(Tmp); + if abs(K1-Tmp)<Eps K1=K1+1; end + Tmp=Dotprod(R-P,V)/Kankaku; + K2=floor(Tmp); + if abs(Tmp-K2)<Eps K2=K2-1; end + for K=K1:K2 + Tmp1=Pointdata(P+K*Kankaku*V) + ShaL=Mixjoin(ShaL,list(Tmp1)); + end + end + P=PA+I*Kankaku*Vm; + Sha=Makeshasen(PtnL,P,V,Bdy); + Sha=Dividegraphics(Sha); + I=I+1; + end + P=PA-Kankaku*Vm; + Sha=Makeshasen(PtnL,P,V,Bdy); + I=2; + while length(Sha)~=0 + for J=1:length(Sha) + Tmp=Op(J,Sha); + Q=Tmp(1,:); + R=Tmp(2,:); + Tmp=Dotprod(Q-P,V)/Kankaku; + K1=ceil(Tmp); + if abs(K1-Tmp)<Eps K1=K1+1; end + Tmp=Dotprod(R-P,V)/Kankaku; + K2=floor(Tmp); + if abs(Tmp-K2)<Eps K2=K2-1; end + for K=K1:K2 + Tmp1=Pointdata(P+K*Kankaku*V) + ShaL=Mixjoin(ShaL,list(Tmp1)); + end + end + P=PA-I*Kankaku*Vm; + Sha=Makeshasen(PtnL,P,V,Bdy); + I=I+1; + end + else + Delta=[Xmn,Ymn]-StartP; + K1=Trunc(Dotprod(Delta,Vm)/Kankaku); + Delta=[Xmx,Ymn]-StartP; + K2=Trunc(Dotprod(Delta,Vm)/Kankaku); + Delta=[Xmx,Ymx]-StartP; + K3=Trunc(Dotprod(Delta,Vm)/Kankaku); + Delta=[Xmn,Ymx]-StartP; + K4=Trunc(Dotprod(Delta,Vm)/Kankaku); + IM=max(K1,K2,K3,K4); + Im=min(K1,K2,K3,K4); + for I=Im:IM + P=StartP+I*Kankaku*Vm; + Sha=Makeshasen(PtnL,P,V,Bdy); + Sha=Dividegraphics(Sha); + if length(Sha)>0 + for J=1:length(Sha) + Tmp=Op(J,Sha); + Q=Tmp(1,:); + R=Tmp(2,:); + Tmp=Dotprod(Q-P,V)/Kankaku; + K1=ceil(Tmp); + if abs(K1-Tmp)<Eps K1=K1+1; end + Tmp=Dotprod(R-P,V)/Kankaku; + K2=floor(Tmp); + if abs(Tmp-K2)<Eps K2=K2-1; end + for K=K1:K2 + Tmp1=Pointdata(P+K*Kankaku*V) + ShaL=Mixjoin(ShaL,list(Tmp1)); + end + end + end + end + end + ShaLs=list(); + for I=1:length(ShaL) + Tmp=ShaL(I); + Tmp1=Unscaling(Tmp); + ShaLs=Mixjoin(ShaLs,Tmp1); + end; + ShaL=ShaLs +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dotprod.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dotprod.bin Binary files differnew file mode 100644 index 00000000..2e5b0eb1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dotprod.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dotprod.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dotprod.sci new file mode 100755 index 00000000..dc35fde5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dotprod.sci @@ -0,0 +1,6 @@ +// 09.10.03 + +function Out=Dotprod(a,b) + Out=a*b'; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dottedline.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dottedline.bin Binary files differnew file mode 100644 index 00000000..6f85f204 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dottedline.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dottedline.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dottedline.sci new file mode 100755 index 00000000..253d5d75 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dottedline.sci @@ -0,0 +1,124 @@ +// 08.05.21 +// 08.11.26 +// 09.12.24 (Revised) +// 09.12.29 +// 10.01.02 +// 11.05.27 + +function Dottedline(varargin) + global Wfile FID MilliIn PenThick PenThickInit + Nall=length(varargin); + Nagasa=0.1; + Ookisa=PenThick; + I=Nall; + Tmp=varargin(I); + while type(Tmp)==1 & length(Tmp)==1 + I=I-1; + Tmp=varargin(I); + end + if I==Nall-1 + Nagasa=Nagasa*varargin(Nall); + Nall=Nall-1; + end + if I==Nall-2 + Nagasa=Nagasa*varargin(Nall-1); + Ookisa=Ookisa*varargin(Nall); + Nall=Nall-2; + end + Nagasa=1000/2.54/MilliIn*Nagasa; + Ra=Ookisa/MilliIn; + for N=1:Nall + Tmp=varargin(N); + Pdata=Flattenlist(Tmp); // + for II=1:length(Pdata) + Clist=MakeCurves(Op(II,Pdata)); + DinM=Dataindex(Clist); + Mojisu=0; + for n=1:size(DinM,1) + Tmp=DinM(n,:); + Data=Clist(Tmp(1):Tmp(2),:); + Len=0; + Lenlist=[0]; + for I=2:size(Data,1) + Len=Len+Vecnagasa(Data(I,:)-Data(I-1,:)); + Lenlist=[Lenlist,Len]; + end + Lenall=Lenlist(length(Lenlist)); + if Lenall==0 + continue + end + Naga=Nagasa; + Nten=round(Lenall/Naga)+1; + if Nten>1 + Seg=Lenall/(Nten-1); + else + Seg=Lenall; + end + Eps=10^(-6)*Seg; + PPd=[]; + Hajime=1; + for I=0:Nten-1 + Len=Seg*I; + if I>0 + J=Hajime; + while Len>=Lenlist(J)+Eps + J=J+1; + end + Hajime=J-1; + end + T=(Len-Lenlist(Hajime))... + /(Lenlist(Hajime+1)-Lenlist(Hajime)); + P=Data(Hajime,:)+T*(Data(Hajime+1,:)... + -Data(Hajime,:)); + PPd=[PPd;P]; + if I==Nten-1 + if norm(P-Data(1,:))<Eps + continue + end + end + end + for I=1:size(PPd,1) + P=PPd(I,:); + if size(PPd,1)==1 + V=[1,0]; + elseif I==1 + Tmp=PPd(I+1,:)-P; + V=1/norm(Tmp)*Tmp; + elseif I==size(PPd,1) + Tmp= P-PPd(I-1,:); + V=1/norm(Tmp)*Tmp; + else + Tmp1=PPd(I+1,:)-P; + Tmp2=P-PPd(I-1,:); + Tmp3=1/norm(Tmp1)*Tmp1+1/norm(Tmp2)*Tmp2; + V=1/norm(Tmp3)*Tmp3; + end; + X=sprintf('%5.5f',P(1)); + Y=sprintf('%5.5f',P(2)); + Str='\put('+X+','+Y+'){\circle*{'+sprintf('%6.6f',Ra)+'}}'; + if Wfile=='default' + mprintf('%s',Str); + else + mfprintf(FID,'%s',Str); + end + Mojisu=Mojisu+length(Str); + if Mojisu>80 + if Wfile=='default' + mprintf('%c\n','%'); + else + mfprintf(FID,'%c\n','%'); + end + Mojisu=0; + end + end + end + end; + if Mojisu>0 + if Wfile=='default' + mprintf('%c\n','%'); + else + mfprintf(FID,'%c\n','%'); + end; + end; + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dottedlineold.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dottedlineold.bin Binary files differnew file mode 100644 index 00000000..5576b57e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dottedlineold.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dottedlineold.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dottedlineold.sci new file mode 100755 index 00000000..c4d9b86a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dottedlineold.sci @@ -0,0 +1,115 @@ +// 08.05.21 +// 08.11.26 + +function Dottedline(varargin) + global Wfile FID MilliIn; + Nall=length(varargin); + Nagasa=0.1; + Ookisa=0.02*0.5; + I=Nall; + Tmp=varargin(I); + while type(Tmp)==1 & length(Tmp)==1 + I=I-1; + Tmp=varargin(I); + end + if I==Nall-1 + Nagasa=Nagasa*varargin(Nall); + Nall=Nall-1; + end + if I==Nall-2 + Nagasa=Nagasa*varargin(Nall-1); + Ookisa=Ookisa*varargin(Nall); + Nall=Nall-2; + end + Nagasa=1000/2.54/MilliIn*Nagasa; + Ookisa=1000/2.54/MilliIn*Ookisa; + CL=[]; + Nk=4; + Tmp=Framedata([0,0],Ookisa/2); + CL=Tmp; + for N=1:Nall + Pdata=varargin(N); + if Mixtype(Pdata)==1 + Pdata=MixS(Pdata); + end + for II=1:Mixlength(Pdata) + Clist=MakeCurves(Op(II,Pdata)); + DinM=Dataindex(Clist); + for n=1:size(DinM,1) + Tmp=DinM(n,:); + Data=Clist(Tmp(1):Tmp(2),:); + Len=0; + Lenlist=[0]; + for I=2:size(Data,1) + Len=Len+Vecnagasa(Data(I,:)-Data(I-1,:)); + Lenlist=[Lenlist,Len]; + end + Lenall=Lenlist(length(Lenlist)); + if Lenall==0 + continue + end + Naga=Nagasa; + Nten=round(Lenall/Naga)+1; + if Nten>1 + Seg=Lenall/(Nten-1); + else + Seg=Lenall; + end + Eps=10^(-6)*Seg; + Hajime=1; + for I=0:Nten-1 + Len=Seg*I; + if I>0 + J=Hajime; + while Len>=Lenlist(J)+Eps + J=J+1; + end + Hajime=J-1; + end + T=(Len-Lenlist(Hajime))... + /(Lenlist(Hajime+1)-Lenlist(Hajime)); + P=Data(Hajime,:)+T*(Data(Hajime+1,:)... + -Data(Hajime,:)); + if I==Nten-1 + if Vecnagasa(P-Data(1,:))<Eps + continue + end + end + PL=[]; + for J=1:size(CL,1) + PL=[PL;P+CL(J,:)]; + end + Mojisu=0; + for J=1:size(PL,1) + Q=PL(J,:); + X=round(MilliIn*Q(1)); + X=string(X); + Y=-round(MilliIn*Q(2)); + Y=string(Y); + Str='\special{pa '+X+" "+Y+'}'; + if Wfile=='default' + mprintf('%s',Str); + else + mfprintf(FID,'%s',Str); + end + Mojisu=Mojisu+length(Str); + if Mojisu>80 + if Wfile=='default' + mprintf('%c\n','%'); + else + mfprintf(FID,'%c\n','%'); + end + Mojisu=0; + end + end + Str='\special{sh 1}'+'\special{fp}%' + if Wfile=='default' + mprintf('%s\n',Str); + else + mfprintf(FID,'%s\n',Str); + end + end + end + end + end +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dropnumlistcrv.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dropnumlistcrv.bin Binary files differnew file mode 100644 index 00000000..14cf5d76 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dropnumlistcrv.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dropnumlistcrv.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dropnumlistcrv.sci new file mode 100755 index 00000000..3a06be00 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Dropnumlistcrv.sci @@ -0,0 +1,34 @@ +// 08.09.10 +// 08.09.15 +// 08.10.10 +// 10.09.03 + +function OutL=Dropnumlistcrv(QdL,Eps) + Eps0=10^(-6); // + if Mixtype(QdL)==1 + PdL=list(QdL); + else + PdL=QdL; + end; + OutL=[]; + for I=1:Mixlength(PdL) + Pd=Op(I,PdL); + PtL=[1]; + P=Pd(1,:); + for K=2:size(Pd,1)-1 // + if norm(P-Pd(K,:))>Eps + PtL=[PtL,K]; + P=Pd(K,:); + end; + end; + // PtL=[PtL,size(Pd,1)]; + K=size(Pd,1) // + if norm(P-Pd(K,:))>Eps0 // + PtL=[PtL,K]; // + end; // + if length(PtL)==1 + PtL=[]; + end; + OutL=Mixadd(OutL,PtL); + end; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Droppoint.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Droppoint.bin Binary files differnew file mode 100644 index 00000000..155b2072 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Droppoint.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Droppoint.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Droppoint.sci new file mode 100755 index 00000000..84fd6daa --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Droppoint.sci @@ -0,0 +1,28 @@ +// 08.10.07
+// 08.10.27
+// 09.06.02
+
+function AnsL=Droppoint(varargin)
+ Nargs=length(varargin);
+ Curve=varargin(1);
+ Eps=0.02;
+ if Nargs>=2
+ Eps=varargin(2);
+ end;
+ AnsL=[%inf,%inf];
+ for I=1:size(Curve,1)
+ P=Curve(I,:);
+ if P(1)~=%inf
+ Tmp=AnsL(size(AnsL,1),:);
+ if norm(P-Tmp)>Eps
+ AnsL=[AnsL;P];
+ end;
+ else
+ AnsL=[AnsL;%inf,%inf];
+ end;
+ end;
+ AnsL=AnsL(2:size(AnsL,1),:);
+ Tmp=Ptend(Curve);
+ AnsL=[AnsL(1:size(AnsL,1)-1,:);Tmp];
+endfunction;
+
diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Drwline.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Drwline.bin Binary files differnew file mode 100644 index 00000000..86d3110c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Drwline.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Drwline.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Drwline.sci new file mode 100755 index 00000000..60f0da1a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Drwline.sci @@ -0,0 +1,66 @@ +// 08.05.21
+// 11.05.25
+
+function Drwline(varargin)
+ global Wfile FID MilliIn PenThick PenThickInit;
+ Nall=length(varargin);
+ Thick=PenThick;
+ Tmp=varargin(Nall);
+ if type(Tmp)==1 & length(Tmp)==1
+ Setpen(Tmp);
+ Nall=Nall-1;
+ end;
+ for N=1:Nall
+ Tmp=varargin(N);
+ Pdata=Flattenlist(Tmp);
+ for II=1:length(Pdata) //11.05.25
+ Clist=MakeCurves(Op(II,Pdata));
+ DinM=Dataindex(Clist);
+ for n=1:size(DinM,1)
+ Tmp=DinM(n,:);
+ Data=Clist(Tmp(1):Tmp(2),:);
+ Mojisu=0;
+ Tmp=Data(1,:);
+ for I=1:size(Data,1)
+ Tmp=Data(I,:);
+ X=sprintf('%5.5f',Tmp(1));
+ Y=sprintf('%5.5f',Tmp(2));
+ Pt='('+X+','+Y+')';
+ if I==1 then
+ Str='\polyline'+Pt;
+ else
+ Str=Pt;
+ end
+ if Wfile=='default'
+ mprintf('%s',Str);
+ else
+ mfprintf(FID,'%s',Str);
+ end;
+ Mojisu=Mojisu+length(Str);
+ if Mojisu>80
+ if Wfile=='default'
+ mprintf('%c\n','%');
+ else
+ mfprintf(FID,'%c\n','%');
+ end
+ Mojisu=0;
+ end
+ end
+ if Mojisu~=0
+ if Wfile=='default'
+ mprintf('%s\n','%');
+ else
+ mfprintf(FID,'%s\n','%');
+ end
+ end;
+ end;
+ end;
+ if Wfile=='default'
+ mprintf('%c\n','%');
+ else
+ mfprintf(FID,'%c\n','%');
+ end;
+ end;
+ Setpen(Thick/PenThickInit);
+endfunction
+
diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Drwpt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Drwpt.bin Binary files differnew file mode 100644 index 00000000..02e88bd7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Drwpt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Drwpt.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Drwpt.sci new file mode 100755 index 00000000..5df4a877 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Drwpt.sci @@ -0,0 +1,142 @@ +// +// 08.05.31 +// 09.12.25 +// 10.01.01 +// 11.05.26 (for pdflatex) + +function Drwpt(varargin) + global Wfile FID TenSize TenSizeInit MilliIn; + Nargs=length(varargin); + All=Nargs; + Tmp=varargin(All); + Iro=[0,0,0,1]; + Iroflg=0; + if type(Tmp)==10 then + Iro=Ratiocmyk(Tmp); + Iroflg=1; + All=All-1; + end + Tmp=varargin(All); + Kosa=1; + if type(Tmp)==1 & length(Tmp)==1 + Kosa=Tmp; All=All-1; + end; + Ra=TenSize*1000/2.54/MilliIn; + if Iroflg>0 + Str='{\color[cmyk]{'; + for J=1:4 + Str=Str+string(Kosa*Iro(J)); + if J<4 then + Str=Str+','; + end + end + Str=Str+'}%'; + if Wfile=='default' + mprintf('%s\n',Str); + else + mfprintf(FID,'%s\n',Str); + end + end; + Mojisu=0; + for II=1:All + Tmp=varargin(II); + MS=Flattenlist(Tmp); // 11.05.29 + for I=1:length(MS); + P=Op(I,MS); + if InWindow(P)~='i' + continue + end + P=Doscaling(P); + X=sprintf('%5.5f',P(1)); + Y=sprintf('%5.5f',P(2)); + Str='\put('+X+','+Y+'){\circle*{'+sprintf('%6.6f',Ra)+'}}'; + if Wfile=='default' + mprintf('%s',Str); + else + mfprintf(FID,'%s',Str); + end + Mojisu=Mojisu+length(Str); + if Mojisu>80 + if Wfile=='default' + mprintf('%s\n','%'); + else + mfprintf(FID,'%s\n','%'); + end + Mojisu=0; + end + end + end; + Str=""; + if Iroflg>0 + Str='}'; + end; + if Mojisu>0 + Fmt='\n%s\n'; + else + Fmt='%s\n'; + end; + if Wfile=='default' + mprintf(Fmt,Str); + else + mfprintf(FID,Fmt,Str); + end; + Mojisu=0; + if Iroflg>0 + Str='{\color[cmyk]{'; + for J=1:4 + Str=Str+string(Iro(J)); + if J<4 then + Str=Str+','; + end + end + Str=Str+'}%'; + if Wfile=='default' + mprintf('%s\n',Str); + else + mfprintf(FID,'%s\n',Str); + end; + Mojisu=0; + end; + for II=1:All + Tmp=varargin(II); + MS=Flattenlist(Tmp); // 11.05.29 + for I=1:length(MS); + P=Op(I,MS); + if InWindow(P)~='i' + continue + end + P=Doscaling(P); + X=sprintf('%5.5f',P(1)); + Y=sprintf('%5.5f',P(2)); + Str='\put('+X+','+Y+'){\circle{'+sprintf('%6.6f',Ra)+'}}'; + if Wfile=='default' + mprintf('%s',Str); + else + mfprintf(FID,'%s',Str); + end + Mojisu=Mojisu+length(Str); + if Mojisu>80 + if Wfile=='default' + mprintf('%s\n','%'); + else + mfprintf(FID,'%s\n','%'); + end + Mojisu=0; + end + end + end + Str="%"; + if Iroflg>0 + Str='}%'; + end; + if Mojisu>0 + Fmt='\n%s\n'; + else + Fmt='%s\n'; + end; + if Wfile=='default' + mprintf(Fmt,Str); + else + mfprintf(FID,Fmt,Str); + end; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Drwxy.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Drwxy.bin Binary files differnew file mode 100644 index 00000000..6d275fab --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Drwxy.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Drwxy.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Drwxy.sci new file mode 100755 index 00000000..b091754f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Drwxy.sci @@ -0,0 +1,17 @@ +function Drwxy(varargin) + global XMIN XMAX YMIN YMAX GENTEN ARROWSIZE + global ZIKU XNAME XPOS YNAME YPOS ONAME OPOS ULEN; + Nargs=length(varargin) + Tmp=mtlb_findstr(ZIKU,'arrow'); + if Tmp~=[] + Arrowline([XMIN,GENTEN(2)],[XMAX,GENTEN(2)],ARROWSIZE); + Arrowline([GENTEN(1),YMIN],[GENTEN(1),YMAX],ARROWSIZE); + else + Drwline(Listplot([XMIN,GENTEN(2)],[XMAX,GENTEN(2)])); + Drwline(Listplot([GENTEN(1),YMIN],[GENTEN(1),YMAX])); + end; + Letter([XMAX,GENTEN(2)],XPOS,XNAME); + Letter([GENTEN(1),YMAX],YPOS,YNAME); + Letter(GENTEN,OPOS,ONAME); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Embed.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Embed.bin Binary files differnew file mode 100644 index 00000000..e3e99cfd --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Embed.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Embed.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Embed.sci new file mode 100755 index 00000000..9b67e366 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Embed.sci @@ -0,0 +1,41 @@ +// 09.09.25 +// 09.11.21 +// 09.11.26 + +function Out=Embed(varargin) + Nargs=length(varargin); + Pd3=varargin(1); + if Mixtype(Pd3)==1 + Pd3=list(Pd3); + elseif Mixtype(Pd3)==3 + Tmp=list(); + for I=1:length(Pd3) + Tmp=Mixjoin(Tmp,Pd3(I)); + end; + Pd3=Tmp; + end; + Tmpf=varargin(2); + if type(Tmpf)==10 + Tmp=varargin(3); + Tmp1=strsubst(Tmp,'[','('); + Vstr=strsubst(Tmp1,']',')'); + deff('Z=Tmpfn'+Vstr,'Z='+Tmpf); + else + Tmpfn=Tmpf; + end; + Out=list(); + for I=1:length(Pd3) + PD=Pd3(I); + Ans=[]; + for J=1:size(PD,1) + P=PD(J,:); + Tmp=Tmpfn(P(1),P(2)); + Ans=[Ans;Tmp]; + end; + Out($+1)=Ans; + end; + if length(Out)==1 + Out=Out(1); + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Enclosing.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Enclosing.bin Binary files differnew file mode 100644 index 00000000..6a5a9096 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Enclosing.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Enclosing.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Enclosing.sci new file mode 100755 index 00000000..bfc191b9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Enclosing.sci @@ -0,0 +1,23 @@ +// 08.05.31 +// 10.12.04 +// 16.12.05 to make it a closed curve + +function AnsL=Enclosing(varargin) + global MilliIn; + Eps=10^(-7); // 12.05 + Nargs=length(varargin); + P=varargin(1); + if Mixtype(P)==2 + Tmp=Op(1,P); + if type(Tmp)~=1 | length(Tmp)~=1 + AnsL=EnclosingS(P,varargin(2:Nargs)); + AnsL=Joincrvs(AnsL) // 10.12.04 + end + end; + Tmp1=Op(1,AnsL); + Tmp2=Op(size(AnsL,1),AnsL); + if norm(Tmp2-Tmp1)>Eps then // 12.05 + AnsL=[AnsL;Tmp1]; + end; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/EnclosingS.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/EnclosingS.bin Binary files differnew file mode 100644 index 00000000..a5f0596e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/EnclosingS.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/EnclosingS.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/EnclosingS.sci new file mode 100755 index 00000000..cded7ef2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/EnclosingS.sci @@ -0,0 +1,126 @@ +// 08.05.31 +// 08.11.12 +// 09.10.12 +// 09.10.14 +// 15.04.10 + +function AnsL=EnclosingS(varargin) + global MilliIn; + Nargs=length(varargin); + AnsL=[]; + PdataL=varargin(1); + Nall=length(PdataL); + Eps=10^(-3); + EEps=0.1; + S=[]; + Flg=0; + for I=2:Nargs + Tmp=varargin(I); + if type(Tmp)==1 & size(Tmp,1)==1 & size(Tmp,2)>1 + S=Tmp; + end + if type(Tmp)==1 & length(Tmp)==1 + if Flg==0 + Eps=Tmp; + Flg=Flg+1 + else + EEps=Tmp + end + end + end + F=Op(1,PdataL); G=Op(Nall,PdataL); + KL=IntersectcrvsPp(F,G); + if length(KL)==1 + Tmp=Op(1,KL); + P=Op(1,Tmp); + T1=Op(2,Tmp); + end + if length(KL)==0 + if Numptcrv(F)>Numptcrv(G) + Tmp=Nearestpt(F,G); + P=Op(1,Tmp); + T1=Op(2,Tmp); + else + Tmp=Nearestpt(G,F); + P=Op(3,Tmp); + T1=Op(4,Tmp); + end + end + if length(KL)>1 // 15.04.10 + if S==[] + disp('No Start Point'); + return + end; + Tmp=Op(1,KL); + P=Op(1,Tmp); + T1=Op(2,Tmp); + Tmp=norm(P-S); + for I=2:length(KL) + Tmp1=Op(1,Op(I,KL)); + Tmp2=norm(Tmp1-S); + if Tmp2<Tmp + P=Tmp1; + T1=Op(2,Op(I,KL)); + Tmp=Tmp2; + end + end + end + S=P; + AnsL=[]; + for N=1:Nall + F=Op(N,PdataL); + if N>1 P=Q;end + if N==Nall + Q=S; + else + Flg=0; + G=Op(N+1,PdataL); + KL=IntersectcrvsPp(G,F); + if length(KL)==1 + Tmp=Op(1,KL); + Q=Op(1,Tmp); + T3=Op(2,Tmp); + Flg=10; + end + if length(KL)==0 Flg=1; end + if length(KL)>=2 // Maple bug? + Tmp1=Op(1,Op(1,KL)); + Tmp2=Op(1,Op(2,KL)); + Tmp=norm(Tmp1-Tmp2); + if Tmp<Eps*10 Flg=1; end + end + if Flg==1 + if Numptcrv(F)>Numptcrv(G) + Tmp=Nearestpt(F,G); + Q=Op(1,Tmp); + T3=Op(4,Tmp); + Flg=10; + else + Tmp=Nearestpt(G,F); + Q=Op(3,Tmp); + T3=Op(2,Tmp); + Flg=10; + end + end + if Flg<10 + T2=%inf; + for I=1:length(KL) + Dt=Op(I,KL); + Tmp1=Op(1,Dt); + Tmp=Op(3,Dt); + Tmp2=Paramoncrv(Tmp1,Tmp,F); + Tmp3=Op(2,Dt); + if (Tmp2>T1+Eps) & (Tmp2<T2+Eps) + Q=Tmp1; + T2=Tmp2; + T3=Tmp3; + end + end + end + end + Tmp=Partcrv(P,Q,F); + T1=T3; + AnsL=Mixadd(AnsL,Tmp); + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Endpicture.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Endpicture.bin Binary files differnew file mode 100644 index 00000000..ceb0ffb6 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Endpicture.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Endpicture.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Endpicture.sci new file mode 100755 index 00000000..ff4a3c43 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Endpicture.sci @@ -0,0 +1,11 @@ +// 08.05.22 + +function Endpicture(varargin) + if length(varargin)==0 + Flg=1 + else + Flg=varargin(1); + end + Closepicture(Flg) +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Evlptablepara.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Evlptablepara.bin Binary files differnew file mode 100644 index 00000000..38c7da86 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Evlptablepara.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Evlptablepara.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Evlptablepara.sci new file mode 100755 index 00000000..b9c86eef --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Evlptablepara.sci @@ -0,0 +1,79 @@ +// 08.09.10 +// 13.10.21 ( __ added to varibles ) +// 17.05.21 Mdv, Ndv changed to division number + +function [Zval__,Xval__,Yval__]=Evlptablepara(MS__) + Nargs__=Mixlength(MS__); + Eps__=10^(-3); + Tmp__=Mixop(1,MS__); + FdL__=Fullformfunc(Tmp__); + Mdv=50; + Ndv__=50; + if Nargs__>=2 + Tmp__=Mixop(2,MS__); + if Mixtype(Tmp__)~=1 Tmp__=Mixop(1,Tmp__); end; + if length(Tmp__)>1 + Mdv__=Tmp__(1,1); + Ndv__=Tmp__(1,2); + else + Mdv__=Tmp__ + if Nargs__==2 + Ndv__=Mdv__ + else + Tmp1__=Mixop(3,MS__); + if type(Tmp1__)==1 & length(Tmp1__)==1 + Ndv__=Tmp1__; + else + Ndv__=Mdv__; + end + end + end + end; + Tmp__=Mixop(5,FdL__); + K__=mtlb_findstr(Tmp__,'='); + Uname__=part(Tmp__,1:K__-1); + Urange__=evstr(part(Tmp__,K__+1:length(Tmp__))); + Tmp__=Mixop(6,FdL__); + K__=mtlb_findstr(Tmp__,'='); + Vname__=part(Tmp__,1:K__-1); + Vrange__=evstr(part(Tmp__,K__+1:length(Tmp__))); + U1__=Urange__(1); U2__=Urange__(2); + V1__=Vrange__(1); V2__=Vrange__(2); + Du__=(U2__-U1__)/(Mdv__); //17.05.21 + Dv__=(V2__-V1__)/(Ndv__); //17.05.21 + Xyzstr__=[Mixop(2,FdL__),Mixop(3,FdL__),Mixop(4,FdL__)]; + I__=1; + Zval__=[]; + for v__=V1__:Dv__:V2__ + v1__=v__-Eps__/2; v2__=v__+Eps__/2; + ZuL__=[]; + for u__=U1__:Du__:U2__; + u1__=u__-Eps__/2; u2__=u__+Eps__/2; + Tmpv__=strsubst(Xyzstr__,Vname__,'v__'); + Tmp__=strsubst(Tmpv__,Uname__,'u1__'); + P1__=evstr(Tmp__); + Tmp__=strsubst(Tmpv__,Uname__,'u2__'); + P2__=evstr(Tmp__); + Tmp1__=Parapt(P1__); + Tmp2__=Parapt(P2__); + Dxu__=(Tmp2__(1)-Tmp1__(1))/Eps__; + Dyu__=(Tmp2__(2)-Tmp1__(2))/Eps__; + u1__=u__-Eps__/2; u2__=u__+Eps__/2; + Tmpu__=strsubst(Xyzstr__,Uname__,'u__'); + Tmp__=strsubst(Tmpu__,Vname__,'v1__'); + P1__=evstr(Tmp__); + Tmp__=strsubst(Tmpu__,Vname__,'v2__'); + P2__=evstr(Tmp__); + Tmp1__=Parapt(P1__); + Tmp2__=Parapt(P2__); + Dxv__=(Tmp2__(1)-Tmp1__(1))/Eps__; + Dyv__=(Tmp2__(2)-Tmp1__(2))/Eps__; + Tmp__=Dxu__*Dyv__-Dxv__*Dyu__; + ZuL__=[ZuL__,Tmp__]; + end; + Zval__=[Zval__;ZuL__]; + end; + Yval__=V1__:Dv__:V2__; + Xval__=U1__:Du__:U2__; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Evlptablepers.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Evlptablepers.bin Binary files differnew file mode 100644 index 00000000..775dd55e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Evlptablepers.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Evlptablepers.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Evlptablepers.sci new file mode 100755 index 00000000..15ddd0a8 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Evlptablepers.sci @@ -0,0 +1,77 @@ +// 08.09.21 +// 13.11.01 ( __ added to varibles ) + +function [Zval__,Xval__,Yval__]=Evlptablepers(MS__) + Nargs__=Mixlength(MS__); + Eps__=10^(-3); + Tmp__=Mixop(1,MS__); + FdL__=Fullformfunc(Tmp__); + Mdv__=50; + Ndv__=50; + if Nargs__>=2 + Tmp__=Mixop(2,MS__); + if Mixtype(Tmp__)~=1 Tmp__=Mixop(1,Tmp__); end; + if length(Tmp__)>1 + Mdv__=Tmp__(1,1); + Ndv__=Tmp__(1,2); + else + Mdv__=Tmp__ + if Nargs__==2 + Ndv__=Mdv__ + else + Tmp__1=Mixop(3,MS__); + if type(Tmp__1)==1 & length(Tmp__1)==1 + Ndv__=Tmp__1; + else + Ndv__=Mdv__; + end + end + end + end; + Tmp__=Mixop(5,FdL__); + K__=mtlb_findstr(Tmp__,'='); + Uname__=part(Tmp__,1:K__-1); + Urange__=evstr(part(Tmp__,K__+1:length(Tmp__))); + Tmp__=Mixop(6,FdL__); + K__=mtlb_findstr(Tmp__,'='); + Vname__=part(Tmp__,1:K__-1); + Vrange__=evstr(part(Tmp__,K__+1:length(Tmp__))); + U1__=Urange__(1); U2__=Urange__(2); + V1__=Vrange__(1); V2__=Vrange__(2); + Du__=(U2__-U1__)/(Mdv__-1); + Dv__=(V2__-V1__)/(Ndv__-1); + Xyzstr__=[Mixop(2,FdL__),Mixop(3,FdL__),Mixop(4,FdL__)]; + I__=1; + Zval__=[]; + for v__=V1__:Dv__:V2__ + v__1=v__-Eps__/2; v__2=v__+Eps__/2; + ZuL__=[]; + for u__=U1__:Du__:U2__; + u__1=u__-Eps__/2; u__2=u__+Eps__/2; + Tmp__v=strsubst(Xyzstr__,Vname__,'v__'); + Tmp__=strsubst(Tmp__v,Uname__,'u__1'); + P1__=evstr(Tmp__); + Tmp__=strsubst(Tmp__v,Uname__,'u__2'); + P2__=evstr(Tmp__); + Tmp__1=Perspt(P1__); + Tmp__2=Perspt(P2__); + Dxu__=(Tmp__2(1)-Tmp__1(1))/Eps__; + Dyu__=(Tmp__2(2)-Tmp__1(2))/Eps__; + u__1=u__-Eps__/2; u__2=u__+Eps__/2; + Tmp__u=strsubst(Xyzstr__,Uname__,'u__'); + Tmp__=strsubst(Tmp__u,Vname__,'v__1'); + P1__=evstr(Tmp__); + Tmp__=strsubst(Tmp__u,Vname__,'v__2'); + P2__=evstr(Tmp__); + Tmp__1=Perspt(P1__); + Tmp__2=Perspt(P2__); + Dxv__=(Tmp__2(1)-Tmp__1(1))/Eps__; + Dyv__=(Tmp__2(2)-Tmp__1(2))/Eps__; + Tmp__=Dxu__*Dyv__-Dxv__*Dyu__; + ZuL__=[ZuL__,Tmp__]; + end; + Zval__=[Zval__;ZuL__]; + end; + Yval__=V1__:Dv__:V2__; + Xval__=U1__:Du__:U2__; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Execmd.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Execmd.bin Binary files differnew file mode 100644 index 00000000..44e39527 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Execmd.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Execmd.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Execmd.sci new file mode 100755 index 00000000..2a4d1491 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Execmd.sci @@ -0,0 +1,8 @@ +// 10.01.16 +// 10.02.24 + +function Execmd(StrL) + for I=1:length(StrL) + execstr(Op(I,StrL)) + end; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Expr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Expr.bin Binary files differnew file mode 100644 index 00000000..b58e53fd --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Expr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Expr.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Expr.sci new file mode 100755 index 00000000..5b9df24b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Expr.sci @@ -0,0 +1,100 @@ +// +// 09.12.25 + +function Expr(varargin) + global Wfile FID MEMORI; + Nargs=length(varargin); + for I=1:3:Nargs + Tmp=varargin(I); + P=Doscaling(Tmp); + X=P(1); + Y=P(2); + Houkou=varargin(I+1); + Mojiretu='$'+varargin(I+2)+'$'; + Hset=Houkou; + Vhoko='c'; + if mtlb_findstr(Hset,'n')~=[] + Vhoko='n'; Y=Y+MEMORI; + end + if mtlb_findstr(Hset,'s')~=[] + Vhoko='s'; Y=Y-MEMORI; + end + Hhoko='c'; + if mtlb_findstr(Hset,'e')~=[] + Hhoko='e'; X=X+MEMORI; + end + if mtlb_findstr(Hset,'w')~=[] + Hhoko='w'; X=X-MEMORI; + end + Hoko=Vhoko+Hhoko; + Suu='+-.0123456789'; + SuuL=Suu; + Hcode=ascii(Houkou); + J=1; Dstr=''; + while J<=length(Houkou) + Tmp=char(Hcode(J)); + if mtlb_findstr(SuuL,Tmp)~=[] + if Dstr=='' + Hk=char(Hcode(J-1)); + end + Dstr=Dstr+Tmp; + else + if Dstr~='' + Nmbr=msscanf(Dstr,'%f'); + D=Nmbr*MEMORI; + if Hk=='n' + Y=Y+D; + end + if Hk=='s' + Y=Y-D; + end + if Hk=='e' + X=X+D; + end + if Hk=='w' + X=X-D; + end + Dstr=''; + end + end + J=J+1; + end + if Dstr~='' + Nmbr=msscanf(Dstr,'%f'); + D=Nmbr*MEMORI; + if Hk=='n' + Y=Y+D; + end + if Hk=='s' + Y=Y-D; + end + if Hk=='e' + X=X+D; + end + if Hk=='w' + X=X-D; + end + end + CalcWidth(Hoko,Mojiretu); + CalcHeight(Hoko,Mojiretu); + Tmp='){\hspace*{\Width}'; + Str=Tmp+'\raisebox{\Height}{'+Mojiretu+'}}'; + if Wfile=='default' + mprintf('%s','\put('); + mprintf('%6.4f%s%6.4f',X,',',Y); + mprintf('%s%s\n',Str,'%'); + mprintf('%s\n','%'); + else + mfprintf(FID,'%s','\put('); + mfprintf(FID,'%6.4f%s%6.4f',X,',',Y); + mfprintf(FID,'%s%s\n',Str,'%'); + mfprintf(FID,'%s\n','%'); + end + if Wfile=='default' + mprintf('%s\n','%'); + else + mfprintf(FID,'%s\n','%'); + end + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Exprrot.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Exprrot.bin Binary files differnew file mode 100644 index 00000000..17904d7a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Exprrot.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Exprrot.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Exprrot.sci new file mode 100755 index 00000000..d51dfa91 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Exprrot.sci @@ -0,0 +1,36 @@ +// 08.05.31 +// 08.08.24 +// 09.12.25 + +function Exprrot(varargin) + global MEMORI; + P=varargin(1); + V=varargin(2); N=3; + P=Doscaling(P); + V=Doscaling(V); + Tmov=0; + Tmp=varargin(N); + if type(Tmp)==1 + Tmov=Tmp; N=N+1; + end + Nmov=0; + Tmp=varargin(N); + if type(Tmp)==1 then + Nmov=Tmp; N=N+1; + end + Mojiretu='$'+varargin(N)+'$'; + Tv=1/norm(V)*V; + Nv=[-Tv(2),Tv(1)]; + P=P+MEMORI*Tmov*Tv+MEMORI*Nmov*Nv; + Tmp=acos(V(1)/norm(V)); + Theta=round(Tmp*180/%pi); + if V(2)>=0 + Units=''; + else + Units='units=-360,'; + end + Tmp='\rotatebox['+Units+'origin=c]{'+string(Theta); + Tmp=Tmp+'}{'+Mojiretu+'}'; + Letter(P,"c",Tmp); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Faceremovaldata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Faceremovaldata.bin Binary files differnew file mode 100644 index 00000000..5095cc06 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Faceremovaldata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Faceremovaldata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Faceremovaldata.sci new file mode 100755 index 00000000..ae0bea54 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Faceremovaldata.sci @@ -0,0 +1,78 @@ +// 09.10.29 +// 10.02.07 debugged + +function NohiddenL=Faceremovaldata(FL,CLadd,PT) + global PHHIDDENDATA VELNO VELHI; + NohiddenL=list(); + HiddenL=list(); + Eps=10^(-4); + if mtlb_findstr(PT,'para')~=[] + Ptype=1; //para + else + Ptype=-1; //pers + end; + if length(CLadd)>0 + if type(CLadd)==1 + C=list(); + if size(CLadd,1)>1 + for I=1:size(CLadd,1) + C($+1)=CLadd(I,:); + end; + else + for I=1:3:size(CLadd,2) + C($+1)=CLadd(1,I:I+2); + end; + end; + CrvL=list(C); + elseif type(CLadd(1))==1 + CrvL=list(); + for J=1:length(CLadd)// + Ctmp=CLadd(J); + C=list(); + if size(Ctmp,1)>1 + for I=1:size(Ctmp,1) + C($+1)=Ctmp(I,:); + end; + else + for I=1:3:size(Ctmp,2) + C($+1)=Ctmp(1,I:I+2); + end; + end; + CrvL($+1)=C; + end; + else + CrvL=CLadd; + end; + else + CrvL=list(); + end; + VELNO=list(); + for I=1:length(CrvL) + Tmp=CrvL(I); + for J=1:length(Tmp)-1 + Edge=list(Tmp(J),Tmp(J+1)); + Ntmp=length(VELNO); // + VELNO(Ntmp+1)=list(Edge,0,Ntmp+1); // + end; + end; + VELHI=list(); + Out=MakeveLfaceL(FL); + FaceL=Out(2); + for Nf=1:length(FaceL) + Face=FaceL(Nf); + Menkakusi2(Face,Nf,Ptype); + end; + for I=1:length(VELNO) + Edge=Op(1,VELNO(I)); + if norm(Edge(1)-Edge(2))>Eps + NohiddenL($+1)=Spaceline(Edge); + end; + end; + for I=1:length(VELHI) + Edge=Op(1,VELHI(I)); + if norm(Edge(1)-Edge(2))>Eps + HiddenL($+1)=Spaceline(Edge); + end; + end; + PHHIDDENDATA=HiddenL; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Faceremovaldata0.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Faceremovaldata0.bin Binary files differnew file mode 100644 index 00000000..ea9738c8 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Faceremovaldata0.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Faceremovaldata0.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Faceremovaldata0.sci new file mode 100755 index 00000000..7dc8bef1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Faceremovaldata0.sci @@ -0,0 +1,81 @@ +// NEW +// Faceremovaldata +// 09.10.24 +// 09.10.26 +// 09.10.27 + +function NohiddenL=Faceremovaldata(FL,CLadd,PT) + global PHHIDDENDATA VELNO VELHI; + NohiddenL=list(); + HiddenL=list(); + Eps=10^(-4); + if mtlb_findstr(PT,'para')~=[] + Ptype=1; //para + else + Ptype=-1; //pers + end; + if length(CLadd)>0 + if type(CLadd)==1 + C=list(); + if size(CLadd,1)>1 + for I=1:size(CLadd,1) + C($+1)=CLadd(I,:); + end; + else + for I=1:3:size(CLadd,2) + C($+1)=CLadd(1,I:I+2); + end; + end; + CrvL=list(C); + elseif type(CLadd(1))==1 + CrvL=list(); + for J=1:length(CL) + Ctmp=CLadd(J); + C=list(); + if size(Ctmp,1)>1 + for I=1:size(Ctmp,1) + C($+1)=Ctmp(I,:); + end; + else + for I=1:3:size(Ctmp,2) + C($+1)=Ctmp(1,I:I+2); + end; + end; + CrvL($+1)=C; + end; + else + CrvL=CLadd; + end; + else + CrvL=list(); + end; + VELNO=list(); + for I=1:length(CrvL) + Tmp=CrvL(I); + for J=1:length(Tmp)-1 + Edge=list(Tmp(J),Tmp(J+1)); + VELNO($+1)=list(Edge,0); + end; + end; + VELHI=list(); + Out=MakeveLfaceL(FL); + FaceL=Out(2); + for Nf=1:length(FaceL) + Face=FaceL(Nf); + Menkakusi(Face,Nf,Ptype); + end; + for I=1:length(VELNO) + Edge=Op(1,VELNO(I)); + if norm(Edge(1)-Edge(2))>Eps + NohiddenL($+1)=Spaceline(Edge); + end; + end; + for I=1:length(VELHI) + Edge=Op(1,VELHI(I)); + if norm(Edge(1)-Edge(2))>Eps + HiddenL($+1)=Spaceline(Edge); + end; + end; + PHHIDDENDATA=HiddenL; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Facesdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Facesdata.bin Binary files differnew file mode 100644 index 00000000..84ab9833 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Facesdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Facesdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Facesdata.sci new file mode 100755 index 00000000..0ed2f249 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Facesdata.sci @@ -0,0 +1,154 @@ +///////// +// 09.10.29 +// 11.01.13 (HiddenL) remodified 110122 +// 13.03.30 (HiddenL) debugged 140330 + +function NohiddenL=Facesdata(varargin) + global PHHIDDENDATA VELNO VELHI; + Nargs=length(varargin); + FL=varargin(1); + PT=varargin($); + if mtlb_findstr(PT,'para')~=[] + Ptype=1; //para + else + Ptype=-1; //pers + end; + if Nargs==2 + CLadd=list(); + else + CLadd=varargin(2); + end; + NohiddenL=list(); + HiddenL=list(); + Eps=10^(-4); + if length(CLadd)>0 + if type(CLadd)==1 + C=list(); + if size(CLadd,1)>1 + for I=1:size(CLadd,1) + C($+1)=CLadd(I,:); + end; + else + for I=1:3:size(CLadd,2) + C($+1)=CLadd(1,I:I+2); + end; + end; + CrvL=list(C); + elseif type(CLadd(1))==1 + CrvL=list(); + for J=1:length(CL) + Ctmp=CLadd(J); + C=list(); + if size(Ctmp,1)>1 + for I=1:size(Ctmp,1) + C($+1)=Ctmp(I,:); + end; + else + for I=1:3:size(Ctmp,2) + C($+1)=Ctmp(1,I:I+2); + end; + end; + CrvL($+1)=C; + end; + else + CrvL=CLadd; + end; + else + CrvL=list(); + end; + Out=MakeveLfaceL(FL); + VELNO=Out(1); + VELHI=list(); + for I=1:length(CrvL) + Tmp=CrvL(I); + for J=1:length(Tmp)-1 + Edge=list(Tmp(J),Tmp(J+1)); + Ntmp=length(VELNO); // + VELNO(Ntmp+1)=list(Edge,0,Ntmp+1); // + end; + end; + FaceL=Out(2); + if mtlb_findstr(PT,'raw')==[] + for Nf=1:length(FaceL) + Face=FaceL(Nf); + Menkakusi2(Face,Nf,Ptype); + end; + end; + for I=1:length(VELNO) + Edge=Op(1,VELNO(I)); + if norm(Edge(1)-Edge(2))>Eps + NohiddenL($+1)=Spaceline(Edge); + end; + end; + EdgeL=list(); // from 13.03.30 + for K=1:length(VELHI) + Edge=Op(1,VELHI(K)); + P=Edge(1); Q=Edge(2); + if norm(P-Q)>Eps then + EdgeL($+1)=Edge; + end + end + for K=1:length(EdgeL) + Edge=EdgeL(K); // + P=Edge(1); Q=Edge(2); + Cflg=0; + for J=K+1:length(EdgeL) + Ej=EdgeL(J); // + Pj=Ej(1); Qj=Ej(2); + if norm(Crossprod(Q-P,Qj-Pj))>Eps then + continue + end + if norm(Q-Pj)<Eps then + EdgeL(J)=list(P,Qj); + Cflg=1; + break; + end + if norm(P-Qj)<Eps then + EdgeL(J)=list(Q,Pj) + Cflg=1; + break; + end; + end + if Cflg==0 then + HiddenL($+1)=Spaceline(Edge); + end; + end; // upto 14.03.30 + +// L=1:length(VELHI); // from 11.01.13 +// while length(L)>0 +// Lr=[]; +// Edge=Op(1,VELHI(L(1))); // +// P=Edge(1); +// Q=Edge(2); +// +// disp([293,P,Q]) +// +// if norm(P-Q)>Eps +// for J=2:length(L) +// Rflg=0; +// Ej=Op(1,VELHI(L(J))); // +// Pj=Ej(1); +// Qj=Ej(2); +// if norm(Crossprod(Q-P,Qj-Pj))>Eps +// Lr=[Lr,J]; +// continue; +// end; +// if norm(Q-Pj)<Eps +// Edge(2)=Qj; +// Rflg=1; +// elseif norm(P-Qj)<Eps +// Edge(1)=Pj; +// Rflg=1; +// end; +// if Rflg==0 +// Lr=[Lr,J]; +// end; +// end; +// else +// Lr=L(2:length(L)); +// end; +// L=Lr; // upto 11.01.13 +// HiddenL($+1)=Spaceline(Edge); +// end; + PHHIDDENDATA=HiddenL; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Facesdata0.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Facesdata0.bin Binary files differnew file mode 100644 index 00000000..82821a8b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Facesdata0.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Facesdata0.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Facesdata0.sci new file mode 100755 index 00000000..c300cf6e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Facesdata0.sci @@ -0,0 +1,88 @@ +// 09.10.27 + +function NohiddenL=Facesdata(varargin) + global PHHIDDENDATA VELNO VELHI; + Nargs=length(varargin); + FL=varargin(1); + PT=varargin($); + if mtlb_findstr(PT,'para')~=[] + Ptype=1; //para + else + Ptype=-1; //pers + end; + if Nargs==2 + CLadd=list(); + else + CLadd=varargin(2); + end; + NohiddenL=list(); + HiddenL=list(); + Eps=10^(-4); + if length(CLadd)>0 + if type(CLadd)==1 + C=list(); + if size(CLadd,1)>1 + for I=1:size(CLadd,1) + C($+1)=CLadd(I,:); + end; + else + for I=1:3:size(CLadd,2) + C($+1)=CLadd(1,I:I+2); + end; + end; + CrvL=list(C); + elseif type(CLadd(1))==1 + CrvL=list(); + for J=1:length(CL) + Ctmp=CLadd(J); + C=list(); + if size(Ctmp,1)>1 + for I=1:size(Ctmp,1) + C($+1)=Ctmp(I,:); + end; + else + for I=1:3:size(Ctmp,2) + C($+1)=Ctmp(1,I:I+2); + end; + end; + CrvL($+1)=C; + end; + else + CrvL=CLadd; + end; + else + CrvL=list(); + end; + Out=MakeveLfaceL(FL); + VELNO=Out(1); + VELHI=list(); + for I=1:length(CrvL) + Tmp=CrvL(I); + for J=1:length(Tmp)-1 + Edge=list(Tmp(J),Tmp(J+1)); + VELNO($+1)=list(Edge,0); + end; + end; + FaceL=Out(2); + if mtlb_findstr(PT,'raw')==[] + for Nf=1:length(FaceL) + Face=FaceL(Nf); + Menkakusi(Face,Nf,Ptype); + end; + end; + for I=1:length(VELNO) + Edge=Op(1,VELNO(I)); + if norm(Edge(1)-Edge(2))>Eps + NohiddenL($+1)=Spaceline(Edge); + end; + end; + for I=1:length(VELHI) + Edge=Op(1,VELHI(I)); + if norm(Edge(1)-Edge(2))>Eps + HiddenL($+1)=Spaceline(Edge); + end; + end; + PHHIDDENDATA=HiddenL; +endfunction + + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Findcell.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Findcell.bin Binary files differnew file mode 100644 index 00000000..ade40fbf --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Findcell.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Findcell.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Findcell.sci new file mode 100755 index 00000000..062fcc5c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Findcell.sci @@ -0,0 +1,127 @@ +// 09.11.26 +// 09.12.06 +// 09.12.14 +// 10.01.12 +// 10.01.13 +// 10.01.14 + +function Out=Findcell(varargin)//TbL,Nrg,Mrg + Nargs=length(varargin); + TbL=varargin(1); + Ag=varargin(2); + Alpha='-ABCDEFGHIJKLMNOPQRSTUVWXYZ'; + if type(Ag)==10 + Clm=[]; + Rstr=''; + for I=1:length(Ag) + C=part(Ag,I:I); + Tmp=ascii(C); + if Tmp>=96 + C=char(Tmp-32); + end; + Tmp=mtlb_findstr(C,Alpha) + if length(Tmp)>0 + Clm=[Clm,Tmp-1]; + else + Rstr=Rstr+C; + end; + end; + Nrg=0; + for I=length(Clm):-1:1 + Tmp=Clm(I); + Tmp1=length(Clm)-I; + Nrg=Nrg+Tmp*26^Tmp1; + end; + Mrg=eval(Rstr); + if Nargs>=3 + Ag=varargin(3); + Clm=[]; + Rstr=''; + for I=1:length(Ag) + C=part(Ag,I:I); + Tmp=ascii(C); + if Tmp>=96 + C=char(Tmp-32); + end; + Tmp=mtlb_findstr(C,Alpha) + if length(Tmp)>0 + Clm=[Clm,Tmp]; + else + Rstr=Rstr+C; + end; + end; + Nrg2=0; + for I=length(Clm):-1:1 + Tmp=Clm(I); + Tmp1=length(Clm)-I; + Nrg2=Nrg2+Tmp*26^Tmp1; + end; + Nrg=[Nrg,Nrg2]; + Mrg=[Mrg,eval(Rstr)]; + end; + else + Nrg=varargin(2); + Mrg=varargin(3); + end; + if length(Mrg)==1 + m1=Mrg; m2=m1+1; + else + m1=Mrg(1); m2=Mrg(2); + end; + if length(Nrg)==1 + n1=Nrg; n2=n1+1; + else + n1=Nrg(1); n2=Nrg(2); + end; + n1=n1+1; n2=n2+1; + m1=m1+1; m2=m2+1; + Hind=TbL(2); + Vind=TbL(3); + HL=Mixsub(TbL(2),TbL(1)); + Tmp1=Op(1,TbL(4)); + Tmp2=Op(2,TbL(4)); + HL=Mixjoin(list(Tmp1),HL,list(Tmp2)); + VL=Mixsub(TbL(3),TbL(1)); + Tmp1=Op(1,TbL(5)); + Tmp2=Op(2,TbL(5)); + VL=Mixjoin(list(Tmp1),VL,list(Tmp2)); + Tmp=TbL(6); + Tmp1=Listplot([Ptsw(Tmp),Ptnw(Tmp)]); + Tmp2=Listplot([Ptse(Tmp),Ptne(Tmp)]); + HL=Mixjoin(list(Tmp1),HL,list(Tmp2)); + Tmp1=Listplot([Ptnw(Tmp),Ptne(Tmp)]); + Tmp2=Listplot([Ptsw(Tmp),Ptse(Tmp)]); + VL=Mixjoin(list(Tmp1),VL,list(Tmp2)); + Tmp=HL(n1); + if type(Tmp)==1 + H1=Tmp(1,1); + else + Tmp1=Tmp(1); + H1=Tmp1(1,1); + end; + Tmp=HL(n2); + if type(Tmp)==1 + H2=Tmp(1,1); + else + Tmp1=Tmp(1); + H2=Tmp1(1,1); + end; + Tmp=VL(m1); + if type(Tmp)==1 + V1=Tmp(1,2); + else + Tmp1=Tmp(1); + V1=Tmp1(1,2); + end; + Tmp=VL(m2); + if type(Tmp)==1 + V2=Tmp(1,2); + else + Tmp1=Tmp(1); + V2=Tmp1(1,2); + end; + Pt=[(H1+H2)/2,(V1+V2)/2]; + High=(V1-V2)/2; + Wide=(H2-H1)/2; + Out=list(Pt,Wide,High); +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Flattenlist.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Flattenlist.bin Binary files differnew file mode 100644 index 00000000..31e5d594 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Flattenlist.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Flattenlist.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Flattenlist.sci new file mode 100755 index 00000000..903679ab --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Flattenlist.sci @@ -0,0 +1,17 @@ +// 10.11.13 + +function Out=Flattenlist(varargin) + Out=list(); + for N=1:length(varargin) + D=varargin(N); + if type(D)~=15 + Out($+1)=D; + else + for I=1:length(D) + Ds=D(I); + Tmp=Flattenlist(Ds); + Out=lstcat(Out,Tmp); + end; + end; + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Fontsize.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Fontsize.bin Binary files differnew file mode 100644 index 00000000..10387e38 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Fontsize.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Fontsize.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Fontsize.sci new file mode 100755 index 00000000..218b599f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Fontsize.sci @@ -0,0 +1,54 @@ +function Fontsize(Ookisa) + global Wfile FID; + Str='%'; + Ucode=ascii(Ookisa); + S=char(Ucode(1)); + if S=='n' + Str='\normalsize%'; + end + if S=='s' + if length(Ucode)==1 + Tmp=''; + else + Tmp=char(Ucode(2)); + end + if Tmp=='s' + Str='\scriptsize%'; + else + Str='\small%'; + end + end + if S=='f' + Str='\footnotesize%'; + end + if S=='t' + Str='\tiny%'; + end + if S=='l' + Str='\large%'; + end + if S=='L' + if length(Ucode)==1 + Tmp='a'; + else + Tmp=char(Ucode(2)); + end + if Tmp=='a' + Str='\Large%'; + else + Str='\LARGE%'; + end + end + if S=='h' + Str='\huge%'; + end + if S=='H' + Str='\Huge%'; + end + if Wfile=='default' + mprintf('%s\n',Str); + else + mfprintf(FID,'%s\n',Str); + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Fouriercoeff.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Fouriercoeff.bin Binary files differnew file mode 100644 index 00000000..e718a4ba --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Fouriercoeff.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Fouriercoeff.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Fouriercoeff.sci new file mode 100755 index 00000000..af259244 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Fouriercoeff.sci @@ -0,0 +1,21 @@ +// 09.03.13 + +function Out=Fouriercoeff(Fn,T,Ch,K) + Eps=10^(-5); + L=T/2; + Tmp1='Out=FUNC(x)'; + if Ch=='c' + Tmp2='Out=Fn(10*L*x)*cos('+string(K)+'*%pi*x*10)'; + else + Tmp2='Out=Fn(10*L*x)*sin('+string(K)+'*%pi*x*10)'; + end; + deff(Tmp1,Tmp2); + Out=10*intg(-0.1,0.1,FUNC); + if K==0 + Out=Out/2; + end; + if abs(Out)<Eps + Out=0; + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/FouriercoeffL.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/FouriercoeffL.bin Binary files differnew file mode 100644 index 00000000..59f91f6c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/FouriercoeffL.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/FouriercoeffL.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/FouriercoeffL.sci new file mode 100755 index 00000000..2d0d840b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/FouriercoeffL.sci @@ -0,0 +1,18 @@ +// 09.03.12 + +function Out=FouriercoeffL(Fn,T,Upto) + Out=Mix(Fouriercoeff(Fn,T,'c',0)); + CL=[]; + for K=1:Upto + Tmp=Fouriercoeff(Fn,T,'c',K); + CL=[CL,Tmp]; + end; + Out=Mixadd(Out,CL); + CL=[]; + for K=1:Upto + Tmp=Fouriercoeff(Fn,T,'s',K); + CL=[CL,Tmp]; + end; + Out=Mixadd(Out,CL); + Out=Mixadd(Out,T); +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Fouriersum.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Fouriersum.bin Binary files differnew file mode 100644 index 00000000..bf840511 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Fouriersum.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Fouriersum.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Fouriersum.sci new file mode 100755 index 00000000..6182f4a7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Fouriersum.sci @@ -0,0 +1,15 @@ +// 09.03.12 + +function Out=Fouriersum(COEFF,x) + C=Mixop(1,COEFF); + A=Mixop(2,COEFF); + B=Mixop(3,COEFF); + T=Mixop(4,COEFF); + Upto=size(A,2); + L=T/2; + K=1:Upto; + Tmp1=sum(A(K).*cos(K*%pi*x/L)); + Tmp2=sum(B(K).*sin(K*%pi*x/L)); + Out=C+Tmp1+Tmp2; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Fracform.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Fracform.bin Binary files differnew file mode 100644 index 00000000..478d4e52 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Fracform.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Fracform.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Fracform.sci new file mode 100755 index 00000000..437ff122 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Fracform.sci @@ -0,0 +1,18 @@ +// 09.08.23 + +function Out=Fracform(X) + [N,D]=rat(X); + Out=[]; + for I=1:size(X,1) + for J=1:size(X,2) + Tmp1=N(I,J); + Tmp2=D(I,J); + if Tmp2==1 + Out(I,J)=string(Tmp1); + else + Out(I,J)=string(Tmp1)+'/'+string(Tmp2); + end; + end; + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Framedata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Framedata.bin Binary files differnew file mode 100644 index 00000000..442df592 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Framedata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Framedata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Framedata.sci new file mode 100755 index 00000000..071f7381 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Framedata.sci @@ -0,0 +1,36 @@ +// 2011.12.18 ( available for list ) + +function P=Framedata(varargin) + global XMIN XMAX YMIN YMAX + VaL=Flattenlist(varargin); + N=length(VaL); + if N<=1 + H=1.0*10^(-4); + PA=[XMIN+H,YMIN+H]; + PB=[XMAX-H,YMIN+H]; + PC=[XMAX-H,YMAX-H]; + PD=[XMIN+H,YMAX-H]; + else + Tmp=VaL(N); + if type(Tmp)==1 & length(Tmp)==1 + Dy=Tmp; + Dx=Dy; + Tmp=VaL(N-1); + if type(Tmp)==1 & length(Tmp)==1 + Dx=Tmp; + end; + Tmp=VaL(1); + X=Tmp(1); Y=Tmp(2); + X1=X-Dx; X2=X+Dx; + Y1=Y-Dy; Y2=Y+Dy; + else + Tmp=VaL(1); + X1=Tmp(1); X2=Tmp(2); + Tmp=VaL(2); + Y1=Tmp(1); Y2=Tmp(2); + end; + PA=[X1,Y1]; PB=[X2,Y1]; + PC=[X2,Y2]; PD=[X1,Y2]; + end; + P=Listplot(PA,PB,PC,PD,PA) +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Fullformfunc.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Fullformfunc.bin Binary files differnew file mode 100644 index 00000000..b86c79cf --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Fullformfunc.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Fullformfunc.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Fullformfunc.sci new file mode 100755 index 00000000..97ddae5b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Fullformfunc.sci @@ -0,0 +1,79 @@ +// 08.08.16 +// 08.09.16 +// 09.11.14 +// 10.08.19 +// 13.10.22 ( __ added to varibles ) + +function Out__=Fullformfunc(FdL__) + Out__=MixS(Mixop(1,FdL__)); + N__=Mixlength(FdL__); + for Jrg__=1:N__ + Tmp__=Mixop(Jrg__,FdL__); + if part(Tmp__,length(Tmp__))==']' + break + end; + end; + Urg__=Mixop(Jrg__,FdL__); + K__=mtlb_findstr(Urg__,'='); + Uname__=stripblanks(part(Urg__,1:K__-1)); + Tmp__=part(Urg__,K__+1:length(Urg__)); // 2013.10.22 + Tmp1__=evstr(Tmp__); + Urg__=Uname__+"=["+string(Tmp1__(1))+","+string(Tmp1__(2))+"]"; + Vrg__=Mixop(Jrg__+1,FdL__); + K__=mtlb_findstr(Vrg__,'='); + Vname__=stripblanks(part(Vrg__,1:K__-1)); + Tmp__=part(Vrg__,K__+1:length(Vrg__)); + Tmp1__=evstr(Tmp__); + Vrg__=Vname__+"=["+string(Tmp1__(1))+","+string(Tmp1__(2))+"]"; // + if Jrg__==2 + Tmp__=Mixop(1,FdL__); + K__=mtlb_findstr(Tmp__,'='); + Zf__=part(Tmp__,K__+1:length(Tmp__)); + Tmp__=MixS(Uname__,Vname__,Zf__,Urg__,Vrg__); + Out__=Mixjoin(Out__,Tmp__); + elseif Jrg__==4 + Tmp__=Mixop(1,FdL__); + K__=mtlb_findstr(Tmp__,'='); + Zf__=part(Tmp__,K__+1:length(Tmp__)); + Tmp__=Mixop(2,FdL__); + K__=mtlb_findstr(Tmp__,'='); + Xname__=stripblanks(part(Tmp__,1:K__-1)); + Xf__=part(Tmp__,K__+1:length(Tmp__)); + Tmp__=Mixop(3,FdL__); + K__=mtlb_findstr(Tmp__,'='); + Yname__=stripblanks(part(Tmp__,1:K__-1)); + Yf__=part(Tmp__,K__+1:length(Tmp__)); + Tmp__=strsubst(Zf__,Xname__,'('+Xf__+')'); + Zf__=strsubst(Tmp__,Yname__,'('+Yf__+')'); + Tmp__=MixS(Xf__,Yf__,Zf__,Urg__,Vrg__); + Out__=Mixjoin(Out__,Tmp__); + else + Tmp__=Mixop(2,FdL__); + K__=mtlb_findstr(Tmp__,'='); + Xf__=part(Tmp__,K__+1:length(Tmp__)); + Tmp__=Mixop(3,FdL__); + K__=mtlb_findstr(Tmp__,'='); + Yf__=part(Tmp__,K__+1:length(Tmp__)); + Tmp__=Mixop(4,FdL__); + K__=mtlb_findstr(Tmp__,'='); + Zf__=part(Tmp__,K__+1:length(Tmp__)); + Tmp__=MixS(Xf__,Yf__,Zf__,Urg__,Vrg__); + Out__=Mixjoin(Out__,Tmp__); + end; + DrwS__='enws'; + BdyL__=[]; + for I__=Jrg__+2:Mixlength(FdL__) + Tmp__=Mixop(I__,FdL__); + if type(Tmp__)==10 + if length(Tmp__)==0 // + Tmp__=' '; + end; + DrwS__=Tmp__; + end; + if type(Tmp__)==1 & size(Tmp__,2)>1 + BdyL__=Tmp__; + end; + end; + Tmp__=MixS(DrwS__,BdyL__); + Out__=Mixjoin(Out__,Tmp__); +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Gaiseki.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Gaiseki.bin Binary files differnew file mode 100644 index 00000000..5ada2529 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Gaiseki.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Gaiseki.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Gaiseki.sci new file mode 100755 index 00000000..3d17995e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Gaiseki.sci @@ -0,0 +1,11 @@ +function G=Gaiseki(a,b) + if length(a)==3 + Tmp=[a(2)*b(3)-a(3)*b(2),... + a(3)*b(1)-a(1)*b(3),... + a(1)*b(2)-a(2)*b(1)]; + else + Tmp=a(1)*b(2)-a(2)*b(1); + end; + G=Tmp; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Getcounter.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Getcounter.bin Binary files differnew file mode 100644 index 00000000..9dbd0923 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Getcounter.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Getcounter.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Getcounter.sci new file mode 100755 index 00000000..ca4e0d2a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Getcounter.sci @@ -0,0 +1,7 @@ +// 09.09.10 + +function Out=Getcounter() + global GCOUNTER; + Out=GCOUNTER; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Gettrace.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Gettrace.bin Binary files differnew file mode 100644 index 00000000..b99800fe --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Gettrace.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Gettrace.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Gettrace.sci new file mode 100755 index 00000000..5395d885 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Gettrace.sci @@ -0,0 +1,7 @@ +// 09.09.10 + +function Out=Gettrace(); + global TRACEDATA; + Out=TRACEDATA; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Hatchdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Hatchdata.bin Binary files differnew file mode 100644 index 00000000..d688039f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Hatchdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Hatchdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Hatchdata.sci new file mode 100755 index 00000000..236287ef --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Hatchdata.sci @@ -0,0 +1,141 @@ +// 08.05.21 +// 09.10.05 +// 09.12.25 +// 10.01.20 +// 10.02.01 +// 10.11.04 ( debugged 83 ) + +function ShaLs=Hatchdata(varargin) + global XMIN XMAX YMIN YMAX MilliIn; + ShaL=[]; + Nargs=length(varargin); + Kakudo=45; + Kankaku=0.125*1000/2.54/MilliIn; + Tmp=Doscaling([XMIN,YMIN]); + Xmn=Tmp(1); Ymn=Tmp(2); + Tmp=Doscaling([XMAX,YMAX]); + Xmx=Tmp(1); Ymx=Tmp(2); + for N=Nargs:-1:1 + Tmp=varargin(N); + if Mixtype(Tmp)~=1 + break + end + end + if N<Nargs + Kakudo=varargin(N+1); + if N==Nargs-2 + Kankaku=0.125*varargin(Nargs); + end + end + NaitenL=varargin(1); + if Mixtype(NaitenL)==1 + NaitenL=list(NaitenL); + end + Ns=2; + StartP=Op(1,NaitenL); + if type(StartP)==10 + StartP=[(Xmn+Xmx)/2,(Ymn+Ymx)/2]; + end + if Mixtype(varargin(2))==1 + StartP=varargin(2); + StartP=Doscaling(StartP); + Ns=3; + end + Tmp=list(); + for I=Ns:N + Tmp1=list(varargin(I)); + Tmp=Mixjoin(Tmp,Tmp1); + end + Bdy=Kyoukai(Tmp); + Bdys=list(); + for I=1:length(Bdy) + Tmp1=Bdy(I); + Tmp2=Doscaling(Tmp1); + Bdys=Mixjoin(Bdys,list(Tmp2)); + end; + Bdy=Bdys; + PtnL=list(); + for I=1:length(NaitenL) + Tmp=Op(I,NaitenL); + if type(Tmp)==1 + Tmp1=Naigai(Tmp,Bdy); + PtnL=Mixjoin(PtnL,list(Tmp1)); + else + if type(Tmp)~=10 + disp('Type Error'); + return + end + Ptn=[]; + for J=1:length(Tmp) + if Op(J,Tmp)=='i' + Ptn=[Ptn,1]; + else + Ptn=[Ptn,0]; + end + end + PtnL=Mixjoin(PtnL,list(Ptn)); + end + end + Call=length(Bdy); + Ptn=zeros(1,Call); + if Member(Ptn,PtnL) + Wn=Doscaling(Framedata()); + Bdy=Mixjoin(Bdy,list(Wn)); + Tmp=list(); + for I=1:length(PtnL) + Tmp1=[Op(I,PtnL),1]; + Tmp=Mixjoin(Tmp,Tmp1); // 10.11.04 + end + PtnL=Tmp; + end + V=[cos(Kakudo*%pi/180),sin(Kakudo*%pi/180)]; + Vm=[-sin(Kakudo*%pi/180),cos(Kakudo*%pi/180)]; + Tmp=Op(1,NaitenL); + if type(Tmp)==1 & size(Tmp,2)==2 + Tmp=Doscaling(Tmp); + Delta=Tmp-StartP; + K=Trunc((Delta(1)*Vm(1)+Delta(2)*Vm(2))/Kankaku); + PA=StartP+K*Kankaku*Vm; + Sha=Makeshasen(PtnL,PA,V,Bdy); + I=1; + while length(Sha)~=0 + for J=1:length(Sha) + ShaL=Mixadd(ShaL,Sha(J)); + end; + Sha=Makeshasen(PtnL,PA+I*Kankaku*Vm,V,Bdy); + I=I+1; + end + Sha=Makeshasen(PtnL,PA-Kankaku*Vm,V,Bdy); + I=2; + while length(Sha)~=0 + for J=1:length(Sha) + ShaL=Mixjoin(ShaL,list(Sha(J))); + end; + Sha=Makeshasen(PtnL,PA-I*Kankaku*Vm,V,Bdy); + I=I+1; + end + else + Delta=[Xmn,Ymn]-StartP; + K1=Trunc((Delta(1)*Vm(1)+Delta(2)*Vm(2))/Kankaku); + Delta=[Xmx,Ymn]-StartP; + K2=Trunc((Delta(1)*Vm(1)+Delta(2)*Vm(2))/Kankaku); + Delta=[Xmx,Ymx]-StartP; + K3=Trunc((Delta(1)*Vm(1)+Delta(2)*Vm(2))/Kankaku); + Delta=[Xmn,Ymx]-StartP; + K4=Trunc((Delta(1)*Vm(1)+Delta(2)*Vm(2))/Kankaku); + IM=max(K1,K2,K3,K4); + Im=min(K1,K2,K3,K4); + for I=Im:IM + Sha=Makeshasen(PtnL,StartP+I*Kankaku*Vm,V,Bdy); + for J=1:length(Sha) + ShaL=Mixjoin(ShaL,list(Sha(J))); + end + end + end + ShaLs=list(); + for I=1:length(ShaL) + Tmp=ShaL(I); + Tmp1=Unscaling(Tmp); + ShaLs=Mixjoin(ShaLs,list(Tmp1)); + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Hexahedrondata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Hexahedrondata.bin Binary files differnew file mode 100644 index 00000000..fed0c2c1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Hexahedrondata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Hexahedrondata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Hexahedrondata.sci new file mode 100644 index 00000000..7bc05ed9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Hexahedrondata.sci @@ -0,0 +1,15 @@ +// s : 2014.06.22 + +function Out=Hexahedrondata(A,V1,V2,V3) + Tmp=det([V1;V2;V3]); + if Tmp<0 then + Tmp1=V1; + V1=V2; + V2=Tmp1 + end + B=A+V1; C=A+V1+V2; D=A+V2; + E=A+V3; F=B+V3; G=C+V3; H=D+V3; + VL=list(A,B,C,D,E,F,G,H); + FL=list([1,4,3,2],[5,6,7,8],[1,2,6,5],[2,3,7,6],[3,4,8,7],[1,5,8,4]); + Out=list(VL,FL) +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/HiddenWireData.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/HiddenWireData.bin Binary files differnew file mode 100644 index 00000000..09289136 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/HiddenWireData.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/HiddenWireData.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/HiddenWireData.sci new file mode 100755 index 00000000..2ead122d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/HiddenWireData.sci @@ -0,0 +1,7 @@ +// 08.09.15 + +function Out=HiddenWireData() + global HIDDENWIREDATA + Out=HIDDENWIREDATA; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Htickmark.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Htickmark.bin Binary files differnew file mode 100644 index 00000000..86cae9a7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Htickmark.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Htickmark.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Htickmark.sci new file mode 100644 index 00000000..ab8a54b6 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Htickmark.sci @@ -0,0 +1,144 @@ +// 08.05.17 Debugged +// 09.12.25 +// 11.04.13 debugged ( [a,b] ) +// 14.03.05 MARKLEN + +function Htickmark(varargin) + global Wfile FID MARKLEN GENTEN XMIN XMAX; + Nargs=length(varargin); + ArgsL=list(varargin(1:Nargs)); + if type(Op(1,ArgsL))==10 + Str=Op(1,ArgsL); + Tmp=mtlb_findstr(Str,'m'); + if Tmp~=[] + I=Tmp(1); + else + I=0; + end + Tmp=mtlb_findstr(Str,'n'); + if Tmp~=[] + J=Tmp(1); + else + J=0; + end + Tmp=mtlb_findstr(Str,'r'); + if Tmp~=[] + K=Tmp(1); + else + K=0; + end; + if K>0 + Tmp=ascii(Str); + S=char(Tmp(K+1:length(Tmp))); + R=msscanf(S,'%f'); + if length(R)==0 + R=1; + end + else + R=1; + K=length(Str)+1; + end + if J>0 then + Tmp=ascii(Str); + S=char(Tmp(J+1:K-1)); + if S==[] + S=''; + end; + Dn=msscanf(S,'%d'); + if length(Dn)==0 + Dn=1; + end + else + Dn=1000; + J=length(Str)+1; + end + Tmp=ascii(Str); + S=char(Tmp(I+1:J-1)); + if S==[] + S=''; + end + Dm=msscanf(S,'%f'); + if length(Dm)==0 + Dm=1; + end + ArgsL=list(); + for I=1:floor((XMAX-GENTEN(1))/Dm) + ArgsL($+1)=I*Dm; + if I-floor(I/Dn)*Dn==0 + Str=string(I*Dm*R); + K=length(Str); + Tmp=ascii(Str); + if char(Tmp(K))=='.' + Str=char(Tmp(1:k-1)); + end + ArgsL($+1)=Str; + end + end + for I=-1:-1:ceil((XMIN-GENTEN(1))/Dm) + ArgsL($+1)=I*Dm; + if I-floor(I/Dn)*Dn==0 + Str=string(I*Dm*R); + K=length(Str); + Tmp=ascii(Str); + if char(Tmp(K))=='.' + Str=char(1:K-1); + end + ArgsL($+1)=Str; + end + end + end + MemoriList=list(); + Memori=list(); + for N=1:length(ArgsL) + Dt=ArgsL(N); + if type(Dt)==1 & length(Dt)>1 + if length(Memori)>0 + MemoriList($+1)=Memori; + end + Memori=list(Dt(1),Dt(2)); + continue + end + if type(Dt)==10 + Memori($+1)=Dt; + else + if length(Memori)>0 + MemoriList($+1)=Memori; + end + Memori=list(Dt,GENTEN(2)); + end + end + MemoriList($+1)=Memori; + for N=1:length(MemoriList) + Dt=MemoriList(N); + Ndt=length(Dt); + X=Op(1,Dt); + Y=Op(2,Dt); + Tmp=Doscaling([X,Y]); + X=Tmp(1); + Y=Tmp(2); + Moji=Op(Ndt,Dt); + Tmp1=Unscaling([X,Y+MARKLEN]); + Tmp2=Unscaling([X,Y-MARKLEN]); + Fd=Listplot([Tmp1,Tmp2]); + Drwline(Fd); + if Ndt==3 + Tmp=Unscaling([X,Y-MARKLEN]); + Expr(Tmp,'s',Moji); + end + if Ndt==4 + Houkou=Op(3,Dt); + if mtlb_findstr(Houkou,'s')~=[] + Tmp=Unscaling([X,Y-MARKLEN]); + Expr(Tmp,Houkou,Moji); + else + Tmp=Unscaling([X,Y+MARKLEN]); + Expr(Tmp,Houkou,Moji); + end + end + if Wfile=='default' + mprintf('%s\n','%'); + else + mfprintf(FID,'%s\n','%'); + end + end +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/ImplicitData.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/ImplicitData.bin Binary files differnew file mode 100644 index 00000000..6334287e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/ImplicitData.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/ImplicitData.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/ImplicitData.sci new file mode 100755 index 00000000..ae02fee1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/ImplicitData.sci @@ -0,0 +1,9 @@ +// 08.09.10 +// 08.09.16 +// 08.10.10 (Name) + +function Out=ImplicitData() + global IMPLICITDATA + Out=IMPLICITDATA; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Implicitplot.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Implicitplot.bin Binary files differnew file mode 100644 index 00000000..6336bf4c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Implicitplot.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Implicitplot.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Implicitplot.sci new file mode 100755 index 00000000..b0715484 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Implicitplot.sci @@ -0,0 +1,61 @@ +// 08.09.09 +// 08.09.20 +// 13.10.19 ( __ added to variables ) + +function Out__=Implicitplot(varargin) + Eps__=10^(-4); + Nargs__=length(varargin); + Fstr__=varargin(1); + if Mixtype(Fstr__)~=1 + MS__=Fstr__; + [Zval__,Xval__,Yval__]=Makevaltable(MS__); + elseif type(Fstr__)==10 + MS__=[]; + for I__=1:Nargs__ + MS__=Mixadd(MS__,varargin(I__)); + end; + [Zval__,Xval__,Yval__]=Makevaltable(MS__); + else + Zval__=varargin(1); + Xval__=varargin(2); + Yval__=varargin(3); + end; + Out__=[]; + for J__=1:length(Yval__)-1 + for I__=1:length(Xval__)-1 + a1__=Xval__(I__);b1__=Yval__(J__);c1__=Zval__(J__,I__); + a2__=Xval__(I__+1);b2__=Yval__(J__);c2__=Zval__(J__,I__+1); + a3__=Xval__(I__+1);b3__=Yval__(J__+1);c3__=Zval__(J__+1,I__+1); + a4__=Xval__(I__);b4__=Yval__(J__+1);c4__=Zval__(J__+1,I__); + PL__=[a1__,b1__;a2__,b2__;a3__,b3__;a4__,b4__;a1__,b1__]; + VL__=[c1__,c2__,c3__,c4__,c1__]; + QL__=[]; + for K__=1:4 + if abs(VL__(K__))<=Eps__ + QL__=[QL__;PL__(K__,:)]; + elseif VL__(K__)>Eps__ + if VL__(K__+1)<-Eps__ + Tmp__=1/(VL__(K__)-VL__(K__+1))*(-VL__(K__+1)*PL__(K__,:)... + + VL__(K__)*PL__(K__+1,:)); + QL__=[QL__;Tmp__]; + end + else + if VL__(K__+1)>Eps__ + Tmp__=1/(-VL__(K__)+VL__(K__+1))*(VL__(K__+1)*PL__(K__,:)... + - VL__(K__)*PL__(K__+1,:)); + QL__=[QL__;Tmp__]; + end; + end; + end; + if size(QL__,1)==2 + Out__=[Out__;%inf,%inf;QL__(1,:);QL__(2,:)]; + end; + end; + end; + Out__=Out__(2:size(Out__,1),:); + if size(Out__,1)>0 + Out__=Connectseg(Out__); + else + Out__=[]; + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/InWindow.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/InWindow.bin Binary files differnew file mode 100644 index 00000000..da2db1f4 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/InWindow.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/InWindow.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/InWindow.sci new file mode 100755 index 00000000..9dacd30c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/InWindow.sci @@ -0,0 +1,11 @@ +function Rx=InWindow(PA) + global XMIN XMAX YMIN YMAX + Eps=10.0^(-6); + X=PA(1); Y=PA(2); + if X>XMIN-Eps & X<XMAX+Eps & Y>YMIN-Eps & Y<YMAX+Eps + Rx='i' + else + Rx='o' + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Initangle.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Initangle.bin Binary files differnew file mode 100644 index 00000000..ac64c46b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Initangle.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Initangle.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Initangle.sci new file mode 100755 index 00000000..d5e09ff4 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Initangle.sci @@ -0,0 +1,8 @@ +// 08.07.11 + +function Initangle() + global PHI THETA; + PHI=30*%pi/180; + THETA=60*%pi/180; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Integrate.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Integrate.bin Binary files differnew file mode 100644 index 00000000..b26672c0 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Integrate.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Integrate.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Integrate.sci new file mode 100755 index 00000000..abd3377f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Integrate.sci @@ -0,0 +1,25 @@ +// 09.10.09 +// 09.10.21 Es, Er + +function Out=Integrate(varargin); + Nargs=length(varargin); + Fs=varargin(1); + Vs=varargin(2); + Itv=varargin(3); + Es=1d-10; + if Nargs>3 + Es=varargin(4); + end; + Er=1d-8; + if Nargs>4 + Er=varargin(5); + end; + Out=0; + Na=1; + while Na<length(Itv) + A=Itv(Na); B=Itv(Na+1); + Out=Out+integrate(Fs,Vs,A,B,Es,Er); + Na=Na+1; + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Intersectcrvs.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Intersectcrvs.bin Binary files differnew file mode 100644 index 00000000..3ff5a305 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Intersectcrvs.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Intersectcrvs.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Intersectcrvs.sci new file mode 100755 index 00000000..59b4fdcc --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Intersectcrvs.sci @@ -0,0 +1,34 @@ +// 08.05.18 Koshikawa +// 08.05.19 Changed +// 08.06.03 +// 09.11.12 +// 09.11.14 debug + +function PL=Intersectcrvs(varargin) + Nargs=length(varargin); + Eps=10^(-4); + Tmp=varargin(Nargs); + if type(Tmp)==1 & length(Tmp)==1 + Eps=Tmp; + end + G1=varargin(1); + if Mixtype(G1)==1 + G1=list(G1); + end; + G2=varargin(2); + if Mixtype(G2)==1 + G2=list(G2); // + end; + PL=list(); + for N=1:length(G1) + for M=1:length(G2) + KL=IntersectcrvsPp(G1(N),G2(M),Eps); + for I=1:length(KL) + Tmp=KL(I);; + P=Tmp(1); + PL($+1)=P; + end; + end; + end; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/IntersectcrvsPp.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/IntersectcrvsPp.bin Binary files differnew file mode 100644 index 00000000..348451cf --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/IntersectcrvsPp.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/IntersectcrvsPp.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/IntersectcrvsPp.sci new file mode 100755 index 00000000..a1218d06 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/IntersectcrvsPp.sci @@ -0,0 +1,101 @@ +// 08.05.18 Koshikawa +// 08.05.19 Changed +// 08.00.04 +// 09.11.07 for the same curve + +function KL=IntersectcrvsPp(varargin) // Modified + Nargs=length(varargin); + G1=varargin(1); G2=varargin(2); + Eps=10.0^(-4); + if Nargs>2 + Eps=varargin(3) + end + SqEps=10.0^(-10); + Eps2=0.1; + if Nargs>3 + Eps2=varargin(4) + end + Data1=G1; + Data2=G2; + if size(Data1,1)==size(Data2,1) + Tmp1=Data2(size(Data2,1):-1:1,:); // 09.11.07 + Eps0=10^(-6); + Tmp2=norm(Data1-Data2); + Tmp3=norm(Data1-Tmp1); + if Tmp2<Eps0|Tmp3<Eps0 + KL=list(); + return; + end; // + end; + KL1=[]; + KL2=[]; + for I=1:size(Data1,1)-1 + A=Data1(I,:); + B=Data1(I+1,:); + for J=1:size(Data2,1)-1 + P=Data2(J,:); Q=Data2(J+1,:); + Tmp=Koutenseg(A,B,P,Q,Eps,Eps2); + if Tmp~=[%inf,-%inf] + if Op(3,Tmp)==0 + Tmp1=MixS(Op(1,Tmp),Op(2,Tmp),I,J); + KL1=Mixadd(KL1,Tmp1); + else + Tmp2=MixS(Op(1,Tmp),Op(2,Tmp),I,J); + KL2=Mixadd(KL2,Tmp2); + end + end + end + end + KL=[]; + if Mixlength(KL1)>0 + Tmp=Op(1,KL1); + P=Op(1,Tmp); + T=Op(2,Tmp); + I=Op(3,Tmp); + J=Op(4,Tmp); + Tmp=MixS(P,I+T,J); + KL=MixL(Tmp); + end + for N=2:Mixlength(KL1) + Tmp=Op(N,KL1); + P=Op(1,Tmp); + Flg=0; + for K=1:Mixlength(KL) + Tmp=Op(K,KL); + if Vecnagasa2(P-Op(1,Tmp))<SqEps + Flg=1; + break + end + end + if Flg==0 + Tmp=Op(N,KL1); + T=Op(2,Tmp); + I=Op(3,Tmp); + J=Op(4,Tmp); + Tmp=MixS(P,I+T,J); + KL=Mixadd(KL,Tmp); + end + end + for N=1:Mixlength(KL2) + Tmp=Op(N,KL2); + P=Op(1,Tmp); + Flg=0; + for K=1:Mixlength(KL) + Tmp=Op(K,KL); + if Vecnagasa2(P-Op(1,Tmp))<SqEps + Flg=1; + break + end + end + if Flg==0 + Tmp=Op(N,KL2); + T=Op(2,Tmp); + T=min(max(T,0),1); + I=Op(3,Tmp); + J=Op(4,Tmp); + Tmp=MixS(P,I+T,J); + KL=Mixadd(KL,Tmp); + end + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Intersectcrvsf.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Intersectcrvsf.bin Binary files differnew file mode 100644 index 00000000..3d7069f0 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Intersectcrvsf.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Intersectcrvsf.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Intersectcrvsf.sci new file mode 100755 index 00000000..2a2e5b6c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Intersectcrvsf.sci @@ -0,0 +1,47 @@ +// 08.10.26 +// 10.02.16 + +function Out=Intersectcrvsf(varargin) + Nargs=length(varargin); + Eps0=10^(-4); + Crv=varargin(1); + Fd=varargin(2); + N=3;Uveq=1; + if Nargs>=3 + Tmp=varargin(3); + if type(Tmp)==10 + Uveq=Tmp; + N=4; + end; + end; + Np=[50,50]; + if Nargs>=N + Np=varargin(N); + if length(Np)==1 + Np=[Np,Np]; + end; + end; + Eps=[0.05,1]; // + if Nargs>=N+1 + Eps=varargin(N+1); + end; + if length(Eps)==1 // + Eps=[Eps,1]; // + end; // + Out=[]; + for I=1:Numptcrv(Crv)-1 + PtA=Ptcrv(I,Crv); + PtB=Ptcrv(I+1,Crv); + if norm(PtB-PtA)<Eps0 + continue; + end; + PL=Meetpoints(PtA,PtB,Fd,Uveq,Np,Eps(1)); + for J=1:Mixlength(PL) + Pt=Mixop(J,PL); + Tmp=norm(Pt-PtA)/norm(PtB-PtA); + Tmp=min(max(Tmp,0),1); + Out=Mixadd(Out,[Pt,I+Tmp]); + end; + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Intersectlines.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Intersectlines.bin Binary files differnew file mode 100644 index 00000000..bebf87c5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Intersectlines.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Intersectlines.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Intersectlines.sci new file mode 100755 index 00000000..ed92a5aa --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Intersectlines.sci @@ -0,0 +1,22 @@ +// 09.10.11 +// 09.10.12 + +function Out=Intersectlines(L1,L2) + Eps0=10^(-6); + P=Ptstart(L1); + a1=P(1); a2=P(2); + V=Ptend(L1)-P; + b1=V(1); b2=V(2); + P=Ptstart(L2); + c1=P(1); c2=P(2); + V=Ptend(L2)-P; + d1=V(1); d2=V(2); + Den=b1*d2-d1*b2; + if abs(Den)<Eps0 + Out=[]; + return; + end; + x=-(d1*b2*a1-c1*b1*d2-d1*a2*b1+d1*b1*c2)/Den; + y=-(-a2*b1*d2+b2*a1*d2-b2*c1*d2+c2*d1*b2)/Den; + Out=[x,y]; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/IntersectselfPp.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/IntersectselfPp.bin Binary files differnew file mode 100644 index 00000000..5f0cad0f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/IntersectselfPp.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/IntersectselfPp.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/IntersectselfPp.sci new file mode 100755 index 00000000..4b246e95 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/IntersectselfPp.sci @@ -0,0 +1,95 @@ +// 09.05.27 +// 09.06.03 +// 09.06.05 + +function KL=IntersectselfPp(varargin) + Nargs=length(varargin); + G1=varargin(1); + Eps=10.0^(-4); + if Nargs>1 + Eps=varargin(2) + end + Eps0=10.0^(-5); + Eps2=0.01; +// if Nargs>2 +// Eps2=varargin(3) +// end; + Data1=G1; + KL1=[]; + KL2=[]; + for I=1:size(Data1,1)-2 + A=Data1(I,:); + B=Data1(I+1,:); + Is=I+2; + Tmp=Data1(Is,:); + while norm(Tmp-B)<Eps & Is<size(Data1,1); + Is=Is+1; + Tmp=Data1(Is,:); + end; + for J=Is:size(Data1,1)-1 + P=Data1(J,:); Q=Data1(J+1,:); + Tmp=Koutenseg(A,B,P,Q,Eps,Eps2); + if Tmp~=[%inf,-%inf] + if Op(3,Tmp)==0 + Tmp1=MixS(Op(1,Tmp),Op(2,Tmp),I,J); + KL1=Mixadd(KL1,Tmp1); + else + Tmp2=MixS(Op(1,Tmp),Op(2,Tmp),I,J); + KL2=Mixadd(KL2,Tmp2); + end + end + end + end + KL=[]; + if Mixlength(KL1)>0 + Tmp=Op(1,KL1); + P=Op(1,Tmp); + T=Op(2,Tmp); + I=Op(3,Tmp); + J=Op(4,Tmp); + S=ParamonCurve(P,J,Data1); + Tmp=MixS(P,I+T,J); + Tmp2=MixS(P,S,I); + KL=MixL(Tmp); + KL=Mixadd(KL,Tmp2); + end; + for N=2:Mixlength(KL1) + Tmp=Op(N,KL1); + P=Op(1,Tmp); + T=Op(2,Tmp); + I=Op(3,Tmp); + J=Op(4,Tmp); + S=ParamonCurve(P,J,Data1); + Tmp=MixS(P,I+T,J); + Tmp1=MixS(P,S,I); + KL=Mixadd(KL,Tmp); + KL=Mixadd(KL,Tmp1); + end + for N=1:Mixlength(KL2) + Tmp=Op(N,KL2); + P=Op(1,Tmp); + T=Op(2,Tmp); + T=min(max(T,0),1); + I=Op(3,Tmp); + J=Op(4,Tmp); + S=ParamonCurve(P,J,Data1); + Flg=0; + for K=1:Mixlength(KL) + Tmp=Op(K,KL); + if norm(P-Op(1,Tmp))<Eps + Tmp1=Op(2,Tmp); + if abs(I+T-Tmp1)<Eps + Flg=1; + break; + end; + end; + end; + if Flg==0 + Tmp=MixS(P,I+T,J); + Tmp1=MixS(P,S,I); + KL=Mixadd(KL,Tmp); + KL=Mixadd(KL,Tmp1); + end; + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Invdashline.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Invdashline.bin Binary files differnew file mode 100644 index 00000000..e3bc6bf4 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Invdashline.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Invdashline.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Invdashline.sci new file mode 100644 index 00000000..bf6f976f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Invdashline.sci @@ -0,0 +1,29 @@ +// 10.11.13 ( Flattenlist used +// 13.10.19 debugged + +function Invdashline(varargin) + global MilliIn; + Nargs=length(varargin); + Nall=Nargs; Sen=1 ; Gap=1; + Tmp=varargin(Nall); + if type(Tmp)==1 & length(Tmp)==1 & Tmp>0 // 2013.10.19 + Tmp1=varargin(Nall-1); + if type(Tmp1)==1 & length(Tmp1)==1 & Tmp1>0 // 2013.10.19 + Sen=Tmp1; Gap=Tmp; + Nall=Nall-2; + else + Sen=Tmp; Gap=Sen; + Nall=Nall-1; + end + end + Sen=1000/2.54/MilliIn*Sen; + Gap=1000/2.54/MilliIn*Gap; + for N=1:Nall + Tmp=varargin(N); + Fdata=Flattenlist(Tmp); + for I=1:length(Fdata); + Figdata=Fdata(I); + Makehasen(Figdata,Sen,Gap,1); + end; + end; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Invert.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Invert.bin Binary files differnew file mode 100644 index 00000000..2e870385 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Invert.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Invert.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Invert.sci new file mode 100755 index 00000000..9f9f9d95 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Invert.sci @@ -0,0 +1,6 @@ +// 08.05.31 + +function OutL=Invert(Pd) + OutL=Pd(size(Pd,1):-1:1,:); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Invparapt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Invparapt.bin Binary files differnew file mode 100644 index 00000000..c92f5024 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Invparapt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Invparapt.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Invparapt.sci new file mode 100755 index 00000000..4d7863b1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Invparapt.sci @@ -0,0 +1,50 @@ +// 08.07.11 +// 08.08.17 +// 09.10.31 +// 09.11.12 + +function Out=Invparapt(varargin) + Eps=10^(-4); + Fk=varargin($); + NFk=Numptcrv(Fk) + Tmp=varargin(1); + if type(Tmp)==1 & size(Tmp)==1 + Ph=Tmp; + Fh=varargin(2); + else + Fh=Projpara(Fk); + if NFk>2 + Tmp1=Nearestpt(Tmp,Fh); + Ph=Tmp1(2); + else + Ah=Ptcrv(1,Fh); Bh=Ptcrv(2,Fh); + V1=Tmp-Ah; V2=Bh-Ah; + Tmp1=Crossprod(V1,V2); + if abs(Tmp1)>Eps + disp('Not on the line'); + Out=[]; + return; + else + Ph=Dotprod(V1,V2)/norm(V2)^2+1; // 09.11.12 + end; + end; + end; + if NFk>2 + N=Trunc(Ph); + S0=Ph-N; + if Ph>Numptcrv(Fh)-Eps + Out=list(Ptend(Fk),Numptcrv(Fh)); + return; + end; + else + N=1; + S0=Ph-1; // 09.11.12 + end; + Ak=Ptcrv(N,Fk); Bk=Ptcrv(N+1,Fk); + Ah=Ptcrv(N,Fh); Bh=Ptcrv(N+1,Fh); + Ph=(1-S0)*Ah+S0*Bh; + T2=S0; + Pk=(1-T2)*Ak+T2*Bk; + Out=list(Pk,N+T2); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Invperspt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Invperspt.bin Binary files differnew file mode 100644 index 00000000..073bbdca --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Invperspt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Invperspt.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Invperspt.sci new file mode 100755 index 00000000..c2c35355 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Invperspt.sci @@ -0,0 +1,65 @@ +// 08.08.12 +// 09.10.31 +// 09.11.12 + +function Out=Invperspt(varargin) + global FocusPoint EyePoint; + Eps=10^(-4); + Fk=varargin($); + NFk=Numptcrv(Fk) + Tmp=varargin(1); + if type(Tmp)==1 & length(Tmp)==1 + Ph=varargin(1); + Fh=varargin(2); + else + Fh=Projpers(Fk); + if NFk>2 + Tmp1=Nearestpt(Tmp,Fh); + Ph=Tmp1(2); + else + Ah=Ptcrv(1,Fh); Bh=Ptcrv(2,Fh); + V1=Tmp-Ah; V2=Bh-Ah; + Tmp1=Crossprod(V1,V2); + if abs(Tmp1)>Eps + disp('Not on the line'); + Out=[]; + return; + else + Ph=Dotprod(V1,V2)/norm(V2)^2+1; // 09.11.12 + end; + end; + end; + if NFk>2 + N=Trunc(Ph); + S0=Ph-N; + if Ph>Numptcrv(Fh)-Eps + Out=list(Ptend(Fk),Numptcrv(Fh)); + return; + end; + else + N=1; + S0=Ph-1; // 09.11.12 + end; + Ak=Ptcrv(N,Fk); Bk=Ptcrv(N+1,Fk); + Ah=Ptcrv(N,Fh); Bh=Ptcrv(N+1,Fh); + Ph=(1-S0)*Ah+S0*Bh; + Phc=Cancoordpers([Ph,0]); + Ahc=Cancoordpers([Ah,0]); + Bhc=Cancoordpers([Bh,0]); + Vp=Phc-EyePoint; + Va=Ak-EyePoint; + AB=Bk-Ak; + Cp=Crossprod(Vp,AB); + Nmr=Crossprod(Va,Vp); + Mx=max(abs(Cp)); + if abs(Cp(1))==Mx + T2=Nmr(1)/Cp(1); + elseif abs(Cp(2))==Mx + T2=Nmr(2)/Cp(2); + else + T2=Nmr(3)/Cp(3); + end; + Pk=(1-T2)*Ak+T2*Bk; + Out=list(Pk,N+T2); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Joincrvs.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Joincrvs.bin Binary files differnew file mode 100644 index 00000000..b44d17eb --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Joincrvs.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Joincrvs.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Joincrvs.sci new file mode 100755 index 00000000..04aaf4eb --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Joincrvs.sci @@ -0,0 +1,51 @@ +// 08.05.31 +// 08.08.22 +// 08.09.14 +// 08.09.20 +// 08.10.27 +// 11.06.25 + +function PtL=Joincrvs(varargin) + Nall=length(varargin); + Eps=10^(-4); + Tmp=varargin(Nall); + if type(Tmp)==1 & length(Tmp)==1 + Eps=Tmp; + Nall=Nall-1; + end; + QdL=list(); + for I=1:Nall + QdL($+1)=varargin(I); // 11.06.25 + end; + QdL=Flattenlist(QdL); // 11.06.25 + if length(QdL)==0 + PtL=[]; + return; + end; + PtL=[Mixop(1,QdL)]; + for I=2:Mixlength(QdL) + Qd=QdL(I); + if Numptcrv(Qd)<=1 // 11.06.25 + continue; + end; + P=Ptend(PtL) + S=Ptstart(PtL); + Q=Ptstart(Qd); + R=Ptend(Qd); + MN=min(norm(P-Q),norm(P-R),norm(S-Q),norm(S-R)); + if MN==norm(P-R) + Qd=Invert(Qd); + elseif MN==norm(S-Q) + PtL=Invert(PtL); + elseif MN==norm(S-R); + PtL=Invert(PtL); + Qd=Invert(Qd); + end; + if MN>Eps + PtL=[PtL;Qd]; + else + PtL=[PtL;Qd(2:size(Qd,1),:)]; + end; + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Joingraphics.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Joingraphics.bin Binary files differnew file mode 100644 index 00000000..c7b88175 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Joingraphics.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Joingraphics.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Joingraphics.sci new file mode 100755 index 00000000..78cd46e5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Joingraphics.sci @@ -0,0 +1,26 @@ +// 11.11.02 (for list structure) + +function P=Joingraphics(varargin) + Ls=Flattenlist(varargin); + N=length(Ls); + Tp=Ls(N); + Listflg=0; + if type(Tp)==10 + Tmp=part(Tp,1); + if Tmp=="L"|Tmp=="l" + Listflg=1 + end; + N=N-1; + Ls=Mixsub(1:N,Ls); + end; + if Listflg==1 + P=Ls + else + P=[]; + for I=1:N + Tmp=Ls(I); + P=[P;%inf,%inf;Tmp]; + end; + P=P(2:size(P,1),:) + end +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ketinit.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ketinit.bin Binary files differnew file mode 100644 index 00000000..140d9028 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ketinit.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ketinit.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ketinit.sci new file mode 100755 index 00000000..bbe02e62 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ketinit.sci @@ -0,0 +1,57 @@ +// 08.07.08 PHI,THETA,FocusPoint,EyePoint; +// 08.08.08 +// 08.08.31 +// 08.09.18 +// 09.10.09 ASSIGNLIST +// 09.12.25 SCALING +// 10.04.16 TEXFOR +// 13.05.19 funcprot(0) +// 13.03.05 MARKLEN instead of MEMORI + +function Ketinit() + global THISVERSION + global TenSize TenSizeInit Wfile XMIN XMAX YMIN YMAX + global XNAME XPOS YNAME YPOS ONAME OPOS ARROWSIZE + global ULEN MilliIn PenThick PenThickInit ZIKU + global MEMORI MEMORIInit MEMORINow GENTEN + global MARKLEN MARKLENInit MARKLENNow + global YaSize YaAngle YaPosition YaThick YaStyle + global PHI THETA FocusPoint EyePoint ASSIGNLIST + global SCALEX SCALEY LOGX LOGY TEXFORLEVEL TEXFORLAST + funcprot(0); // 2013.05.19 + Setversion(); + XMIN=-5 ;XMAX=5; + YMIN=-5 ; YMAX=5; + ZIKU='line'; ARROWSIZE=1; + XNAME='$x$' ; XPOS='e'; + YNAME='$y$' ; YPOS='n'; + ONAME='O' ; OPOS='sw'; + ULEN='1cm'; + MilliIn=1/2.54*1000; + PenThick=round(MilliIn*0.02); + PenThickInit=PenThick; + TenSizeInit=0.02; + TenSize=TenSizeInit; + Wfile='default'; + MEMORI=0.05; + MEMORIInit=MEMORI; + MEMORINow=MEMORI; + MARKLEN=0.05; + MARKLENInit=MARKLEN; + MARKLENNow=MARKLEN; + GENTEN=[0,0]; + YaSize=1; YaAngle=18; YaPosition=1; + YaThick=1; YaStyle='tf'; + PHI=30*%pi/180; + THETA=60*%pi/180; + FocusPoint=[0,0,0]; + EyePoint=[5,5,5]; + ASSIGNLIST=list('`',char(39)); + SCALEX=1; + SCALEY=1; + LOGX=0; + LOGY=0; + TEXFORLEVEL=0; + TEXFORLAST=list(); + endfunction; +
\ No newline at end of file diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Kouten.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Kouten.bin Binary files differnew file mode 100644 index 00000000..f5871542 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Kouten.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Kouten.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Kouten.sci new file mode 100755 index 00000000..c12b721e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Kouten.sci @@ -0,0 +1,31 @@ +// 08.05.18 +// 08.05.19 +// 09.06.01 (same as 05.19) + +function Out=Kouten(PA,V,P,Q); + Eps=10.0^(-6); + A1=PA(1); A2=PA(2); + V1=V(1); V2=V(2); + P1=P(1); P2=P(2); + U1=Q(1)-P1; U2=Q(2)-P2; + Tmp=norm(P-Q)*norm(V); + if Tmp==0 + Out=[%inf,-%inf]; + return + end + D=U1*V2-U2*V1; + if abs(D)/Tmp<Eps + Out=[%inf,-%inf]; + return + end + S=((-A2+P2)*V1+(A1-P1)*V2)/D; + if S>1+Eps | S<-Eps + Out=[%inf,-%inf]; + return + end + T=((-A2+P2)*U1+(A1-P1)*U2)/D; + Tmp=PA+T*V; + Out=MixS(T,Tmp,sign(D)); +endfunction + + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/KoutenList.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/KoutenList.bin Binary files differnew file mode 100644 index 00000000..f5b67546 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/KoutenList.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/KoutenList.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/KoutenList.sci new file mode 100755 index 00000000..82cf1e2c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/KoutenList.sci @@ -0,0 +1,51 @@ +// 08.05.18 +// 08.05.20 +// 08.06.02 + +function TenL=KoutenList(PA,V,Bdy) + Eps=10.0^(-6); + TenL=[]; + for N=1:Mixlength(Bdy) + KL=Op(N,Bdy); + for K=1:size(KL,1)-1 + P=KL(K,:); Q=KL(K+1,:); + if P~='/' & Q~='/' + Tmp=Kouten(PA,V,P,Q); + if Tmp~=[%inf,-%inf] + Ten=Mixadd(Tmp,N); + Flg=0; + NN=Mixlength(TenL); + I=1; + while Flg==0 & I<=NN + Tmp=Op(I,TenL); + if Op(1,Ten)<Op(1,Tmp)-Eps + Tmp=Mixsub(1:I-1,TenL); + Tmp1=Mixadd(Tmp,Ten); + Tmp2=Mixsub(I:Mixlength(TenL),TenL); + TenL=Mixjoin(Tmp1,Tmp2); + Flg=1; + elseif Op(1,Ten)<Op(1,Tmp)+Eps + if Op(4,Ten)~=Op(4,Tmp) + Tmp=Mixsub(1:I-1,TenL); + Tmp1=Mixadd(Tmp,Ten); + Tmp2=Mixsub(I:Mixlength(TenL),TenL); + TenL=Mixjoin(Tmp1,Tmp2); + Flg=1; + elseif Op(3,Ten)~=Op(3,Tmp) + Tmp1=Mixsub(1:I-1,TenL); + Tmp2=Mixsub(I+1:Mixlength(TenL),TenL); + TenL=Mixjoin(Tmp1,Tmp2); + end + Flg=1; + end + I=I+1; + end + if Flg==0 + TenL=Mixadd(TenL,Ten); + end + end + end + end + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Koutenseg.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Koutenseg.bin Binary files differnew file mode 100644 index 00000000..be93baf3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Koutenseg.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Koutenseg.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Koutenseg.sci new file mode 100755 index 00000000..371807fa --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Koutenseg.sci @@ -0,0 +1,105 @@ +// +// 08.05.19 +// 09.12.05 + +function Out=Koutenseg(varargin) + //pointdata on AB at which AB intersects CD + Nargs=length(varargin); + Eps0=10^(-4); + A=varargin(1); V=varargin(2)-A; + Sv2=V(1)^2+V(2)^2; + if Sv2<10^(-6) + Out=[%inf,-%inf]; + return + end + P=varargin(3)-A; Q=varargin(4)-A; + Eps=10.0^(-3); + if Nargs>=5 + Eps=varargin(5); + end + Eps2=0.2; + if Nargs>=6 + Eps2=varargin(6); + end + Eps=min(Eps2,Eps/sqrt(Sv2)); + P1=(P(1)*V(1)+P(2)*V(2))/Sv2; + P2=(-P(1)*V(2)+P(2)*V(1))/Sv2; + Q1=(Q(1)*V(1)+Q(2)*V(2))/Sv2; + Q2=(-Q(1)*V(2)+Q(2)*V(1))/Sv2; + m1=-Eps; M1=1+Eps; + m2=-Eps; M2=Eps; + if (max(P1,Q1)<m1) | (min(P1,Q1)>M1) + Out=[%inf,-%inf]; + return + end + if (max(P2,Q2)<m2) | (min(P2,Q2)>M2) + Out=[%inf,-%inf]; + return + end + if P2*Q2<0 + T=P1-(Q1-P1)/(Q2-P2)*P2; + if (T>m1) & (T<M1) + if (T>-Eps0) & (T<1+Eps0) + Tmp1=A+T*V; + Tmp2=min(max(T,0),1); + Out=MixS(Tmp1,Tmp2,0); + else + Tmp1=A+T*V; + Tmp2=min(max(T,0),1); + Out=MixS(Tmp1,Tmp2,1); + end + return + end + if P1<m1 | P1>M1 | P2<m2 | P2>M2 + if Q1<m1 | Q1>M1 | Q2<m2 | Q2>M2 + Out=[%inf,-%inf]; + return + end + T=min(max(Q1,0),1); + Tmp=A+T*V; + Out=MixS(Tmp,T,1); + return + end + T=min(max(P1,0),1); + Tmp=A+T*V; + Out=MixS(Tmp,T,1); + return + end + if P1 > -Eps0 & P1 < 1 + Eps0 & P2 > -Eps0 & P2 < Eps0 + T= P1; + Tmp=A+T*V; + Out= MixS(Tmp, T, 0); + return + end + if Q1 > -Eps0 & Q1 < 1 + Eps0 & Q2 > -Eps0 & Q2 < Eps0 + T= Q1; + Tmp=A+T*V; + Out=MixS(Tmp,T,0); + return + end + if P1<m1 | P1>M1 | P2<m2 | P2>M2 + if Q1<m1 | Q1>M1 | Q2<m2 | Q2>M2 + Out=[%inf,-%inf]; + return + end + T=min(max(Q1,0),1); + Tmp=A+T*V; + Out=MixS(Tmp,T,1); + return + end + if Q1<m1 | Q1>M1 | Q2<m2 | Q2>M2 + T=min(max(P1,0),1); + Tmp=A+T*V; + Out=MixS(Tmp,T,1); + return + end + if abs(P2)<abs(Q2) + T=min(max(P1,0),1); + else + T=min(max(Q1,0),1); + end + Tmp=A+T*V; + Out=MixS(Tmp,T,1); +endfunction + + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Kukannozoku.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Kukannozoku.bin Binary files differnew file mode 100644 index 00000000..7535fd2e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Kukannozoku.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Kukannozoku.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Kukannozoku.sci new file mode 100755 index 00000000..0e38dae7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Kukannozoku.sci @@ -0,0 +1,45 @@ +// 08.07.13 +// 08.10.16 + +function Res=Kukannozoku(Jokyo,KukanL) + Eps=10^(-6); + N=size(KukanL,1); + T1=Jokyo(1); T2=Jokyo(2); + Tmp=KukanL(1,:); + T1=max(T1,Tmp(1)); + Tmp=KukanL(N,:); + T2=min(T2,Tmp(2)); + Res=[]; + Flg=0; + for I=1:N + Ku=KukanL(I,:); + if Flg==0 + if Ku(2)<T1 + Res=[Res;Ku]; + else + Flg=1; + if Ku(1)<T1-Eps + Tmp=[Ku(1),T1]; + Res=[Res;Tmp]; + end; + if Ku(2)>T2+Eps + Tmp=[T2,Ku(2)]; + Res=[Res;Tmp]; + end; + end; + elseif Flg==1 + if Ku(2)<T2 + continue; + else + Flg=2; + if Ku(1)<T2-Eps + Ku=[T2,Ku(2)]; + end; + Res=[Res;Ku]; + end; + else + Res=[Res;Ku]; + end; + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Kukeiwake.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Kukeiwake.bin Binary files differnew file mode 100644 index 00000000..656dd42d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Kukeiwake.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Kukeiwake.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Kukeiwake.sci new file mode 100755 index 00000000..4e38175f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Kukeiwake.sci @@ -0,0 +1,62 @@ +// 08.05.30 + +function Out=Kukeiwake(PL) + global XMIN XMAX YMIN YMAX; + Eps=10.0^(-6); + NW=[XMIN,YMAX]; SW=[XMIN,YMIN]; + SE=[XMAX,YMIN]; NE=[XMAX,YMAX]; + Sikaku=[NW;SW;SE;NE;NW]; + Kt=IntersectcrvsPp(PL,Sikaku); + if Mixlength(Kt)~=2 + disp('not two points') + return + end + Tmp=Op(1,Kt); + Pt1=Op(1,Tmp); + N1=Trunc(Op(2,Tmp)); + M1=Op(3,Tmp); + Tmp=Op(2,Kt); + Pt2=Op(1,Tmp); + N2=Trunc(Op(2,Tmp)); + M2=Op(3,Tmp); + T1=ParamonCurve(Pt1,M1,Sikaku); + T2=ParamonCurve(Pt2,M2,Sikaku); + QL=[]; + if Vecnagasa(Pt1,PL(N1+1,:))>Eps + QL=[Pt1]; + end + QL=[QL;PL(N1+1:N2,:)]; + if Vecnagasa(Pt2,PL(N2,:))>Eps + QL=[QL;Pt2]; + end + HidariL=QL; + Ms=M2+1; Me=M1; + if T1<T2+Eps Me=M1+4; end + for M=Ms:Me + Tmp=HidariL(size(HidariL,1),:); + P=Sikaku(modulo(M-1,4)+1,:); + if Vecnagasa(Tmp,P)>Eps + HidariL=[HidariL;P]; + end + end + Tmp=HidariL(size(HidariL,1),:); + if Vecnagasa(Tmp,Pt1)>Eps + HidariL=[HidariL;Pt1]; + end + MigiL=QL; + Ms=M2; Me=M1+1; + if T1>T2-Eps Me=Me-4; end; + for M=Ms:-1:Me + Tmp=MigiL(size(MigiL,1),:); + P=Sikaku(modulo(M-1,4)+1,:); + if Vecnagasa(Tmp,P)>Eps + MigiL=[MigiL;P] + end + end + Tmp=MigiL(size(MigiL,1),:); + if Vecnagasa(Tmp,Pt1)>Eps + MigiL=[MigiL;Pt1]; + end + Out=MixS(HidariL,MigiL); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Kyorihensuu.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Kyorihensuu.bin Binary files differnew file mode 100644 index 00000000..a45aa2e3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Kyorihensuu.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Kyorihensuu.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Kyorihensuu.sci new file mode 100755 index 00000000..a07a89d1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Kyorihensuu.sci @@ -0,0 +1,30 @@ +function Kyorihensuu(varargin) + if length(varargin)==0 + FL='default'; + else + FL=varargin(1); + if FL=='' + FL='tmp.tex' + end + end + StrM=[... + '\newlength{\Width}%',... + '\newlength{\Height}%',... + '\newlength{\Depth}%'... + ]; + if FL~='default' + Fid=mopen(FL,'w'); + mprintf('%s\n\n','Writing to '+FL); + end; + for I=1:size(StrM,2) + Str=StrM(I); + mprintf('%s\n',Str); + if FL~='default' + mfprintf(Fid,'%s\n',Str); + end + end + if FL~='default' + mclose(Fid) + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Kyoukai.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Kyoukai.bin Binary files differnew file mode 100644 index 00000000..07c938a3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Kyoukai.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Kyoukai.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Kyoukai.sci new file mode 100755 index 00000000..4090c2da --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Kyoukai.sci @@ -0,0 +1,144 @@ +// 08.05.18 +// 08.05.19 +// 08.05.20 +// 08.05.30 +// 08.09.19 +// 08.10.26 +// 09.01.15 "e" +// 09.05.18 +// 09.12.05 +// 16.11.03 Eps=10^(-5) +// 16.12.05 Eps=10^(-7) + +function PLall=Kyoukai(varargin) + global XMIN XMAX YMIN YMAX + Nargs=length(varargin); + Eps0=10^(-7); + DataL=[]; + for I=1:Nargs + Tmp=varargin(I); + if Mixtype(Tmp)==1 + Tmp1=MixS(Tmp); + DataL=Mixadd(DataL,Tmp1); + end + if Mixtype(Tmp)==2 + DataL=Mixadd(DataL,Tmp); + end + if Mixtype(Tmp)==3 + DataL=Mixjoin(DataL,Tmp); + end + end; + Eps=10.0^(-4); + PLall=[]; + Sflg=0; + N=Mixlength(DataL); + for I=1:N + Data=Op(I,DataL); + Tmp=Op(Mixlength(Data),Data); + if type(Tmp)==1 & size(Tmp,1)==1 & size(Tmp,2)>1 + Rg=Tmp ; Nd=Mixlength(Data)-1; + elseif type(Tmp)==10 + Rg=Tmp ; Nd=Mixlength(Data)-1; + else + Rg='c' ; Nd=Mixlength(Data); + end; + for J=1:Nd + Tmp=Op(J,Data); + if type(Tmp)==10 + Rg=Tmp; + continue + end + Points=Tmp; + P1=Ptstart(Points); + P2=Ptend(Points); + if J==1 + PL=Points; + Pfirst=P1; + Plast=P2; + if Nd>=2 + Tmp=Op(2,Data); + P=Ptstart(Tmp); + Q=Ptend(Tmp); + if norm(P2-P)>Eps & norm(P2-Q)>Eps + Tmp=size(PL,1); + PL=PL(Tmp:-1:1,:); + Pfirst=Ptstart(PL); + Plast=Ptend(PL); + end; + end + else + if norm(P1-Plast)<Eps + Stp=1; Ks=2; Ke=size(Points,1); + elseif norm(P2-Plast)<Eps + Stp=-1; Ks=size(Points,1)-1; Ke=1; + else + PL=[PL;%inf,%inf;Points]; + Sflg=1; + Pfirst=P1; + Plast=P2; + Stp=1; Ks=size(Points,1)-1; Ke=1; + end + for K=Ks:Stp:Ke + PL=[PL;Points(K,:)]; + end + Plast=Points(Ke,:); + end + end + if norm(Pfirst-Plast)>Eps + Np=size(PL,1); + if Rg=='c' + PL=[PL;Pfirst]; + elseif Rg=='s' + Tmp=[PL(1:Np,2);YMIN]; + Y=min(Tmp)-1; + P=[Plast(1),Y]; Q=[Pfirst(1),Y]; + PL=[PL;P;Q;Pfirst]; + elseif Rg=='n' + Tmp=[PL(1:Np,2);YMAX]; + Y=max(Tmp)+1; + P=[Plast(1),Y]; Q=[Pfirst(1),Y]; + PL=[PL;P;Q;Pfirst]; + elseif Rg=='w' + Tmp=[PL(1:Np,1);XMIN]; + X=min(Tmp)-1; + P=[X,Plast(2)]; Q=[X,Pfirst(2)]; + PL=[PL;P;Q;Pfirst]; + elseif Rg=='e' + Tmp=[PL(1:Np,1);XMAX]; + X=max(Tmp)+1; + P=[X,Plast(2)]; Q=[X,Pfirst(2)]; + PL=[PL;P;Q;Pfirst]; + elseif type(Rg)==1 & size(Rg,1)==1 & size(Rg,2)>1 + Tmp=Kukeiwake(PL); //Modified from here + Tmp1=Op(1,Tmp); + Tmp2=Naigai(Rg,Mix(Tmp1)); + if Tmp2==[1] + PL=Op(1,Tmp); + else + PL=Op(2,Tmp); // to here + end + end + end + Tmp=[Ptstart(PL)]; + for J=2:size(PL,1) + P=PL(J,:); + Q=Tmp(size(Tmp,1),:); + if norm(P-Q)>Eps then + Tmp=[Tmp;P]; + end + end + PL=Tmp; + PLall=Mixadd(PLall,PL); + end + if Mixlength(PLall)==1 & Sflg==0 + Tmp=Op(1,PLall); +// Tmp=Op(1,Tmp); + if norm(Ptstart(Tmp)-Ptend(Tmp))>Eps0 + Tmp=[Tmp;Ptstart(Tmp)]; + PLall=MixS(Tmp); + end + end; +endfunction; + + + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Letter.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Letter.bin Binary files differnew file mode 100644 index 00000000..41551ef5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Letter.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Letter.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Letter.sci new file mode 100755 index 00000000..7a7a4b78 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Letter.sci @@ -0,0 +1,100 @@ +// +// 09.12.25 + +function Letter(varargin) + global Wfile FID MEMORI; + Nargs=length(varargin); + for I=1:3:Nargs + Tmp=varargin(I); + P=Doscaling(Tmp); + X=P(1); + Y=P(2); + Houkou=varargin(I+1); + Mojiretu=varargin(I+2); + Hset=Houkou; + Vhoko='c'; + if mtlb_findstr(Hset,'n')~=[] + Vhoko='n'; Y=Y+MEMORI; + end + if mtlb_findstr(Hset,'s')~=[] + Vhoko='s'; Y=Y-MEMORI; + end + Hhoko='c'; + if mtlb_findstr(Hset,'e')~=[] + Hhoko='e'; X=X+MEMORI; + end + if mtlb_findstr(Hset,'w')~=[] + Hhoko='w'; X=X-MEMORI; + end + Hoko=Vhoko+Hhoko; + Suu='+-.0123456789'; + SuuL=Suu; + Hcode=ascii(Houkou); + J=1; Dstr=''; + while J<=length(Houkou) + Tmp=char(Hcode(J)); + if mtlb_findstr(SuuL,Tmp)~=[] + if Dstr=='' + Hk=char(Hcode(J-1)); + end + Dstr=Dstr+Tmp; + else + if Dstr~='' + Nmbr=msscanf(Dstr,'%f'); + D=Nmbr*MEMORI; + if Hk=='n' + Y=Y+D; + end + if Hk=='s' + Y=Y-D; + end + if Hk=='e' + X=X+D; + end + if Hk=='w' + X=X-D; + end + Dstr=''; + end + end + J=J+1; + end + if Dstr~='' + Nmbr=msscanf(Dstr,'%f'); + D=Nmbr*MEMORI; + if Hk=='n' + Y=Y+D; + end + if Hk=='s' + Y=Y-D; + end + if Hk=='e' + X=X+D; + end + if Hk=='w' + X=X-D; + end + end + CalcWidth(Hoko,Mojiretu); + CalcHeight(Hoko,Mojiretu); + Tmp='){\hspace*{\Width}'; + Str=Tmp+'\raisebox{\Height}{'+Mojiretu+'}}'; + if Wfile=='default' + mprintf('%s','\put('); + mprintf('%6.4f%s%6.4f',X,',',Y); + mprintf('%s%s\n',Str,'%'); + mprintf('%s\n','%'); + else + mfprintf(FID,'%s','\put('); + mfprintf(FID,'%6.4f%s%6.4f',X,',',Y); + mfprintf(FID,'%s%s\n',Str,'%'); + mfprintf(FID,'%s\n','%'); + end + if Wfile=='default' + mprintf('%s\n','%'); + else + mfprintf(FID,'%s\n','%'); + end + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Letterrot.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Letterrot.bin Binary files differnew file mode 100644 index 00000000..53dcb238 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Letterrot.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Letterrot.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Letterrot.sci new file mode 100755 index 00000000..f99917cf --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Letterrot.sci @@ -0,0 +1,36 @@ +// 08.05.31 +// 08.08.24 +// 09.12.25 + +function Letterrot(varargin) + global MEMORI; + P=varargin(1); + V=varargin(2); N=3; + P=Doscaling(P); + V=Doscaling(V); + Tmov=0; + Tmp=varargin(N); + if type(Tmp)==1 + Tmov=Tmp; N=N+1; + end + Nmov=0; + Tmp=varargin(N); + if type(Tmp)==1 then + Nmov=Tmp; N=N+1; + end + Mojiretu=varargin(N); + Tv=1/Vecnagasa(V)*V; + Nv=[-Tv(2),Tv(1)]; + P=P+MEMORI*Tmov*Tv+MEMORI*Nmov*Nv; + Tmp=acos(V(1)/Vecnagasa(V)); + Theta=round(Tmp*180/%pi); + if V(2)>=0 + Units=''; + else + Units='units=-360,'; + end + Tmp='\rotatebox['+Units+'origin=c]{'+string(Theta); + Tmp=Tmp+'}{'+Mojiretu+'}'; + Letter(P,"c",Tmp); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Lineplot.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Lineplot.bin Binary files differnew file mode 100644 index 00000000..3acfa7aa --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Lineplot.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Lineplot.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Lineplot.sci new file mode 100755 index 00000000..bc44c2e9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Lineplot.sci @@ -0,0 +1,44 @@ +// 09.10.09 +// 09.10.12 +// 09.11.01 +// 09.11.12 +// 09.12.06 +// 10.12.04 + +function Out=Lineplot(varargin) + Nargs=length(varargin); + A=varargin(1); + if type(A)==1 // 09.11.12 from + Tmp=length(A); + if Tmp>3 + B=A(Tmp/2+1:Tmp); + A=A(1:Tmp/2); + Is=2; + else + B=varargin(2); + Is=3; + end; + else + B=A(2); + A=A(1); + Is=2; + end; // upto + Mag=100; Semi=''; + for I=Is:Nargs + Tmp=varargin(I); + select type(Tmp) + case 1 + Mag=Tmp; + case 10 + Semi=Tmp; + end; + end; + V= Mag/norm(B-A)*(B-A) // 10.12.04 from here + if Semi=="" + Out=Listplot(A-V,A+V) + elseif Semi=="+" + Out=Listplot(A,A+V) + else + Out=Listplot(A-V,A) + end // 10.12.04 to here +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Listplot.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Listplot.bin Binary files differnew file mode 100644 index 00000000..e2ea3688 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Listplot.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Listplot.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Listplot.sci new file mode 100755 index 00000000..0bc9f736 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Listplot.sci @@ -0,0 +1,24 @@ +// +// 08.07.13 +// 09.06.13 + +function Z=Listplot(varargin) + Z=[]; + for I=1:length(varargin) + Data=varargin(I); + if Mixtype(Data)==1 + if size(Data,1)==1 + Tmp=matrix(Data,2,size(Data,2)/2); + Z=[Z;Tmp']; + else + Z=[Z;Data]; + end; + else + for J=1:Mixlength(Data) + Tmp=Mixop(J,Data); + Z=[Z;Tmp]; + end + end + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/MakeBowdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/MakeBowdata.bin Binary files differnew file mode 100644 index 00000000..10970e3d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/MakeBowdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/MakeBowdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/MakeBowdata.sci new file mode 100755 index 00000000..27e70d48 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/MakeBowdata.sci @@ -0,0 +1,49 @@ +// +// 08.08.24 +// 10.01.02 + +function Out=MakeBowdata(PA,PB,H) + global BOWSTART BOWEND + BOWSTART=PA; + BOWEND=PB; + Eps=10^(-5); + D=1/2*Vecnagasa(PB-PA); + R=(H^2+D^2)/(2*H); + A1=PA(1); A2=PA(2); + B1=PB(1); B2=PB(2); + if abs(A2-B2)>Eps + x=poly(0,'X'); + y=-(A1-B1)*x/(A2-B2)+(1/2)*(A1^2+A2^2-B1^2-B2^2)/(A2-B2); + Eq1=(A1-x)^2+(A2-y)^2-R^2; + Tmp=coeff(Eq1); + C0=Tmp(1); C1=Tmp(2); C2=Tmp(3); + Det=sqrt(C1^2-4*C0*C2); + Ansx1=(-C1+Det)/(2*C2); + Ansx2=(-C1-Det)/(2*C2); + Tmp=horner(y,Ansx1); + PC=[Ansx1,Tmp]; + Tmp=horner(y,Ansx2); + PC2=[Ansx2,Tmp]; + else + Tmp=0.5*(PA+PB); + PC=Tmp+[0,R-H]; + PC2=Tmp-[0,R-H]; + end; + VA=PA-PC; + VB=PB-PC; + if VA(1)*VB(2)-VA(2)*VB(1)<0 + PC=PC2; + end + AngA=acos((PA(1)-PC(1))/R); + if PA(2)-PC(2)<0 + AngA=-AngA; + end + AngB=acos((PB(1)-PC(1))/R); + if PB(2)-PC(2)<0 + AngB=-AngB; + end + if AngA>AngB + AngB=AngB+2*%pi; + end + Out=Mixmake(PC,R,AngA,AngB); +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/MakeCurves.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/MakeCurves.bin Binary files differnew file mode 100644 index 00000000..1e4a9df1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/MakeCurves.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/MakeCurves.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/MakeCurves.sci new file mode 100755 index 00000000..f3bbd3ec --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/MakeCurves.sci @@ -0,0 +1,62 @@ +// +// 09.12.25 +// 10.01.01 +// 10.12.02 ( debugged for norm()==0 ) + +function Outdata=MakeCurves(varargin) + Figdata=varargin(1); + Ptout=1; + if length(varargin)>=2 + Ptout=varargin(2); + end + Eps=10.0^(-6); + IndM=Dataindex(Figdata); + Atos=[]; + for Nd=1:size(IndM,1) + Tmp=IndM(Nd,:); + Motos=Figdata(Tmp(1):Tmp(2),:); + All=size(Motos,1); + if size(Motos,1)==1 + if InWindow(Motos)=='o' + continue; + end; + if Ptout==1 + Drwpt(Motos(1,:)); + else + Atos=[Atos;%inf,%inf;Doscaling(Motos)]; + end + continue + end + Crv=[]; + for I=2:All + P=Motos(I-1,:); + Q=Motos(I,:); + Snbn=MeetWindow(P,Q); + if Snbn==[] + if Crv~=[] + Atos=[Atos;%inf,%inf;Doscaling(Crv)]; + Crv=[]; + end + else + if norm(Snbn(1,:)-Snbn(2,:))<Eps // 10.12.02 + continue; + end; + if Crv==[] + Crv=Snbn + else + Tmp=Crv(size(Crv,1),:); + if norm(Tmp-Snbn(1,:))<Eps + Crv=[Crv;Snbn(2,:)]; + else + Atos=[Atos;%inf,%inf;Doscaling(Crv)]; + Crv=Snbn; + end + end + end + end + if size(Crv,1)>=2 + Atos=[Atos;%inf,%inf;Doscaling(Crv)]; + end + end + Outdata=Atos(2:size(Atos,1),:); +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/MakecutbycrvL.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/MakecutbycrvL.bin Binary files differnew file mode 100644 index 00000000..8d2516c2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/MakecutbycrvL.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/MakecutbycrvL.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/MakecutbycrvL.sci new file mode 100755 index 00000000..81b0492f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/MakecutbycrvL.sci @@ -0,0 +1,45 @@ +// 08.09.19 +// 08.10.15 +// 08.12.21 + +function AnsL=MakecutbycrvL(Out1,CutuvL,Uveqstr,Uname,Vname,Eps) + if CutuvL==[] + if Mixtype(Out1)==1 + AnsL=Mix(Out1); + else + AnsL=Out1; + end; + return; + end; + AnsL=[]; + ParL=Partitionseg(Out1,CutuvL,Eps); + Flg=0; + for J=1:length(ParL)-1 + Tmp=(ParL(J)+ParL(J+1))*0.5; + Tmp=PointonCurve(Tmp,Out1); + Tmp1='('+string(Tmp(1))+')'; + Tmp2='('+string(Tmp(2))+')'; + Tmp=strsubst(Uveqstr,Uname,Tmp1); + Tmp=strsubst(Tmp,Vname,Tmp2); + Tmp=evstr(Tmp); + if Tmp>0 + if Flg==0 + P1=ParL(J); + end; + Flg=1 + else + if Flg==1 + P2=ParL(J); + Tmp=Partcrv(P1,P2,Out1); + AnsL=Mixadd(AnsL,Tmp); + end; + Flg=0 + end; + end; + if Flg==1 + P2=ParL(length(ParL)); + Tmp=Partcrv(P1,P2,Out1); + AnsL=Mixadd(AnsL,Tmp); + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makehasen.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makehasen.bin Binary files differnew file mode 100644 index 00000000..b2f34062 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makehasen.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makehasen.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makehasen.sci new file mode 100755 index 00000000..3f768e87 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makehasen.sci @@ -0,0 +1,123 @@ +// +// 11.05.26 (for pdflatex) + +function Makehasen(Figdata,Sen,Gap,Ptn) + global Wfile FID; + Eps=10.0^(-6); + Clist=MakeCurves(Figdata); + DinM=Dataindex(Clist); + for N=1:size(DinM,1) + Tmp=DinM(N,:); + Data=Clist(Tmp(1):Tmp(2),:); + Dtall=size(Data,1); + Len=0; + Lenlist=[0]; + for I=2:Dtall + Len=Len+Vecnagasa(Data(I,:)-Data(I-1,:)); + Lenlist=[Lenlist,Len]; + end + Lenall=Lenlist(Dtall); + if Lenall==0 + continue + end + Kari=(Sen+Gap)*0.1; + Naga=Sen*0.1; + Tobi=Gap*0.1; + if Vecnagasa(Data(1,:)-Data(Dtall,:))<Eps + Nsen=max(ceil(Lenall/Kari),3); + SegUnit=Lenall/Nsen; + Naga=SegUnit*Sen/(Sen+Gap); + Tobi=SegUnit*Gap/(Sen+Gap); + SegList=[0:SegUnit:(Nsen-1)*SegUnit]; + else + if Ptn==0 + Nsen=max(ceil((Lenall+Tobi)/Kari),3); + SegUnit=Lenall*(Sen+Gap)/(Nsen*Sen+(Nsen-1)*Gap); + Naga=SegUnit*Sen/(Sen+Gap); + Tobi=SegUnit*Gap/(Sen+Gap); + SegList=[0:SegUnit:(Nsen-1)*SegUnit]; + else + Nsen=max(ceil((Lenall+Naga)/Kari),3); + SegUnit=Lenall*(Sen+Gap)/((Nsen-1)*Sen+Nsen*Gap); + Naga=SegUnit*Sen/(Sen+Gap); + Tobi=SegUnit*Gap/(Sen+Gap); + SegList=[Tobi:SegUnit:Tobi+(Nsen-2)*SegUnit]; + end + end + Hajime=1; Owari=1; + Mojisu=0; + for I=1:length(SegList) + Len=SegList(I); + J=Owari; + while Len>=Lenlist(J)-Eps + if J==Dtall + break + end + J=J+1; + end + Hajime=J-1; + J=Hajime; + while Len+Naga>Lenlist(J)-Eps + if J==Dtall + break + end + J=J+1 + end + Owari=J-1; + T=(Len-Lenlist(Hajime))... + /(Lenlist(Hajime+1)-Lenlist(Hajime)); + P=Data(Hajime,:)+T*(Data(Hajime+1,:)-Data(Hajime,:)); + X0=sprintf('%5.5f',P(1)); + Y0=sprintf('%5.5f',P(2)); + Pt0='('+X0+','+Y0+')'; + Str='\polyline'+Pt0; + if Wfile=='default' + mprintf('%s',Str); + else + mfprintf(FID,'%s',Str); + end; + Mojisu=Mojisu+length(Str); + for J=Hajime+1:Owari + P=Data(J,:); + X=sprintf('%5.5f',P(1)); + Y=sprintf('%5.5f',P(2)); + Pt='('+X+','+Y+')'; + Str=Pt; + if Wfile=='default' + mprintf('%s',Str); + else + mfprintf(FID,'%s',Str); + end; + Pt0=Pt; + Mojisu=Mojisu+length(Str); + end; + T=(Len+Naga-Lenlist(Owari))... + /(Lenlist(Owari+1)-Lenlist(Owari)); + P=Data(Owari,:)+T*(Data(Owari+1,:)-Data(Owari,:)); + X=sprintf('%5.5f',P(1)); + Y=sprintf('%5.5f',P(2)); + Pt='('+string(X)+','+string(Y)+')'; + Str=Pt; + if Wfile=='default' + mprintf('%s',Str); + else + mfprintf(FID,'%s',Str); + end; + Mojisu=Mojisu+length(Str); + if Mojisu>80 + if Wfile=='default' + mprintf('%s\n','%'); + else + mfprintf(FID,'%s\n','%'); + end; + Mojisu=0; + end + end + end + if Wfile=='default' + mprintf('%s\n%s\n','%','%'); + else + mfprintf(FID,'%s\n%s\n','%','%'); + end; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makeliststr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makeliststr.bin Binary files differnew file mode 100644 index 00000000..1c9d8f4d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makeliststr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makeliststr.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makeliststr.sci new file mode 100755 index 00000000..e9915e1b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makeliststr.sci @@ -0,0 +1,41 @@ +// 09.10.21 + +function Out=Makeliststr(L) + Out='list('; + for I=1:length(L) + Dt=L(I); + if type(Dt)==1 + if length(Dt)==1 + Dts=string(Dt); + else + Dts='['; + for J=1:size(Dt,1) + for K=1:size(Dt,2) + Dts=Dts+string(Dt(J,K)); + if K<size(Dt,2) + Dts=Dts+','; + end; + end; + if J<size(Dt,1) + Dts=Dts+';'; + else + Dts=Dts+']'; + end; + end; + end; + end; + if type(Dt)==10 + Dts=Prime()+Dt+Prime(); + end; + if type(Dt)==15 + Dts=Makeliststr(Dt); + end; + Out=Out+Dts; + if I<length(L) + Out=Out+','; + else + Out=Out+')'; + end; + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makesfcutoffdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makesfcutoffdata.bin Binary files differnew file mode 100644 index 00000000..bafa4670 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makesfcutoffdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makesfcutoffdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makesfcutoffdata.sci new file mode 100755 index 00000000..e24525e1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makesfcutoffdata.sci @@ -0,0 +1,345 @@ +// 08.09.19 +// 08.09.24 +// 08.10.09 +// 08.10.10 +// 08.10.15 +// 08.12.06 +// 08.12.21 +// 08.12.31 +// 10.02.16 Eps__ ( And Mislength, Mixop replaced ) +// 13.10.21 ( __ added to varibles ) + +function FsL__=Makesfcutoffdata(MS__) + global IMPLICITDATA CUSPDATA CUSPPT CUSPSPLITPT + global BORDERPT OTHERPARTITION PARTITIONPT + global HIDDENDATA BORDERHIDDENDATA; + timer(); + Nargs__=length(MS__); + HT__=Op(1,MS__); + PT__=Op(2,MS__); + Fd__=Op(3,MS__); + CutD__=Op(4,MS__); + Np__=[50,50]; + Eps__=[0.05,1]; // + Eps__2=0.2; + Sgnstr__='+'; + K__=0; + for I__=5:Nargs__ + Tmp__=Op(I__,MS__); + if type(Tmp__)==10 + Sgnstr__=Tmp__; + end; + if type(Tmp__)==1 // from + K__=K__+1; + if K__==1 + Np__=Tmp__; + if length(Np__)==1 + Np__=[Np__,Np__]; + end; + end; + if K__==2 + Eps__=Tmp__; + if length(Eps__)==1 + Eps__=[Eps__,1]; + end; + end; + if K__==3 + Eps__2=Tmp__; + end; + end; // upto + end; + Tmp__=Op(2,Fd__); + K__=mtlb_findstr(Tmp__,'='); + Xname__=part(Tmp__,1:K__-1); + Tmp__=Op(3,Fd__); + K__=mtlb_findstr(Tmp__,'='); + Yname__=part(Tmp__,1:K__-1); + Tmp__=Op(1,Fd__); + K__=mtlb_findstr(Tmp__,'='); + if K__~=[] + Zname__=part(Tmp__,1:K__-1); + else + Tmp__=Op(4,Fd__); + K__=mtlb_findstr(Tmp__,'='); + Zname__=part(Tmp__,1:K__-1); + end; + Fd__L=Fullformfunc(Fd__); + Fxy__=Op(1,Fd__L); + Xf__=Op(2,Fd__L); + Yf__=Op(3,Fd__L); + Zf__=Op(4,Fd__L); + DrwS__=Op(7,Fd__L); + Tmp__=Op(5,Fd__L); + K__=mtlb_findstr(Tmp__,'='); + Uname__=part(Tmp__,1:K__-1); + Urg__=evstr(part(Tmp__,K__+1:length(Tmp__))); + Tmp__=Op(6,Fd__L); + K__=mtlb_findstr(Tmp__,'='); + Vname__=part(Tmp__,1:K__-1); + Vrg__=evstr(part(Tmp__,K__+1:length(Tmp__))); + Umin__=Urg__(1); Umax__=Urg__(2); + Vmin__=Vrg__(1); Vmax__=Vrg__(2); + Fugou__=1; + if Sgnstr__=='-' | Sgnstr__=='n' + Fugou__=-1; + end; + if Mixtype(CutD__)~=1 + V1__=Op(1,CutD__); + Tmp__=Op(2,CutD__); + if length(Tmp__)>1 + D__=V1__(1)*Tmp__(1)+V1__(2)*Tmp__(2)+V1__(3)*Tmp__(3); + else + D__=Tmp__; + end; + Tmp__=string(V1__(1))+'*'+Xname__+'+'; + Tmp__=Tmp__+string(V1__(2))+'*'+Yname__+'+'; + Tmp__=Tmp__+string(V1__(3))+'*'+Zname__+'-'; + Eq__=Tmp__+string(D__); + elseif type(CutD__)==1 + V1__=CutD__(1:3); + D__=CutD__(4); + Tmp__=string(V1__(1))+'*'+Xname__+'+'; + Tmp__=Tmp__+string(V1__(2))+'*'+Yname__+'+'; + Tmp__=Tmp__+string(V1__(3))+'*'+Zname__+'+'; + Eq__=Tmp__+string(D__); + else + K__=mtlb_findstr(CutD__,'='); + if K__>0 + Tmp__1=part(CutD__,1:K__-1); + Tmp__2=part(CutD__,K__+1:length(CutD__)); + Eq__=Tmp__1+'-('+Tmp__2+')'; + else + Eq__=CutD__; + end; + end; + Eq__='('+string(Fugou__)+')*('+Eq__+')'; + Tmp__=strsubst(Eq__,Xname__,'('+Xf__+')'); + Tmp__=strsubst(Tmp__,Yname__,'('+Yf__+')'); + Uveq__=strsubst(Tmp__,Zname__,'('+Zf__+')'); + Tmp__1=Op(5,Fd__L); + Tmp__2=Op(6,Fd__L); + CutuvL__=Implicitplot(Uveq__,Tmp__1,Tmp__2,Np__); + EkL__=[]; + for I__=1:length(CutuvL__) + Out__1=Op(I__,CutuvL__); + Out__2=[]; + for J__=1:size(Out__1,1) + Tmp__1=Out__1(J__,1); + Tmp__2=Out__1(J__,2); + Tmp__=strsubst(Xf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Xv__=evstr(Tmp__); + Tmp__=strsubst(Yf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Yv__=evstr(Tmp__); + Tmp__=strsubst(Zf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Zv__=evstr(Tmp__); + Out__2=[Out__2,[Xv__,Yv__,Zv__]]; + end; + Tmp__=Spaceline(Out__2); + EkL__=Mixjoin(EkL__,list(Tmp__)); + end; + Tmp__=mtlb_findstr(DrwS__,'e'); + if length(Tmp__)~=0 + Tmp__=Paramplot('[Umax__,T]','T=[Vmin__,Vmax__]','N='+string(Np__(2))); + Tmp__L=MakecutbycrvL(Tmp__,CutuvL__,Uveq__,Uname__,Vname__,Eps__(1)); + for I__=1:length(Tmp__L) + Out__1=Op(I__,Tmp__L); + Out__2=[]; + for J__=1:size(Out__1,1) + Tmp__1=Out__1(J__,1); + Tmp__2=Out__1(J__,2); + Tmp__=strsubst(Xf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Xv__=evstr(Tmp__); + Tmp__=strsubst(Yf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Yv__=evstr(Tmp__); + Tmp__=strsubst(Zf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Zv__=evstr(Tmp__); + Out__2=[Out__2,[Xv__,Yv__,Zv__]]; + end; + Tmp__=Spaceline(Out__2); + EkL__=Mixjoin(EkL__,list(Tmp__)); + end + end; + Tmp__=mtlb_findstr(DrwS__,'n'); + if length(Tmp__)~=0 + Tmp__=Paramplot('[T,Vmax__]','T=[Umin__,Umax__]','N='+string(Np__(1))); + Tmp__L=MakecutbycrvL(Tmp__,CutuvL__,Uveq__,Uname__,Vname__,Eps__(1)); + for I__=1:length(Tmp__L) + Out__1=Op(I__,Tmp__L); + Out__2=[]; + for J__=1:size(Out__1,1) + Tmp__1=Out__1(J__,1); + Tmp__2=Out__1(J__,2); + Tmp__=strsubst(Xf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Xv__=evstr(Tmp__); + Tmp__=strsubst(Yf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Yv__=evstr(Tmp__); + Tmp__=strsubst(Zf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Zv__=evstr(Tmp__); + Out__2=[Out__2,[Xv__,Yv__,Zv__]]; + end; + Tmp__=Spaceline(Out__2); + EkL__=Mixjoin(EkL__,list(Tmp__)); + end + end; + Tmp__=mtlb_findstr(DrwS__,'w'); + if length(Tmp__)~=0 + Tmp__=Paramplot('[Umin__,T]','T=[Vmin__,Vmax__]','N='+string(Np__(2))); + Tmp__L=MakecutbycrvL(Tmp__,CutuvL__,Uveq__,Uname__,Vname__,Eps__(1)); + for I__=1:length(Tmp__L) + Out__1=Op(I__,Tmp__L); + Out__2=[]; + for J__=1:size(Out__1,1) + Tmp__1=Out__1(J__,1); + Tmp__2=Out__1(J__,2); + Tmp__=strsubst(Xf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Xv__=evstr(Tmp__); + Tmp__=strsubst(Yf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Yv__=evstr(Tmp__); + Tmp__=strsubst(Zf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Zv__=evstr(Tmp__); + Out__2=[Out__2,[Xv__,Yv__,Zv__]]; + end; + Tmp__=Spaceline(Out__2); + EkL__=Mixjoin(EkL__,list(Tmp__)); + end + end; + Tmp__=mtlb_findstr(DrwS__,'s'); + if length(Tmp__)~=0 + Tmp__=Paramplot('[T,Vmin__]','T=[Umin__,Umax__]','N='+string(Np__(1))); + Tmp__L=MakecutbycrvL(Tmp__,CutuvL__,Uveq__,Uname__,Vname__,Eps__(1)); + for I__=1:length(Tmp__L) + Out__1=Op(I__,Tmp__L); + Out__2=[]; + for J__=1:size(Out__1,1) + Tmp__1=Out__1(J__,1); + Tmp__2=Out__1(J__,2); + Tmp__=strsubst(Xf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Xv__=evstr(Tmp__); + Tmp__=strsubst(Yf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Yv__=evstr(Tmp__); + Tmp__=strsubst(Zf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Zv__=evstr(Tmp__); + Out__2=[Out__2,[Xv__,Yv__,Zv__]]; + end; + Tmp__=Spaceline(Out__2); + EkL__=Mixjoin(EkL__,list(Tmp__)); + end + end; + Fbdxy__=[]; + for I__=1:length(EkL__) + Out__1=Op(I__,EkL__); + Out__2=[]; + for J__=1:size(Out__1,1) + Tmp__=Out__1(J__,1:2); + Out__2=[Out__2,Tmp__]; + end; + Tmp__=Listplot(Out__2); + Fbdxy__=Mixjoin(Fbdxy__,list(Tmp__)); + end; + if PT__=='pers' + [Zval__,Xval__,Yval__]=Evlptablepers(Mix(Fd__,Np__)); + end; + if PT__=='para' + [Zval__,Xval__,Yval__]=Evlptablepara(Mix(Fd__,Np__)); + end; + Mixdisp(Mix('Ridge Equation obtained ',timer())); + Out__2=Implicitplot(Zval__,Xval__,Yval__); + IMPLICITDATA=Out__2; + Tmp__L=[]; + for I__=1:length(Out__2) + Tmp__1=Op(I__,Out__2); + Tmp__=MakecutbycrvL(Tmp__1,CutuvL__,Uveq__,Uname__,Vname__,Eps__(1)); + for J__=1:length(Tmp__) + Tmp__L=Mixjoin(Tmp__L,Op(J__,Tmp__)); + end; + end; + Out__3=Tmp__L; + IMPLICITDATA=Out__3; + Mixdisp(Mix('ImplicitData obtained ',timer())); + if PT__=='pers' + Out__4=Cuspsplitpers(Out__3,Fd__,Eps__(1)); + end; + if PT__=='para' + Out__4=Cuspsplitpara(Out__3,Fd__,Eps__(1)); + end; + CUSPDATA=Out__4; + CUSPT=CUSPSPLITPT; + Mixdisp(Mix('CuspData obtained ',timer())); + FkL__=Mixjoin(EkL__,Out__4); + if PT__=='pers' + Fall__=Projpers(FkL__); + end; + if PT__=='para' + Fall__=Projpara(FkL__); + end; + if HT__=='raw' + Mixdisp(Mix('BorderData obtained ',timer())); + FsL__=FkL__; + return; + end; + BORDERPT=[]; + Tmp__=[]; + for I__=1:length(Fall__) + Tmp__=Mixjoin(Tmp__,list([])); + end; + OTHERPARTITION=Tmp__; + FsL__=[]; + BORDERHIDDENDATA=[]; + for I__=1:length(Fall__) + if PT__=='pers' + Tmp__=Projpers(Op(I__,FkL__)); + end; + if PT__=='para' + Tmp__=Projpara(Op(I__,FkL__)); + end; + ParL__=Partitionseg(Tmp__,Fall__,Eps__(1),Eps__2,I__); + if length(PARTITIONPT)>2 + Tmp__=length(PARTITIONPT)-1; + Tmp__1=BORDERPT; + for J__=2:Tmp__ + Tmp__2=Op(J__,PARTITIONPT); + Tmp__1=Mixjoin(Tmp__1,list(Tmp__2)); + end; + BORDERPT=Tmp__1; + end; + if PT__=='pers' + if Fxy__=='p' + Tmp__1=Op(I__,FkL__); + Tmp__=Nohiddenpers2(ParL__,Tmp__1,Fd__,Uveq__,Np__,Eps__); + else + Tmp__1=Op(I__,FkL__); + Tmp__=Nohiddenpers2(ParL__,Tmp__1,Fd__,Uveq__,Np__,Eps__); +// Tmp__2=Mix(Fxy__,Fbdxy__,Xname__,Yname__); +// Tmp__=Nohiddenpers(ParL__,Tmp__1,Tmp__2); + end; + else + if Fxy__=='p' + Tmp__1=Op(I__,FkL__); + Tmp__=Nohiddenpara2(ParL__,Tmp__1,Fd__,Uveq__,Np__,Eps__); + else + Tmp__1=Op(I__,FkL__); + Tmp__=Nohiddenpara2(ParL__,Tmp__1,Fd__,Uveq__,Np__,Eps__); +// Tmp__2=Mix(Fxy__,Fbdxy__,Xname__,Yname__); +// Tmp__=Nohiddenpara(ParL__,Tmp__1,Tmp__2); + end; + end; + BORDERHIDDENDATA=Mixjoin(BORDERHIDDENDATA,HIDDENDATA); + FsL__=Mixjoin(FsL__,Tmp__); + end; + Mixdisp(Mix('BorderData obtained ',timer())); +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makeshasen.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makeshasen.bin Binary files differnew file mode 100644 index 00000000..c4f4d4c5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makeshasen.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makeshasen.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makeshasen.sci new file mode 100755 index 00000000..443751be --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makeshasen.sci @@ -0,0 +1,41 @@ +// 08.05.20 +// 09.10.05 +// 10.01.20 +// 10.02.01 + +function Out=Makeshasen(PtnL,PA,V,Bdy) + Eps=10.0^(-6); + TenL=KoutenList(PA,V,Bdy); + Nten=length(TenL); + Call=length(Bdy); + Ptn=zeros(1,Call); + Out=list(); + GL=[] + Te=-10.0^6; + for I=1:Nten-1 + TenP=Op(I,TenL); TenQ=Op(I+1,TenL); + Ts=Op(1,TenP); + P=Op(2,TenP); Q=Op(2,TenQ); + NC=Op(4,TenP); + Tmp=modulo(Ptn(NC)+1,2); + Ptn(1,NC)=Tmp; + if Op(1,TenQ)-Ts>Eps + if Member(Ptn,PtnL) + if abs(Te-Ts)>Eps + if GL~=[] + J=length(Out); + Out(J+1)=GL; + end; + Tmp=Listplot(P,Q); + GL=Tmp; + else + GL=[GL;Q]; + end + Te=Op(1,TenQ); + end + end + end + if size(GL,1)>0 + Out=Mixjoin(Out,list(GL)) + end; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makeskeletondata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makeskeletondata.bin Binary files differnew file mode 100644 index 00000000..102b44b6 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makeskeletondata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makeskeletondata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makeskeletondata.sci new file mode 100755 index 00000000..99ad5910 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makeskeletondata.sci @@ -0,0 +1,171 @@ +// 08.07.13 +// 08.10.16 +// 09.03.05 +// 09.05.12 +// 10.05.09 +// 14.07.05 +// 16.12.24 ( when kukanL=[] ) + +function Allres=Makeskeletondata(Obj2L,Plt2L,R0,Eps2) + Eps=10.0^(-3); + Dmat=[]; + Dind=[]; + for I=1:Mixlength(Plt2L) + Dt=Mixop(I,Plt2L); + N1=size(Dmat,1)+1; + Dmat=[Dmat;Dt]; + N2=size(Dmat,1); + Dind=[Dind;N1,N2]; + end; + Nind=size(Dind,1); + Allres=[]; + for Nobj=1:Mixlength(Obj2L) + Plt2=Mixop(Nobj,Obj2L); + PhL=Plt2(:,1:2); + ClipL=[]; + for Ns=1:size(PhL,1)-1 + P1=PhL(Ns:Ns+1,:); + for I=1:size(Dind,1) + Tmp=Dmat(Dind(I,1):Dind(I,2),:); + P2=Tmp(:,1:2); + KC=IntersectcrvsPp(P1,P2,Eps); + if Mixlength(KC)>0 + for J=1:Mixlength(KC) + P=Mixop(1,Mixop(J,KC)); + Tmp=Mixop(2,Mixop(J,KC)); + if Tmp<1+Eps & Ns==1 // 2010.05.09 + continue; + end; + if Tmp>Numptcrv(P1)-Eps & Ns==size(PhL,1)-1 + continue; + end; // + N1=Ns; + N2=Mixop(3,Mixop(J,KC)); + Pa=Plt2(N1,1:2); + Za=Plt2(N1,3); + Pb=Plt2(N1+1,1:2); + Zb=Plt2(N1+1,3); + if norm(Pa-Pb)<Eps // added from here + continue; + end; // upto here + T1=norm(Pa-P)/norm(Pa-Pb); + Z1=(1-T1)*Za+T1*Zb; + Tmp=Dmat(Dind(I,1):Dind(I,2),:); + Pa=Tmp(N2,1:2); + Za=Tmp(N2,3); + Pb=Tmp(N2+1,1:2); + Zb=Tmp(N2+1,3); + if norm(Pa-Pb)<Eps // added from here + continue; + end; // upto here + T2=norm(Pa-P)/norm(Pa-Pb); + Z2=(1-T2)*Za+T2*Zb; + if Z1<Z2-Eps2 + if ClipL==[] // corrected from here + Tmp=1; + else + Tmp1=ClipL(:,1)-P(1); + Tmp2=ClipL(:,2)-P(2); + Tmp3=Tmp1.^2+Tmp2.^2; // 20140705 + Tmp=min(Tmp3); + end; // upto here + if Tmp>Eps^2 + Tmp1=P1(2,:)-P1(1,:); + Tmp2=Pb-Pa; + Tmp3=Naiseki(Tmp1,Tmp2); + Tmp3=Tmp3/norm(Tmp1)/norm(Tmp2); + Tmp=1-0.5*Tmp3^2; + ClipL=[ClipL;P,N1,T1,R0/Tmp]; + end; + end; + end; + end; + end; + end; + Te=size(Plt2,1); + KukanL=[1.0,Te]; + P1=PhL; + if size(ClipL,1)>0 + for I=1:size(ClipL,1) + P=ClipL(I,1:2); + NN=ClipL(I,3); + T=NN+ClipL(I,4); + R=ClipL(I,5); + Flg=0; + for J=NN:-1:1 + Q=PointonCurve(J,P1); + if norm(P-Q)<R + continue; + end + Flg=1; + break; + end; + if Flg==0 + T1=1; + else + T1=J; T2=T; + H=T2-T1; + for N=1:10 + H=H*0.5; + Q=PointonCurve(T1+H,P1); + if norm(P-Q)<R + T2=T2-H; + else + T1=T1+H; + end; + end; + end; + Ku=[T1]; + Flg=0; + for J=NN+1:Te + Q=PointonCurve(J,P1); + if norm(P-Q)<R + continue; + end; + Flg=1; + break; + end; + if Flg==0 + T2=Te; + else + T1=T; T2=J; + H=T2-T1; + for N=1:10 + H=H*0.5; + Q=PointonCurve(T1+H,P1); + if norm(P-Q)<R + T1=T1+H; + else + T2=T2-H; + end; + end; + end; + Ku=[Ku,T2]; + if size(KukanL,2)==0 then + break; + end; + KukanL=Kukannozoku(Ku,KukanL); + end; + end; + Res=[]; + for I=1:size(KukanL,1) + T1=KukanL(I,1); N1=Trunc(T1); + T2=KukanL(I,2); N2=Trunc(T2); + PtL=[]; + if T1-N1<1-Eps + Tmp=PointonCurve(T1,P1); + PtL=MixS(Tmp); + end; + for J=N1+1:N2 + Tmp=PointonCurve(J,P1); + PtL=Mixadd(PtL,Tmp); + end; + if T2-N2>Eps + Tmp=PointonCurve(T2,P1); + PtL=Mixadd(PtL,Tmp); + end; + Res=Mixadd(Res,Listplot(PtL)); + end; + Allres=Mixjoin(Allres,Res); + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makeskeletonpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makeskeletonpersdata.bin Binary files differnew file mode 100644 index 00000000..0082bcd5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makeskeletonpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makeskeletonpersdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makeskeletonpersdata.sci new file mode 100755 index 00000000..4838d658 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makeskeletonpersdata.sci @@ -0,0 +1,188 @@ +// 08.08.14 +// 08.10.16 +// 09.05.12 +// 09.09.25 +// 10.05.09 +// 10.08.17 +// 14.07.05 + +function Allres=Makeskeletonpersdata(Obj2L,Plt2L,R0,Eps2) + Eps=10.0^(-3); + Dmat=[]; + Dind=[]; + for I=1:Mixlength(Plt2L) + Dt=Mixop(I,Plt2L); + N1=size(Dmat,1)+1; + Dmat=[Dmat;Dt]; + N2=size(Dmat,1); + Dind=[Dind;N1,N2]; + end; + Nind=size(Dind,1); + Allres=[]; + for Nobj=1:Mixlength(Obj2L) + Plt2=Mixop(Nobj,Obj2L); + PhL=Plt2(:,1:2); + ClipL=[]; + for Ns=1:size(PhL,1)-1 + P1=PhL(Ns:Ns+1,:); + for I=1:size(Dind,1) + Tmp=Dmat(Dind(I,1):Dind(I,2),:); + P2=Tmp(:,1:2); + KC=IntersectcrvsPp(P1,P2,Eps); + if Mixlength(KC)>0 + for J=1:Mixlength(KC) + P=Mixop(1,Mixop(J,KC)); + Tmp=Mixop(2,Mixop(J,KC)); + if Tmp<1+Eps & Ns==1 // 2010.05.09 + continue; + end; + if Tmp>Numptcrv(P1)-Eps & Ns==size(PhL,1)-1 + continue; + end; // + N1=Ns; + N2=Mixop(3,Mixop(J,KC)); + Pa=Plt2(N1,1:2); + Za=Plt2(N1,3); + Pb=Plt2(N1+1,1:2); + Zb=Plt2(N1+1,3); + if norm(Pa-Pb)<Eps // added from here + continue; + end; // upto here + T1=norm(Pa-P)/norm(Pa-Pb); + Pka=Cancoordpers([Pa(1),Pa(2),Za]); + Pkb=Cancoordpers([Pb(1),Pb(2),Zb]); + if T1>1-Eps + Pk=Pkb; + else + Tmp1=Listplot([Pa,Pb]); + Tmp2=Spaceline([Pka,Pkb]); + Tmp=Invperspt(1+T1,Tmp1,Tmp2); + Pk=Mixop(1,Tmp); + end; + Z1=Zperspt(Pk); + Tmp=Dmat(Dind(I,1):Dind(I,2),:); + Pa=Tmp(N2,1:2); + Za=Tmp(N2,3); + Pb=Tmp(N2+1,1:2); + Zb=Tmp(N2+1,3); + if norm(Pa-Pb)<Eps // added from here + continue; + end; // upto here + T2=norm(Pa-P)/norm(Pa-Pb); + Pka=Cancoordpers([Pa(1),Pa(2),Za]); + Pkb=Cancoordpers([Pb(1),Pb(2),Zb]); + if T2>1-Eps + Pk=Pkb; + else + Tmp1=Listplot([Pa,Pb]); + Tmp2=Spaceline([Pka,Pkb]); + Tmp=Invperspt(1+T2,Tmp1,Tmp2); + Pk=Mixop(1,Tmp); + end + Z2=Zperspt(Pk); + if Z1<Z2-Eps2 + if ClipL==[] // corrected from here + Tmp=1; + else + Tmp1=ClipL(:,1)-P(1); + Tmp2=ClipL(:,2)-P(2); + Tmp3=Tmp1.^2+Tmp2.^2; // 20140705 + Tmp=min(Tmp3); + end; // upto here + if Tmp>Eps^2 + Tmp1=P1(2,:)-P1(1,:); + Tmp2=Pb-Pa; + Tmp3=Naiseki(Tmp1,Tmp2); + Tmp3=Tmp3/norm(Tmp1)/norm(Tmp2); + Tmp=1-0.5*Tmp3^2; + ClipL=[ClipL;P,N1,T1,R0/Tmp]; + end; + end; + end; + end; + end; + end; + Te=size(Plt2,1); + KukanL=[1.0,Te]; + P1=PhL; + if size(ClipL,1)>0 + for I=1:size(ClipL,1) + P=ClipL(I,1:2); + NN=ClipL(I,3); + T=NN+ClipL(I,4); + R= ClipL(I,5); // 10.08.17 + Flg=0; + for J=NN:-1:1 + Q=PointonCurve(J,P1); + if norm(P-Q)<R + continue; + end + Flg=1; + break; + end; + if Flg==0 + T1=1; + else + T1=J; T2=T; + H=T2-T1; + for N=1:10 + H=H*0.5; + Q=PointonCurve(T1+H,P1); + if norm(P-Q)<R + T2=T2-H; + else + T1=T1+H; + end; + end; + end; + Ku=[T1]; + Flg=0; + for J=NN+1:Te + Q=PointonCurve(J,P1); + if norm(P-Q)<R + continue; + end; + Flg=1; + break; + end; + if Flg==0 + T2=Te; + else + T1=T; T2=J; + H=T2-T1; + for N=1:10 + H=H*0.5; + Q=PointonCurve(T1+H,P1); + if norm(P-Q)<R + T1=T1+H; + else + T2=T2-H; + end; + end; + end; + Ku=[Ku,T2]; + KukanL=Kukannozoku(Ku,KukanL); + end; + end; + Res=[]; + for I=1:size(KukanL,1) + T1=KukanL(I,1); N1=Trunc(T1); + T2=KukanL(I,2); N2=Trunc(T2); + PtL=[]; + if T1-N1<1-Eps + Tmp=PointonCurve(T1,P1); + PtL=MixS(Tmp); + end; + for J=N1+1:N2 + Tmp=PointonCurve(J,P1); + PtL=Mixadd(PtL,Tmp); + end; + if T2-N2>Eps + Tmp=PointonCurve(T2,P1); + PtL=Mixadd(PtL,Tmp); + end; + Res=Mixadd(Res,Listplot(PtL)); + end; + Allres=Mixjoin(Allres,Res); + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makevaltable.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makevaltable.bin Binary files differnew file mode 100644 index 00000000..37e149ff --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makevaltable.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makevaltable.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makevaltable.sci new file mode 100755 index 00000000..dc917f30 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makevaltable.sci @@ -0,0 +1,79 @@ +// 08.09.09 +// 08.10.08 +// 08.12.06 +// 08.12.30 +// 09.06.03 +// 13.10.19 ( __ added to variables ) + +function [Zval__,Xval__,Yval__]=Makevaltable(MS__) + Eps__=10^(-6); + Nargs__=Mixlength(MS__); + Fstr__=Mixop(1,MS__); + Tmp__=Mixop(2,MS__); + Tmp1__=mtlb_findstr(Tmp__,'='); + Xname__=part(Tmp__,Tmp1__-1); + Xrange__=evstr(part(Tmp__,Tmp1__+1:length(Tmp__))); + Tmp__=Mixop(3,MS__); + Tmp1__=mtlb_findstr(Tmp__,'='); + Yname__=part(Tmp__,Tmp1__-1); + Yrange__=evstr(part(Tmp__,Tmp1__+1:length(Tmp__))); + Tmp__=strsubst(Fstr__,Xname__,'x'); + Fstr__=strsubst(Tmp__,Yname__,'y'); + Tmp__=mtlb_findstr(Fstr__,Xname__); + if length(Tmp__)==0 + Fstr__=Fstr__+'+0*x'; + end; + Mdv__=50; + Ndv__=50; + if Nargs__>=4 + Tmp__=Mixop(4,MS__); + if length(Tmp__)>1 + Mdv__=Tmp__(1,1); + Ndv__=Tmp__(1,2); + else + Mdv__=Tmp__ + if Nargs__==4 + Ndv__=Mdv__ + else + Tmp1__=Mixop(5,MS__); + if type(Tmp1__)==1 & length(Tmp1__)==1 + Ndv__=Tmp1__; + else + Ndv__=Mdv__; + end + end + end + end + X1__=Xrange__(1); X2__=Xrange__(2); + Y1__=Yrange__(1); Y2__=Yrange__(2); + Dx__=(X2__-X1__)/(Mdv__-1); + Dy__=(Y2__-Y1__)/(Ndv__-1); + Xval__=[]; + Tmp__=X1__; + while Tmp__<X2__+Eps__ + Xval__=[Xval__,Tmp__]; + Tmp__=Tmp__+Dx__; + end; + Yval__=[]; + Tmp__=Y1__; + while Tmp__<Y2__+Eps__ + Yval__=[Yval__,Tmp__]; + Tmp__=Tmp__+Dy__; + end; + I__=1; +// x=Xval; +// for y=Yval +// Tmp=evstr(Fstr); +// Zval(I,:)=Tmp; +// I=I+1; +// end; + for y=Yval__ + J__=1; + for x=Xval__ + Zval__(I__,J__)=evstr(Fstr__); + J__=J__+1; + end; + I__=I__+1; + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/MakeveLfaceL.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/MakeveLfaceL.bin Binary files differnew file mode 100644 index 00000000..82acb406 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/MakeveLfaceL.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/MakeveLfaceL.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/MakeveLfaceL.sci new file mode 100755 index 00000000..a16a5a4d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/MakeveLfaceL.sci @@ -0,0 +1,68 @@ +// 08.08.22 +// 09.10.25 +// 09.10.26 +// 09.10.27 +// 09.10.29 + +function Out=MakeveLfaceL(VfL) + // Out format + // VeL Edge, Face num(as numlist), VeL num + // FL Face (Vertexs) + Eps=10^(-4); + Tmp=VfL($); + Tmp1=Tmp(1); + if type(Tmp1)==1 + FvL=list(VfL); + else + FvL=VfL; + end; + EL=list(); FL=list(); + for Nn=1:length(FvL) + Tmp=FvL(Nn); + VL=Tmp(1); + if length(VL)>0 + FnL=Tmp(2); + FaceL=list(); + for I=1:length(FnL) + Tmp1=FnL(I); + PtL=list(); + for J=1:length(Tmp1) + Tmp2=Tmp1(J); + PtL(J)=VL(Tmp2); + end; + FaceL(I)=PtL; + end; + else + FaceL=list(Tmp(2)); + end; + for I=1:length(FaceL) + Face=FaceL(I); + Face($+1)=Face(1); + FL($+1)=Face; + for J=1:length(Face)-1 + Edge=list(Face(J),Face(J+1)); + Flg=0; + for K=1:length(EL) + Tmp=EL(K); + Tmp1=Tmp(1); + Tmp2=norm(Edge(1)-Tmp1(1))+norm(Edge(2)-Tmp1(2)); + Tmp3=norm(Edge(1)-Tmp1(2))+norm(Edge(2)-Tmp1(1)); + if Tmp2<Eps | Tmp3<Eps + Tmp=EL(K); + Tmp1=Tmp(1); + Tmp2=[Tmp(2),length(FL)]; + EL(K)=list(Tmp1,Tmp2,K); + Flg=1; + break; + end; + end; + if Flg==0 + Ntmp=length(EL); + EL(Ntmp+1)=list(Edge,[length(FL)],Ntmp+1); + end; + end; + end; + end; + Out=list(EL,FL); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makexybdy.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makexybdy.bin Binary files differnew file mode 100644 index 00000000..7c309bf0 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makexybdy.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makexybdy.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makexybdy.sci new file mode 100644 index 00000000..fb8aa27b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Makexybdy.sci @@ -0,0 +1,111 @@ +// 08.09.13 +// 08.09.16 +// 08.10.11 +// 08.10.27 +// 14.07.07 debug ( Kitahara ) + +function EhL=Makexybdy(Fd,Np) + Eps0=10^(-4); + FdL=Fullformfunc(Fd); + Tmp1=Mixop(2,FdL); + Tmp2=Mixop(3,FdL); + Xystr=[Tmp1,Tmp2]; + Tmp=Mixop(5,FdL); + K=mtlb_findstr(Tmp,'='); + Uname=part(Tmp,1:K-1); + Urg=evstr(part(Tmp,K+1:length(Tmp))); + Tmp=Mixop(6,FdL); + K=mtlb_findstr(Tmp,'='); + Vname=part(Tmp,1:K-1); + Vrg=evstr(part(Tmp,K+1:length(Tmp))); + Umin=Urg(1); Umax=Urg(2); + Vmin=Vrg(1); Vmax=Vrg(2); + DrwS=Mixop(7,FdL); + Cflg=0; + EhL=[]; + Tmp=mtlb_findstr(DrwS,'e'); + if length(Tmp)~=0 + Tmp1=strsubst(Xystr,Uname,'('+string(Umax)+')'); + Tmp2=Mixop(6,FdL); + Tmp3='N='+string(Np(2)); + Tmp=Paramplot(Tmp1,Tmp2,Tmp3); + if norm(Ptstart(Tmp)-Ptend(Tmp))<Eps0 + Cflg=1; + Tmp(size(Tmp,1),:)=Tmp(1,:); + end; + EhL=Mixadd(EhL,Tmp); + end; + Tmp=mtlb_findstr(DrwS,'n'); + if length(Tmp)~=0 + Tmp1=strsubst(Xystr,Vname,'('+string(Vmax)+')'); + Tmp2=Mixop(5,FdL); + Tmp3='N='+string(Np(1)); + Tmp=Paramplot(Tmp1,Tmp2,Tmp3); + if Cflg~=0 // 140707 Kitahara + Tmp1=Mixop(Mixlength(EhL),EhL); + Tmp=Joincrvs(Tmp1,Tmp); + if norm(Ptstart(Tmp)-Ptend(Tmp))<Eps0 + Cflg=1; + Tmp(size(Tmp,1),:)=Tmp(1,:); + end; + Tmp1=Mixsub(1:Mixlength(EhL)-1,EhL); + EhL=Mixadd(Tmp1,Tmp); + else + Cflg=0; + if norm(Ptstart(Tmp)-Ptend(Tmp))<Eps0 + Cflg=1; + Tmp(size(Tmp,1),:)=Tmp(1,:); + end; + EhL=Mixadd(EhL,Tmp); + end; + end; + Tmp=mtlb_findstr(DrwS,'w'); + if length(Tmp)~=0 + Tmp1=strsubst(Xystr,Uname,'('+string(Umin)+')'); + Tmp2=Mixop(6,FdL); + Tmp3='N='+string(Np(2)); + Tmp=Paramplot(Tmp1,Tmp2,Tmp3); + if Cflg~=0 //if Cflg==0 + Tmp1=Mixop(Mixlength(EhL),EhL); + Tmp=Joincrvs(Tmp1,Tmp); + if norm(Ptstart(Tmp)-Ptend(Tmp))<Eps0 + Cflg=1; + Tmp(size(Tmp,1),:)=Tmp(1,:); + end; + Tmp1=Mixsub(1:Mixlength(EhL)-1,EhL); + EhL=Mixadd(Tmp1,Tmp); + else + Cflg=0; + if norm(Ptstart(Tmp)-Ptend(Tmp))<Eps0 + Cflg=1; + Tmp(size(Tmp,1),:)=Tmp(1,:); + end; + EhL=Mixadd(EhL,Tmp); + end; + end; + Tmp=mtlb_findstr(DrwS,'s'); + if length(Tmp)~=0 + Tmp1=strsubst(Xystr,Vname,'('+string(Vmin)+')'); + Tmp2=Mixop(5,FdL); + Tmp3='N='+string(Np(1)); + Tmp=Paramplot(Tmp1,Tmp2,Tmp3); + if Cflg~=0 //if Cflg==0 + Tmp1=Mixop(Mixlength(EhL),EhL); + Tmp=Joincrvs(Tmp1,Tmp); + if norm(Ptstart(Tmp)-Ptend(Tmp))<Eps0 + Cflg=1; + Tmp(size(Tmp,1),:)=Tmp(1,:); + end; + Tmp1=Mixsub(1:Mixlength(EhL)-1,EhL); + EhL=Mixadd(Tmp1,Tmp); + else + Cflg=0; + if norm(Ptstart(Tmp)-Ptend(Tmp))<Eps0 + Cflg=1; + Tmp(size(Tmp,1),:)=Tmp(1,:); + end; + EhL=Mixadd(EhL,Tmp); + end; + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mawarikomi.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mawarikomi.bin Binary files differnew file mode 100644 index 00000000..86b2954f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mawarikomi.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mawarikomi.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mawarikomi.sci new file mode 100755 index 00000000..11b02c63 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mawarikomi.sci @@ -0,0 +1,39 @@ +function Mawarikomi(varargin) + FL='default'; + haba='10cm'; + Nargs=length(varargin); + if Nargs>0 + haba=varargin(1); + if Nargs>=2 + FL=varargin(2); + if FL=='' + FL='tmp.tex' + end + end + end + StrM=[ + '\begin{mawarikomi}%',... + '%<1>[5](0,0)%',... + '{'+haba+'}{%',... + '',... + '}',... + '',... + '',... + '\end{mawarikomi}'... + ]; + if FL~='default' + Fid=mopen(FL,'w'); + mprintf('%s\n\n','Writing to '+FL); + end; + for I=1:size(StrM,2) + Str=StrM(I); + mprintf('%s\n',Str); + if FL~='default' + mfprintf(Fid,'%s\n',Str); + end + end + if FL~='default' + mclose(Fid); + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/MeetWindow.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/MeetWindow.bin Binary files differnew file mode 100644 index 00000000..78d328fc --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/MeetWindow.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/MeetWindow.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/MeetWindow.sci new file mode 100755 index 00000000..65f543ea --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/MeetWindow.sci @@ -0,0 +1,91 @@ +// +// 08.05.30 debugged +// 08.08.14 (horner) +// 09.12.31 (gsort) +// 15.10.23 ( horner not used ) +// 16.12.29 (msprintf("%3.10f",..) used ) + +function R=MeetWindow(PA,PB) + global XMIN XMAX YMIN YMAX + if InWindow(PA)=='i' & InWindow(PB)=='i' + R=[PA;PB]; + return + end; + Eps=10.0^(-6); + t=poly(0,'T'); + PT="(1-(t))*PA+(t)*PB"; + Txm=-1; TxM=-1; Tym=-1; TyM=-1; + if PA(1)~=PB(1) + Txm=(XMIN-PA(1))/(PB(1)-PA(1)); + TxM=(XMAX-PA(1))/(PB(1)-PA(1)); + end + if PA(2)~=PB(2) + Tym=(YMIN-PA(2))/(PB(2)-PA(2)); + TyM=(YMAX-PA(2))/(PB(2)-PA(2)); + end; +// Tmp=horner(PT(2),Txm); + Tmp1=strsubst(PT,"t",msprintf("%3.10f",Txm)); + Tmp1=evstr(Tmp1) + Tmp=Tmp1(2); + if Tmp<YMIN-Eps | Tmp>YMAX+Eps + Txm=-1; + end +// Tmp=horner(PT(2),TxM); + Tmp1=strsubst(PT,"t",msprintf("%3.10f",TxM)); + Tmp1=evstr(Tmp1) + Tmp=Tmp1(2); + if Tmp<YMIN-Eps | Tmp>YMAX+Eps + TxM=-1 + end +// Tmp=horner(PT(1),Tym); + Tmp1=strsubst(PT,"t",msprintf("%3.10f",Tym)); + Tmp1=evstr(Tmp1) + Tmp=Tmp1(1); + if Tmp<XMIN-Eps | Tmp>XMAX+Eps + Tym=-1 + end +// Tmp=horner(PT(1),TyM); + Tmp1=strsubst(PT,"t",msprintf("%3.10f",TyM)); + Tmp1=evstr(Tmp1) + Tmp=Tmp1(1); + if Tmp<XMIN-Eps | Tmp>XMAX+Eps + TyM=-1 + end + Tmp=gsort([Txm,TxM,Tym,TyM]); + Tans=Tmp(length(Tmp):-1:1); + Tmp=[]; + for I=1:length(Tans) + Tmp1=Tans(I); + if Tmp1>-Eps & Tmp1<1+Eps + if length(Tmp)==0 + Tmp=[Tmp1]; + elseif abs(Tmp(length(Tmp))-Tmp1)>Eps + Tmp=[Tmp,Tmp1] + end + end + end + Tans=Tmp; + if length(Tans)==0 + R=[]; + return; + end + if length(Tans)==1 +// Ten1=horner(PT,Tans(1)); + Tmp1=strsubst(PT,"t",string(Tans(1))); + Ten1=evstr(Tmp1) + if InWindow(PA)=='i' + R=[PA;Ten1]; + return; + else + R=[Ten1;PB]; + return + end + end +// Ten1=horner(PT,Tans(1)); + Tmp1=strsubst(PT,"t",string(Tans(1))); + Ten1=evstr(Tmp1) +// Ten2=horner(PT,Tans(2)); + Tmp1=strsubst(PT,"t",string(Tans(2))); + Ten2=evstr(Tmp1) + R=[Ten1;Ten2]; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Meetpoints.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Meetpoints.bin Binary files differnew file mode 100644 index 00000000..ebe3ead9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Meetpoints.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Meetpoints.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Meetpoints.sci new file mode 100755 index 00000000..65ba1166 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Meetpoints.sci @@ -0,0 +1,169 @@ +// 08.10.24 +// 08.10.25 +// 08.10.26 +// 09.12.31 (gsort) +// 13.10.22 ( __ added to varibles ) +// 13.12.02 debugged + +function PtL__=Meetpoints(PtA__,PtB__,Fd__,Uveq__,Np__,Eps__) + Eps__0=10^(-4); + Vec__=PtB__-PtA__; + Out__=[]; + PtL__=[]; + Tmp__=Mixop(2,Fd__); + K__=mtlb_findstr(Tmp__,'='); + Xname__=part(Tmp__,1:K__-1); + Tmp__=Mixop(3,Fd__); + K__=mtlb_findstr(Tmp__,'='); + Yname__=part(Tmp__,1:K__-1); + Tmp__=Mixop(1,Fd__); + K__=mtlb_findstr(Tmp__,'='); + if K__~=[] + Zname__=part(Tmp__,1:K__-1); + else + Tmp__=Mixop(4,Fd__); + K__=mtlb_findstr(Tmp__,'='); + Zname__=part(Tmp__,1:K__-1); + end; + Fd__L=Fullformfunc(Fd__); + Xf__=Mixop(2,Fd__L); + Yf__=Mixop(3,Fd__L); + Zf__=Mixop(4,Fd__L); + Tmp__=Mixop(5,Fd__L); + K__=mtlb_findstr(Tmp__,'='); + Uname__=part(Tmp__,1:K__-1); + Urg__=evstr(part(Tmp__,K__+1:length(Tmp__))); + Tmp__=Mixop(6,Fd__L); + K__=mtlb_findstr(Tmp__,'='); + Vname__=part(Tmp__,1:K__-1); + Vrg__=evstr(part(Tmp__,K__+1:length(Tmp__))); + Umin__=Urg__(1); UMax__=Urg__(2); + Vmin__=Vrg__(1); VMax__=Vrg__(2); + V1__='('+string(Vec__(1))+')'; + V2__='('+string(Vec__(2))+')'; + V3__='('+string(Vec__(3))+')'; + Xstr__='(('+Xf__+')-('+string(PtA__(1))+'))'; + Ystr__='(('+Yf__+')-('+string(PtA__(2))+'))'; + Zstr__='(('+Zf__+')-('+string(PtA__(3))+'))'; + Urg__str=Mixop(5,Fd__L); + Vrg__str=Mixop(6,Fd__L); + if abs(Vec__(2))>Eps__0 | abs(Vec__(1))>Eps__0 + Eq__=V2__+'*'+Xstr__+'-'+V1__+'*'+Ystr__; + else + Eq__=Xstr__; + end; + MS__=Mix(Eq__,Urg__str,Vrg__str,Np__); + [Zval__,Xval__,Yval__]=Makevaltable(MS__); + for J=1:length(Yval__)-1 + for I=1:length(Xval__)-1 + a1__=Xval__(I);b1__=Yval__(J);c1__=Zval__(J,I); + a2__=Xval__(I+1);b2__=Yval__(J);c2__=Zval__(J,I+1); + a3__=Xval__(I+1);b3__=Yval__(J+1);c3__=Zval__(J+1,I+1); + a4__=Xval__(I);b4__=Yval__(J+1);c4__=Zval__(J+1,I); + PL__=[a1__,b1__;a2__,b2__;a3__,b3__;a4__,b4__;a1__,b1__]; + VL__=[c1__,c2__,c3__,c4__,c1__]; + QL__=[]; + for K__=1:4 + P1__=PL__(K__,:); P2__=PL__(K__+1,:); + M1__=VL__(K__); M2__=VL__(K__+1); + if M1__>=Eps__0 & M2__>=Eps__0 + continue; + end; + if M1__<=-Eps__0 & M2__<=-Eps__0 + continue; + end; + if abs(M1__)<Eps__0 + Tmp__=P1__; + elseif abs(M2__)<Eps__0 + continue; + else + Tmp__=1/(M1__-M2__)*(-M2__*P1__+M1__*P2__); + end; + QL__=[QL__;Tmp__]; + end; + if size(QL__,1)==2 + Puv__1=QL__(1,:); Puv__2=QL__(2,:); + Tmp__1=Puv__1(1); + Tmp__2=Puv__1(2); + Tmp__=strsubst(Xf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Xv__=evstr(Tmp__); + Tmp__=strsubst(Yf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Yv__=evstr(Tmp__); // 13.12.02 + Tmp__=strsubst(Zf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Zv__=evstr(Tmp__); + P1__=[Xv__,Yv__,Zv__]; + Tmp__1=Puv__2(1); + Tmp__2=Puv__2(2); + Tmp__=strsubst(Xf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Xv__=evstr(Tmp__); + Tmp__=strsubst(Yf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Yv__=evstr(Tmp__); + Tmp__=strsubst(Zf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Zv__=evstr(Tmp__); + P2__=[Xv__,Yv__,Zv__]; + V1__=Vec__(1); V2__=Vec__(2); V3__=Vec__(3); + if abs(V1__)>Eps__0 + M1__=PtA__(3)+V3__/V1__*(P1__(1)-PtA__(1))-P1__(3); + M2__=PtA__(3)+V3__/V1__*(P2__(1)-PtA__(1))-P2__(3); + elseif abs(V2__)>Eps__0 + M1__=PtA__(3)+V3__/V2__*(P1__(2)-PtA__(2))-P1__(3); + M2__=PtA__(3)+V3__/V2__*(P2__(2)-PtA__(2))-P2__(3); + else + M1__=PtA__(2)-P1__(2); + M2__=PtA__(2)-P2__(2); + end; + if M1__*M2__>=0 + if (M1__>Eps__0 & M2__>Eps__0) | (M1__<-Eps__0 & M2__<-Eps__0) + continue; + end; + if abs(M1__)<=Eps__0 + Pt__=P1__; Ptuv__=Puv__1; + else + Pt__=P2__; Ptuv__=Puv__2; + end; + else + Pt__=1/(M1__-M2__)*(-M2__*P1__+M1__*P2__); + Ptuv__=1/(M1__-M2__)*(-M2__*Puv__1+M1__*Puv__2); + end; + if type(Uveq__)==10 + Tmp__1='('+string(Ptuv__(1))+')'; + Tmp__2='('+string(Ptuv__(2))+')'; + Tmp__=strsubst(Uveq__,Uname__,Tmp__1); + Tmp__=strsubst(Tmp__,Vname__,Tmp__2); + Tmp__=evstr(Tmp__); + if Tmp__<-Eps__0 + continue; + end; + end; + Tmp__1=Naiseki(Pt__-PtA__,Vec__); + Tmp__1=Tmp__1/norm(Vec__)^2; + if Tmp__1>-Eps__0 & Tmp__1<1+Eps__0 + Out__=[Out__,Tmp__1]; + end; + end; + end; + end; + if length(Out__)>0 + Out__=gsort(Out__); + Out__=Out__(length(Out__):-1:1); + Tmp__=[Out__(1)]; + for I__=2:length(Out__) + Tmp__1=(Out__(I__)-Tmp__(length(Tmp__)))*Vec__; + Tmp__1=norm(Tmp__1); + if Tmp__1>Eps__ + Tmp__=[Tmp__,Out__(I__)]; + end; + end; + Out__=Tmp__; + for I__=1:length(Out__) + Tmp__=PtA__+Out__(I__)*Vec__; + PtL__=Mixadd(PtL__,Tmp__); + end; + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Member.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Member.bin Binary files differnew file mode 100644 index 00000000..711c4fc4 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Member.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Member.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Member.sci new file mode 100755 index 00000000..79826f90 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Member.sci @@ -0,0 +1,21 @@ +// 08.05.18 + +// Structure changed +// 09.10.11 + +function TF=Member(A,L) + if Mixtype(L)>1 + N=Mixlength(L); + else + N=length(L); + end + for I=1:N + Tmp=Op(I,L); + if A==Tmp + TF=%t + return + end + end + TF=%f +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Menkakusi.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Menkakusi.bin Binary files differnew file mode 100644 index 00000000..9cb3477e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Menkakusi.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Menkakusi.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Menkakusi.sci new file mode 100755 index 00000000..de8d4b0d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Menkakusi.sci @@ -0,0 +1,206 @@ +// 08.08.21 +// 09.10.24 +// 09.10.26 + +function Menkakusi(Face,Nf,Ptype) + global THETA PHI EyePoint FocusPoint VELNO VELHI; + Eps0=10^(-6); + Eps=10^(-4); + Tmp1=Face(1)-Face(2); + Tmp2=Face(3)-Face(2); + if norm(Tmp1)<Eps | norm(Tmp2)<Eps + return; + end; + Vec=1/norm(Tmp1)/norm(Tmp2)*Crossprod(Tmp1,Tmp2); + if norm(Vec)<Eps + return; + end; + if Ptype==-1 + W=EyePoint; + Tmp=Dotprod(Vec,W-Face(1)); + else + W=[sin(THETA)*cos(PHI),sin(THETA)*sin(PHI),cos(THETA)]; + W=100*W; + Tmp=Dotprod(Vec,W-Face(1)); + end; + if abs(Tmp)<Eps + return; + end; + if Tmp<-Eps + Vec=-Vec; + end; + if Ptype==-1 + G1=Projpers(Spaceline(Face)); + else + G1=Projpara(Spaceline(Face)) + end; + VL=list(); + for I=1:Numptcrv(G1) + VL(I)=Ptcrv(I,G1); + end; + Out1L=list(); + Out2L=VELHI; + for N=1:length(VELNO) + Tmp=VELNO(N); + Edge=Tmp(1); + Ne=Tmp(2); + Nenm=Tmp(3); + if Member(Nf,Ne) + Out1L($+1)=list(Edge,Ne,Nenm); + continue; + end; + if Ptype==-1 + P=Perspt(Edge(1)); + Q=Perspt(Edge(2)); + else + P=Parapt(Edge(1)); + Q=Parapt(Edge(2)); + end; + if norm(P-Q)<Eps + continue; + end; + Tmp=Kyoukai(Mix(G1)); + Tmp1=Naigai(P,Tmp); + Ng1=Tmp1(1); + Tmp1=Naigai(Q,Tmp); + Ng2=Tmp1(1); + KL=IntersectcrvsPp(Listplot([P,Q]),G1); + if Mixlength(KL)==0 + if Ng1==0 + Out1L($+1)=list(Edge,Ne,Nenm); + else + Tmp1=(Edge(1)+Edge(2))*0.5-Face(1); + Tmp=Dotprod(Tmp1,Vec)/norm(Tmp1); + if Tmp>-Eps + Out1L($+1)=list(Edge,Ne,Nenm); + else + Out2L($+1)=list(Edge,Ne,Nenm); + end; + end; + continue; + end; + Flg=0; + for I=1:Mixlength(VL)-1 + Tmp=VL(I+1)-VL(I); + if norm(Tmp)<Eps continue; end; + Tmp1=Crossprod(Tmp,Q-P)/norm(Tmp)/norm(Q-P); + if abs(Tmp1)<Eps + Flg=1; + break; + end; + end; + if Flg==1 + Tmp=Mixop(I,VL)-P; + if norm(Tmp)<Eps + Tmp1=0; + else + Tmp1=Crossprod(Tmp,Q-P)/norm(Tmp)/norm(Q-P); + end; + if abs(Tmp1)<Eps then + Out1L($+1)=list(Edge,Ne,Nenm); + continue; + end; + end; + if Mixlength(KL)==1 + Tmp=KL(1); + Tmp=Tmp(2)-1; + if Tmp<Eps + if Ng2==0 + Out1L($+1)=list(Edge,Ne,Nenm); + else + Tmp1=Edge(2)-Face(1); + Tmp1=Dotprod(Tmp1,Vec); + if Tmp1>-Eps + Out1L($+1)=list(Edge,Ne,Nenm); + else + Out2L($+1)=list(Edge,Ne,Nenm); + end; + end; + continue; + end; + if Tmp>1-Eps + if Ng1==0 + Out1L($+1)=list(Edge,Ne,Nenm); + else + Tmp1=Edge(1)-Face(1); + Tmp1=Dotprod(Tmp1,Vec); + if Tmp1>-Eps + Out1L($+1)=list(Edge,Ne,Nenm); + else + Out2L($+1)=list(Edge,Ne,Nenm); + end; + end; + continue; + end; + if Ng1==0 & Ng2==0 + Out1L($+1)=list(Edge,Ne,Nenm); + else + Tmp1=KL(1); + Tmp1=Tmp1(1); + if Ptype==-1 + Tmp=Invperspt(Tmp1,Spaceline(Edge)); + else + Tmp=Invparapt(Tmp1,Spaceline(Edge)) + end; + Ak=Tmp(1); + if Ng1==1 + Tmp1=Edge(1)-Face(1); + Tmp1=Dotprod(Tmp1,Vec); + if Tmp1>-Eps + Out1L($+1)=list(Edge,Ne,Nenm); + else + Tmp2=list(Ak,Edge(2)); + Out1L($+1)=list(Tmp2,Ne,Nenm); + Tmp2=list(Edge(1),Ak); + Out2L($+1)=list(Tmp2,Ne,Nenm); + end; + end; + if Ng2==1 + Tmp1=Edge(2)-Face(1); + Tmp1=Dotprod(Tmp1,Vec); + if Tmp1>-Eps + Out1L($+1)=list(Edge,Ne,Nenm); + else + Tmp2=list(Edge(1),Ak); + Out1L($+1)=list(Tmp2,Ne,Nenm); + Tmp2=list(Ak,Edge(2)); + Out2L($+1)=list(Tmp2,Ne,Nenm); + end; + end; + end; + end; + if Mixlength(KL)==2 + Tmp1=KL(1); + Tmp1=Tmp1(2); + Tmp2=KL(2); + Tmp2=Tmp2(2); + if Tmp1>Tmp2 + KL=list(KL(2),KL(1)); + end; + Tmp=Spaceline(Edge); + Tmp1=KL(1); + Tmp1=Tmp1(1); + Tmp2=KL(2); + Tmp2=Tmp2(1); + if Ptype==-1 + Ak=Mixop(1,Invperspt(Tmp1,Tmp)); + Bk=Mixop(1,Invperspt(Tmp2,Tmp)) + else + Ak=Mixop(1,Invparapt(Tmp1,Tmp)); + Bk=Mixop(1,Invparapt(Tmp2,Tmp)) + end; + Tmp1=(Ak+Bk)*0.5-Face(1); + Tmp=Dotprod(Tmp1,Vec); + if Tmp>-Eps + Out1L($+1)=list(Edge,Ne,Nenm); + else + Out1L($+1)=list(list(Edge(1),Ak),Ne,Nenm); + Out1L($+1)=list(list(Bk,Edge(2)),Ne,Nenm); + Out2L($+1)=list(list(Ak,Bk),Ne,Nenm); + end; + end; + end; + VELNO=Out1L; + VELHI=Out2L; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Menkakusi2.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Menkakusi2.bin Binary files differnew file mode 100644 index 00000000..e8361324 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Menkakusi2.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Menkakusi2.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Menkakusi2.sci new file mode 100755 index 00000000..43eab74b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Menkakusi2.sci @@ -0,0 +1,186 @@ +// 09.10.29 +// 09.11.15 +// 10.08.17 debug (line 66) + +function Menkakusi2(Face,Nf,Ptype) + global THETA PHI EyePoint FocusPoint VELNO VELHI; + Eps0=10^(-6); + Eps=10^(-4); + Tmp1=Face(1)-Face(2); + Tmp2=Face(3)-Face(2); + if norm(Tmp1)<Eps | norm(Tmp2)<Eps + return; + end; + Vec=1/norm(Tmp1)/norm(Tmp2)*Crossprod(Tmp1,Tmp2); + if norm(Vec)<Eps + return; + end; + if Ptype==-1 + W=EyePoint; + Tmp=Dotprod(Vec,W-Face(1)); + else + W=[sin(THETA)*cos(PHI),sin(THETA)*sin(PHI),cos(THETA)]; + W=100*W; + Tmp=Dotprod(Vec,W-Face(1)); + end; + if abs(Tmp)<Eps + return; + end; + if Tmp<-Eps + Vec=-Vec; + end; + if Ptype==-1 + G1=Projpers(Spaceline(Face)); + else + G1=Projpara(Spaceline(Face)) + end; + VL=list(); + for I=1:Numptcrv(G1) + VL(I)=Ptcrv(I,G1); + end; + Out1L=list(); + Out2L=VELHI; + for N=1:length(VELNO) + Out1=list(); + Out2=list(); + Tmp=VELNO(N); + Edge=Tmp(1); + Ne=Tmp(2); + NNe=Tmp(3); + if Member(Nf,Ne) + Out1L($+1)=list(Edge,Ne,NNe); + continue; + end; + if Ptype==-1 + PtA=Perspt(Edge(1)); + PtB=Perspt(Edge(2)); + else + PtA=Parapt(Edge(1)); + PtB=Parapt(Edge(2)); + end; + if norm(PtA-PtB)<Eps continue; end; + Bdy=list(G1); + V=PtB-PtA; + TenL=KoutenList(PtA,V,Bdy); + Nten=length(TenL); + if Nten==0 // 10.08.17 + Out1L($+1)=list(Edge,Ne,NNe); + continue; + end; + Te=0; + Pe3=Edge(1); + if Ptype==-1 + Tmp1=Perspt(Pe3); + Tmp=Invperspt(Tmp1,Spaceline(Face)); + else + Tmp1=Parapt(Pe3); + Tmp=Invparapt(Tmp1,Spaceline(Face)); + end; + Qe3=Tmp(1); + Flg=0; + for I=1:Nten + TenP=TenL(I); + Ts=TenP(1); + P=TenP(2); + if Ts<-Eps + continue; + end; + Eline=Spaceline(Edge); + if Ptype==-1 + Tmp=Invperspt(P,Eline); + Tmp1=Invperspt(P,Spaceline(Face)); + else + Tmp=Invparapt(P,Eline) + Tmp1=Invparapt(P,Spaceline(Face)); + end; + P3=Tmp(1); Q3=Tmp1(1); + if Ts>1-Eps // P3, Q3 are necessary + Flg=I; + break; + end; + if abs(Te-Ts)>Eps0 // + if modulo(I,2)==1 + Out1($+1)=list(Pe3,P3); + else + if Qe3==[] + Tmp=Op(2,TenL(I-1)); + if Ptype==-1 + Tmp1=Invperspt(Tmp,Spaceline(Face)); + else + Tmp1=Invparapt(Tmp,Spaceline(Face)); + end; + Qe3=Tmp1(1); + end; + PM=0.5*(Pe3+P3); QM=0.5*(Qe3+Q3); + if Ptype==-1 + Z1=Zperspt(PM); Z2=Zperspt(QM); + else + Z1=Zparapt(PM); Z2=Zparapt(QM); + end; + if Z1>Z2 + Out1($+1)=list(Pe3,P3); + else + Out2($+1)=list(Pe3,P3); + end; + end; + end; + Te=Ts; Pe3=P3; Qe3=Q3; + end; + if Flg==0 + if norm(Pe3-Edge(2))>Eps0 + Out1($+1)=list(Pe3,Edge(2)); + end; + else + if modulo(Flg,2)==1 + Out1($+1)=list(Pe3,Edge(2)); + else + PM=0.5*(Pe3+P3); QM=0.5*(Qe3+Q3); + if Ptype==-1 + Z1=Zperspt(PM); Z2=Zperspt(QM); + else + Z1=Zparapt(PM); Z2=Zparapt(QM); + end; + if Z1>Z2 + Out1($+1)=list(Pe3,Edge(2)); + else + Out2($+1)=list(Pe3,Edge(2)); + end; + end; + end; + for I=1:length(Out1) + Tmp=Out1(I); + if I==1 + SeL=Tmp; + else + if norm(SeL(2)-Tmp(1))<Eps0 + SeL(2)=Tmp(2); + else + Out1L($+1)=list(SeL,Ne,NNe); + SeL=Tmp; + end; + end; + end; + if length(Out1)>0 + Out1L($+1)=list(SeL,Ne,NNe); + end; + for I=1:length(Out2) + Tmp=Out2(I); + if I==1 + SeL=Tmp; + else + if norm(SeL(2)-Tmp(1))<Eps0 + SeL(2)=Tmp(2); + else + Out2L($+1)=list(SeL,Ne,NNe); + SeL=Tmp; + end; + end; + end; + if length(Out2)>0 + Out2L($+1)=list(SeL,Ne,NNe); + end; + end; + VELNO=Out1L; + VELHI=Out2L; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mix.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mix.bin Binary files differnew file mode 100644 index 00000000..acc02ec0 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mix.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mix.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mix.sci new file mode 100755 index 00000000..4f06c437 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mix.sci @@ -0,0 +1,15 @@ +// 08.05.20 +// 08.08.08 + +// Structure changed +// 09.10.11 + +function M=Mix(varargin) + Nargs=length(varargin); + M=list(); + for I=1:Nargs + Da=varargin(I); + M(I)=Da; + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/MixL.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/MixL.bin Binary files differnew file mode 100644 index 00000000..50f6189c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/MixL.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/MixL.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/MixL.sci new file mode 100755 index 00000000..daf5a2d9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/MixL.sci @@ -0,0 +1,14 @@ +// 08.05.19 + +// Structure changed +// 09.10.11 + +function M=MixL(varargin) + Nargs=length(varargin); + M=list(); + for I=1:Nargs + Da=varargin(I); + M(I)=Da; + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/MixS.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/MixS.bin Binary files differnew file mode 100644 index 00000000..2372bb1f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/MixS.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/MixS.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/MixS.sci new file mode 100755 index 00000000..623af493 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/MixS.sci @@ -0,0 +1,15 @@ +// 08.05.19 + +//Structure Changed + +// 09.10.11 + +function M=MixS(varargin) + Nargs=length(varargin); + M=list(); + for I=1:Nargs + Da=varargin(I); + M(I)=Da; + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixadd.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixadd.bin Binary files differnew file mode 100644 index 00000000..0dbd5427 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixadd.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixadd.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixadd.sci new file mode 100755 index 00000000..8d45fea1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixadd.sci @@ -0,0 +1,23 @@ +// 05.14 Data Structure +// 05.16 List of MixList +// 05.19 use:MixS, MixL, Mixtype +// 08.08.17 + +// Structure changed +// 09.10.11 + +function M=Mixadd(varargin) + Nargs=length(varargin); + M=list(); + Tmp=varargin(1); + if length(Tmp)==0 + M(1)=varargin(2); + else + M=Tmp; + M($+1)=varargin(2); + end; + for I=3:Nargs + M($+1)=varargin(I); + end; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixdisp.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixdisp.bin Binary files differnew file mode 100644 index 00000000..45325b78 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixdisp.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixdisp.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixdisp.sci new file mode 100755 index 00000000..2fed1197 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixdisp.sci @@ -0,0 +1,14 @@ +// 08.05.19 + +// Structure changed +// 09.10.11 +// 10.01.02 + +function Mixdisp(L) + if Mixtype(L)==1 + disp(L) + return; + end; + Str=Makeliststr(L); + disp(Str) +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixjoin.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixjoin.bin Binary files differnew file mode 100644 index 00000000..6ed0a2a6 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixjoin.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixjoin.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixjoin.sci new file mode 100755 index 00000000..d6e49c14 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixjoin.sci @@ -0,0 +1,29 @@ +// 08.05.18 +// 08.05.19 Changed +// 08.08.15 + +// Structure changed +// 09.10.11 + +function M=Mixjoin(varargin) + Nargs=length(varargin); + M=list(); + for I=1:Nargs + Tmp=varargin(I); + if length(Tmp)==0 + continue; + end; + if Mixtype(Tmp)==1 + Tmp=list(Tmp); + end; + if length(M)==0 + M=Tmp; + else + M=lstcat(M,Tmp); + end; + end; + if length(M)==0 + M=[]; + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixlength.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixlength.bin Binary files differnew file mode 100644 index 00000000..b601884d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixlength.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixlength.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixlength.sci new file mode 100755 index 00000000..6fd31749 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixlength.sci @@ -0,0 +1,18 @@ +// 08.05.14 Data Structure +// 08.05.23 Debugged + +// Structure changed +// 09.10.11 + +function Out=Mixlength(PL) + if PL==[] + Out=0; + return + end + if Mixtype(PL)==1 + Out=size(PL,1); + else + Out=length(PL); + end; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixmake.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixmake.bin Binary files differnew file mode 100644 index 00000000..c607a109 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixmake.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixmake.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixmake.sci new file mode 100755 index 00000000..7f05a2ab --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixmake.sci @@ -0,0 +1,14 @@ +// 08.05.19 + +// Structure changed +// 09.10.11 + +function PL=Mixmake(varargin) + PL=list(); + for I=1:length(varargin) + Tmp=varargin(I); + PL=Mixadd(PL,Tmp); + end +endfunction + + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixop.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixop.bin Binary files differnew file mode 100644 index 00000000..9aa1f9f1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixop.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixop.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixop.sci new file mode 100755 index 00000000..10c846dc --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixop.sci @@ -0,0 +1,22 @@ +// 08.05.14 Data Structure +// 08.04.15 List ex N=1:3 +// 08.05.16 List of MixL +// 08.05.18 Debugged +// 08.05.19 Changed +// 08.08.17 + +// Structure changed +// 09.10.11 + +function D=Mixop(N,PL) + D=[]; + if Mixtype(PL)==1 + D=PL; + return; + end; + if type(N)~=1 | length(N)>1 | N>Mixlength(PL) + return + end; + D=PL(N); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixsub.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixsub.bin Binary files differnew file mode 100644 index 00000000..e2b2ba6a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixsub.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixsub.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixsub.sci new file mode 100755 index 00000000..e3e281f3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixsub.sci @@ -0,0 +1,18 @@ +// 08.05.19 +// 08.05.20 debugged +// 08.06.02 + +// Structure changed +// 09.10.11 + +function M=Mixsub(Rg,PL) + M=list(); + N=Mixlength(PL); + for I=Rg + if I>N + return; + end; + M($+1)=PL(I); + end; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixtype.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixtype.bin Binary files differnew file mode 100644 index 00000000..4d786a5d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixtype.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixtype.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixtype.sci new file mode 100755 index 00000000..b336c763 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Mixtype.sci @@ -0,0 +1,19 @@ +// 08.05.19 + +// Structure changed +// 09.10.11 + +function T=Mixtype(D) + if type(D)~=15 + T=1; + return; + end; + for I=1:length(D) + if type(D(I))==15 + T=3; + return; + end; + end; + T=2; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Naigai.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Naigai.bin Binary files differnew file mode 100644 index 00000000..aa1e8c72 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Naigai.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Naigai.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Naigai.sci new file mode 100755 index 00000000..8a4f0557 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Naigai.sci @@ -0,0 +1,18 @@ +// 08.05.18 +// 08.05.20 + +function Ptn=Naigai(A,Bdy) + V=[1,1]; + Call=Mixlength(Bdy); + KL=KoutenList(A,V,Bdy); + Ptn=zeros(1,Call); + for K=1:Mixlength(KL) + Ten=Op(K,KL); + T=Op(1,Ten); NC=Op(4,Ten); + if T<0 + Tmp=modulo(Ptn(NC)+1,2); + Ptn(1,NC)=Tmp; + end + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Naiseki.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Naiseki.bin Binary files differnew file mode 100644 index 00000000..0c5dc7b1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Naiseki.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Naiseki.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Naiseki.sci new file mode 100755 index 00000000..193ad384 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Naiseki.sci @@ -0,0 +1,4 @@ +function N=Naiseki(a,b) + N=a*b'; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Nearestpt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Nearestpt.bin Binary files differnew file mode 100644 index 00000000..59d31369 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Nearestpt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Nearestpt.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Nearestpt.sci new file mode 100755 index 00000000..a404370a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Nearestpt.sci @@ -0,0 +1,53 @@ +// 08.05.31 +// 08.06.03 +// 08.10.07 + +function Ans=Nearestpt(varargin) + Nargs=length(varargin); + PL1=varargin(1); + if size(PL1,1)==1 + Flg=0; + else + Flg=1 + end + Eps=10.0^(-6); +// Fig=varargin(2); + PL=varargin(2); + Ans=MixS(PL1(1,:),1,PL(1,:),1,norm(PL1(1,:)-PL(1,:))); + for N=1:size(PL1,1) + PA=PL1(N,:); + Pm=PL(1,:); + Im=1; + Sm=norm(Pm-PA); + for I=1:size(PL,1)-1 + A1=PL(I,1); A2=PL(I,2); + B1=PL(I+1,1); B2=PL(I+1,2); + V1=B1-A1; V2=B2-A2; + X1=PA(1); X2=PA(2); + Tmp=V2^2+V1^2; + if abs(Tmp)<Eps + continue; + end; + T=(-A2*V2-V1*A1+V1*X1+X2*V2)/Tmp; + if T<-Eps + P=[A1,A2]; + elseif T>1+Eps + P=[B1,B2]; + else + P=[A1+T*V1,A2+T*V2]; + end + S=norm(P-PA); + if S<Sm-Eps + Tmp=ParamonCurve(P,I,PL); + Pm=P; Im=Tmp; Sm=S; + end + end + if Sm<Op(5,Ans) + Ans=MixS(PA,N,Pm,Im,Sm); + end + end + if Flg==0 + Ans=Mixsub(3:5,Ans); + end +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Newlength.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Newlength.bin Binary files differnew file mode 100644 index 00000000..038306fb --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Newlength.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Newlength.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Newlength.sci new file mode 100755 index 00000000..9e0227e8 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Newlength.sci @@ -0,0 +1,9 @@ +function Newlength(varargin) + if length(varargin)==0 + Kyorihensuu(); + else + FL=varargin(1); + Kyorihensuu(FL); + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Nohiddenpara.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Nohiddenpara.bin Binary files differnew file mode 100644 index 00000000..701b77db --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Nohiddenpara.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Nohiddenpara.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Nohiddenpara.sci new file mode 100755 index 00000000..3826b281 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Nohiddenpara.sci @@ -0,0 +1,254 @@ +// 08.09.13 +// 09.12.31 (gsort) + +function FigkL=Nohiddenpara(varargin) + global HIDDENDATA THETA PHI; + Eps=0.001; + PaL=varargin(1); + Fk=varargin(2); + FuncdL=varargin(3); + Tmp=Mixop(1,FuncdL); + Fxy=Mixop(1,Tmp); + K=mtlb_findstr(Fxy,'='); + Fxy=part(Fxy,K+1:length(Fxy)); + Fbdxy=Mixop(2,FuncdL); + Tmp=Mixop(3,FuncdL); + Xname=Mixop(1,Tmp); + Tmp=Mixop(4,FuncdL); + Yname=Mixop(1,Tmp); + FigkL=[]; + if Fbdxy==[] + return; + end; + Bdy=Kyoukai(Fbdxy); + Ptn=0; + Fh=Projpara(Fk); + SeL=[]; + for N=1:length(PaL)-1 + S=(PaL(N)+PaL(N+1))/2; + P=PointonCurve(S,Fh); + Tmp=Invparapt(S,Fh,Fk) + Pk=Mixop(1,Tmp); + Qk=[sin(THETA)*cos(PHI),sin(THETA)*sin(PHI),cos(THETA)]; + Flg=zeros(1,Mixlength(Fbdxy)); + for I=1:1000 + Tmp=Pk+I*10*Qk; + Tmp1=Naigai(Tmp(1:2),Bdy); + if Tmp1==Flg + Flg=1; + Qk=Tmp; + break; + end; + end; + if Flg~=1 + disp('Bad EyePoint'); + return; + end; + T=poly(0,'t'); + P0=(1-T)*Pk+T*Qk; + X0str='('+pol2str(P0(1))+')'; + Y0str='('+pol2str(P0(2))+')'; + Z0str='('+pol2str(P0(3))+')'; + Tmp=strsubst(Fxy,Xname,X0str); + Tmp=strsubst(Tmp,Yname,Y0str); + Efn=Z0str+'-('+Tmp+')'; + t=0; + Tmp=evstr(Efn); + Eps=max(Eps,abs(Tmp)); + Tmp1=evstr([X0str,Y0str]); + t=1; + Tmp2=evstr([X0str,Y0str]); + Seg=Listplot([Tmp1,Tmp2]); + Tmp=[]; + for I=1:Mixlength(Fbdxy) + Tmp2=Mixop(I,Fbdxy); + Tmp1=IntersectcrvsPp(Seg,Tmp2,Eps); + if Mixlength(Tmp1)>0 + Tmp2=[]; + for J=1:Mixlength(Tmp1) + Tmp3=Mixop(J,Tmp1); + Tmp3=Mixop(2,Tmp3)-1; + Tmp2=[Tmp2,Tmp3]; + end; + Tmp=[Tmp,Tmp2]; + else + Tmp2=Mixop(I,Fbdxy); + Tmp1=Nearestpt(Tmp2,Seg); + Tmp3=Mixop(5,Tmp1); + if Tmp3<Eps + Tmp4=Mixop(4,Tmp1); + Tmp=[Tmp,Tmp4-1]; + end; + end; + end; + if length(Tmp)==0 + SeL=[SeL,N]; + continue; + end; + Tmp=gsort(Tmp); + Tmp=Tmp(length(Tmp):-1:1); + ParamL=[0]; + for I=1:length(Tmp) + Tmp1=Tmp(I); + Tmp2=ParamL(length(ParamL)); + if Tmp1-Tmp2>Eps + ParamL=[ParamL,Tmp1]; + end; + end; + Nhdflg=0; + for M=1:length(ParamL)-1 + TL=[ParamL(M),ParamL(M+1)]; + t=TL(1); + Tmp1=evstr([X0str,Y0str]); + t=TL(2); + Tmp2=evstr([X0str,Y0str]); + Tmp=Naigai(0.5*(Tmp1+Tmp2),Bdy); + Tmp=modulo(sum(Tmp),2); + if Tmp==Ptn continue; end; + Ik=max(ceil(log((TL(2)-TL(1))/Eps)/log(2)),6); + t=TL(1); + Tmp1=evstr(Efn); + t=TL(2); + Tmp2=evstr(Efn); + if abs(Tmp1)<=Eps + if M>1 + Nhdflg=-10; + break; + end; + end; + if abs(Tmp2)<=Eps + Nhdflg=-10; + break; + end; + if Tmp2>Eps + if Tmp1<-Eps + Nhdflg=-10; + break; + end; + for I=1:Ik + AddL=[]; + VL=[]; + for J=1:length(TL)-1 + Tmp=(TL(J)+TL(J+1))*0.5; + AddL=[AddL,Tmp]; + t=Tmp; + Tmp1=evstr(Efn); + VL=[VL,Tmp1]; + end; + Tmp1=min(VL); + if Tmp1<=-Eps*2 + Nhdflg=-10; + break; + end; + TL=gsort([TL,AddL]); + end; + if Nhdflg~=0 break; end; + else + if Tmp1<-Eps + Nhdflg=-10; + break; + end; + for I=1:Ik + AddL=[]; + VL=[]; + for J=1:length(TL)-1 + Tmp=(TL(J)+TL(J+1))*0.5; + AddL=[AddL,Tmp]; + t=Tmp; + Tmp1=evstr(Efn); + VL=[VL,Tmp1]; + end; + Tmp1=max(VL); + if Tmp1>Eps*2 + Nhdflg=-10; + break; + end; + TL=gsort([TL,AddL]); + end; + if Nhdflg~=0 break; end; + end; + end; + if Nhdflg==0 + SeL=[SeL,N]; + end; + end; + FigL=[]; + FigkL=[]; + for I=1:length(SeL) + Tmp1=PointonCurve(PaL(SeL(I)),Fh); + Tmp2=PointonCurve(PaL(SeL(I)+1),Fh); + if I==1 + P=Tmp1; SP=PaL(SeL(I)); + Q=Tmp2; SQ=PaL(SeL(I)+1); + else + if Member(SeL(I)-1,SeL) + Q=Tmp2; SQ=PaL(SeL(I)+1); + else + FigL=Mixadd(FigL,Partcrv(SP,SQ,Fh)); + Tmp3=Invparapt(SP,Fh,Fk); + TP=Mixop(2,Tmp3); + Tmp3=Invparapt(SQ,Fh,Fk); + TQ=Mixop(2,Tmp3); + Tmp4=Partcrv3(TP,TQ,Fk) + FigkL=Mixadd(FigkL,Tmp4); + P=Tmp1; SP=PaL(SeL(I)); + Q=Tmp2; SQ=PaL(SeL(I)+1); + end; + end; + end; + if length(SeL)>0 + if norm(P-Q)>Eps + FigL=Mixadd(FigL,Partcrv(P,Q,Fh)); + Tmp3=Invparapt(SP,Fh,Fk); + TP=Mixop(2,Tmp3); + Tmp3=Invparapt(SQ,Fh,Fk); + TQ=Mixop(2,Tmp3); + FigkL=Mixadd(FigkL,Partcrv3(TP,TQ,Fk)); + else + FigL=Mixadd(FigL,Fh); + FigkL=Mixadd(FigkL,Fk); + end; + end; + Tmp=[]; + for I=1:length(PaL)-1 + if ~Member(I,SeL) + Tmp=[Tmp,I]; + end; + end; + SeL=Tmp; + HIDDENDATA=[]; + for I=1:length(SeL) + Tmp=PaL(SeL(I)); + Tmp1=PointonCurve(Tmp,Fh); + Tmp=PaL(SeL(I)+1); + Tmp2=PointonCurve(Tmp,Fh); + if I==1 + P=Tmp1; SP=PaL(SeL(I)); + Q=Tmp2; SQ=PaL(SeL(I)+1); + else + if Member(SeL(I)-1,SeL) + Q=Tmp2; SQ=PaL(SeL(I)+1); + else + Tmp=Invparapt(SP,Fh,Fk); + TP=Mixop(2,Tmp); + Tmp=Invparapt(SQ,Fh,Fk); + TQ=Mixop(2,Tmp); + HIDDENDATA=Mixadd(HIDDENDATA,Partcrv3(TP,TQ,Fk)); + P=Tmp1; SP=PaL(SeL(I)); + Q=Tmp2; SQ=PaL(SeL(I)+1); + end; + end; + end; + if length(SeL)>0 + if norm(P-Q)>Eps + Tmp=Invparapt(SP,Fh,Fk); + TP=Mixop(2,Tmp); + Tmp=Invparapt(SQ,Fh,Fk); + TQ=Mixop(2,Tmp); + HIDDENDATA=Mixadd(HIDDENDATA,Partcrv3(TP,TQ,Fk)); + else + HIDDENDATA=Mixadd(HIDDENDATA,Fk); + end; + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Nohiddenpara2.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Nohiddenpara2.bin Binary files differnew file mode 100644 index 00000000..cbc317ca --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Nohiddenpara2.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Nohiddenpara2.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Nohiddenpara2.sci new file mode 100755 index 00000000..996559db --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Nohiddenpara2.sci @@ -0,0 +1,131 @@ +// 08.10.10 +// 08.10.15 +// 09.06.24 +// 10.02.16 Eps + +function FigkL=Nohiddenpara2(PaL,Fk,Fd,Uveq,Np,Eps) + global HIDDENDATA THETA PHI TMP; + Eps0=10^(-5); + Fh=Projpara(Fk); + P1=Ptstart(Fh); + P2=Ptend(Fh); + Csp=CuspPt(); + Cspflg=1; + for I=1:Mixlength(Csp) + Tmp=Mixop(I,Csp); + if norm(Tmp-P1)<Eps0 + select Cspflg, + case 1 then Cspflg=2, + case 3 then Cspflg=6; + end; + continue; + end; + if norm(Tmp-P2)<Eps0 + select Cspflg, + case 1 then Cspflg=3, + case 2 then Cspflg=6; + end; + continue; + end; + end; + SeL=[]; + for N=1:length(PaL)-1 + S=(PaL(N)+PaL(N+1))/2; + Tmp=Invparapt(S,Fh,Fk); + PtA=Mixop(1,Tmp); + PtAp=Parapt(PtA); + Vec=[sin(THETA)*cos(PHI),sin(THETA)*sin(PHI),cos(THETA)]; + Epstmp=Eps; + if N==1 & modulo(Cspflg,2)==0 + Tmp=min(Eps(1)*norm(PtAp-Ptstart(Fh)),Eps(1)); // + Epstmp=[Tmp,Eps(2)]; // + end; + if N==length(PaL)-1 & modulo(Cspflg,3)==0 + Tmp=min(Eps(1)*norm(PtAp-Ptend(Fh)),Eps(1)); // + Epstmp=[Tmp,Eps(2)]; // + end; + Flg=PthiddenQ(PtA,Vec,Fd,Uveq,Np,Epstmp); + if Flg==0 + SeL=[SeL,N]; + end; + end; + FigL=[]; + FigkL=[]; + for I=1:length(SeL) + Tmp1=PointonCurve(PaL(SeL(I)),Fh); + Tmp2=PointonCurve(PaL(SeL(I)+1),Fh); + if I==1 + P=Tmp1; SP=PaL(SeL(I)); + Q=Tmp2; SQ=PaL(SeL(I)+1); + else + if Member(SeL(I)-1,SeL) + Q=Tmp2; SQ=PaL(SeL(I)+1); + else + FigL=Mixadd(FigL,Partcrv(SP,SQ,Fh)); + Tmp3=Invparapt(SP,Fh,Fk); + TP=Mixop(2,Tmp3); + Tmp3=Invparapt(SQ,Fh,Fk); + TQ=Mixop(2,Tmp3); + Tmp4=Partcrv3(TP,TQ,Fk) + FigkL=Mixadd(FigkL,Tmp4); + P=Tmp1; SP=PaL(SeL(I)); + Q=Tmp2; SQ=PaL(SeL(I)+1); + end; + end; + end; + if length(SeL)>0 + if norm(P-Q)>Eps(1) // + FigL=Mixadd(FigL,Partcrv(P,Q,Fh)); + Tmp3=Invparapt(SP,Fh,Fk); + TP=Mixop(2,Tmp3); + Tmp3=Invparapt(SQ,Fh,Fk); + TQ=Mixop(2,Tmp3); + FigkL=Mixadd(FigkL,Partcrv3(TP,TQ,Fk)); + else + FigL=Mixadd(FigL,Fh); + FigkL=Mixadd(FigkL,Fk); + end; + end; + Tmp=[]; + for I=1:length(PaL)-1 + if ~Member(I,SeL) + Tmp=[Tmp,I]; + end; + end; + SeL=Tmp; + HIDDENDATA=[]; + for I=1:length(SeL) + Tmp=PaL(SeL(I)); + Tmp1=PointonCurve(Tmp,Fh); + Tmp=PaL(SeL(I)+1); + Tmp2=PointonCurve(Tmp,Fh); + if I==1 + P=Tmp1; SP=PaL(SeL(I)); + Q=Tmp2; SQ=PaL(SeL(I)+1); + else + if Member(SeL(I)-1,SeL) + Q=Tmp2; SQ=PaL(SeL(I)+1); + else + Tmp=Invparapt(SP,Fh,Fk); + TP=Mixop(2,Tmp); + Tmp=Invparapt(SQ,Fh,Fk); + TQ=Mixop(2,Tmp); + HIDDENDATA=Mixadd(HIDDENDATA,Partcrv3(TP,TQ,Fk)); + P=Tmp1; SP=PaL(SeL(I)); + Q=Tmp2; SQ=PaL(SeL(I)+1); + end; + end; + end; + if length(SeL)>0 + if norm(P-Q)>Eps(1) // + Tmp=Invparapt(SP,Fh,Fk); + TP=Mixop(2,Tmp); + Tmp=Invparapt(SQ,Fh,Fk); + TQ=Mixop(2,Tmp); + HIDDENDATA=Mixadd(HIDDENDATA,Partcrv3(TP,TQ,Fk)); + else + HIDDENDATA=Mixadd(HIDDENDATA,Fk); + end; + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Nohiddenpers.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Nohiddenpers.bin Binary files differnew file mode 100644 index 00000000..1ad435a7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Nohiddenpers.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Nohiddenpers.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Nohiddenpers.sci new file mode 100755 index 00000000..140516b1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Nohiddenpers.sci @@ -0,0 +1,253 @@ +// 08.09.21 +// 09.12.31 (gsort) + +function FigkL=Nohiddenpers(varargin) + global EyePoint FocusPoint HIDDENDATA; + Eps=0.001; + PaL=varargin(1); + Fk=varargin(2); + FuncdL=varargin(3); + Tmp=Mixop(1,FuncdL); + Fxy=Mixop(1,Tmp); + K=mtlb_findstr(Fxy,'='); + Fxy=part(Fxy,K+1:length(Fxy)); + Fbdxy=Mixop(2,FuncdL); + Tmp=Mixop(3,FuncdL); + Xname=Mixop(1,Tmp); + Tmp=Mixop(4,FuncdL); + Yname=Mixop(1,Tmp); + FigkL=[]; + if Fbdxy==[] + return; + end; + Bdy=Kyoukai(Fbdxy); + Ptn=0; + Fh=Projpers(Fk); + SeL=[]; + for N=1:length(PaL)-1 + S=(PaL(N)+PaL(N+1))/2; + P=PointonCurve(S,Fh); + Tmp=Invperspt(S,Fh,Fk) + Pk=Mixop(1,Tmp); + Flg=zeros(1,Mixlength(Fbdxy)); + for I=1:1000 + Tmp=Pk+I*(EyePoint-Pk); + Tmp1=Naigai(Tmp(1:2),Bdy); + if Tmp1==Flg + Flg=1; + Qk=Tmp; + break; + end; + end; + if Flg~=1 + disp('Bad EyePoint'); + return; + end; + T=poly(0,'t'); + P0=(1-T)*Pk+T*Qk; + X0str='('+pol2str(P0(1))+')'; + Y0str='('+pol2str(P0(2))+')'; + Z0str='('+pol2str(P0(3))+')'; + Tmp=strsubst(Fxy,Xname,X0str); + Tmp=strsubst(Tmp,Yname,Y0str); + Efn=Z0str+'-('+Tmp+')'; + t=0; + Tmp=evstr(Efn); + Eps=max(Eps,abs(Tmp)); + Tmp1=evstr([X0str,Y0str]); + t=1; + Tmp2=evstr([X0str,Y0str]); + Seg=Listplot([Tmp1,Tmp2]); + Tmp=[]; + for I=1:Mixlength(Fbdxy) + Tmp2=Mixop(I,Fbdxy); + Tmp1=IntersectcrvsPp(Seg,Tmp2,Eps); + if Mixlength(Tmp1)>0 + Tmp2=[]; + for J=1:Mixlength(Tmp1) + Tmp3=Mixop(J,Tmp1); + Tmp3=Mixop(2,Tmp3)-1; + Tmp2=[Tmp2,Tmp3]; + end; + Tmp=[Tmp,Tmp2]; + else + Tmp2=Mixop(I,Fbdxy); + Tmp1=Nearestpt(Tmp2,Seg); + Tmp3=Mixop(5,Tmp1); + if Tmp3<Eps + Tmp4=Mixop(4,Tmp1); + Tmp=[Tmp,Tmp4-1]; + end; + end; + end; + if length(Tmp)==0 + SeL=[SeL,N]; + continue; + end; + Tmp=gsort(Tmp); + Tmp=Tmp(length(Tmp):-1:1); + ParamL=[0]; + for I=1:length(Tmp) + Tmp1=Tmp(I); + Tmp2=ParamL(length(ParamL)); + if Tmp1-Tmp2>Eps + ParamL=[ParamL,Tmp1]; + end; + end; + Nhdflg=0; + for M=1:length(ParamL)-1 + TL=[ParamL(M),ParamL(M+1)]; + t=TL(1); + Tmp1=evstr([X0str,Y0str]); + t=TL(2); + Tmp2=evstr([X0str,Y0str]); + Tmp=Naigai(0.5*(Tmp1+Tmp2),Bdy); + Tmp=modulo(sum(Tmp),2); + if Tmp==Ptn continue; end; + Ik=max(ceil(log((TL(2)-TL(1))/Eps)/log(2)),6); + t=TL(1); + Tmp1=evstr(Efn); + t=TL(2); + Tmp2=evstr(Efn); + if abs(Tmp1)<=Eps + if M>1 + Nhdflg=-10; + break; + end; + end; + if abs(Tmp2)<=Eps + Nhdflg=-10; + break; + end; + if Tmp2>Eps + if Tmp1<-Eps + Nhdflg=-10; + break; + end; + for I=1:Ik + AddL=[]; + VL=[]; + for J=1:length(TL)-1 + Tmp=(TL(J)+TL(J+1))*0.5; + AddL=[AddL,Tmp]; + t=Tmp; + Tmp1=evstr(Efn); + VL=[VL,Tmp1]; + end; + Tmp1=min(VL); + if Tmp1<=-Eps*2 + Nhdflg=-10; + break; + end; + TL=gsort([TL,AddL]); + end; + if Nhdflg~=0 break; end; + else + if Tmp1<-Eps + Nhdflg=-10; + break; + end; + for I=1:Ik + AddL=[]; + VL=[]; + for J=1:length(TL)-1 + Tmp=(TL(J)+TL(J+1))*0.5; + AddL=[AddL,Tmp]; + t=Tmp; + Tmp1=evstr(Efn); + VL=[VL,Tmp1]; + end; + Tmp1=max(VL); + if Tmp1>Eps*2 + Nhdflg=-10; + break; + end; + TL=gsort([TL,AddL]); + end; + if Nhdflg~=0 break; end; + end; + end; + if Nhdflg==0 + SeL=[SeL,N]; + end; + end; + FigL=[]; + FigkL=[]; + for I=1:length(SeL) + Tmp1=PointonCurve(PaL(SeL(I)),Fh); + Tmp2=PointonCurve(PaL(SeL(I)+1),Fh); + if I==1 + P=Tmp1; SP=PaL(SeL(I)); + Q=Tmp2; SQ=PaL(SeL(I)+1); + else + if Member(SeL(I)-1,SeL) + Q=Tmp2; SQ=PaL(SeL(I)+1); + else + FigL=Mixadd(FigL,Partcrv(SP,SQ,Fh)); + Tmp3=Invperspt(SP,Fh,Fk); + TP=Mixop(2,Tmp3); + Tmp3=Invperspt(SQ,Fh,Fk); + TQ=Mixop(2,Tmp3); + Tmp4=Partcrv3(TP,TQ,Fk) + FigkL=Mixadd(FigkL,Tmp4); + P=Tmp1; SP=PaL(SeL(I)); + Q=Tmp2; SQ=PaL(SeL(I)+1); + end; + end; + end; + if length(SeL)>0 + if norm(P-Q)>Eps + FigL=Mixadd(FigL,Partcrv(P,Q,Fh)); + Tmp3=Invperspt(SP,Fh,Fk); + TP=Mixop(2,Tmp3); + Tmp3=Invperspt(SQ,Fh,Fk); + TQ=Mixop(2,Tmp3); + FigkL=Mixadd(FigkL,Partcrv3(TP,TQ,Fk)); + else + FigL=Mixadd(FigL,Fh); + FigkL=Mixadd(FigkL,Fk); + end; + end; + Tmp=[]; + for I=1:length(PaL)-1 + if ~Member(I,SeL) + Tmp=[Tmp,I]; + end; + end; + SeL=Tmp; + HIDDENDATA=[]; + for I=1:length(SeL) + Tmp=PaL(SeL(I)); + Tmp1=PointonCurve(Tmp,Fh); + Tmp=PaL(SeL(I)+1); + Tmp2=PointonCurve(Tmp,Fh); + if I==1 + P=Tmp1; SP=PaL(SeL(I)); + Q=Tmp2; SQ=PaL(SeL(I)+1); + else + if Member(SeL(I)-1,SeL) + Q=Tmp2; SQ=PaL(SeL(I)+1); + else + Tmp=Invperspt(SP,Fh,Fk); + TP=Mixop(2,Tmp); + Tmp=Invperspt(SQ,Fh,Fk); + TQ=Mixop(2,Tmp); + HIDDENDATA=Mixadd(HIDDENDATA,Partcrv3(TP,TQ,Fk)); + P=Tmp1; SP=PaL(SeL(I)); + Q=Tmp2; SQ=PaL(SeL(I)+1); + end; + end; + end; + if length(SeL)>0 + if norm(P-Q)>Eps + Tmp=Invperspt(SP,Fh,Fk); + TP=Mixop(2,Tmp); + Tmp=Invperspt(SQ,Fh,Fk); + TQ=Mixop(2,Tmp); + HIDDENDATA=Mixadd(HIDDENDATA,Partcrv3(TP,TQ,Fk)); + else + HIDDENDATA=Mixadd(HIDDENDATA,Fk); + end; + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Nohiddenpers2.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Nohiddenpers2.bin Binary files differnew file mode 100644 index 00000000..7de094a4 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Nohiddenpers2.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Nohiddenpers2.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Nohiddenpers2.sci new file mode 100644 index 00000000..d49bce91 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Nohiddenpers2.sci @@ -0,0 +1,134 @@ +// 08.10.11 +// 08.10.12 +// 08.10.15 +// 09.06.24 +// 10.02.16 Eps +// 11.04.12 Eps0 (bug) +// 13.11.02 bug + +function FigkL=Nohiddenpers2(PaL,Fk,Fd,Uveq,Np,Eps) + global EyePoint FocusPoint HIDDENDATA; + Eps0=10^(-5); // 11.04.12 + Fh=Projpers(Fk); + P1=Ptstart(Fh); + P2=Ptend(Fh); + Csp=CuspPt(); + Cspflg=1; + for I=1:Mixlength(Csp) + Tmp=Mixop(I,Csp); + if norm(Tmp-P1)<Eps0 + select Cspflg, + case 1 then Cspflg=2, + case 3 then Cspflg=6; + end; + continue; + end; + if norm(Tmp-P2)<Eps0 + select Cspflg, + case 1 then Cspflg=3, + case 2 then Cspflg=6; + end; + continue; + end; + end; + SeL=[]; + for N=1:length(PaL)-1 + S=(PaL(N)+PaL(N+1))/2; + Tmp=Invperspt(S,Fh,Fk) + PtA=Mixop(1,Tmp); + PtAp=Perspt(PtA); +// Vec=EyePoint-FocusPoint; + Vec=EyePoint-PtA; // 2013.11.02 + Epstmp=Eps; // 2011.04.12 + if N==1 & modulo(Cspflg,2)==0 + Tmp=min(Eps(1)*norm(PtAp-Ptstart(Fh)),Eps(1)); // + Epstmp=[Tmp,Eps(2)]; // + end; + if N==length(PaL)-1 & modulo(Cspflg,3)==0 + Tmp=min(Eps(1)*norm(PtAp-Ptend(Fh)),Eps(1)); // + Epstmp=[Tmp,Eps(2)]; // + end; + Flg=PthiddenQ(PtA,Vec,Fd,Uveq,Np,Epstmp); + if Flg==0 + SeL=[SeL,N]; + end; + end; + FigL=[]; + FigkL=[]; + for I=1:length(SeL) + Tmp1=PointonCurve(PaL(SeL(I)),Fh); + Tmp2=PointonCurve(PaL(SeL(I)+1),Fh); + if I==1 + P=Tmp1; SP=PaL(SeL(I)); + Q=Tmp2; SQ=PaL(SeL(I)+1); + else + if Member(SeL(I)-1,SeL) + Q=Tmp2; SQ=PaL(SeL(I)+1); + else + FigL=Mixadd(FigL,Partcrv(SP,SQ,Fh)); + Tmp3=Invperspt(SP,Fh,Fk); + TP=Mixop(2,Tmp3); + Tmp3=Invperspt(SQ,Fh,Fk); + TQ=Mixop(2,Tmp3); + Tmp4=Partcrv3(TP,TQ,Fk) + FigkL=Mixadd(FigkL,Tmp4); + P=Tmp1; SP=PaL(SeL(I)); + Q=Tmp2; SQ=PaL(SeL(I)+1); + end; + end; + end; + if length(SeL)>0 + if norm(P-Q)>Eps(1) // + FigL=Mixadd(FigL,Partcrv(P,Q,Fh)); + Tmp3=Invperspt(SP,Fh,Fk); + TP=Mixop(2,Tmp3); + Tmp3=Invperspt(SQ,Fh,Fk); + TQ=Mixop(2,Tmp3); + FigkL=Mixadd(FigkL,Partcrv3(TP,TQ,Fk)); + else + FigL=Mixadd(FigL,Fh); + FigkL=Mixadd(FigkL,Fk); + end; + end; + Tmp=[]; + for I=1:length(PaL)-1 + if ~Member(I,SeL) + Tmp=[Tmp,I]; + end; + end; + SeL=Tmp; + HIDDENDATA=[]; + for I=1:length(SeL) + Tmp=PaL(SeL(I)); + Tmp1=PointonCurve(Tmp,Fh); + Tmp=PaL(SeL(I)+1); + Tmp2=PointonCurve(Tmp,Fh); + if I==1 + P=Tmp1; SP=PaL(SeL(I)); + Q=Tmp2; SQ=PaL(SeL(I)+1); + else + if Member(SeL(I)-1,SeL) + Q=Tmp2; SQ=PaL(SeL(I)+1); + else + Tmp=Invperspt(SP,Fh,Fk); + TP=Mixop(2,Tmp); + Tmp=Invperspt(SQ,Fh,Fk); + TQ=Mixop(2,Tmp); + HIDDENDATA=Mixadd(HIDDENDATA,Partcrv3(TP,TQ,Fk)); + P=Tmp1; SP=PaL(SeL(I)); + Q=Tmp2; SQ=PaL(SeL(I)+1); + end; + end; + end; + if length(SeL)>0 + if norm(P-Q)>Eps(1) // + Tmp=Invperspt(SP,Fh,Fk); + TP=Mixop(2,Tmp); + Tmp=Invperspt(SQ,Fh,Fk); + TQ=Mixop(2,Tmp); + HIDDENDATA=Mixadd(HIDDENDATA,Partcrv3(TP,TQ,Fk)); + else + HIDDENDATA=Mixadd(HIDDENDATA,Fk); + end; + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Numptcrv.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Numptcrv.bin Binary files differnew file mode 100644 index 00000000..dff5f719 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Numptcrv.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Numptcrv.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Numptcrv.sci new file mode 100755 index 00000000..dad4f4ef --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Numptcrv.sci @@ -0,0 +1,4 @@ +function N=Numptcrv(Fig) + N=size(Fig,1) +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objcurve.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objcurve.bin Binary files differnew file mode 100644 index 00000000..544abced --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objcurve.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objcurve.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objcurve.sci new file mode 100644 index 00000000..20a86640 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objcurve.sci @@ -0,0 +1,115 @@ +// s : 2014.06.22 +// 2014.08.26 debugged 1,-1 => "+","-" +// 2014.09.07 Objjoin added +// 2016.10.09 Np in Spacecurve changed + +function Out=Objcurve(varargin) + global OBJFIGNO OBJJOIN + Eps=10^(-6); + Args=varargin; + Nargs=length(Args) + Tmp=Args(1); + PtL=Flattenlist(Tmp); + PL=list(); + for J=1:length(PtL) + Tmp=PtL(J); + for K=1:size(Tmp,1) + PL=lstcat(PL,list(Tmp(K,:))) + end; + end; + Closed=norm(PL(length(PL))-PL(1))<Eps + Pstr="xy"; + Tmp=Args(Nargs) + if type(Tmp)==10 then + Pstr=Tmp; + Nargs=Nargs-1 + end; + Sz=0.1; + Np=4; + if Nargs>=2 then + Sz=Args(2) + end; + if Nargs>=3 then + Np=Args(3) + end; + Assign("Sz",Sz) + if Pstr=="xy" then + Vz=[0,0,1]; + Fs=Assign("[Sz*cos(t),Sz*sin(t),0]") + end; + if Pstr=="yz" then + Vz=[1,0,0]; + Fs=Assign("[0,Sz*cos(t),Sz*sin(t)]") + end; + if Pstr=="zx" then + Vz=[0,1,0]; + Fs=Assign("[Sz*sin(t),0,Sz*cos(t)]") + end; + Gc0=Spacecurve(Fs,"t=[0,2*%pi]","N="+string(Np));//16.10.09 + P=PL(1); Q=PL(2); R=PL(length(PL)-1); + PQ1=Q-P; + if ~Closed then + PQ2=PQ1 + else + PQ2=P-R + end; + Vp=PQ1/norm(PQ1)+PQ2/norm(PQ2); + Vp1=Vp/norm(Vp); + Theta=acos(min(Dotprod(Vz,Vp1),1)); + Vj=Crossprod(Vz,Vp1); + if norm(Vj)<Eps then + Vj=Vz + end; + Gc1=Rotate3data(Gc0,Vj,Theta); + CL=list(Translate3data(Gc1,P)); + for J=2:(length(PL)-1) + P=PL(J); Q=PL(J+1); + PQ2=Q-P; + if norm(PQ2)<Eps then + continue + end; + Vp=PQ1/norm(PQ1)+PQ2/norm(PQ2); + Vp2=Vp/norm(Vp); + Theta=acos(min(Dotprod(Vp1,Vp2),1)); + Vj=Crossprod(Vp1,Vp2); + if norm(Vj)<Eps then + Vj=Vp1 + end; + Gc2=Rotate3data(Gc1,Vj,Theta); + CL=lstcat(CL,list(Translate3data(Gc2,P))); + PQ1=PQ2; + Vp1=Vp2; + Gc1=Gc2; + end; + if ~Closed then + Vp2=(Q-P)/norm(Q-P); + Theta=acos(min(Dotprod(Vp1,Vp2),1)); + Vj=Crossprod(Vp1,Vp2); + if norm(Vj)<Eps then + Vj=Vp1 + end; + Gc3=Rotate3data(Gc1,Vj,Theta); + CL=lstcat(CL,list(Translate3data(Gc3,Q))) + end; + Objname(); // from 140907 + Join=Objjoin(); + Objjoin(1); // upto + GL1=CL(1); + for J=2:length(CL) + GL2=CL(J); + Dt=Objrecs(GL1,GL2,"-"); + GL1=Dt(2); + if J==2 then + GL0=Dt(1) + end; + end; + if ~Closed then + Objpolygon(CL(1),"-"); + N=length(CL); + Objpolygon(CL(N),"+") + else + Objrecs(GL1,GL0,"-") + end; + Out=CL + OBJJOIN=Join; // 140907 +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objjoin.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objjoin.bin Binary files differnew file mode 100644 index 00000000..9b530ae6 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objjoin.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objjoin.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objjoin.sci new file mode 100644 index 00000000..e8a80ff3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objjoin.sci @@ -0,0 +1,9 @@ +// s: 2014.09.07 + +function Out=Objjoin(varargin) + global OBJJOIN + if length(varargin)>0 + OBJJOIN=abs(sign(varargin(1))) + end; + Out=OBJJOIN +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objname.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objname.bin Binary files differnew file mode 100644 index 00000000..c1e415ab --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objname.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objname.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objname.sci new file mode 100644 index 00000000..6c523fc2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objname.sci @@ -0,0 +1,11 @@ +// s: 2014.09.07 + +function Objname() + global OBJFIGNO OBJJOIN + if OBJJOIN==0 then + OBJFIGNO=OBJFIGNO+1; + Gname="ketfig"+string(OBJFIGNO); + Printobjstr("# "+Gname); + Printobjstr("g "+Gname); + end; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objpolygon.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objpolygon.bin Binary files differnew file mode 100644 index 00000000..ad6e0eba --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objpolygon.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objpolygon.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objpolygon.sci new file mode 100644 index 00000000..ba5b346a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objpolygon.sci @@ -0,0 +1,65 @@ +// s : 2014.06.22 +// 14.09.07 Objjoin added + +function Out=Objpolygon(varargin) + global OBJFIGNO OBJJOIN + Eps=10^(-6); + Args=varargin; + Nargs=length(Args); + Tmp=Args(1); + PtL=Flattenlist(Tmp); + PL=list(); + for J=1:length(PtL) + Tmp=PtL(J); + for K=1:size(Tmp,1) + PL=lstcat(PL,list(Tmp(K,:))) + end; + end; + Sel=Args(Nargs); Nargs=Nargs-1; + Objname(); // 140907 + for J=1:length(PL) + P=PL(J); + if (length(P)<4) | (P(4)==0) then + Np=Writeobjpoint(P); + PL(J)=[P(1:3),Np] + end; + end; + if Nargs==1 then + Tmp=PL(1); + Cen=Tmp(1:3); + Nc=Tmp(4) + else + Tmp=Args(2); + if length(Tmp)==1 then + Tmp1=PL(Tmp); + Cen=Tmp1(1:3); + Nc=Tmp(4) + else + Cen=Tmp; + Nc=Writeobjpoint(Cen) + end; + end; + for J=1:length(PL) + if J<length(PL) then + Je=J+1 + else + Je=1 + end; + Pt1=Cen; + PLj=PL(J); PLje=PL(Je); + Pt2=PLj(1:3); Pt3=PLje(1:3); + if norm(Crossprod(Pt2-Pt1,Pt3-Pt1))<Eps then + continue + end; + P1=sprintf("%1d",Nc); + P2=sprintf("%1d",PLj(4)) + P3=sprintf("%1d",PLje(4)) + if Sel=="+" then // 6.22 + Str="f "+P1+" "+P2+" "+P3+" " + else + Str="f "+P1+" "+P3+" "+P2+" " + end; + Printobjstr(Str) + end; + Out=PL +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objpolyhedron.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objpolyhedron.bin Binary files differnew file mode 100644 index 00000000..a0fdf444 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objpolyhedron.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objpolyhedron.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objpolyhedron.sci new file mode 100644 index 00000000..c33e23a8 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objpolyhedron.sci @@ -0,0 +1,25 @@ +// s : 2014.06.22 +// 14.09.07 Objjoin added + +function Out=Objpolyhedron(Vertex,Face) + global NPOINT OBJFIGNO; + OBJFIGNO=OBJFIGNO+1; + Ninit=NPOINT; + Objname(); // 140907 + for N=1:length(Vertex) + P=Vertex(N); + Np=Writeobjpoint(P); + Vertex(N)=[P(1:3),Np] + end; + for N=1:length(Face) + F=Face(N)+Ninit; + Face(N)=F; + Str="f" + for J=1:length(F) + P=sprintf("%1d",F(J)); + Str=Str+" "+P + end; + Printobjstr(Str) + end; + Out=list(Vertex,Face) +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objrecs.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objrecs.bin Binary files differnew file mode 100644 index 00000000..4f7b55de --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objrecs.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objrecs.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objrecs.sci new file mode 100644 index 00000000..d8775fb3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objrecs.sci @@ -0,0 +1,87 @@ +// s : 2014.06.22 +// 2014.09.07 Objjoin added + +function Out=Objrecs(varargin) + global OBJFIGNO OBJJOIN + Eps=10^(-6); + Args=varargin; + Nargs=length(Args); + Tmp=Args(1); + PtL=Flattenlist(Tmp); + PL1=list(); + for J=1:length(PtL) + Tmp=PtL(J); + for K=1:size(Tmp,1) + PL1=lstcat(PL1,list(Tmp(K,:))) + end; + end; + Sel=Args(Nargs); Nargs=Nargs-1; + Objname(); // // 140907 + for J=1:length(PL1) + P=PL1(J) + if (length(P)<4) | (P(4)==0) then + Np=Writeobjpoint(P); + PL1(J)=[P(1:3),Np]; + end; + end; + Tmp=Args(2); + if (type(Tmp)==1) & (size(Tmp,1)==1) then + Drv=Tmp; + Len=norm(Drv); + PL2=list(); + for J=1:length(PL1) + Tmp=PL1(J); + P=Tmp(1:3)+Drv; + Np=Writeobjpoint(P); + PL2=lstcat(PL2,list([P(1:3),Np])); + if J<length(PL1) then + Vec=PL1(J+1)-PL1(J); + if norm(Vec)>Eps then + Tmp1=Crossprod(Drv,Vec); + Tmp2=Crossprod(Tmp1,Vec); + Tmp3=Dotprod(Tmp2,Drv); + if Tmp3<-Eps then + Tmp2=-Tmp2 + end; + Drv=Len/norm(Tmp2)*Tmp2 + end + end + end + else + PtL=Flattenlist(Tmp); + PL2=list(); + for J=1:length(PtL) + Tmp=PtL(J); + for K=1:size(Tmp,1) + PL2=lstcat(PL2,list(Tmp(K,:))) + end; + end; + for J=1:length(PL2) + P=PL2(J); + if (length(P)<4) | (P(4)==0) then + Np=Writeobjpoint(P); + PL2(J)=[P(1:3),Np] + end; + end; + end; + Printobjstr("vt 0 0"); + Printobjstr("vt 1 0"); + Printobjstr("vt 1 1"); + Printobjstr("vt 0 1"); + for J=2:length(PL1) + P1=sprintf("%1d",Op(4,PL1(J-1))); + P2=sprintf("%1d",Op(4,PL2(J-1))); + P3=sprintf("%1d",Op(4,PL2(J))); + P4=sprintf("%1d",Op(4,PL1(J))); + N1=""; N2=""; N3=""; N4=""; + if Sel=="+" then // 6.22 + Str="f "+P1+"/1/"+N1+" "+P2+"/2/"+N2+" "; + Str=Str+P3+"/3/"+N3+" "+P4+"/4/"+N4; + else + Str="f "+P1+"/1/"+N1+" "+P4+"/4/"+N4+" "; + Str=Str+P3+"/3/"+N3+" "+P2+"/2/"+N2; + end; + Printobjstr(Str) + end; + Out=list(PL1,PL2) +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objsurf.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objsurf.bin Binary files differnew file mode 100644 index 00000000..122e0986 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objsurf.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objsurf.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objsurf.sci new file mode 100644 index 00000000..15543b8a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objsurf.sci @@ -0,0 +1,114 @@ +// s : 2014.06.22 +// e : 2014.07.18 +// Objsurf, Objthicksurf : Range argments changed +// 2014.09.07 Objjoin added + +function Out=Objsurf(varargin) + global OBJFIGNO OBJJOIN + Args=varargin; + Nargs=length(Args); + Sel=Args(Nargs); Nargs=Nargs-1; + Rf=Args(1); + N=2; + Mg=0; Ng=0; + if type(Args(N))==1 then + if length(Args(N))>2 then + U=Args(N); + Mg=length(U)-1; + N=N+1; + elseif length(Args(N))==2 then + Intab=Args(N); + Ag=Intab(1); Bg=Intab(2); + N=N+1; + else + Ag=Args(N); Bg=Args(N+1); + N=N+2; + end; + else // when type(Args(N))==10 + Tmp0=Args(N); + Tmp=mtlb_findstr("=",Tmp0); + if length(Tmp)>0 then + Tmp0=part(Tmp0,(Tmp+1):length(Tmp0)); + end; + Intab=evstr(Tmp0); + Ag=Intab(1); Bg=Intab(2); + N=N+1; + end; + if type(Args(N))==1 then + if length(Args(N))>2 then + V=Args(N); + Ng=length(V)-1; + N=N+1; + elseif length(Args(N))==2 then + Intab=Args(N); + Cg=Intab(1); Dg=Intab(2); + N=N+1; + else + Cg=Args(N); Dg=Args(N+1); + N=N+2; + end; + else // when type(Args(N))==10 + Tmp0=Args(N); + Tmp=mtlb_findstr("=",Tmp0); + if length(Tmp)>0 then + Tmp0=part(Tmp0,(Tmp+1):length(Tmp0)); + end; + Intab=evstr(Tmp0); + Cg=Intab(1); Dg=Intab(2); + N=N+1; + end; + if Mg==0 then + Mg=Args(N); + N=N+1; + U=[]; + for J=1:(Mg+1) + U=[U,Ag+(J-1)/Mg*(Bg-Ag)]; + end; + end; + if Ng==0 then + Ng=Args(N); + V=[]; + for K=1:(Ng+1) + V=[V,Cg+(K-1)/Ng*(Dg-Cg)]; + end; + end; + Objname(); // // 140907 + PL=list(); + for J=1:(Mg+1) + for K=1:(Ng+1) + P=Rf(U(J),V(K)); + Np=Writeobjpoint(P) + PL=lstcat(PL,list([P,Np])); + end; + end; + Idx=1:(Ng+1):(Ng+1)*Mg+1; + Pus=Mixsub(Idx,PL); + Idx=(Ng+1):(Ng+1):(Ng+1)*(Mg+1); + Pue=Mixsub(Idx,PL); + Idx=1:1:Ng+1; + Pvs=Mixsub(Idx,PL); + Idx=(Ng+1)*Mg+1:1:(Ng+1)*(Mg+1); + Pve=Mixsub(Idx,PL); + Printobjstr("vt 0 0"); + Printobjstr("vt 1 0"); + Printobjstr("vt 1 1"); + Printobjstr("vt 0 1"); + for J=1:Mg + for K=1:Ng + P1=sprintf("%1d",Op(4,PL((Ng+1)*(J-1)+K))) + P2=sprintf("%1d",Op(4,PL((Ng+1)*J+K))) + P3=sprintf("%1d",Op(4,PL((Ng+1)*J+K+1))) + P4=sprintf("%1d",Op(4,PL((Ng+1)*(J-1)+K+1))) + N1=""; N2=""; N3=""; N4=""; + if Sel=="+" then // 6.22 + Str="f "+P1+"/1/"+N1+" "+P2+"/2/"+N2+" "; + Str=Str+P3+"/3/"+N3+" "+P4+"/4/"+N4; + else + Str="f "+P1+"/1/"+N1+" "+P4+"/4/"+N4+" "; + Str=Str+P3+"/3/"+N3+" "+P2+"/2/",N2; + end; + Printobjstr(Str) + end; + end; + Out=list(U,V,Pus,Pue,Pvs,Pve) +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objsymb.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objsymb.bin Binary files differnew file mode 100644 index 00000000..733ab14d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objsymb.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objsymb.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objsymb.sci new file mode 100644 index 00000000..808924a4 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objsymb.sci @@ -0,0 +1,7 @@ +// s : 2014.08.25 + +function Objsymb(Symb,Thick,Face,Dir) + for J=1:length(Symb) + Objcurve(Symb(J),Thick,Face,Dir); + end +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objthicksurf.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objthicksurf.bin Binary files differnew file mode 100644 index 00000000..6c85bcca --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objthicksurf.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objthicksurf.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objthicksurf.sci new file mode 100644 index 00000000..42fde6a5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Objthicksurf.sci @@ -0,0 +1,123 @@ +// s : 2014.06.22 +// e : 2014.07.18 +// Objsurf, Objthicksurf : Range argments changed +// 14.09.07 Objjoin added + +function Out=Objthicksurf(varargin) + global OBJJOIN + Args=varargin; + Nargs=length(Args) + Sel=Args(Nargs); Nargs=Nargs-1; + Selsurf=part(Sel,1); // from 6.22 + Selside=["0","0","0","0"]; // wesn + Tmp=mtlb_findstr(Sel,"w"); + if length(Tmp)>0 then + Selside(1)=part(Sel,Tmp+1) + end; + Tmp=mtlb_findstr(Sel,"e"); + if length(Tmp)>0 then + Selside(2)=part(Sel,Tmp+1) + end; + Tmp=mtlb_findstr(Sel,"s"); + if length(Tmp)>0 then + Selside(3)=part(Sel,Tmp+1) + end; + Tmp=mtlb_findstr(Sel,"n"); + if length(Tmp)>0 then + Selside(4)=part(Sel,Tmp+1) + end; + Nfth=Args(Nargs-2); + Thick1=Args(Nargs-1); + Thick2=Args(Nargs); + Nargs=Nargs-3; // upto 6.22 + Rfth=Args(1); // 6.22 + N=2; + Mg=0; Ng=0; + if type(Args(N))==1 then + if length(Args(N))>2 then + U=Args(N); + Mg=length(U)-1; + N=N+1; + elseif length(Args(N))==2 then + Intab=Args(N); + Ag=Intab(1); Bg=Intab(2); + N=N+1; + else + Ag=Args(N); Bg=Args(N+1); + N=N+2; + end; + else // when type(Args(N))==10 + Tmp0=Args(N); + Tmp=mtlb_findstr("=",Tmp0); + if length(Tmp)>0 then + Tmp0=part(Tmp0,(Tmp+1):length(Tmp0)); + end; + Intab=evstr(Tmp0); + Ag=Intab(1); Bg=Intab(2); + N=N+1; + end; + if type(Args(N))==1 then + if length(Args(N))>2 then + V=Args(N); + Ng=length(V)-1; + N=N+1; + elseif length(Args(N))==2 then + Intab=Args(N); + Cg=Intab(1); Dg=Intab(2); + N=N+1; + else + Cg=Args(N); Dg=Args(N+1); + N=N+2; + end; + else // when type(Args(N))==10 + Tmp0=Args(N); + Tmp=mtlb_findstr("=",Tmp0); + if length(Tmp)>0 then + Tmp0=part(Tmp0,(Tmp+1):length(Tmp0)); + end; + Intab=evstr(Tmp0); + Cg=Intab(1); Dg=Intab(2); + N=N+1; + end; + if Mg==0 then + Mg=Args(N); + N=N+1; + U=[]; + for J=1:(Mg+1) + U=[U,Ag+(J-1)/Mg*(Bg-Ag)]; + end; + end; + if Ng==0 then + Ng=Args(N); + V=[]; + for K=1:(Ng+1) + V=[V,Cg+(K-1)/Ng*(Dg-Cg)]; + end; + end; + Objname(); // 140907 from + Join=OBJJOIN; + OBJJOIN=1; // upto + deff("Out=F1(u,v)","Out=Rfth(u,v)+Thick1*Nfth(u,v)"); + deff("Out=F2(u,v)","Out=Rfth(u,v)+Thick2*Nfth(u,v)"); + Dt1=Objsurf(F1,U,V,Selsurf); + if Selsurf=="+" then Tmp="-"; else Tmp="+"; end; + Dt2=Objsurf(F2,U,V,Tmp); + Out=list(Dt1,Dt2); //from 06.22 + if Selside(1)~="0" then + Dt=Objrecs(Dt1(3),Dt2(3),Selside(1)); + Out=lstcat(Out,list(Dt)); + end + if Selside(2)~="0" then + Dt=Objrecs(Dt1(4),Dt2(4),Selside(2)); + Out=lstcat(Out,list(Dt)); + end + if Selside(3)~="0" then + Dt=Objrecs(Dt1(5),Dt2(5),Selside(3)); + Out=lstcat(Out,list(Dt)); + end + if Selside(4)~="0" then + Dt=Objrecs(Dt1(6),Dt2(6),Selside(4)); + Out=lstcat(Out,list(Dt)); + end; // upto 6.22 + OBJJOIN=Join // 140907 +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Op.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Op.bin Binary files differnew file mode 100644 index 00000000..e90f633d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Op.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Op.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Op.sci new file mode 100755 index 00000000..519bc9da --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Op.sci @@ -0,0 +1,35 @@ +// 08.05.19 + +// Structure changed +// 09.10.11 +// 10.01.10 available for plotdata +// 10.01.12 available for Dataindexed +// 10.01.16 + +function C=Op(N,Data) + C=[]; + if Mixtype(Data)>1 + C=Mixop(N,Data); + return; + end; + if type(Data)==10 + if size(Data,2)==1 + C=part(Data,N:N); + else + C=Data(N) + end; + return; + end; + if type(Data)==1 + if size(Data,1)==1 + C=Data(N); + else + Din=Dataindex(Data); + if size(Din,1)==1 + C=Data(N,:); + else + C=Data(Din(N,1):Din(N,2),:); + end; + end; + end +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Openfile.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Openfile.bin Binary files differnew file mode 100644 index 00000000..3935c2e7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Openfile.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Openfile.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Openfile.sci new file mode 100755 index 00000000..4007e1b3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Openfile.sci @@ -0,0 +1,106 @@ + +// +// 10.01.10 filename written +// 13.05.20 openfile error tackled +// creator and date recorded +// 13.11.01 Beginpicture joined optionally + +function Openfile(varargin) + global Wfile FID; + + function Out=Datecount(F) + Tmp1=fileinfo(F); + Tmp=getdate(Tmp1(7)); + Year=Tmp(1); + Sec=((Tmp(4)-1)*24+Tmp(7))*3600+Tmp(8)*60+Tmp(9); + Out=[Year,Sec]; + endfunction + + function Out=Datestr(F) + if F~="" then + Tmp1=fileinfo(F); + Tmp=getdate(Tmp1(7)); + else + Tmp=getdate(); + end; + Year=Tmp(1); + Month=Tmp(2); + Day=Tmp(6); + Hour=Tmp(7); + Min=Tmp(8); + D=string(Year)+"-"+string(Month)+"-"+string(Day); + T=string(Hour)+":"+string(Min); + Out=D+" "+T; + endfunction + + File=varargin(1); + Bflg=0; + Creator=''; + Cflg=0; + Nargs=length(varargin); + for N=2:Nargs + Tmp=varargin(N); + K=mtlb_findstr(Tmp,"="); + if length(K)>0 then + Creator=part(Tmp,(K+1):length(Tmp)); + Cflg=1; + else + Bflg=1; + Unitstr=Tmp + end + end; + Recentf=''; + Tmp1=dir("*.sce"); + Files=Tmp1(2); + if size(Files,1)>0 then + Recentf=Files(1,:); + Dt=Datecount(Recentf); + for J=2:size(Files,1) + F=Files(J,:); + D=Datecount(F); + if D(1)~=Dt(1) then + if D(1)>Dt(1) then + Recentf=F; + Dt=D; + end + continue + end + if D(2)>Dt(2) then + Recentf=F; + Dt=D; + end + end; + end; + StrW="%%% "+File+" "+Datestr("") + StrC="%%% "+Creator; + if Cflg==0 then + if Recentf~="" then + StrC=StrC+Recentf+" "+Datestr(Recentf); + end + end + if File =='' then + Wfile='default'; + else +// errcatch(4,"continue"); // 2017.02.18 from +// Tmp=FID; +// if iserror(4) then +// FID=[]; +// errclear(4); +// end; +// if FID~=[] then +// mclose(FID); +// FID=[]; +// end +// errcatch(4,"kill"); // 2017.02.18 upto + FID=mopen(File,'w'); + Wfile=File; + end + if Wfile=='default' + mprintf('%s\n%s\n',StrW,StrC); + else + mfprintf(FID,'%s\n%s\n',StrW,StrC); + end + if Bflg==1 then + Beginpicture(Unitstr) + end +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Openobj.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Openobj.bin Binary files differnew file mode 100644 index 00000000..e72281c1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Openobj.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Openobj.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Openobj.sci new file mode 100644 index 00000000..e902ce5d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Openobj.sci @@ -0,0 +1,33 @@ +// s : 2014.06.22 +// e : 14.09.07 + +function Out=Openobj(Fnm) + global OBJFMT NPOINT NNORM OBJSCALE OBJFIGNO Wfile FID OBJJOIN + OBJFMT= "%7.4f"; + NPOINT= 0; + NNORM=0; + OBJSCALE=1; + OBJFIGNO=0; + OBJJOIN=0; // 140906 + if Fnm =='' then + Wfile='default'; + else +// errcatch(4,"continue"); //17.02.18from +// Tmp=FID; +// if iserror(4) then +// FID=[]; +// errclear(4); +// end; +// if FID~=[] then +// mclose(FID); +// FID=[]; +// end +// errcatch(4,"kill"); //17.02.18upto + if length(mtlb_findstr(Fnm,".obj"))==0 + Fnm=Fnm+".obj"; + end; + FID=mopen(Fnm,'w'); + Wfile=Fnm; + Out=Wfile; + end +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Openpar.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Openpar.bin Binary files differnew file mode 100644 index 00000000..a8d4c7fc --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Openpar.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Openpar.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Openpar.sci new file mode 100755 index 00000000..a3056f66 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Openpar.sci @@ -0,0 +1,29 @@ +// 08.05.31 + +function Openpar(varargin) + global Wfile FID; + Nargs=length(varargin); + Tmp=varargin(1); + Tmp1=Strop(1,Tmp); + if Tmp1=='\' | Tmp1=='ツ・' + Namestr=Tmp; + N=2; + else + Namestr='\tmp'; + N=1; + end + Habastr=varargin(N); + if Nargs>N + Posstr='['+varargin(N+1)+']'; + else + Posstr='[c]' + end + Openphr(Namestr); + S='\begin{minipage}'+Posstr+'{'+Habastr+'}%'; + if Wfile=='default' + mprintf('%s\n',S); + else + mfprintf(FID,'%s\n',S); + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Openphr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Openphr.bin Binary files differnew file mode 100644 index 00000000..f9d281d0 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Openphr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Openphr.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Openphr.sci new file mode 100755 index 00000000..461549e9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Openphr.sci @@ -0,0 +1,12 @@ +// 08.05.31 + +function Openphr(Str) + global Wfile FID + S='\def'+Str+'{%'; + if Wfile=='default' + mprintf('%s\n',S); + else + mfprintf(FID,'%s\n',S); + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Openpicture.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Openpicture.bin Binary files differnew file mode 100644 index 00000000..877c0a04 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Openpicture.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Openpicture.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Openpicture.sci new file mode 100755 index 00000000..edf043ca --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Openpicture.sci @@ -0,0 +1,92 @@ +// +// 09.12.25 +// 11.05.25 +// 14.03.05 MARKLEN +// 17.03.19 VL=[] => VL=""; + +function Openpicture(ul) + global Wfile FID XMIN XMAX YMIN YMAX ULEN + global MilliIn MARKLEN MARKLENNow PenThickInit; + Tmp=Doscaling([XMIN,YMIN]); + Xm=Tmp(1); + Ym=Tmp(2); + Tmp=Doscaling([XMAX,YMAX]); + XM=Tmp(1); + YM=Tmp(2); + Dx=XM-Xm; + Dy=YM-Ym; + Sym='.0123456789 +-*/'; + Tmp=ascii(Sym); + SL=Sym; + OL='+-*/'; + if ul~='' + ULEN=ul; + end + Is=1; + VL=""; // 17.03.19 + Ucode=ascii(ULEN); + for I=1:length(Ucode) + C=char(Ucode(I)); + if mtlb_findstr(SL,C)~=[] + if mtlb_findstr(OL,C)~=[] + Str=char(Ucode(Is:(I-1))); + VL=VL+Str+C; + Is=I+1; + end + else + Unit=char(Ucode(I:(I+1))); + Str=char(Ucode(Is:(I-1))); + VL=VL+Str; + break; + end; + end; + Valu=evstr(VL); + Str=string(Valu); + ULEN=Str+Unit; + if Unit=='cm' + MilliIn=1000/2.54*Valu; + end + if Unit=='mm' + MilliIn=1000/2.54*Valu/10; + end + if Unit=='in' + MilliIn=1000*Valu; + end + if Unit=='pt' + MilliIn=1000/72.27*Valu; + end + if Unit=='pc' + MilliIn=1000/6.022*Valu; + end + if Unit=='bp' + MilliIn=1000/72*Valu; + end + if Unit=='dd' + MilliIn=1000/1238/1157/72.27*Valu; + end + if Unit=='cc' + MilliIn=1000/1238/1157/72.27*12*Valu;p + end + if Unit=='sp' + MilliIn=1000/72.27/65536*Valu/10; + end + MARKLEN=MARKLENNow*1000/2.54/MilliIn; + if Wfile=='default' + mprintf('%s%s%s\n','{\unitlength=',ULEN,'%'); + mprintf('%s\n','\begin{picture}%'); + mprintf('%c%10.5f%c%10.5f%2s%10.5f%c%10.5f%2s\n',... + '(',Dx,',',Dy,')(',Xm,',',Ym,')%'); + Str='\special{pn '+string(PenThickInit)+'}%'; + mprintf('%s\n',Str); + mprintf('%s\n','%'); + else + mfprintf(FID,'%s%s%s\n','{\unitlength=',ULEN,'%'); + mfprintf(FID,'%s\n','\begin{picture}%'); + mfprintf(FID,'%c%10.5f%c%10.5f%2s%10.5f%c%10.5f%2s\n',... + '(',Dx,',',Dy,')(',Xm,',',Ym,')%'); //11.05.25 + Str='\special{pn '+string(PenThickInit)+'}%'; + mfprintf(FID,'%s\n',Str); + mfprintf(FID,'%s\n','%'); + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ovalbox.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ovalbox.bin Binary files differnew file mode 100644 index 00000000..eca8a277 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ovalbox.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ovalbox.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ovalbox.sci new file mode 100755 index 00000000..8889de32 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ovalbox.sci @@ -0,0 +1,42 @@ +function Ovalbox(varargin) + global XMIN XMAX YMIN YMAX + Nargs=length(varargin); + Pos=varargin(1); + Dr=varargin(2); + StrV=varargin(3); + R=0.2; + NDflg=0; + for I=4:Nargs + Tmp=varargin(I); + if type(Tmp)==1 + R=Tmp; + else + if part(Tmp,1)=='-' + NDflg=1; + Tmp1=part(Tmp,2:length(Tmp)); + Cmdstr=strsubst(Tmp1,'*','G1'); + end; + end; + end; + Xr=[XMIN,XMAX]; + Yr=[YMIN,YMAX]; + Uv=0.6; Uh=0.8; + N=length(StrV); + W=Uh; H=Uv*N; + Setwindow([-W/2,W/2],[-H,0]); + G1=Ovaldata([0,-H/2],W/2,H/2,R); + Openphr('\ketpictmp'); + Beginpicture('1cm'); + if NDflg==0 + Drwline(G1); + else + execstr(Cmdstr); + end; + for I=1:N + Letter([0,Uv/2-Uv*I],'c',Op(I,StrV)) + end; + Endpicture(0); + Closephr(); + Setwindow(Xr,Yr); + Letter(Pos,Dr,'\ketpictmp'); +endfunction;
\ No newline at end of file diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ovaldata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ovaldata.bin Binary files differnew file mode 100644 index 00000000..a33c17e9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ovaldata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ovaldata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ovaldata.sci new file mode 100644 index 00000000..823fc8c4 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ovaldata.sci @@ -0,0 +1,31 @@ +// e : 2015.11.15 +function Out=Ovaldata(varargin) + global XMIN XMAX YMIN YMAX + Nargs=length(varargin); + if Nargs<=1 + Eps=1.0*10^(-4); + C=[(XMIN+XMAX)/2,(YMIN+YMAX)/2]; + Dx=XMAX-C(1)-Eps; + Dy=YMAX-C(2)-Eps; + N=1; + else + C=varargin(1); + Dx=varargin(2); + Dy=varargin(3); + N=4; + end; + Rc=0.2; + if N<=Nargs + Rc=varargin(N)*Rc; // 15.11.15 + end; + Out=[]; + P=C+[Dx-Rc,Dy-Rc]; + Tmp1=Circledata(P,Rc,'R=[0,%pi/2]','N=10'); + Tmp2=Listplot(C+[Dx-Rc,Dy],C+[0,Dy]); + Tmp3=Listplot(C+[Dx,0],C+[Dx,Dy-Rc]); + G=Joincrvs(Tmp3,Tmp1,Tmp2); + Tmp=Reflectdata(G,[C,C+[0,1]]); + G=Joincrvs(G,Tmp); + Tmp=Reflectdata(G,[C,C+[1,0]]); + Out=Joincrvs(G,Tmp); +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Paramark.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Paramark.bin Binary files differnew file mode 100644 index 00000000..e86a5592 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Paramark.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Paramark.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Paramark.sci new file mode 100755 index 00000000..82ac7c4f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Paramark.sci @@ -0,0 +1,20 @@ +// 08.06.18 + +function P=Paramark(varargin) + Nargs=length(varargin); + PA=varargin(1); + PB=varargin(2); + PC=varargin(3); + R=0.5; + if Nargs>=4 + R=varargin(4)*R; + end + U=R*(PA-PB)/Vecnagasa(PA,PB); + V=R*(PC-PB)/Vecnagasa(PC,PB); + if Gaiseki(PA-PB,PC-PB)~=0 + P=Listplot([PB+U,PB+U+V,PB+V]); + else + P=[]; + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/ParamonCurve.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/ParamonCurve.bin Binary files differnew file mode 100644 index 00000000..3479482b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/ParamonCurve.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/ParamonCurve.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/ParamonCurve.sci new file mode 100755 index 00000000..ce7e0d76 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/ParamonCurve.sci @@ -0,0 +1,18 @@ +// 08.05.30 + +function Out=ParamonCurve(P,N,PtL) +// PtL=Plt; + if N==size(PtL,1) + Out=N; + else + Pa=PtL(N,:); + Pb=PtL(N+1,:); + V=Pb-Pa; + W=P-Pa; + D2=V(1)^2+V(2)^2; + S=(V(1)*W(1)+V(2)*W(2))/D2; + S=min(max(S,0),1); + Out=N+S; + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Paramoncrv.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Paramoncrv.bin Binary files differnew file mode 100644 index 00000000..d3aeafcc --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Paramoncrv.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Paramoncrv.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Paramoncrv.sci new file mode 100755 index 00000000..83661787 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Paramoncrv.sci @@ -0,0 +1,35 @@ +// 09.10.03 + +function Out=Paramoncrv(varargin) + Eps=10^(-8); + Nargs=length(varargin); + P=varargin(1); + Gdata=varargin(Nargs); + if size(P,1)>1 + Tmp=P; P=Gdata; Gdata=Tmp; + end; + if Nargs==2 + Tmp=Nearestpt(P,Gdata); + Out=Mixop(2,Tmp); + return; + end; + N=varargin(2); + PtL=Gdata; + if N==size(PtL,1) + Out=N; + else + Pa=PtL(N,:); + Pb=PtL(N+1,:); + V=Pb-Pa; + W=P-Pa; + D2=norm(V)^2; + if D2<Eps + Out=0; + return; + end; + S=Dotprod(V,W)/D2; + S=min(max(S,0),1); + Out=N+S; + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Paramplot.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Paramplot.bin Binary files differnew file mode 100644 index 00000000..79569617 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Paramplot.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Paramplot.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Paramplot.sci new file mode 100755 index 00000000..4e3effdc --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Paramplot.sci @@ -0,0 +1,140 @@ +// 08.06.18 (N) +// 08.12.18 +// 09.03.12 +// 09.12.31 (gsort) +// 13.10.19 ( __ added to variables ) +// 14.10.24 N,D,E => N__, etc +// 14.12.11 Assign used +// 15.11.16 N changed to number of intervals +// 16.12.13 in case of T1=T2 + +function P__=Paramplot(varargin) + Eps__=10^(-5); + Nargs__=length(varargin); + if type(varargin(1))==13 + Fnflg__=1; + Fnx__=varargin(1); + Fny__=varargin(2); Is__=3; + if type(varargin(Is__))==13 + Fnflg__=Fnflg__+1; + Fnargx__=varargin(Is__); + Fnargy__=varargin(Is__+1); + Is__=Is__+2; + end; + else + Fnflg__=0; + Fnstr__=varargin(1); Is__=2; + end; + Rgstr__=varargin(Is__); Is__=Is__+1; + Range__=[0,2*%pi]; + N__=50; // Numpoints + E__=[]; // Exclusions + D__=%inf; // Discont + for I__=Is__:Nargs__ + Tmp__=varargin(I__); + K__=mtlb_findstr(Tmp__,'='); + Tmp1__=strsplit(Tmp__,[K__-1,K__]); + Tmp2__=ascii(Tmp1__(1,1)); + Lhs__=char(Tmp2__(1)); + Str__=Lhs__+'__='+Tmp1__(3,1); + execstr(Str__); + end; + K__=mtlb_findstr(Rgstr__,'='); + if K__~=[] + Tmp__=strsplit(Rgstr__,[K__-1,K__]); + Vname__=Tmp__(1,1); + Rng__=evstr(Tmp__(3,1)); + else + Vname__=Rgstr__; + Rng__=[XMIN,XMAX]; + end + T1__=Rng__(1); T2__=Rng__(2); +// Dt__=(T2__-T1__)/(N__-1); + Dt__=(T2__-T1__)/(N__); // 15.11.16 + if Fnflg__==0 + Str__=Assign(Fnstr__,Vname__,'t__'); + end; + if abs(Dt__)<Eps__ then // 16.12.13 + t__=T1__; + P__=evstr(Str__); + return; + end; + P__=[]; + E__=gsort(E__); + E__=E__(length(E__):-1:1); + E__=[E__,%inf]; + Tmp__=gsort(E__); + E__=Tmp__(length(Tmp__):-1:1); + Ke__=1; + for t__=T1__:Dt__:T2__ + Pa__=[]; + if t__-E__(Ke__)<-Eps__ + if Fnflg__==0 + Pa__=evstr(Str__); + else + if Fnflg__==1 + Pa__=[Fnx__(t__),Fny__(t__)]; + else + if type(Fnargx__)==1 + Tmp1__=Fnx__(t__); + else + Tmp1__=Fnx__(Fnargx__,t__); + end; + if type(Fnargy__)==1 + Tmp2__=Fny__(t__); + else + Tmp2__=Fny__(Fnargy__,t__); + end; + Pa__=[Tmp1__,Tmp2__]; + end; + end; + end + if abs(t__-E__(Ke__))<=Eps__ + if P__~=[] & P__(size(P__,1),:)~=[%inf,%inf] + Pa__=[%inf,%inf]; + end + end + if t__-E__(Ke__)>Eps__ + if Fnflg__==0 + Pa__=evstr(Str__); + else + if Fnflg__==1 + Pa__=[Fnx__(t__),Fny__(t__)]; + else + if type(Fnargx__)==1 + Tmp1__=Fnx__(t__); + else + Tmp1__=Fnx__(Fnargx__,t__); + end; + if type(Fnargy__)==1 + Tmp2__=Fny__(t__); + else + Tmp2__=Fny__(Fnargy__,t__); + end; + Pa__=[Tmp1__,Tmp2__]; + end; + end; + Ke__=Ke__+1; + end + if Pa__~=[] + if Pa__(1)==%inf + P__=[P__; Pa__] + elseif P__==[] + P__=[Pa__]; + else + Tmp__=P__(size(P__,1),:); + if Tmp__(1)==%inf + P__=[P__;Pa__]; + elseif norm(Tmp__-Pa__)<D__ + P__=[P__;Pa__]; + else + P__=[P__;%inf,%inf;Pa__]; + end + end + end + end; + Tmp__=size(P__,1); + if P__(Tmp__,1)==%inf + P__=P__(1:Tmp__-1,:); + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Parapt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Parapt.bin Binary files differnew file mode 100644 index 00000000..468a99cd --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Parapt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Parapt.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Parapt.sci new file mode 100755 index 00000000..5adb4837 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Parapt.sci @@ -0,0 +1,12 @@ +// 08.07.11 +// 10.01.02 + +function Out=Parapt(P) + global PHI THETA + x=P(1); + y=P(2); + z=P(3); + Xz=-x*sin(PHI)+y*cos(PHI); + Yz=-x*cos(PHI)*cos(THETA)-y*sin(PHI)*cos(THETA)+z*sin(THETA); + Out=[Xz,Yz]; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Partcrv.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Partcrv.bin Binary files differnew file mode 100644 index 00000000..a488103c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Partcrv.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Partcrv.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Partcrv.sci new file mode 100755 index 00000000..0b4844df --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Partcrv.sci @@ -0,0 +1,42 @@ +// 08.05.31 +// 09.03.06 + +function Ans=Partcrv(A,B,PkL) + Eps=10.0^(-3); + if type(A)==1 & length(A)==1 + // new part from + if A>B+Eps + Npt=Numptcrv(PkL); + Out1=Partcrv(A,Npt,PkL); + Out2=Partcrv(1,B,PkL); + Tmp=Ptstart(PkL)-Ptend(PkL); + if norm(Tmp)<Eps + Ans=Joincrvs(Out1,Out2); + else + Ans=Mix(Out1,Out2); + end; + return; + end; + // to here + Is=ceil(A); + Ie=floor(B); + PL=[]; + if A<Is-Eps + P=(Is-A)*PkL(Is-1,:)+(1-Is+A)*PkL(Is,:); + PL=[P]; + end + PL=[PL;PkL(Is:Ie,:)]; + if B>Ie+Eps + P=(1-B+Ie)*PkL(Ie,:)+(B-Ie)*PkL(Ie+1,:); + PL=[PL;P] + end + Ans=PL; + return + end; + Tmp=Nearestpt(A,PkL);// + Ta=Op(2,Tmp);// + Tmp=Nearestpt(B,PkL);// + Tb=Op(2,Tmp);// + Ans=Partcrv(Ta,Tb,PkL);// +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Partcrv3.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Partcrv3.bin Binary files differnew file mode 100644 index 00000000..5b652d87 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Partcrv3.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Partcrv3.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Partcrv3.sci new file mode 100755 index 00000000..5b3cd178 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Partcrv3.sci @@ -0,0 +1,34 @@ +// 08.09.13 +// 09.03.06 + +function PL=Partcrv3(T1,T2,Fk) + Eps=10^(-4); +// Tmp=Mixop(1,Fk); + // new part from + if T1>T2+Eps + Npt=size(Fk,1); + Out1=Partcrv3(T1,Npt,Fk); + Out2=Partcrv3(1,T2,Fk); + Tmp=Fk(1,:)-Fk(Npt,:); + if norm(Tmp)<Eps + PL=Joincrvs(Out1,Out2); + else + PL=Mix(Out1,Out2); + end; + return; + end; + // to here + Is=ceil(T1); + Ie=floor(T2); + PL=[]; + if T1<Is-Eps + P=(Is-T1)*Fk(Is-1,:)+(1-Is+T1)*Fk(Is,:); + PL=[P] + end; + PL=[PL;Fk(Is:Ie,:)]; + if T2>Ie+Eps + P=(1-T2+Ie)*Fk(Ie,:)+(T2-Ie)*Fk(Ie+1,:); + PL=[PL;P] + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Partframe.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Partframe.bin Binary files differnew file mode 100644 index 00000000..1678ce6b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Partframe.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Partframe.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Partframe.sci new file mode 100644 index 00000000..a8581b1b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Partframe.sci @@ -0,0 +1,27 @@ +// 13.05.03 + +function Out=Partframe(Tb,St,Ed) + G=Dividetable(Tb); + Gw=G(1); + Gt=G(2); + Gy=G(3); + Gwt=Tb(4); + Gwy=Tb(5); + Gat=lstcat(list(Gwt(1)),Gt,list(Gwt(2))); + Gay=lstcat(list(Gwy(1)),Gy,list(Gwy(2))); + Tmp1=Ptstart(Gat(St(1))); + Tmp2=Ptstart(Gay(St(2))); + Ps=[Tmp1(1),Tmp2(2)]; + Tmp1=Ptstart(Gat(Ed(1))); + Tmp2=Ptstart(Gay(Ed(2))); + Pe=[Tmp1(1),Tmp2(2)]; + Pars=Paramoncrv(Ps,Gw); + Pare=Paramoncrv(Pe,Gw); + if Pars<Pare then + Out=Partcrv(Pars,Pare,Gw); + else + Tmp1=Partcrv(Pars,Numptcrv(Gw),Gw); + Tmp2=Partcrv(1,Pare,Gw); + Out=Joincrvs(Tmp1,Tmp2); + end +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PartitionPt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PartitionPt.bin Binary files differnew file mode 100644 index 00000000..13e1cb62 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PartitionPt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PartitionPt.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PartitionPt.sci new file mode 100755 index 00000000..15d74ec4 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PartitionPt.sci @@ -0,0 +1,7 @@ +// 08.09.13 + +function Out=PartitionPt() + global PARTITIONPT; + Out=PARTITIONPT; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Partitionseg.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Partitionseg.bin Binary files differnew file mode 100644 index 00000000..7e736e20 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Partitionseg.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Partitionseg.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Partitionseg.sci new file mode 100755 index 00000000..39c23c45 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Partitionseg.sci @@ -0,0 +1,100 @@ +// 08.09.13 +// 08.10.17 +// 09.05.27 +// 09.12.31 (gsort) + +function Out=Partitionseg(varargin) + global PARTITIONPT OTHERPARTITION; + Nargs=length(varargin); + Fig=varargin(1); + GL=varargin(2); N=3; + Eps0=10^(-5); + Eps=0.05; + if Nargs>2 + Eps=varargin(3); + end; + Eps2=0.2; + if Nargs>3 + Eps2=varargin(4); + end; + if Nargs>4 + Ns=varargin(5); + Other=Mixop(Ns,OTHERPARTITION); + else + Ns=1; + Other=[]; + OTHERPARTITION=[]; + for N=1:Mixlength(GL) + OTHERPARTITION=Mixadd(OTHERPARTITION,[]); + end; + end; + Npt=size(Fig,1); + ParL=[1,Npt,Other]; + for N=Ns:Mixlength(GL) + G=Mixop(N,GL); + if Fig==G + KouL=IntersectselfPp(Fig,Eps,Eps2); + else + KouL=IntersectcrvsPp(Fig,G,Eps,Eps2); + Tmp=Nearestpt(Ptstart(Fig),G); + Tmp1=Mixop(1,Tmp); + Tmp2=Mixop(2,Tmp); + Tmp3=Mixop(3,Tmp); + if Tmp3>Eps0 & Tmp3<Eps + Tmp1=Mix(Tmp1,1,floor(Tmp2)); + KouL=Mixadd(KouL,Tmp1); + end; + Tmp=Nearestpt(Ptend(Fig),G); + Tmp1=Mixop(1,Tmp); + Tmp2=Mixop(2,Tmp); + Tmp3=Mixop(3,Tmp); + if Tmp3>Eps0 & Tmp3<Eps + Tmp1=Mix(Tmp1,Numptcrv(Fig),floor(Tmp2)); + KouL=Mixadd(KouL,Tmp1); + end; + end; + for I=1:Mixlength(KouL) + Tmp=Mixop(I,KouL); + P=Mixop(1,Tmp); + S=Mixop(2,Tmp); + ParL=[ParL,S]; + K=Mixop(3,Tmp); + S=ParamonCurve(P,K,G); + Tmp=Mixop(N,OTHERPARTITION); + Tmp1=gsort([Tmp,S]); + Tmp1=Tmp1(length(Tmp1):-1:1); + Tmp2=[]; + for J=1:Mixlength(OTHERPARTITION) + Tmp3=Mixop(J,OTHERPARTITION); + if J~=N + Tmp2=Mixadd(Tmp2,Tmp3); + else + Tmp2=Mixadd(Tmp2,Tmp1); + end; + end; + OTHERPARTITION=Tmp2; + end; + end; + ParL=gsort(ParL); + ParL=ParL(length(ParL):-1:1); + ParL(1)=1; + Out=[ParL(1)]; + P=PointonCurve(ParL(1),Fig); + PARTITIONPT=Mix(P); + for I=1:length(ParL) + Tmp=ParL(I); + P=PointonCurve(Tmp,Fig); + Tmp1=Out(length(Out)); + Q=PointonCurve(Tmp1,Fig); + if norm(P-Q)>Eps + Out=[Out,Tmp]; +// P=PointonCurve(Tmp,Fig); + PARTITIONPT=Mixadd(PARTITIONPT,P); + end; + end; + if Out(length(Out))~=Npt + Out=[Out(1:length(Out)-1),Npt]; + end; + if length(Out)==1 Out=[1,Npt]; end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Perspt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Perspt.bin Binary files differnew file mode 100644 index 00000000..e07e8ade --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Perspt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Perspt.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Perspt.sci new file mode 100755 index 00000000..eb689ffe --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Perspt.sci @@ -0,0 +1,21 @@ +// 08.08.12 + +function Out=Perspt(P) + global FocusPoint EyePoint; + Tmp=P-FocusPoint; + X1=Tmp(1); Y1=Tmp(2); Z1=Tmp(3); + Tmp=EyePoint-FocusPoint; + E1=Tmp(1); F1=Tmp(2); G1=Tmp(3); + Ca=E1/sqrt(E1^2+F1^2); + Sa=F1/sqrt(E1^2+F1^2); + X2=X1*Ca+Y1*Sa; Y2=-X1*Sa+Y1*Ca; Z2=Z1; + E2=E1*Ca+F1*Sa; F2=-E1*Sa+F1*Ca; G2=G1; + Cb=E2/sqrt(E2^2+G2^2); + Sb=G2/sqrt(E2^2+G2^2); + X3=X2*Cb+Z2*Sb; Y3=Y2; Z3=-X2*Sb+Z2*Cb; + E3=E2*Cb+G2*Sb; F3=F2; G3=-E2*Sb+G2*Cb; + Yz=E3/(E3-X3)*Y3; + Zz=E3/(E3-X3)*Z3; + Out=[Yz,Zz]; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PhFaceL.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PhFaceL.bin Binary files differnew file mode 100644 index 00000000..c7fb3404 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PhFaceL.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PhFaceL.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PhFaceL.sci new file mode 100755 index 00000000..ea2c8e28 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PhFaceL.sci @@ -0,0 +1,7 @@ +// 08.08.17 + +function Out=PhFaceL() + global PHCUTPOINTL PHVERTEXL PHFACEL; + Out=PHFACEL; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PhHiddenData.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PhHiddenData.bin Binary files differnew file mode 100644 index 00000000..162ba3f6 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PhHiddenData.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PhHiddenData.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PhHiddenData.sci new file mode 100755 index 00000000..d5333cd1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PhHiddenData.sci @@ -0,0 +1,7 @@ +// 08.08.22
+
+function Out=PhHiddenData()
+ global PHHIDDENDATA;
+ Out=PHHIDDENDATA;
+endfunction;
+
diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PhVertexL.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PhVertexL.bin Binary files differnew file mode 100644 index 00000000..7c4526ca --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PhVertexL.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PhVertexL.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PhVertexL.sci new file mode 100755 index 00000000..1eae4bc9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PhVertexL.sci @@ -0,0 +1,7 @@ +// 08.08.17 + +function Out=PhVertexL() + global PHCUTPOINTL PHVERTEXL PHFACEL; + Out=PHVERTEXL; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phcutdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phcutdata.bin Binary files differnew file mode 100644 index 00000000..767e453e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phcutdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phcutdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phcutdata.sci new file mode 100755 index 00000000..9c7806f5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phcutdata.sci @@ -0,0 +1,173 @@ +// 08.08.17 +// 08.09.16 +// 10.01.02 +// 13.10.21 ( __ added to varibles ) +// 14.06.09 ( debugged -- the cause unknown ) + +function Out__=Phcutdata(VL__,FaceL__,PlaneD__) + global PHCUTPOINTL + Out__=[]; + EL__=[]; + Eps__=10^(-4); + for I__=1:Mixlength(FaceL__) + Face__=Mixop(I__,FaceL__); + for J__=1:length(Face__) + Nj__=J__+1; + if J__==length(Face__) + Nj__=1; + end; + N1__=Face__(J__); N2__=Face__(Nj__); + Tmp__=[N1__,N2__]; + Flg__=0; + for K__=1:Mixlength(EL__) + Tmp1__=Mixop(K__,EL__); + Tmp2__=[Tmp1__(2),Tmp1__(1)]; + if Tmp__==Tmp1__ | Tmp__==Tmp2__ + Flg__=1; + break; + end + end; + if Flg__==0 + EL__=Mixadd(EL__,Tmp__); + end; + end; + end; + Out0__=[]; + for I__=1:Mixlength(EL__) + Tmp__=Mixop(I__,EL__); + Tmp1__=Mixop(Tmp__(1),VL__); + Tmp2__=Mixop(Tmp__(2),VL__); + Out0__=Mixadd(Out0__, Spaceline([Tmp1__,Tmp2__])); + end; + if Mixtype(PlaneD__)~=1 + V1__=Mixop(1,PlaneD__); + Tmp__=Mixop(2,PlaneD__); + if length(Tmp__)>1 + d__=V1__(1)*Tmp__(1)+V1__(2)*Tmp__(2)+V1__(3)*Tmp__(3); + else + d__=Tmp__; + end; + elseif type(PlaneD__)==1 + V1__=PlaneD__(1:3); + d__=PlaneD__(4); + else + K__=mtlb_findstr(PlaneD__,'='); + if K__>0 + Tmp1__=part(PlaneD__,1:K__-1); + Tmp2__=part(PlaneD__,K__+1:length(PlaneD__)); + PlaneD__=Tmp1__+'-('+Tmp2__+')'; + end; + x=0; y=0; z=0; + d__=-evstr(PlaneD__); + x=1; y=0; z=0; + Tmp1__=evstr(PlaneD__)+d__; + x=0; y=1; z=0; + Tmp2__=evstr(PlaneD__)+d__; + x=0; y=0; z=1; + Tmp3__=evstr(PlaneD__)+d__; + V1__=[Tmp1__,Tmp2__,Tmp3__]; + end; + if V1__==[0,0,0] + Out__=Out0__; + return; + end; + V3__=[1,0,0]; + Out1__=Rotate3data(Out0__,V1__,V3__); +// x=poly(0,'X'); + Tmp2__=Rotate3pt([1,0,0],V3__,V1__); + Tmp__=V1__(1)*Tmp2__(1)+V1__(2)*Tmp2__(2)+V1__(3)*Tmp2__(3); + x0__=d__/Tmp__; + t__=poly(0,'T'); + PtL__ =[]; + for I__=1:Mixlength(Out1__) + Tmp__=Mixop(I__,Out1__); + Tmp1__=Tmp__(1,:); Tmp2__=Tmp__(2,:); + P__=Tmp1__+t__*(Tmp2__-Tmp1__); + Tmp__=Tmp1__(1)+t__*(Tmp2__(1)-Tmp1__(1)); + if abs(coeff(Tmp__,1))<Eps__ + Tmp__=[]; + else + Tmp1__=coeff(Tmp__,1); + Tmp2__=x0__-coeff(Tmp__,0); + Tmp__=[Tmp2__/Tmp1__]; + end; + if length(Tmp__)>0 + Tmp__=Tmp__(1); + if (Tmp__>-Eps__) & (Tmp__<1+Eps__) + Tmp3__=horner(P__,Tmp__); + Tmp3__=Rotate3pt(Tmp3__,V3__,V1__); + if Tmp__<Eps__ + Tmp1__=Mixop(I__,EL__); + Tmp1__=Tmp1__(1); + Tmp4__=MixS([Tmp1__,Tmp1__],Tmp3__); + else + if Tmp__>1-Eps__ then + Tmp1__=Mixop(I__,EL__); + Tmp1__=Tmp1__(2); + Tmp4__=MixS([Tmp1__,Tmp1__],Tmp3__); + else + Tmp4__=MixS(Mixop(I__,EL__),Tmp3__); + end; + end; + Flg__=0; + for J__=1:Mixlength(PtL__) + Tmp__=Mixop(J__,PtL__); + Tmp__=Mixop(2,Tmp__); + if norm(Tmp3__-Tmp__)<Eps__ then + Flg__=1; + break; + end; + end; + if Flg__==0 + PtL__=Mixadd(PtL__,Tmp4__); + end; + end; + end; + end; + if Mixlength(PtL__)==0 + Out__=Out0__; + return + end; + PL__=Mix(Mixop(1,PtL__)); + QL__=Mixsub(2:Mixlength(PtL__),PtL__); + N__=Mixlength(QL__); + for I__=2:N__+1 + Tmp1__=Mixop(Mixlength(PL__),PL__); + Tmp1__=Mixop(1,Tmp1__); + for J__=1:Mixlength(QL__) + Tmp2__=Mixop(J__,QL__); + Tmp2__=Mixop(1,Tmp2__); + Flg__=0; + for K__=1:Mixlength(FaceL__) + Tmp3__=Mixop(K__,FaceL__); + if Member(Tmp1__(1),Tmp3__) & Member(Tmp1__(2),Tmp3__) & Member(Tmp2__(1),Tmp3__) & Member(Tmp2__(2),Tmp3__) + Flg__=1; + break; + end; + end; + if Flg__==1 + break; + end; + end; + J__=min(J__, Mixlength(QL__)); + PL__=Mixadd(PL__,Mixop(J__,QL__)); + Tmp1__=Mixsub(1:J__-1,QL__); + Tmp2__=Mixsub(J__+1:Mixlength(QL__),QL__); + QL__=Mixjoin(Tmp1__,Tmp2__); + if Mixlength(QL__)==0 + break; + end; + end; + PHCUTPOINTL=PL__; + Tmp__=[]; + for J__=1:Mixlength(PL__); + Tmp1__=Mixop(J__,PL__); + Tmp1__=Mixop(2,Tmp1__); + Tmp__=Mixadd(Tmp__,Tmp1__); + end; + Tmp1__=Mixop(1,PL__); + Tmp1__=Mixop(2,Tmp1__); + Tmp__=Mixadd(Tmp__,Tmp1__); + Out2__=Spaceline(Tmp__); + Out__=Mixadd(Out0__,Out2__); +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phcutoffdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phcutoffdata.bin Binary files differnew file mode 100644 index 00000000..5e7c757a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phcutoffdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phcutoffdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phcutoffdata.sci new file mode 100755 index 00000000..879067ce --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phcutoffdata.sci @@ -0,0 +1,184 @@ +// 08.08.17 +// 10.08.15 near line 25 or so +// 13.10.21 ( __ added to varibles ) + +function Out2__=Phcutoffdata(varargin) + global PHCUTPOINTL PHVERTEXL PHFACEL; + Eps__=10^(-4); + Out2__=[]; + VL__=varargin(1); + FaceL__=varargin(2); + PlaneD__=varargin(3); + Sgnstr__=varargin(4); + Fugou__=1; + if Sgnstr__=='-' | Sgnstr__=='n' Fugou__=-1; end; + Out0__=Phcutdata(VL__,FaceL__,PlaneD__); + PtL__=PHCUTPOINTL; + PHVERTEXL=VL__; + PHFACEL=FaceL__; + if PtL__==[] + Out2__=Out0__; + return; + end; + N1__=Mixlength(VL__); + Face__=[]; + for I__=1:Mixlength(PtL__); + Tmp__=Mixop(I__,PtL__); + Tmp3__=Mixop(1,Tmp__); // 2010.08.15 + Tmp1__=Tmp3__(1); Tmp2__=Tmp3__(2); // 2010.08.15 + if Tmp1__~=Tmp2__ + VL__=Mixadd(VL__,Mixop(2,Tmp__)); + N1__=N1__+1; + Tmp1__=N1__; + end; + Face__=[Face__,Tmp1__]; + PtL__(I__)=list(Mixop(1,Tmp__),Tmp1__); // 2010.08.15 +// Tmp2__=Mixsub(1:I__-1,PtL__); +// Tmp2__=Mixadd(Tmp2__,Mix(Mixop(1,Tmp__),Tmp1__)); +// Tmp3__=Mixsub(I__+1:Mixlength(PtL__),PtL__); +// PtL__=Mixjoin(Tmp2__,Tmp3__); + end; + OutfL__=MixS(Face__); + if Mixtype(PlaneD__)~=1 + V1__=Mixop(1,PlaneD__); + Tmp__=Mixop(2,PlaneD__); + if length(Tmp__)>1 + d__=V1__(1)*Tmp__(1)+V1__(2)*Tmp__(2)+V1__(3)*Tmp__(3); + else + d__=Tmp__; + end; + elseif type(PlaneD__)==1 + V1__=PlaneD__(1:3); + d__=PlaneD__(4); + else + K__=mtlb_findstr(PlaneD__,'='); + if K__>0 + Tmp1__=part(PlaneD__,1:K__-1); + Tmp2__=part(PlaneD__,K__+1:length(PlaneD__)); + PlaneD__=Tmp1__+'-('+Tmp2__+')'; + end; + x=0; y=0; z=0; + d__=-evstr(PlaneD__); + x=1; y=0; z=0; + Tmp1__=evstr(PlaneD__)+d__; + x=0; y=1; z=0; + Tmp2__=evstr(PlaneD__)+d__; + x=0; y=0; z=1; + Tmp3__=evstr(PlaneD__)+d__; + V1__=[Tmp1__,Tmp2__,Tmp3__]; + end; + for I__=1:Mixlength(FaceL__) + Face__=Mixop(I__,FaceL__); + TmpL__=[]; + for J__=1:length(Face__) + N1__=Face__(J__); + if J__==length(Face__) + N2__=Face__(1); + else + N2__=Face__(J__+1); + end; + for K__=1:Mixlength(PtL__) + Pd__=Mixop(K__,PtL__); + Tmp__=Mixop(1,Pd__); + if Tmp__(1)==Tmp__(2) + if Tmp__(1)==N1__ + TmpL__=Mixadd(TmpL__,Mix(J__,[N1__,N2__],Mixop(2,Pd__))); + end + else + if Tmp__==[N1__,N2__] | Tmp__==[N2__,N1__] + TmpL__=Mixadd(TmpL__,Mix(J__,[N1__,N2__],Mixop(2,Pd__))); + end; + end; + end; + end; + if Mixlength(TmpL__)<2 + Flg__=0; + for J__=1:length(Face__) + Tmp__=Mixop(Face__(J__),VL__); + Tmp1__=Fugou__*(Naiseki(V1__,Tmp__)-d__); + if Tmp1__<-Eps__ + Flg__=1; + break; + end; + end; + if Flg__==0 + OutfL__=Mixadd(OutfL__,Face__); + end; + continue; + end; + Pd__=Mixop(1,TmpL__); + Qd__=Mixop(2,TmpL__); + Outf1__=[Mixop(3,Pd__)]; + Nf__=Mixop(1,Pd__)+1; + Tmp__=Mixop(2,Pd__); + JJ__=0; + while Tmp__~=Mixop(2,Qd__) + JJ__=JJ__+1; + if JJ__>20 + disp('bug'); + return; + end; + Tmp1__=Tmp__(2); + if Outf1__(length(Outf1__))~=Tmp1__ + Outf1__=[Outf1__,Tmp1__]; + end; + Tmp__=[Face__(Nf__)]; + Nf__=Nf__+1; + if Nf__>length(Face__) Nf__=1; end; + Tmp__=[Tmp__,Face__(Nf__)]; + end; + Tmp1__=Mixop(3,Qd__); + if Outf1__(length(Outf1__))~=Tmp1__ + Outf1__=[Outf1__,Tmp1__]; + end; + Outf2__=[Mixop(3,Pd__)]; + Nf__=Mixop(1,Pd__); + Tmp__=Mixop(2,Pd__); + JJ__=0; + while Tmp__~=Mixop(2,Qd__) + JJ__=JJ__+1; + if JJ__>20 + disp('bug'); + return; + end; + Tmp1__=Tmp__(1); + if Outf2__(length(Outf2__))~=Tmp1__ + Outf2__=[Outf2__,Tmp1__] + end; + Tmp__=[Face__(Nf__)]; + Nf__=Nf__-1; + if Nf__<1 Nf__=length(Face__); end; + Tmp__=[Face__(Nf__),Tmp__]; + end; + Tmp1__=Mixop(3,Qd__); + if Outf2__(length(Outf2__))~=Tmp1__ + Outf2__=[Outf2__,Tmp1__] + end; + if length(Outf1__)<3 | length(Outf2__)<3 + Face__=Outf1__; + if length(Outf1__)<length(Outf2__) Face__=Outf2__; end; + Flg__=0; + for J__=1:length(Face__) + Tmp__=Mixop(Face__(J__),VL__); + Tmp1__=Fugou__*(Naiseki(V1__,Tmp__)-d__); + if Tmp1__<-Eps__ + Flg__=1; + break; + end; + end; + if Flg__==0 + OutfL__=Mixadd(OutfL__,Face__); + end; + else + Tmp__=Mixop(Outf1__(2),VL__); + Tmp1__=Outf1__; + Tmp2__=Fugou__*(Naiseki(V1__,Tmp__)-d__); + if Tmp2__<0 Tmp1__=Outf2__; end; + OutfL__=Mixadd(OutfL__,Tmp1__); + end; + end; + PHVERTEXL=VL__; + PHFACEL=OutfL__; + Out2__=Phcutdata(VL__,OutfL__,[0,0,0,0]); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phidegree.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phidegree.bin Binary files differnew file mode 100644 index 00000000..2e8372d4 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phidegree.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phidegree.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phidegree.sci new file mode 100755 index 00000000..02fe98a5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phidegree.sci @@ -0,0 +1,7 @@ +// 08.07.11 + +function Ang=Phidegree() + global PHI; + Ang=PHI*180/%pi; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phparadata.bin Binary files differnew file mode 100644 index 00000000..f048d289 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phparadata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phparadata.sci new file mode 100755 index 00000000..835c173e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phparadata.sci @@ -0,0 +1,7 @@ +// 08.08.21 +// 09.10.27 + +function Out=Phparadata(VL,FaceL) + Out=Facesdata(list(VL,FaceL),'para'); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phpersdata.bin Binary files differnew file mode 100644 index 00000000..fd962e37 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phpersdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phpersdata.sci new file mode 100755 index 00000000..e422b6fc --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phpersdata.sci @@ -0,0 +1,7 @@ +// 08.08.21 +// 09.10.27 + +function Out=Phpersdata(VL,FaceL) + Out=Facesdata(list(VL,FaceL),'pers'); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phrawparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phrawparadata.bin Binary files differnew file mode 100644 index 00000000..ab558ee1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phrawparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phrawparadata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phrawparadata.sci new file mode 100755 index 00000000..c4c79c26 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phrawparadata.sci @@ -0,0 +1,7 @@ +// 08.08.21 +// 09.10.27 + +function Out=Phrawparadata(VL,FaceL) + Out=Facesdata(list(VL,FaceL),'rawpara'); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phrawpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phrawpersdata.bin Binary files differnew file mode 100644 index 00000000..b07adddd --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phrawpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phrawpersdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phrawpersdata.sci new file mode 100755 index 00000000..29870630 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phrawpersdata.sci @@ -0,0 +1,7 @@ +// 08.08.21 +// 09.10.27 + +function Phrawpersdata(VL,FaceL) + Out=Facesdata(list(VL,FaceL),'rawpers'); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phsparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phsparadata.bin Binary files differnew file mode 100644 index 00000000..5548e0e3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phsparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phsparadata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phsparadata.sci new file mode 100755 index 00000000..3c8018e3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phsparadata.sci @@ -0,0 +1,7 @@ +// 08.08.22 +// 09.10.27 + +function Out=Phsparadata(Fdata) + Out=Facesdata(Fdata,'para') +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phspersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phspersdata.bin Binary files differnew file mode 100644 index 00000000..b625f4d4 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phspersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phspersdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phspersdata.sci new file mode 100755 index 00000000..58ab8101 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phspersdata.sci @@ -0,0 +1,7 @@ +// 08.08.22 +// 09.10.27 + +function Out=Phspersdata(Fdata) + Out=Facesdata(Fdata,'pers') +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phsrawparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phsrawparadata.bin Binary files differnew file mode 100644 index 00000000..7b3c7f0f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phsrawparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phsrawparadata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phsrawparadata.sci new file mode 100755 index 00000000..6928d928 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phsrawparadata.sci @@ -0,0 +1,7 @@ +// 08.08.22 +// 09.10.27 + +function Out=Phsrawparadata(Fdata) + Out=Facesdata(Fdata,'rawpara') +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phsrawpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phsrawpersdata.bin Binary files differnew file mode 100644 index 00000000..0594752f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phsrawpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phsrawpersdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phsrawpersdata.sci new file mode 100755 index 00000000..21677841 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Phsrawpersdata.sci @@ -0,0 +1,7 @@ +// 08.08.22 +// 09.10.27 + +function Phsrawpersdata(Fdata) + Out=Facesdata(Fdata,'rawpers') +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Plotdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Plotdata.bin Binary files differnew file mode 100644 index 00000000..7d239bba --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Plotdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Plotdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Plotdata.sci new file mode 100755 index 00000000..fc548f28 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Plotdata.sci @@ -0,0 +1,138 @@ +// +// 08.06.18 (N) +// 08.08.24 +// 08.10.05 +// 08.12.18 +// 09.03.12 +// 09.12.31 (gsort) +// 13.10.19 (__ added to variables) +// 14.10.24 N,D,E => N__ ,... +// 14.12.11 Assign used, and debugged (Exfun ) +// 15.11.16 N changed to number of intervals +// 16.12.13 in case of X1=X2 + +function P__=Plotdata(varargin) + global XMIN XMAX YMIN YMAX + Eps__=10^(-5); + Fnstr__=varargin(1); Is__=2; + if type(Fnstr__)==13 + Fnflg__=1; + Fnarg__=varargin(Is__); + if type(Fnarg__)==13 + Fnflg__=Fnflg__+1; + Is__=Is__+1; + end; + else + Fnflg__=0; + end; + Rgstr__=varargin(Is__); Is__=Is__+1; + K__=mtlb_findstr(Rgstr__,'='); + if length(K__)>0 + Tmp__=strsplit(Rgstr__,[K__-1,K__]); + Vname__=Tmp__(1,1); + Rng__=evstr(Tmp__(3,1)); + else + Vname__=Rgstr__; + Rng__=[XMIN,XMAX]; + end; + N__=50; // Numpoints + E__=[]; // Exclusions + Exfun__=''; // Exclusion function + D__=%inf; // Discont + for I__=Is__:length(varargin) + Tmp__=varargin(I__); + Lhs__=part(Tmp__,1); + K__=mtlb_findstr(Tmp__,'='); + Tmp1__=part(Tmp__,K__+1:length(Tmp__)); + if mtlb_findstr(Tmp__,Vname__)==[] + Str__=Lhs__+'__='+Tmp1__; + execstr(Str__); + else + Exfun__=Tmp1__; + end; + end; + X1__=Rng__(1); X2__=Rng__(2); +// dx__=(X2__-X1__)/(N__-1); + dx__=(X2__-X1__)/(N__); // 15.11.16 + if Fnflg__==0 + Str__=Assign(Fnstr__,Vname__,'x__'); + end; + if abs(dx__)<Eps__ then // 16.12.13 + x__=X1__; + P__=[X1__,evstr(Str__)]; + return; + end; + Exfun__=Assign(Exfun__,Vname__,'x__'); + if length(Exfun__)>0 then // 14.12.11 + Tmp__=mtlb_findstr(Exfun__,"x__"); + if length(Tmp__)==0 then + E__=evstr(Exfun__); + Exfun__=""; + end + end + P__=[]; + E__=gsort(E__); + E__=E__(length(E__):-1:1); + E__=[E__,%inf]; + Tmp__=gsort(E__); + E__=Tmp__(length(Tmp__):-1:1); + Ke__=1; + for x__=X1__:dx__:X2__ + if Exfun__~='' + Tmp__=evstr(Exfun__); + if abs(Tmp__)<Eps__ + P__=[P__;%inf,%inf]; + continue; + end; + end; + Pa__=[]; + if x__-E__(Ke__)<-Eps__ + if Fnflg__==0 + Pa__=[x__,evstr(Str__)]; + else + if Fnflg__==1 + Pa__=[x__,Fnstr__(x__)]; + else + Pa__=[x__,Fnstr__(Fnarg__,x__)]; + end; + end; + end; + if abs(x__-E__(Ke__))<=Eps__ + if P__~=[] & P__(size(P__,1),:)~=[%inf,%inf] + Pa__=[%inf,%inf]; + end + end + if x__-E__(Ke__)>Eps__ + if Fnflg__==0 + Pa__=[x__,evstr(Str__)]; + else + if Fnflg__==1 + Pa__=[x__,Fnstr(x__)]; + else + Pa__=[x__,Fnstr__(Fnarg__,x__)]; + end; + end; + Ke__=Ke__+1; + end + if Pa__~=[] + if Pa__(1)==%inf + P__=[P__;Pa__] + elseif P__==[] + P__=[Pa__]; + else + Tmp__=P__(size(P__,1),:); + if Tmp__(1)==%inf + P__=[P__;Pa__]; + elseif norm(Tmp__-Pa__)<D__ + P__=[P__;Pa__]; + else + P__=[P__;%inf,%inf;Pa__]; + end + end + end + end; + Tmp__=size(P__,1); + if P__(Tmp__,1)==%inf + P__=P__(1:Tmp__-1,:); + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Pointdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Pointdata.bin Binary files differnew file mode 100644 index 00000000..73d006ea --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Pointdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Pointdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Pointdata.sci new file mode 100755 index 00000000..35e2347e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Pointdata.sci @@ -0,0 +1,25 @@ +// +// 08.05.23 +// 09.09.18 +// 13.05.03 list of points is outputted + +function PL=Pointdata(varargin) + Nargs=length(varargin); + PL=list(); + for I=1:Nargs + DL=varargin(I); + DL=Flattenlist(DL); + for K=1:length(DL); + Dt=DL(K); + for J=1:size(Dt,1) + Tmp=Dt(J,:); + if Tmp(1)~=%inf then + PL($+1)=Tmp; + end + end + end; + end; + if length(PL)==1 + PL=PL(1); + end; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PointonCurve.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PointonCurve.bin Binary files differnew file mode 100644 index 00000000..1914f8a3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PointonCurve.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PointonCurve.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PointonCurve.sci new file mode 100755 index 00000000..fd2a35d0 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PointonCurve.sci @@ -0,0 +1,15 @@ +// 08.05.30 + +function Out=PointonCurve(T,PtL) + Eps=10^(-4); + N=Trunc(T+Eps); + S=max(T-N,0); +// PtL=Plt; + if N==size(PtL,1) + Out=PtL(N,:); + else + Pa=PtL(N,:);; + Pb=PtL(N+1,:); + Out=(1-S)*Pa+S*Pb; + end +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Pointoncrv.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Pointoncrv.bin Binary files differnew file mode 100644 index 00000000..69dc99ce --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Pointoncrv.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Pointoncrv.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Pointoncrv.sci new file mode 100755 index 00000000..c39cdadc --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Pointoncrv.sci @@ -0,0 +1,21 @@ +// 09.10.03 + +function Out=Pointoncrv(varargin) + Eps=10^(-4); + T=varargin(1); + Gdata=varargin(2); + if size(T,1)>1 + Tmp=T; T=Gdata; Gdata=Tmp; + end; + PtL=Gdata; + N=Trunc(T+Eps); + S=max(T-N,0); + if N==size(PtL,1) + Out=PtL(N,:); + else + Pa=PtL(N,:);; + Pb=PtL(N+1,:); + Out=(1-S)*Pa+S*Pb; + end +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Powersum.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Powersum.bin Binary files differnew file mode 100644 index 00000000..f85dfeb2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Powersum.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Powersum.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Powersum.sci new file mode 100755 index 00000000..b23dfdc8 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Powersum.sci @@ -0,0 +1,17 @@ +// 09.03.12 + +function Out=Powersum(varargin) + Nargs=length(varargin); + COEFF=varargin(1); + x=varargin(2); + if Nargs>2 + x=x-varargin(3); + end; + NL=Mixop(1,COEFF); + A=Mixop(2,COEFF); + Upto=min(size(NL,2),size(A,2)); + NL=NL(1:Upto); + A=A(1:Upto); + Out=sum(A.*x^NL); +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Prime.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Prime.bin Binary files differnew file mode 100644 index 00000000..54fceb67 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Prime.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Prime.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Prime.sci new file mode 100755 index 00000000..bc866928 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Prime.sci @@ -0,0 +1,10 @@ +// 09.08.23 + +function Out=Prime(varargin) + if length(varargin)==0 + Out=char(39); + else + Out=varargin(1)+char(39); + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Printobjstr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Printobjstr.bin Binary files differnew file mode 100644 index 00000000..3e8d6ca7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Printobjstr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Printobjstr.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Printobjstr.sci new file mode 100644 index 00000000..bf137751 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Printobjstr.sci @@ -0,0 +1,10 @@ +// s : 2014.06.22 + +function Printobjstr(Str) + global Wfile FID; + if Wfile=='default' then + mprintf('%s\n',Str); + else + mfprintf(FID,'%s\n',Str); + end +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/ProjCurve.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/ProjCurve.bin Binary files differnew file mode 100644 index 00000000..22cf9f20 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/ProjCurve.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/ProjCurve.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/ProjCurve.sci new file mode 100755 index 00000000..bbe28c12 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/ProjCurve.sci @@ -0,0 +1,32 @@ +// 08.07.11 +// 08.10.07 +// 09.06.02 +// 09.08.23 + +function AnsL=ProjCurve(Curve) + global PHI THETA; + Eps=10^(-6); + AnsL=[]; // Added + SP=sin(PHI); CP=cos(PHI); + ST=sin(THETA); CT=cos(THETA); + for I=1:size(Curve,1) + P=Curve(I,:); + x=P(1); y=P(2); z=P(3); + if x~=%inf + Xz=-x*SP+y*CP; + Yz=-x*CP*CT-y*SP*CT+z*ST; + Tmp=[Xz,Yz]; + if I==1 + AnsL=[Tmp]; + else + Tmp1=AnsL(size(AnsL,1),:); + if Tmp1(1)==%inf | norm(Tmp-Tmp1)>Eps + AnsL=[AnsL;Tmp]; + end; + end; + else + AnsL=[AnsL;%inf,%inf]; + end; + end; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/ProjcoordCurve.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/ProjcoordCurve.bin Binary files differnew file mode 100644 index 00000000..1a815b50 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/ProjcoordCurve.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/ProjcoordCurve.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/ProjcoordCurve.sci new file mode 100755 index 00000000..74c552a6 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/ProjcoordCurve.sci @@ -0,0 +1,18 @@ +// 08.07.11 +// 08.10.16 + +function Out=ProjcoordCurve(Curve) + global PHI THETA; + SP=sin(PHI); CP=cos(PHI); + ST=sin(THETA); CT=cos(THETA); + Out=[]; + for J=1:size(Curve,1) + P=Curve(J,:); + x=P(1); y=P(2); z=P(3); + Xz=-x*SP+y*CP; + Yz=-x*CP*CT-y*SP*CT+z*ST; + Zz=x*CP*ST+y*SP*ST+z*CT; + Out=[Out;Xz,Yz,Zz]; + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Projpara.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Projpara.bin Binary files differnew file mode 100644 index 00000000..c78a60ff --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Projpara.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Projpara.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Projpara.sci new file mode 100755 index 00000000..82feeff2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Projpara.sci @@ -0,0 +1,41 @@ +// 08.07.11 +// 08.07.15 +// 08.08.12 +// 08.10.28 + +function CL=Projpara(varargin) + Nargs=length(varargin); + Flg=0; + if Nargs==1 & Mixtype(varargin(1))==1 + Flg=1; + end; + CL=[]; + for N=1:Nargs + Crv=varargin(N); + if Mixtype(Crv)==1 + Tmp=ProjCurve(Crv); + CL=Mixadd(CL,Tmp); + else + if Mixtype(Crv)==3 + ObjL=[]; + for I=1:Mixlength(Crv) + Tmp1=Mixop(I,Crv); + if Mixtype(Tmp1)==1 + ObjL=Mixadd(ObjL,Tmp1); + else + ObjL=Mixjoin(ObjL,Tmp1); + end; + end; + Crv=ObjL; + end; + for J=1:Mixlength(Crv) + Tmp=ProjCurve(Mixop(J,Crv)); + CL=Mixadd(CL,Tmp); + end + end + end + if Mixlength(CL)==1 & Flg==1 + CL=Mixop(1,CL); + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Projpers.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Projpers.bin Binary files differnew file mode 100644 index 00000000..fe160426 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Projpers.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Projpers.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Projpers.sci new file mode 100755 index 00000000..b43451a9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Projpers.sci @@ -0,0 +1,39 @@ +// 08.08.12 +// 08.10.28 + +function CL=Projpers(varargin) + Nargs=length(varargin); + Flg=0; + if Nargs==1 & Mixtype(varargin(1))==1 + Flg=1; + end; + CL=[]; + for N=1:Nargs + Crv=varargin(N); + if Mixtype(Crv)==1 + Tmp=CameraCurve(Crv); + CL=Mixadd(CL,Tmp); + else + if Mixtype(Crv)==3 + ObjL=[]; + for I=1:Mixlength(Crv) + Tmp1=Mixop(I,Crv); + if Mixtype(Tmp1)==1 + ObjL=Mixadd(ObjL,Tmp1); + else + ObjL=Mixjoin(ObjL,Tmp1); + end; + end; + Crv=ObjL; + end; + for J=1:Mixlength(Crv) + Tmp=CameraCurve(Mixop(J,Crv)); + CL=Mixadd(CL,Tmp); + end + end + end + if Mixlength(CL)==1 & Flg==1 + CL=Mixop(1,CL); + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ptcrv.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ptcrv.bin Binary files differnew file mode 100644 index 00000000..6ba89403 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ptcrv.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ptcrv.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ptcrv.sci new file mode 100755 index 00000000..78776d7b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ptcrv.sci @@ -0,0 +1,4 @@ +function P=Ptcrv(N,Fig) + P=Fig(N,:) +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ptend.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ptend.bin Binary files differnew file mode 100644 index 00000000..9cc74d07 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ptend.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ptend.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ptend.sci new file mode 100755 index 00000000..d16ebf80 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ptend.sci @@ -0,0 +1,4 @@ +function P=Ptend(Fig) + P=Fig(size(Fig,1),:) +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PthiddenQ.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PthiddenQ.bin Binary files differnew file mode 100644 index 00000000..f195927d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PthiddenQ.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PthiddenQ.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PthiddenQ.sci new file mode 100755 index 00000000..98f2ca94 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PthiddenQ.sci @@ -0,0 +1,250 @@ +// 08.10.10 +// 08.10.12 +// 08.10.15 +// 08.10.26 +// 09.06.05 +// 09.09.10 +// 09.10.12 debug +// 09.11.07 debugged +// 10.02.16 Eps__ +// 13.10.22 ( __ added to variables ) + +function Out__=PthiddenQ(PtA__,Vec__,Fd__,Uveq__,Np__,EPS__) +// Out__=1 : hidden +// SL__ : List of segments near PtA__+Vec__ + Eps__0=10^(-4)*(Xmax()-Xmin())/10; + Eps__=EPS__(1)*(Xmax()-Xmin())/10; // + Out__=0; + Vec__1=1/norm(Vec__)*Vec__; + PtL__=[]; + Tmp__=Mixop(2,Fd__); + K__=mtlb_findstr(Tmp__,'='); + Xname__=part(Tmp__,1:K__-1); + Tmp__=Mixop(3,Fd__); + K__=mtlb_findstr(Tmp__,'='); + Yname__=part(Tmp__,1:K__-1); + Tmp__=Mixop(1,Fd__); + K__=mtlb_findstr(Tmp__,'='); + if K__~=[] + Zname__=part(Tmp__,1:K__-1); + else + Tmp__=Mixop(4,Fd__); + K__=mtlb_findstr(Tmp__,'='); + Zname__=part(Tmp__,1:K__-1); + end; + FdL__=Fullformfunc(Fd__); + Xf__=Mixop(2,FdL__); + Yf__=Mixop(3,FdL__); + Zf__=Mixop(4,FdL__); + Tmp__=Mixop(5,FdL__); + K__=mtlb_findstr(Tmp__,'='); + Uname__=part(Tmp__,1:K__-1); + Urg__=evstr(part(Tmp__,K__+1:length(Tmp__))); + Tmp__=Mixop(6,FdL__); + K__=mtlb_findstr(Tmp__,'='); + Vname__=part(Tmp__,1:K__-1); + Vrg__=evstr(part(Tmp__,K__+1:length(Tmp__))); + Umin__=Urg__(1); UMax__=Urg__(2); + Vmin__=Vrg__(1); VMax__=Vrg__(2); + V1__='('+string(Vec__(1))+')'; + V2__='('+string(Vec__(2))+')'; + V3__='('+string(Vec__(3))+')'; + Xstr__='(('+Xf__+')-('+string(PtA__(1))+'))'; + Ystr__='(('+Yf__+')-('+string(PtA__(2))+'))'; + Zstr__='(('+Zf__+')-('+string(PtA__(3))+'))'; + Urg__str=Mixop(5,FdL__); + Vrg__str=Mixop(6,FdL__); + if abs(Vec__(2))>Eps__0 | abs(Vec__(1))>Eps__0 + Eq__=V2__+'*'+Xstr__+'-'+V1__+'*'+Ystr__; + else + Eq__=Xstr__; + end; + MS__=Mix(Eq__,Urg__str,Vrg__str,Np__); + [Zval__,Xval__,Yval__]=Makevaltable(MS__); + SL__=[]; + for J__=1:length(Yval__)-1 + for I__=1:length(Xval__)-1 + a1__=Xval__(I__);b1__=Yval__(J__);c1__=Zval__(J__,I__); + a2__=Xval__(I__+1);b2__=Yval__(J__);c2__=Zval__(J__,I__+1); + a3__=Xval__(I__+1);b3__=Yval__(J__+1);c3__=Zval__(J__+1,I__+1); + a4__=Xval__(I__);b4__=Yval__(J__+1);c4__=Zval__(J__+1,I__); + PL__=[a1__,b1__;a2__,b2__;a3__,b3__;a4__,b4__;a1__,b1__]; + VL__=[c1__,c2__,c3__,c4__,c1__]; + QL__=[]; + for K__=1:4 + P1__=PL__(K__,:); P2__=PL__(K__+1,:); + M1__=VL__(K__); M2__=VL__(K__+1); + if M1__>=Eps__0 & M2__>=Eps__0 + continue; + end; + if M1__<=-Eps__0 & M2__<=-Eps__0 + continue; + end; + if abs(M1__)<Eps__0 + Tmp__=P1__; + elseif abs(M2__)<Eps__0 + continue; + else + Tmp__=1/(M1__-M2__)*(-M2__*P1__+M1__*P2__); + end; + QL__=[QL__;Tmp__]; + end; + if size(QL__,1)==2 + Puv1__=QL__(1,:); Puv2=QL__(2,:); + Tmp__1=Puv1__(1); + Tmp__2=Puv1__(2); + Tmp__=strsubst(Xf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Xv__=evstr(Tmp__); + Tmp__=strsubst(Yf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Yv__=evstr(Tmp__); + Tmp__=strsubst(Zf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Zv__=evstr(Tmp__); + P1__=[Xv__,Yv__,Zv__]; + Tmp__1=Puv2(1); + Tmp__2=Puv2(2); + Tmp__=strsubst(Xf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Xv__=evstr(Tmp__); + Tmp__=strsubst(Yf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Yv__=evstr(Tmp__); + Tmp__=strsubst(Zf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Zv__=evstr(Tmp__); + P2__=[Xv__,Yv__,Zv__]; + if norm(P1__-P2__)<Eps__0 // 09.11.07 + continue; + end; // + Tmp__1=norm(P1__-PtA__); + Tmp__2=Naiseki(P1__-PtA__,Vec__1); + Tmp__3=sqrt(abs(Tmp__1^2-Tmp__2^2)); + Tmp__4=norm(P2__-PtA__); + Tmp__5=Naiseki(P2__-PtA__,Vec__1); + Tmp__6=sqrt(abs(Tmp__4^2-Tmp__5^2)); + if Tmp__2<Tmp__5 + Tmp__=P1__; P1__=P2__; P2__=Tmp__; + Tmp__=Tmp__2; Tmp__2=Tmp__5; Tmp__5=Tmp__; + Tmp__=Tmp__3; Tmp__3=Tmp__6; Tmp__6=Tmp__; + end; + if Tmp__3<EPS__(2)*Eps__ & Tmp__6<EPS__(2)*Eps__ // + if Tmp__2>-Eps__0 + if Tmp__5<-Eps__0 + SL__=[SL__;P1__,P2__,-1]; + else + SL__=[SL__;P1__,P2__,1]; + end; + end; + end; + V1__=Vec__1(1); V2__=Vec__1(2); V3__=Vec__1(3); + if abs(V1__)>Eps__0 + M1__=PtA__(3)+V3__/V1__*(P1__(1)-PtA__(1))-P1__(3); + M2__=PtA__(3)+V3__/V1__*(P2__(1)-PtA__(1))-P2__(3); + elseif abs(V2__)>Eps__0 + M1__=PtA__(3)+V3__/V2__*(P1__(2)-PtA__(2))-P1__(3); + M2__=PtA__(3)+V3__/V2__*(P2__(2)-PtA__(2))-P2__(3); + else + M1__=PtA__(2)-P1__(2); + M2__=PtA__(2)-P2__(2); + end; + if M1__*M2__>=0 + if (M1__>Eps__0 & M2__>Eps__0) | (M1__<-Eps__0 & M2__<-Eps__0) + continue; + end; + if abs(M1__)<=Eps__0 + Pt__=P1__; Ptuv__=Puv1__; + else + Pt__=P2__; Ptuv__=Puv2; + end; + else + Pt__=1/(M1__-M2__)*(-M2__*P1__+M1__*P2__); + Ptuv__=1/(M1__-M2__)*(-M2__*Puv1__+M1__*Puv2); + end; + if type(Uveq__)==10 + Tmp__1='('+string(Ptuv__(1))+')'; + Tmp__2='('+string(Ptuv__(2))+')'; + Tmp__=strsubst(Uveq__,Uname__,Tmp__1); + Tmp__=strsubst(Tmp__,Vname__,Tmp__2); + Tmp__=evstr(Tmp__); + if Tmp__<-Eps__0 + continue; + end; + end; + Tmp__1=Dotprod(Pt__-PtA__,Vec__1); + Tmp__2=abs(Tmp__1); + Tmp__3=Dotprod(P1__-P2__,Vec__1); + Tmp__4=norm(P1__-P2__); + Tmp__6=Tmp__3/Tmp__4; + if Tmp__1>Eps__0 + if abs(Tmp__6)>0.75 // from + PtL__=[PtL__;Pt__,P2__]; + continue; + end; // upto + if Tmp__2>Eps__ + Out__=1; + return + end; + if Tmp__2<2*Eps__ + continue; + end; + end; + end; + end; + end; + if PtL__==[] + return; + end; + for I__=1:size(SL__,1) + P2__=SL__(I__,4:6); + Flg__=0; + for J__=1:size(SL__,1) + P=SL__(J__,1:3); + if norm(P-P2__)<Eps__0 + SL__(I__,7)=J__; + Flg__=1; + break; + end; + end; + if Flg__==0 & SL__(I__,7)>0 + SL__(I__,7)=-2; + end; + end; + for I__=1:size(PtL__,1) + P__=PtL__(I__,4:6); + Flg__=0; + for J__=1:size(SL__,1) + P1__=SL__(J__,1:3); + if norm(P1__-P__)<Eps__0 + Flg__=1; + break; + end; + end; + if Flg__==0 + Pt__=PtL__(I__,1:3); // from + Tmp__0=norm(P__-Pt__); + Tmp__1=abs(Dotprod(P__-Pt__,Vec__1)); + Tmp__2=sqrt(abs(Tmp__0^2-Tmp__1^2)); + Tmp__3=Tmp__2*norm(Pt__-PtA__)/Tmp__0; // should to be changed 10.02.16 + if Tmp__3>Eps__/5 + Out__=1; + return; + else + continue; + end; // upto + end; + Nxt__=SL__(J__,7); + while Nxt__>0 + P__=SL__(Nxt__,4:6); + Nxt__=SL__(Nxt__,7); + end; + if Nxt__==-2 + Out__=1; + return; + else + Out__=0; + end; + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ptne.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ptne.bin Binary files differnew file mode 100644 index 00000000..00ce8734 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ptne.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ptne.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ptne.sci new file mode 100755 index 00000000..f6452897 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ptne.sci @@ -0,0 +1,14 @@ +// +// 10.01.13 + +function Out=Ptne(varargin) + global XMIN XMAX YMIN YMAX + if length(varargin)==0 + Out=[XMAX,YMAX]; + else + G=varargin(1); + XM=max(G(:,1)); + YM=max(G(:,2)); + Out=[XM,YM]; + end; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ptnw.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ptnw.bin Binary files differnew file mode 100644 index 00000000..d8c23898 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ptnw.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ptnw.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ptnw.sci new file mode 100755 index 00000000..e3cd5ebc --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ptnw.sci @@ -0,0 +1,14 @@ +// +// 10.01.13 + +function Out=Ptnw(varargin) + global XMIN XMAX YMIN YMAX + if length(varargin)==0 + Out=[XMIN,YMAX]; + else + G=varargin(1); + Xm=min(G(:,1)); + YM=max(G(:,2)); + Out=[Xm,YM]; + end; + endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ptse.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ptse.bin Binary files differnew file mode 100644 index 00000000..19bd2ccc --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ptse.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ptse.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ptse.sci new file mode 100755 index 00000000..fe5e52b9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ptse.sci @@ -0,0 +1,14 @@ +// +// 10.01.13 + +function Out=Ptse(varargin) + global XMIN XMAX YMIN YMAX + if length(varargin)==0 + Out=[XMAX,YMIN]; + else + G=varargin(1); + XM=max(G(:,1)); + Ym=min(G(:,2)); + Out=[XM,Ym]; + end; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ptstart.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ptstart.bin Binary files differnew file mode 100644 index 00000000..c87076aa --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ptstart.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ptstart.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ptstart.sci new file mode 100755 index 00000000..f94437cf --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ptstart.sci @@ -0,0 +1,4 @@ +function P=Ptstart(Fig) + P=Fig(1,:) +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ptsw.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ptsw.bin Binary files differnew file mode 100644 index 00000000..df35b82c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ptsw.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ptsw.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ptsw.sci new file mode 100755 index 00000000..5b0a3474 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ptsw.sci @@ -0,0 +1,13 @@ +// 10.01.13 + +function Out=Ptsw(varargin) + global XMIN XMAX YMIN YMAX + if length(varargin)==0 + Out=[XMIN,YMIN]; + else + G=varargin(1); + Xm=min(G(:,1)); + Ym=min(G(:,2)); + Out=[Xm,Ym]; + end; +endfunction
\ No newline at end of file diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Putcell.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Putcell.bin Binary files differnew file mode 100644 index 00000000..baf3e29f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Putcell.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Putcell.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Putcell.sci new file mode 100755 index 00000000..e0020f0b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Putcell.sci @@ -0,0 +1,72 @@ +// 09.11.26 +// 09.12.06 +// 09.12.25 +// 09.12.29 + +function Putcell(varargin) + Nargs=length(varargin); + TbL=varargin(1); + Str=varargin(Nargs); + if type(Str)==1 + Str=string(Str); + end; + Pos=varargin(Nargs-1); + Nrg=varargin(2); + if type(Nrg)==10 + if Nargs==4 + Cell=Findcell(TbL,Nrg); + else + Mrg=varargin(3); + Cell=Findcell(TbL,Nrg,Mrg); + end; + else + Mrg=varargin(3); + Cell=Findcell(TbL,Nrg,Mrg); + end; + Pt=Cell(1); Dr='c'; + Posh=part(Pos,1); + Post=part(Pos,2:length(Pos)); + if (Posh=='r')|(Posh=='R') + Pt=Pt+[Cell(2),0]; + if length(Post)==0 + Dr='w1'; + else + Dr='w'+Post; + end; + end; + if (Posh=='l')|(Posh=='L') + Pt=Pt-[Cell(2),0]; + if length(Post)==0 + Dr='e1'; + else + Dr='e'+Post; + end; + end; + if (Posh=='u')|(Posh=='U') + Pt=Pt+[0,Cell(3)]; + if length(Post)==0 + Dr='s1'; + else + Dr='s'+Post; + end; + end; + if (Posh=='d')|(Posh=='D') + Pt=Pt-[0,Cell(3)]; + if length(Post)==0 + Dr='n1'; + else + Dr='n'+Post; + end; + end; + if (Posh=='b')|(Posh=='B') + Pt=Pt-[0,Cell(3)]; + if length(Post)==0 + Dr='n1'; + else + Dr='n'+Post; + end; + Str='$\mathstrut$'+Str; + end; + Letter(Pt,Dr,Str); +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Putcirmark.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Putcirmark.bin Binary files differnew file mode 100644 index 00000000..3a9d0634 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Putcirmark.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Putcirmark.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Putcirmark.sci new file mode 100755 index 00000000..63bc151f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Putcirmark.sci @@ -0,0 +1,18 @@ +// 09.11.26 + +function Putcirmark(TbL,Nrg,Mrg,Dt) + if type(Dt)==10 + N=1; Pos=Dt; Str=''; + else + N=length(Dt); Pos='l'; Str='\hspace*{2mm}'; + end; + for I=1:N + Tmp1=Dt(I); + Str=Str+'\cirmark'; + if I<N + Str=Str+'\hspace{3mm}'; + end; + end; + Putcell(TbL,Nrg,Mrg,Pos,Str); +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PutcoL.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PutcoL.bin Binary files differnew file mode 100644 index 00000000..b7994dc4 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PutcoL.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PutcoL.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PutcoL.sci new file mode 100755 index 00000000..41b9a1b6 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PutcoL.sci @@ -0,0 +1,65 @@ +// 09.12.06 +// 10.01.26 + +function PutcoL(varargin) + Nargs=length(varargin); + TbL=varargin(1); + if type(TbL)~=15 + disp('Tabledata missing') + return; + end; + Ag=varargin(2); + if type(Ag)==1 + CoL=Ag; + else + Alpha='-ABCDEFGHIJKLMNOPQRSTUVWXYZ'; + Clm=[]; + for I=1:length(Ag) + C=part(Ag,I:I); + Tmp=ascii(C); + if Tmp>=96 + C=char(Tmp-32); + end; + Tmp=mtlb_findstr(C,Alpha) + if length(Tmp)>0 + Clm=[Clm,Tmp-1]; + end; + end; + Nrg=0; + for I=length(Clm):-1:1 + Tmp=Clm(I); + Tmp1=length(Clm)-I; + Nrg=Nrg+Tmp*26^Tmp1; + end; + CoL=Nrg; + end; + Nr=length(TbL(3))+1; + K=1; + Dpos=varargin(3); + for I=4:Nargs + if I-3>Nr + break; + end; + Dt=varargin(I); + if type(Dt)~=15 + Putcell(TbL,CoL,K,Dpos,Dt); + K=K+1; + else + N=length(Dt); + Str=Dt(N); + Rrng=[K,K+1]; + Pos=Dpos; + for J=1:(N-1) + Tmp=Dt(J); + if type(Tmp)==1 + Rrng=[K,K+Tmp]; + end; + if type(Tmp)==10 + Pos=Tmp; + end; + end; + Putcell(TbL,CoL,Rrng,Pos,Str) + K=Rrng(2); + end; + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PutcoLexpr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PutcoLexpr.bin Binary files differnew file mode 100644 index 00000000..304768e4 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PutcoLexpr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PutcoLexpr.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PutcoLexpr.sci new file mode 100755 index 00000000..0e2f9d0a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PutcoLexpr.sci @@ -0,0 +1,65 @@ +// 10.04.01 + +function PutcoLexpr(varargin) + Nargs=length(varargin); + TbL=varargin(1); + if type(TbL)~=15 + disp('Tabledata missing') + return; + end; + Ag=varargin(2); + if type(Ag)==1 + CoL=Ag; + else + Alpha='-ABCDEFGHIJKLMNOPQRSTUVWXYZ'; + Clm=[]; + for I=1:length(Ag) + C=part(Ag,I:I); + Tmp=ascii(C); + if Tmp>=96 + C=char(Tmp-32); + end; + Tmp=mtlb_findstr(C,Alpha) + if length(Tmp)>0 + Clm=[Clm,Tmp-1]; + end; + end; + Nrg=0; + for I=length(Clm):-1:1 + Tmp=Clm(I); + Tmp1=length(Clm)-I; + Nrg=Nrg+Tmp*26^Tmp1; + end; + CoL=Nrg; + end; + Nr=length(TbL(3))+1; + K=1; + Dpos=varargin(3); + for I=4:Nargs + if I-3>Nr + break; + end; + Dt=varargin(I); + if type(Dt)~=15 + Dt='$'+Dt+'$'; + Putcell(TbL,CoL,K,Dpos,Dt); + K=K+1; + else + N=length(Dt); + Str='$'+Dt(N)+'$'; + Rrng=[K,K+1]; + Pos=Dpos; + for J=1:(N-1) + Tmp=Dt(J); + if type(Tmp)==1 + Rrng=[K,K+Tmp]; + end; + if type(Tmp)==10 + Pos=Tmp; + end; + end; + Putcell(TbL,CoL,Rrng,Pos,Str) + K=Rrng(2); + end; + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PutcoLstr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PutcoLstr.bin Binary files differnew file mode 100644 index 00000000..153f9afd --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PutcoLstr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PutcoLstr.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PutcoLstr.sci new file mode 100755 index 00000000..b993ffa9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/PutcoLstr.sci @@ -0,0 +1,34 @@ +// 10.01.02 for v5 + +function PutcoLstr(varargin) + Tb=varargin(1); + Nr=varargin(2); + Pos=varargin(3); + Str=varargin(4); + Sep=''; + if length(varargin)>4 + Sep=varargin(5); + end; + if Sep=='' + for I=1:length(Str) + Tmp=part(Str,I); + Putcell(Tb,Nr,I,Pos,Tmp); + end; + else + Ltr=''; + K=1; + for I=1:length(Str) + Tmp=part(Str,I); + if Tmp==Sep + Putcell(Tb,Nr,K,Pos,Ltr); + K=K+1; + Ltr=''; + else + Ltr=Ltr+Tmp; + end; + end; + if Ltr~='' + Putcell(Tb,Nr,K,Pos,Ltr); + end; + end; +endfunction;
\ No newline at end of file diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Putdashmark.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Putdashmark.bin Binary files differnew file mode 100644 index 00000000..f48d783b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Putdashmark.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Putdashmark.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Putdashmark.sci new file mode 100755 index 00000000..8d732a9d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Putdashmark.sci @@ -0,0 +1,18 @@ +// 09.11.26 + +function Putdashmark(TbL,Nrg,Mrg,Dt) + N=length(Dt); + Str='\hspace*{2mm}'; + for I=1:N + Tmp1=Dt(I); + if type(Tmp1)==1 + Tmp1=string(Tmp1); + end; + Str=Str+'\dashmark{'+Tmp1+'}'; + if I<N + Str=Str+'\hspace{3mm}'; + end; + end; + Putcell(TbL,Nrg,Mrg,'l',Str); +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Putrecmark.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Putrecmark.bin Binary files differnew file mode 100644 index 00000000..ae7f9955 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Putrecmark.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Putrecmark.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Putrecmark.sci new file mode 100755 index 00000000..ce63e542 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Putrecmark.sci @@ -0,0 +1,17 @@ +// 09.11.26 + +function Putrecmark(TbL,Nrg,Mrg,Dt) + if type(Dt)==10 + N=1; Pos=Dt; Str=''; + else + N=length(Dt); Pos='l'; Str='\hspace*{2mm}'; + end; + for I=1:N + Str=Str+'\recmark'; + if I<N + Str=Str+'\hspace{3mm}'; + end; + end; + Putcell(TbL,Nrg,Mrg,Pos,Str); +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Putrow.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Putrow.bin Binary files differnew file mode 100644 index 00000000..9e4117c2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Putrow.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Putrow.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Putrow.sci new file mode 100755 index 00000000..0c2c209a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Putrow.sci @@ -0,0 +1,41 @@ +// 09.12.06 +// 10.01.26 + +function Putrow(varargin) + Nargs=length(varargin); + TbL=varargin(1); + if type(TbL)~=15 + disp('Tabledata missing') + return; + end; + Row=varargin(2); + Nr=length(TbL(2))+1; + K=1; + Dpos=varargin(3); + for I=4:Nargs + if I-3>Nr + break; + end; + Dt=varargin(I); + if type(Dt)~=15 + Putcell(TbL,K,Row,Dpos,Dt); + K=K+1; + else + N=length(Dt); + Str=Dt(N); + Crng=[K,K+1]; + Pos=Dpos; + for J=1:(N-1) + Tmp=Dt(J); + if type(Tmp)==1 + Crng=[K,K+Tmp]; + end; + if type(Tmp)==10 + Pos=Tmp; + end; + end; + Putcell(TbL,Crng,Row,Pos,Str) + K=Crng(2); + end; + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Putrowexpr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Putrowexpr.bin Binary files differnew file mode 100644 index 00000000..f29ca390 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Putrowexpr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Putrowexpr.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Putrowexpr.sci new file mode 100755 index 00000000..0a3158cc --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Putrowexpr.sci @@ -0,0 +1,41 @@ +// 10.04.01 + +function Putrowexpr(varargin) + Nargs=length(varargin); + TbL=varargin(1); + if type(TbL)~=15 + disp('Tabledata missing') + return; + end; + Row=varargin(2); + Nr=length(TbL(2))+1; + K=1; + Dpos=varargin(3); + for I=4:Nargs + if I-3>Nr + break; + end; + Dt=varargin(I); + if type(Dt)~=15 + Dt='$'+Dt+'$'; + Putcell(TbL,K,Row,Dpos,Dt); + K=K+1; + else + N=length(Dt); + Str='$'+Dt(N)+'$'; + Crng=[K,K+1]; + Pos=Dpos; + for J=1:(N-1) + Tmp=Dt(J); + if type(Tmp)==1 + Crng=[K,K+Tmp]; + end; + if type(Tmp)==10 + Pos=Tmp; + end; + end; + Putcell(TbL,Crng,Row,Pos,Str) + K=Crng(2); + end; + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Putrowstr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Putrowstr.bin Binary files differnew file mode 100644 index 00000000..32f9675d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Putrowstr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Putrowstr.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Putrowstr.sci new file mode 100755 index 00000000..d006f3ec --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Putrowstr.sci @@ -0,0 +1,34 @@ +// 10.01.02 for v5 + +function Putrowstr(varargin) + Tb=varargin(1); + Nr=varargin(2); + Pos=varargin(3); + Str=varargin(4); + Sep=''; + if length(varargin)>4 + Sep=varargin(5); + end; + if Sep=='' + for I=1:length(Str) + Tmp=part(Str,I); + Putcell(Tb,I,Nr,Pos,Tmp); + end; + else + Ltr=''; + K=1; + for I=1:length(Str) + Tmp=part(Str,I); + if Tmp==Sep + Putcell(Tb,K,Nr,Pos,Ltr); + K=K+1; + Ltr=''; + else + Ltr=Ltr+Tmp; + end; + end; + if Ltr~='' + Putcell(Tb,K,Nr,Pos,Ltr); + end; + end; +endfunction;
\ No newline at end of file diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Puttrace.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Puttrace.bin Binary files differnew file mode 100644 index 00000000..30dda6f7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Puttrace.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Puttrace.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Puttrace.sci new file mode 100755 index 00000000..a4f1ad89 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Puttrace.sci @@ -0,0 +1,7 @@ +// 09.09.10 + +function Puttrace(Dt); + global TRACEDATA; + TRACEDATA=Dt; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ratiocmyk.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ratiocmyk.bin Binary files differnew file mode 100644 index 00000000..aa4a60ac --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ratiocmyk.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ratiocmyk.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ratiocmyk.sci new file mode 100644 index 00000000..839452f6 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ratiocmyk.sci @@ -0,0 +1,87 @@ +// 11.05.28 +// 15.05.03 + +function R=Ratiocmyk(Color) + if type(Color)==1 then + R=Color; + return; + end; + Tmp=grep(Color,','); + if length(Tmp)>0 + R=evstr(Tmp); + return; + end; + select Color + case 'greenyellow' then R=[0.15,0,0.69,0], + case 'yellow' then R=[0,0,1,0], + case 'goldenrod' then R=[0,0.1,0.84,0], + case 'dandelion' then R=[0,0.29,0.84,0], + case 'apricot' then R=[0,0.32,0.52,0], + case 'peach' then R=[0,0.5,0.7,0], + case 'melon' then R=[0,0.46,0.5,0], + case 'yelloworange' then R=[0,0.42,1,0], + case 'orange' then R=[0,0.61,0.87,0], + case 'burntorange' then R=[0,0.51,1,0], + case 'bittersweet' then R=[0,0.75,1,0.24], + case 'redorange' then R=[0,0.77,0.87,0], + case 'mahogany' then R=[0,0.85,0.87,0.35], + case 'maroon' then R=[0,0.87,0.68,0.32], + case 'brickred' then R=[0,0.89,0.94,0.28], + case 'red' then R=[0,1,1,0], + case 'orangered' then R=[0,1,0.5,0], + case 'rubinered' then R=[0,1,0.13,0], + case 'wildstrawberry' then R=[0,0.96,0.39,0], + case 'salmon' then R=[0,0.53,0.38,0], + case 'carnationpink' then R=[0,0.63,0,0], + case 'magenta' then R=[0,1,0,0], + case 'violetred' then R=[0,0.81,0,0], + case 'rhodamine' then R=[0,0.82,0,0], + case 'mulberry' then R=[0.34,0.9,0,0.02], + case 'redviolet' then R=[0.07,0.9,0,0.34], + case 'fuchsia' then R=[0.47,0.91,0,0.08], + case 'lavender' then R=[0,0.48,0,0], + case 'thistle' then R=[0.12,0.59,0,0], + case 'orchid' then R=[0.32,0.64,0,0], + case 'darkorchid' then R=[0.4,0.8,0.2,0], + case 'purple' then R=[0.45,0.86,0,0], + case 'plum' then R=[0.5,1,0,0], + case 'violet' then R=[0.79,0.88,0,0], + case 'royalpurple' then R=[0.75,0.9,0,0], + case 'blueviolet' then R=[0.86,0.91,0,0.04], + case 'periwinkle' then R=[0.57,0.55,0,0], + case 'cadetblue' then R=[0.62,0.57,0.23,0], + case 'cornflowerblue' then R=[0.65,0.13,0,0], + case 'midnightblue' then R=[0.98,0.13,0,0.43], + case 'navyblue' then R=[0.94,0.54,0,0], + case 'royalblue' then R=[1,0.5,0,0], + case 'blue' then R=[1,1,0,0], + case 'cerulean' then R=[0.94,0.11,0,0], + case 'cyan' then R=[1,0,0,0], + case 'processblue' then R=[0.96,0,0,0], + case 'skyblue' then R=[0.62,0,0.12,0], + case 'turquoise' then R=[0.85,0,0.2,0], + case 'tealblue' then R=[0.86,0,0.34,0.02], + case 'aquamarine' then R=[0.82,0,0.3,0], + case 'bluegreen' then R=[0.85,0,0.33,0], + case 'emerald' then R=[1,0,0.5,0], + case 'junglegreen' then R=[0.99,0,0.52,0], + case 'seagreen' then R=[0.69,0,0.5,0], + case 'green' then R=[1,0,1,0], + case 'forestgreen' then R=[0.91,0,0.88,0.12], + case 'pinegreen' then R=[0.92,0,0.59,0.25], + case 'limegreen' then R=[0.5,0,1,0], + case 'yellowgreen' then R=[0.44,0,0.74,0], + case 'springgreen' then R=[0.26,0,0.76,0], + case 'olivegreen' then R=[0.64,0,0.95,0.4], + case 'rawsienna' then R=[0,0.72,1,0.45], + case 'sepia' then R=[0,0.83,1,0.7], + case 'brown' then R=[0,0.81,1,0.6], + case 'tan' then R=[0.14,0.42,0.56,0], + case 'gray' then R=[0,0,0,0.5], + case 'black' then R=[0,0,0,1], + case 'white' then R=[0,0,0,0], + else + disp(Color+' may be user-defined'); + R=Color; // 15.05.03 + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/ReadOutData.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/ReadOutData.bin Binary files differnew file mode 100644 index 00000000..0b858b05 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/ReadOutData.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/ReadOutData.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/ReadOutData.sci new file mode 100644 index 00000000..c1656b15 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/ReadOutData.sci @@ -0,0 +1,92 @@ +// 14.10.10 +// 14.12.14 for 3d +// 15.01.03 changed ("start","end") +// 15.10.24 in case of list-length==1 + +function Out=ReadOutData(varargin) + global Fnameout + if length(varargin)==0 then + Fname=Rnameout; + else + Fname=varargin(1); + end + Fid=mopen(Fname,"rb"); + Gstr=[]; + Str=""; + Flg=1; + Tmp=mgetstr(1,Fid); + while 1==1 + if Tmp=="" then + break; + end; + C=ascii(Tmp); + if Tmp=="/"|C==13|C==10 then// / CR,LF + if Flg==1 then + if part(Str,1:5)=="start" then + Str="Tmp=[];"; + else + if part(Str,1:3)=="end" then + if Flg3d==0 then // 2014.12.14 + Str=Varname+"($+1)=Listplot(Tmp);"; + else + Str=Varname+"($+1)=Spaceline(Tmp);"; + end + else + if part(Str,1:2)=="[[" then + Str="Tmp=[Tmp,"+Str+"];"; + else + Varname=Str; + Str=Varname+"=list();" + Flg3d=-1; + end; + end; + end; + if Flg3d==-1 then // 2014.12.14 + Tmp1=mtlb_findstr(Str,"[["); + if length(Tmp1)>0 then + Tmp2=mtlb_findstr(Str,"]"); + Tmp3=part(Str,Tmp1:Tmp2(1)); + Tmp4=mtlb_findstr(Tmp3,",") + if length(Tmp4)==2 then + Flg3d=1; + else + Flg3d=0; + end + end + end + Gstr=[Gstr;Str]; + Str=""; + Flg=0; + end; + else + Str=Str+Tmp; + Flg=1; + end; + Tmp=mgetstr(1,Fid); + end; + mclose(Fid); + Out=[]; // 15.10.24 from + Var=""; + Ctr=0; + for J=1:size(Gstr,1) + St=Gstr(J,1); + Out=[Out;St]; + Tmp=strsplit(St,"="); + Tmp1=Tmp(1,1); + Tmp2=Tmp(2,1); + if grep(Tmp2,"list()") then + if Ctr==1 then + Out=[Out;Var+"="+Var+"(1)"]; + end; + Var=Tmp1; + Ctr=0; + end; + if grep(Tmp1,"$") then + Ctr=Ctr+1; + end; + end + if Ctr==1 then + Out=[Out;Var+"="+Var+"(1)"]; + end; // 15.10.24 upto + Out; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/ReadfromCindy.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/ReadfromCindy.bin Binary files differnew file mode 100644 index 00000000..e078ba2f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/ReadfromCindy.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/ReadfromCindy.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/ReadfromCindy.sci new file mode 100644 index 00000000..eaf9f6df --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/ReadfromCindy.sci @@ -0,0 +1,38 @@ +// s:2014,09.08 +// e:2014.09.26 +// e:2014.10.07 debugged, code changed +// e:2014.10.08 CR | LF + +function Out=ReadfromCindy(Fname) + Fid=mopen(Fname,"rb"); + Gline=list(); + Gpt=list(); + Gstr=[]; + Str=""; + Flg=1; + Tmp=mgetstr(1,Fid); + while 1==1 + if Tmp=="" then + if Flg==1 then + Gstr=[Gstr;Str]; + Str=""; + Flg=1; + end; + break; + end + C=ascii(Tmp); + if C==13|C==10 then// CR,LF + if Flg==1 then + Gstr=[Gstr;Str]; + Str=""; + Flg=0; + end; + else + Str=Str+Tmp; + Flg=1; + end; + Tmp=mgetstr(1,Fid); + end; + mclose(Fid); + Out=Gstr; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Readtextdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Readtextdata.bin Binary files differnew file mode 100644 index 00000000..05df3aa2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Readtextdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Readtextdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Readtextdata.sci new file mode 100755 index 00000000..7109f789 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Readtextdata.sci @@ -0,0 +1,160 @@ +// 08.05.22
+// 08.05.23
+// 08.05.26
+// 08.05.28
+// 10.04.25
+// 11.01.05
+// 13.10.06 format, debug
+// 14.01.20 debugged (Big data)
+
+function OutL=Readtextdata(varargin)
+ OutL=[];
+ Nargs=length(varargin);
+ Fname=varargin(1);
+ Suuji='0123456789.+-';
+ Sep='';
+ Hajime=[1,1];
+ N=%inf;
+ R=%inf;
+ D=-%inf; // 11.01.04
+ Fmt="%lf"; // 13.10.06
+ Flg=0;
+ for I=2:Nargs
+ Tmp=varargin(I);
+ if type(Tmp)==1
+ if Flg==0
+ Hajime=Tmp;
+ Flg=1
+ else
+ Owari=Tmp;
+ end
+ elseif mtlb_findstr(Tmp,'=')~=[]
+ execstr(Tmp);
+ else
+ if part(Tmp,1)=="%" // 13.10.06
+ Fmt=Tmp
+ else
+ Sep=Tmp;
+ if Tmp=='s' Sep=' '; end
+ if Tmp==',' Sep=','; end
+ if Tmp=='t' Sep=char(9); end
+ end
+ end
+ end
+ Owari=Hajime+[N-1,R-1];
+ Fid=mopen(Fname,'rb');
+ SL=[];
+ S='';
+ Lsp=0;
+ Flg=1;
+ Tmp=mgetstr(1,Fid);
+ while 1==1 // 2014.01.20
+ if Tmp=='' break; end
+ C=ascii(Tmp);
+ if C>=32 | C==9
+ if C==32
+ if Flg==1
+ Tmp='';
+ end
+ Flg=1
+ else
+ Flg=0;
+ end
+ S=S+Tmp;
+ Tmp=mgetstr(1,Fid);
+ else
+ SL=[SL;S];
+ S='';
+ Flg=1;
+ Tmp=mgetstr(1,Fid);
+ if Lsp==0
+ if C==10 // LF
+ Lsp=1;
+ elseif C==13
+ if ascii(Tmp)==10
+ Lsp=3; // CR LF
+ Tmp=mgetstr(1,Fid);
+ else
+ Lsp=2; // CR
+ end
+ else
+ break;
+ end
+ else
+ if C==10 | C==13
+ if Lsp==3
+ Tmp=mgetstr(1,Fid);
+ end
+ else
+ break
+ end
+ end
+ end
+ end
+ mclose(Fid);
+ if length(S)>0 then // 2013.10.06
+ SL=[SL;S]
+ end
+ for I=1:size(SL,1)
+ S=SL(I,1);
+ if S=='' continue; end
+ if mtlb_findstr(Suuji,Strop(1,S))~=[]
+ break
+ end
+ end
+ Hajime(1,1)=max(Hajime(1,1),I);
+ S=SL(Hajime(1),1);
+ if Sep==''
+ if length(mtlb_findstr(S,char(9)))~=0
+ Sep=char(9);
+ elseif length(mtlb_findstr(S,','))~=0
+ Sep=',';
+ else
+ Sep=' ';
+ end
+ end
+ Tmp=mtlb_findstr(S,Sep);
+ J=length(Tmp);
+ if Tmp(J)~=length(S)
+ J=J+1;
+ end
+ Owari(1,1)=min(size(SL,1),Owari(1));
+ Owari(1,2)=min(J,Owari(2));
+ S=SL(Owari(1),1);
+ while S==''
+ Owari(1,1)=Owari(1,1)-1;
+ S=SL(Owari(1),1);
+ end
+ OutL=[];
+ for J=Hajime(1):Owari(1)
+ S=SL(J,1);
+ if S==''
+ Tmp=%inf*ones(1,Owari(2)-Hajime(2)+1);
+ OutL=[OutL;Tmp];
+ continue
+ end
+ Tmp=Strop(1,S);
+ if mtlb_findstr(Suuji+Sep,Tmp)==[]
+ continue
+ end
+ SpL=[0,mtlb_findstr(S,Sep),length(S)+1];
+ Data=[];
+ for K=Hajime(2):Owari(2)
+ Tmp=Strop(SpL(K)+1:SpL(K+1)-1,S);
+ Tmp1=msscanf(Tmp,Fmt); // 13.10.06
+ Data=[Data,Tmp1];
+ end
+ OutL=[OutL;Data];
+ end;
+ if D~=-%inf // 11.01.04
+ Data=[];
+ for I=1:size(OutL,1)
+ Tmp=OutL(I,:);
+ if Tmp(1)<=D // 11.01.04
+ Tmp=[%inf,%inf];
+ end;
+ Data=[Data;Tmp];
+ end;
+ OutL=Data;
+ end; //
+endfunction;
diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Reflectdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Reflectdata.bin Binary files differnew file mode 100644 index 00000000..2269d9ad --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Reflectdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Reflectdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Reflectdata.sci new file mode 100755 index 00000000..837a5727 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Reflectdata.sci @@ -0,0 +1,51 @@ +// 08.05.25 Koshikawa +// 08.09.20 +// 15.04.12 + +function OutL=Reflectdata(varargin) + Nargs=length(varargin) + ML=varargin(1); + ML=Flattenlist(ML); + if Nargs==1 + PtA=[0,0];PtB=PtA; + else + Pts=varargin(2); + if length(Pts)==2 + PtA=Pts; PtB=PtA; + else + PtA=Pts(1,1:2); PtB=Pts(1,3:4); + end + end + OutL=[]; + for N=1:length(ML) + GL=Op(N,ML); + Out=[]; + for I=1:size(GL,1) + Tmp=GL(I,:); + X1=Tmp(1); + Y1=Tmp(2); + if Tmp==[%inf,%inf] + X2=X1; + Y2=Y1; + else + if PtA==PtB + X2=2*PtA(1)-X1; + Y2=2*PtA(2)-Y1; + else + U=PtB(1)-PtA(1); + V=PtB(2)-PtA(2); + A=PtA(1); + B=PtA(2); + X2=(U^2-V^2)/(U^2+V^2)*X1+2*U*V/(U^2+V^2)*Y1-2*V*(U*B-V*A)/(U^2+V^2); + Y2=2*U*V/(U^2+V^2)*X1-(U^2-V^2)/(U^2+V^2)*Y1+2*U*(U*B-V*A)/(U^2+V^2); + end + end + Out=[Out;X2,Y2]; + end; + OutL=Mixadd(OutL,Out); + end; + if length(OutL)==1 + OutL=Op(1,OutL); + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Rmmember.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Rmmember.bin Binary files differnew file mode 100644 index 00000000..1a99c6ca --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Rmmember.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Rmmember.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Rmmember.sci new file mode 100755 index 00000000..facea4d5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Rmmember.sci @@ -0,0 +1,20 @@ +// 11.01.14 New + +function Out=Rmmember(L,Rm) + if type(L)==1 + Out=[]; + end; + if type(L)==15 + Out=list(); + end; + for J=1:length(L) + Tmp=L(J); + if ~Member(Tmp,Rm) + Out($+1)=Tmp; + end; + end; + if type(L)==1 & size(L,1)==1 + Out=Out'; + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Rotate3data.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Rotate3data.bin Binary files differnew file mode 100644 index 00000000..c9391ec5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Rotate3data.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Rotate3data.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Rotate3data.sci new file mode 100755 index 00000000..9082290d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Rotate3data.sci @@ -0,0 +1,40 @@ +// 08.08.15 +// 14.03.23 debugged "center" +// 15.04.12 + +function Out=Rotate3data(varargin) +// Eps=10^(-4); + Nargs=length(varargin); + Pd3=varargin(1); + Pd3=Flattenlist(Pd3); // 15.04.12 + W1=varargin(2); + W2=varargin(3); + C=[0,0,0]; + if Nargs>=4 + C=varargin(4); + end; +// if Mixtype(Pd3)==1 // 15.04.12 from +// Pd3=MixS(Pd3); +// elseif Mixtype(Pd3)==3 +// Tmp=[]; +// for I=1:Mixlength(Pd3) +// Tmp=Mixjoin(Tmp,Mixop(I,Pd3)); +// end; +// Pd3=Tmp; +// end; + Out=[]; + for I=1:length(Pd3) + PD=Op(I,Pd3); + Ans=[]; + for J=1:size(PD,1) + P=PD(J,:); + Tmp=Rotate3pt(P,W1,W2,C); // 14.03.23 + Ans=[Ans;Tmp]; + end; + Out=Mixadd(Out,Ans); + end; + if length(Out)==1 + Out=Op(1,Out); + end; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Rotate3pt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Rotate3pt.bin Binary files differnew file mode 100644 index 00000000..35da0ed9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Rotate3pt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Rotate3pt.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Rotate3pt.sci new file mode 100755 index 00000000..910aa734 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Rotate3pt.sci @@ -0,0 +1,75 @@ +// 08.08.15 + +function Ans=Rotate3pt(varargin) + Eps=10^(-4); + Nargs=length(varargin); + P=varargin(1); + W1=varargin(2); + W2=varargin(3); + C=[0,0,0]; + if Nargs>=4 + C=varargin(4); + end; + if type(W2)==1 & length(W2)==1 + Ct=cos(W2); + St=sin(W2); + V3=1/norm(W1)*W1; + if V3(1)==0 + Tmp=[1,0,0]; + else + Tmp=[0,1,0]; + end; + W1=[Tmp(2)*V3(3)-Tmp(3)*V3(2),Tmp(3)*V3(1)-Tmp(1)*V3(3),Tmp(1)*V3(2)-Tmp(2)*V3(1)]; + V1=1/norm(W1)*W1; + V2=[V3(2)*V1(3)-V3(3)*V1(2),V3(3)*V1(1)-V3(1)*V1(3),V3(1)*V1(2)-V3(2)*V1(1)]; + else + Tmp=[W1(2)*W2(3)-W1(3)*W2(2),W1(3)*W2(1)-W1(1)*W2(3),W1(1)*W2(2)-W1(2)*W2(1)]; + if norm(Tmp)<Eps + Ans=P; + return; + end; + V1=1/norm(W1)*W1; + Ns=V1(1)*W2(1)+V1(2)*W2(2)+V1(3)*W2(3); + Tmp=W2-Ns*V1; + V2=1/norm(Tmp)*Tmp; + Tmp=[V1(2)*V2(3)-V1(3)*V2(2),V1(3)*V2(1)-V1(1)*V2(3),V1(1)*V2(2)-V1(2)*V2(1)]; + V3=1/norm(Tmp)*Tmp; + Ct=Ns/norm(W2); + St=sqrt(1-Ct^2); + end; + if norm(Tmp)<Eps + Ans=P; + return; + end; + V1x=V1(1); V1y=V1(2); V1z=V1(3); + V2x=V2(1); V2y=V2(2); V2z=V2(3); + V3x=V3(1); V3y=V3(2); V3z=V3(3); + if Mixtype(P)~=1 + PtL=P; + else + PtL=MixS(P); + end; + Ans=[]; + for N=1:Mixlength(PtL) + P=Mixop(N,PtL); + if P(1)==%inf + Ans=Mixadd(Ans,[%inf,%inf,%inf]); + continue; + end; + x=P(1)-C(1); y=P(2)-C(2); z=P(3)-C(3); + X=((V1x*Ct+V2x*St)*V1x+(-V1x*St+V2x*Ct)*V2x+V3x^2)*x; + X=X+((V1x*Ct+V2x*St)*V1y+(-V1x*St+V2x*Ct)*V2y+V3x*V3y)*y; + X=X+((V1x*Ct+V2x*St)*V1z+(-V1x*St+V2x*Ct)*V2z+V3x*V3z)*z; + Y=((V1y*Ct+V2y*St)*V1x+(-V1y*St+V2y*Ct)*V2x+V3x*V3y)*x; + Y=Y+((V1y*Ct+V2y*St)*V1y+(-V1y*St+V2y*Ct)*V2y+V3y^2)*y; + Y=Y+((V1y*Ct+V2y*St)*V1z+(-V1y*St+V2y*Ct)*V2z+V3y*V3z)*z; + Z=((V1z*Ct+V2z*St)*V1x+(-V1z*St+V2z*Ct)*V2x+V3x*V3z)*x; + Z=Z+((V1z*Ct+V2z*St)*V1y+(-V1z*St+V2z*Ct)*V2y+V3y*V3z)*y; + Z=Z+((V1z*Ct+V2z*St)*V1z+(-V1z*St+V2z*Ct)*V2z+V3z^2)*z; + Ans=Mixadd(Ans,C+[X,Y,Z]); + end; + if Mixlength(Ans)==1 + Ans=Mixop(1,Ans); + end; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Rotatedata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Rotatedata.bin Binary files differnew file mode 100644 index 00000000..fda8e518 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Rotatedata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Rotatedata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Rotatedata.sci new file mode 100755 index 00000000..845cac17 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Rotatedata.sci @@ -0,0 +1,39 @@ +// 08.05.23 Koshikawa +// 08.09.20 +// 15.04.12 + +function OutL=Rotatedata(varargin) + Nargs=length(varargin); + ML=varargin(1); + ML=Flattenlist(ML); + Theta=varargin(2); + if Nargs==2, + Pt=[0,0] + else + Pt=varargin(3); + end + Cx=Pt(1);Cy=Pt(2); + OutL=[]; + for N=1:length(ML) + GL=Op(N,ML); + Out=[]; + for I=1:size(GL,1) + Tmp=GL(I,:); + X1=Tmp(1); + Y1=Tmp(2); + if Tmp==[%inf,%inf] + X2=X1; + Y2=Y1; + else + X2=Cx+(X1-Cx)*cos(Theta)-(Y1-Cy)*sin(Theta); + Y2=Cy+(X1-Cx)*sin(Theta)+(Y1-Cy)*cos(Theta); + end; + Out=[Out;X2,Y2]; + end; + OutL=Mixadd(OutL,Out); + end; + if length(OutL)==1 + OutL=Op(1,OutL); + end; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Roundstr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Roundstr.bin Binary files differnew file mode 100644 index 00000000..dd5656fd --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Roundstr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Roundstr.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Roundstr.sci new file mode 100755 index 00000000..d14f3b3a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Roundstr.sci @@ -0,0 +1,7 @@ +// 10.11.04 + +function Out=Roundstr(X,Ni,Nf) + Na=Ni+1+Nf; + Fmt='%'+string(Na)+'.'+string(Nf)+'f'; + Out=sprintf(Fmt,X); +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Scaledata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Scaledata.bin Binary files differnew file mode 100644 index 00000000..7aeb7385 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Scaledata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Scaledata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Scaledata.sci new file mode 100755 index 00000000..7e563f4b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Scaledata.sci @@ -0,0 +1,39 @@ +// 08.05.25 Koshikawa +// 08.09.20 +// 15.04.12 + +function OutL=Scaledata(varargin) + Nargs=length(varargin); + ML=varargin(1); + ML=Flattenlist(ML); + A=varargin(2); + B=varargin(3); + if Nargs==3 + Pt=[0,0]; + else + Pt=varargin(4); + end + OutL=[]; + for N=1:length(ML) + GL=Op(N,ML); + Out=[]; + for I=1:size(GL,1) + Tmp=GL(I,:); + X1=Tmp(1); + Y1=Tmp(2); + if Tmp==[%inf,%inf] + X2=X1; + Y2=Y1; + else + X2=Pt(1)+A*(X1-Pt(1)); + Y2=Pt(2)+B*(Y1-Pt(2)); + end + Out=[Out;X2,Y2]; + end; + OutL=Mixadd(OutL,Out); + end; + if length(OutL)==1 + OutL=Op(1,OutL); + end; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sectionview.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sectionview.bin Binary files differnew file mode 100644 index 00000000..4ebf14d1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sectionview.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sectionview.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sectionview.sci new file mode 100755 index 00000000..e918e475 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sectionview.sci @@ -0,0 +1,14 @@ +// 09.09.10 +// 09.10.12 remove:Uveq, add:Glist + +function Out=Sectionview(PtA,Vec,Fd,Glist,Np,Eps) + Uv=1/norm(Vec)*Vec; + Nv=[Uv(2),-Uv(1),0]; + G1=Sfcutdata(Fd,Mix(Nv,PtA),Np); + G2=Spaceline([PtA,PtA+10*Uv]); + Tmp=Mixjoin(G1,G2,Glist); + Tmp1=Viewfrom(Nv,Tmp); + Out=Tmp; +endfunction; + + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setangle.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setangle.bin Binary files differnew file mode 100644 index 00000000..4b102f32 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setangle.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setangle.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setangle.sci new file mode 100755 index 00000000..2a4a3c95 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setangle.sci @@ -0,0 +1,17 @@ +// 08.07.11 +// 08.08.12 +// 09.02.27 + +function Setangle(varargin) + global PHI THETA; + Nargs=length(varargin); + if Nargs<2 + Mixdisp(Mix('theta=',THETA*180/%pi)); + Mixdisp(Mix('phi=',PHI*180/%pi)); + return; + else + PHI=varargin(2)*%pi/180; + THETA=varargin(1)*%pi/180; + end +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setarrow.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setarrow.bin Binary files differnew file mode 100644 index 00000000..7ea694d9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setarrow.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setarrow.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setarrow.sci new file mode 100755 index 00000000..8f9d6053 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setarrow.sci @@ -0,0 +1,35 @@ +// 08.05.31 +// 09.02.27 + +function Setarrow(varargin) + global YaSize YaAngle YaPosition YaThick YaStyle; + Nargs=length(varargin); + if Nargs==0 + Mixdisp(Mix('Size=',YaSize)); + Mixdisp(Mix('Angle=',YaAngle)); + Mixdisp(Mix('Position=',YaThick)); + Mixdisp(Mix('Style=',YaStyle)); + return; + end; + Flg=0; + for I=1:Nargs + Tmp=varargin(I); + if type(Tmp)==1 + Flg=Flg+1; + if Flg==1 YaSize=Tmp; end + if Flg==2 + if Tmp<5 + YaAngle=18*Tmp; + else + YaAngle=Tmp; + end + end + if Flg==3 YaPosition=Tmp; end + if Flg==4 YaThick=Tmp; end + end + if type(Tmp)==10 + YaStyle=Tmp + end + end +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setax.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setax.bin Binary files differnew file mode 100644 index 00000000..55e4fb8c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setax.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setax.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setax.sci new file mode 100755 index 00000000..5fab30e2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setax.sci @@ -0,0 +1,102 @@ +// 08.08.08 +// 09,02.27 + +function Out=Setax(varargin) + global ZIKU XNAME XPOS YNAME YPOS ONAME OPOS ARROWSIZE; + Nargs=length(varargin); + if Nargs==0 + if ZIKU=='line' + Tmp=',' + else + Tmp='(Arrowsize='+string(ARROWSIZE)+'),' + end; + Str=... + ZIKU+Tmp+... + XNAME+','+XPOS+','+YNAME+','+... + YPOS+','+ONAME+','+OPOS; + Out=Str; + disp(Str); + return; + end; + ArgL=[]; + Is=1; + Tmp=varargin(1); + if type(Tmp)==1 & length(Tmp)==1 + Is=varargin(1); + ArgL=[]; + for I=1:Is-1 + ArgL=[ArgL,'']; + end + for I=2:Nargs + ArgL=[ArgL,varargin(I)]; + end + else + if Nargs==1 + ArgL=[varargin(1)]; + else + Tmp=varargin(2); + if type(Tmp)==1 & length(Tmp)==1 + ARROWSIZE=Tmp; + ArgL=[varargin(1)]; + for I=3:Nargs + ArgL=[ArgL,varargin(I)]; + end; + else + ArgL=[]; + for I=1:Nargs + ArgL=[ArgL,varargin(I)]; + end; + end + end + end + for I=size(ArgL,2)+1:7 + ArgL=[ArgL,'']; + end + Zk=ArgL(1); + if Zk~='' + ZL=msscanf(Zk,'%c%f'); + Zk=ZL(1); + if length(ZL)>1 // modified at 080807 + ARROWSIZE=ZL(2); + end + end + Xn=ArgL(2); Xp=ArgL(3); + Yn=ArgL(4); Yp=ArgL(5); + Genn=ArgL(6); Genp=ArgL(7); + if Zk~='' + C=Zk; + if C=='a' + ZIKU='arrow'; + else + ZIKU='line'; + end + end + if Xn~='' + XNAME='$'+Xn+'$' + end + if Xp~='' + XPOS=Xp + end + if Yn~='' + YNAME='$'+Yn+'$' + end + if Yp~='' + YPOS=Yp + end + if Genn~='' + ONAME=Genn + end + if Genp~='' + OPOS=Genp + end + if ZIKU=='line' + Tmp=',' + else + Tmp='(Arrowsize='+string(ARROWSIZE)+'),' + end; + Str=... + ZIKU+Tmp+... + XNAME+','+XPOS+','+YNAME+','+... + YPOS+','+ONAME+','+OPOS; + Out=Str; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setcolor.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setcolor.bin Binary files differnew file mode 100644 index 00000000..a6d15d9d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setcolor.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setcolor.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setcolor.sci new file mode 100644 index 00000000..51b8e0c3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setcolor.sci @@ -0,0 +1,36 @@ +// 11.05.28 +// 11.08.24 +// 15.05.03 + +function Setcolor(varargin) + global Wfile FID; + Nargs=length(varargin); + Color='black'; + Kosa=1; + Color=varargin(1); + if length(varargin)>1 + Kosa=varargin(2); + end; + Iro=Ratiocmyk(Color); + if type(Iro)==10 + Str='\color{'+Iro+"}%"; + else + if size(Iro,2)>3 + Str='\color[cmyk]{'; + else + Str='\color[rgb]{'; + end; + for J=1:size(Iro,2) + Str=Str+string(Kosa*Iro(J)); + if J<size(Iro,2) + Str=Str+','; + end; + end; + Str=Str+'}%'; + end; + if Wfile=='default' + mprintf('%s\n',Str); + else + mfprintf(FID,'%s\n',Str); + end +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setcounter.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setcounter.bin Binary files differnew file mode 100644 index 00000000..e8d09380 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setcounter.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setcounter.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setcounter.sci new file mode 100755 index 00000000..4b8b932b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setcounter.sci @@ -0,0 +1,13 @@ +// 09.09.10 + +function Setcounter(varargin) + global GCOUNTER; + Nargs=length(varargin); + if Nargs==0 + N=1; + else + N=varargin(1); + end; + GCOUNTER=N; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setmark.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setmark.bin Binary files differnew file mode 100644 index 00000000..b50381fd --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setmark.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setmark.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setmark.sci new file mode 100755 index 00000000..ae713f4e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setmark.sci @@ -0,0 +1,43 @@ +// 09.11.26 +// 09.12.06 + +function Setmark(); + Xminnow=Xmin(); Xmaxnow=Xmax(); + Yminnow=Ymin(); Ymaxnow=Ymax(); + Setwindow([-1.5,1.5],[-2.3,2.3]); + F1=Framedata(); + F2=Paramplot('[1.5*cos(t),2.3*sin(t)]','t=[0,2*%pi]','N=25'); + Texcom('\def\recmark{'); + Texcom('\begin{minipage}[c]{3mm}'); + Beginpicture('1mm'); + Shade(F1); + Drwline(F1); + Endpicture(0); + Texcom(''); + Texcom('\end{minipage}'); + Texcom('}'); + + Texcom('\def\cirmark{'); + Texcom('\begin{minipage}[c]{3mm}'); + Beginpicture('1mm'); + Shade(F2); + Drwline(F2); + Endpicture(0); + Texcom(''); + Texcom('\end{minipage}'); + Texcom('}'); + + Texcom('\def\dashmark#1{'); + Texcom('\begin{minipage}[c]{3mm}'); + Beginpicture('1mm'); + Setpen(0.5); + Dashline(F2,0.5,0.5); + Fontsize('ss'); + Letter([0,0],'c','#1'); + Endpicture(0); + Texcom(''); + Texcom('\end{minipage}'); + Texcom('}'); + Setwindow([Xminnow,Xmaxnow],[Yminnow,Ymaxnow]); +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setmarklen.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setmarklen.bin Binary files differnew file mode 100644 index 00000000..1ad13b66 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setmarklen.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setmarklen.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setmarklen.sci new file mode 100755 index 00000000..a17c9e95 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setmarklen.sci @@ -0,0 +1,17 @@ +// +// 09.02.27 +// 14.03.05 MARKLEN + +function Setmarklen(varargin) + global MARKLEN MARKLENInit MARKLENNow; + Nargs=length(varargin); + if Nargs==0 + Tmp=MARKLEN/MARKLENInit; + Tmp=round(Tmp*100)/100; + disp(Tmp); + return; + end; + Size=varargin(1); + MARKLEN=MARKLENInit*Size; + MARKLENNow=MARKLEN; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setobjdecimals.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setobjdecimals.bin Binary files differnew file mode 100644 index 00000000..af675f9c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setobjdecimals.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setobjdecimals.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setobjdecimals.sci new file mode 100644 index 00000000..2ee06cbb --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setobjdecimals.sci @@ -0,0 +1,8 @@ +// s : 2014.06.22 + +function Setobjdecimals(n) + global OBJFMT; + s1=string(n); + s2=string(n+3); + OBJFMT="%"+s2+"."+s1+"f"; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setobjscale.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setobjscale.bin Binary files differnew file mode 100644 index 00000000..5ae9c620 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setobjscale.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setobjscale.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setobjscale.sci new file mode 100644 index 00000000..22f13c4d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setobjscale.sci @@ -0,0 +1,6 @@ +// s : 2014.06.22 + +function Setobjscale(scale) + global OBJSCALE; + OBJSCALE=scale; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setorigin.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setorigin.bin Binary files differnew file mode 100644 index 00000000..05b3c3e2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setorigin.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setorigin.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setorigin.sci new file mode 100755 index 00000000..62a1f624 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setorigin.sci @@ -0,0 +1,14 @@ +// +// 09.02.27 + +function Setorigin(varargin) + global GENTEN; + Nargs=length(varargin); + if Nargs==0 + disp(GENTEN); + return; + end; + Pt=varargin(1); + GENTEN=Pt; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setpen.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setpen.bin Binary files differnew file mode 100644 index 00000000..fd0d6bd7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setpen.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setpen.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setpen.sci new file mode 100755 index 00000000..b3f0cbad --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setpen.sci @@ -0,0 +1,11 @@ +function Setpen(Width) + global Wfile FID PenThick PenThickInit; + PenThick=round(PenThickInit*Width); + Str='\linethickness{'+string(PenThick/1000)+'in}%'; + if Wfile=='default' + mprintf('%s\n',Str); + else + mfprintf(FID,'%s\n',Str); + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setpers.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setpers.bin Binary files differnew file mode 100644 index 00000000..07e56733 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setpers.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setpers.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setpers.sci new file mode 100755 index 00000000..455551bb --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setpers.sci @@ -0,0 +1,16 @@ +// 08.08.12 +// 08.08.15 + +function Setpers(varargin) + global FocusPoint EyePoint; + Nargs=length(varargin); + if Nargs==0 + Mixdisp(Mix('FocusPoints=',FocusPoint)); + Mixdisp(Mix('EyePoint=',EyePoint)); + return; + else + FocusPoint=varargin(1); + EyePoint=varargin(2); + end; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setpt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setpt.bin Binary files differnew file mode 100644 index 00000000..43792ee3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setpt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setpt.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setpt.sci new file mode 100755 index 00000000..a3b86b01 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setpt.sci @@ -0,0 +1,16 @@ +// +// 09.02.27 + +function Setpt(varargin) + global TenSize TenSizeInit; + Nargs=length(varargin); + if Nargs==0 + Tmp=TenSize/TenSizeInit; + Tmp=round(Tmp*100)/100; + disp(Tmp); + return; + end; + Size=varargin(1); + TenSize=TenSizeInit*Size; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setscaling.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setscaling.bin Binary files differnew file mode 100644 index 00000000..85da2aca --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setscaling.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setscaling.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setscaling.sci new file mode 100755 index 00000000..1d4868c9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setscaling.sci @@ -0,0 +1,28 @@ +function Out=Setscaling(varargin) + global LOGX LOGY SCALEX SCALEY; + Nargs= length(varargin) + if Nargs==0 + Out=[SCALEY,LOGX,LOGY]; + return; + end; + for I=1:Nargs + Tmp=varargin(I); + if type(Tmp)==1 + SCALEY=Tmp; + end; + if type(Tmp)==10 + if Tmp=="l" + LOGX=0; + LOGY=1; + elseif Tmp=="ll" + LOGX=1 + LOGY=1 + else + LOGX=0 + LOGY=0 + end; + end; + end; + Out=[SCALEY,LOGX,LOGY]; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/SetstereoL.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/SetstereoL.bin Binary files differnew file mode 100644 index 00000000..4e097b75 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/SetstereoL.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/SetstereoL.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/SetstereoL.sci new file mode 100755 index 00000000..cb6c79ae --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/SetstereoL.sci @@ -0,0 +1,12 @@ +// 08.08.12 +// 08.09.21 +// 09.03.09 + +function SetstereoL(R,T,P,H) + X=R*sin(T*%pi/180)*cos(P*%pi/180); + Y=R*sin(T*%pi/180)*sin(P*%pi/180); + Z=R*cos(T*%pi/180); + Eye=[X+H/2*Y/(X^2+Y^2),Y-H/2*X/(X^2+Y^2),Z]; + Setpers([0,0,0],Eye); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/SetstereoR.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/SetstereoR.bin Binary files differnew file mode 100644 index 00000000..bf25b018 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/SetstereoR.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/SetstereoR.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/SetstereoR.sci new file mode 100755 index 00000000..ff9de892 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/SetstereoR.sci @@ -0,0 +1,10 @@ +// 08.08.12 + +function SetstereoR(R,T,P,H) + X=R*sin(T*%pi/180)*cos(P*%pi/180); + Y=R*sin(T*%pi/180)*sin(P*%pi/180); + Z=R*cos(T*%pi/180); + Eye=[X-H/2*Y/(X^2+Y^2),Y+H/2*X/(X^2+Y^2),Z]; + Setpers([0,0,0],Eye); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setunitlen.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setunitlen.bin Binary files differnew file mode 100644 index 00000000..455d977f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setunitlen.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setunitlen.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setunitlen.sci new file mode 100755 index 00000000..84ea4d60 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setunitlen.sci @@ -0,0 +1,78 @@ +// 08.12.06 +// 08.12.18 +// 09.02.20 +// 09.02.27 +// 14.03.05 MARKLEN +// 17.03.19 VL=[] => VL=""; + +function Out=Setunitlen(varargin) + global FID XMIN XMAX YMIN YMAX ULEN + global MilliIn MARKLEN MARKLENNow PenThickInit; + if length(varargin)==0 + Out=ULEN; + disp(ULEN); + return; + end; + Ul=varargin(1); + Dx=XMAX-XMIN; + Dy=YMAX-YMIN; + Sym='.0123456789 +-*/'; + Tmp=ascii(Sym); + SL=Sym; + OL='+-*/'; + if Ul~='' + ULEN=Ul; + end; + Out=ULEN; + Is=1; + VL=""; // 17.03.19 + Ucode=ascii(ULEN); + for I=1:length(Ucode) + C=char(Ucode(I)); + if mtlb_findstr(SL,C)~=[] + if mtlb_findstr(OL,C) + Str=char(Ucode(Is:(I-1))); + VL=VL+Str+C; + Is=I+1; + end + else + Unit=char(Ucode(I:(I+1))); + Str=char(Ucode(Is:(I-1))); + VL=VL+Str; + break; + end; + end; + Valu=evstr(VL); + Str=string(Valu); + ULEN=Str+Unit; + Out=ULEN; + if Unit=='cm' + MilliIn=1000/2.54*Valu; + end + if Unit=='mm' + MilliIn=1000/2.54*Valu/10; + end + if Unit=='in' + MilliIn=1000*Valu; + end + if Unit=='pt' + MilliIn=1000/72.27*Valu; + end + if Unit=='pc' + MilliIn=1000/6.022*Valu; + end + if Unit=='bp' + MilliIn=1000/72*Valu; + end + if Unit=='dd' + MilliIn=1000/1238/1157/72.27*Valu; + end + if Unit=='cc' + MilliIn=1000/1238/1157/72.27*12*Valu;p + end + if Unit=='sp' + MilliIn=1000/72.27/65536*Valu/10; + end + MARKLEN=MARKLENNow*1000/2.54/MilliIn; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setversion.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setversion.bin Binary files differnew file mode 100644 index 00000000..a2e35ff2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setversion.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setversion.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setversion.sci new file mode 100755 index 00000000..92883d5a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setversion.sci @@ -0,0 +1,182 @@ +// +// 08.11.12 V3.0.2b +// 08.11.26 V3.0.2c +// 08.12.08 V3.0.2d +// 08.12.11 v3.0.2e +// 08.12.17 v3.0.3a +// 08.12.21 v3.0.3b +// 08.12.30 v3.0.3c +// 09.01.15 v3.0.3d +// 09.02.20 v3.0.3e +// 09.02.27 v3.0.4a +// 09.02.27 v3.0.4b +// 09.03.06 v3.0.4c +// 09.03.09 v3.0.4d +// 09.03.10 v3.0.4e +// 09.03.12 v3.0.5a +// 09.05.12 v3.0.5b +// 09.05.18 v3.0.5c +// 09.05.27 v3.0.6a +// 09.06.01 v3.0.6b +// 09.06.05 v3.0.6c +// 09.06.13 v3.0.6d +// 09.06.24 v3.0.6e +// 09.08.12 v3.0.7a +// 09.08.13 v3.0.7b +// 09.08.23 v3.0.8a +// 09.09.10 v3.0.9a +// 09.09.18 v3.1.0a +// 09.09.21 v3.1.0b +// 09.09.25 v3.1.1a +// 09.09.25 v3.1.1b +// 09.10.01 v3.1.1c +// 09.10.03 v3.1.2a +// 09.10.04 v3.1.3a +// 09.10.05 v3.1.3b +// 09.10.08 v3.1.3c +// 09.10.09 v3.1.4a +// 09.10.11 v3.1.5a + +// Structure changed +// 09.10.11 v3.2.0beta +// 09.10.31 v3.2.0beta1031 + +// 09.11.01 v3.2.0a +// 09.11.04 v3.2.1a +// 09.11.12 v3.2.1b +// 09.11.14 v3.2.1c +// 09.11.14 v3.2.1d +// 09.11.21 v3.2.1e +// 09.11.26 v3.2.2a +// 09.12.05 v3.2.2b +// 09.12.06 v3.2.3a +// 09.12.17 v3.2.3b +// 09.12.24 v3.2.3c +// 09.12.25 v3.3.1a +// 09.12.26 v3.3.1b +// 09.12.28 v3.3.1c +// 09.12.31 v3.3.1d ( for v5.2.0) +// 10.01.01 v3.4.0alpha +// 10.01.05 v3.4.0beta +// 10.01.10 v3.4.1a +// 10.01.12 v3.4.1b +// 10.01.16 v3.4.1c +// 10.01.21 v3.4.2a +// 10.02.01 v3.4.2b +// 10.02.07 v3.4.2c +// 10.02.12 v3.4.2d +// 10.02.14 v3.4.2e +// 10.02.16 v3.4.3a +// 10.02.20 v3.4.3b Windisp +// 10.02.24 v3.4.3c Execmd +// 10.03.07 v3.4.3d +// 10.03.28 v3.4.4a +// 10.03.28 v3.4.4b +// 10.04.03 v3.4.5a +// 10.04.10 v3.4.5b +// 10.04.16 v3.4.6a +// 10.04.24 v3.4.6b +// 10.04.24 v3.4.6b1 +// 10.04.27 v3.4.7a +// 10.05.03 v3.4.7b +// 10.05.09 v3.4.7c Makeskeletondata, Makeskeletonpersdata +// 10.05.12 v3.4.7d Texfor +// 10.05.15 v3.4.8a Texctr +// 10.08.15 v3.5.0a Phcutoffdata +// 10.09.02 Dropnumlistcrv +// 10.10.20 Texfor +// 10.11.04 Hatchdata, Roundstr +// 10.11.13 v3.5.0b Flattenlist added. Dashline, Invdashline changed +// 10.12.02 v3.5.0c Lineplot changed +// Makecurves debugged +// Enclosing changed (Output ) +// 11.01.07 v3.5.1a Readtextdata is changed +// Dividegraphiics, Splinedata are changed +// Facesdata is debugged (HiddenL) +// Rmmember added +// 11.04.13 Nohiddenpers2, Htickmark, Vtickmark are debugged +// 11.05.29 v4.0.0a ketpict2e released, too +// Setcolor, Ratiocmyk +// 11.11.02 v4.0.0b Joingraphics changed +// 11.12.12 v4.0.0c Skeletonparadata... changed (for various list ) +// 11.12.18 Framedata (compliant for list ) +// 12.01.07 v4.0.1a Arrowline, Arrowhead ( kirikomi ) +// 12.04.16 v4.0.1b Arrowhead debugged +// 12.08.26 v4.0.1c Arrowline debugged +// 13.05.03 v4.2a Tabledata, Pointdata changed +// Dividetable, Partframe added +// 13.05.17 v4.2_1a Arrowhead debugged +// Openfile, Closefile, Ketinit() changed +// 13.08.13 v4.2_2 Cancoordpara added +// 13.10.06 v4.2_2a Readtextdata debugged and changed (Format) +// 13.11.02 v4.3_0 __ added to local variables +// Openfile, Closefile changed +// 13.11.02 v4.3_0a Closefile debugged +// 13.11.13 v4.3_0b Arrowhead, Arrowheaddata debugged +// 13.12.03 v4.3_1 Bowname changed, Meetpoint debugged +// 14.01.10 v4.3_1a Readtextdata debugged (Big data) +// 14.03.05 v4.3_1b MARKLEN separated from MEMORI +// 14.03.23 Rotate3data debugged +// 14.03.30 v43_1c Facesdata debugged +// 14.06.09 v43_2a Phcutdata debugged (cause unknown ) +// 14.06.22 v5_0_1a Obj macros added +// 14.06.28 v5_0_1b debug cuspsplit (para, pers) +// 14.07.05 v5_0_1c debug (warning ) Makeskeletondata, Makeskeletonpersdata +// debug Makexybdy (by Kitahara) +// 14.07.18 v5_0_1d Objsurf, Objthicksurf changed ( input argument ) +// 14.08.26 V5_1_0a Symbdata, Symb3data, Objsymb added +// Objcurve debugged +// 14.09.07 v5_1_0b Objjoin added +// 14.09,08 v5_1_1a ReadfromCindy added +// 14.09.16 v5_1_1b WritetoCindy added +// 14.09.26 v5_1_1c Derivative changed ( to numderivative) +// 14.09.30 v5_1_1d Assignrep changed +// 14.10.08 v5_1_1e ReadfromCindy debugged +// 14.10.08 v5_1_1f ReadfromCindy supported CF|LF +// 14.10.10 v5_1_2a ReadOutdata, WritOutData added +// 14.10.24 v5_1_2b Derivative changed ( derivative or numderivative used a.t scilab version) +// Plotdata,Paramplot,Circledata changed ( N,D,E,R => N__, ... ) +// 14.12.11 v5_1_3a Assign changed (replaced only variable name ) +// Plotdata changed (and debugged ), Paramplot changed +// 12.14 WriteOutData,ReadOutData changed ( for 3d ) +// 14.12.28 v5_1_3b Assign debugged +// 15.01.01 v5_1_4a Bezierpt,Bezier added +// 15.01.03 v5_1_4b ReadOutData changed ("start","end") +// 15.02.08 v5_1_5a Bezier pt changed (available for 3d) +// 15.02.18 v5_1_5b Assign debugged +// 15.02.19 v5_1_5c Assign again debugged +// 15.04.10 v5_1_5d EnclosingS debugged +// Translatedata, Rotatedata, Reflectdata, Scaledate changed (Flattenlist) +// 15.04.18 v5_1_5e Assign debugged +// 15.05.03 v5_1_6a Setcolor,Ratiocmyk changed ( for cmyk, rgb, mycolor ) +// 15.05.04 Definecolor added +// 15.06.11 v5_1_6b Arrowline, Arrowhead debugged +// 15.06.14 v5_1_6c Skeletonpara3data debugged +// Arrowhead changed (0.2 -> 0.1 ) +// 15.10.19 v5_1_6d Skeletonpara3data debugged +// 15.10.23 v5_1_6e ReadOutData changed ( for the lenth of PD is 1 ) +// 15.10.23 Meetwindow changed ( horner non used ) +// 15.10.24 Arrowline debugged +// 15.10.23 v5_1_6f WriteOutData changed ( endmark //// ) +// 15.11.05 v5_1_6g WriteOutData changed +// 15.11.16 v5_2_1 Ovaldata changed ( Rc ) +// Plotdata, Paramplot, Deqplot +// number of points changed to number of intervals +// 15.12.08 v5_2_2 Deqplot debugged ( option __) +// 16.08.20 v5_2_3 Spacecurve debugged ( N ) +// 16.10.09 v5_2_3a Objcurve changed ( N of Sapcecurve) +// 16.10.09 v5_2_3b Kyoukai changed ( Eps =>10^(-4)) +// 16.10.09 v5_2_3c Enclosing, Kyoukai changed ( to make it a closed curve)) +// 16.12.13 v5_2_3d Plotdata,Paramplot,Spacecurve changed ( for only one point) +// 16.12.24 v5_2_3e Makeskeletondata debugged ( for nul interval) +// 16.12.29 v5_2_3f Anglemark, MeetWindow debugged ( for nul interval) +// 16.12.29 v5_2_3g Shade changed (for colorname or colorcode) +// 17.03.19 v5_2_3h Openpicture,Setunitlen debugged ( for 6 ) +// 17.05.21 v5_2_3i Evlptablepara changed (division number) + + +function Setversion() + global THISVERSION; + THISVERSION='v5_2_3i'; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setwindow.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setwindow.bin Binary files differnew file mode 100644 index 00000000..0fdd661f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setwindow.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setwindow.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setwindow.sci new file mode 100755 index 00000000..fb72097b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Setwindow.sci @@ -0,0 +1,44 @@ +// +// 09.02.27 +// 10.04.25 + +function Out=Setwindow(varargin) + global XMIN XMAX YMIN YMAX + Nargs=length(varargin); + if Nargs==0 + Out=[XMIN,XMAX,YMIN,YMAX]; + disp(Out); + return; + end; + if Nargs==1 + Dt=varargin(1); + if type(Dt)==1 + Dt=list(Dt); + end; + Xm=%inf; XM=-%inf; + Ym=%inf; YM=-%inf; + for I=1:length(Dt) + GL=Dividegraphics(Dt(I)); + for J=1:length(GL) + G=GL(J); + Tmp=min(G(:,1)); Xm=min(Xm,Tmp); + Tmp=max(G(:,1)); XM=max(XM,Tmp); + Tmp=min(G(:,2)); Ym=min(Ym,Tmp); + Tmp=max(G(:,2)); YM=max(YM,Tmp); + end; + end; + XMIN=Xm; XMAX=XM; + YMIN=Ym; YMAX=YM; + end; + if Nargs==2 + RgX=varargin(1); + RgY=varargin(2); + XMIN=RgX(1); XMAX=RgX(2); + YMIN=RgY(1); YMAX=RgY(2); + end + if Nargs==4 + XMIN=varargin(1); XMAX=varargin(2); + YMIN=varargin(3); YMAX=varargin(4); + end; + Out=[XMIN,XMAX,YMIN,YMAX]; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sf3data.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sf3data.bin Binary files differnew file mode 100644 index 00000000..df965eb7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sf3data.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sf3data.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sf3data.sci new file mode 100755 index 00000000..9c20a13b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sf3data.sci @@ -0,0 +1,62 @@ +// 08.08.16 +// 08.10.10 +// 13.10.21 ( __ added to varibles ) + +function PL__=Sf3data(varargin) + Nargs__=length(varargin); + FdL__=Fullformfunc(varargin(1)); + F__=Mixop(1,FdL__); + Xf__=Mixop(2,FdL__); + Yf__=Mixop(3,FdL__); + Zf__=Mixop(4,FdL__); + Urg__=Mixop(5,FdL__); + Vrg__=Mixop(6,FdL__); + K__=mtlb_findstr(Urg__,'='); + U__=part(Urg__,1:K__-1); + Tmp__=part(Urg__,K__+1:length(Urg__)); + Tmp__=evstr(Tmp__); + Umin__=Tmp__(1); Umax__=Tmp__(2); + K__=mtlb_findstr(Vrg__,'='); + V__=part(Vrg__,1:K__-1); + Tmp__=part(Vrg__,K__+1:length(Vrg__)); + Tmp__=evstr(Tmp__); + Vmin__=Tmp__(1); Vmax__=Tmp__(2); + Ndu__=25 ; Ndv__=25; Np__=[50,50]; + if Nargs__>=3 + Ndu__=varargin(2); + Ndv__=varargin(3); + end; + if Nargs__>=4 + Np__=varargin(4); + if type(Np__)==1 & length(Np__)==1 + Np__=[Np__,Np__]; + end; + end; + Du__=(Umax__-Umin__)/Ndu__; + Dv__=(Vmax__-Vmin__)/Ndv__; + PL__ = []; + for I__=0:Ndu__ + U0__ ='('+string(Umin__+I__*Du__)+')'; + Tmp__=strsubst(Xf__,U__,U0__); + Tmp1__=strsubst(Tmp__,V__,'t'); + Tmp__=strsubst(Yf__,U__,U0__); + Tmp2__=strsubst(Tmp__,V__,'t'); + Tmp__=strsubst(Zf__,U__,U0__); + Tmp3__=strsubst(Tmp__,V__,'t'); + Tmp__='['+Tmp1__+','+Tmp2__+','+Tmp3__+']'; + PD__=Spacecurve(Tmp__,'t=[Vmin__,Vmax__]','N='+string(Np__(2))); + PL__=Mixadd(PL__,PD__); + end; + for J__=0:Ndv__ + V0__='('+string(Vmin__+J__*Dv__)+')'; + Tmp__=strsubst(Xf__,V__,V0__); + Tmp1__=strsubst(Tmp__,U__,'t'); + Tmp__=strsubst(Yf__,V__,V0__); + Tmp2__=strsubst(Tmp__,U__,'t'); + Tmp__=strsubst(Zf__,V__,V0__); + Tmp3__=strsubst(Tmp__,U__,'t'); + Tmp__='['+Tmp1__+','+Tmp2__+','+Tmp3__+']'; + PD__=Spacecurve(Tmp__,'t=[Umin__,Umax__]','N='+string(Np__(1))); + PL__=Mixadd(PL__,PD__); + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfbdparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfbdparadata.bin Binary files differnew file mode 100644 index 00000000..a86220d5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfbdparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfbdparadata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfbdparadata.sci new file mode 100755 index 00000000..7a759f69 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfbdparadata.sci @@ -0,0 +1,39 @@ +// 08.09.13 +// 10.02.16 Eps => [Eps, Epsmag] + +function Out5=Sfbdparadata(varargin) + global IMPLICITDATA CUSPDATA CUSPPT CUSPSPLITPT; + Nargs=length(varargin); + Fd=varargin(1); + FdL=Fullformfunc(Fd); + Np=[50,50]; + if Nargs>=2 + Np=varargin(2); + if type(Np)==1 & length(Np)==1 + Np=[Np,Np]; + end; + end; + Eps=[0.05,1]; // + if Nargs>=3 + Eps=varargin(3); + end; + if length(Eps)==1 // + Eps=[Eps,1]; // + end; // + Eps2=0.2; + if Nargs>=4 + Eps2=varargin(4); + end; + Ts=timer(); + [Zval,Xval,Yval]=Evlptablepara(Mix(Fd,Np)); + Out3=Implicitplot(Zval,Xval,Yval); + IMPLICITDATA=Out3; + Mixdisp(Mix('ImplicitData obtained ',timer())); + Out4=Cuspsplitpara(Out3,Fd,Eps(1)); // + CUSPDATA=Out4; + CUSPPT=CUSPSPLITPT; + Mixdisp(Mix('CuspData obtained ',timer())); + Out5=Borderparadata(Out4,Fd,Np,Eps,Eps2); + Mixdisp(Mix('BorderData obtained ',timer())); +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfbdpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfbdpersdata.bin Binary files differnew file mode 100644 index 00000000..304be9f0 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfbdpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfbdpersdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfbdpersdata.sci new file mode 100755 index 00000000..9833a7f4 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfbdpersdata.sci @@ -0,0 +1,42 @@ + +// 08.09.21 +// 10.02.16 Eps => [Eps, Epsmag] +// 13.11.02 bug + +function Out5=Sfbdpersdata(varargin) + global IMPLICITDATA CUSPDATA CUSPPT CUSPSPLITPT; + Nargs=length(varargin); + Fd=varargin(1); + FdL=Fullformfunc(Fd); + Np=[50,50]; + if Nargs>=2 + Np=varargin(2); + if type(Np)==1 & length(Np)==1 + Np=[Np,Np]; + end; + end; + Eps=[0.05,1]; // + if Nargs>=3 + Eps=varargin(3); + end; + if length(Eps)==1 // + Eps=[Eps,1]; // + end; // + Eps2=0.2; + if Nargs>=4 + Eps2=varargin(4); + end; + Ts=timer(); + [Zval,Xval,Yval]=Evlptablepers(Mix(Fd,Np)); + Out3=Implicitplot(Zval,Xval,Yval); + IMPLICITDATA=Out3; + Mixdisp(Mix('ImplicitData obtained ',timer())); + Out4=Cuspsplitpers(Out3,Fd,Eps(1)); // 13.11.02 + CUSPDATA=Out4; + CUSPPT=CUSPSPLITPT; + Mixdisp(Mix('CuspData obtained ',timer())); + Out5=Borderpersdata(Out4,Fd,Np,Eps,Eps2); + Mixdisp(Mix('BorderData obtained ',timer())); +endfunction; + + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfbdrawparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfbdrawparadata.bin Binary files differnew file mode 100644 index 00000000..cb2d0f7a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfbdrawparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfbdrawparadata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfbdrawparadata.sci new file mode 100755 index 00000000..082ccec3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfbdrawparadata.sci @@ -0,0 +1,33 @@ +// 08.09.10 +// 08.09.13 + +function Out5=Sfbdrawparadata(varargin) + global IMPLICITDATA CUSPDATA CUSPPT CUSPSPLITPT; + Nargs=length(varargin); + Fd=varargin(1); + FdL=Fullformfunc(Fd); + Np=[50,50]; + if Nargs>=2 + Np=varargin(2); + if type(Np)==1 & length(Np)==1 + Np=[Np,Np]; + end; + end; + Eps=0.05; + if Nargs>=3 + Eps=varargin(3); + end; + Ts=timer(); + [Zval,Xval,Yval]=Evlptablepara(Mix(Fd,Np)); + Out3=Implicitplot(Zval,Xval,Yval); + BdyL=Mixop(8,FdL); + if BdyL~=[] + Out3=Clipindomain(Out3,BdyL) + end; + IMPLICITDATA=Out3; + Out4=Cuspsplitpara(Out3,Fd,Eps); + CUSPDATA=Out4; + CCUSPPT=CUSPSPLITPT; + Out5=Borderrawdata(Out4,Fd,Np,Eps); +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfbdrawpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfbdrawpersdata.bin Binary files differnew file mode 100644 index 00000000..5731c723 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfbdrawpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfbdrawpersdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfbdrawpersdata.sci new file mode 100755 index 00000000..cde6870f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfbdrawpersdata.sci @@ -0,0 +1,31 @@ +// 08.09.21 + +function Out5=Sfbdrawpersdata(varargin) + global IMPLICITDATA CUSPDATA CUSPPT CUSPSPLITPT; + Nargs=length(varargin); + Fd=varargin(1); + FdL=Fullformfunc(Fd); + Np=[50,50]; + if Nargs>=2 + Np=varargin(2); + if type(Np)==1 & length(Np)==1 + Np=[Np,Np]; + end; + end; + Eps=0.05; + if Nargs>=3 + Eps=varargin(3); + end; + Ts=timer(); + [Zval,Xval,Yval]=Evlptablepers(Mix(Fd,Np)); + Out3=Implicitplot(Zval,Xval,Yval); + BdyL=Mixop(8,FdL); + if BdyL~=[] + Out3=Clipindomain(Out3,BdyL) + end; + IMPLICITDATA=Out3; + Out4=Cuspsplitpers(Out3,Fd,Eps); + CUSPDATA=Out4; + CCUSPPT=CUSPSPLITPT; + Out5=Borderrawdata(Out4,Fd,Np,Eps); +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfcutdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfcutdata.bin Binary files differnew file mode 100644 index 00000000..a7dae3c3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfcutdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfcutdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfcutdata.sci new file mode 100755 index 00000000..5a15d61c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfcutdata.sci @@ -0,0 +1,105 @@ +// 08.09.09 +// 08.09.19 +// 08.09.20 +// 08.09.24 +// 08.10.09 +// 08.10.10 +// 13.10.21 ( __ added to varibles ) + +function EkL__=Sfcutdata(varargin) + Nargs__=length(varargin); + Fd__=varargin(1); + CutD__=varargin(2); + Np__=[50,50]; + if Nargs__>=3 + Tmp__=varargin(3); + if type(Tmp__)==1 & length(Tmp__)==1 + Np__=[Tmp__,Tmp__]; + end; + end; + Tmp__=Mixop(2,Fd__); + K__=mtlb_findstr(Tmp__,'='); + Xname__=part(Tmp__,1:K__-1); + Tmp__=Mixop(3,Fd__); + K__=mtlb_findstr(Tmp__,'='); + Yname__=part(Tmp__,1:K__-1); + Tmp__=Mixop(1,Fd__); + K__=mtlb_findstr(Tmp__,'='); + if K__~=[] + Zname__=part(Tmp__,1:K__-1); + else + Tmp__=Mixop(4,Fd__); + K__=mtlb_findstr(Tmp__,'='); + Zname__=part(Tmp__,1:K__-1); + end; + Fd__L=Fullformfunc(Fd__); + Xf__=Mixop(2,Fd__L); + Yf__=Mixop(3,Fd__L); + Zf__=Mixop(4,Fd__L); + Tmp__=Mixop(5,Fd__L); + K__=mtlb_findstr(Tmp__,'='); + Uname__=part(Tmp__,1:K__-1); + Urg__=evstr(part(Tmp__,K__+1:length(Tmp__))); + Tmp__=Mixop(6,Fd__L); + K__=mtlb_findstr(Tmp__,'='); + Vname__=part(Tmp__,1:K__-1); + Vrg__=evstr(part(Tmp__,K__+1:length(Tmp__))); + Umin__=Urg__(1); Umax=Urg__(2); + Vmin__=Vrg__(1); Vmax=Vrg__(2); + if Mixtype(CutD__)~=1 + V1__=Mixop(1,CutD__); + Tmp__=Mixop(2,CutD__); + if length(Tmp__)>1 + D__=V1__(1)*Tmp__(1)+V1__(2)*Tmp__(2)+V1__(3)*Tmp__(3); + else + D__=Tmp__; + end; + Tmp__=string(V1__(1))+'*'+Xname__+'+'; + Tmp__=Tmp__+string(V1__(2))+'*'+Yname__+'+'; + Tmp__=Tmp__+string(V1__(3))+'*'+Zname__+'-'; + Eq__=Tmp__+string(D__); + elseif type(CutD__)==1 + V1__=CutD__(1:3); + D__=CutD__(4); + Tmp__=string(V1__(1))+'*'+Xname__+'+'; + Tmp__=Tmp__+string(V1__(2))+'*'+Yname__+'+'; + Tmp__=Tmp__+string(V1__(3))+'*'+Zname__+'+'; + Eq__=Tmp__+string(D__); + else + K__=mtlb_findstr(CutD__,'='); + if K__>0 + Tmp__1=part(CutD__,1:K__-1); + Tmp__2=part(CutD__,K__+1:length(CutD__)); + Eq__=Tmp__1+'-('+Tmp__2+')'; + else + Eq__=CutD__; + end; + end; + Tmp__=strsubst(Eq__,Xname__,'('+Xf__+')'); + Tmp__=strsubst(Tmp__,Yname__,'('+Yf__+')'); + Uveq__=strsubst(Tmp__,Zname__,'('+Zf__+')'); + Tmp__1=Mixop(5,Fd__L); + Tmp__2=Mixop(6,Fd__L); + CutuvL__=Implicitplot(Uveq__,Tmp__1,Tmp__2,Np__); + EkL__=[]; + for I__=1:Mixlength(CutuvL__) + Out__1=Mixop(I__,CutuvL__); + Out__2=[]; + for J__=1:size(Out__1,1) + Tmp__1=Out__1(J__,1); + Tmp__2=Out__1(J__,2); + Tmp__=strsubst(Xf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Xv__=evstr(Tmp__); + Tmp__=strsubst(Yf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Yv__=evstr(Tmp__); + Tmp__=strsubst(Zf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Zv__=evstr(Tmp__); + Out__2=[Out__2,[Xv__,Yv__,Zv__]]; + end; + Tmp__=Spaceline(Out__2); + EkL__=Mixadd(EkL__,Tmp__); + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfcutoffparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfcutoffparadata.bin Binary files differnew file mode 100644 index 00000000..07cfe7f8 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfcutoffparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfcutoffparadata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfcutoffparadata.sci new file mode 100755 index 00000000..0e4c6a5b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfcutoffparadata.sci @@ -0,0 +1,12 @@ +// 08.09.1 +// 10.02.17 + +function Out=Sfcutoffparadata(varargin) + Ms=list('hidden','para'); + for I=1:length(varargin) + Tmp=varargin(I); + Ms=Mixjoin(Ms,list(Tmp)); + end; + Out=Makesfcutoffdata(Ms); +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfcutoffpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfcutoffpersdata.bin Binary files differnew file mode 100644 index 00000000..aaf088b5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfcutoffpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfcutoffpersdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfcutoffpersdata.sci new file mode 100755 index 00000000..c10cdb8d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfcutoffpersdata.sci @@ -0,0 +1,12 @@ +// 08.09.21 +// 10.02.17 + +function Out=Sfcutoffpersdata(varargin) + Ms=list('hidden','pers'); + for I=1:length(varargin) + Tmp=varargin(I); + Ms=Mixjoin(Ms,list(Tmp)); + end; + Out=Makesfcutoffdata(Ms); +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfcutoffrawparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfcutoffrawparadata.bin Binary files differnew file mode 100644 index 00000000..b2d998a7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfcutoffrawparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfcutoffrawparadata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfcutoffrawparadata.sci new file mode 100755 index 00000000..546f66d8 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfcutoffrawparadata.sci @@ -0,0 +1,12 @@ +// 08.09.19 +// 10.02.17 + +function Out=Sfcutoffrawparadata(varargin) + Ms=list('raw','para'); + for I=1:length(varargin) + Tmp=varargin(I); + Ms=Mixjoin(Ms,list(Tmp)); + end; + Out=Makesfcutoffdata(Ms); +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfcutoffrawpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfcutoffrawpersdata.bin Binary files differnew file mode 100644 index 00000000..8c08c1b7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfcutoffrawpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfcutoffrawpersdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfcutoffrawpersdata.sci new file mode 100755 index 00000000..e5a387f5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfcutoffrawpersdata.sci @@ -0,0 +1,12 @@ +// 08.09.21 +// 10.02.17 + +function Out=Sfcutoffrawpersdata(varargin) + Ms=list('raw','pers'); + for I=1:length(varargin) + Tmp=varargin(I); + Ms=Mixjoin(Ms,list(Tmp)); + end; + Out=Makesfcutoffdata(Ms); +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfparadata.bin Binary files differnew file mode 100644 index 00000000..45df29ba --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfparadata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfparadata.sci new file mode 100755 index 00000000..5aa4e5e5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfparadata.sci @@ -0,0 +1,17 @@ +// 08.08.16 + +function Out=Sfparadata(varargin) + Nargs=length(varargin); + Fd=varargin(1); + Ndu=25 ; Ndv=25; Np=[50,50]; + if Nargs>=3 + Ndu=varargin(2); + Ndv=varargin(3); + end; + if Nargs>=4 + Np=varargin(4); + end; + Tmp=Sf3data(Fd,Ndu,Ndv,Np); + Out=Projpara(Tmp); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfpersdata.bin Binary files differnew file mode 100644 index 00000000..3350f9b9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfpersdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfpersdata.sci new file mode 100755 index 00000000..ecc63e41 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sfpersdata.sci @@ -0,0 +1,17 @@ +// 08.08.15 + +function Out=Sfpersdata(varargin) + Nargs=length(varargin); + Fd=varargin(1); + Ndu=25 ; Ndv=25; Np=[50,50]; + if Nargs>=3 + Ndu=varargin(2); + Ndv=varargin(3); + end; + if Nargs>=4 + Np=varargin(4); + end; + Tmp=Sf3data(Fd,Ndu,Ndv,Np); + Out=Projpers(Tmp); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Shade.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Shade.bin Binary files differnew file mode 100644 index 00000000..130e2b32 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Shade.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Shade.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Shade.sci new file mode 100755 index 00000000..ff22a933 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Shade.sci @@ -0,0 +1,84 @@ +// 08.05.22 +// 09.12.25 +// 11.05.27 (for pdflatex ) +// 17.01.09 (shade, thickness ) + +function Shade(varargin) + global Wfile FID MilliIn; + // 2nd arg is a color name or '[..]{ }' + Nargs=length(varargin); + Iroflg=0; + if Nargs>1 + Iroflg=1; + Iro=varargin(Nargs); + if type(Iro)==10 then + if length(strchr(Iro,"{"))>0 + Str="{\color"+Iro; + else + Str="{\color{"+Iro+"}"; + end; + else + if length(Iro)==4 + Str='{\color[cmyk]{'; + else + Str='{\color[rgb]{'; + end; + for J=1:length(Iro) + Str=Str+string(Iro(J)); + if J<length(Iro) then + Str=Str+','; + end + end + Str=Str+'}'; + end; + if Wfile=='default' + mprintf('%s\n',Str+'%'); + else + mfprintf(FID,'%s\n',Str); + end; + end; + Mojisu=0; // + Tmp=varargin(1); + Data=Kyoukai(Tmp); + for I=1:length(Data) + PL=Op(I,Data); + for J=1:size(PL,1) + P=Doscaling(PL(J,:)); + X=sprintf('%5.5f',P(1)); + Y=sprintf('%5.5f',P(2)); + Pt='('+X+','+Y+')'; + if J==1 then + Str='\polygon*'+Pt; + else + Str=Pt; + end + if Wfile=='default' + mprintf('%s',Str); + else + mfprintf(FID,'%s',Str); + end + Mojisu=Mojisu+length(Str); + if Mojisu>80 + if Wfile=='default' + mprintf('%s\n','%'); + else + mfprintf(FID,'%s\n','%'); + end + Mojisu=0; + end; + end; + end; + if Iroflg==1 + Str='}%'; + if Mojisu>0 + Fmt='\n%s\n'; + else + Fmt='%s\n'; + end; + if Wfile=='default' + mprintf(Fmt,Str); + else + mfprintf(FID,Fmt,Str); + end; + end; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Skeleton2data.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Skeleton2data.bin Binary files differnew file mode 100644 index 00000000..89d8b459 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Skeleton2data.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Skeleton2data.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Skeleton2data.sci new file mode 100755 index 00000000..4eec31cf --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Skeleton2data.sci @@ -0,0 +1,71 @@ +// 08.08.14 +// 08.10.16 +// 09.06.13 + +function Out=Skeleton2data(varargin) + global MilliIn; + Nargs=length(varargin); + Out=[]; + Tmp=varargin(1); + if Mixtype(Tmp)==1 + ObjL=MixS(Tmp); + elseif Mixtype(Tmp)==2 + ObjL=Tmp; + else + ObjL=[]; + for I=1:Mixlength(Tmp) + Tmp1=Mixop(I,Tmp); + if Mixtype(Tmp1)==1 + ObjL=Mixadd(ObjL,Tmp1); + else + ObjL=Mixjoin(ObjL,Tmp1); + end; + end; + end; + Tmp=varargin(2); + if Mixtype(Tmp)==1 + PltL=MixS(Tmp); + elseif Mixtype(Tmp)==2 + PltL=Tmp + else + PltL=[]; + for I=1:Mixlength(Tmp) + Tmp1=Mixop(I,Tmp); + if Mixtype(Tmp1)==1 + PltL=Mixadd(PltL,Tmp1); + else + PltL=Mixjoin(PltL,Tmp1); + end; + end; + end; + R=0.075*1000/2.54/MilliIn; + if Nargs>2 + R=R*varargin(3); + end; + Eps2=0.01; + if Nargs>3 + Eps2=varargin(4); + end; + Obj2L=[]; + for I=1:Mixlength(ObjL) + Curve=Mixop(I,ObjL); + Obj2=[]; + for J=1:size(Curve,1) + P=Curve(J,:); + Obj2=[Obj2;P,-1]; + end; + Obj2L=Mixadd(Obj2L,Obj2); + end; + Plt2L=[] + for I=1:Mixlength(PltL) + Curve=Mixop(I,PltL); + Plt2=[]; + for J=1:size(Curve,1) + P=Curve(J,:); + Plt2=[Plt2;P,0]; + end; + Plt2L=Mixadd(Plt2L,Plt2); + end; + Out=Makeskeletondata(Obj2L,Plt2L,R,Eps2); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Skeletonpara3data.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Skeletonpara3data.bin Binary files differnew file mode 100644 index 00000000..03fcdda2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Skeletonpara3data.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Skeletonpara3data.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Skeletonpara3data.sci new file mode 100755 index 00000000..5914d47a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Skeletonpara3data.sci @@ -0,0 +1,48 @@ +// 09.09.25 +// 11.12.12 +// 15.06.14 +// 15.10.19 + +function Out=Skeletonpara3data(varargin) + global MilliIn; + Eps=10^(-4); // 15.06.14 + Nargs=length(varargin); + Out=[]; + ObjL=Flattenlist(varargin(1)); + Plt3L=Flattenlist(varargin(2)); + R=0.075*1000/2.54/MilliIn; + if Nargs>2 + R=R*varargin(3); + end; + Eps2=0.05; // changed at 08.10.16 + if Nargs>3 + Eps2=varargin(4); + end; + Plt2L=list(); + for I=1:Mixlength(Plt3L) + Plt2L($+1)=ProjcoordCurve(Plt3L(I)); + end; + Out=list(); + for I=1:length(ObjL) + Obj3=ObjL(I); + Tmp=ProjcoordCurve(Obj3); + Data=Makeskeletondata(Mix(Tmp),Plt2L,R,Eps2); + for J=1:length(Data) + Gd=Data(J); + if size(Gd,1)==1 // 15.10.19 + continue; + end; + if norm(Ptcrv(1,Gd)-Ptcrv(2,Gd))<Eps // 15.06.14 + continue + end; + PtD=[]; + for J=1:size(Gd,1) + Tmp=Gd(J,:); + Tmp1=Invparapt(Tmp,Obj3); + Tmp1=Mixop(1,Tmp1); + PtD=[PtD;Tmp1]; + end; + Out($+1)=PtD; + end; + end; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Skeletonparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Skeletonparadata.bin Binary files differnew file mode 100644 index 00000000..913af31d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Skeletonparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Skeletonparadata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Skeletonparadata.sci new file mode 100755 index 00000000..1270f789 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Skeletonparadata.sci @@ -0,0 +1,29 @@ +// 08.07.13 +// 08.08.08 +// 08.10.16 +// 11.12.12 (Flattenlist) + +function Out=Skeletonparadata(varargin) + global MilliIn; + Nargs=length(varargin); + Out=[]; + ObjL=Flattenlist(varargin(1)); + Plt3L=Flattenlist(varargin(2)); + R=0.075*1000/2.54/MilliIn; + if Nargs>2 + R=R*varargin(3); + end; + Eps2=0.05; // changed at 08.10.16 + if Nargs>3 + Eps2=varargin(4); + end; + Obj2L=list(); + for I=1:length(ObjL) + Obj2L($+1)=ProjcoordCurve(ObjL(I)); + end; + Plt2L=list(); + for I=1:length(Plt3L) + Plt2L($+1)=ProjcoordCurve(Plt3L(I)); + end; + Out=Makeskeletondata(Obj2L,Plt2L,R,Eps2); +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Skeletonpers3data.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Skeletonpers3data.bin Binary files differnew file mode 100644 index 00000000..ec2a9bad --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Skeletonpers3data.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Skeletonpers3data.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Skeletonpers3data.sci new file mode 100755 index 00000000..57dde938 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Skeletonpers3data.sci @@ -0,0 +1,41 @@ +// 09.09.25 +// 11.12.12 + +function Out=Skeletonpers3data(varargin) + global MilliIn; + Nargs=length(varargin); + Out=[]; + ObjL=Flattenlist(varargin(1)); + Plt3L=Flattenlist(varargin(2)); + R=0.075*1000/2.54/MilliIn; + if Nargs>2 + R=R*varargin(3); + end; + Eps2=0.05; // changed at 08.10.16 + if Nargs>3 + Eps2=varargin(4); + end; + Plt2L=[]; + for I=1:Mixlength(Plt3L) + Tmp=CameracoordCurve(Mixop(I,Plt3L)); + Plt2L=Mixadd(Plt2L,Tmp); + end; + Out=list(); + for I=1:length(ObjL) + Obj3=ObjL(I); + Tmp=CameracoordCurve(Obj3); + Data=Makeskeletonpersdata(Mix(Tmp),Plt2L,R,Eps2); + for J=1:length(Data) + Gd=Data(J); + PtD=[]; + for J=1:size(Gd,1) + Tmp=Gd(J,:); + Tmp1=Invperspt(Tmp,Obj3); + Tmp1=Mixop(1,Tmp1); + PtD=[PtD;Tmp1]; + end; + Out($+1)=PtD; + end; + end; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Skeletonpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Skeletonpersdata.bin Binary files differnew file mode 100644 index 00000000..7d2c1a07 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Skeletonpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Skeletonpersdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Skeletonpersdata.sci new file mode 100755 index 00000000..c91e73cf --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Skeletonpersdata.sci @@ -0,0 +1,29 @@ +// 08.08.14 +// 08.10.16 +// 11.12.12 + +function Out=Skeletonpersdata(varargin) + global MilliIn; + Nargs=length(varargin); + Out=[]; + ObjL=Flattenlist(varargin(1)); + Plt3L=Flattenlist(varargin(2)); + R=0.075*1000/2.54/MilliIn; + if Nargs>2 + R=R*varargin(3); + end; + Eps2=0.05; // changed at 08.10.16 + if Nargs>3 + Eps2=varargin(4); + end; + Obj2L=list(); + for I=1:length(ObjL) + Obj2L($+1)=CameracoordCurve(ObjL(I)); + end; + Plt2L=list(); + for I=1:length(Plt3L) + Plt2L($+1)=CameracoordCurve(Plt3L(I)); + end; + Out=Makeskeletonpersdata(Obj2L,Plt2L,R,Eps2); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Spacecurve.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Spacecurve.bin Binary files differnew file mode 100644 index 00000000..880f8540 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Spacecurve.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Spacecurve.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Spacecurve.sci new file mode 100755 index 00000000..077a88cb --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Spacecurve.sci @@ -0,0 +1,83 @@ +// 08.07.11 +// 09.05.27 +// 09.06.02 +// 09.12.31 (gsort) +// 13.10.21 ( __ added to varibles ) +// 16.08.20 (N changed to devided number ) +// 16.12.13 ( in case of T1=T2) + +function P__=Spacecurve(varargin) + Eps__=10^(-5); + Nargs__=length(varargin); + Fnstr__=varargin(1); + Rgstr__=varargin(2); + Range__=[0,2*%pi]; + N=50; // Numpoints + E=[]; // Exclusions + D=%inf; // Discont (Changed) + for I__=3:Nargs__ + Tmp__=varargin(I__); + K__=mtlb_findstr(Tmp__,'='); + Tmp1__=strsplit(Tmp__,[K__-1,K__]); + Tmp2__=ascii(Tmp1__(1,1)); + Lhs__=char(Tmp2__(1)); + Str__=Lhs__+'='+Tmp1__(3,1); + execstr(Str__); + end; + K__=mtlb_findstr(Rgstr__,'='); + if K__~=[] + Tmp__=strsplit(Rgstr__,[K__-1,K__]); + Vname__=Tmp__(1,1); + Rng__=evstr(Tmp__(3,1)); + else + Vname__=Rgstr__; + Rng__=[XMIN,XMAX]; + end + T1__=Rng__(1); T2__=Rng__(2); + Dt__=(T2__-T1__)/N; // 16.08.20 + Str__=mtlb_strrep(Fnstr__,Vname__,'t__'); + if abs(Dt__)<Eps__ then // 16.12.13 + t__=T1__; + P__=evstr(Str__); + return; + end; + P__=[]; + E=gsort(E); + E=E(length(E):-1:1); + E=[E,%inf]; + Tmp__=gsort(E); + E=Tmp__(length(Tmp__):-1:1); + Ke__=1; + for t__=T1__:Dt__:T2__ + Pa__=[]; + if t__-E(Ke__)<-Eps__ + Pa__=evstr(Str__); + end + if abs(t__-E(Ke__))<=Eps__ + if P__~=[] & P__(size(P__,1),:)~=[%inf,%inf,%inf] + Pa__=[%inf,%inf,%inf]; + end + end + if t__-E(Ke__)>Eps__ + Pa__=evstr(Str__); + Ke__=Ke__+1; + end + if Pa__~=[] + if Pa__(1)==%inf + P__=[P__;Pa__] + elseif P__==[] + P__=[Pa__]; + else + Tmp__=P__(size(P__,1),:); + if Tmp__(1)==%inf + P__=[P__;Pa__]; + elseif norm(Tmp__-Pa__)<D + P__=[P__;Pa__]; + else + P__=[P__;%inf,%inf,%inf;Pa__]; + end + end + end + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Spaceline.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Spaceline.bin Binary files differnew file mode 100644 index 00000000..86bddaa8 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Spaceline.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Spaceline.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Spaceline.sci new file mode 100755 index 00000000..9fe33c06 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Spaceline.sci @@ -0,0 +1,27 @@ +// 08.07.11 + +function Z=Spaceline(varargin) + Z=[]; + for I=1:length(varargin) + Data=varargin(I); + if Mixtype(Data)==1 + for J=1:3:size(Data,2) + Tmp=Data(J:J+2); + Z=[Z;Tmp]; + end; + continue; + end; + if Mixtype(Data)==3 + Tmp=[]; + for I=1:Mixlength(Data); + Tmp=Mixjoin(Tmp,Mixop(I,Data)); + end; + Data=Tmp; + end; + for J=1:Mixlength(Data) + Tmp=Mixop(J,Data); + Z=[Z;Tmp]; + end; + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Splinedata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Splinedata.bin Binary files differnew file mode 100644 index 00000000..cadb3d56 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Splinedata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Splinedata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Splinedata.sci new file mode 100755 index 00000000..a4de85ea --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Splinedata.sci @@ -0,0 +1,108 @@ +// 08.05.28 +// 08.05.29 +// 09.06.13 +// 10.04.24 +// 10.04.25 +// 11.01.07 ( major changed ) + +function OutL=Splinedata(varargin) + global SplinePt; + Nargs=length(varargin); + Eps=10^(-3); + PL=varargin(1); + if type(PL)==10 // 100425 + Fname=PL; + PL=Readtextdata(Fname); + else + if size(PL,1)==1 + PL=matrix(PL,2,length(PL)/2); + PL=PL'; + end; + end; + if size(PL,2)==3 + Flg3=1; + else + Flg3=0; + end; + PLL=Dividegraphics(PL); + N=50; + C=[]; + for I=2:Nargs + Tmp=varargin(I); + if type(Tmp)~=10 continue; end + if mtlb_findstr(Tmp,'=')~=[] + execstr(Tmp); + else + Tmp1=Strop(1,Tmp); + if Tmp1=='C' | Tmp1=='c' + C=1:length(PLL); + end; + end; + end; + Cflg=zeros(1,length(PLL)); + for J=1:length(C) + K=C(J); + Cflg(K)=1; + end; + if length(N)>1 + if type(Nj)==1 + Nj=N; + else + Nj=[]; + for J=1:length(N) + Nj(J)=N(J); + end; + end; + else + Tmp1=[]; + for J=1:length(PLL) + Tmp1(J)=size(PLL(J),1); + end; + MxP=max(Tmp1); + Nj=[]; + for J=1:length(PLL) + Tmp=size(PLL(J),1); + Tmp1=round(N/MxP*(Tmp-1)); + Nj(J)=Tmp1; + end; + end; + OutL=list(); + for J=1:length(PLL) // + PL=PLL(J); + if Cflg(J)==1 + if norm(PL(1,:)-PL(size(PL,1),:))>Eps + PL=[PL;PL(1,:)]; + Nj(J)=round(N/MxP*size(PL,1)); + else + PL(size(PL,1),:)=PL(1,:); + end + end; + SplinePt=PL; + Tn=1:size(PL,1); + Xn=PL(:,1)'; + Yn=PL(:,2)'; + if Flg3==1 Zn=PL(:,3)';end; + if Cflg(J)==0 + Dxn=splin(Tn,Xn); + Dyn=splin(Tn,Yn); + if Flg3==1 Dzn=splin(Tn,Zn); end; + else + Dxn=splin(Tn,Xn,'periodic'); + Dyn=splin(Tn,Yn,'periodic'); + if Flg3==1 Dzn=splin(Tn,Zn,'periodic'); end; + end + T=linspace(1,size(PL,1),Nj(J)); + X=interp(T,Tn,Xn,Dxn); + Y=interp(T,Tn,Yn,Dyn); + if Flg3==1 Z=interp(T,Tn,Zn,Dzn); end; + if Flg3==1 + Out=[X',Y',Z']; + else + Out=[X',Y']; + end; + OutL($+1)=Out; + end; + if length(OutL)==1 + OutL=OutL(1); + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Strop.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Strop.bin Binary files differnew file mode 100644 index 00000000..de695ff2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Strop.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Strop.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Strop.sci new file mode 100755 index 00000000..8f4da94d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Strop.sci @@ -0,0 +1,11 @@ +function C=Strop(Num,Str) + N=length(Num); + L=ascii(Str); + C=''; + for I=1:N + K=Num(I); + Tmp=char(L(K)); + C=C+Tmp; + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Subs.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Subs.bin Binary files differnew file mode 100644 index 00000000..2ca7ae03 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Subs.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Subs.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Subs.sci new file mode 100755 index 00000000..785b605c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Subs.sci @@ -0,0 +1,21 @@ +// +// 08.06.04 + +function V=Subs(SbstrL,StrF) + Str=StrF; + if type(StrF)==2 + Str=pol2str(StrF); + end + V=StrF; + for N=1:size(SbstrL,2) + Sbstr=SbstrL(1,N); + I=mtlb_findstr(Sbstr,'='); + Tmp=strsplit(Sbstr,I); + SbA=Tmp(1); + SbA=Op(1:length(SbA)-1,SbA); + SbB=Tmp(2); + V=strsubst(V,SbA,SbB); + end + V=evstr(V); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sumfun.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sumfun.bin Binary files differnew file mode 100644 index 00000000..0e796d65 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sumfun.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sumfun.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sumfun.sci new file mode 100755 index 00000000..55fdfd0f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Sumfun.sci @@ -0,0 +1,65 @@ +// 08.05.30 +// 08.05.31 +// 08.06.03 +// 13.10.21 (__ added to variables ) + +function PL__=Sumfun(varargin) + global XMIN XMAX YMIN YMAX + Nargs__=length(varargin); + Const__=0; + Addstr__='A__=0'; + J__=1; + Tmp__=varargin(1); + if type(Tmp__)==1 + Const__=Tmp__; + J__=J__+1; + end + if type(Tmp__)==10 + Tmp1__=Strop(length(Tmp__),Tmp__); + if Tmp1__=='+' + Addstr__='A__='+Strop(1:length(Tmp__)-1,Tmp__); + J__=J__+1 + end + end + Fnstr__=varargin(J__); + Krange__=varargin(J__+1); + Xrange__=varargin(J__+2); + N=50; + for I__=J__+3:Nargs__ + Tmp__=varargin(I__); + execstr(Tmp__); + end + Tmp__=mtlb_findstr(Krange__,'='); + Kname__=Strop(1:Tmp__-1,Krange__); + Tmp1__=Strop(Tmp__+1:length(Krange__),Krange__); + Tmp1__='Krg__='+Tmp1__; + execstr(Tmp1__); + Tmp__=mtlb_findstr(Xrange__,'='); + if Tmp__==[] + Xname__=Xrange__; + Xrg__=[XMIN,XMAX]; + else + Xname__=Strop(1:Tmp__-1,Xrange__); + Tmp1__=Strop(Tmp__+1:length(Xrange__),Xrange__); + Tmp1__='Xrg__='+Tmp1__; + execstr(Tmp1__); + end + Dx__=(Xrg__(2)-Xrg__(1))/N; + PL__=[]; + I__=0; + while I__<=N + Tmp__=Xname__+'=Xrg__(1)+I__*Dx__'; + execstr(Tmp__); + J__=Krg__(1); + execstr(Addstr__); + Y__=Const__+A__; + while J__<=Krg__(length(Krg__)) + Tmp__=Kname__+'=J__'; + execstr(Tmp__); + execstr('Y__=Y__+'+Fnstr__); + J__=J__+1; + end + PL__=[PL__;Xrg__(1)+I__*Dx__,Y__]; + I__=I__+1; + end +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Symb3data.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Symb3data.bin Binary files differnew file mode 100644 index 00000000..c5c00977 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Symb3data.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Symb3data.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Symb3data.sci new file mode 100644 index 00000000..0d649872 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Symb3data.sci @@ -0,0 +1,30 @@ +// s : 2014.08.25 + +function Out=Symb3data(Moji,Size,Kaiten,NV,Pos) + if type(Moji)==10 then + Tmp=Symbdata(Moji); + GY1=Tmp(2) + else + GY1=Moji + end + GY1=Scaledata(GY1,Size,Size); + GY1=Rotatedata(GY1,Kaiten*%pi/180); + A=NV(1); B=NV(2); C=NV(3); + if A^2+B^2==0 then + E1=[1,0,0]; + E2=[0,1,0]; + else + E1=[B,-A,0]; + E2=[-A*C,-B*C,A^2+B^2]; + D=det([E1;E2;NV]); + if D<0 then + E1=-E1 + end + E1=E1/norm(E1); + E2=E2/norm(E2); + end + deff("Out=Em(X,Y)","Out=[E1(1)*X+E2(1)*Y,E1(2)*X+E2(2)*Y,E1(3)*X+E2(3)*Y]"); + GY1=Embed(GY1,Em); + GY1=Translate3data(GY1,Pos); + Out=Flattenlist(GY1); +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Symbdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Symbdata.bin Binary files differnew file mode 100644 index 00000000..2fb81c8f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Symbdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Symbdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Symbdata.sci new file mode 100644 index 00000000..d63a3470 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Symbdata.sci @@ -0,0 +1,67 @@ +// s : 2014.08.25 +// 14.09.07 + +function Out=Symbdata(Moji) + ML=list(); Sp=[]; CC=[]; + if Moji=="x" then + M1=[-0.042,0.035;-0.027,0.045;-0.01,0.045;0.004,0.03;0.00,0.00;... + -0.004,-0.03;0.01,-0.045;0.027,-0.045;0.042,-0.035]; + M2=[0.055,0.035;0.043,0.045;0.027,0.045;0.01,0.03;0.00,0.00;... + -0.01,-0.03;-0.027,-0.045;-0.043,-0.045;-0.055,-0.035]; + ML=list(M1,M2); + Sp=[100,100]; + CC=[0,0]; + end; + if Moji=="y" then + M1=[-0.06,0.06;... + -0.045,0.080;... + -0.03,0.080;... + -0.022,0.065;... + -0.032,0.035;... + -0.035,-0.01;... + 0.007,-0.008;... + 0.037,0.04;... + 0.05,0.09]; + M2=[0.05,0.09;... + 0.037,0.04;... + 0.025,-0.00;... + 0.015,-0.035;... + -0.000,-0.055;... + -0.025,-0.062;... + -0.05,-0.045]; + ML=list(M1,M2); + Sp=[100,100]; + CC=[0,0]; + end + if Moji=="z" then + M1=[-0.035,0.035;-0.023,0.045;-0.01,0.045;... + 0.01,0.04;0.035,0.04;0.042,0.045]; + M2=[0.042,0.045;0.00,0.00;-0.042,-0.045]; + M3=[-0.042,-0.045;-0.035,-0.04;-0.01,-0.04;... + 0.01,-0.045;0.023,-0.045;0.035,-0.035]; + ML=list(M1,M2,M3); + Sp=[100,0,100]; + CC=[0,0,0]; + end + Out1=list() + Out2=list() + for J=1:length(ML) + M=ML(J); + N=Sp(J); + for K=1:size(M,1) + P=M(K,:) + Out1($+1)=P + end + if N>0 then + if CC(J)==0 then + S=Splinedata(M,"N="+string(N)) + else + S=Splinedata(M,"N="+string(N),"C") + end + else + S=M + end; + Out2($+1)=S + end + Out=list(Out1,Out2) +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Tabledata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Tabledata.bin Binary files differnew file mode 100644 index 00000000..774b416f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Tabledata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Tabledata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Tabledata.sci new file mode 100755 index 00000000..621f6256 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Tabledata.sci @@ -0,0 +1,130 @@ +// 09.11.26 +// 09.12.06 +// 09.12.25 +// 10.01.12 +// 10.01.13 +// 10.03.28 +// 10.03.30 +// 13.05.03 Domain can be omitted + +function Out=Tabledata(varargin) +// 2013.05.01 Domain is optional. + Eps=0.001; + Tmp=varargin(1); // 130502 from + if type(Tmp)==1 + Domain=varargin(1); + VL=varargin(2); + HL=varargin(3); + else + Domain=[-1,-1]; + VL=varargin(1); + HL=varargin(2); + end; // 130502 upto + Hsize=Domain(1); + SvL=list(0); + S=0; + for I=1:length(VL) + Tmp=VL(I); + S=S+Tmp(1); + Tmp(1)=S; + SvL($+1)=Tmp; + end; + if Hsize>S + SvL($+1)=Hsize; + end; + Hsize=Op(1,SvL(length(SvL))); + Vsize=Domain(2); + ShL=list(0); + S=0; + for I=1:length(HL) + Tmp=HL(I); + S=S+Tmp(1); + Tmp(1)=S; + ShL($+1)=Tmp; + end; + if Vsize>S + ShL($+1)=Vsize; + end; + Vsize=Op(1,ShL(length(ShL))); + Marw=0; Mare=0; Mars=0; Marn=0; + if length(Domain)>2 + Marw=Domain(3); + Mare=Domain(4); + end; + if length(Domain)>4 + Marn=Domain(5); + Mars=Domain(6); + end; + Setwindow([-Marw,Hsize+Mare],[-Mars,Vsize+Marn]); + Tmp=Framedata([Eps,Hsize-Eps],[Eps,Vsize-Eps]); + Gdata=list(Tmp); + Tmp=-Marw; + Hdata=list(Listplot([[Tmp,-Mars],[Tmp,Vsize+Marn]])); + for I=1:length(SvL) // 10.03.30 + Data=SvL(I); + X=Data(1); + if length(Data)==1 + Y1=0; + Y2=Vsize; + G=Listplot([X,Y1],[X,Y2]); + else + G=[]; + for J=2:2:length(Data) + Y1=Vsize-Op(1,ShL(Data(J))); // 10.03.30 + Y2=Vsize-Op(1,ShL(Data(J+1))); + Tmp=Listplot([[X,Y1],[X,Y2]]); + G=[G;%inf,%inf;Tmp]; + end; + G=G(2:size(G,1),:); + end; + Hdata($+1)=G; + end; + Tmp=Hsize+Mare; + Tmp1=Listplot([[Tmp,-Mars],[Tmp,Vsize+Marn]]); + Hdata($+1)=Tmp1; + Tmp=Vsize+Marn; + Vdata=list(Listplot([[-Marw,Tmp],[Hsize+Mare,Tmp]])); + for I=1:length(ShL) + Data=ShL(I); + Y=Vsize-Data(1); + if length(Data)==1 + X1=0; + X2=Hsize; + G=Listplot([X1,Y],[X2,Y]); + else + G=[]; + for J=2:2:length(Data) + X1=Op(1,SvL(Data(J))); // 10.03.30 + X2=Op(1,SvL(Data(J+1))); + Tmp=Listplot([X1,Y],[X2,Y]); + G=[G;%inf,%inf;Tmp]; + end; + G=G(2:size(G,1),:); + end; + Vdata($+1)=G; + end; + Tmp=Listplot([[-Marw,-Mars],[Hsize+Mare,-Mars]]); + Vdata($+1)=Tmp; + Tmp1=Mixsub(3:(length(Hdata)-2),Hdata); + Tmp2=Mixsub(3:(length(Vdata)-2),Vdata); + Gdata=Mixjoin(Gdata,Tmp1,Tmp2); + Hind=2:(1+length(Tmp1)); + Vind=(2+length(Tmp1)):(1+length(Tmp1)+length(Tmp2)); + G=Gdata(1); + P1=Ptsw(G); P2=Ptnw(G); + Q1=Ptse(G); Q2=Ptne(G); + Tmp1=list(Listplot([P1,P2]),Listplot([Q1,Q2])); + P1=Ptnw(G); P2=Ptne(G); + Q1=Ptsw(G); Q2=Ptse(G); + Tmp2=list(Listplot([P1,P2]),Listplot([Q1,Q2])); + Tmp3=Framedata(); + Out=list(Gdata,Hind,Vind,Tmp1,Tmp2,Tmp3); +endfunction; + +function Out=Dividetable(Tb) + G=Tb(1); + Gw=G(1); + Gt=Mixsub(Tb(2),G); + Gy=Mixsub(Tb(3),G); + Out=list(Gw,Gt,Gy) +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texcom.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texcom.bin Binary files differnew file mode 100644 index 00000000..97832ff7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texcom.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texcom.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texcom.sci new file mode 100755 index 00000000..9b848315 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texcom.sci @@ -0,0 +1,41 @@ +// +// 09,12.05 +// 09.12.06 +// 09.12.07 +// 09.12.20 + +function Texcom(Meirei) + global Wfile FID; + if Meirei=='\thinlines' + Setpen(1); + return + end + if Meirei=='\thicklines' + Setpen(2); + return + end + if Meirei=='\Thicklines' + Setpen(3); + return + end; + + if Meirei=='' // 09.12.07 + Tmp=[]; + else + Tmp=mtlb_findstr(Meirei,'newline'); + end; + if length(Tmp)>0 + if Wfile=='default' + mprintf('%s\n',''); + else + mfprintf(FID,'%s\n',''); + end; + return; + end; + if Wfile=='default' + mprintf('%s%s\n',Meirei,'%'); + else + mfprintf(FID,'%s%s\n',Meirei,'%'); + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texctr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texctr.bin Binary files differnew file mode 100644 index 00000000..e04419ed --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texctr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texctr.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texctr.sci new file mode 100755 index 00000000..2a8b08ca --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texctr.sci @@ -0,0 +1,15 @@ +// +// 2010.05.15 + +function Out=Texctr(N) + if type(N)==1 + Alpha='abcdefghijklmnopqrstuvwxyz'; + Out='ketpicctr'+part(Alpha,N); + else + if part(N,1)=='\' + Out=part(N,2:length(N)); + else + Out=N; + end; + end; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texelse.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texelse.bin Binary files differnew file mode 100644 index 00000000..30d0e388 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texelse.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texelse.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texelse.sci new file mode 100755 index 00000000..8ef93556 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texelse.sci @@ -0,0 +1,7 @@ +// 10.04.16 +// 10.04.18 + +function Texelse() + Texcom(''); + Texcom('\else'); +endfunction;
\ No newline at end of file diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texend.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texend.bin Binary files differnew file mode 100644 index 00000000..89cf7657 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texend.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texend.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texend.sci new file mode 100755 index 00000000..a3139873 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texend.sci @@ -0,0 +1,5 @@ +// 01.10.21 + +function Texend() + Closephr(); +endfunction
\ No newline at end of file diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texendfor.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texendfor.bin Binary files differnew file mode 100644 index 00000000..72f260ac --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texendfor.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texendfor.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texendfor.sci new file mode 100755 index 00000000..ecb7b788 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texendfor.sci @@ -0,0 +1,12 @@ +// 10.04.16 + +function Texendfor(I) + global TEXFORLEVEL TEXFORLAST + Last=TEXFORLAST(TEXFORLEVEL); + Texcom(''); + Texcom('\ifnum'+Texthectr(I)+'<'+Last); + Texcom('\repeat'); + Texcom('}'); + TEXFORLEVEL=TEXFORLEVEL-1; + TEXFORLAST=Mixsub(1:(length(TEXFORLAST)-1),TEXFORLAST); +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texendif.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texendif.bin Binary files differnew file mode 100644 index 00000000..bd069613 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texendif.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texendif.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texendif.sci new file mode 100755 index 00000000..97d32d85 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texendif.sci @@ -0,0 +1,8 @@ +// 10.04.16 +// 10.04.18 + +function Texendif() + Texcom(''); // + Texcom('\fi'); + Texcom('}'); +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texfor.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texfor.bin Binary files differnew file mode 100644 index 00000000..b9861fc7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texfor.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texfor.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texfor.sci new file mode 100755 index 00000000..0c239842 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texfor.sci @@ -0,0 +1,15 @@ +// 10.04.16 +// 10.05.12 +// 10.10.20 ( available for numeric ) + +function Texfor(I,First,Last) + global TEXFORLEVEL TEXFORLAST + TEXFORLEVEL=TEXFORLEVEL+1; + Texsetctr(I,'0'); + Texsetctr(I,string(First)+'-1'); + Texcom(''); + Texcom('{'); + Texcom('\loop'); + Texsetctr(I,'+1'); + TEXFORLAST($+1)=string(Last); +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texforinit.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texforinit.bin Binary files differnew file mode 100644 index 00000000..3d33948a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texforinit.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texforinit.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texforinit.sci new file mode 100755 index 00000000..f661c649 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texforinit.sci @@ -0,0 +1,7 @@ +// 10.04.18 + +function Texforinit() + global TEXFORLEVEL TEXFORLAST + TEXFORLEVEL=0; + TEXFORLAST=list(); +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texif.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texif.bin Binary files differnew file mode 100644 index 00000000..6f53de74 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texif.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texif.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texif.sci new file mode 100755 index 00000000..8cbae5dc --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texif.sci @@ -0,0 +1,19 @@ +// 10.04.16 +// 10.04.18 +// 10.05.03 + +function Texif(varargin) + Condstr=varargin(1); + Tp=0; + if length(varargin)>1 + Tp=varargin(2); + end; + Texcom(''); + Texcom('{'); + if Tp==0 + Texcom('\ifnum '); + else + Texcom('\ifdim '); + end; + Texcom(Condstr+' '); +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texletter.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texletter.bin Binary files differnew file mode 100644 index 00000000..4dea33e2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texletter.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texletter.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texletter.sci new file mode 100755 index 00000000..f83cc8c8 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texletter.sci @@ -0,0 +1,44 @@ +// 10.01.07 + +function Texletter(varargin) + global Wfile FID MEMORI; + Nargs=length(varargin); + for I=1:3:Nargs + P=varargin(I); + X=P(1); + if type(X)==1 + X=string(X); + end; + Y=P(2); + if type(Y)==1 + Y=string(Y); + end; + Houkou=varargin(I+1); + Mojiretu=varargin(I+2); + Hset=Houkou; + Vhoko='c'; + if mtlb_findstr(Hset,'n')~=[] + Vhoko='n'; + end + if mtlb_findstr(Hset,'s')~=[] + Vhoko='s'; + end + Hhoko='c'; + if mtlb_findstr(Hset,'e')~=[] + Hhoko='e'; + end + if mtlb_findstr(Hset,'w')~=[] + Hhoko='w'; + end + Hoko=Vhoko+Hhoko; + CalcWidth(Hoko,Mojiretu); + CalcHeight(Hoko,Mojiretu); + Tmp='\put('+X+','+Y+'){\hspace*{\Width}'; + Str=Tmp+'\raisebox{\Height}{'+Mojiretu+'}}%'; + if Wfile=='default' + mprintf('%s\n',Str); + else + mfprintf(FID,'%s\n',Str); + end + end +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texnewcmd.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texnewcmd.bin Binary files differnew file mode 100644 index 00000000..a44b7156 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texnewcmd.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texnewcmd.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texnewcmd.sci new file mode 100755 index 00000000..b3b9a417 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texnewcmd.sci @@ -0,0 +1,20 @@ +// 10.01.21 + +function Texnewcmd(varargin) + Nargs=length(varargin); + Str=varargin(1); + S='\newcommand{'+Str+'}'; + if Nargs>1 + Tmp=string(varargin(2)); + S=S+'['+Tmp+']'; + end; + if Nargs>2 + Tmp=varargin(3); + if type(Tmp)==1 + Tmp=string(Tmp); + end; + S=S+'['+Tmp+']'; + end; + S=S+'{'; + Texcom(S); +endfunction
\ No newline at end of file diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texnewctr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texnewctr.bin Binary files differnew file mode 100644 index 00000000..c0acb00b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texnewctr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texnewctr.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texnewctr.sci new file mode 100755 index 00000000..03cabf81 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texnewctr.sci @@ -0,0 +1,13 @@ +// 10.01.21 + +function Texnewctr(N) + if type(N)==10 + Str='\newcounter{'+N+'}'; + Texcom(Str); + else + for I=N + Str='\newcounter{'+Texctr(I)+'}'; + Texcom(Str); + end; + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texrenewcmd.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texrenewcmd.bin Binary files differnew file mode 100644 index 00000000..507705b2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texrenewcmd.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texrenewcmd.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texrenewcmd.sci new file mode 100755 index 00000000..b8926589 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texrenewcmd.sci @@ -0,0 +1,20 @@ +// 10.01.21 + +function Texrenewcmd(varargin) + Nargs=length(varargin); + Str=varargin(1); + S='\renewcommand{'+Str+'}'; + if Nargs>1 + Tmp=string(varargin(2)); + S=S+'['+Tmp+']'; + end; + if Nargs>2 + Tmp=varargin(3); + if type(Tmp)==1 + Tmp=string(Tmp); + end; + S=S+'['+Tmp+']'; + end; + S=S+'{'; + Texcom(S); +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texsetctr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texsetctr.bin Binary files differnew file mode 100644 index 00000000..d9c2bcae --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texsetctr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texsetctr.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texsetctr.sci new file mode 100755 index 00000000..166af676 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texsetctr.sci @@ -0,0 +1,70 @@ +// 10.01.21 + +function Texsetctr(Nctr,Opstr) + Ctr=Texctr(Nctr); + Opstr=Opstr+'%'; + OperL='+-*/%'; + Oper=''; + Va=''; + Evflg=0; + Paflg=0; + for I=1:length(Opstr) + Tmp=part(Opstr,I); + if Tmp=='(' + Paflg=1; + if length(Va)>0 + Evflg=1; + Va=Va+Tmp; + end; + continue; + end; + if Tmp==')' + Paflg=0; + if Evflg>0 + Va=Va+Tmp; + end; + continue; + end; + if Paflg>0 + Va=Va+Tmp; + continue; + end; + if length(mtlb_findstr(Tmp,OperL))==0 + Va=Va+Tmp; + else + if Evflg>0 + Tmp1=evstr(Va); + Va='\value{'+Tmp1+'}'; + Evflg=0; + end; + if Oper=='' + if length(Va)>0 + Str='\setcounter{'+Ctr+'}{'+Va+'}'; + Texcom(Str); + end; + Oper=Tmp; + Va=''; + elseif Oper=='+' + Str='\addtocounter{'+Ctr+'}{'+Va+'}'; + Texcom(Str); + Oper=Tmp; + Va=''; + elseif Oper=='-' + Str='\addtocounter{'+Ctr+'}{-'+Va+'}'; + Texcom(Str); + Oper=Tmp; + Va=''; + elseif Oper=='*' + Str='\multiply\value{'+Ctr+'} by '+Va; + Texcom(Str); + Oper=Tmp; + Va=''; + elseif Oper=='/' + Str='\divide\value{'+Ctr+'} by '+Va; + Texcom(Str); + Oper=Tmp; + Va='' + end; + end; + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texthectr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texthectr.bin Binary files differnew file mode 100644 index 00000000..26d4e8ef --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texthectr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texthectr.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texthectr.sci new file mode 100755 index 00000000..469da91a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texthectr.sci @@ -0,0 +1,5 @@ +// 2010.02.12 + +function Out=Texthectr(N) + Out='\the'+Texctr(N); +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texvalctr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texvalctr.bin Binary files differnew file mode 100644 index 00000000..fd208b4a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texvalctr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texvalctr.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texvalctr.sci new file mode 100755 index 00000000..96d1c734 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texvalctr.sci @@ -0,0 +1,5 @@ +// 2010.02.12 + +function Out=Texvalctr(N) + Out='\value{'+Texctr(N)+'}'; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texvctr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texvctr.bin Binary files differnew file mode 100644 index 00000000..74890021 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texvctr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texvctr.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texvctr.sci new file mode 100755 index 00000000..fc443411 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Texvctr.sci @@ -0,0 +1,6 @@ +// 10.01.21 + +function Out=Texvctr(N) + Out='\value{'+Texctr(N)+'}'; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Thetadegree.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Thetadegree.bin Binary files differnew file mode 100644 index 00000000..67df224b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Thetadegree.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Thetadegree.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Thetadegree.sci new file mode 100755 index 00000000..c6ceff89 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Thetadegree.sci @@ -0,0 +1,7 @@ +// 08.07.11 + +function Ang=Thetadegree() + global THETA; + Ang=THETA*180/%pi; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/ThisVersion.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/ThisVersion.bin Binary files differnew file mode 100644 index 00000000..3cbb70be --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/ThisVersion.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/ThisVersion.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/ThisVersion.sci new file mode 100755 index 00000000..a7a3fc2d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/ThisVersion.sci @@ -0,0 +1,5 @@ +function Y=ThisVersion() + global THISVERSION + Y=THISVERSION +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Tolist.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Tolist.bin Binary files differnew file mode 100644 index 00000000..a0704ffc --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Tolist.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Tolist.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Tolist.sci new file mode 100755 index 00000000..8ef53bd5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Tolist.sci @@ -0,0 +1,8 @@ +// 10.01.02 + +function Out=Tolist(LG) + Out=list(); + for I=1:length(LG) + Out($+1)=LG(I); + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Translate3data.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Translate3data.bin Binary files differnew file mode 100644 index 00000000..55b89eee --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Translate3data.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Translate3data.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Translate3data.sci new file mode 100755 index 00000000..98d69544 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Translate3data.sci @@ -0,0 +1,36 @@ +// 08.08.15 +// 15.04.12 + +function Out=Translate3data(varargin) + Nargs=length(varargin); + Pd3=varargin(1); + Pd3=Flattenlist(Pd3); // 15.04.12 + Mv=varargin(2); + if type(Mv)==1 & length(Mv)==1 + Mv=[varargin(2),varargin(3),varargin(4)]; + end; +// if Mixtype(Pd3)==1 // 15.04.12 from +// Pd3=MixS(Pd3); +// elseif Mixtype(Pd3)==3 +// Tmp=[]; +// for I=1:Mixlength(Pd3) +// Tmp=Mixjoin(Tmp,Mixop(I,Pd3)); +// end; +// Pd3=Tmp; +// end; + Out=[]; + for I=1:length(Pd3) + PD=Op(I,Pd3); + Ans=[]; + for J=1:size(PD,1) + P=PD(J,:); + Tmp=P+Mv;; + Ans=[Ans;Tmp]; + end; + Out=Mixadd(Out,Ans); + end; + if length(Out)==1 + Out=Op(1,Out); + end; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Translatedata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Translatedata.bin Binary files differnew file mode 100644 index 00000000..2239d9d6 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Translatedata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Translatedata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Translatedata.sci new file mode 100755 index 00000000..a2e31085 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Translatedata.sci @@ -0,0 +1,42 @@ +// 08.05.25 Koshikawa +// 08.09.20 +// 15.04.12 + +function OutL=Translatedata(varargin) + Nargs=length(varargin); + ML=varargin(1); + ML=Flattenlist(ML); + Tmp=varargin(2); + if type(Tmp)==1 & length(Tmp)>1 + A=Tmp(1); B=Tmp(2); + else + A=Tmp; + if Nargs>=3 + B=varargin(3); + else + B=0; + end; + end; + OutL=[]; + for N=1:length(ML) + GL=Op(N,ML); + Out=[]; + for I=1:size(GL,1) + Tmp=GL(I,:); + X1=Tmp(1); + Y1=Tmp(2); + if Tmp==[%inf,%inf] + X2=X1; + Y2=Y1; + else + X2=X1+A; + Y2=Y1+B; + end + Out=[Out;X2,Y2]; + end; + OutL=Mixadd(OutL,Out); + end; + if length(OutL)==1 + OutL=Op(1,OutL); + end; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Trunc.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Trunc.bin Binary files differnew file mode 100644 index 00000000..4d0816a4 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Trunc.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Trunc.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Trunc.sci new file mode 100755 index 00000000..b4705593 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Trunc.sci @@ -0,0 +1,10 @@ +// 08.05.20 + +function N=Trunc(X) + if X>=0 + N=floor(X) + else + N=ceil(X) + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Unscaling.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Unscaling.bin Binary files differnew file mode 100644 index 00000000..c9d8edf5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Unscaling.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Unscaling.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Unscaling.sci new file mode 100755 index 00000000..74910ceb --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Unscaling.sci @@ -0,0 +1,12 @@ +function Out=Unscaling(G) + global LOGX LOGY SCALEX SCALEY; + GLg=[G(:,1)/SCALEX,G(:,2)/SCALEY]; + Out=GLg; + if LOGX==1 + Out=[10^(GLg(:,1)),GLg(:,2)]; + end; + if LOGY==1 + Out=[GLg(:,1),10^(GLg(:,2))]; + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Vecnagasa.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Vecnagasa.bin Binary files differnew file mode 100644 index 00000000..ba124a81 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Vecnagasa.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Vecnagasa.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Vecnagasa.sci new file mode 100755 index 00000000..4bc7684c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Vecnagasa.sci @@ -0,0 +1,11 @@ +function L=Vecnagasa(varargin) + PA=varargin(1); + if length(varargin)>1 + PB=varargin(2); + else + PB=zeros(1,length(PA)); + end + Tmp=PB-PA; + L=sqrt(Tmp*Tmp'); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Vecnagasa2.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Vecnagasa2.bin Binary files differnew file mode 100644 index 00000000..b524d528 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Vecnagasa2.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Vecnagasa2.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Vecnagasa2.sci new file mode 100755 index 00000000..527d3834 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Vecnagasa2.sci @@ -0,0 +1,11 @@ +function L=Vecnagasa2(varargin) + PA=varargin(1); + if length(varargin)>1 + PB=varargin(2); + else + PB=[0,0]; + end + Tmp=PB-PA; + L=Tmp*Tmp'; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Viewfrom.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Viewfrom.bin Binary files differnew file mode 100644 index 00000000..cef98adc --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Viewfrom.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Viewfrom.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Viewfrom.sci new file mode 100755 index 00000000..44bde517 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Viewfrom.sci @@ -0,0 +1,21 @@ +// 08.10.26 + +function Out=Viewfrom(varargin) + global THETA PHI + Nargs=length(varargin); + Nvec=varargin(1); + GL=varargin(2); + Flg=1; + if Nargs>=3 + Flg=varargin(3); + end; + Theta=THETA; Phi=PHI; + Tmp=Rotate3data(GL,Nvec,[-1,0,0]); + THETA=%pi/2; PHI=0; + Out=Projpara(Tmp); + if Flg==1 + Windisp(Out); + end; + THETA=Theta; PHI=Phi; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Vtickmark.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Vtickmark.bin Binary files differnew file mode 100644 index 00000000..278e7845 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Vtickmark.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Vtickmark.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Vtickmark.sci new file mode 100644 index 00000000..de320918 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Vtickmark.sci @@ -0,0 +1,144 @@ +// 08.05.26 Debugged +// 09.12.25 +// 11.04.13 debugged ( [a,b] ) +// 14.03.05 MARKLEN + +function Vtickmark(varargin) + global Wfile FID MARKLEN GENTEN YMIN YMAX; + Nargs=length(varargin); + ArgsL=list(varargin(1:Nargs)); + if type(Op(1,ArgsL))==10 + Str=Op(1,ArgsL); + Tmp=mtlb_findstr(Str,'m'); + if Tmp~=[] + I=Tmp(1); + else + I=0; + end + Tmp=mtlb_findstr(Str,'n'); + if Tmp~=[] + J=Tmp(1); + else + J=0; + end + Tmp=mtlb_findstr(Str,'r'); + if Tmp~=[] + K=Tmp(1); + else + K=0; + end; + if K>0 + Tmp=ascii(Str); + S=char(Tmp(K+1:length(Tmp))); + R=msscanf(S,'%f'); + if length(R)==0 + R=1; + end + else + R=1; + K=length(Str)+1; + end + if J>0 then + Tmp=ascii(Str); + S=char(Tmp(J+1:K-1)); + if S==[] + S=''; + end; + Dn=msscanf(S,'%d'); + if length(Dn)==0 + Dn=1; + end + else + Dn=1000; + J=length(Str)+1; + end + Tmp=ascii(Str); + S=char(Tmp(I+1:J-1)); + if S==[] + S=''; + end + Dm=msscanf(S,'%f'); + if length(Dm)==0 + Dm=1; + end + ArgsL=list(); + for I=1:floor((YMAX-GENTEN(2))/Dm) + ArgsL($+1)=I*Dm; + if I-floor(I/Dn)*Dn==0 + Str=string(I*Dm*R); + K=length(Str); + Tmp=ascii(Str); + if char(Tmp(K))=='.' + Str=char(Tmp(1:k-1)); + end + ArgsL($+1)=Str; + end + end + for I=-1:-1:ceil((YMIN-GENTEN(2))/Dm) + ArgsL($+1)=I*Dm; + if I-floor(I/Dn)*Dn==0 + Str=string(I*Dm*R); + K=length(Str); + Tmp=ascii(Str); + if char(Tmp(K))=='.' + Str=char(1:K-1); + end + ArgsL($+1)=Str; + end + end + end + MemoriList=list(); + Memori=list(); + for N=1:length(ArgsL) + Dt=Op(N,ArgsL); + if type(Dt)==1 & length(Dt)>1 + if length(Memori)>0 + MemoriList($+1)=Memori; + end + Memori=list(Dt(1),Dt(2)); + continue + end + if type(Dt)==10 + Memori($+1)=Dt; + else + if length(Memori)>0 + MemoriList($+1)=Memori; + end + Memori=list(GENTEN(1),Dt); + end + end + MemoriList($+1)=Memori; + for N=1:length(MemoriList) + Dt=MemoriList(N); + Ndt=length(Dt); + X=Op(1,Dt); + Y=Op(2,Dt); + Tmp=Doscaling([X,Y]); + X=Tmp(1); + Y=Tmp(2); + Moji=Op(Ndt,Dt); + Tmp1=Unscaling([X+MARKLEN,Y]); + Tmp2=Unscaling([X-MARKLEN,Y]); + Fd=Listplot([Tmp1,Tmp2]); + Drwline(Fd); + if Ndt==3 + Tmp=Unscaling([X-MARKLEN,Y]); + Expr(Tmp,'w',Moji); + end + if Ndt==4 + Houkou=Op(3,Dt); + if mtlb_findstr(Houkou,'w')~=[] + Tmp=Unscaling([X-MARKLEN,Y]); + Expr(Tmp,Houkou,Moji); + else + Tmp=Unscaling([X+MARKLEN,Y]); + Expr(Tmp,Houkou,Moji); + end + end + if Wfile=='default' + mprintf('%s\n','%'); + else + mfprintf(FID,'%s\n','%'); + end + end +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Windisp.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Windisp.bin Binary files differnew file mode 100644 index 00000000..6b3e87e9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Windisp.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Windisp.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Windisp.sci new file mode 100755 index 00000000..baa03e73 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Windisp.sci @@ -0,0 +1,110 @@ +// 08.05.16 Point style +// 08.05.17 MixL +// 08.05.19 Changed +// 08.05.21 Eps=0.1 +// 08.08.16 square +// 09.11.04 window option +// 09.11.07 gcf used +// 09.12.25 +// 10.01.01 +// 10.01.09 ' ' +// 10.01.10 drw one by one +// 10.02.08 revised for the case "a" +// 10.02.13 square debugged +// 10.02.21 square debugged (2) +// 10.02.23 case of mixlength=3 +// 10.04.10 Origin bug +// 11.05.29 Flattenlist used + +function Windisp(varargin) + global XMIN XMAX YMIN YMAX GENTEN + Nargs=length(varargin); + Tp=varargin(Nargs); + Ch=''; + if type(Tp)~=10 + scf(); + else + Ch=part(Tp,1); + Nargs=Nargs-1; + select Ch; + case 'N' then scf(); + case 'n' then scf(); + case 'C' then Tmp=gcf();clf('clear'); + case 'c' then Tmp=gcf();clf('clear'); + case 'A' then Tmp=gcf(); + case 'a' then Tmp=gcf(); + else + Tmp1=part(Tp,length(Tp)); + Tmp2=part(Tp,1:length(Tp)-1); + Tmp3=evstr(Tmp2); + scf(Tmp3); + if Tmp1=='C'|Tmp1=='c' + clf('clear'); + end; + end; + end; + Eps=0.1; + Tmp=Doscaling([XMIN,YMIN]); + Xm=Tmp(1); Ym=Tmp(2); + Tmp=Doscaling([XMAX,YMAX]); + XM=Tmp(1); YM=Tmp(2); + C=[(Xm+XM)/2,(Ym+YM)/2]; + H=max(XM-Xm,YM-Ym)/2; + R1=C-H; R2=C+H; + R1=Unscaling(R1); + R2=Unscaling(R2); + if (Ch~='A')&(Ch~='a') + Tmp1=R1(1); + Tmp2=R2(1); + Tmp3=R1(2); + Tmp4=R2(2); + square(Tmp1,Tmp3,Tmp2,Tmp4);// + P=Framedata([XMIN,XMAX],[YMIN,YMAX]); + Tmp1=P(:,1)'; + Tmp2=P(:,2)'; + plot2d(Tmp1,Tmp2); + PtO=GENTEN; // 10.04.10 + if (PtO(2)>=YMIN) & (PtO(2)<=YMAX) // + P=Listplot([XMIN,PtO(2)],[XMAX,PtO(2)]); + Tmp1=P(:,1)'; + Tmp2=P(:,2)'; + plot2d(Tmp1,Tmp2,style=[3]); + end; + if (PtO(1)>=XMIN) & (PtO(1)<=XMAX) + P=Listplot([PtO(1),YMIN],[PtO(1),YMAX]); + Tmp1=P(:,1)'; + Tmp2=P(:,2)'; + plot2d(Tmp1,Tmp2,style=[3]); + end; + end; + for I=1:Nargs + Tmp=varargin(I); + Pdata=Flattenlist(Tmp); // + for II=1:length(Pdata) + Tmp=Op(II,Pdata); + P=MakeCurves(Tmp,0); + P=Unscaling(P); + Ndm=Dataindex(P); + for J=1:size(Ndm,1) + Q=P(Ndm(J,1):Ndm(J,2),:) + if size(Q,1)==1 + for K=1:2:length(Q) + plot2d(Q(K),Q(K+1),style=[-3]); + end + else + Tmp1=Q(:,1)'; + Tmp2=Q(:,2)'; + plot2d(Tmp1,Tmp2); + end + end + end +// for II=2:length(Pdata) +// Tmp=Op(II,Pdata); +// Windisp(Tmp,'a'); +// end; + end + for I=2:Nargs + Pdata=varargin(I); + Windisp(Pdata,'a'); + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/WireHiddenData.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/WireHiddenData.bin Binary files differnew file mode 100644 index 00000000..68abd1d4 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/WireHiddenData.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/WireHiddenData.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/WireHiddenData.sci new file mode 100755 index 00000000..24920661 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/WireHiddenData.sci @@ -0,0 +1,7 @@ +// 08.12.11 + +function Out=WireHiddenData() + global HIDDENWIREDATA + Out=HIDDENWIREDATA; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/WirePt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/WirePt.bin Binary files differnew file mode 100644 index 00000000..085de36e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/WirePt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/WirePt.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/WirePt.sci new file mode 100755 index 00000000..d62acaf3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/WirePt.sci @@ -0,0 +1,8 @@ +// 08.09.15 +// 09.09.10 registered + +function Out=WirePt() + global WIREPT + Out=WIREPT; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Wireparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Wireparadata.bin Binary files differnew file mode 100644 index 00000000..d84e23dc --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Wireparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Wireparadata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Wireparadata.sci new file mode 100755 index 00000000..b46e359c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Wireparadata.sci @@ -0,0 +1,120 @@ +// 08.09.15 +// 08.10.10 +// 08.10.11 +// 08.10.15 +// 08.10.21 +// 08.10.25 +// 09.09.10 +// 10.02.16 Eps +// 17.05.07 Eps changed + +function FsL=Wireparadata(varargin) + global WIREPT PARTITIONPT HIDDENDATA HIDDENWIREDATA + timer(); + Nargs=length(varargin); + Fbdy=Projpara(varargin(1)); + Fd=varargin(2); N=3; + FdL=Fullformfunc(Fd); + Fxy=Mixop(1,FdL); + Tmp=Mixop(5,FdL); + K=mtlb_findstr(Tmp,'='); + Uname=part(Tmp,1:K-1); + Urg=evstr(part(Tmp,K+1:length(Tmp))); + Tmp=Mixop(6,FdL); + K=mtlb_findstr(Tmp,'='); + Vname=part(Tmp,1:K-1); + Vrg=evstr(part(Tmp,K+1:length(Tmp))); + DuL=varargin(N); + DvL=varargin(N+1); + N=N+2; + Np=[50,50]; + if Nargs>=N + Np=varargin(N); + if type(Np)==1 & length(Np)==1 + Np=[Np,Np]; + end; + end + Eps=[0.05,1]; // + if Nargs>=N+1 + Eps=varargin(N+1); + end; + Eps2=0.2; + if Nargs>=N+2 + Eps2=varargin(N+2); + end; + Tmp=Mixop(2,Fd); + K=mtlb_findstr(Tmp,'='); + Xname=part(Tmp,1:K-1); + Tmp=Mixop(3,Fd); + K=mtlb_findstr(Tmp,'='); + Yname=part(Tmp,1:K-1); + Umin=Urg(1); Umax=Urg(2); + Vmin=Vrg(1); Vmax=Vrg(2); + if type(DuL)==10 + DuL=evstr(DuL); + elseif length(DuL)==1 + Tmp=(Umax-Umin)/(DuL+1); + Tmp1=Umin+Tmp; + Tmp2=Umin+DuL*Tmp + DuL=[Tmp1:Tmp:Tmp2]; + end; + if type(DvL)==10 + DvL=evstr(DvL); + elseif length(DvL)==1 + Tmp=(Vmax-Vmin)/(DvL+1); + Tmp1=Vmin+Tmp; + Tmp2=Vmin+DvL*Tmp + DvL=[Tmp1:Tmp:Tmp2]; + end; + Fbdxy=Makexybdy(Fd,Np); + WIREPT=[]; + HIDDENWIREDATA=[]; + FsL=[]; + for I=1:length(DuL) + U=DuL(I); + Tmp=Paramplot('[U,V]','V=[Vmin,Vmax]','N=Np(2)');//17.05.07 + FkL=Cuspsplitpara(Tmp,Fd,Eps(1)); // + for J=1:Mixlength(FkL) + Fk=Mixop(J,FkL); + Tmp=Projpara(Fk); + Par=Partitionseg(Tmp,Fbdy,Eps(1),Eps2); // + if Mixlength(PARTITIONPT)>2 + for K=2:Mixlength(PARTITIONPT) + Tmp1=Mixop(K,PARTITIONPT); + WIREPT=Mixadd(WIREPT,Tmp1); + end; + end; + Fs=Nohiddenpara2(Par,Fk,Fd,1,Np,Eps); + HIDDENWIREDATA=Mixjoin(HIDDENWIREDATA,HIDDENDATA); + FsL=Mixjoin(FsL,Fs); + end; + end; + Nx=Mixlength(FsL); + if Nx>0 + Mixdisp(Mix(Uname,'-data=',1,':',Nx,' Time=',timer())); + end; + for I=1:length(DvL) + V=DvL(I); + Tmp=Paramplot('[U,V]','U=[Umin,Umax]','N=Np(1)');//17.05.07 + FkL=Cuspsplitpara(Tmp,Fd,Eps(1)); // + for J=1:Mixlength(FkL) + Fk=Mixop(J,FkL); + Tmp=Projpara(Fk); + Par=Partitionseg(Tmp,Fbdy,Eps(1),Eps2); // + if Mixlength(PARTITIONPT)>2 + for K=2:Mixlength(PARTITIONPT) + Tmp1=Mixop(K,PARTITIONPT); + WIREPT=Mixadd(WIREPT,Tmp1); + end; + end; + Fs=Nohiddenpara2(Par,Fk,Fd,1,Np,Eps); + HIDDENWIREDATA=Mixjoin(HIDDENWIREDATA,HIDDENDATA); + FsL=Mixjoin(FsL,Fs); + end; + end; + Ny=Mixlength(FsL)-Nx; + if Ny>0 + Mixdisp(Mix(Vname,'-data=',Nx+1,':',Nx+Ny,' Time=',timer())); + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Wirepersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Wirepersdata.bin Binary files differnew file mode 100644 index 00000000..01266c62 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Wirepersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Wirepersdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Wirepersdata.sci new file mode 100755 index 00000000..11def80c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Wirepersdata.sci @@ -0,0 +1,120 @@ +// 08.09.21 +// 08.10.10 +// 08.10.11 +// 08.10.15 +// 08.10.21 +// 08.10.25 +// 09.09.10 +// 10.02.16 Eps +// 17.05.07 Eps changed + +function FsL=Wirepersdata(varargin) + global WIREPT PARTITIONPT HIDDENDATA HIDDENWIREDATA + timer(); + Nargs=length(varargin); + Fbdy=Projpers(varargin(1)); + Fd=varargin(2); N=3; + FdL=Fullformfunc(Fd); + Fxy=Mixop(1,FdL); + Tmp=Mixop(5,FdL); + K=mtlb_findstr(Tmp,'='); + Uname=part(Tmp,1:K-1); + Urg=evstr(part(Tmp,K+1:length(Tmp))); + Tmp=Mixop(6,FdL); + K=mtlb_findstr(Tmp,'='); + Vname=part(Tmp,1:K-1); + Vrg=evstr(part(Tmp,K+1:length(Tmp))); + DuL=varargin(N); + DvL=varargin(N+1); + N=N+2; + Np=[50,50]; + if Nargs>=N + Np=varargin(N); + if type(Np)==1 & length(Np)==1 + Np=[Np,Np]; + end; + end + Eps=[0.05,1]; // + if Nargs>=N+1 + Eps=varargin(N+1); + end; + Eps2=0.2; + if Nargs>=N+2 + Eps2=varargin(N+2); + end; + Tmp=Mixop(2,Fd); + K=mtlb_findstr(Tmp,'='); + Xname=part(Tmp,1:K-1); + Tmp=Mixop(3,Fd); + K=mtlb_findstr(Tmp,'='); + Yname=part(Tmp,1:K-1); + Umin=Urg(1); Umax=Urg(2); + Vmin=Vrg(1); Vmax=Vrg(2); + if type(DuL)==10 + DuL=evstr(DuL); + elseif length(DuL)==1 + Tmp=(Umax-Umin)/(DuL+1); + Tmp1=Umin+Tmp; + Tmp2=Umin+DuL*Tmp + DuL=[Tmp1:Tmp:Tmp2]; + end; + if type(DvL)==10 + DvL=evstr(DvL); + elseif length(DvL)==1 + Tmp=(Vmax-Vmin)/(DvL+1); + Tmp1=Vmin+Tmp; + Tmp2=Vmin+DvL*Tmp + DvL=[Tmp1:Tmp:Tmp2]; + end; + Fbdxy=Makexybdy(Fd,Np); + WIREPT=[]; + HIDDENWIREDATA=[]; + FsL=[]; + for I=1:length(DuL) + U=DuL(I); + Tmp=Paramplot('[U,V]','V=[Vmin,Vmax]','N=Np(2)');//17.05.07 + FkL=Cuspsplitpers(Tmp,Fd,Eps(1)); // + for J=1:Mixlength(FkL) + Fk=Mixop(J,FkL); + Tmp=Projpers(Fk); + Par=Partitionseg(Tmp,Fbdy,Eps(1),Eps2); // + if Mixlength(PARTITIONPT)>2 + for K=2:Mixlength(PARTITIONPT) + Tmp1=Mixop(K,PARTITIONPT); + WIREPT=Mixadd(WIREPT,Tmp1); + end; + end; + Fs=Nohiddenpers2(Par,Fk,Fd,1,Np,Eps); + HIDDENWIREDATA=Mixjoin(HIDDENWIREDATA,HIDDENDATA); + FsL=Mixjoin(FsL,Fs); + end; + end; + Nx=Mixlength(FsL); + if Nx>0 + Mixdisp(Mix(Uname,'-data=',1,':',Nx,' Time=',timer())); + end; + for I=1:length(DvL) + V=DvL(I); + Tmp=Paramplot('[U,V]','U=[Umin,Umax]','N=Np(1)'); + FkL=Cuspsplitpers(Tmp,Fd,Eps(1)); // + for J=1:Mixlength(FkL) + Fk=Mixop(J,FkL); + Tmp=Projpers(Fk); + Par=Partitionseg(Tmp,Fbdy,Eps(1),Eps2); //17.05.07 + if Mixlength(PARTITIONPT)>2 + for K=2:Mixlength(PARTITIONPT) + Tmp1=Mixop(K,PARTITIONPT); + WIREPT=Mixadd(WIREPT,Tmp1); + end; + end; + Fs=Nohiddenpers2(Par,Fk,Fd,1,Np,Eps); + HIDDENWIREDATA=Mixjoin(HIDDENWIREDATA,HIDDENDATA); + FsL=Mixjoin(FsL,Fs); + end; + end; + Ny=Mixlength(FsL)-Nx; + if Ny>0 + Mixdisp(Mix(Vname,'-data=',Nx+1,':',Nx+Ny,' Time=',timer())); + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Wirerawparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Wirerawparadata.bin Binary files differnew file mode 100644 index 00000000..4e6ca980 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Wirerawparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Wirerawparadata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Wirerawparadata.sci new file mode 100755 index 00000000..59c5ba54 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Wirerawparadata.sci @@ -0,0 +1,86 @@ +// 08.09.15 +// 08.10.10 +// 08.10.21 +// 09.09.10 + +function FsL=Wirerawparadata(varargin) + timer(); + Nargs=length(varargin); + Fbdy=Projpara(varargin(1)); + Fd=varargin(2); N=3; + FdL=Fullformfunc(Fd); + Fxy=Mixop(1,FdL); + Tmp=Mixop(5,FdL); + K=mtlb_findstr(Tmp,'='); + Uname=part(Tmp,1:K-1); + Urg=evstr(part(Tmp,K+1:length(Tmp))); + Tmp=Mixop(6,FdL); + K=mtlb_findstr(Tmp,'='); + Vname=part(Tmp,1:K-1); + Vrg=evstr(part(Tmp,K+1:length(Tmp))); + DuL=varargin(N); + DvL=varargin(N+1); + N=N+2; + Np=[50,50]; + if Nargs>=N + Np=varargin(N); + if type(Np)==1 & length(Np)==1 + Np=[Np,Np]; + end; + end + Eps=0.05; + if Nargs>=N+1 + Eps=varargin(N+1); + end; + Eps2=0.2; + if Nargs>=N+2 + Eps2=varargin(N+2); + end; + Umin=Urg(1); Umax=Urg(2); + Vmin=Vrg(1); Vmax=Vrg(2); + if type(DuL)==10 + DuL=evstr(DuL); + elseif length(DuL)==1 + Tmp=(Umax-Umin)/(DuL+1); + Tmp1=Umin+Tmp; + Tmp2=Umin+DuL*Tmp + DuL=[Tmp1:Tmp:Tmp2]; + end; + if type(DvL)==10 + DvL=evstr(DvL); + elseif length(DvL)==1 + Tmp=(Vmax-Vmin)/(DvL+1); + Tmp1=Vmin+Tmp; + Tmp2=Vmin+DvL*Tmp + DvL=[Tmp1:Tmp:Tmp2]; + end; + Fbdxy=Makexybdy(Fd,Np); + FsL=[]; + for I=1:length(DuL) + U=DuL(I); + Tmp=Paramplot('[U,V]','V=[Vmin,Vmax]','N=Np(1)'); + FkL=Cuspsplitpara(Tmp,Fd,Eps); + for J=1:Mixlength(FkL) + Fk=Mixop(J,FkL); + FsL=Mixadd(FsL,Fk); + end; + end; + Nx=Mixlength(FsL); + if Nx>0 + Mixdisp(Mix(Uname,'-data=',1,':',Nx,' Time=',timer())); + end; + for I=1:length(DvL) + V=DvL(I); + Tmp=Paramplot('[U,V]','U=[Umin,Umax]','N=Np(2)'); + FkL=Cuspsplitpara(Tmp,Fd,Eps); + for J=1:Mixlength(FkL) + Fk=Mixop(J,FkL); + FsL=Mixadd(FsL,Fk); + end; + end; + Ny=Mixlength(FsL)-Nx; + if Ny>0 + Mixdisp(Mix(Vname,'-data=',Nx+1,':',Nx+Ny,' Time=',timer())); + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Wirerawpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Wirerawpersdata.bin Binary files differnew file mode 100644 index 00000000..2718cfd0 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Wirerawpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Wirerawpersdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Wirerawpersdata.sci new file mode 100755 index 00000000..d168b4f7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Wirerawpersdata.sci @@ -0,0 +1,86 @@ +// 08.09.21 +// 08.10.10 +// 08.10.21 +// 09.09.10 + +function FsL=Wirerawpersdata(varargin) + timer(); + Nargs=length(varargin); + Fbdy=Projpers(varargin(1)); + Fd=varargin(2); N=3; + FdL=Fullformfunc(Fd); + Fxy=Mixop(1,FdL); + Tmp=Mixop(5,FdL); + K=mtlb_findstr(Tmp,'='); + Uname=part(Tmp,1:K-1); + Urg=evstr(part(Tmp,K+1:length(Tmp))); + Tmp=Mixop(6,FdL); + K=mtlb_findstr(Tmp,'='); + Vname=part(Tmp,1:K-1); + Vrg=evstr(part(Tmp,K+1:length(Tmp))); + DuL=varargin(N); + DvL=varargin(N+1); + N=N+2; + Np=[50,50]; + if Nargs>=N + Np=varargin(N); + if type(Np)==1 & length(Np)==1 + Np=[Np,Np]; + end; + end + Eps=0.05; + if Nargs>=N+1 + Eps=varargin(N+1); + end; + Eps2=0.2; + if Nargs>=N+2 + Eps2=varargin(N+2); + end; + Umin=Urg(1); Umax=Urg(2); + Vmin=Vrg(1); Vmax=Vrg(2); + if type(DuL)==10 + DuL=evstr(DuL); + elseif length(DvL)==1 + Tmp=(Umax-Umin)/(DuL+1); + Tmp1=Umin+Tmp; + Tmp2=Umin+DuL*Tmp + DuL=[Tmp1:Tmp:Tmp2]; + end; + if type(DvL)==10 + DvL=evstr(DvL); + elseif length(DvL)==1 + Tmp=(Vmax-Vmin)/(DvL+1); + Tmp1=Vmin+Tmp; + Tmp2=Vmin+DvL*Tmp + DvL=[Tmp1:Tmp:Tmp2]; + end; + Fbdxy=Makexybdy(Fd,Np); + FsL=[]; + for I=1:length(DuL) + U=DuL(I); + Tmp=Paramplot('[U,V]','V=[Vmin,Vmax]','N=Np(1)'); + FkL=Cuspsplitpers(Tmp,Fd,Eps); + for J=1:Mixlength(FkL) + Fk=Mixop(J,FkL); + FsL=Mixadd(FsL,Fk); + end; + end; + Nx=Mixlength(FsL); + if Nx>0 + Mixdisp(Mix(Uname,'-data=',1,':',Nx,' Time=',timer())); + end; + for I=1:length(DvL) + V=DvL(I); + Tmp=Paramplot('[U,V]','U=[Umin,Umax]','N=Np(2)'); + FkL=Cuspsplitpers(Tmp,Fd,Eps); + for J=1:Mixlength(FkL) + Fk=Mixop(J,FkL); + FsL=Mixadd(FsL,Fk); + end; + end; + Ny=Mixlength(FsL)-Nx; + if Ny>0 + Mixdisp(Mix(Vname,'-data=',Nx+1,':',Nx+Ny,' Time=',timer())); + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/WriteOutData.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/WriteOutData.bin Binary files differnew file mode 100644 index 00000000..3016dd47 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/WriteOutData.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/WriteOutData.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/WriteOutData.sci new file mode 100644 index 00000000..059ac6d5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/WriteOutData.sci @@ -0,0 +1,55 @@ +// s:2014.10.10 +// e:2014.12.14 ( for 3d ) +// e:2015.10.29 ( endmark //// ) + +function WriteOutData(varargin) + global Fnameout + Nargs=length(varargin); + if modulo(Nargs,2)==0 then + Fname=Fnameout; + Nst=1; + else + Fname=varargin(1); + Nst=2; + end; + Fid=mopen(Fname,'w'); + for N=Nst:2:Nargs + Gname=varargin(N); + mfprintf(Fid,'%s\n',Gname+"//"); + Gdata=varargin(N+1); + Gdata=Flattenlist(Gdata); + for K=1:length(Gdata) + GL=Dividegraphics(Gdata(K)); + for J=1:length(GL) + mfprintf(Fid,'%s\n',"start//"); + Str=""; + for I=1:Numptcrv(GL(J)) + Pt=Ptcrv(I,GL(J)); + if length(Str)>0 then + Str=Str+"," + end; + if length(Pt)<3 // 2014.12.14 + Str=Str+msprintf("[%5.4f,%5.4f]",Pt(1),Pt(2)); + else + Str=Str+msprintf("[%5.4f,%5.4f,%5.4f]",Pt(1),Pt(2),Pt(3)); + end; + if length(Str)>80 then + mfprintf(Fid,'%s\n',"["+Str+"]//"); + Str=""; + end + end + if length(Str)>0 then + mfprintf(Fid,'%s\n',"["+Str+"]//"); + end + if N==Nargs-1 & K==length(Gdata) & J==length(GL) then // 15.10.29 +// mfprintf(Fid,'%s\n',"end////"); + mfprintf(Fid,'%s\n',"end//"); + else + mfprintf(Fid,'%s\n',"end//"); + end; + end + end + end + mfprintf(Fid,'%s\n',"//"); + mclose(Fid); +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Writeobjpoint.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Writeobjpoint.bin Binary files differnew file mode 100644 index 00000000..e53ba463 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Writeobjpoint.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Writeobjpoint.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Writeobjpoint.sci new file mode 100644 index 00000000..ae51bf8b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Writeobjpoint.sci @@ -0,0 +1,12 @@ +// s : 2014.06.22 + +function Out=Writeobjpoint(P) + global OBJFMT OBJSCALE NPOINT; + X=sprintf(OBJFMT,P(1)*OBJSCALE); + Y=sprintf(OBJFMT,P(2)*OBJSCALE); + Z=sprintf(OBJFMT,P(3)*OBJSCALE); + Str="v "+X+" "+Y+" "+Z; + Printobjstr(Str) + NPOINT=NPOINT+1 + Out=NPOINT; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Writetextdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Writetextdata.bin Binary files differnew file mode 100644 index 00000000..c3f3d522 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Writetextdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Writetextdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Writetextdata.sci new file mode 100755 index 00000000..51a13884 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Writetextdata.sci @@ -0,0 +1,47 @@ +// 2010.04.27 + +function Writetextdata(varargin) + Fname=varargin(1); + Mt=varargin(2); + D=-1; + for I=3:length(varargin) + Tmp=varargin(I); + if mtlb_findstr(Tmp,'=')~=[] + execstr(Tmp); + end; + end; + Str=''; + for J=1:size(Mt,2) + Str=Str+'x'+string(J); + if J<size(Mt,2) + Str=Str+','; + end; + end; + if Fname~='' + Fid=mopen(Fname,'w'); + mfprintf(Fid,'%s\n',Str); + else + mprintf('%s\n',Str); + end; + for I=1:size(Mt,1) + Str=''; + for J=1:size(Mt,2) + Dt=Mt(I,J); + if Dt==%inf + Dt=D; + end; + Str=Str+string(Dt); + if J<size(Mt,2) + Str=Str+','; + end; + end; + if Fname~='' + mfprintf(Fid,'%s\n',Str); + else + mprintf('%s\n',Str); + end; + end; + if Fname~='' + mclose(Fid); + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/WritetoCindy.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/WritetoCindy.bin Binary files differnew file mode 100644 index 00000000..655cd4e6 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/WritetoCindy.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/WritetoCindy.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/WritetoCindy.sci new file mode 100644 index 00000000..60d73ef7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/WritetoCindy.sci @@ -0,0 +1,42 @@ +// s:2014.09.16 + +function WritetoCindy(varargin) + global Fnametxt + GnameV=list(); + for J=1:length(varargin) + Tmp=varargin(J); + for K=1:size(Tmp,2) + GnameV($+1)=Tmp(1,K); + end + end; + Fid=mopen(Fnametxt,'w'); + for Nv=1:length(GnameV) + Gname=GnameV(Nv); + Tmp=evstr(Gname); + GL=Dividegraphics(Tmp); + Lnst=""; + for J=1:length(GL) + G=GL(J); + Gn=Gname+"No"+string(J); + mfprintf(Fid,'%s\n',Gn+"=[];//"); + for K=1:Numptcrv(G) + Pt=Ptcrv(K,G); + if length(Lnst)==0 + Lnst=Gn+"=concat("+Gn+",["; + end; + Tmp=msprintf("[%6.4f,%6.4f]",Pt(1),Pt(2)); + Lnst=Lnst+Tmp; + if length(Lnst)>80 | K==Numptcrv(G) + Lnst=Lnst+"]);//"; + mfprintf(Fid,'%s\n',Lnst); + Lnst=""; + else + Lnst=Lnst+","; + end; + end; + Str="Goutdatalist=Append(Goutdatalist,"+Gn+");//"; + mfprintf(Fid,'%s\n',Str); + end; + end; + mclose(Fid); +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Xmax.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Xmax.bin Binary files differnew file mode 100644 index 00000000..ba00f67f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Xmax.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Xmax.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Xmax.sci new file mode 100755 index 00000000..28ab28ce --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Xmax.sci @@ -0,0 +1,5 @@ +function Y=Xmax() + global XMAX + Y=XMAX; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Xmin.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Xmin.bin Binary files differnew file mode 100644 index 00000000..7e8c9e46 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Xmin.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Xmin.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Xmin.sci new file mode 100755 index 00000000..e18e83d7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Xmin.sci @@ -0,0 +1,5 @@ +function Y=Xmin() + global XMIN + Y=XMIN; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Xyzax3data.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Xyzax3data.bin Binary files differnew file mode 100644 index 00000000..fc0a8807 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Xyzax3data.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Xyzax3data.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Xyzax3data.sci new file mode 100755 index 00000000..b2118c90 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Xyzax3data.sci @@ -0,0 +1,14 @@ +// 08.07.11 + +function Out=Xyzax3data(Xrange,Yrange,Zrange) + J=mtlb_findstr(Xrange,'='); + Tmp=evstr(part(Xrange,J+1:length(Xrange))); + Px=[Tmp(1),0,0]; Qx=[Tmp(2),0,0]; + J=mtlb_findstr(Yrange,'='); + Tmp=evstr(part(Yrange,J+1:length(Yrange))); + Py=[0,Tmp(1),0]; Qy=[0,Tmp(2),0]; + J=mtlb_findstr(Zrange,'='); + Tmp=evstr(part(Zrange,J+1:length(Zrange))); + Pz=[0,0,Tmp(1)]; Qz=[0,0,Tmp(2)]; + Out=MixS(Spaceline([Px,Qx]),Spaceline([Py,Qy]),Spaceline([Pz,Qz])); +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Xyzaxparaname.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Xyzaxparaname.bin Binary files differnew file mode 100644 index 00000000..04b8bdce --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Xyzaxparaname.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Xyzaxparaname.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Xyzaxparaname.sci new file mode 100755 index 00000000..b833802d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Xyzaxparaname.sci @@ -0,0 +1,71 @@ +// 08.07.11 +// 09.09.18 + +function Kekka=Xyzaxparaname(varargin) + global MilliIn; + Nargs=length(varargin); + Eps=10.0^(-6); + Dr=0.19*1000/2.54/MilliIn; + Tmp=varargin(Nargs); + if Nargs>1 & type(Tmp)==1 + Dr=Dr*Tmp; + Nargs=Nargs-1; + end; + if type(varargin(1))==10 + Xrange=varargin(1); Yrange=varargin(2); Zrange=varargin(3); + J=mtlb_findstr(Xrange,'='); + Xname=part(Xrange,1:J-1); + Tmp=evstr(part(Xrange,J+1:length(Xrange))); + Px=[Tmp(1),0,0]; Qx=[Tmp(2),0,0]; + J=mtlb_findstr(Yrange,'='); + Yname=part(Yrange,1:J-1); + Tmp=evstr(part(Yrange,J+1:length(Yrange))); + Py=[0,Tmp(1),0]; Qy=[0,Tmp(2),0]; + J=mtlb_findstr(Zrange,'='); + Zname=part(Zrange,1:J-1); + Tmp=evstr(part(Zrange,J+1:length(Zrange))); + Pz=[0,0,Tmp(1)]; Qz=[0,0,Tmp(2)]; + else + Data=varargin(1); + Xname='x'; Yname='y'; Zname='z'; + if Nargs>1 + if varargin(2)~='' + Xname=varargin(2); + end; + if varargin(3)~='' + Yname=varargin(3); + end; + if varargin(4)~='' + Zname=varargin(4); + end; + end; + Tmp=Mixop(1,Data); + Px=Tmp(1,:); Qx=Tmp(2,:); + Tmp=Mixop(2,Data); + Py=Tmp(1,:) ; + Qy=Tmp(2,:); + Tmp=Mixop(3,Data); + Pz=Tmp(1,:); + Qz=Tmp(2,:); + end; + Ph=Parapt(Px); Qh=Parapt(Qx); R=Vecnagasa(Ph,Qh); + Kekka=[]; + if R>Eps + Ch=Qh+Dr/R*(Qh-Ph); + Kekka=Mixadd(Kekka,Pointdata(Ch)); + Expr(Ch,'c',Xname); + end + Ph=Parapt(Py); Qh=Parapt(Qy); R=Vecnagasa(Ph,Qh); + if R>Eps + Ch=Qh+Dr/R*(Qh-Ph); + Kekka=Mixadd(Kekka,Pointdata(Ch)); + Expr(Ch,'c',Yname); + end; + Ph=Parapt(Pz); Qh=Parapt(Qz); R=Vecnagasa(Ph,Qh); + if R>Eps + Ch=Qh+Dr/R*(Qh-Ph); + Kekka=Mixadd(Kekka,Pointdata(Ch)); + Expr(Ch,'c',Zname); + end; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Xyzaxpersname.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Xyzaxpersname.bin Binary files differnew file mode 100644 index 00000000..3940b5b0 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Xyzaxpersname.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Xyzaxpersname.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Xyzaxpersname.sci new file mode 100755 index 00000000..d9c1c7df --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Xyzaxpersname.sci @@ -0,0 +1,72 @@ +// 08.08.14 +// 08.08.15 +// 09.09.18 + +function Kekka=Xyzaxpersname(varargin) + global MilliIn; + Eps=10.0^(-6); + Nargs=length(varargin); + Dr=0.19*1000/2.54/MilliIn; + Tmp=varargin(Nargs); + if Nargs>1 & type(Tmp)==1 + Dr=Dr*Tmp; + Nargs=Nargs-1; + end; + if type(varargin(1))==10 + Xrange=varargin(1); Yrange=varargin(2); Zrange=varargin(3); + J=mtlb_findstr(Xrange,'='); + Xname=part(Xrange,1:J-1); + Tmp=evstr(part(Xrange,J+1:length(Xrange))); + Px=[Tmp(1),0,0]; Qx=[Tmp(2),0,0]; + J=mtlb_findstr(Yrange,'='); + Yname=part(Yrange,1:J-1); + Tmp=evstr(part(Yrange,J+1:length(Yrange))); + Py=[0,Tmp(1),0]; Qy=[0,Tmp(2),0]; + J=mtlb_findstr(Zrange,'='); + Zname=part(Zrange,1:J-1); + Tmp=evstr(part(Zrange,J+1:length(Zrange))); + Pz=[0,0,Tmp(1)]; Qz=[0,0,Tmp(2)]; + else + Data=varargin(1); + Xname='x'; Yname='y'; Zname='z'; + if Nargs>1 + if varargin(2)~='' + Xname=varargin(2); + end; + if varargin(3)~='' + Yname=varargin(3); + end; + if varargin(4)~='' + Zname=varargin(4); + end; + end; + Tmp=Mixop(1,Data); + Px=Tmp(1,:); Qx=Tmp(2,:); + Tmp=Mixop(2,Data); + Py=Tmp(1,:) ; + Qy=Tmp(2,:); + Tmp=Mixop(3,Data); + Pz=Tmp(1,:); + Qz=Tmp(2,:); + end; + Ph=Perspt(Px); Qh=Perspt(Qx); R=Vecnagasa(Ph,Qh); + Kekka=[]; + if R>Eps + Ch=Qh+Dr/R*(Qh-Ph); + Kekka=Mixadd(Kekka,Pointdata(Ch)); + Expr(Ch,'c',Xname); + end + Ph=Perspt(Py); Qh=Perspt(Qy); R=Vecnagasa(Ph,Qh); + if R>Eps + Ch=Qh+Dr/R*(Qh-Ph); + Kekka=Mixadd(Kekka,Pointdata(Ch)); + Expr(Ch,'c',Yname); + end; + Ph=Perspt(Pz); Qh=Perspt(Qz); R=Vecnagasa(Ph,Qh); + if R>Eps + Ch=Qh+Dr/R*(Qh-Ph); + Kekka=Mixadd(Kekka,Pointdata(Ch)); + Expr(Ch,'c',Zname); + end; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ymax.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ymax.bin Binary files differnew file mode 100644 index 00000000..93cbf4e2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ymax.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ymax.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ymax.sci new file mode 100755 index 00000000..0a835534 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ymax.sci @@ -0,0 +1,5 @@ +function Y=Ymax() + global YMAX + Y=YMAX; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ymin.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ymin.bin Binary files differnew file mode 100644 index 00000000..79ab6600 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ymin.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ymin.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ymin.sci new file mode 100755 index 00000000..73d0d261 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Ymin.sci @@ -0,0 +1,5 @@ +function Y=Ymin() + global YMIN + Y=YMIN; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Zparapt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Zparapt.bin Binary files differnew file mode 100644 index 00000000..d870458d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Zparapt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Zparapt.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Zparapt.sci new file mode 100755 index 00000000..5c237179 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Zparapt.sci @@ -0,0 +1,8 @@ +// 08.07.11 + +function Out=Zparapt(P) + global PHI THETA; + x=P(1); y=P(2); z=P(3); + Out=x*cos(PHI)*sin(THETA)+y*sin(PHI)*sin(THETA)+z*cos(THETA); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Zperspt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Zperspt.bin Binary files differnew file mode 100644 index 00000000..0af89330 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Zperspt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Zperspt.sci b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Zperspt.sci new file mode 100755 index 00000000..13601556 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/Zperspt.sci @@ -0,0 +1,20 @@ +// 08.08.12 +// 10.01.02 + +function X3=Zperspt(P) + + global FocusPoint EyePoint + + Tmp=P-FocusPoint; + X1=Tmp(1); Y1=Tmp(2); Z1=Tmp(3); + Tmp=EyePoint-FocusPoint; + E1=Tmp(1); F1=Tmp(2); G1=Tmp(3); + Ca=E1/sqrt(E1^2+F1^2); + Sa=F1/sqrt(E1^2+F1^2); + X2=X1*Ca+Y1*Sa; Y2=-X1*Sa+Y1*Ca; Z2=Z1; + E2=E1*Ca+F1*Sa; F2=-E1*Sa+F1*Ca; G2=G1; + Cb=E2/sqrt(E2^2+G2^2); + Sb=G2/sqrt(E2^2+G2^2); + X3=X2*Cb+Z2*Sb; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/lib b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/lib new file mode 100644 index 00000000..24864cee --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/lib @@ -0,0 +1,344 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<scilablib name="ketpic2esciL6"> + <macro name="Addcounter" file="Addcounter.bin" md5="f7a17da511ba9fdd3cf4cdaf83f3d78c"/> + <macro name="Anglemark" file="Anglemark.bin" md5="0e984414d47cb604faef41ae93390dcb"/> + <macro name="Arrowdata" file="Arrowdata.bin" md5="b39db1a6340e09c9dfaa3fbb4c3777f1"/> + <macro name="Arrowhead" file="Arrowhead.bin" md5="0b0bc5478ce8afeb47770d9add192560"/> + <macro name="Arrowheaddata" file="Arrowheaddata.bin" md5="3c06f276e57945b3d54e11e39a9e9435"/> + <macro name="Arrowline" file="Arrowline.bin" md5="e15854f9c5c640cee8667f6128023620"/> + <macro name="Assign" file="Assign.bin" md5="c8d1390433c0a317d199f5491669e988"/> + <macro name="Assignadd" file="Assignadd.bin" md5="d24d31a4cfd1dc707c51c51ff9cdf364"/> + <macro name="Assignrep" file="Assignrep.bin" md5="e81413f3bc64c05ae0821b56fd63e5ef"/> + <macro name="Assignset" file="Assignset.bin" md5="6a6dad9e5a35cdddb0ac069ec601c061"/> + <macro name="Beginpicture" file="Beginpicture.bin" md5="9fd24a768a0d6548b1f458d51e1bb202"/> + <macro name="Bezier" file="Bezier.bin" md5="f23aa1069913d825c6f8040b3de17e7d"/> + <macro name="Bezierpt" file="Bezierpt.bin" md5="f09183e61d71f55243937a28ef90fb06"/> + <macro name="BorderHiddenData" file="BorderHiddenData.bin" md5="67622b4dca726e7aff9b4e92d411edcd"/> + <macro name="BorderPt" file="BorderPt.bin" md5="e482d76b67ceb360021f9cef448abc73"/> + <macro name="Borderparadata" file="Borderparadata.bin" md5="1bf108993d36707c45e3a25770ca2869"/> + <macro name="Borderpersdata" file="Borderpersdata.bin" md5="d46e7fdcf42a61c354a540359dcd9f5f"/> + <macro name="Borderrawdata" file="Borderrawdata.bin" md5="0228890cf35b6929fc3bb083b1211da6"/> + <macro name="Bowdata" file="Bowdata.bin" md5="1f5f1c65d0448af83143e14f53565393"/> + <macro name="Bowmiddle" file="Bowmiddle.bin" md5="0a765efd6dae8c6fbd0d075ef0ff8b3c"/> + <macro name="Bowname" file="Bowname.bin" md5="e8ab45879c83d386dcf5e086fe71e1a4"/> + <macro name="Bownamerot" file="Bownamerot.bin" md5="ce9e45bf14fca7b62fa56b6d0b3baaef"/> + <macro name="CalcHeight" file="CalcHeight.bin" md5="f535ff3dcd86bc6552b54894e5865673"/> + <macro name="CalcWidth" file="CalcWidth.bin" md5="cf0f3d22a9dd2ffdb077a4be5bf1219f"/> + <macro name="Calcfun" file="Calcfun.bin" md5="618d36dbe48f68b4a3e2664b5df8cad2"/> + <macro name="CameraCurve" file="CameraCurve.bin" md5="b8acf2da07c09553106c10b4cc29d9e7"/> + <macro name="CameracoordCurve" file="CameracoordCurve.bin" md5="91ad20f64500117414f16a1cce2c344f"/> + <macro name="Cancoordpara" file="Cancoordpara.bin" md5="61afc19fb49f4b16d48a3cc54c6c6650"/> + <macro name="Cancoordpers" file="Cancoordpers.bin" md5="3a82d9864deed9b050795decae25d8bb"/> + <macro name="Circledata" file="Circledata.bin" md5="a5a1cf644e81417a9065d80f71b24d8d"/> + <macro name="Clipindomain" file="Clipindomain.bin" md5="773133bed55b7003b0248ffb670e3685"/> + <macro name="Closefile" file="Closefile.bin" md5="d29119f97c49373729d10b0cfba746e4"/> + <macro name="Closeobj" file="Closeobj.bin" md5="18df14cfd19b6a7911f9a3748572c02c"/> + <macro name="Closepar" file="Closepar.bin" md5="b8f58e851efa7f12560401c5b0760ecf"/> + <macro name="Closephr" file="Closephr.bin" md5="f53a01c653931c16bd3c493950798acf"/> + <macro name="Closepicture" file="Closepicture.bin" md5="32f401713757a349111cfaf0adcf199d"/> + <macro name="Connectseg" file="Connectseg.bin" md5="439d9f55197c09cd7b54e98cc7151208"/> + <macro name="Crossprod" file="Crossprod.bin" md5="536992b625b66d009e88e73a21a354d6"/> + <macro name="Crv3onsfHiddenData" file="Crv3onsfHiddenData.bin" md5="716dedc06dea644e6aadecf58ab050f4"/> + <macro name="Crv3onsfparadata" file="Crv3onsfparadata.bin" md5="e0d51c785077d687bfc222837fd8593b"/> + <macro name="Crv3onsfpersdata" file="Crv3onsfpersdata.bin" md5="63bcd579f64f40cc04e50094782e09e0"/> + <macro name="CrvonsfHiddenData" file="CrvonsfHiddenData.bin" md5="009a9889bf1f2a3a05f38918b579b7cb"/> + <macro name="Crvonsfparadata" file="Crvonsfparadata.bin" md5="6d5468227fd75007c1dfe4572c1c189c"/> + <macro name="Crvonsfpersdata" file="Crvonsfpersdata.bin" md5="de082902912599535a629ed08e56fb6c"/> + <macro name="CrvsfHiddenData" file="CrvsfHiddenData.bin" md5="f8d158838c95df89a67bf8233e541a09"/> + <macro name="Crvsfparadata" file="Crvsfparadata.bin" md5="885de6d7639a403dd01a2761e39a6ad1"/> + <macro name="Crvsfpersdata" file="Crvsfpersdata.bin" md5="3a660a01512f537e270f611d45512032"/> + <macro name="CuspData" file="CuspData.bin" md5="0958a008a4c59305d62522f9b80028da"/> + <macro name="CuspPt" file="CuspPt.bin" md5="08b55dc8b3e2d0ee1fea47b71825af92"/> + <macro name="CuspSplitPt" file="CuspSplitPt.bin" md5="0ff09f7f3d56080bbad1a1a26260f254"/> + <macro name="Cuspsplitpara" file="Cuspsplitpara.bin" md5="e54d63f2224cff696951a50800d0c4d4"/> + <macro name="Cuspsplitpers" file="Cuspsplitpers.bin" md5="ebf6aef58ed839a05d27771eeb0fc60c"/> + <macro name="Cutsf2d" file="Cutsf2d.bin" md5="adc0dd43b75ee65d181c56c5eeef3b0a"/> + <macro name="Dashline" file="Dashline.bin" md5="4d0497d9013039e15ff2b287b2c0988b"/> + <macro name="Dataindex" file="Dataindex.bin" md5="f0b3b146c9ee16cde54ecd4937acb0b9"/> + <macro name="Definecolor" file="Definecolor.bin" md5="337b7001704f8c604b555e35721973d6"/> + <macro name="Deqplot" file="Deqplot.bin" md5="43a868bfe9d41dc2389116b15d18df80"/> + <macro name="Derivative" file="Derivative.bin" md5="f0b451a2b43c69168ac088e8443f6961"/> + <macro name="Diagcelldata" file="Diagcelldata.bin" md5="efc679b9d0239e2669c6a0929a4e242b"/> + <macro name="Dividegraphics" file="Dividegraphics.bin" md5="b2c065a1249613d3cf7f6ba80ec816a4"/> + <macro name="Dividetable" file="Dividetable.bin" md5="af1d4f7f854da91ce2b4cec13ff44bc5"/> + <macro name="Doscaling" file="Doscaling.bin" md5="86184ec15f528517d5e37e8b5baa3754"/> + <macro name="Dotfilldata" file="Dotfilldata.bin" md5="80a560945fc679f1f036778833dd59a7"/> + <macro name="Dotprod" file="Dotprod.bin" md5="e1a7afad315e324245ec76499b5dfb6c"/> + <macro name="Dottedline" file="Dottedline.bin" md5="6505941ec7ec4395b72df15f93621117"/> + <macro name="Dropnumlistcrv" file="Dropnumlistcrv.bin" md5="1875178bc5c363af0d15f8276503be4a"/> + <macro name="Droppoint" file="Droppoint.bin" md5="c25e16076a319350b8763f48476b4ec6"/> + <macro name="Drwline" file="Drwline.bin" md5="3aedf6f6a861fa772b06071e29680824"/> + <macro name="Drwpt" file="Drwpt.bin" md5="52f450f7724e33a424582cfe03c06877"/> + <macro name="Drwxy" file="Drwxy.bin" md5="c17d9f6608390f019c87d6e1e181e8a3"/> + <macro name="Embed" file="Embed.bin" md5="7cc5c0ccfeb87763b205b3fcf0dc67b4"/> + <macro name="Enclosing" file="Enclosing.bin" md5="457c453795c3b3224be70e1721385cb1"/> + <macro name="EnclosingS" file="EnclosingS.bin" md5="13de130f31f7932194fd173f977ff896"/> + <macro name="Endpicture" file="Endpicture.bin" md5="9b3ce661a450d798d55889be6ffd31ac"/> + <macro name="Evlptablepara" file="Evlptablepara.bin" md5="06e669cba02eb0218f852fdf46b1cae5"/> + <macro name="Evlptablepers" file="Evlptablepers.bin" md5="6cc6897a677911ce2629157f932f32c5"/> + <macro name="Execmd" file="Execmd.bin" md5="c3a30b0fae6f2a8ce6593607ed0d2ed8"/> + <macro name="Expr" file="Expr.bin" md5="c3e260bc0fd7af5a7231431ef9033f5c"/> + <macro name="Exprrot" file="Exprrot.bin" md5="6fc71ff18629fc512e5fed1218433619"/> + <macro name="Faceremovaldata" file="Faceremovaldata.bin" md5="90e9f3a860839349b2486df6fff7adb4"/> + <macro name="Facesdata" file="Facesdata.bin" md5="0c43ae73a08dcfce906c075f17eec59a"/> + <macro name="Findcell" file="Findcell.bin" md5="9b9cc86ef6f67a8d539d30ec58ad9005"/> + <macro name="Flattenlist" file="Flattenlist.bin" md5="d4b4a78c9e9760a4cbeda97f54592acb"/> + <macro name="Fontsize" file="Fontsize.bin" md5="3620d8e64b61ab17778776195acec82a"/> + <macro name="Fouriercoeff" file="Fouriercoeff.bin" md5="83dfcd5c4a1d0f7ccb711d89b0a8003c"/> + <macro name="FouriercoeffL" file="FouriercoeffL.bin" md5="29b8c2c57c53796531cb8316630e87ee"/> + <macro name="Fouriersum" file="Fouriersum.bin" md5="3cf167292e587148fe7d3a9d2e34eab0"/> + <macro name="Fracform" file="Fracform.bin" md5="6dfc4e723a0a2d55ef9e2e9028e5a0b1"/> + <macro name="Framedata" file="Framedata.bin" md5="712be5ee4fdd60fe132b951022f7f5e1"/> + <macro name="Fullformfunc" file="Fullformfunc.bin" md5="ebc5473763f9884c091aa9863062702b"/> + <macro name="Gaiseki" file="Gaiseki.bin" md5="36a6b9567ed081b46107ed3374562196"/> + <macro name="Getcounter" file="Getcounter.bin" md5="45f7aec5f0936f4abe6e65296634a847"/> + <macro name="Gettrace" file="Gettrace.bin" md5="bb84c353b0e3af593e903273160d9bd9"/> + <macro name="Hatchdata" file="Hatchdata.bin" md5="e05c42f885a108c41a75bf1b607b509b"/> + <macro name="Hexahedrondata" file="Hexahedrondata.bin" md5="86efcd2c370b4e76adfeea3b75639d31"/> + <macro name="HiddenWireData" file="HiddenWireData.bin" md5="a080bcb1dcc97c1205fff04562d694fd"/> + <macro name="Htickmark" file="Htickmark.bin" md5="bdafbfedbc2441fe5cd989910852c79e"/> + <macro name="ImplicitData" file="ImplicitData.bin" md5="24a9ea9eb043677084250a30d6c6db00"/> + <macro name="Implicitplot" file="Implicitplot.bin" md5="7d1075882d5446646c2304e00e70ad6d"/> + <macro name="InWindow" file="InWindow.bin" md5="cf3f449e5189b8d40a3d3a4c219a92ea"/> + <macro name="Initangle" file="Initangle.bin" md5="c6902d32536d434af7f28c28b45290ab"/> + <macro name="Integrate" file="Integrate.bin" md5="6f255339baf16af41b20d9b2d86adb50"/> + <macro name="Intersectcrvs" file="Intersectcrvs.bin" md5="68b875e1418a8a231095155ca2482cbc"/> + <macro name="IntersectcrvsPp" file="IntersectcrvsPp.bin" md5="5c05582df9fa8f9a05fa42ef1cf799ae"/> + <macro name="Intersectcrvsf" file="Intersectcrvsf.bin" md5="89b1b7d500237aebbd41f1094560609b"/> + <macro name="Intersectlines" file="Intersectlines.bin" md5="5a4837581398e0f6299d83805b325fd6"/> + <macro name="IntersectselfPp" file="IntersectselfPp.bin" md5="d10bc970ff6540655fedece748a0f1d7"/> + <macro name="Invdashline" file="Invdashline.bin" md5="d72a1842fe88eb719dd85ce45caafc96"/> + <macro name="Invert" file="Invert.bin" md5="7018f80081bca2cb147e81ea435ba287"/> + <macro name="Invparapt" file="Invparapt.bin" md5="b58cfbc854e7b14d076b1f1676c3f54b"/> + <macro name="Invperspt" file="Invperspt.bin" md5="c8500cf469fd4a4c8399e5e093f49126"/> + <macro name="Joincrvs" file="Joincrvs.bin" md5="41981f483c2cfacab95b25356ee5a7d1"/> + <macro name="Joingraphics" file="Joingraphics.bin" md5="e525e21001a3408e5bb3587d24ca4916"/> + <macro name="Ketinit" file="Ketinit.bin" md5="bd9d49f1927a921db621d419da386e1d"/> + <macro name="Kouten" file="Kouten.bin" md5="b0fbbe27e4961ef9a8d0652b1d9edfaf"/> + <macro name="KoutenList" file="KoutenList.bin" md5="ca822b6e42d545a627a7129d02b91cb2"/> + <macro name="Koutenseg" file="Koutenseg.bin" md5="2424557c72db63186699b8ab8fb4ef64"/> + <macro name="Kukannozoku" file="Kukannozoku.bin" md5="40cef25e80745039eb34c5066dfe2d14"/> + <macro name="Kukeiwake" file="Kukeiwake.bin" md5="2e42c3fdef9ac1f7aaca550ff11307c3"/> + <macro name="Kyorihensuu" file="Kyorihensuu.bin" md5="3f313b70f962d573d0db9a548ed4ebc4"/> + <macro name="Kyoukai" file="Kyoukai.bin" md5="630a8517e9e9ae8ecb2a5372c87193fd"/> + <macro name="Letter" file="Letter.bin" md5="a587d241a5c2f1c69b0904632af16a26"/> + <macro name="Letterrot" file="Letterrot.bin" md5="1ce92bf2c945ee12d0746ae7f2fe6b5d"/> + <macro name="Lineplot" file="Lineplot.bin" md5="d2b8a90dd16c873622ffc291b7c9ed64"/> + <macro name="Listplot" file="Listplot.bin" md5="1575fd89b2e6c3c96b90b6889006370f"/> + <macro name="MakeBowdata" file="MakeBowdata.bin" md5="ab5ea1d8c5cc092ea13021c3fb255613"/> + <macro name="MakeCurves" file="MakeCurves.bin" md5="a1d7968df6f80673bab58af5762640a4"/> + <macro name="MakecutbycrvL" file="MakecutbycrvL.bin" md5="8ddeb50d60ce53392a6d6ec76fad7bee"/> + <macro name="Makehasen" file="Makehasen.bin" md5="b6e177ea7ad735910a2c6b45dc1bb580"/> + <macro name="Makeliststr" file="Makeliststr.bin" md5="bf4e86417206108a51e2b0210b990557"/> + <macro name="Makesfcutoffdata" file="Makesfcutoffdata.bin" md5="7b61d0f517b18505225edbac83729b6f"/> + <macro name="Makeshasen" file="Makeshasen.bin" md5="878e44c4780cdac427a7d55f551373a2"/> + <macro name="Makeskeletondata" file="Makeskeletondata.bin" md5="6c918f7f13736227cc0ac351c6fd7a54"/> + <macro name="Makeskeletonpersdata" file="Makeskeletonpersdata.bin" md5="72dd47219b4e6689c54c69eed62f06dc"/> + <macro name="Makevaltable" file="Makevaltable.bin" md5="c279f90b73efc06d235c983bd08ce47b"/> + <macro name="MakeveLfaceL" file="MakeveLfaceL.bin" md5="1afea9c44a3dbe277e601b02d38be3cc"/> + <macro name="Makexybdy" file="Makexybdy.bin" md5="6eca03d530a515cdfe0b98d33fee2b67"/> + <macro name="Mawarikomi" file="Mawarikomi.bin" md5="61b967de5ef56e29016932c9f77c561a"/> + <macro name="MeetWindow" file="MeetWindow.bin" md5="ae7f015eebc2250c20ad876d1d3ec9e4"/> + <macro name="Meetpoints" file="Meetpoints.bin" md5="ffeccee8bfbebd44a45abdfe91c3cca1"/> + <macro name="Member" file="Member.bin" md5="6c29ab2fdbbc61889c95b45d820d317d"/> + <macro name="Menkakusi" file="Menkakusi.bin" md5="53d3fee4c99b28d7aac10f8114fe2524"/> + <macro name="Menkakusi2" file="Menkakusi2.bin" md5="eedabe7e3dd93f6af4fe225a6aa4b2ed"/> + <macro name="Mix" file="Mix.bin" md5="f9f822bf34f04f9dc5401f492b8dc76b"/> + <macro name="MixL" file="MixL.bin" md5="e80cd4b09be7c0a9b88cfaea7bcf802a"/> + <macro name="MixS" file="MixS.bin" md5="d60abae70f94ff28b184306e971d1102"/> + <macro name="Mixadd" file="Mixadd.bin" md5="51da5be70ce2e556dd75d812715faad4"/> + <macro name="Mixdisp" file="Mixdisp.bin" md5="b2b5187462a54615cca28f272232b61f"/> + <macro name="Mixjoin" file="Mixjoin.bin" md5="f9df8699f8cb95ca2b657403a94a9d8f"/> + <macro name="Mixlength" file="Mixlength.bin" md5="ee9cee8e9c916ea42ed8e1e8ad70e321"/> + <macro name="Mixmake" file="Mixmake.bin" md5="b84d74ef8def9658fa2d8f34cc8424f5"/> + <macro name="Mixop" file="Mixop.bin" md5="8c5f9a72e8838aa4b9c9f45013000670"/> + <macro name="Mixsub" file="Mixsub.bin" md5="f2a14687cf8a0c6daaede12d0b730dd5"/> + <macro name="Mixtype" file="Mixtype.bin" md5="0a0931265b0666b53416685a35897f82"/> + <macro name="Naigai" file="Naigai.bin" md5="6e97fdbd9f1feabfb09b2247518c4399"/> + <macro name="Naiseki" file="Naiseki.bin" md5="8f33757e011f07a03a144414296c3190"/> + <macro name="Nearestpt" file="Nearestpt.bin" md5="7b392fdb66cdafb6ccf4e3f083967ba2"/> + <macro name="Newlength" file="Newlength.bin" md5="ea7efdb86cdb3345f0b3e43427cb2c48"/> + <macro name="Nohiddenpara" file="Nohiddenpara.bin" md5="b46886584a10d67fbdb7816c5c739fb8"/> + <macro name="Nohiddenpara2" file="Nohiddenpara2.bin" md5="be95c5d2791c7b05e25c1def88f2bdc6"/> + <macro name="Nohiddenpers" file="Nohiddenpers.bin" md5="1e867c6479823f428d90911b099cdbcf"/> + <macro name="Nohiddenpers2" file="Nohiddenpers2.bin" md5="f96bfe5e316b4b771ab3d26b27b73615"/> + <macro name="Numptcrv" file="Numptcrv.bin" md5="5bf4461504105054dd993bff3b35f370"/> + <macro name="Objcurve" file="Objcurve.bin" md5="3f7684be52bce1b1458d378be0849229"/> + <macro name="Objjoin" file="Objjoin.bin" md5="74a96fb8ed5d88ff1008156f27738f5a"/> + <macro name="Objname" file="Objname.bin" md5="74d2732da725b97cb3c0eb443a6f5ed9"/> + <macro name="Objpolygon" file="Objpolygon.bin" md5="56d22a5ae20dcfc9a0cd4b8a440385e6"/> + <macro name="Objpolyhedron" file="Objpolyhedron.bin" md5="ff92bd278e558ead5df19970d6d01546"/> + <macro name="Objrecs" file="Objrecs.bin" md5="e8ca7cd5993fb7ce8e5b509dce42e46b"/> + <macro name="Objsurf" file="Objsurf.bin" md5="f3017f49c709447a7024d16edb01580d"/> + <macro name="Objsymb" file="Objsymb.bin" md5="ef3fbae27f502a20ff4df575638d4e52"/> + <macro name="Objthicksurf" file="Objthicksurf.bin" md5="07f9c70cedf719587412c848812c7704"/> + <macro name="Op" file="Op.bin" md5="cb2e0935be6b77b1c0bc4f2c7071a1cb"/> + <macro name="Openfile" file="Openfile.bin" md5="bfccc88e9e9abcd83236dd4dd5da2cb4"/> + <macro name="Openobj" file="Openobj.bin" md5="c60578368dceeb4ab79f74e6de774ffd"/> + <macro name="Openpar" file="Openpar.bin" md5="39554dc8c76d98179e21e6878af691c5"/> + <macro name="Openphr" file="Openphr.bin" md5="a086531ca6cf4e112742d5aef90943cf"/> + <macro name="Openpicture" file="Openpicture.bin" md5="e7b76f0bb2132c86350d0f1293a31069"/> + <macro name="Ovalbox" file="Ovalbox.bin" md5="d22bdac24b70c1d6b1625dcf3a8ce007"/> + <macro name="Ovaldata" file="Ovaldata.bin" md5="0facfbd0760cec3d8fa762f7dea098f2"/> + <macro name="Paramark" file="Paramark.bin" md5="644e9aa93430fd35f3639875d6759584"/> + <macro name="ParamonCurve" file="ParamonCurve.bin" md5="910c0b77eb025faf243e2d2cb7ebd043"/> + <macro name="Paramoncrv" file="Paramoncrv.bin" md5="48c6dc127d039740c0a11def8a18fe8a"/> + <macro name="Paramplot" file="Paramplot.bin" md5="09b2750fc9950bbc258a881a2c12a97b"/> + <macro name="Parapt" file="Parapt.bin" md5="e130c84b03164202cf8e25ea27558859"/> + <macro name="Partcrv" file="Partcrv.bin" md5="819797d94d68bf7df7c29b01717525a6"/> + <macro name="Partcrv3" file="Partcrv3.bin" md5="c87d37f9f00aff9ce05a3a3879c6ea5a"/> + <macro name="Partframe" file="Partframe.bin" md5="8df2a78e61362e18cf3b71779ffffbd4"/> + <macro name="PartitionPt" file="PartitionPt.bin" md5="a4afd33aca16e70df0984f7cf05371ce"/> + <macro name="Partitionseg" file="Partitionseg.bin" md5="c0ce6ccd18ea9794f55a9e6926328ea1"/> + <macro name="Perspt" file="Perspt.bin" md5="5415e8696ae175005b59936b2e164bac"/> + <macro name="PhFaceL" file="PhFaceL.bin" md5="b8748ee001a1357e2820b304083ce09e"/> + <macro name="PhHiddenData" file="PhHiddenData.bin" md5="6a0ab5d6aeb7d4c66b31ab86ac5afdae"/> + <macro name="PhVertexL" file="PhVertexL.bin" md5="9d7e1d653e88fc9b98f783ec57ebe8ca"/> + <macro name="Phcutdata" file="Phcutdata.bin" md5="bed83bc88efc277012bab8ba47b9d810"/> + <macro name="Phcutoffdata" file="Phcutoffdata.bin" md5="2ca3881c7cdfe2fee62aa3e64af34157"/> + <macro name="Phidegree" file="Phidegree.bin" md5="5d1ac461a2fee60c6c2dda978a262428"/> + <macro name="Phparadata" file="Phparadata.bin" md5="cbc40d5c2c508a72e51adac3ffecdd4c"/> + <macro name="Phpersdata" file="Phpersdata.bin" md5="51601f80ae1578cf4aa0d6f244ba5027"/> + <macro name="Phrawparadata" file="Phrawparadata.bin" md5="371b244204a19e6a12e70773cb118f21"/> + <macro name="Phrawpersdata" file="Phrawpersdata.bin" md5="f2371fdb24326f6c7a209f9b70d07ce1"/> + <macro name="Phsparadata" file="Phsparadata.bin" md5="762751108de07b4e5a1e6264e16d487c"/> + <macro name="Phspersdata" file="Phspersdata.bin" md5="acf5af0f78c134ae893fd057e408dd3e"/> + <macro name="Phsrawparadata" file="Phsrawparadata.bin" md5="2aebf882e1d6cd11e44cb2815fd186fd"/> + <macro name="Phsrawpersdata" file="Phsrawpersdata.bin" md5="b90465806262e6016d26450f6654194d"/> + <macro name="Plotdata" file="Plotdata.bin" md5="676695f9f9b9a91cfea1ee426d7185ce"/> + <macro name="Pointdata" file="Pointdata.bin" md5="eb131a9f0a6687722dc491cedb732ade"/> + <macro name="PointonCurve" file="PointonCurve.bin" md5="168183930f3fce712571ad5b737f7004"/> + <macro name="Pointoncrv" file="Pointoncrv.bin" md5="a0a2cd4d7f51bec560eb26fef054d835"/> + <macro name="Powersum" file="Powersum.bin" md5="29a72b2125d2f95cfd9bdd742a4e106b"/> + <macro name="Prime" file="Prime.bin" md5="35045b439a59fabbe9a4127d12706fb6"/> + <macro name="Printobjstr" file="Printobjstr.bin" md5="2b4d610c4a39dcab5cfb5c93f7dff5ea"/> + <macro name="ProjCurve" file="ProjCurve.bin" md5="7d548512c30e79cd098aa7b2f96a4ebf"/> + <macro name="ProjcoordCurve" file="ProjcoordCurve.bin" md5="ddf1fa0e05421feaa482038b26925ab5"/> + <macro name="Projpara" file="Projpara.bin" md5="98da96de9ea67f2db4111877d7ff785e"/> + <macro name="Projpers" file="Projpers.bin" md5="7820810b8c0861b22e8dcdc23f1c0864"/> + <macro name="Ptcrv" file="Ptcrv.bin" md5="d353fd7e1af4fac1533c7e0ddebf996e"/> + <macro name="Ptend" file="Ptend.bin" md5="5b30f64ef0920f13b540db8eb5f93e5a"/> + <macro name="PthiddenQ" file="PthiddenQ.bin" md5="c1e31cee1140bf7942b7e1c83514d790"/> + <macro name="Ptne" file="Ptne.bin" md5="833e0e4b3ced75d740eaaab4c1fc88bd"/> + <macro name="Ptnw" file="Ptnw.bin" md5="8415bd27db46c35cec56e67d2ca9734f"/> + <macro name="Ptse" file="Ptse.bin" md5="f5180a6df918355d3a588786e7be8cf4"/> + <macro name="Ptstart" file="Ptstart.bin" md5="f0e4baaf1f46e6b379571e9414a83812"/> + <macro name="Ptsw" file="Ptsw.bin" md5="c30adf43aa5f3c9a0961402ab3b8ddc9"/> + <macro name="Putcell" file="Putcell.bin" md5="da158190a8848db850d3d34a16d36dc8"/> + <macro name="Putcirmark" file="Putcirmark.bin" md5="9f1b9f829d10c8d29f3c2ea6d316383b"/> + <macro name="PutcoL" file="PutcoL.bin" md5="d8f49a7b534060301063804207669228"/> + <macro name="PutcoLexpr" file="PutcoLexpr.bin" md5="d35417b4b818f80c7b96f99118795d48"/> + <macro name="PutcoLstr" file="PutcoLstr.bin" md5="32c9d7d6751b5c85adca1c384ec98c10"/> + <macro name="Putdashmark" file="Putdashmark.bin" md5="03b76cd3bbc9e52df76c2be30c42570b"/> + <macro name="Putrecmark" file="Putrecmark.bin" md5="a5c20a30353d0c79c0dcea3cf39c54e3"/> + <macro name="Putrow" file="Putrow.bin" md5="0a9adbebc80444ab1495a302265920e6"/> + <macro name="Putrowexpr" file="Putrowexpr.bin" md5="4a32c3441cd9ad7c23656ab97e65d352"/> + <macro name="Putrowstr" file="Putrowstr.bin" md5="92ee0311a5e4bb7995a9d44bfbc1460d"/> + <macro name="Puttrace" file="Puttrace.bin" md5="08b64f48285a49c1cb6138fe1491c8fe"/> + <macro name="Ratiocmyk" file="Ratiocmyk.bin" md5="54098c052d304f2b329cc4fd2bd23bc1"/> + <macro name="ReadOutData" file="ReadOutData.bin" md5="0198ca044595d75779d267e425e5380a"/> + <macro name="ReadfromCindy" file="ReadfromCindy.bin" md5="1fed87229911382502d7e7cfd359f4c1"/> + <macro name="Readtextdata" file="Readtextdata.bin" md5="4acbbc591808404b6814db3175c2ffed"/> + <macro name="Reflectdata" file="Reflectdata.bin" md5="51d5020a418590fe64cbf4883da76562"/> + <macro name="Rmmember" file="Rmmember.bin" md5="31ade9c8802d46438ace1e53bb769b86"/> + <macro name="Rotate3data" file="Rotate3data.bin" md5="5aaab016d1fed7a61f270e3b4ad84316"/> + <macro name="Rotate3pt" file="Rotate3pt.bin" md5="7feea2dd66e7a02b96c384011d818a0e"/> + <macro name="Rotatedata" file="Rotatedata.bin" md5="f7c7aa1bd5b2d2d99b66bb3bd711de19"/> + <macro name="Roundstr" file="Roundstr.bin" md5="dd261bcd78d1110bfd9fd775efcf5a4e"/> + <macro name="Scaledata" file="Scaledata.bin" md5="fac166fc1de490a64dd7f7a8f46164a9"/> + <macro name="Sectionview" file="Sectionview.bin" md5="db370ec400c90c7865f7c626572e39f7"/> + <macro name="Setangle" file="Setangle.bin" md5="57190782b3c5c0ace7f2adecb18e4aed"/> + <macro name="Setarrow" file="Setarrow.bin" md5="e7baa60ca4f593de15c7cb8b56be800a"/> + <macro name="Setax" file="Setax.bin" md5="ef281e109b01e3b65d1842e0d2a03873"/> + <macro name="Setcolor" file="Setcolor.bin" md5="b0adb12d43ae4da2815331389b85f944"/> + <macro name="Setcounter" file="Setcounter.bin" md5="e38d212ffa114288c73ccdb613c9cb9d"/> + <macro name="Setmark" file="Setmark.bin" md5="d4cb68ac16edcd28a86ba2a0563b9597"/> + <macro name="Setmarklen" file="Setmarklen.bin" md5="ec3870c326393f15a29d77cf476618cf"/> + <macro name="Setobjdecimals" file="Setobjdecimals.bin" md5="823bc64fbdda67813d1e3c3bf592a0e3"/> + <macro name="Setobjscale" file="Setobjscale.bin" md5="a2cdb49a13b0dc89328a7194f34eeeab"/> + <macro name="Setorigin" file="Setorigin.bin" md5="fe236fa677bab1dd24e53cfc28022826"/> + <macro name="Setpen" file="Setpen.bin" md5="9d87bbd283d225fd62422263375a94b5"/> + <macro name="Setpers" file="Setpers.bin" md5="830fe8254a07765e703077b456353070"/> + <macro name="Setpt" file="Setpt.bin" md5="cbfbda69ce4184fc0ad59bfbe01943a6"/> + <macro name="Setscaling" file="Setscaling.bin" md5="263333f56ad33907534fdb460e54da9b"/> + <macro name="SetstereoL" file="SetstereoL.bin" md5="2711aa6a1541336aec852ac1437155ac"/> + <macro name="SetstereoR" file="SetstereoR.bin" md5="bd74d871d1bc79ed8c01a13a569eb7bb"/> + <macro name="Setunitlen" file="Setunitlen.bin" md5="1e245724b987e84c413bf37a30bb5dd3"/> + <macro name="Setversion" file="Setversion.bin" md5="d6dbab1ce7bb18b2c773bae647e4ac5d"/> + <macro name="Setwindow" file="Setwindow.bin" md5="e781a89da1ce77fbc46f713553523c51"/> + <macro name="Sf3data" file="Sf3data.bin" md5="095b6c0f2bf25f7b9ed5f5d8d3a8915d"/> + <macro name="Sfbdparadata" file="Sfbdparadata.bin" md5="f9c0c54671a68458f4bcb1936fa402ec"/> + <macro name="Sfbdpersdata" file="Sfbdpersdata.bin" md5="aa08f921566b64c11e888ee34429eca5"/> + <macro name="Sfbdrawparadata" file="Sfbdrawparadata.bin" md5="fae8431fd5fe5ead8ff2f85d45e144c1"/> + <macro name="Sfbdrawpersdata" file="Sfbdrawpersdata.bin" md5="1cafbda088573fad0d85f2bb2a165178"/> + <macro name="Sfcutdata" file="Sfcutdata.bin" md5="4dff7dff641c5e51588e8f27c2068396"/> + <macro name="Sfcutoffparadata" file="Sfcutoffparadata.bin" md5="d5089ce276ce8329a5e25772eda825ad"/> + <macro name="Sfcutoffpersdata" file="Sfcutoffpersdata.bin" md5="8f232600533c8c553d279fb7999a9aef"/> + <macro name="Sfcutoffrawparadata" file="Sfcutoffrawparadata.bin" md5="b530fdec88ecac05548dcbc183fac672"/> + <macro name="Sfcutoffrawpersdata" file="Sfcutoffrawpersdata.bin" md5="c7dc8aec4aedc1a9e3b88a423b4e4091"/> + <macro name="Sfparadata" file="Sfparadata.bin" md5="636205ff5e7fa28c188beb8a788ec30f"/> + <macro name="Sfpersdata" file="Sfpersdata.bin" md5="2c198aaa68180b41eb0dd81812668a52"/> + <macro name="Shade" file="Shade.bin" md5="db51cd9b42032b1fd9cebb3f0565d055"/> + <macro name="Skeleton2data" file="Skeleton2data.bin" md5="046308bb7c2d18186a5db1abf5724ace"/> + <macro name="Skeletonpara3data" file="Skeletonpara3data.bin" md5="8b00d1898174de20f097983ad72f96d9"/> + <macro name="Skeletonparadata" file="Skeletonparadata.bin" md5="6368394d29bd3e34c9dadbc54dd49755"/> + <macro name="Skeletonpers3data" file="Skeletonpers3data.bin" md5="62a627cd77291d934150cbe175d9ec06"/> + <macro name="Skeletonpersdata" file="Skeletonpersdata.bin" md5="63663e9c381325970209a62a00877361"/> + <macro name="Spacecurve" file="Spacecurve.bin" md5="e06c5eb2ae8623cee4fe135d6ed8d2a5"/> + <macro name="Spaceline" file="Spaceline.bin" md5="bcdf09d58fde1a3071968c7600cbcadc"/> + <macro name="Splinedata" file="Splinedata.bin" md5="c8cac41f49166b548f6bb20eb765f513"/> + <macro name="Strop" file="Strop.bin" md5="b3e20bfeaaf10aa827ec9be26865547b"/> + <macro name="Subs" file="Subs.bin" md5="daa0438a2d34af2d043c50b3d2a00a01"/> + <macro name="Sumfun" file="Sumfun.bin" md5="0a785d3c30c763778e1f92d3b8fb785e"/> + <macro name="Symb3data" file="Symb3data.bin" md5="ba72252ea118f44b847927d0de9b9892"/> + <macro name="Symbdata" file="Symbdata.bin" md5="53c196c0ca5f9026e4cd441e0d6586ed"/> + <macro name="Tabledata" file="Tabledata.bin" md5="b79bdcd7c171ab768e763d26d9b4f6a1"/> + <macro name="Texcom" file="Texcom.bin" md5="dc0139e9541acb939d1c3839a0fc11f6"/> + <macro name="Texctr" file="Texctr.bin" md5="5f23e09b23191bec07cb10b070d5c66b"/> + <macro name="Texelse" file="Texelse.bin" md5="f8b67c8497e8dd9ac1dbcc5a90fc930c"/> + <macro name="Texend" file="Texend.bin" md5="351105e6dd3c5c171f0944030fba69c4"/> + <macro name="Texendfor" file="Texendfor.bin" md5="7d1005515ed98a776c7c9a00a2a970d8"/> + <macro name="Texendif" file="Texendif.bin" md5="6323c9cf98ac4c1d6e01bef2dadc6614"/> + <macro name="Texfor" file="Texfor.bin" md5="0ade87f95e63dadbdbfe35efbca00e86"/> + <macro name="Texforinit" file="Texforinit.bin" md5="6e96556a978535b632dba9e33b9551b3"/> + <macro name="Texif" file="Texif.bin" md5="db3af265fced379c5bc2a35dcd661aef"/> + <macro name="Texletter" file="Texletter.bin" md5="7a7ebe58bae97a3a17d646d1c7a9e1da"/> + <macro name="Texnewcmd" file="Texnewcmd.bin" md5="b4f314f440314e77d8c93385172eb5e1"/> + <macro name="Texnewctr" file="Texnewctr.bin" md5="86756d50c10bcf8359c1a924e6e1004d"/> + <macro name="Texrenewcmd" file="Texrenewcmd.bin" md5="90e63f10dd735a7263da2cb8661692c7"/> + <macro name="Texsetctr" file="Texsetctr.bin" md5="8d9cd50bcb9304e25e27ac7818c9b047"/> + <macro name="Texthectr" file="Texthectr.bin" md5="b74d5106ff432a8c84dfd3e8baf9402f"/> + <macro name="Texvalctr" file="Texvalctr.bin" md5="6a789e4941c736527f57d75d1ba26123"/> + <macro name="Texvctr" file="Texvctr.bin" md5="05e1f689e4002ca0b53c1b7674d814e0"/> + <macro name="Thetadegree" file="Thetadegree.bin" md5="0ff4846aaeb83b20683ec4d4b60ed98f"/> + <macro name="ThisVersion" file="ThisVersion.bin" md5="5d9fc94c56eb694d62a16b1f7a6a9d04"/> + <macro name="Tolist" file="Tolist.bin" md5="65c83ab06c83674c70f46e0f402d3580"/> + <macro name="Translate3data" file="Translate3data.bin" md5="38c5bcaf8d3659c75cd7cf335d26196b"/> + <macro name="Translatedata" file="Translatedata.bin" md5="17b85cc7ed17d1f260cf758ead8dc0ab"/> + <macro name="Trunc" file="Trunc.bin" md5="7a6a605bcba822854e4c917fe41db659"/> + <macro name="Unscaling" file="Unscaling.bin" md5="08ee317471c47d086c9404e47955b17b"/> + <macro name="Vecnagasa" file="Vecnagasa.bin" md5="aaeae5f1a186bba7b2c357a2c77ce2a1"/> + <macro name="Vecnagasa2" file="Vecnagasa2.bin" md5="41c4c41904d6b87a9844d20fd860a6cb"/> + <macro name="Viewfrom" file="Viewfrom.bin" md5="fe4685d5db0abf45a31b2b643b20c23f"/> + <macro name="Vtickmark" file="Vtickmark.bin" md5="375b4bc294d26ab3b7d30f8fbd4bfad7"/> + <macro name="Windisp" file="Windisp.bin" md5="1e48a32bf2ea244b701fb5bb63ea18f4"/> + <macro name="WireHiddenData" file="WireHiddenData.bin" md5="7fb2be220f2c6dfefea57e5a9acf9145"/> + <macro name="WirePt" file="WirePt.bin" md5="0936e8dd2f3ca890efaf0b274aa64d96"/> + <macro name="Wireparadata" file="Wireparadata.bin" md5="60a5c112230c8cb7ebd803304b1b17b7"/> + <macro name="Wirepersdata" file="Wirepersdata.bin" md5="b2696b1685c9456c6857fbdd1424256a"/> + <macro name="Wirerawparadata" file="Wirerawparadata.bin" md5="e770b9a2bce4c8804fc62a5191be1545"/> + <macro name="Wirerawpersdata" file="Wirerawpersdata.bin" md5="f254f9cad0b02b01e7388fbbb433bcc4"/> + <macro name="WriteOutData" file="WriteOutData.bin" md5="55682f0605917544dd41d2c25f24786c"/> + <macro name="Writeobjpoint" file="Writeobjpoint.bin" md5="24c598f95cc38899d5cf5d3048a9e263"/> + <macro name="Writetextdata" file="Writetextdata.bin" md5="b1da333518052fedb658e0827833a54f"/> + <macro name="WritetoCindy" file="WritetoCindy.bin" md5="c8a05614d69d73bd4aa3c562cf479872"/> + <macro name="Xmax" file="Xmax.bin" md5="87038803908d553ab8de412b410887dd"/> + <macro name="Xmin" file="Xmin.bin" md5="eae15ed2438d2805a6ad488cf22b75e8"/> + <macro name="Xyzax3data" file="Xyzax3data.bin" md5="633e040e19b435e55bb66dbc4f231117"/> + <macro name="Xyzaxparaname" file="Xyzaxparaname.bin" md5="8fa701d6b92b478a97ed8b4e263c9a18"/> + <macro name="Xyzaxpersname" file="Xyzaxpersname.bin" md5="1e9573e9452267842a7907f30661e902"/> + <macro name="Ymax" file="Ymax.bin" md5="4ab8eccdba393b4c41a45d38f97faf88"/> + <macro name="Ymin" file="Ymin.bin" md5="5dedfdfc18e01299ea069b578be8b697"/> + <macro name="Zparapt" file="Zparapt.bin" md5="e16dd6e761c2e8ec7eb31da49d7a3b96"/> + <macro name="Zperspt" file="Zperspt.bin" md5="b04d5677e9ee74a1cbff3ad73c9d2a20"/> +</scilablib> diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/names b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/names new file mode 100755 index 00000000..cef9f19b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic2escifiles6/names @@ -0,0 +1,335 @@ +Addcounter +Anglemark +Arrowdata +Arrowhead +Arrowheaddata +Arrowline +Assign +Assignadd +Assignrep +Assignset +Beginpicture +BorderHiddenData +Borderparadata +Borderpersdata +BorderPt +Borderrawdata +Bowdata +Bowmiddle +Bowname +Bownamerot +Calcfun +CalcHeight +CalcWidth +CameracoordCurve +CameraCurve +Cancoordpara +Cancoordpers +Circledata +Clipindomain +Closefile +Closepar +Closephr +Closepicture +Closeobj +Connectseg +Crossprod +Crv3onsfHiddenData +Crv3onsfparadata +Crv3onsfpersdata +CrvonsfHiddenData +Crvonsfparadata +Crvonsfpersdata +CrvsfHiddenData +Crvsfparadata +Crvsfpersdata +CuspData +CuspPt +Cuspsplitpara +Cuspsplitpers +CuspSplitPt +Cutsf2d +Dashline +Dataindex +Deqplot +Derivative +Diagcelldata +Dividegraphics +Dividetable +Doscaling +Dotfilldata +Dotprod +Dottedline +Dropnumlistcrv +Droppoint +Drwline +Drwpt +Drwxy +Embed +Enclosing +EnclosingS +Endpicture +Evlptablepara +Evlptablepers +Execmd +Expr +Exprrot +Faceremovaldata +Facesdata +Findcell +Flattenlist +Fontsize +Fouriercoeff +FouriercoeffL +Fouriersum +Fracform +Framedata +Fullformfunc +Gaiseki +Getcounter +Gettrace +Hatchdata +Hexahedrondata +HiddenWireData +Htickmark +Implicitplot +ImplicitData +Initangle +Integrate +Intersectcrvs +Intersectcrvsf +IntersectcrvsPp +Intersectlines +IntersectselfPp +Invdashline +Invert +Invparapt +Invperspt +InWindow +Joincrvs +Joingraphics +Ketinit +Kouten +KoutenList +Koutenseg +Kukannozoku +Kukeiwake +Kyorihensuu +Kyoukai +Letter +Letterrot +Lineplot +Listplot +MakeBowdata +MakecutbycrvL +MakeCurves +Makehasen +Makeliststr +Makesfcutoffdata +Makeshasen +Makeskeletondata +Makeskeletonpersdata +Makevaltable +MakeveLfaceL +Makexybdy +Mawarikomi +Meetpoints +MeetWindow +Member +Menkakusi +Menkakusi2 +Mix +Mixadd +Mixdisp +Mixjoin +MixL +Mixlength +Mixmake +Mixop +MixS +Mixsub +Mixtype +Naigai +Naiseki +Nearestpt +Newlength +Nohiddenpara +Nohiddenpara2 +Nohiddenpers +Nohiddenpers2 +Numptcrv +Objjoin +Objname +Objcurve +Objpolyhedron +Objpolygon +Objrecs +Objsurf +Objsymb +Objthicksurf +Openobj +Op +Openfile +Openpar +Openphr +Openpicture +Ovalbox +Ovaldata +Paramark +Paramoncrv +ParamonCurve +Paramplot +Parapt +Partcrv +Partcrv3 +Partframe +PartitionPt +Partitionseg +Perspt +Phcutdata +Phcutoffdata +Phidegree +PhFaceL +PhHiddenData +Phparadata +Phpersdata +Phsparadata +Phspersdata +Phrawparadata +Phrawpersdata +Phsrawparadata +Phsrawpersdata +PhVertexL +Plotdata +Pointdata +Pointoncrv +PointonCurve +Powersum +Prime +Printobjstr +ProjcoordCurve +ProjCurve +Projpara +Projpers +Ptcrv +Ptend +PthiddenQ +Ptne +Ptnw +Ptse +Ptstart +Ptsw +Putcell +Putcirmark +PutcoL +PutcoLexpr +PutcoLstr +Putdashmark +Putrecmark +Putrow +Putrowexpr +Putrowstr +Puttrace +Ratiocmyk +ReadfromCindy +Readtextdata +Reflectdata +Rmmember +Rotate3data +Rotate3pt +Rotatedata +Roundstr +Scaledata +Sectionview +Setangle +Setarrow +Setax +Setcolor +Setcounter +Setmark +Setmarklen +Setobjdecimals +Setobjscale +Setorigin +Setpen +Setpers +Setpt +Setscaling +SetstereoL +SetstereoR +Setunitlen +Setversion +Setwindow +Sf3data +Sfbdparadata +Sfbdpersdata +Sfbdrawparadata +Sfbdrawpersdata +Sfcutdata +Sfcutoffparadata +Sfcutoffpersdata +Sfcutoffrawparadata +Sfcutoffrawpersdata +Sfparadata +Sfpersdata +Shade +Skeleton2data +Skeletonparadata +Skeletonpara3data +Skeletonpersdata +Skeletonpers3data +Spacecurve +Spaceline +Splinedata +Strop +Subs +Sumfun +Symbdata +Symb3data +Tabledata +Texcom +Texctr +Texelse +Texend +Texendfor +Texendif +Texfor +Texforinit +Texif +Texletter +Texnewcmd +Texnewctr +Texrenewcmd +Texsetctr +Texthectr +Texvalctr +Texvctr +Thetadegree +ThisVersion +Tolist +Translate3data +Translatedata +Trunc +Unscaling +Vecnagasa +Vecnagasa2 +Viewfrom +Vtickmark +Windisp +WireHiddenData +Wireparadata +Wirepersdata +WirePt +Wirerawparadata +Wirerawpersdata +Writetextdata +Writeobjpoint +Xmax +Xmin +Xyzaxparaname +Xyzaxpersname +Xyzax3data +Ymax +Ymin +Zparapt +Zperspt diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpic_ltd.Rdata b/texmf-dist/scripts/ketpic/ketlib/ketpic_ltd.Rdata Binary files differnew file mode 100644 index 00000000..0f1f1fd8 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpic_ltd.Rdata diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Addcounter.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Addcounter.bin Binary files differnew file mode 100644 index 00000000..c1e3ef24 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Addcounter.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Anglemark.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Anglemark.bin Binary files differnew file mode 100644 index 00000000..8b094651 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Anglemark.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Arrowdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Arrowdata.bin Binary files differnew file mode 100644 index 00000000..2af2be64 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Arrowdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Arrowhead.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Arrowhead.bin Binary files differnew file mode 100644 index 00000000..f4101b32 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Arrowhead.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Arrowheaddata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Arrowheaddata.bin Binary files differnew file mode 100644 index 00000000..3640469b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Arrowheaddata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Arrowline.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Arrowline.bin Binary files differnew file mode 100644 index 00000000..0d68e6d0 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Arrowline.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Assign.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Assign.bin Binary files differnew file mode 100644 index 00000000..3f243306 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Assign.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Assignadd.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Assignadd.bin Binary files differnew file mode 100644 index 00000000..99a0cecd --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Assignadd.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Assignrep.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Assignrep.bin Binary files differnew file mode 100644 index 00000000..47ac2ac9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Assignrep.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Assignset.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Assignset.bin Binary files differnew file mode 100644 index 00000000..afb1b3bc --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Assignset.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Beginpicture.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Beginpicture.bin Binary files differnew file mode 100644 index 00000000..81625f07 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Beginpicture.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Bezier.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Bezier.bin Binary files differnew file mode 100644 index 00000000..1e8b41fb --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Bezier.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Bezierpt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Bezierpt.bin Binary files differnew file mode 100644 index 00000000..f146b511 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Bezierpt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/BorderHiddenData.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/BorderHiddenData.bin Binary files differnew file mode 100644 index 00000000..bb466f84 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/BorderHiddenData.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/BorderPt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/BorderPt.bin Binary files differnew file mode 100644 index 00000000..80964b1c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/BorderPt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Borderparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Borderparadata.bin Binary files differnew file mode 100644 index 00000000..94cfb714 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Borderparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Borderpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Borderpersdata.bin Binary files differnew file mode 100644 index 00000000..bee787d9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Borderpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Borderrawdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Borderrawdata.bin Binary files differnew file mode 100644 index 00000000..f53ad324 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Borderrawdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Bowdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Bowdata.bin Binary files differnew file mode 100644 index 00000000..05a4fb2e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Bowdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Bowmiddle.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Bowmiddle.bin Binary files differnew file mode 100644 index 00000000..bc02de52 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Bowmiddle.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Bowname.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Bowname.bin Binary files differnew file mode 100644 index 00000000..77aa840f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Bowname.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Bownamerot.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Bownamerot.bin Binary files differnew file mode 100644 index 00000000..49978903 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Bownamerot.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/CalcHeight.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/CalcHeight.bin Binary files differnew file mode 100644 index 00000000..5e3f28b9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/CalcHeight.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/CalcWidth.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/CalcWidth.bin Binary files differnew file mode 100644 index 00000000..426023be --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/CalcWidth.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Calcfun.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Calcfun.bin Binary files differnew file mode 100644 index 00000000..7745bccc --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Calcfun.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/CameraCurve.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/CameraCurve.bin Binary files differnew file mode 100644 index 00000000..d037c656 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/CameraCurve.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/CameracoordCurve.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/CameracoordCurve.bin Binary files differnew file mode 100644 index 00000000..13e374db --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/CameracoordCurve.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Cancoordpara.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Cancoordpara.bin Binary files differnew file mode 100644 index 00000000..c16f84ba --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Cancoordpara.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Cancoordpers.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Cancoordpers.bin Binary files differnew file mode 100644 index 00000000..55b15ad7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Cancoordpers.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Circledata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Circledata.bin Binary files differnew file mode 100644 index 00000000..9a27e094 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Circledata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Clipindomain.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Clipindomain.bin Binary files differnew file mode 100644 index 00000000..73ea5db3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Clipindomain.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Closefile.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Closefile.bin Binary files differnew file mode 100644 index 00000000..e7a00c3e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Closefile.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Closeobj.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Closeobj.bin Binary files differnew file mode 100644 index 00000000..f62af795 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Closeobj.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Closepar.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Closepar.bin Binary files differnew file mode 100644 index 00000000..f73458f1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Closepar.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Closephr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Closephr.bin Binary files differnew file mode 100644 index 00000000..5960bb73 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Closephr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Closepicture.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Closepicture.bin Binary files differnew file mode 100644 index 00000000..1c8fd062 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Closepicture.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Connectseg.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Connectseg.bin Binary files differnew file mode 100644 index 00000000..70566c55 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Connectseg.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Crossprod.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Crossprod.bin Binary files differnew file mode 100644 index 00000000..ade04624 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Crossprod.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Crv3onsfHiddenData.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Crv3onsfHiddenData.bin Binary files differnew file mode 100644 index 00000000..5c4f8404 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Crv3onsfHiddenData.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Crv3onsfparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Crv3onsfparadata.bin Binary files differnew file mode 100644 index 00000000..7d645929 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Crv3onsfparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Crv3onsfpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Crv3onsfpersdata.bin Binary files differnew file mode 100644 index 00000000..7f994b75 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Crv3onsfpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/CrvonsfHiddenData.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/CrvonsfHiddenData.bin Binary files differnew file mode 100644 index 00000000..d92d7a5a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/CrvonsfHiddenData.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Crvonsfparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Crvonsfparadata.bin Binary files differnew file mode 100644 index 00000000..71b24de1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Crvonsfparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Crvonsfpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Crvonsfpersdata.bin Binary files differnew file mode 100644 index 00000000..835d570f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Crvonsfpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/CrvsfHiddenData.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/CrvsfHiddenData.bin Binary files differnew file mode 100644 index 00000000..0ecbcb1c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/CrvsfHiddenData.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Crvsfparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Crvsfparadata.bin Binary files differnew file mode 100644 index 00000000..dba77269 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Crvsfparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Crvsfpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Crvsfpersdata.bin Binary files differnew file mode 100644 index 00000000..b3a3f8e4 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Crvsfpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/CuspData.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/CuspData.bin Binary files differnew file mode 100644 index 00000000..b2124b51 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/CuspData.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/CuspPt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/CuspPt.bin Binary files differnew file mode 100644 index 00000000..08f82d89 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/CuspPt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/CuspSplitPt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/CuspSplitPt.bin Binary files differnew file mode 100644 index 00000000..2fbf6adb --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/CuspSplitPt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Cuspsplitpara.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Cuspsplitpara.bin Binary files differnew file mode 100644 index 00000000..b09e4aeb --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Cuspsplitpara.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Cuspsplitpers.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Cuspsplitpers.bin Binary files differnew file mode 100644 index 00000000..609d057a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Cuspsplitpers.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Cutsf2d.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Cutsf2d.bin Binary files differnew file mode 100644 index 00000000..e6f70b1c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Cutsf2d.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Dashline.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Dashline.bin Binary files differnew file mode 100644 index 00000000..8f7d28a1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Dashline.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Dataindex.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Dataindex.bin Binary files differnew file mode 100644 index 00000000..e3bd11d0 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Dataindex.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Definecolor.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Definecolor.bin Binary files differnew file mode 100644 index 00000000..f0ff3ef8 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Definecolor.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Deqplot.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Deqplot.bin Binary files differnew file mode 100644 index 00000000..a3ba57b6 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Deqplot.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Derivative.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Derivative.bin Binary files differnew file mode 100644 index 00000000..8ab45716 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Derivative.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Diagcelldata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Diagcelldata.bin Binary files differnew file mode 100644 index 00000000..70d3663e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Diagcelldata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Dividegraphics.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Dividegraphics.bin Binary files differnew file mode 100644 index 00000000..03498fd7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Dividegraphics.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Dividetable.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Dividetable.bin Binary files differnew file mode 100644 index 00000000..abf752c8 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Dividetable.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Doscaling.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Doscaling.bin Binary files differnew file mode 100644 index 00000000..1a024a4d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Doscaling.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Dotfilldata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Dotfilldata.bin Binary files differnew file mode 100644 index 00000000..589adeaf --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Dotfilldata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Dotprod.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Dotprod.bin Binary files differnew file mode 100644 index 00000000..7a097bea --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Dotprod.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Dottedline.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Dottedline.bin Binary files differnew file mode 100644 index 00000000..d3962817 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Dottedline.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Dropnumlistcrv.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Dropnumlistcrv.bin Binary files differnew file mode 100644 index 00000000..9ac44969 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Dropnumlistcrv.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Droppoint.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Droppoint.bin Binary files differnew file mode 100644 index 00000000..f4bff84e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Droppoint.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Drwline.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Drwline.bin Binary files differnew file mode 100644 index 00000000..d4520393 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Drwline.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Drwpt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Drwpt.bin Binary files differnew file mode 100644 index 00000000..05c9df9c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Drwpt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Drwxy.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Drwxy.bin Binary files differnew file mode 100644 index 00000000..54ce1e7c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Drwxy.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Embed.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Embed.bin Binary files differnew file mode 100644 index 00000000..5a081c10 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Embed.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Enclosing.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Enclosing.bin Binary files differnew file mode 100644 index 00000000..17e55798 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Enclosing.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/EnclosingS.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/EnclosingS.bin Binary files differnew file mode 100644 index 00000000..1a6860c5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/EnclosingS.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Endpicture.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Endpicture.bin Binary files differnew file mode 100644 index 00000000..7fa6e7b9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Endpicture.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Evlptablepara.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Evlptablepara.bin Binary files differnew file mode 100644 index 00000000..e4bb3e12 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Evlptablepara.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Evlptablepers.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Evlptablepers.bin Binary files differnew file mode 100644 index 00000000..a300752a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Evlptablepers.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Execmd.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Execmd.bin Binary files differnew file mode 100644 index 00000000..3ed90ff9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Execmd.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Expr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Expr.bin Binary files differnew file mode 100644 index 00000000..3cae8493 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Expr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Exprrot.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Exprrot.bin Binary files differnew file mode 100644 index 00000000..e249a055 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Exprrot.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Faceremovaldata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Faceremovaldata.bin Binary files differnew file mode 100644 index 00000000..f7f2e09b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Faceremovaldata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Facesdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Facesdata.bin Binary files differnew file mode 100644 index 00000000..003930bd --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Facesdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Findcell.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Findcell.bin Binary files differnew file mode 100644 index 00000000..1cc63d81 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Findcell.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Flattenlist.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Flattenlist.bin Binary files differnew file mode 100644 index 00000000..47cd3aff --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Flattenlist.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Fontsize.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Fontsize.bin Binary files differnew file mode 100644 index 00000000..d0ac6d1f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Fontsize.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Fouriercoeff.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Fouriercoeff.bin Binary files differnew file mode 100644 index 00000000..0c1ff22d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Fouriercoeff.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/FouriercoeffL.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/FouriercoeffL.bin Binary files differnew file mode 100644 index 00000000..0ada7614 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/FouriercoeffL.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Fouriersum.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Fouriersum.bin Binary files differnew file mode 100644 index 00000000..80d7fa1d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Fouriersum.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Fracform.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Fracform.bin Binary files differnew file mode 100644 index 00000000..f17997ae --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Fracform.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Framedata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Framedata.bin Binary files differnew file mode 100644 index 00000000..4dfc5fba --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Framedata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Fullformfunc.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Fullformfunc.bin Binary files differnew file mode 100644 index 00000000..a445388d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Fullformfunc.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Gaiseki.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Gaiseki.bin Binary files differnew file mode 100644 index 00000000..00cefe7b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Gaiseki.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Getcounter.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Getcounter.bin Binary files differnew file mode 100644 index 00000000..5efa1ba3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Getcounter.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Gettrace.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Gettrace.bin Binary files differnew file mode 100644 index 00000000..31de11e2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Gettrace.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Hatchdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Hatchdata.bin Binary files differnew file mode 100644 index 00000000..8bc86748 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Hatchdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Hexahedrondata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Hexahedrondata.bin Binary files differnew file mode 100644 index 00000000..ebb9f45e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Hexahedrondata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/HiddenWireData.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/HiddenWireData.bin Binary files differnew file mode 100644 index 00000000..0335b185 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/HiddenWireData.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Htickmark.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Htickmark.bin Binary files differnew file mode 100644 index 00000000..88ce57e9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Htickmark.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/ImplicitData.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/ImplicitData.bin Binary files differnew file mode 100644 index 00000000..f52ad0ee --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/ImplicitData.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Implicitplot.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Implicitplot.bin Binary files differnew file mode 100644 index 00000000..5662575f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Implicitplot.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/InWindow.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/InWindow.bin Binary files differnew file mode 100644 index 00000000..38306a20 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/InWindow.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Initangle.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Initangle.bin Binary files differnew file mode 100644 index 00000000..3c6ed6c5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Initangle.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Integrate.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Integrate.bin Binary files differnew file mode 100644 index 00000000..deb2de0d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Integrate.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Intersectcrvs.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Intersectcrvs.bin Binary files differnew file mode 100644 index 00000000..3a87071b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Intersectcrvs.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/IntersectcrvsPp.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/IntersectcrvsPp.bin Binary files differnew file mode 100644 index 00000000..de85e2a9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/IntersectcrvsPp.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Intersectcrvsf.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Intersectcrvsf.bin Binary files differnew file mode 100644 index 00000000..3a918b84 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Intersectcrvsf.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Intersectlines.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Intersectlines.bin Binary files differnew file mode 100644 index 00000000..5b1846e7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Intersectlines.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/IntersectselfPp.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/IntersectselfPp.bin Binary files differnew file mode 100644 index 00000000..2b895f4d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/IntersectselfPp.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Invdashline.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Invdashline.bin Binary files differnew file mode 100644 index 00000000..76baa221 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Invdashline.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Invert.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Invert.bin Binary files differnew file mode 100644 index 00000000..def0bb31 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Invert.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Invparapt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Invparapt.bin Binary files differnew file mode 100644 index 00000000..07c0c078 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Invparapt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Invperspt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Invperspt.bin Binary files differnew file mode 100644 index 00000000..5dbdc7cb --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Invperspt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Joincrvs.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Joincrvs.bin Binary files differnew file mode 100644 index 00000000..dafe1e24 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Joincrvs.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Joingraphics.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Joingraphics.bin Binary files differnew file mode 100644 index 00000000..97caac64 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Joingraphics.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Ketinit.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Ketinit.bin Binary files differnew file mode 100644 index 00000000..70e1971c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Ketinit.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Kouten.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Kouten.bin Binary files differnew file mode 100644 index 00000000..21dc66a1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Kouten.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/KoutenList.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/KoutenList.bin Binary files differnew file mode 100644 index 00000000..9ccea2a3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/KoutenList.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Koutenseg.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Koutenseg.bin Binary files differnew file mode 100644 index 00000000..d191d41a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Koutenseg.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Kukannozoku.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Kukannozoku.bin Binary files differnew file mode 100644 index 00000000..313c934d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Kukannozoku.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Kukeiwake.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Kukeiwake.bin Binary files differnew file mode 100644 index 00000000..f705d5b1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Kukeiwake.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Kyorihensuu.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Kyorihensuu.bin Binary files differnew file mode 100644 index 00000000..3940a613 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Kyorihensuu.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Kyoukai.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Kyoukai.bin Binary files differnew file mode 100644 index 00000000..c9ce9f14 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Kyoukai.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Letter.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Letter.bin Binary files differnew file mode 100644 index 00000000..bcaebbbd --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Letter.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Letterrot.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Letterrot.bin Binary files differnew file mode 100644 index 00000000..4bc6206a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Letterrot.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Lineplot.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Lineplot.bin Binary files differnew file mode 100644 index 00000000..51fbfbe1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Lineplot.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Listplot.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Listplot.bin Binary files differnew file mode 100644 index 00000000..0fa577df --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Listplot.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/MakeBowdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/MakeBowdata.bin Binary files differnew file mode 100644 index 00000000..fb13efa4 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/MakeBowdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/MakeCurves.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/MakeCurves.bin Binary files differnew file mode 100644 index 00000000..98ddd1a4 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/MakeCurves.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/MakecutbycrvL.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/MakecutbycrvL.bin Binary files differnew file mode 100644 index 00000000..6356eaed --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/MakecutbycrvL.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Makehasen.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Makehasen.bin Binary files differnew file mode 100644 index 00000000..7f8de9cd --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Makehasen.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Makeliststr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Makeliststr.bin Binary files differnew file mode 100644 index 00000000..83ba3861 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Makeliststr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Makesfcutoffdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Makesfcutoffdata.bin Binary files differnew file mode 100644 index 00000000..92534466 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Makesfcutoffdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Makeshasen.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Makeshasen.bin Binary files differnew file mode 100644 index 00000000..2d013048 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Makeshasen.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Makeskeletondata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Makeskeletondata.bin Binary files differnew file mode 100644 index 00000000..0bd11580 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Makeskeletondata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Makeskeletonpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Makeskeletonpersdata.bin Binary files differnew file mode 100644 index 00000000..49a24e6c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Makeskeletonpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Makevaltable.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Makevaltable.bin Binary files differnew file mode 100644 index 00000000..67316bd1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Makevaltable.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/MakeveLfaceL.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/MakeveLfaceL.bin Binary files differnew file mode 100644 index 00000000..1658b408 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/MakeveLfaceL.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Makexybdy.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Makexybdy.bin Binary files differnew file mode 100644 index 00000000..95c31670 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Makexybdy.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Mawarikomi.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Mawarikomi.bin Binary files differnew file mode 100644 index 00000000..fcf74e3c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Mawarikomi.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/MeetWindow.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/MeetWindow.bin Binary files differnew file mode 100644 index 00000000..f5ced4c3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/MeetWindow.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Meetpoints.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Meetpoints.bin Binary files differnew file mode 100644 index 00000000..6cd9f985 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Meetpoints.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Member.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Member.bin Binary files differnew file mode 100644 index 00000000..c41eb72e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Member.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Menkakusi.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Menkakusi.bin Binary files differnew file mode 100644 index 00000000..ab493424 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Menkakusi.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Menkakusi2.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Menkakusi2.bin Binary files differnew file mode 100644 index 00000000..659d412f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Menkakusi2.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Mix.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Mix.bin Binary files differnew file mode 100644 index 00000000..f26a75b6 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Mix.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/MixL.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/MixL.bin Binary files differnew file mode 100644 index 00000000..1a2a931f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/MixL.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/MixS.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/MixS.bin Binary files differnew file mode 100644 index 00000000..92c22101 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/MixS.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Mixadd.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Mixadd.bin Binary files differnew file mode 100644 index 00000000..43809cb9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Mixadd.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Mixdisp.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Mixdisp.bin Binary files differnew file mode 100644 index 00000000..4562fd87 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Mixdisp.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Mixjoin.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Mixjoin.bin Binary files differnew file mode 100644 index 00000000..29800896 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Mixjoin.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Mixlength.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Mixlength.bin Binary files differnew file mode 100644 index 00000000..dc725565 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Mixlength.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Mixmake.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Mixmake.bin Binary files differnew file mode 100644 index 00000000..e1ab36e0 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Mixmake.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Mixop.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Mixop.bin Binary files differnew file mode 100644 index 00000000..74a5a6aa --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Mixop.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Mixsub.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Mixsub.bin Binary files differnew file mode 100644 index 00000000..332d7968 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Mixsub.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Mixtype.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Mixtype.bin Binary files differnew file mode 100644 index 00000000..b188ade7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Mixtype.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Naigai.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Naigai.bin Binary files differnew file mode 100644 index 00000000..4c0a5b2d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Naigai.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Naiseki.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Naiseki.bin Binary files differnew file mode 100644 index 00000000..d7d9f480 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Naiseki.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Nearestpt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Nearestpt.bin Binary files differnew file mode 100644 index 00000000..bf51af8a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Nearestpt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Newlength.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Newlength.bin Binary files differnew file mode 100644 index 00000000..80a32401 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Newlength.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Nohiddenpara.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Nohiddenpara.bin Binary files differnew file mode 100644 index 00000000..b7f0d8cf --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Nohiddenpara.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Nohiddenpara2.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Nohiddenpara2.bin Binary files differnew file mode 100644 index 00000000..7bfcf7ab --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Nohiddenpara2.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Nohiddenpers.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Nohiddenpers.bin Binary files differnew file mode 100644 index 00000000..2bdabcc4 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Nohiddenpers.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Nohiddenpers2.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Nohiddenpers2.bin Binary files differnew file mode 100644 index 00000000..b692d55a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Nohiddenpers2.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Numptcrv.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Numptcrv.bin Binary files differnew file mode 100644 index 00000000..57a2ce6f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Numptcrv.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Objcurve.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Objcurve.bin Binary files differnew file mode 100644 index 00000000..845d40ca --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Objcurve.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Objjoin.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Objjoin.bin Binary files differnew file mode 100644 index 00000000..92afe9ad --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Objjoin.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Objname.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Objname.bin Binary files differnew file mode 100644 index 00000000..a14bcc2f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Objname.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Objpolygon.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Objpolygon.bin Binary files differnew file mode 100644 index 00000000..da05430c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Objpolygon.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Objpolyhedron.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Objpolyhedron.bin Binary files differnew file mode 100644 index 00000000..18416f1c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Objpolyhedron.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Objrecs.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Objrecs.bin Binary files differnew file mode 100644 index 00000000..bef4fb7d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Objrecs.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Objsurf.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Objsurf.bin Binary files differnew file mode 100644 index 00000000..6bbe6d7d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Objsurf.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Objsymb.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Objsymb.bin Binary files differnew file mode 100644 index 00000000..8c215679 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Objsymb.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Objthicksurf.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Objthicksurf.bin Binary files differnew file mode 100644 index 00000000..e66c254e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Objthicksurf.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Op.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Op.bin Binary files differnew file mode 100644 index 00000000..fb3d3b45 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Op.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Openfile.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Openfile.bin Binary files differnew file mode 100644 index 00000000..e1625a76 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Openfile.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Openobj.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Openobj.bin Binary files differnew file mode 100644 index 00000000..2024ea60 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Openobj.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Openpar.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Openpar.bin Binary files differnew file mode 100644 index 00000000..c812540a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Openpar.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Openphr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Openphr.bin Binary files differnew file mode 100644 index 00000000..41d69ca5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Openphr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Openpicture.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Openpicture.bin Binary files differnew file mode 100644 index 00000000..d285a0cc --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Openpicture.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Ovalbox.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Ovalbox.bin Binary files differnew file mode 100644 index 00000000..32bf34e8 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Ovalbox.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Ovaldata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Ovaldata.bin Binary files differnew file mode 100644 index 00000000..d28e36ee --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Ovaldata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Paramark.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Paramark.bin Binary files differnew file mode 100644 index 00000000..a7078f9c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Paramark.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/ParamonCurve.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/ParamonCurve.bin Binary files differnew file mode 100644 index 00000000..e4c31df3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/ParamonCurve.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Paramoncrv.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Paramoncrv.bin Binary files differnew file mode 100644 index 00000000..f532d7ee --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Paramoncrv.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Paramplot.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Paramplot.bin Binary files differnew file mode 100644 index 00000000..ffebca84 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Paramplot.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Parapt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Parapt.bin Binary files differnew file mode 100644 index 00000000..e7958ab9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Parapt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Partcrv.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Partcrv.bin Binary files differnew file mode 100644 index 00000000..d54eb52f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Partcrv.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Partcrv3.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Partcrv3.bin Binary files differnew file mode 100644 index 00000000..07321262 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Partcrv3.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Partframe.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Partframe.bin Binary files differnew file mode 100644 index 00000000..a13d3f5f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Partframe.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/PartitionPt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/PartitionPt.bin Binary files differnew file mode 100644 index 00000000..58cef916 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/PartitionPt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Partitionseg.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Partitionseg.bin Binary files differnew file mode 100644 index 00000000..6f557a3b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Partitionseg.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Perspt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Perspt.bin Binary files differnew file mode 100644 index 00000000..f95c613a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Perspt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/PhFaceL.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/PhFaceL.bin Binary files differnew file mode 100644 index 00000000..2d1eec35 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/PhFaceL.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/PhHiddenData.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/PhHiddenData.bin Binary files differnew file mode 100644 index 00000000..ac5490d9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/PhHiddenData.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/PhVertexL.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/PhVertexL.bin Binary files differnew file mode 100644 index 00000000..814b8791 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/PhVertexL.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Phcutdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Phcutdata.bin Binary files differnew file mode 100644 index 00000000..d700ec69 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Phcutdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Phcutoffdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Phcutoffdata.bin Binary files differnew file mode 100644 index 00000000..ccea3366 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Phcutoffdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Phidegree.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Phidegree.bin Binary files differnew file mode 100644 index 00000000..c3f667e3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Phidegree.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Phparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Phparadata.bin Binary files differnew file mode 100644 index 00000000..2e3c664b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Phparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Phpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Phpersdata.bin Binary files differnew file mode 100644 index 00000000..1a2bbf95 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Phpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Phrawparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Phrawparadata.bin Binary files differnew file mode 100644 index 00000000..903c9029 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Phrawparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Phrawpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Phrawpersdata.bin Binary files differnew file mode 100644 index 00000000..5e7b5ffb --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Phrawpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Phsparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Phsparadata.bin Binary files differnew file mode 100644 index 00000000..da8b1196 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Phsparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Phspersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Phspersdata.bin Binary files differnew file mode 100644 index 00000000..6ac27dcb --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Phspersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Phsrawparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Phsrawparadata.bin Binary files differnew file mode 100644 index 00000000..a3da7dd1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Phsrawparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Phsrawpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Phsrawpersdata.bin Binary files differnew file mode 100644 index 00000000..8843cde4 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Phsrawpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Plotdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Plotdata.bin Binary files differnew file mode 100644 index 00000000..c0547852 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Plotdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Pointdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Pointdata.bin Binary files differnew file mode 100644 index 00000000..8c11c2c2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Pointdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/PointonCurve.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/PointonCurve.bin Binary files differnew file mode 100644 index 00000000..e6055b42 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/PointonCurve.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Pointoncrv.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Pointoncrv.bin Binary files differnew file mode 100644 index 00000000..cf693dd1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Pointoncrv.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Powersum.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Powersum.bin Binary files differnew file mode 100644 index 00000000..1dce322f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Powersum.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Prime.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Prime.bin Binary files differnew file mode 100644 index 00000000..e7094eb4 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Prime.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Printobjstr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Printobjstr.bin Binary files differnew file mode 100644 index 00000000..3a62be73 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Printobjstr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/ProjCurve.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/ProjCurve.bin Binary files differnew file mode 100644 index 00000000..2ca583e9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/ProjCurve.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/ProjcoordCurve.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/ProjcoordCurve.bin Binary files differnew file mode 100644 index 00000000..5de23ccd --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/ProjcoordCurve.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Projpara.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Projpara.bin Binary files differnew file mode 100644 index 00000000..bda03ab0 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Projpara.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Projpers.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Projpers.bin Binary files differnew file mode 100644 index 00000000..fbf6d134 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Projpers.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Ptcrv.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Ptcrv.bin Binary files differnew file mode 100644 index 00000000..13f43f67 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Ptcrv.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Ptend.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Ptend.bin Binary files differnew file mode 100644 index 00000000..10ac2f07 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Ptend.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/PthiddenQ.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/PthiddenQ.bin Binary files differnew file mode 100644 index 00000000..cf36ca4e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/PthiddenQ.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Ptne.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Ptne.bin Binary files differnew file mode 100644 index 00000000..4f608b89 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Ptne.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Ptnw.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Ptnw.bin Binary files differnew file mode 100644 index 00000000..727cf4d5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Ptnw.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Ptse.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Ptse.bin Binary files differnew file mode 100644 index 00000000..f09e463c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Ptse.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Ptstart.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Ptstart.bin Binary files differnew file mode 100644 index 00000000..c1303557 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Ptstart.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Ptsw.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Ptsw.bin Binary files differnew file mode 100644 index 00000000..1003cd61 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Ptsw.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Putcell.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Putcell.bin Binary files differnew file mode 100644 index 00000000..be3a6f13 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Putcell.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Putcirmark.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Putcirmark.bin Binary files differnew file mode 100644 index 00000000..d154a0a0 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Putcirmark.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/PutcoL.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/PutcoL.bin Binary files differnew file mode 100644 index 00000000..77a99874 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/PutcoL.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/PutcoLexpr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/PutcoLexpr.bin Binary files differnew file mode 100644 index 00000000..01e1b69c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/PutcoLexpr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/PutcoLstr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/PutcoLstr.bin Binary files differnew file mode 100644 index 00000000..a4872a7f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/PutcoLstr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Putdashmark.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Putdashmark.bin Binary files differnew file mode 100644 index 00000000..1e679bfc --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Putdashmark.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Putrecmark.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Putrecmark.bin Binary files differnew file mode 100644 index 00000000..5df6db75 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Putrecmark.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Putrow.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Putrow.bin Binary files differnew file mode 100644 index 00000000..042a7261 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Putrow.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Putrowexpr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Putrowexpr.bin Binary files differnew file mode 100644 index 00000000..df1a3849 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Putrowexpr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Putrowstr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Putrowstr.bin Binary files differnew file mode 100644 index 00000000..da18fb37 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Putrowstr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Puttrace.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Puttrace.bin Binary files differnew file mode 100644 index 00000000..10769324 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Puttrace.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Ratiocmyk.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Ratiocmyk.bin Binary files differnew file mode 100644 index 00000000..56a87566 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Ratiocmyk.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/ReadOutData.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/ReadOutData.bin Binary files differnew file mode 100644 index 00000000..0acb33cf --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/ReadOutData.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/ReadfromCindy.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/ReadfromCindy.bin Binary files differnew file mode 100644 index 00000000..8d4a1b0e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/ReadfromCindy.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Readtextdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Readtextdata.bin Binary files differnew file mode 100644 index 00000000..f51f7599 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Readtextdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Reflectdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Reflectdata.bin Binary files differnew file mode 100644 index 00000000..02bd0619 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Reflectdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Rmmember.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Rmmember.bin Binary files differnew file mode 100644 index 00000000..1036fe46 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Rmmember.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Rotate3data.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Rotate3data.bin Binary files differnew file mode 100644 index 00000000..6cfc7b1c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Rotate3data.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Rotate3pt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Rotate3pt.bin Binary files differnew file mode 100644 index 00000000..7bc8974d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Rotate3pt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Rotatedata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Rotatedata.bin Binary files differnew file mode 100644 index 00000000..dcde7e7d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Rotatedata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Roundstr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Roundstr.bin Binary files differnew file mode 100644 index 00000000..c9678719 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Roundstr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Scaledata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Scaledata.bin Binary files differnew file mode 100644 index 00000000..aca40719 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Scaledata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Sectionview.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Sectionview.bin Binary files differnew file mode 100644 index 00000000..bfdb8495 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Sectionview.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setangle.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setangle.bin Binary files differnew file mode 100644 index 00000000..997e8178 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setangle.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setarrow.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setarrow.bin Binary files differnew file mode 100644 index 00000000..1d2063bf --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setarrow.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setax.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setax.bin Binary files differnew file mode 100644 index 00000000..46e49d69 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setax.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setcolor.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setcolor.bin Binary files differnew file mode 100644 index 00000000..ae62bffa --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setcolor.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setcounter.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setcounter.bin Binary files differnew file mode 100644 index 00000000..3a609bc9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setcounter.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setmark.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setmark.bin Binary files differnew file mode 100644 index 00000000..be2cbbb6 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setmark.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setmarklen.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setmarklen.bin Binary files differnew file mode 100644 index 00000000..79ae6660 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setmarklen.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setobjdecimals.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setobjdecimals.bin Binary files differnew file mode 100644 index 00000000..3fe068d8 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setobjdecimals.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setobjscale.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setobjscale.bin Binary files differnew file mode 100644 index 00000000..adc5ef97 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setobjscale.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setorigin.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setorigin.bin Binary files differnew file mode 100644 index 00000000..ed695e7f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setorigin.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setpen.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setpen.bin Binary files differnew file mode 100644 index 00000000..918c968e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setpen.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setpers.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setpers.bin Binary files differnew file mode 100644 index 00000000..e417c91f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setpers.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setpt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setpt.bin Binary files differnew file mode 100644 index 00000000..f9fb21b4 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setpt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setscaling.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setscaling.bin Binary files differnew file mode 100644 index 00000000..faf60668 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setscaling.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/SetstereoL.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/SetstereoL.bin Binary files differnew file mode 100644 index 00000000..c0d4e9e7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/SetstereoL.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/SetstereoR.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/SetstereoR.bin Binary files differnew file mode 100644 index 00000000..44dc173e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/SetstereoR.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setunitlen.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setunitlen.bin Binary files differnew file mode 100644 index 00000000..6ef24cf2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setunitlen.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setversion.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setversion.bin Binary files differnew file mode 100644 index 00000000..9658e1ab --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setversion.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setwindow.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setwindow.bin Binary files differnew file mode 100644 index 00000000..fc39c4e1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Setwindow.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Sf3data.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Sf3data.bin Binary files differnew file mode 100644 index 00000000..bed3747e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Sf3data.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Sfbdparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Sfbdparadata.bin Binary files differnew file mode 100644 index 00000000..bd7b7168 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Sfbdparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Sfbdpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Sfbdpersdata.bin Binary files differnew file mode 100644 index 00000000..86ba2a9e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Sfbdpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Sfbdrawparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Sfbdrawparadata.bin Binary files differnew file mode 100644 index 00000000..c4009953 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Sfbdrawparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Sfbdrawpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Sfbdrawpersdata.bin Binary files differnew file mode 100644 index 00000000..278af331 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Sfbdrawpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Sfcutdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Sfcutdata.bin Binary files differnew file mode 100644 index 00000000..5aa6fd04 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Sfcutdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Sfcutoffparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Sfcutoffparadata.bin Binary files differnew file mode 100644 index 00000000..b22043d8 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Sfcutoffparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Sfcutoffpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Sfcutoffpersdata.bin Binary files differnew file mode 100644 index 00000000..64f416d6 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Sfcutoffpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Sfcutoffrawparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Sfcutoffrawparadata.bin Binary files differnew file mode 100644 index 00000000..cd356699 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Sfcutoffrawparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Sfcutoffrawpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Sfcutoffrawpersdata.bin Binary files differnew file mode 100644 index 00000000..295812ba --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Sfcutoffrawpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Sfparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Sfparadata.bin Binary files differnew file mode 100644 index 00000000..c98b95ed --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Sfparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Sfpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Sfpersdata.bin Binary files differnew file mode 100644 index 00000000..5a780fab --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Sfpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Shade.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Shade.bin Binary files differnew file mode 100644 index 00000000..037fffea --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Shade.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Skeleton2data.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Skeleton2data.bin Binary files differnew file mode 100644 index 00000000..b3d2d402 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Skeleton2data.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Skeletonpara3data.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Skeletonpara3data.bin Binary files differnew file mode 100644 index 00000000..5895e254 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Skeletonpara3data.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Skeletonparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Skeletonparadata.bin Binary files differnew file mode 100644 index 00000000..c34f7e16 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Skeletonparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Skeletonpers3data.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Skeletonpers3data.bin Binary files differnew file mode 100644 index 00000000..4ba4947b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Skeletonpers3data.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Skeletonpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Skeletonpersdata.bin Binary files differnew file mode 100644 index 00000000..9c83ea64 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Skeletonpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Spacecurve.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Spacecurve.bin Binary files differnew file mode 100644 index 00000000..0e8bacaf --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Spacecurve.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Spaceline.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Spaceline.bin Binary files differnew file mode 100644 index 00000000..b097e980 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Spaceline.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Splinedata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Splinedata.bin Binary files differnew file mode 100644 index 00000000..7a3c634c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Splinedata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Strop.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Strop.bin Binary files differnew file mode 100644 index 00000000..ca70656e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Strop.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Subs.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Subs.bin Binary files differnew file mode 100644 index 00000000..66f8e6c0 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Subs.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Sumfun.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Sumfun.bin Binary files differnew file mode 100644 index 00000000..a2bafc2c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Sumfun.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Symb3data.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Symb3data.bin Binary files differnew file mode 100644 index 00000000..131297e0 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Symb3data.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Symbdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Symbdata.bin Binary files differnew file mode 100644 index 00000000..a1a27f00 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Symbdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Tabledata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Tabledata.bin Binary files differnew file mode 100644 index 00000000..ab4bb5ed --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Tabledata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texcom.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texcom.bin Binary files differnew file mode 100644 index 00000000..74871299 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texcom.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texctr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texctr.bin Binary files differnew file mode 100644 index 00000000..e0e2dab3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texctr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texelse.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texelse.bin Binary files differnew file mode 100644 index 00000000..4e974456 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texelse.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texend.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texend.bin Binary files differnew file mode 100644 index 00000000..d22ea31d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texend.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texendfor.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texendfor.bin Binary files differnew file mode 100644 index 00000000..0d86b601 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texendfor.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texendif.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texendif.bin Binary files differnew file mode 100644 index 00000000..46fd7b7e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texendif.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texfor.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texfor.bin Binary files differnew file mode 100644 index 00000000..f5e92c99 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texfor.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texforinit.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texforinit.bin Binary files differnew file mode 100644 index 00000000..a8140128 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texforinit.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texif.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texif.bin Binary files differnew file mode 100644 index 00000000..be4c9157 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texif.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texletter.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texletter.bin Binary files differnew file mode 100644 index 00000000..99ef9902 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texletter.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texnewcmd.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texnewcmd.bin Binary files differnew file mode 100644 index 00000000..0904029d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texnewcmd.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texnewctr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texnewctr.bin Binary files differnew file mode 100644 index 00000000..7d332cfd --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texnewctr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texrenewcmd.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texrenewcmd.bin Binary files differnew file mode 100644 index 00000000..1abdf882 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texrenewcmd.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texsetctr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texsetctr.bin Binary files differnew file mode 100644 index 00000000..ccfce689 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texsetctr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texthectr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texthectr.bin Binary files differnew file mode 100644 index 00000000..f2e50561 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texthectr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texvalctr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texvalctr.bin Binary files differnew file mode 100644 index 00000000..a224f885 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texvalctr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texvctr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texvctr.bin Binary files differnew file mode 100644 index 00000000..2fee3584 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Texvctr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Thetadegree.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Thetadegree.bin Binary files differnew file mode 100644 index 00000000..5f360f2f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Thetadegree.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/ThisVersion.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/ThisVersion.bin Binary files differnew file mode 100644 index 00000000..5aa530ec --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/ThisVersion.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Tolist.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Tolist.bin Binary files differnew file mode 100644 index 00000000..5e76126d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Tolist.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Translate3data.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Translate3data.bin Binary files differnew file mode 100644 index 00000000..3fd4aeda --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Translate3data.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Translatedata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Translatedata.bin Binary files differnew file mode 100644 index 00000000..3262007d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Translatedata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Trunc.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Trunc.bin Binary files differnew file mode 100644 index 00000000..a05f649a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Trunc.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Unscaling.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Unscaling.bin Binary files differnew file mode 100644 index 00000000..1bd27535 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Unscaling.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Vecnagasa.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Vecnagasa.bin Binary files differnew file mode 100644 index 00000000..1668581e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Vecnagasa.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Vecnagasa2.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Vecnagasa2.bin Binary files differnew file mode 100644 index 00000000..3acff07e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Vecnagasa2.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Viewfrom.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Viewfrom.bin Binary files differnew file mode 100644 index 00000000..06515c27 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Viewfrom.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Vtickmark.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Vtickmark.bin Binary files differnew file mode 100644 index 00000000..e0c9fdf2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Vtickmark.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Windisp.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Windisp.bin Binary files differnew file mode 100644 index 00000000..487a5881 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Windisp.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/WireHiddenData.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/WireHiddenData.bin Binary files differnew file mode 100644 index 00000000..15d7c7ea --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/WireHiddenData.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/WirePt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/WirePt.bin Binary files differnew file mode 100644 index 00000000..8356c7d3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/WirePt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Wireparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Wireparadata.bin Binary files differnew file mode 100644 index 00000000..8a956544 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Wireparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Wirepersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Wirepersdata.bin Binary files differnew file mode 100644 index 00000000..06813c26 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Wirepersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Wirerawparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Wirerawparadata.bin Binary files differnew file mode 100644 index 00000000..53ef48f2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Wirerawparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Wirerawpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Wirerawpersdata.bin Binary files differnew file mode 100644 index 00000000..a4463d6f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Wirerawpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/WriteOutData.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/WriteOutData.bin Binary files differnew file mode 100644 index 00000000..35bbb30a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/WriteOutData.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Writeobjpoint.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Writeobjpoint.bin Binary files differnew file mode 100644 index 00000000..1c115eb9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Writeobjpoint.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Writetextdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Writetextdata.bin Binary files differnew file mode 100644 index 00000000..90e83be0 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Writetextdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/WritetoCindy.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/WritetoCindy.bin Binary files differnew file mode 100644 index 00000000..3cc76a71 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/WritetoCindy.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Xmax.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Xmax.bin Binary files differnew file mode 100644 index 00000000..51ccdf48 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Xmax.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Xmin.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Xmin.bin Binary files differnew file mode 100644 index 00000000..bba8a4ee --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Xmin.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Xyzax3data.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Xyzax3data.bin Binary files differnew file mode 100644 index 00000000..3a5e517b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Xyzax3data.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Xyzaxparaname.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Xyzaxparaname.bin Binary files differnew file mode 100644 index 00000000..d89801c7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Xyzaxparaname.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Xyzaxpersname.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Xyzaxpersname.bin Binary files differnew file mode 100644 index 00000000..f89ae3a7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Xyzaxpersname.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Ymax.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Ymax.bin Binary files differnew file mode 100644 index 00000000..cc5aea83 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Ymax.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Ymin.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Ymin.bin Binary files differnew file mode 100644 index 00000000..e454fb5a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Ymin.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Zparapt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Zparapt.bin Binary files differnew file mode 100644 index 00000000..1749fad9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Zparapt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Zperspt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Zperspt.bin Binary files differnew file mode 100644 index 00000000..8613eba7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/Zperspt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/names b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/names new file mode 100755 index 00000000..02079ff8 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicsciL5/names @@ -0,0 +1,341 @@ +Addcounter +Anglemark +Arrowdata +Arrowhead +Arrowheaddata +Arrowline +Assign +Assignadd +Assignrep +Assignset +Beginpicture +Bezierpt +Bezier +BorderHiddenData +Borderparadata +Borderpersdata +BorderPt +Borderrawdata +Bowdata +Bowmiddle +Bowname +Bownamerot +Calcfun +CalcHeight +CalcWidth +CameracoordCurve +CameraCurve +Cancoordpara +Cancoordpers +Circledata +Clipindomain +Closefile +Closepar +Closephr +Closepicture +Closeobj +Connectseg +Crossprod +Crv3onsfHiddenData +Crv3onsfparadata +Crv3onsfpersdata +CrvonsfHiddenData +Crvonsfparadata +Crvonsfpersdata +CrvsfHiddenData +Crvsfparadata +Crvsfpersdata +CuspData +CuspPt +Cuspsplitpara +Cuspsplitpers +CuspSplitPt +Cutsf2d +Dashline +Dataindex +Definecolor +Deqplot +Derivative +Diagcelldata +Dividegraphics +Dividetable +Doscaling +Dotfilldata +Dotprod +Dottedline +Dropnumlistcrv +Droppoint +Drwline +Drwpt +Drwxy +Embed +Enclosing +EnclosingS +Endpicture +Evlptablepara +Evlptablepers +Execmd +Expr +Exprrot +Faceremovaldata +Facesdata +Findcell +Flattenlist +Fontsize +Fouriercoeff +FouriercoeffL +Fouriersum +Fracform +Framedata +Fullformfunc +Gaiseki +Getcounter +Gettrace +Hatchdata +Hexahedrondata +HiddenWireData +Htickmark +Implicitplot +ImplicitData +Initangle +Integrate +Intersectcrvs +Intersectcrvsf +IntersectcrvsPp +Intersectlines +IntersectselfPp +Invdashline +Invert +Invparapt +Invperspt +InWindow +Joincrvs +Joingraphics +Ketinit +Kouten +KoutenList +Koutenseg +Kukannozoku +Kukeiwake +Kyorihensuu +Kyoukai +Letter +Letterrot +Lineplot +Listplot +MakeBowdata +MakecutbycrvL +MakeCurves +Makehasen +Makeliststr +Makesfcutoffdata +Makeshasen +Makeskeletondata +Makeskeletonpersdata +Makevaltable +MakeveLfaceL +Makexybdy +Mawarikomi +Meetpoints +MeetWindow +Member +Menkakusi +Menkakusi2 +Mix +Mixadd +Mixdisp +Mixjoin +MixL +Mixlength +Mixmake +Mixop +MixS +Mixsub +Mixtype +Naigai +Naiseki +Nearestpt +Newlength +Nohiddenpara +Nohiddenpara2 +Nohiddenpers +Nohiddenpers2 +Numptcrv +Objjoin +Objname +Objcurve +Objpolyhedron +Objpolygon +Objrecs +Objsurf +Objsymb +Objthicksurf +Openobj +Op +Openfile +Openpar +Openphr +Openpicture +Ovalbox +Ovaldata +Paramark +Paramoncrv +ParamonCurve +Paramplot +Parapt +Partcrv +Partcrv3 +Partframe +PartitionPt +Partitionseg +Perspt +Phcutdata +Phcutoffdata +Phidegree +PhFaceL +PhHiddenData +Phparadata +Phpersdata +Phsparadata +Phspersdata +Phrawparadata +Phrawpersdata +Phsrawparadata +Phsrawpersdata +PhVertexL +Plotdata +Pointdata +Pointoncrv +PointonCurve +Powersum +Prime +Printobjstr +ProjcoordCurve +ProjCurve +Projpara +Projpers +Ptcrv +Ptend +PthiddenQ +Ptne +Ptnw +Ptse +Ptstart +Ptsw +Putcell +Putcirmark +PutcoL +PutcoLexpr +PutcoLstr +Putdashmark +Putrecmark +Putrow +Putrowexpr +Putrowstr +Puttrace +Ratiocmyk +ReadfromCindy +ReadOutData +Readtextdata +Reflectdata +Rmmember +Rotate3data +Rotate3pt +Rotatedata +Roundstr +Scaledata +Sectionview +Setangle +Setarrow +Setax +Setcolor +Setcounter +Setmark +Setmarklen +Setobjdecimals +Setobjscale +Setorigin +Setpen +Setpers +Setpt +Setscaling +SetstereoL +SetstereoR +Setunitlen +Setversion +Setwindow +Sf3data +Sfbdparadata +Sfbdpersdata +Sfbdrawparadata +Sfbdrawpersdata +Sfcutdata +Sfcutoffparadata +Sfcutoffpersdata +Sfcutoffrawparadata +Sfcutoffrawpersdata +Sfparadata +Sfpersdata +Shade +Skeleton2data +Skeletonparadata +Skeletonpara3data +Skeletonpersdata +Skeletonpers3data +Spacecurve +Spaceline +Splinedata +Strop +Subs +Sumfun +Symbdata +Symb3data +Tabledata +Texcom +Texctr +Texelse +Texend +Texendfor +Texendif +Texfor +Texforinit +Texif +Texletter +Texnewcmd +Texnewctr +Texrenewcmd +Texsetctr +Texthectr +Texvalctr +Texvctr +Thetadegree +ThisVersion +Tolist +Translate3data +Translatedata +Trunc +Unscaling +Vecnagasa +Vecnagasa2 +Viewfrom +Vtickmark +Windisp +WireHiddenData +Wireparadata +Wirepersdata +WirePt +Wirerawparadata +Wirerawpersdata +WriteOutData +Writetextdata +WritetoCindy +Writeobjpoint +Xmax +Xmin +Xyzaxparaname +Xyzaxpersname +Xyzax3data +Ymax +Ymin +Zparapt +Zperspt diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/.Rhistory b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/.Rhistory new file mode 100644 index 00000000..9a32ff18 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/.Rhistory @@ -0,0 +1 @@ +source("/Users/takatoosetsuo/Dropbox/sciF/ketpicscifiles/Setversion.sci") diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Addcounter.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Addcounter.bin Binary files differnew file mode 100644 index 00000000..d21df4c3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Addcounter.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Addcounter.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Addcounter.sci new file mode 100755 index 00000000..c940a543 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Addcounter.sci @@ -0,0 +1,12 @@ +// 09.09.10 + +function Addcounter(varargin) + global GCOUNTER; + if Nargs==0 + N=1; + else + N=varargin(1); + GCOUNTER=GCOUNTER+N; + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Anglemark.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Anglemark.bin Binary files differnew file mode 100644 index 00000000..4a709337 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Anglemark.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Anglemark.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Anglemark.sci new file mode 100755 index 00000000..6deb302c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Anglemark.sci @@ -0,0 +1,33 @@ +// 08.06.05 +// 16.12.29 ( for too short segment ) + +function Out=Anglemark(varargin) + Nargs=length(varargin); + Eps=10^(-3); + PA=varargin(1); PB=varargin(2); PC=varargin(3); + r = 0.5; + if Nargs>=4 + r = varargin(4)*r; + end + Out=[]; // 16.12.29 + if r>min(norm(PA-PB),norm(PC-PB)) then + return; + end; + Cir=Circledata(PB,r); + Tmp=IntersectcrvsPp(Cir,Listplot(PA,PB)); + P1=Op(2,Op(1,Tmp)); + Tmp=IntersectcrvsPp(Cir,Listplot(PC,PB)); + P2=Op(2,Mixop(1,Tmp)); + if abs(P1-P2)<Eps + Out=[]; + return; + end + if P1<P2-Eps + Out=Partcrv(P1,P2,Cir); + else + Tmp=Numptcrv(Cir); + Tmp1=Partcrv(P1,Tmp,Cir); + Tmp2=Partcrv(1,P2,Cir); + Out=Joincrvs(Tmp1,Tmp2); + end +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Arrowdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Arrowdata.bin Binary files differnew file mode 100644 index 00000000..4dcd94f2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Arrowdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Arrowdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Arrowdata.sci new file mode 100755 index 00000000..f6ac6ef2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Arrowdata.sci @@ -0,0 +1,58 @@ +// 08.05.08 + +function Out=Arrowdata(varargin) + global YaSize YaAngle YaPosition YaThick YaStyle; + Nargs=length(varargin); + P=varargin(1); + Q=varargin(2); + R=Q; + Futosa=YaThick; + Ookisa=YaSize; + Thickness=1; + Hiraki=YaAngle; + Yapos=YaPosition; + Position=1; + Str=YaStyle; + Flg=0; + for I=3:Nargs + Tmp=varargin(I); + if type(Tmp)==1 + if length(Tmp)>1 + R=Tmp + else + if Flg==0 + Ookisa=Ookisa*Tmp; + end + if Flg==1 + if Tmp<5 + Hiraki=Tmp*Hiraki; + else + Hiraki=Tmp; + end + end + if Flg==2 + R=P+Tmp*(Q-P); + else + R=P+Yapos*(Q-P); + end + if Flg==3 + Futosa=Tmp + end + Flg=Flg+1; + end + end + if type(Tmp)==10 + if mtlb_findstr(Tmp,'=')~=[] + execstr(Tmp); + Futosa=Futosa*Thickness; + R=P+Position*(Q-P); + else + Str=Tmp + end + end + end + Tmp1=Listplot([P,Q]); + Tmp2=Arrowheaddata(R,Q-P,Ookisa,Hiraki,Futosa,Str); + Out=Joingraphics(Tmp1,Tmp2); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Arrowhead.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Arrowhead.bin Binary files differnew file mode 100644 index 00000000..7c3ca7ca --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Arrowhead.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Arrowhead.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Arrowhead.sci new file mode 100755 index 00000000..9073ca6e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Arrowhead.sci @@ -0,0 +1,107 @@ +// +// 08.06.01 +// 09.12.25 +// 12.01.07 kirikomi(Cut) +// 12.04.16 debugged +// 13.05.17 debugged +// 13.11.13 debugged +// 15.06.11 debugged +// 15.06.14 debugged +// 15.06.15 improved + +function Arrowhead(varargin) + global Wfile FID MilliIn YaSize + global YaAngle YaPosition YaThick YaStyle; + Nargs=length(varargin); + P=varargin(1); + Houkou=varargin(2); + Ookisa=0.2*YaSize; + Hiraki=YaAngle; + Futosa=0.5*YaThick; + Cut=0; + Str=YaStyle; + Flg=0; + for I=3:Nargs + Tmp=varargin(I); + if type(Tmp)==10 + Equal=mtlb_findstr(Tmp,'='); // 12.01.07 from + if length(Equal)>0 + Tmp2=strsplit(Tmp,Equal-1); + if Tmp2(1)=="Cut" | Tmp2(1)=="cut" + Tmp="Cut"+Tmp2(2); + execstr(Tmp); + end; + else + Str=Tmp; + end; // 12.01.07 upto + end; + if type(Tmp)==1 & length(Tmp)==1 + if Flg==0 + Ookisa=Ookisa*Tmp; + end + if Flg==1 + if Tmp<5 + Hiraki=Tmp*Hiraki + else + Hiraki=Tmp + end + end + if Flg==2 + Futosa=Tmp + end + Flg=Flg+1; + end + end; + Ookisa=1000/2.54/MilliIn*Ookisa; + Theta=Hiraki*%pi/180; + if size(Houkou,1)>1 + P=Doscaling(P); + Houkou=Doscaling(Houkou); + Tmp=Nearestpt(P,Houkou); + A=Op(1,Tmp); + I=floor(Op(2,Tmp)); + G=Circledata(P,Ookisa*cos(Theta),'N=10'); + Flg=0; // 13.11.13 + for J=I:-1:1 + B=Ptcrv(J,Houkou); + Tmp=IntersectcrvsPp(Listplot([A,B]),G); + if Mixlength(Tmp)>0 + Flg=1; + break + end + A=B + end + if Flg==0 // 13.11.13 + disp('Arrowhead may be too large (no intersect)'); + return + end + Houkou=P-Op(1,Op(1,Tmp)); + Houkou=Unscaling(Houkou); + P=Unscaling(P); + end; + P=Doscaling(P); + Houkou=Doscaling(Houkou); + Ev=-1/Vecnagasa(Houkou)*Houkou; + Nv=[-Ev(2),Ev(1)]; + if mtlb_findstr(Str,'c')~=[] + P=P-0.5*Ookisa*cos(Theta)*Ev + end; + if mtlb_findstr(Str,'b')~=[] + P=P-Ookisa*cos(Theta)*Ev + end; + A=P+Ookisa*cos(Theta)*Ev+Ookisa*sin(Theta)*Nv; + B=P+Ookisa*cos(Theta)*Ev-Ookisa*sin(Theta)*Nv; + if mtlb_findstr(Str,'l')~=[] + Tmp=Listplot([A,P,B]); + Tmp1=Unscaling(Tmp); // 13.05.17 + Drwline(Tmp1,Futosa); + else + C=P+(1-Cut)*((A+B)/2-P); // 12.01.05 + Tmp=Listplot([A,P,B,C,A]); // 12.01.05 + Tmp1=Unscaling(Tmp); + Shade(Tmp1); + Tmp=Listplot([A,P,B,C,A,P]); // 15.6.20 + Tmp1=Unscaling(Tmp); + Drwline(Tmp1,0.1); // 15.06.11, 15.06.14 + end +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Arrowheaddata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Arrowheaddata.bin Binary files differnew file mode 100644 index 00000000..56e18c45 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Arrowheaddata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Arrowheaddata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Arrowheaddata.sci new file mode 100755 index 00000000..68dfe27c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Arrowheaddata.sci @@ -0,0 +1,89 @@ +// 08.05.31 +// 09.12.25 +// 13.11.13 debugged +// 14.11.02 debugged + +function Out=Arrowheaddata(varargin) + global YaSize YaAngle YaPosition YaThick YaStyle; + Eps=10^(-3); + Nargs=length(varargin); + Out=[]; + P=varargin(1); + Houkou=varargin(2); + Ookisa=0.2*YaSize; + Hiraki=YaAngle; + Futosa=0; + Thickness=1; + Str=YaStyle; + Flg=0; + for I=3:Nargs + Tmp=varargin(I); + if type(Tmp)==10 + if mtlb_findstr(Tmp,'=')~=[] + execstr(Tmp); + Futosa=Thickness; + else + Str=Tmp; + end + end + if type(Tmp)==1 & length(Tmp)==1 + if Flg==0 + Ookisa=Ookisa*Tmp; + end + if Flg==1 + if Tmp<5 + Hiraki=Tmp*Hiraki; + else + Hiraki=Tmp; + end + end + Flg=Flg+1; + end + end + Theta=Hiraki*%pi/180; + if size(Houkou,1)>1 + P=Doscaling(P); + Houkou=Doscaling(Houkou); + Tmp=Nearestpt(P,Houkou); + A=Op(1,Tmp); + I=floor(Op(2,Tmp)); + if I==1 // 14.11.02 + if norm(Ptend(Houkou)-Ptstart(Houkou))<Eps + l=Numptcrv(Houkou); + end; + end; + G=Circledata(P,Ookisa*cos(Theta),'N=10'); + Flg=0; // 13.11.13 + for J=I:-1:1 + B=Ptcrv(J,Houkou); + Tmp=IntersectcrvsPp(Listplot([A,B]),G); + if Mixlength(Tmp)>0 + Flg=1; + break + end + A=B + end + if Flg==0 // 13.11.13 + disp('Arrowhead may be too large (no intersect)'); + return + end + Houkou=P-Op(1,Op(1,Tmp)); + Houkou=Unscaling(Houkou); + P=Unscaling(P); + end + P=Doscaling(P); + Houkou=Doscaling(Houkou); + E=-1/Vecnagasa(Houkou)*Houkou; + N=[-E(2),E(1)]; + if mtlb_findstr(Str,'c')~=[] + P=P-0.5*Ookisa*cos(Theta)*E; + end + if mtlb_findstr(Str,'b')~=[] + P=P-Ookisa*cos(Theta)*E + end + A=P+Ookisa*cos(Theta)*E+Ookisa*sin(Theta)*N; + B=P+Ookisa*cos(Theta)*E-Ookisa*sin(Theta)*N; + Out=Listplot([A,P,B]); + Out=Unscaling(Out); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Arrowline.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Arrowline.bin Binary files differnew file mode 100644 index 00000000..45527ddc --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Arrowline.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Arrowline.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Arrowline.sci new file mode 100755 index 00000000..881662b1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Arrowline.sci @@ -0,0 +1,57 @@ +// +// 12.01.07 kirikomi(Cut) +// 12.08.26 debugged +// 15.06.11 debugged +// 15.10.24 debugged + +function Arrowline(varargin) + global YaSize YaAngle YaPosition YaThick YaStyle Kirikomi; + Nargs=length(varargin) + P=varargin(1); + Q=varargin(2); + Futosa=YaThick; + Ookisa=YaSize; + Hiraki=YaAngle; + Yapos=YaPosition; + Cutstr="Cut=0"; + Str=YaStyle; + Flg=0; + for I=3:Nargs + Tmp=varargin(I); + if type(Tmp)==10 + Equal=mtlb_findstr(Tmp,'='); // 12.01.07 from + if length(Equal)>0 + Tmp2=strsplit(Tmp,Equal-1); + if (Tmp2(1)=="Cut") | (Tmp2(1)=="cut") + Tmp="Cut"+Tmp2(2); + Cutstr=Tmp; + end + else + Str=Tmp; // 12.01.07 upto (debugged on 12.08.26) + end; + end; + if (type(Tmp)==1) & (length(Tmp)==1) + if Flg==0 + Ookisa=Ookisa*Tmp; + end + if Flg==1 + if Tmp<5 + Hiraki=Tmp*Hiraki; + else + Hiraki=Tmp; + end + end + if Flg==2 + Yapos=Tmp; + end + if Flg==3 + Futosa=Tmp; + end + Flg=Flg+1; + end + end + R=P+Yapos*(Q-P); + Tmp=Q-Unscaling(0.2*Ookisa/2*(Q-P)/norm(Q-P)); // 15.10.24 + Drwline(Listplot([P,Tmp]),Futosa); + Arrowhead(R,Q-P,Ookisa,Hiraki,Futosa,Cutstr,Str); // 12.01.07 +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Assign.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Assign.bin Binary files differnew file mode 100644 index 00000000..b6f33643 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Assign.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Assign.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Assign.sci new file mode 100755 index 00000000..8d9201cc --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Assign.sci @@ -0,0 +1,202 @@ +// 08.09.26 +// 09.09.21 +// 09.09.26 +// 09.10.01 +// 09.10.03 +// 09.10.05 +// 09.10.08 +// 09.10.09 ( format=20) +// 09.10.15 ( added Assign('') : reset +// 09.10.17 ( Matrix added, ? -> number returned) +// 09.10.21 ( list supported with Makeliststr ) +// 14.10.04 format=12 +// 14.12.11 only replaced when variable name +// 14.12.28 debugged ( tmp2, ` ) +// 15.02.18 debugged ( for list of string ) +// 15.02.19 debugged +// 15.04.18 debugged + +function Out=Assign(varargin) + global ASSIGNLIST; + Curfmt=format(); + format(12); // 14.10.04 + Nargs=length(varargin); + if Nargs==0 + ASSIGNLIST=list('`',Prime()); + Out=ASSIGNLIST; + format(Curfmt(2)); + return; + end; + L=list('`',char(39)); + NL=length(L); + if modulo(Nargs,2)==0 + for I=1:Nargs + L(I+NL)=varargin(I); + end; + ASSIGNLIST=L; + Out=L; + format(Curfmt(2)); + return; + end; + if Nargs==1 + Fnstr=varargin(1); + if Fnstr=='' + L=ASSIGNLIST; + Out=[]; + for I=1:2:length(L) + Tmp1=L(I); + Tmp2=L(I+1); + if length(Tmp2)==1 + Tmp3=string(Tmp2); + else + Tmp3='['; + for J=1:length(Tmp2) + Tmp3=Tmp3+string(Tmp2(J)); + if J<length(Tmp2) + Tmp3=Tmp3+','; + end; + end; + Tmp3=Tmp3+']'; + end; + Out=[Out,Tmp1+'='+Tmp3]; + end; + format(Curfmt(2)); + return; + end; + if part(Fnstr,1)=='?' + Tmp=strsplit(Fnstr,1); + Fnstr=Tmp(2); + for I=1:2:length(ASSIGNLIST) + Tmp=ASSIGNLIST(I); + if Tmp==Fnstr + Out=Mixjoin(I,ASSIGNLIST(I+1)); + format(Curfmt(2)); + return; + end; + end; + Out='Not found'; + format(Curfmt(2)); + return; + end; // + L=ASSIGNLIST; + else + if type(varargin(2))==1 + Fnstr=varargin(Nargs); + for I=1:Nargs-1 + L(I)=varargin(I); + end; + else + Fnstr=varargin(1); + for I=2:Nargs + L(I-1)=varargin(I); + end; + end; + end; + Tmp3=Fnstr; // 15.04.18 + for I=1:2:length(L) + Vname=L(I); + Val=L(I+1); + if Vname=="`" // 14.12.28 + Tmp3=strsubst(Tmp3,Vname,Val); + continue + end; + if type(Val)==1 + if size(Val,1)==1 & size(Val,2)>1 // 15.04.18 + for K=1:length(Val) + Tmp=Vname+'('+string(K)+')'; + if mtlb_findstr(Tmp3,Tmp)~=[] + if type(Val(K))==1 + Tmp1='('+string(Val(K))+')'; + else + Tmp1=Val(K); + end; + Tmp3=strsubst(Tmp3,Tmp,Tmp1); + end; + end; + else + for J=1:size(Val,1) + for K=1:size(Val,2) + Tmp=Vname+'('+string(J)+','+string(K)+')'; + if mtlb_findstr(Tmp3,Tmp)~=[] + if type(Val(J,K))==1 + Tmp1='('+string(Val(J,K))+')'; + else + Tmp1=Val(J,K); + end; + Tmp3=strsubst(Tmp3,Tmp,Tmp1); + end; + end; + end; + end; + if length(Val)==1 + Rep=string(Val); + else + Rep='['; + for J=1:size(Val,1) + for K=1:size(Val,2) + Rep=Rep+string(Val(J,K)); + if K<size(Val,2) + Rep=Rep+','; + end; + end; + if J<size(Val,1) + Rep=Rep+';'; + else + Rep=Rep+']'; + end; + end; + end; + Tmp1='('+Rep+')'; + end; + if type(Val)==10 + Tmp1=Val; + end; + if type(Val)==15 + Tmp1=Makeliststr(Val); + end; + Notvar=[48:57,65:90,97:122]; + for K=1:size(Tmp3,2) + Tmp2=Tmp3(K); + if length(Tmp2)>0 then + Flist=mtlb_findstr(Tmp2,Vname); + else + Flist=[]; + end + if length(Flist)==0 then + Tmp3(K)=Tmp2; // 15.04.18 + continue + end + Str=part(Tmp2,1:(Flist(1)-1)); + for I=1:length(Flist) + Flg=0; + J=Flist(I); + if J>1 then + Tmp=ascii(part(Tmp2,J-1)); + if Member(Tmp,Notvar) then + Flg=1; + end; + end + if J+length(Vname)-1<length(Tmp2) then // 15.04.18 + Tmp=ascii(part(Tmp2,J+length(Vname))); // 15.04.18 + if Member(Tmp,Notvar) then + Flg=1; + end; + end; + if Flg==0 then + Str=Str+Tmp1; + else + Str=Str+Vname; + end; + if I<length(Flist) then + Tmp=Flist(I+1)-1; + else + Tmp=length(Tmp2); + end; + Str=Str+part(Tmp2,(J+length(Vname)):Tmp); + Tmp3(K)=Str; // 15.04.18 + end; + end; + end; + Out=Tmp3; // 15.02.18 upto + format(Curfmt(2)); +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Assignadd.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Assignadd.bin Binary files differnew file mode 100644 index 00000000..8c80117b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Assignadd.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Assignadd.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Assignadd.sci new file mode 100755 index 00000000..d8883e6c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Assignadd.sci @@ -0,0 +1,14 @@ +// 09.10.03 + +function Out=Assignadd(varargin) + global ASSIGNLIST; + Nargs=length(varargin); + L=ASSIGNLIST; + Is=length(L); + for I=1:Nargs + L(I+Is)=varargin(I); + end; + ASSIGNLIST=L; + Out=L; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Assignrep.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Assignrep.bin Binary files differnew file mode 100644 index 00000000..4ee61642 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Assignrep.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Assignrep.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Assignrep.sci new file mode 100755 index 00000000..0a362b01 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Assignrep.sci @@ -0,0 +1,22 @@ +// 09.10.17 +// 09.12.05 +// 09.12.29 +// 14.09.30 addition supported + +function Assignrep(varargin) + global ASSIGNLIST; + Nargs=length(varargin); + for I=1:2:Nargs + Vname=varargin(I); + Val=varargin(I+1); + Tmp=Assign('?'+Vname); + if Tmp=='Not found' + Tmp=length(ASSIGNLIST); + ASSIGNLIST(Tmp+1)=Vname; + ASSIGNLIST(Tmp+2)=Val; + else + I=Tmp(1); + ASSIGNLIST(I+1)=Val; + end; + end +endfunction;
\ No newline at end of file diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Assignset.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Assignset.bin Binary files differnew file mode 100644 index 00000000..eb9e3072 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Assignset.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Assignset.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Assignset.sci new file mode 100755 index 00000000..bb77c105 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Assignset.sci @@ -0,0 +1,7 @@ +// 09.10.21 + +function Assignset(varargin) + I=1:length(varargin); + Tmp=Assign(varargin(I));; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Beginpicture.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Beginpicture.bin Binary files differnew file mode 100644 index 00000000..2f570d6e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Beginpicture.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Beginpicture.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Beginpicture.sci new file mode 100755 index 00000000..f93e3200 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Beginpicture.sci @@ -0,0 +1,6 @@ +// 08.05.22 + +function Beginpicture(ul) + Openpicture(ul) +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Bezier.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Bezier.bin Binary files differnew file mode 100644 index 00000000..bcf1d42b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Bezier.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Bezier.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Bezier.sci new file mode 100644 index 00000000..7d1993eb --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Bezier.sci @@ -0,0 +1,35 @@ +// 15.01.01 + +function Out=Bezier(varargin) + Nargs=length(varargin); + Ptlist=varargin(1); + Ctrlist=varargin(2); + Num=10; + for J=3:Nargs + Tmp=varargin(J); + K=mtlb_findstr(Tmp,'='); + Tmp1=strsplit(Tmp,[K-1,K]); + Tmp2=ascii(Tmp1(1,1)); + Lhs=char(Tmp2(1)); + if Lhs=="N" then + Num=evstr(Tmp1(3,1)); + end; + end; + if length(Num)==1 + Num=Num*ones(1:length(Ctrlist)) + end; + Out=[]; + for ii=1:length(Ctrlist) + Tmp1=[Ptlist(ii),Ptlist(ii+1)]; + Tmp2=Ctrlist(ii); + if ii==1 then + St=0 + else + St=1 + end; + for J=St:Num(ii) + Tmp=Bezierpt(J/Num(ii),Tmp1,Tmp2); + Out=[Out;Tmp]; + end; + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Bezierpt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Bezierpt.bin Binary files differnew file mode 100644 index 00000000..51ad025e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Bezierpt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Bezierpt.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Bezierpt.sci new file mode 100644 index 00000000..ac639249 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Bezierpt.sci @@ -0,0 +1,39 @@ +// 15.01.01 +// 15.02.08 for 3d + +function Out=Bezierpt(t,Ptlist,Ctrlist) + if length(Ptlist)==6 then // 3d 15.02.08 + P0=Ptlist(1:3); + P3=Ptlist(4:6); + P1=Ctrlist(1:3); + if length(Ctrlist)==3 then + P2=P3; + flg3=0; + else + P2=Ctrlist(4:6); + flg3=1; + end; + else + P0=Ptlist(1:2); + P3=Ptlist(3:4); + P1=Ctrlist(1:2); + if length(Ctrlist)==2 then + P2=P3; + flg3=0; + else + P2=Ctrlist(3:4); + flg3=1; + end; + end; + P4=(1-t)*P0+t*P1; + P5=(1-t)*P1+t*P2; + P6=(1-t)*P2+t*P3; + P7=(1-t)*P4+t*P5; + P8=(1-t)*P5+t*P6; + P9=(1-t)*P7+t*P8; + if flg3==0 then + Out=P7; + else + Out=P9; + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/BorderHiddenData.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/BorderHiddenData.bin Binary files differnew file mode 100644 index 00000000..e238cbcb --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/BorderHiddenData.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/BorderHiddenData.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/BorderHiddenData.sci new file mode 100755 index 00000000..dac12561 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/BorderHiddenData.sci @@ -0,0 +1,7 @@ +// 08.09.13 + +function Out=BorderHiddenData() + global BORDERHIDDENDATA + Out=BORDERHIDDENDATA; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/BorderPt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/BorderPt.bin Binary files differnew file mode 100644 index 00000000..40553cd7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/BorderPt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/BorderPt.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/BorderPt.sci new file mode 100755 index 00000000..12947bcd --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/BorderPt.sci @@ -0,0 +1,7 @@ +// 08.09.13 + +function Out=BorderPt() + global BORDERPT + Out=BORDERPT +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Borderparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Borderparadata.bin Binary files differnew file mode 100644 index 00000000..d5c08e6d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Borderparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Borderparadata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Borderparadata.sci new file mode 100755 index 00000000..2e944821 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Borderparadata.sci @@ -0,0 +1,121 @@ +// 08.09.13 +// 08.09.16 +// 08.10.10 +// 08.10.11 +// 08.10.15 +// 08.10.28 +// 09.03.09 +// 09.05.27 +// 09.06.03 +// 10.02.16 Eps=> [Eps, Epsmg] +// 13.10.21 ( __ added to varibles ) + +function FsL__=Borderparadata(varargin) + global BORDERPT OTHERPARTITION HIDDENDATA BORDERHIDDENDATA + global PARTITIONPT + Nargs__=length(varargin); + FkL__=varargin(1); + Fd__=varargin(2); N__=3; + FdL__=Fullformfunc(Fd__); + Fxy__=Mixop(1,FdL__); + Tmp__1=Mixop(2,FdL__); + Tmp__2=Mixop(3,FdL__); + Tmp__3=Mixop(4,FdL__); + Xyzstr__=[Tmp__1,Tmp__2,Tmp__3]; + DrwS__=Mixop(7,FdL__); + Tmp__=Mixop(5,FdL__); + K__=mtlb_findstr(Tmp__,'='); + Uname__=part(Tmp__,1:K__-1); + Urg__=evstr(part(Tmp__,K__+1:length(Tmp__))); + Tmp__=Mixop(6,FdL__); + K__=mtlb_findstr(Tmp__,'='); + Vname__=part(Tmp__,1:K__-1); + Vrg__=evstr(part(Tmp__,K__+1:length(Tmp__))); + Np__=[50,50]; + if Nargs__>=3 + Np__=varargin(3); N__=4; + if type(Np__)==1 & length(Np__)==1 + Np__=[Np__,Np__]; + end; + end; + Eps__=[0.05,1]; // + if Nargs__>=N__ Eps__=varargin(N__); end; + Eps__2=0.2; + if Nargs__>=N__+1 Eps__2=varargin(N__+1); end; + Umin__=Urg__(1); Umax__=Urg__(2); + Vmin__=Vrg__(1); Vmax__=Vrg__(2); + EkL__=[]; + Tmp__=mtlb_findstr(DrwS__,'e'); + if length(Tmp__)~=0 + Tmp__1=strsubst(Xyzstr__,Uname__,'('+string(Umax__)+')'); + Tmp__2=Mixop(6,FdL__); + Tmp__3='N='+string(Np__(2)); + Tmp__=Spacecurve(Tmp__1,Tmp__2,Tmp__3); + EkL__=Mixadd(EkL__,Tmp__); + end; + Tmp__=mtlb_findstr(DrwS__,'n'); + if length(Tmp__)~=0 + Tmp__1=strsubst(Xyzstr__,Vname__,'('+string(Vmax__)+')'); + Tmp__2=Mixop(5,FdL__); + Tmp__3='N='+string(Np__(1)); + Tmp__=Spacecurve(Tmp__1,Tmp__2,Tmp__3); + EkL__=Mixadd(EkL__,Tmp__); + end; + Tmp__=mtlb_findstr(DrwS__,'w'); + if length(Tmp__)~=0 + Tmp__1=strsubst(Xyzstr__,Uname__,'('+string(Umin__)+')'); + Tmp__2=Mixop(6,FdL__); + Tmp__3='N='+string(Np__(2)); + Tmp__=Spacecurve(Tmp__1,Tmp__2,Tmp__3); + EkL__=Mixadd(EkL__,Tmp__); + end; + Tmp__=mtlb_findstr(DrwS__,'s'); + if length(Tmp__)~=0 + Tmp__1=strsubst(Xyzstr__,Vname__,'('+string(Vmin__)+')'); + Tmp__2=Mixop(5,FdL__); + Tmp__3='N='+string(Np__(1)); + Tmp__=Spacecurve(Tmp__1,Tmp__2,Tmp__3); + EkL__=Mixadd(EkL__,Tmp__); + end; + if Mixlength(EkL__)>0 + FkL__=Mixjoin(FkL__,EkL__); + end; + Fall__=Projpara(FkL__); + if Mixtype(Fall__)==1 + Fall__=Mix(Fall__) + end; + Fbdxy__=Makexybdy(Fd__,Np__); + Tmp__=Mixop(2,Fd__); + K__=mtlb_findstr(Tmp__,'='); + Xname__=part(Tmp__,1:K__-1); + Tmp__=Mixop(3,Fd__); + K__=mtlb_findstr(Tmp__,'='); + Yname__=part(Tmp__,1:K__-1); + BORDERPT=[]; + Tmp__=[]; + for I__=1:Mixlength(Fall__) + Tmp__=Mixadd(Tmp__,[]); + end; + OTHERPARTITION=Tmp__; + FsL__=[]; + BORDERHIDDENDATA=[]; + for I__=1:Mixlength(Fall__) + Tmp__=Mixop(I__,FkL__); + Tmp__=Projpara(Tmp__); + Par__=Partitionseg(Tmp__,Fall__,Eps__(1),Eps__2,I__); // + if Mixlength(PARTITIONPT)>2 + Tmp__=Mixlength(PARTITIONPT)-1; + Tmp__1=Mixsub(2:Tmp__,PARTITIONPT); + BORDERPT=Mixjoin(BORDERPT,Tmp__1); + end; + Tmp__1=Mixop(I__,FkL__); + Tmp__=Nohiddenpara2(Par__,Tmp__1,Fd__,1,Np__,Eps__); + if Mixlength(HIDDENDATA)>0 + BORDERHIDDENDATA=Mixjoin(BORDERHIDDENDATA,HIDDENDATA); + end; + if Mixlength(Tmp__)>0 + FsL__=Mixjoin(FsL__,Tmp__); + end; + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Borderpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Borderpersdata.bin Binary files differnew file mode 100644 index 00000000..162c473d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Borderpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Borderpersdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Borderpersdata.sci new file mode 100755 index 00000000..f86ddfa0 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Borderpersdata.sci @@ -0,0 +1,120 @@ +// 08.09.21 +// 08.10.10 +// 08.10.11 +// 08.10.28 +// 09.03.09 +// 09.05.27 +// 09.06.03 +// 10.02.16 Eps__ +// 13.11.01 ( __ added to varibles ) + +function FsL__=Borderpersdata(varargin) + global BORDERPT OTHERPARTITION HIDDENDATA BORDERHIDDENDATA + global PARTITIONPT + Nargs__=length(varargin); + FkL__=varargin(1); + Fd__=varargin(2); N=3; + FdL__=Fullformfunc(Fd__); + Fxy__=Mixop(1,FdL__); + Tmp__1=Mixop(2,FdL__); + Tmp__2=Mixop(3,FdL__); + Tmp__3=Mixop(4,FdL__); + Xyzstr__=[Tmp__1,Tmp__2,Tmp__3]; + DrwS__=Mixop(7,FdL__); + Tmp__=Mixop(5,FdL__); + K__=mtlb_findstr(Tmp__,'='); + Uname__=part(Tmp__,1:K__-1); + Urg__=evstr(part(Tmp__,K__+1:length(Tmp__))); + Tmp__=Mixop(6,FdL__); + K__=mtlb_findstr(Tmp__,'='); + Vname__=part(Tmp__,1:K__-1); + Vrg__=evstr(part(Tmp__,K__+1:length(Tmp__))); + Np__=[50,50]; + if Nargs__>=3 + Np__=varargin(3); N=4; + if type(Np__)==1 & length(Np__)==1 + Np__=[Np__,Np__]; + end; + end; + Eps__=0.05; + Eps__=[0.05,1]; // + if Nargs__>=N Eps__=varargin(N); end; + Eps__2=0.2; + if Nargs__>=N+1 Eps__2=varargin(N+1); end; + Umin__=Urg__(1); Umax__=Urg__(2); + Vmin__=Vrg__(1); Vmax__=Vrg__(2); + EkL__=[]; + Tmp__=mtlb_findstr(DrwS__,'e'); + if length(Tmp__)~=0 + Tmp__1=strsubst(Xyzstr__,Uname__,'('+string(Umax__)+')'); + Tmp__2=Mixop(6,FdL__); + Tmp__3='N='+string(Np__(2)); + Tmp__=Spacecurve(Tmp__1,Tmp__2,Tmp__3); + EkL__=Mixadd(EkL__,Tmp__); + end; + Tmp__=mtlb_findstr(DrwS__,'n'); + if length(Tmp__)~=0 + Tmp__1=strsubst(Xyzstr__,Vname__,'('+string(Vmax__)+')'); + Tmp__2=Mixop(5,FdL__); + Tmp__3='N='+string(Np__(1)); + Tmp__=Spacecurve(Tmp__1,Tmp__2,Tmp__3); + EkL__=Mixadd(EkL__,Tmp__); + end; + Tmp__=mtlb_findstr(DrwS__,'w'); + if length(Tmp__)~=0 + Tmp__1=strsubst(Xyzstr__,Uname__,'('+string(Umin__)+')'); + Tmp__2=Mixop(6,FdL__); + Tmp__3='N='+string(Np__(2)); + Tmp__=Spacecurve(Tmp__1,Tmp__2,Tmp__3); + EkL__=Mixadd(EkL__,Tmp__); + end; + Tmp__=mtlb_findstr(DrwS__,'s'); + if length(Tmp__)~=0 + Tmp__1=strsubst(Xyzstr__,Vname__,'('+string(Vmin__)+')'); + Tmp__2=Mixop(5,FdL__); + Tmp__3='N='+string(Np__(1)); + Tmp__=Spacecurve(Tmp__1,Tmp__2,Tmp__3); + EkL__=Mixadd(EkL__,Tmp__); + end; + if Mixlength(EkL__)>0 + FkL__=Mixjoin(FkL__,EkL__); + end; + Fall__=Projpers(FkL__); + if Mixtype(Fall__)==1 + Fall__=Mix(Fall__); + end; + Fbdxy__=Makexybdy(Fd__,Np__); + Tmp__=Mixop(2,Fd__); + K__=mtlb_findstr(Tmp__,'='); + Xname__=part(Tmp__,1:K__-1); + Tmp__=Mixop(3,Fd__); + K__=mtlb_findstr(Tmp__,'='); + Yname__=part(Tmp__,1:K__-1); + BORDERPT=[]; + Tmp__=[]; + for I__=1:Mixlength(Fall__) + Tmp__=Mixadd(Tmp__,[]); + end; + OTHERPARTITION=Tmp__; + FsL__=[]; + BORDERHIDDENDATA=[]; + for I__=1:Mixlength(Fall__) + Tmp__=Mixop(I__,FkL__); + Tmp__=Projpers(Tmp__); + Par__=Partitionseg(Tmp__,Fall__,Eps__(1),Eps__2,I__); + if Mixlength(PARTITIONPT)>2 + Tmp__=Mixlength(PARTITIONPT)-1; + Tmp__1=Mixsub(2:Tmp__,PARTITIONPT); + BORDERPT=Mixjoin(BORDERPT,Tmp__1); + end; + Tmp__1=Mixop(I__,FkL__); + Tmp__=Nohiddenpers2(Par__,Tmp__1,Fd__,1,Np__,Eps__); + if Mixlength(HIDDENDATA)>0 + BORDERHIDDENDATA=Mixjoin(BORDERHIDDENDATA,HIDDENDATA); + end; + if Mixlength(Tmp__)>0 + FsL__=Mixjoin(FsL__,Tmp__); + end; + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Borderrawdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Borderrawdata.bin Binary files differnew file mode 100644 index 00000000..41515f60 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Borderrawdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Borderrawdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Borderrawdata.sci new file mode 100755 index 00000000..657efc23 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Borderrawdata.sci @@ -0,0 +1,64 @@ +// 08.09.10 + +function FkL=Borderrawdata(varargin) + Nall=length(varargin); + FkL=varargin(1); + FdL=Fullformfunc(varargin(2)); + Tmp1=Mixop(2,FdL); + Tmp2=Mixop(3,FdL); + Tmp3=Mixop(4,FdL); + Xyzstr=[Tmp1,Tmp2,Tmp3]; + DrwS=Mixop(7,FdL); + Tmp=Mixop(5,FdL); + K=mtlb_findstr(Tmp,'='); + Uname=part(Tmp,1:K-1); + Urg=evstr(part(Tmp,K+1:length(Tmp))); + Tmp=Mixop(6,FdL); + K=mtlb_findstr(Tmp,'='); + Vname=part(Tmp,1:K-1); + Vrg=evstr(part(Tmp,K+1:length(Tmp))); + Np=[50,50]; + if Nall>=3 + Np=varargin(3); + if type(Np)==1 & length(Np)==1 + Np=[Np,Np]; + end; + end; + Um=Urg(1); UM=Urg(2); + Vm=Vrg(1); VM=Vrg(2); + EkL=[]; + Tmp=mtlb_findstr(DrwS,'e'); + if length(Tmp)~=0 + Tmp1=strsubst(Xyzstr,Uname,'('+string(UM)+')'); + Tmp2=Mixop(6,FdL); + Tmp3='N='+string(Np(2)); + Tmp=Spacecurve(Tmp1,Tmp2,Tmp3); + EkL=Mixadd(EkL,Tmp); + end; + Tmp=mtlb_findstr(DrwS,'n'); + if length(Tmp)~=0 + Tmp1=strsubst(Xyzstr,Vname,'('+string(VM)+')'); + Tmp2=Mixop(5,FdL); + Tmp3='N='+string(Np(1)); + Tmp=Spacecurve(Tmp1,Tmp2,Tmp3); + EkL=Mixadd(EkL,Tmp); + end; + Tmp=mtlb_findstr(DrwS,'w'); + if length(Tmp)~=0 + Tmp1=strsubst(Xyzstr,Uname,'('+string(Um)+')'); + Tmp2=Mixop(6,FdL); + Tmp3='N='+string(Np(2)); + Tmp=Spacecurve(Tmp1,Tmp2,Tmp3); + EkL=Mixadd(EkL,Tmp); + end; + Tmp=mtlb_findstr(DrwS,'s'); + if length(Tmp)~=0 + Tmp1=strsubst(Xyzstr,Vname,'('+string(Vm)+')'); + Tmp2=Mixop(5,FdL); + Tmp3='N='+string(Np(1)); + Tmp=Spacecurve(Tmp1,Tmp2,Tmp3); + EkL=Mixadd(EkL,Tmp); + end; + FkL=Mixjoin(FkL,EkL); +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Bowdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Bowdata.bin Binary files differnew file mode 100644 index 00000000..00fea499 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Bowdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Bowdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Bowdata.sci new file mode 100755 index 00000000..48154cf1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Bowdata.sci @@ -0,0 +1,45 @@ +// +// 08.05.22 +// 08.08.24 + +function Pd=Bowdata(varargin) + global BOWMIDDLE BOWSTART BOWEND + Nargs=length(varargin); + PA=varargin(1); + PB=varargin(2); + Cut=0; + D=1/2*Vecnagasa(PB-PA); + if Nargs>=3 + H=varargin(3)*D*0.2; + else + H=D*0.2; + end + H=min(H,D); + if Nargs>=4 + Cut=varargin(4); + end + Ydata=MakeBowdata(PA,PB,H); + C=Mixop(1,Ydata); + r=Mixop(2,Ydata); + R1=Mixop(3,Ydata); + R2=Mixop(4,Ydata); + Rng='R=['+string(R1)+','+string(R2)+']'; + Theta=(R1+R2)*0.5; + BOWMIDDLE=MixS([C(1)+r*cos(Theta),C(2)+r*sin(Theta)],Theta); + M=Mixop(1,BOWMIDDLE); + ThetaM=Mixop(2,BOWMIDDLE); + BOWSTART=PA; + BOWEND=PB; + if Cut==0 + Pd=Circledata(C,r,Rng); + else + Alpha=R1; Beta=ThetaM-Cut/(2*r); + Rng='R=['+string(Alpha)+','+string(Beta)+']'; + Pd=Circledata(C,r,Rng); + Alpha=ThetaM+Cut/(2*r); Beta=R2; + Rng='R=['+string(Alpha)+','+string(Beta)+']'; + Tmp=Circledata(C,r,Rng); + Pd=[Pd;%inf,%inf;Tmp]; + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Bowmiddle.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Bowmiddle.bin Binary files differnew file mode 100644 index 00000000..fe5aa36a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Bowmiddle.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Bowmiddle.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Bowmiddle.sci new file mode 100755 index 00000000..5157c111 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Bowmiddle.sci @@ -0,0 +1,53 @@ +// +// 08.05.22 +// 08.05.31 +// 09.08.12 + +function M=Bowmiddle(varargin) + global BOWMIDDLE; + Nargs=length(varargin); + if Nargs==0 + M=BOWMIDDLE; + return; + end; + if Nargs==1 + Bdata=varargin(1); + A=Bdata(1,:); + Dind=Dataindex(Bdata); + Dc=size(Dind,1); + Tmp=Dind(Dc,2); + B=Bdata(Tmp,:); + if Dc==1 + Tmp1=round(Tmp/2); + else + Tmp1=Dind(1,2); + end; + D=Bdata(Tmp1,:); + B=B-A; + D=D-A; + Tmp1=B(1)*D(2)-D(1)*B(2); + Tmp2=((B(1)^2+B(2)^2)*D(2)-B(2)*(D(1)^2+D(2)^2))/2; + Tmp3=-((B(1)^2+B(2)^2)*D(1)-B(1)*(D(1)^2+D(2)^2))/2; + C=[Tmp2,Tmp3]/Tmp1+A; + R=norm(C-A); + B=B+A; + V=(A+B)/2-C; + V=V/norm(V); + M=C+R*V; + else + A=varargin(1); B=varargin(2); + D=1/2*Vecnagasa(B-A); + H=0.2*D; + if length(varargin)>=3 + Tmp=varargin(3); + H=Tmp*D*0.2; + end + H=min(H,D); + Ydata=MakeBowdata(A,B,H); + C=Op(1,Ydata); + R=Op(2,Ydata); + T=(Op(3,Ydata)+Op(4,Ydata))/2; + P=C+R*[cos(T),sin(T)]; + M=MixS(P,T); + end +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Bowname.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Bowname.bin Binary files differnew file mode 100644 index 00000000..320dc759 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Bowname.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Bowname.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Bowname.sci new file mode 100755 index 00000000..f57c4961 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Bowname.sci @@ -0,0 +1,40 @@ +// +// 08.08.24 +// 09.08.12 +// 09.08.13 +// 13.11.30 Directon supported + +function Bowname(varargin) + global BOWMIDDLE; + Nargs=length(varargin); + Siki=varargin(Nargs); + Nargs=Nargs-1; // 13.11.30 + Dr="c"; + if Nargs>=1 then + Tmp=varargin(Nargs); + if type(Tmp)==10 + Dr=Tmp; + Nargs=Nargs-1; + end + end + if Nargs==0 // 13.11.30 + P=Mixop(1,BOWMIDDLE); + elseif Nargs==1 // 13.11.30 + Bdata=varargin(1); + P=Bowmiddle(Bdata); + else + A=varargin(1); B=varargin(2); + D=1/2*Vecnagasa(B-A); + Tmp=varargin(3); + if type(Tmp)==10 + H=D*0.2; + else + H=Tmp*D*0.2; + end; + H=min(H,D); + Ydata=MakeBowdata(A,B,H); + Tmp=Bowmiddle(Ydata); + P=Mixop(1,Tmp); + end + Expr(P,Dr,Siki); //13.11.30 +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Bownamerot.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Bownamerot.bin Binary files differnew file mode 100644 index 00000000..e4dd5aa2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Bownamerot.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Bownamerot.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Bownamerot.sci new file mode 100755 index 00000000..8d1edf78 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Bownamerot.sci @@ -0,0 +1,77 @@ +// 08.05.31 +// 08.08.24 +// 09.08.12 +// 09.08.13 +// 13.12.15 tiny move supported +// A,B type no longer supported + +function Bownamerot(varargin) + global Wfile FID BOWMIDDLE BOWSTART BOWEND; + Nargs=length(varargin); + Eps=10^(-6); + Flg=1; + Tmp=varargin(Nargs); + if type(Tmp)==1 & length(Tmp)==1 & Tmp<0 + Flg=Tmp; + Nargs=Nargs-1; + end; + Siki=varargin(Nargs); + Nargs=Nargs-1; + Dr="c"; + if Nargs>=1 then + Tmp=varargin(Nargs); + if type(Tmp)==10 + Dr=Tmp; + Nargs=Nargs-1; + end + end + if Nargs==0 + P=Mixop(1,BOWMIDDLE); + A=BOWSTART; + B=BOWEND; + else + Bdata=varargin(1); + P=Bowmiddle(Bdata); + A=Bdata(1,:); + B=Bdata(size(Bdata,1),:); + Tm=0; Tv=0; + if Nargs>1 then // 13.12.15 + Tm=varargin(2); + if Nargs>2 then + Tv=varargin(3); + end + end + end; +// elseif Nargs==1 +// Bdata=varargin(1); +// P=Bowmiddle(Bdata); +// A=Bdata(1,:); +// B=Bdata(size(Bdata,1),:); +// else +// A=varargin(1); B=varargin(2); +// D=1/2*Vecnagasa(B-A); +// Tmp=varargin(3); +// if type(Tmp)==10 +// H=0.2*D; Siki=Tmp; +// else +// H=Tmp*D*0.2; Siki=varargin(4); +// end +// H=min(H,D); +// Ydata=MakeBowdata(A,B,H); +// C=Op(1,Ydata); +// R=Op(2,Ydata); +// T=(Op(3,Ydata)+Op(4,Ydata))/2; +// P=C+R*[cos(T),sin(T)]; +// end; + if A(1)>B(1)+Eps + Tmp=A; + A=B; + B=Tmp; + end; + if Flg>0 + Tmp=B-A; + else + Tmp=A-B; + end; + Exprrot(P,Tmp,Tm,Tv,Siki); +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CalcHeight.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CalcHeight.bin Binary files differnew file mode 100644 index 00000000..69e9a115 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CalcHeight.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CalcHeight.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CalcHeight.sci new file mode 100755 index 00000000..aa1216dd --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CalcHeight.sci @@ -0,0 +1,31 @@ +function CalcHeight(Hoko,Moji) + global Wfile FID; + D=0; + Tmp=ascii(Hoko); + H=char(Tmp(1)); + Str=['\settoheight{\Height}{'+Moji+'}']; + Str=[Str,'\settodepth{\Depth}{'+Moji+'}']; + if H=='n' + Str=[Str,'\setlength{\Height}{\Depth}']; + end + if H=='s' + Str=[Str,'\setlength{\Height}{-\Height}']; + end + if H=='c' + Str=[Str,'\setlength{\Height}{-0.5\Height}']; + Str=[Str,'\setlength{\Depth}{0.5\Depth}']; + Str=[Str,'\addtolength{\Height}{\Depth}']; + end + if Wfile=='default' + for I=1:size(Str,2) + mprintf('%s',Str(I)); + end + mprintf('%s\n','%'); + else + for I=1:size(Str,2) + mfprintf(FID,'%s',Str(I)); + end + mfprintf(FID,'%s\n','%'); + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CalcWidth.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CalcWidth.bin Binary files differnew file mode 100644 index 00000000..dea083ce --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CalcWidth.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CalcWidth.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CalcWidth.sci new file mode 100755 index 00000000..111e9b3b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CalcWidth.sci @@ -0,0 +1,26 @@ +function CalcWidth(Hoko,Moji) + global Wfile FID + D=0; + Tmp=ascii(Hoko); + H=char(Tmp(2)); + if H=='e' + D=0; + end + if H=='w' + D=-1.0; + end + if H=='c' + D=-0.5; + end + Str1='\settowidth{\Width}{'+Moji+'}'; + Tmp=string(D); + Str2='\setlength{\Width}{'+Tmp+'\Width}'; + if Wfile=='default' + mprintf('%s',Str1); + mprintf('%s%s\n',Str2,'%'); + else + mfprintf(FID,'%s',Str1); + mfprintf(FID,'%s%s\n',Str2,'%'); + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Calcfun.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Calcfun.bin Binary files differnew file mode 100644 index 00000000..90ba14bb --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Calcfun.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Calcfun.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Calcfun.sci new file mode 100755 index 00000000..30c646a6 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Calcfun.sci @@ -0,0 +1,9 @@ +// 08.05.30 + +function PL=Calcfun(Siki,Namae,Atai) + execstr(Namae+'=Atai'); + Tmp='XY='+Siki; + execstr(Tmp); + PL=[Atai(:,1),XY(:,2)]; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CameraCurve.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CameraCurve.bin Binary files differnew file mode 100644 index 00000000..a0f9bec1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CameraCurve.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CameraCurve.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CameraCurve.sci new file mode 100755 index 00000000..fcc7687c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CameraCurve.sci @@ -0,0 +1,24 @@ +// 08.08.12
+// 08.10.07
+// 09.06.02
+
+function AnsL=CameraCurve(Curve)
+ Eps=10^(-6);
+ for I=1:size(Curve,1)
+ P=Curve(I,:);
+ x=P(1); y=P(2); z=P(3);
+ if x~=%inf
+ Tmp=Perspt(P);
+ if I==1
+ AnsL=[Tmp];
+ else
+ Tmp1=AnsL(size(AnsL,1),:);
+ if Tmp1(1)==%inf | norm(Tmp-Tmp1)>Eps
+ AnsL=[AnsL;Tmp];
+ end;
+ end;
+ else
+ AnsL=[AnsL;%inf,%inf];
+ end;
+ end;
+endfunction
diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CameracoordCurve.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CameracoordCurve.bin Binary files differnew file mode 100644 index 00000000..1504ef28 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CameracoordCurve.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CameracoordCurve.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CameracoordCurve.sci new file mode 100755 index 00000000..310ac166 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CameracoordCurve.sci @@ -0,0 +1,28 @@ +// 08.08.14 +// 08.10.16 +// 09.09.25 + +function Out=CameracoordCurve(Curve) + global FocusPoint EyePoint; + Out=[]; // 09.09.25 + for J=1:size(Curve,1) + P=Curve(J,:); + Tmp=P-FocusPoint; + X1=Tmp(1); Y1=Tmp(2); Z1=Tmp(3); + Tmp=EyePoint-FocusPoint; + E1=Tmp(1); F1=Tmp(2); G1=Tmp(3); + Ca=E1/sqrt(E1^2+F1^2); + Sa=F1/sqrt(E1^2+F1^2); + X2=X1*Ca+Y1*Sa; Y2=-X1*Sa+Y1*Ca; Z2=Z1; + E2=E1*Ca+F1*Sa; F2=-E1*Sa+F1*Ca; G2=G1; + Cb=E2/sqrt(E2^2+G2^2); + Sb=G2/sqrt(E2^2+G2^2); + X3=X2*Cb+Z2*Sb; Y3=Y2; Z3=-X2*Sb+Z2*Cb; + E3=E2*Cb+G2*Sb; F3=F2; G3=-E2*Sb+G2*Cb; + Xz=X3; + Yz=E3/(E3-X3)*Y3; + Zz=E3/(E3-X3)*Z3; + Out=[Out;Yz,Zz,Xz]; + end; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Cancoordpara.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Cancoordpara.bin Binary files differnew file mode 100644 index 00000000..09869b72 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Cancoordpara.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Cancoordpara.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Cancoordpara.sci new file mode 100644 index 00000000..1574d812 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Cancoordpara.sci @@ -0,0 +1,11 @@ +// 13.08.13 + +function Out=Cancoordpara(P) + global PHI THETA; + Xz=P(1); Yz=P(2); Zz=P(3); + X=-Xz*sin(PHI)-Yz*cos(PHI)*cos(THETA)+Zz*cos(PHI)*sin(THETA); + Y=Xz*cos(PHI)-Yz*sin(PHI)*cos(THETA)+Zz*sin(PHI)*sin(THETA); + Z=Yz*sin(THETA)+Zz*cos(THETA); + Out=[X,Y,Z]; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Cancoordpers.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Cancoordpers.bin Binary files differnew file mode 100644 index 00000000..9b976e9a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Cancoordpers.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Cancoordpers.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Cancoordpers.sci new file mode 100755 index 00000000..b63aba5c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Cancoordpers.sci @@ -0,0 +1,22 @@ +// 08.08.12 + +function Out=Cancoordpers(P) + global EyePoint FocusPoint; + Tmp=EyePoint-FocusPoint; + E1=Tmp(1); F1=Tmp(2); G1=Tmp(3); + Ca=E1/sqrt(E1^2+F1^2); + Sa=F1/sqrt(E1^2+F1^2); + E2=E1*Ca+F1*Sa; F2=-E1*Sa+F1*Ca; G2=G1; + Cb=E2/sqrt(E2^2+G2^2); + Sb=G2/sqrt(E2^2+G2^2); + E3=E2*Cb+G2*Sb; F3=F2; G3=-E2*Sb+G2*Cb; + Xz=P(3); Yz=P(1); Zz=P(2); + X3=Xz; Y3=Yz*(E3-Xz)/E3; Z3=Zz*(E3-Xz)/E3; + X2=X3*Cb-Sb*Z3; Y2=Y3; Z2=Cb*Z3+Sb*X3; + X1=X2*Ca-Sa*Y2; Y1=Ca*Y2+Sa*X2; Z1=Z2; + X=X1+FocusPoint(1); + Y=Y1+FocusPoint(2); + Z=Z1+FocusPoint(3); + Out=[X,Y,Z]; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Circledata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Circledata.bin Binary files differnew file mode 100644 index 00000000..479debe4 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Circledata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Circledata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Circledata.sci new file mode 100755 index 00000000..2148c061 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Circledata.sci @@ -0,0 +1,32 @@ +// s:2008,05.12 +// e:2014.09.08 [A,B] supported +// e:2014.10.24 N,R => N__, ... + +function P=Circledata(varargin) + Nargs=length(varargin); + C=varargin(1); + if length(C)==4 then + ra=norm(C(1:2)-C(3:4)); + C=C(1:2); + Nop=2; + else + ra=varargin(2); + Nop=3; + end; + R__=[0,2*%pi]; + N__=50; // Numpoints + for I=Nop:Nargs + Tmp=varargin(I); + K=mtlb_findstr(Tmp,'='); + Tmp1=strsplit(Tmp,[K-1,K]); + Tmp2=ascii(Tmp1(1,1)); + Lhs=char(Tmp2(1)); + Str=Lhs+'__='+Tmp1(3,1); + execstr(Str); + end; + Dt=(R__(2)-R__(1))/N__; + T=R__(1):Dt:R__(2); + X=C(1)+ra*cos(T); + Y=C(2)+ra*sin(T); + P=[X',Y']; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Clipindomain.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Clipindomain.bin Binary files differnew file mode 100644 index 00000000..7a4e7e0e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Clipindomain.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Clipindomain.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Clipindomain.sci new file mode 100755 index 00000000..bf9572c5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Clipindomain.sci @@ -0,0 +1,58 @@ +// 08.09.10 +// 08.09.16 +// 09.12.31 (gsort) + +function OutL=Clipindomain(ObjL,FigL) + EEps=10^(-4); + Eps=0.01; + Eps2=0.2; + Bdy=Kyoukai(FigL); + if Mixlength(Bdy)>=2 + Fbdy=Joincrvs(FigL) + else + Fbdy=Mixop(1,FigL); + end; + if Mixtype(ObjL)==1 + ObjL=Mix(ObjL) + end; + if Mixtype(FigL)==1 + FigL=Mix(FigL) + end; + OutL=[]; + for Nobj=1:Mixlength(ObjL); + Obj=Mixop(Nobj,ObjL); + ParL=[1,Numptcrv(Obj)]; + Tmp=IntersectcrvsPp(Obj,Fbdy,Eps,Eps2); + for J=1:Mixlength(Tmp) + Tmp1=Mixop(J,Tmp); + ParL=[ParL,Mixop(2,Tmp1)]; + end; + ParL=gsort(ParL); + ParL=ParL(length(ParL):-1:1); + Tmp=[1]; + for I=1:length(ParL) + Tmp1=Tmp(length(Tmp)); + Tmp2=ParL(I); + if Tmp2-Tmp1>EEps + Tmp=[Tmp,Tmp2]; + end; + end; + ParL=Tmp; + Tmp1=ParL(length(ParL)); + Tmp2=Numptcrv(Obj); + if abs(Tmp1-Tmp2)<Eps + ParL=[ParL(1:length(ParL)-1),Tmp2]; + end; + Fig=[]; + for N=1:length(ParL)-1 + Tmp=(ParL(N)+ParL(N+1))*0.5; + Tmp=PointonCurve(Tmp,Obj); + Tmp=Naigai(Tmp,Bdy); + Tmp1=modulo(sum(Tmp),2); + if Tmp1==0 continue; end; + Fig=Mixadd(Fig,Partcrv(ParL(N),ParL(N+1),Obj)); + end; + OutL=Mixjoin(OutL,Fig); + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Closefile.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Closefile.bin Binary files differnew file mode 100644 index 00000000..ee0c01eb --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Closefile.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Closefile.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Closefile.sci new file mode 100755 index 00000000..f2928103 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Closefile.sci @@ -0,0 +1,24 @@ +// +// 13.05.19 openfile error tackled +// 13.11.01 Endpicture joined optionally +// 13.11.05 debugged + +function Closefile(varargin) + global Wfile FID; + if length(varargin)>=1 then + Pa=varargin(1); + if type(Pa)==10 then + if Pa=="1" then // 2013.11.05 + Endpicture(1) + end; + if Pa=="0" then + Endpicture(0) + end // + end + end + if Wfile~='default' then + mclose(FID); + FID=[]; // 2013.05.19 + end + Wfile='default'; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Closeobj.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Closeobj.bin Binary files differnew file mode 100644 index 00000000..459ad839 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Closeobj.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Closeobj.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Closeobj.sci new file mode 100644 index 00000000..da7c3850 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Closeobj.sci @@ -0,0 +1,10 @@ +// s : 2014.06.22 + +function Closeobj() + global Wfile FID; + if Wfile~='default' then + mclose(FID); + FID=[]; + end; + Wfile='default'; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Closepar.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Closepar.bin Binary files differnew file mode 100644 index 00000000..2f0714fe --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Closepar.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Closepar.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Closepar.sci new file mode 100755 index 00000000..64b93e1a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Closepar.sci @@ -0,0 +1,15 @@ +// 08.05.31 + +function Closepar() + global Wfile FID + S='\end{minipage}' + if Wfile=='default' + mprintf('%s\n','%'); + mprintf('%s',S); + else + mfprintf(FID,'%s\n','%'); + mfprintf(FID,'%s',S); + end + Closephr(); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Closephr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Closephr.bin Binary files differnew file mode 100644 index 00000000..6a9af1b5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Closephr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Closephr.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Closephr.sci new file mode 100755 index 00000000..39b363f6 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Closephr.sci @@ -0,0 +1,13 @@ +// 08.05.31 + +function Closephr() + global Wfile FID; + if Wfile=='default' + mprintf('%s\n','%'); + mprintf('%s\n','}%'); + else + mfprintf(FID,'%s\n','%'); + mfprintf(FID,'%s\n','}%'); + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Closepicture.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Closepicture.bin Binary files differnew file mode 100644 index 00000000..45c1666b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Closepicture.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Closepicture.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Closepicture.sci new file mode 100755 index 00000000..a3f345cb --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Closepicture.sci @@ -0,0 +1,22 @@ +// +// 08.12.17 +// 09.02.20 +// 10.04.12 + +function Closepicture(varargin) + global Wfile FID MEMORI MEMORINow ULEN MilliIn; + Nargs=length(varargin); + if Nargs==0 + Drwxy(); + elseif varargin(1)==1 + Drwxy(); + end + if Wfile=='default' + mprintf('%s','\end{picture}}%'); + else + mfprintf(FID,'%s','\end{picture}}%'); + end +// MEMORI=MEMORINow*1000/2.54/MilliIn; + Setunitlen('1cm'); +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Connectseg.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Connectseg.bin Binary files differnew file mode 100644 index 00000000..2ae19755 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Connectseg.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Connectseg.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Connectseg.sci new file mode 100755 index 00000000..2abe8c90 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Connectseg.sci @@ -0,0 +1,76 @@ +// 08.09.09 +// 08.09.10 +// 08.09.24 + +function PlotL=Connectseg(varargin) + Nargs=length(varargin); + Pdata=varargin(1); + Eps=10^(-5); + if Nargs>=2 + Eps=varargin(2) + end; + if Mixtype(Pdata)~=1 + Tmp=Mixop(1,Pdata); + Tmp=size(Tmp,2); + Sep=%inf*ones(1,Tmp); + Tmp=[]; + for I=1:Mixlength(Pdata) + Tmp1=Mixop(I,Pdata); + Tmp=[Tmp;Sep;Tmp1]; + end; + Pdata=Tmp(2:size(Tmp,1),:); + end; + Din=Dataindex(Pdata); + PlotL=[]; + Qd=Pdata(Din(1,1):Din(1,2),:); + Din=Din(2:size(Din,1),:); + N=size(Din,1); + while N>0 + Ah=Qd(1,:);Ao=Qd(size(Qd,1),:); + Flg=0; + for J=1:N + St=Din(J,1); + En=Din(J,2); + P=Pdata(St,:); + Q=Pdata(En,:); + if norm(P-Ao)<Eps + Tmp=Pdata(St+1:En,:); + Qd=[Qd;Tmp]; + Din=[Din(1:J-1,:);Din(J+1:N,:)]; + Flg=1; + break; + end; + if norm(Q-Ao)<Eps + Tmp=Pdata(En-1:-1:St,:); + Qd=[Qd;Tmp]; + Din=[Din(1:J-1,:);Din(J+1:N,:)]; + Flg=1; + break; + end; + if norm(P-Ah)<Eps + Tmp=Pdata(En:-1:St+1,:); + Qd=[Tmp;Qd]; + Din=[Din(1:J-1,:);Din(J+1:N,:)]; + Flg=1; + break; + end; + if norm(Q-Ah)<Eps + Tmp=Pdata(St:En-1,:); + Qd=[Tmp;Qd]; + Din=[Din(1:J-1,:);Din(J+1:N,:)]; + Flg=1; + break; + end; + end; + if Flg==0 + PlotL=Mixadd(PlotL,Qd); + Qd=Pdata(Din(1,1):Din(1,2),:); + Din=Din(2:N,:); + end; + N=size(Din,1); + end; + if size(Qd,1)>0 + PlotL=Mixadd(PlotL,Qd); + end; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crossprod.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crossprod.bin Binary files differnew file mode 100644 index 00000000..ebbf0250 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crossprod.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crossprod.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crossprod.sci new file mode 100755 index 00000000..ab4d55b5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crossprod.sci @@ -0,0 +1,13 @@ +// 09.10.0 + +function Out=Crossprod(a,b) + if length(a)==3 + Tmp1=a(2)*b(3)-a(3)*b(2); + Tmp2=a(3)*b(1)-a(1)*b(3); + Tmp3=a(1)*b(2)-a(2)*b(1); + Out=[Tmp1,Tmp2,Tmp3]; + else + Out=a(1)*b(2)-a(2)*b(1); + end; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crv3onsfHiddenData.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crv3onsfHiddenData.bin Binary files differnew file mode 100644 index 00000000..945f328f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crv3onsfHiddenData.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crv3onsfHiddenData.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crv3onsfHiddenData.sci new file mode 100755 index 00000000..07c17303 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crv3onsfHiddenData.sci @@ -0,0 +1,7 @@ +// 08.09.19 + +function Out=Crv3onsfHiddenData() + global CRV3ONSFHIDDENDATA + Out=CRV3ONSFHIDDENDATA; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crv3onsfparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crv3onsfparadata.bin Binary files differnew file mode 100644 index 00000000..edfc2433 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crv3onsfparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crv3onsfparadata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crv3onsfparadata.sci new file mode 100755 index 00000000..ba168b71 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crv3onsfparadata.sci @@ -0,0 +1,49 @@ +// 08.09.16 +// 08.10.11 +// 08.10.15 +// 10.02.16 Eps + +function Out=Crv3onsfparadata(varargin) + global PARTITIONPT HIDDENDATA CRV3ONSFHIDDENDATA + Nargs=length(varargin); + Fk=varargin(1); + Fbdy=Projpara(varargin(2)); + Fd=varargin(3); N=4; + FdL=Fullformfunc(Fd); + Fxy=Mixop(1,FdL); + Np=[50,50]; + if Nargs>=N + Np=varargin(N); N=N+1; + if type(Np)==1 & length(Np)==1 + Np=[Np,Np]; + end; + end; + Eps=[0.05,1]; // + if Nargs>=N + Eps=varargin(N); + end; + if length(Eps)==1 // + Eps=[Eps,1]; // + end; // + Eps2=0.2; + if Nargs>=N+1 + Eps2=varargin(N+1); + end; + Tmp=Mixop(2,Fd); + K=mtlb_findstr(Tmp,'='); + Xname=part(Tmp,1:K-1); + Tmp=Mixop(3,Fd); + K=mtlb_findstr(Tmp,'='); + Yname=part(Tmp,1:K-1); + Fbdxy=Makexybdy(Fd,Np); + Tmp=Projpara(Fk); + Par=Partitionseg(Tmp,Fbdy,Eps(1),Eps2); // + if Fxy=='p' + Out=Nohiddenpara2(Par,Fk,Fd,1,Np,Eps); + else + Tmp=Mix(Fxy,Fbdxy,Xname,Yname); + Out=Nohiddenpara(Par,Fk,Tmp); + end; + CRV3ONSFHIDDENDATA=HIDDENDATA; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crv3onsfpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crv3onsfpersdata.bin Binary files differnew file mode 100644 index 00000000..fcf19f53 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crv3onsfpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crv3onsfpersdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crv3onsfpersdata.sci new file mode 100755 index 00000000..5fc40737 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crv3onsfpersdata.sci @@ -0,0 +1,50 @@ +// 08.09.21 +// 08.10.11 +// 08.10.15 +// 10.02.16 Eps + +function Out=Crv3onsfpersdata(varargin) + global PARTITIONPT HIDDENDATA CRV3ONSFHIDDENDATA + Nargs=length(varargin); + Fk=varargin(1); + Fbdy=Projpers(varargin(2)); + Fd=varargin(3); N=4; + FdL=Fullformfunc(Fd); + Fxy=Mixop(1,FdL); + Np=[50,50]; + if Nargs>=N + Np=varargin(N); N=N+1; + if type(Np)==1 & length(Np)==1 + Np=[Np,Np]; + end; + end; + Eps=[0.05,1]; // + if Nargs>=N + Eps=varargin(N); + end; + if length(Eps)==1 // + Eps=[Eps,1]; // + end; // + Eps2=0.2; + if Nargs>=N+1 + Eps2=varargin(N+1); + end; + Tmp=Mixop(2,Fd); + K=mtlb_findstr(Tmp,'='); + Xname=part(Tmp,1:K-1); + Tmp=Mixop(3,Fd); + K=mtlb_findstr(Tmp,'='); + Yname=part(Tmp,1:K-1); + Fbdxy=Makexybdy(Fd,Np); + Tmp=Projpers(Fk); + Par=Partitionseg(Tmp,Fbdy,Eps(1),Eps2); // + if Fxy=='p' + Out=Nohiddenpers2(Par,Fk,Fd,1,Np,Eps); + else + Tmp=Mix(Fxy,Fbdxy,Xname,Yname); + Out=Nohiddenpers(Par,Fk,Tmp); + end; + + CRV3ONSFHIDDENDATA=HIDDENDATA; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CrvonsfHiddenData.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CrvonsfHiddenData.bin Binary files differnew file mode 100644 index 00000000..6c2acae3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CrvonsfHiddenData.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CrvonsfHiddenData.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CrvonsfHiddenData.sci new file mode 100755 index 00000000..9d97b3ce --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CrvonsfHiddenData.sci @@ -0,0 +1,7 @@ +// 08.09.19 + +function Out=CrvonsfHiddenData() + global CRVONSFHIDDENDATA + Out=CRVONSFHIDDENDATA; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crvonsfparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crvonsfparadata.bin Binary files differnew file mode 100644 index 00000000..5a5c9703 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crvonsfparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crvonsfparadata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crvonsfparadata.sci new file mode 100755 index 00000000..a530284b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crvonsfparadata.sci @@ -0,0 +1,90 @@ +// 08.09.16 +// 08.10.11 +// 08.10.15 +// 10.02.16 Eps +// 13.10.22 ( __ added to varibles ) + +function OutL__=Crvonsfparadata(varargin) + global PARTITIONPT HIDDENDATA CRVONSFHIDDENDATA + Nargs__=length(varargin); + Eps__0=10^(-4); + Figuv__=varargin(1); + Fbdy__=Projpara(varargin(2)); + Fd__=varargin(3); N__=4; + Fd__L=Fullformfunc(Fd__); + Fxy__=Mixop(1,Fd__L); + Xf__=Mixop(2,Fd__L); + Yf__=Mixop(3,Fd__L); + Zf__=Mixop(4,Fd__L); + Np__=[50,50]; + if Nargs__>=N__ + Np__=varargin(N__); N__=N__+1; + if type(Np__)==1 & length(Np__)==1 + Np__=[Np__,Np__]; + end; + end; + Eps__=[0.05,1]; // + if Nargs__>=N__ + Eps__=varargin(N__); + end; + if length(Eps__)==1 + Eps__=[Eps__,1]; + end; + Eps__2=0.2; + if Nargs__>=N__+1 + Eps__2=varargin(N__+1); + end; + Tmp__=Mixop(2,Fd__); + K__=mtlb_findstr(Tmp__,'='); + Xname__=part(Tmp__,1:K__-1); + Tmp__=Mixop(3,Fd__); + K__=mtlb_findstr(Tmp__,'='); + Yname__=part(Tmp__,1:K__-1); + Tmp__=Mixop(5,Fd__L); + K__=mtlb_findstr(Tmp__,'='); + Uname__=part(Tmp__,1:K__-1); + Urg__=evstr(part(Tmp__,K__+1:length(Tmp__))); + Tmp__=Mixop(6,Fd__L); + K__=mtlb_findstr(Tmp__,'='); + Vname__=part(Tmp__,1:K__-1); + Vrg__=evstr(part(Tmp__,K__+1:length(Tmp__))); + Fbdxy__=Makexybdy(Fd__,Np__); + Fbdy__uv=Mixop(8,Fd__L); + if Fbdy__uv==[] + Fbdy__uv=Mix(Framedata(Urg__,Vrg__)); + end; + FigL__=Clipindomain(Figuv__,Fbdy__uv); + CRVONSFHIDDENDATA=[]; + OutL__=[]; + for N__=1:Mixlength(FigL__) + PtL__=Mixop(N__,FigL__); + Tmp__=[]; + for I__=1:size(PtL__,1) + P__=PtL__(I__,:); + Tmp__1=strsubst(Xf__,Uname__,'('+string(P__(1))+')'); + Tmp__1=strsubst(Tmp__1,Vname__,'('+string(P__(2))+')'); + Tmp__1=evstr(Tmp__1); + Tmp__2=strsubst(Yf__,Uname__,'('+string(P__(1))+')'); + Tmp__2=strsubst(Tmp__2,Vname__,'('+string(P__(2))+')'); + Tmp__2=evstr(Tmp__2); + Tmp__3=strsubst(Zf__,Uname__,'('+string(P__(1))+')'); + Tmp__3=strsubst(Tmp__3,Vname__,'('+string(P__(2))+')'); + Tmp__3=evstr(Tmp__3); + Tmp__=[Tmp__,[Tmp__1,Tmp__2,Tmp__3]]; + end; + Fk__=Spaceline(Tmp__); + Par__=Partitionseg(Projpara(Fk__),Fbdy__,Eps__(1),Eps__2); // + if Fxy__=='p' + Tmp__=Nohiddenpara2(Par__,Fk__,Fd__,1,Np__,Eps__); + else + Tmp__1=Mix(Fxy__,Fbdxy__,Xname__,Yname__); + Tmp__=Nohiddenpara(Par__,Fk__,Tmp__1); + end; + if Tmp__~=[] + OutL__=Mixjoin(OutL__,Tmp__); + end; + if HIDDENDATA~=[] + CRVONSFHIDDENDATA=Mixjoin(CRVONSFHIDDENDATA,HIDDENDATA); + end; + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crvonsfpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crvonsfpersdata.bin Binary files differnew file mode 100644 index 00000000..29f41d3c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crvonsfpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crvonsfpersdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crvonsfpersdata.sci new file mode 100755 index 00000000..f3bdf700 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crvonsfpersdata.sci @@ -0,0 +1,86 @@ +// 08.09.21 +// 08.10.11 +// 08.10.15 +// 10.02.16 Eps + +function OutL=Crvonsfpersdata(varargin) + global PARTITIONPT HIDDENDATA CRVONSFHIDDENDATA + Nargs=length(varargin); + Eps0=10^(-4); + Figuv=varargin(1); + Fbdy=Projpers(varargin(2)); + Fd=varargin(3); N=4; + FdL=Fullformfunc(Fd); + Fxy=Mixop(1,FdL); + Xf=Mixop(2,FdL); + Yf=Mixop(3,FdL); + Zf=Mixop(4,FdL); + Np=[50,50]; + if Nargs>=N + Np=varargin(N); N=N+1; + if type(Np)==1 & length(Np)==1 + Np=[Np,Np]; + end; + end; + Eps=[0.05,1]; // + if Nargs>=N + Eps=varargin(N); + end; + if length(Eps)==1 + Eps=[Eps,1]; + end; + Eps2=0.2; + if Nargs>=N+1 + Eps2=varargin(N+1); + end; + Tmp=Mixop(2,Fd); + K=mtlb_findstr(Tmp,'='); + Xname=part(Tmp,1:K-1); + Tmp=Mixop(3,Fd); + K=mtlb_findstr(Tmp,'='); + Yname=part(Tmp,1:K-1); + Tmp=Mixop(5,FdL); + K=mtlb_findstr(Tmp,'='); + Uname=part(Tmp,1:K-1); + Urg=evstr(part(Tmp,K+1:length(Tmp))); + Tmp=Mixop(6,FdL); + K=mtlb_findstr(Tmp,'='); + Vname=part(Tmp,1:K-1); + Vrg=evstr(part(Tmp,K+1:length(Tmp))); + Fbdxy=Makexybdy(Fd,Np); + Fbdyuv=Mixop(8,FdL); + if Fbdyuv==[] + Fbdyuv=Mix(Framedata(Urg,Vrg)); + end; + FigL=Clipindomain(Figuv,Fbdyuv); + CRVONSFHIDDENDATA=[]; + OutL=[]; + for N=1:Mixlength(FigL) + PtL=Mixop(N,FigL); + Tmp=[]; + for I=1:size(PtL,1) + P=PtL(I,:); + Tmp1=strsubst(Xf,Uname,'('+string(P(1))+')'); + Tmp1=strsubst(Tmp1,Vname,'('+string(P(2))+')'); + Tmp1=evstr(Tmp1); + Tmp2=strsubst(Yf,Uname,'('+string(P(1))+')'); + Tmp2=strsubst(Tmp2,Vname,'('+string(P(2))+')'); + Tmp2=evstr(Tmp2); + Tmp3=strsubst(Zf,Uname,'('+string(P(1))+')'); + Tmp3=strsubst(Tmp3,Vname,'('+string(P(2))+')'); + Tmp3=evstr(Tmp3); + Tmp=[Tmp,[Tmp1,Tmp2,Tmp3]]; + end; + Fk=Spaceline(Tmp); + Par=Partitionseg(Projpers(Fk),Fbdy,Eps(1),Eps2); // + if Fxy=='p' + Tmp=Nohiddenpers2(Par,Fk,Fd,1,Np,Eps); + else + Tmp1=Mix(Fxy,Fbdxy,Xname,Yname); + Tmp=Nohiddenpers(Par,Fk,Tmp1); + end; + OutL=Mixjoin(OutL,Tmp); + CRVONSFHIDDENDATA=Mixjoin(CRVONSFHIDDENDATA,HIDDENDATA); + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CrvsfHiddenData.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CrvsfHiddenData.bin Binary files differnew file mode 100644 index 00000000..c0c9a068 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CrvsfHiddenData.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CrvsfHiddenData.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CrvsfHiddenData.sci new file mode 100755 index 00000000..0081b20c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CrvsfHiddenData.sci @@ -0,0 +1,7 @@ +// 08.10.24 + +function Out=CrvsfHiddenData() + global CRVSFHIDDENDATA + Out=CRVSFHIDDENDATA; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crvsfparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crvsfparadata.bin Binary files differnew file mode 100644 index 00000000..c4172a33 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crvsfparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crvsfparadata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crvsfparadata.sci new file mode 100755 index 00000000..a87506d2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crvsfparadata.sci @@ -0,0 +1,81 @@ +// 08.10.24 +// 08.10.25 +// 08.10.26 +// 08.10.27 +// 09.06.02 +// 09.12.31 (gsort) +// 10.02.16 + +function Out=Crvsfparadata(varargin) + global PARTITIONPT HIDDENDATA CRVSFHIDDENDATA + Nargs=length(varargin); + Sepflg=0; + Tmp=varargin(Nargs); + if type(Tmp)==1 & Tmp<=0 + Sepflg=1; + Nargs=Nargs-1; + end; + Fk=varargin(1); + if Mixtype(Fk)==1 + FkL=Mix(Fk); + else + FkL=Fk; + end; + Fbdy=Projpara(varargin(2)); + Fd=varargin(3); N=4; + FdL=Fullformfunc(Fd); + Fxy=Mixop(1,FdL); + Np=[50,50]; + if Nargs>=N + Np=varargin(N); N=N+1; + if type(Np)==1 & length(Np)==1 + Np=[Np,Np]; + end; + end; + Eps=[0.05,1]; // + if Nargs>=N + Eps=varargin(N); + end; + if length(Eps)==1 // + Eps=[Eps,1]; // + end; // + Eps2=0.2; + if Nargs>=N+1 + Eps2=varargin(N+1); + end; + Tmp=Mixop(2,Fd); + K=mtlb_findstr(Tmp,'='); + Xname=part(Tmp,1:K-1); + Tmp=Mixop(3,Fd); + K=mtlb_findstr(Tmp,'='); + Yname=part(Tmp,1:K-1); + Out=[]; + CRVSFHIDDENDATA=[]; + for Nn=1:Mixlength(FkL) + Fk=Mixop(Nn,FkL); + Tmp=Projpara(Fk); + Par=Partitionseg(Tmp,Fbdy,Eps(1),Eps2); // + if Sepflg==0 + for I=1:Numptcrv(Fk)-1 + Pa=Ptcrv(I,Fk); + Pb=Ptcrv(I+1,Fk); + PtL=Meetpoints(Pa,Pb,Fd,1,Np,Eps(1)); // + for J=1:Mixlength(PtL) + Tmp=Mixop(J,PtL); + Tmp=Parapt(Tmp); + Tmp1=ParamonCurve(Tmp,I,Projpara(Fk)); + Tmp2=min(abs(Par-Tmp1)); + if Tmp2*norm(Parapt(Pb-Pa))>Eps (1) // + Par=[Par,Tmp1]; + end; + end; + Par=gsort(Par); + Par=Par(length(Par):-1:1); + end; + end; + Tmp1=Nohiddenpara2(Par,Fk,Fd,1,Np,Eps); + Out=Mixjoin(Out,Tmp1); + CRVSFHIDDENDATA=Mixjoin(CRVSFHIDDENDATA,HIDDENDATA); + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crvsfpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crvsfpersdata.bin Binary files differnew file mode 100644 index 00000000..8efb0eb2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crvsfpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crvsfpersdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crvsfpersdata.sci new file mode 100755 index 00000000..7e24efcb --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Crvsfpersdata.sci @@ -0,0 +1,80 @@ +// 08.10.24 +// 08.10.25 +// 08.10.26 +// 08.10.27 +// 09.06.02 +// 09.12.31 (gsort) + +function Out=Crvsfpersdata(varargin) + global PARTITIONPT HIDDENDATA CRVSFHIDDENDATA + Nargs=length(varargin); + Sepflg=0; + Tmp=varargin(Nargs); + if type(Tmp)==1 & Tmp<=0 + Sepflg=1; + Nargs=Nargs-1; + end; + Fk=varargin(1); + if Mixtype(Fk)==1 + FkL=Mix(Fk); + else + FkL=Fk; + end; + Fbdy=Projpers(varargin(2)); + Fd=varargin(3); N=4; + FdL=Fullformfunc(Fd); + Fxy=Mixop(1,FdL); + Np=[50,50]; + if Nargs>=N + Np=varargin(N); N=N+1; + if type(Np)==1 & length(Np)==1 + Np=[Np,Np]; + end; + end; + Eps=[0.05,1]; // + if Nargs>=N + Eps=varargin(N); + end; + if length(Eps)==1 // + Eps=[Eps,1]; // + end; // + Eps2=0.2; + if Nargs>=N+1 + Eps2=varargin(N+1); + end; + Tmp=Mixop(2,Fd); + K=mtlb_findstr(Tmp,'='); + Xname=part(Tmp,1:K-1); + Tmp=Mixop(3,Fd); + K=mtlb_findstr(Tmp,'='); + Yname=part(Tmp,1:K-1); + Out=[]; + CRVSFHIDDENDATA=[]; + for Nn=1:Mixlength(FkL) + Fk=Mixop(Nn,FkL); + Tmp=Projpers(Fk); + Par=Partitionseg(Tmp,Fbdy,Eps(1),Eps2); // + if Sepflg==0 + for I=1:Numptcrv(Fk)-1 + Pa=Ptcrv(I,Fk); + Pb=Ptcrv(I+1,Fk); + PtL=Meetpoints(Pa,Pb,Fd,1,Np,Eps(1)); // + for J=1:Mixlength(PtL) + Tmp=Mixop(J,PtL); + Tmp=Perspt(Tmp); + Tmp1=ParamonCurve(Tmp,I,Projpers(Fk)); + Tmp2=min(abs(Par-Tmp1)); + if Tmp2*norm(Perspt(Pb-Pa))>Eps(1) // + Par=[Par,Tmp1]; + end; + end; + Par=gsort(Par); + Par=Par(length(Par):-1:1); + end; + end; + Tmp1=Nohiddenpers2(Par,Fk,Fd,1,Np,Eps); + Out=Mixjoin(Out,Tmp1); + CRVSFHIDDENDATA=Mixjoin(CRVSFHIDDENDATA,HIDDENDATA); + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CuspData.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CuspData.bin Binary files differnew file mode 100644 index 00000000..98b1a53c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CuspData.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CuspData.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CuspData.sci new file mode 100755 index 00000000..8c2b6eee --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CuspData.sci @@ -0,0 +1,7 @@ +// 08.09.10 + +function Out=CuspData() + global CUSPDATA + Out=CUSPDATA; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CuspPt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CuspPt.bin Binary files differnew file mode 100644 index 00000000..8d097887 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CuspPt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CuspPt.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CuspPt.sci new file mode 100755 index 00000000..33f1d807 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CuspPt.sci @@ -0,0 +1,7 @@ +// 08.09.10 + +function Out=CuspPt() + global CUSPPT + Out=CUSPPT; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CuspSplitPt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CuspSplitPt.bin Binary files differnew file mode 100644 index 00000000..a3855489 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CuspSplitPt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CuspSplitPt.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CuspSplitPt.sci new file mode 100755 index 00000000..07cbb09b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/CuspSplitPt.sci @@ -0,0 +1,7 @@ +// 08.09.10 + +function PL=CuspSplitPt() + global CUSPSPLITPT + PL=CUSPSPLITPT; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Cuspsplitpara.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Cuspsplitpara.bin Binary files differnew file mode 100644 index 00000000..ae85baa1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Cuspsplitpara.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Cuspsplitpara.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Cuspsplitpara.sci new file mode 100755 index 00000000..0ea935b6 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Cuspsplitpara.sci @@ -0,0 +1,179 @@ +// 08.09.10 +// 08.09.13 +// 08.09.15 +// 08.10.10 +// 10.02.16 Eps +// 13.10.21 ( __ added to varibles ) +// 14.06.28 debug in the case of no cusp + +function OutkL__=Cuspsplitpara(varargin); + global CUSPSPLITPT; + Nargs__=length(varargin); + Gdxy__=varargin(1); + if Mixtype(Gdxy__)==1 + Gdxy__=Mix(Gdxy__); + end; + Fd__=varargin(2); + FdL__=Fullformfunc(Fd__); + Eps0__=10^(-5); + Eps__=0.05; + if Nargs__>2 Eps__=varargin(3); end; + if length(Eps__)>1 // + Eps__=Eps__(1); + end; // + Fxy__=Mixop(1,FdL__); N__=2; + Tmp1__=Mixop(2,FdL__); + Tmp2__=Mixop(3,FdL__); + Tmp3__=Mixop(4,FdL__); + Xyzstr__=[Tmp1__,Tmp2__,Tmp3__]; + Tmp__=Mixop(5,FdL__); + K__=mtlb_findstr(Tmp__,'='); + Uname__=part(Tmp__,1:K__-1); + Urg__=evstr(part(Tmp__,K__+1:length(Tmp__))); + Tmp__=Mixop(6,FdL__); + K__=mtlb_findstr(Tmp__,'='); + Vname__=part(Tmp__,1:K__-1); + Vrg__=evstr(part(Tmp__,K__+1:length(Tmp__))); + CUSPSPLITPT=[]; + OutkL__=[]; + for Ng__=1:Mixlength(Gdxy__) + PtxyL__=Mixop(Ng__,Gdxy__); + PtkL__=[]; + PthL__=[]; + for I__=1:size(PtxyL__,1) + Tmp__=PtxyL__(I__,:); + Tmp1__=Uname__+'='+string(Tmp__(1)); + execstr(Tmp1__); + Tmp1__=Vname__+'='+string(Tmp__(2)) + execstr(Tmp1__); + Tmp2__=evstr(Xyzstr__); + Tmp3__=Parapt(Tmp2__); + if I__==1 + PtkL__=[Tmp2__]; + PthL__=[Tmp3__]; + else + Tmp4__=PthL__(size(PthL__,1),:); + if norm(Tmp3__-Tmp4__)>Eps0__ + PtkL__=[PtkL__;Tmp2__]; + PthL__=[PthL__;Tmp3__] + end; + end; + end; + if size(PthL__,1)==0 then // from 20140628 + OutkL__=[]; + return; + end; // upto 20140628 + Ps__=PthL__(1,:); Pe__=PthL__(size(PthL__,1),:); + Cflg__=0; + if norm(Ps__-Pe__)<Eps__ Cflg__=1; end; + CuspL__=[]; + Cva__=cos(10*%pi/180); + for I__=1:size(PthL__,1)-1 + if size(PthL__,1)==2 break; end; + Tmp__=PthL__(I__,:); + if I__==1 + if Cflg__==0 continue; end; + Tmp1__=PthL__(size(PthL__,1)-1,:); + else + Tmp1__=PthL__(I__-1,:); + end; + Tmp2__=PthL__(I__+1,:); + V1__=Tmp__-Tmp1__; + V2__=Tmp2__-Tmp__; + Tmp3__=V1__(1)*V2__(1)+V1__(2)*V2__(2); + Tmp3__=Tmp3__/(norm(V1__)*norm(V2__)); + Cuspflg__=0; + if Tmp3__<Cva__ + P__=PthL__(I__,:); + Kaku__=acos(Tmp3__)*180/%pi; + if V1__(1)*V2__(2)-V1__(2)*V2__(1)<0 + Kaku__=-Kaku__ + end; + Cuspflg__=0; + for J__=I__+1:size(PthL__,1)-1 + if abs(Kaku__)>90 + Cuspflg__=1; + break + end; + Q__=PthL__(J__,:); + if norm(P__-Q__)>Eps__ + break + end; + V1__=Q__-PthL__(J__-1,:); + V2__=PthL__(J__+1,:)-Q__; + Tmp3__=V1__(1)*V2__(1)+V1__(2)*V2__(2); + Tmp3__=Tmp3__/(norm(V1__)*norm(V2__)); + Tmp__=acos(Tmp3__)*180/%pi; + if V1__(1)*V2__(2)-V1__(2)*V2__(1)<0 + Tmp__=-Tmp__ + end; + Kaku__=Kaku__+Tmp__ + end; + if Cuspflg__==1 + Tmp__=Trunc((I__+J__)*0.5); + I__=J__; + if length(CuspL__)==0 + CuspL__=[Tmp__] + else + CuspL__=[CuspL__,Tmp__]; + end; + end; + end; + end; + if Cflg__==0 + CuspL__=[1,CuspL__,size(PthL__,1)]; + elseif length(CuspL__)==0 + CuspL__=[1,size(PthL__,1)]; + elseif CuspL__(1)==1 + CuspL__=[CuspL__,size(PthL__,1)]; + else + Tmp__=CuspL__(1); + Tmp1__=size(PthL__,1); + PthL__=[PthL__(Tmp__:Tmp1__,:);PthL__(2:Tmp__,:)]; + PtkL__=[PtkL__(Tmp__:Tmp1__,:);PtkL__(2:Tmp__,:)]; + CuspL__=CuspL__-Tmp__+1; + CuspL__=[CuspL__,size(PthL__,1)]; + end; + if length(CuspL__)==2 + //Outh=[plot(PthL__)]; + Tmp4__=PthL__(size(PthL__,1),:); + if size(PtkL__,1)>=2 + CUSPSPLITPT=Mixadd(CUSPSPLITPT,Tmp4__); + OutkL__=Mixadd(OutkL__,PtkL__); + end; + continue + end; + //Outh=[]; + Outk__=[]; + Is__=1; + for I__=1:length(CuspL__)-1 + Tmp1__=CuspL__(Is__); Tmp2__=CuspL__(I__+1); + Tmp3__=PthL__(Tmp1__,:); Tmp4__=PthL__(Tmp2__,:); + if norm(Tmp3__-Tmp4__)>Eps__ + //Tmph__=[op(Tmp1__..Tmp2__,PthL__)]; + Tmpk__=PtkL__(Tmp1__:Tmp2__,:); + //Outh=[op(Outh),plot(Tmph__)]; + Outk__=Mixadd(Outk__,Tmpk__); + CUSPSPLITPT=Mixadd(CUSPSPLITPT,Tmp4__); + Is__=I__+1; + end; + end; + OutkL__=Mixjoin(OutkL__,Outk__); + end; + Tmp1__=Dropnumlistcrv(Projpara(OutkL__),Eps__*0.5); + Tmp__=[]; + for I__=1:Mixlength(OutkL__) + Tmp2__=Mixop(I__,OutkL__); + Tmp3__=Mixop(I__,Tmp1__); + Tmp4__=[]; + for J__=1:length(Tmp3__) + Tmp5__=Tmp2__(Tmp3__(J__),:); + Tmp4__=[Tmp4__;Tmp5__]; + end; + if Tmp4__~=[] + Tmp__=Mixadd(Tmp__,Tmp4__); + end; + end; + OutkL__=Tmp__; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Cuspsplitpers.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Cuspsplitpers.bin Binary files differnew file mode 100644 index 00000000..4f20be30 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Cuspsplitpers.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Cuspsplitpers.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Cuspsplitpers.sci new file mode 100755 index 00000000..a8221f5b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Cuspsplitpers.sci @@ -0,0 +1,176 @@ +// 08.09.21 +// 08.10.10 +// 10.02.16 Eps__ +// 13.11.01 ( __ added to varibles ) +// 14.06.28 debug in the case of no cusp + +function OutkL__=Cuspsplitpers(varargin); + global CUSPSPLITPT; + Nargs__=length(varargin); + Gdxy__=varargin(1); + if Mixtype(Gdxy__)==1 + Gdxy__=Mix(Gdxy__); + end; + Fd__=varargin(2); + FdL__=Fullformfunc(Fd__); + Eps__0=10^(-5); + Eps__=0.05; + if Nargs__>2 Eps__=varargin(3); end; + if length(Eps__)>1 // + Eps__=Eps__(1); + end; // + Fxy__=Mixop(1,FdL__); N=2; + Tmp__1=Mixop(2,FdL__); + Tmp__2=Mixop(3,FdL__); + Tmp__3=Mixop(4,FdL__); + Xyzstr__=[Tmp__1,Tmp__2,Tmp__3]; + Tmp__=Mixop(5,FdL__); + K__=mtlb_findstr(Tmp__,'='); + Uname__=part(Tmp__,1:K__-1); + Urg__=evstr(part(Tmp__,K__+1:length(Tmp__))); + Tmp__=Mixop(6,FdL__); + K__=mtlb_findstr(Tmp__,'='); + Vname__=part(Tmp__,1:K__-1); + Vrg__=evstr(part(Tmp__,K__+1:length(Tmp__))); + CUSPSPLITPT=[]; + OutkL__=[]; + for Ng__=1:Mixlength(Gdxy__) + PtxyL__=Mixop(Ng__,Gdxy__); + PtkL__=[]; + PthL__=[]; + for I__=1:size(PtxyL__,1) + Tmp__=PtxyL__(I__,:); + Tmp__1=Uname__+'='+string(Tmp__(1)); + execstr(Tmp__1); + Tmp__1=Vname__+'='+string(Tmp__(2)) + execstr(Tmp__1); + Tmp__2=evstr(Xyzstr__); + Tmp__3=Perspt(Tmp__2); + if I__==1 + PtkL__=[Tmp__2]; + PthL__=[Tmp__3]; + else + Tmp__4=PthL__(size(PthL__,1),:); + if norm(Tmp__3-Tmp__4)>Eps__0 + PtkL__=[PtkL__;Tmp__2]; + PthL__=[PthL__;Tmp__3] + end; + end; + end; + if size(PthL__,1)==0 then // from 20140628 + OutkL__=[]; + return; + end; // upto 20140628 + Ps__=PthL__(1,:); Pe=PthL__(size(PthL__,1),:); + Cflg__=0; + if norm(Ps__-Pe)<Eps__ Cflg__=1; end; + CuspL__=[]; + Cva__=cos(10*%pi/180); + for I__=1:size(PthL__,1)-1 + if size(PthL__,1)==2 break; end; + Tmp__=PthL__(I__,:); + if I__==1 + if Cflg__==0 continue; end; + Tmp__1=PthL__(size(PthL__,1)-1,:); + else + Tmp__1=PthL__(I__-1,:); + end; + Tmp__2=PthL__(I__+1,:); + V1__=Tmp__-Tmp__1; + V2__=Tmp__2-Tmp__; + Tmp__3=V1__(1)*V2__(1)+V1__(2)*V2__(2); + Tmp__3=Tmp__3/(norm(V1__)*norm(V2__)); + Cuspflg__=0; + if Tmp__3<Cva__ + P__=PthL__(I__,:); + Kaku__=acos(Tmp__3)*180/%pi; + if V1__(1)*V2__(2)-V1__(2)*V2__(1)<0 + Kaku__=-Kaku__ + end; + Cuspflg__=0; + for J__=I__+1:size(PthL__,1)-1 + if abs(Kaku__)>90 + Cuspflg__=1; + break + end; + Q__=PthL__(J__,:); + if norm(P__-Q__)>Eps__ + break + end; + V1__=Q__-PthL__(J__-1,:); + V2__=PthL__(J__+1,:)-Q__; + Tmp__3=V1__(1)*V2__(1)+V1__(2)*V2__(2); + Tmp__3=Tmp__3/(norm(V1__)*norm(V2__)); + Tmp__=acos(Tmp__3)*180/%pi; + if V1__(1)*V2__(2)-V1__(2)*V2__(1)<0 + Tmp__=-Tmp__ + end; + Kaku__=Kaku__+Tmp__ + end; + if Cuspflg__==1 + Tmp__=Trunc((I__+J__)*0.5); + I__=J__; + if length(CuspL__)==0 + CuspL__=[Tmp__] + else + CuspL__=[CuspL__,Tmp__]; + end; + end; + end; + end; + if Cflg__==0 + CuspL__=[1,CuspL__,size(PthL__,1)]; + elseif length(CuspL__)==0 + CuspL__=[1,size(PthL__,1)]; + elseif CuspL__(1)==1 + CuspL__=[CuspL__,size(PthL__,1)]; + else + Tmp__=CuspL__(1); + Tmp__1=size(PthL__,1); + PthL__=[PthL__(Tmp__:Tmp__1,:);PthL__(2:Tmp__,:)]; + PtkL__=[PtkL__(Tmp__:Tmp__1,:);PtkL__(2:Tmp__,:)]; + CuspL__=CuspL__-Tmp__+1; + CuspL__=[CuspL__,size(PthL__,1)]; + end; + if length(CuspL__)==2 + //Outh__=[plot(PthL__)]; + Tmp__4=PthL__(size(PthL__,1),:); + if size(PtkL__,1)>=2 + CUSPSPLITPT=Mixadd(CUSPSPLITPT,Tmp__4); + OutkL__=Mixadd(OutkL__,PtkL__); + end; + continue + end; + //Outh__=[]; + Outk__=[]; + Is__=1; + for I__=1:length(CuspL__)-1 + Tmp__1=CuspL__(Is__); Tmp__2=CuspL__(I__+1); + Tmp__3=PthL__(Tmp__1,:); Tmp__4=PthL__(Tmp__2,:); + if norm(Tmp__3-Tmp__4)>Eps__ + //Tmp__h=[op(Tmp__1..Tmp__2,PthL__)]; + Tmp__k=PtkL__(Tmp__1:Tmp__2,:); + //Outh__=[op(Outh__),plot(Tmp__h)]; + Outk__=Mixadd(Outk__,Tmp__k); + CUSPSPLITPT=Mixadd(CUSPSPLITPT,Tmp__4); + Is__=I__+1; + end; + end; + OutkL__=Mixjoin(OutkL__,Outk__); + end; + Tmp__1=Dropnumlistcrv(Projpers(OutkL__),Eps__*0.5); + Tmp__=[]; + for I__=1:Mixlength(OutkL__) + Tmp__2=Mixop(I__,OutkL__); + Tmp__3=Mixop(I__,Tmp__1); + Tmp__4=[]; + for J__=1:length(Tmp__3) + Tmp__5=Tmp__2(Tmp__3(J__),:); + Tmp__4=[Tmp__4;Tmp__5]; + end; + if Tmp__4~=[] + Tmp__=Mixadd(Tmp__,Tmp__4); + end; + end; + OutkL__=Tmp__; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Cutsf2d.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Cutsf2d.bin Binary files differnew file mode 100644 index 00000000..48b89428 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Cutsf2d.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Cutsf2d.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Cutsf2d.sci new file mode 100755 index 00000000..fa26b319 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Cutsf2d.sci @@ -0,0 +1,14 @@ +// 08.10.15 + +function Out=Cutsf2d(Nvec,GL,Flg) + global THETA PHI + Theta=THETA; Phi=PHI; + Tmp=Rotate3data(GL,Nvec,[-1,0,0]); + THETA=%pi/2; PHI=0; + Out=Projpara(Tmp); + if Flg==1 + Windisp(Out); + end; + THETA=Theta; PHI=Phi; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dashline.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dashline.bin Binary files differnew file mode 100644 index 00000000..b20f8311 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dashline.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dashline.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dashline.sci new file mode 100644 index 00000000..1df8e5e3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dashline.sci @@ -0,0 +1,31 @@ +// 08.05.21 +// 08.07.14 +// 10.01.02 bin remade +// 10.11.13 Flattenlist used + +function Dashline(varargin) + global MilliIn + Nargs=length(varargin); + Nall=Nargs; Sen=1 ; Gap=1; + Tmp=varargin(Nall); + if type(Tmp)==1 & length(Tmp)==1 & Tmp>0 + Tmp1=varargin(Nall-1); + if type(Tmp1)==1 & length(Tmp1)==1 & Tmp1>0 + Sen=Tmp1; Gap=Tmp; + Nall=Nall-2; + else + Sen=Tmp; Gap=Sen; + Nall=Nall-1; + end + end + Sen=1000/2.54/MilliIn*Sen; + Gap=1000/2.54/MilliIn*Gap; + for N=1:Nall + Tmp=varargin(N); + Fdata=Flattenlist(Tmp); + for I=1:length(Fdata); + Figdata=Fdata(I); + Makehasen(Figdata,Sen,Gap,0); + end; + end; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dataindex.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dataindex.bin Binary files differnew file mode 100644 index 00000000..fc463260 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dataindex.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dataindex.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dataindex.sci new file mode 100755 index 00000000..82e9ac48 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dataindex.sci @@ -0,0 +1,24 @@ +// +// 08.05.31 + +function Ndm=Dataindex(P) + // %inf;%inf -> end + Ndm=[]; + if P==[] return; end + N1=1; + Flg=0; + for J=1:size(P,1) + if P(J,1)==%inf + Ndm=[Ndm;N1,J-1]; + N1=J+1; + if P(N1,1)==%inf + Flg=1; + break; + end + end + end + if Flg==0 + Ndm=[Ndm;N1,size(P,1)]; + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Definecolor.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Definecolor.bin Binary files differnew file mode 100644 index 00000000..5069d551 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Definecolor.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Definecolor.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Definecolor.sci new file mode 100644 index 00000000..b06ac44b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Definecolor.sci @@ -0,0 +1,23 @@ +// 15.05.04 + +function Definecolor(Name,Data) + Tmp1=size(Data,2); + if Tmp1<3 | Tmp1>4 + disp("Size of data should be 3 or 4."); + return; + end; + if Tmp1==4 + Tp="cmyk" + else + Tp="rgb" + end; + Tmp=""; + for J=1:Tmp1 + Tmp=Tmp+string(Data(J)); + if J<Tmp1 + Tmp=Tmp+","; + end; + end + Tmp="\definecolor{"+Name+"}{"+Tp+"}{"+Tmp+"}"; + Texcom(Tmp); +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Deqplot.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Deqplot.bin Binary files differnew file mode 100644 index 00000000..1935267f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Deqplot.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Deqplot.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Deqplot.sci new file mode 100755 index 00000000..43d8ea6e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Deqplot.sci @@ -0,0 +1,195 @@ + +// 08.09.22 +// 09.03.10 +// 09.10.09 ( ` and order ) +// 09.10.09b ( system ) +// 09.11.12 ( debug for x<0 ) +// 13.10.19 ( __ added to variables ) +// 15.11.16 N changed to number of intervals +// 15.12.08 bug of optiion ( __ ) fixed + +function P__=Deqplot(varargin) + global XMIN XMAX YMIN YMAX + Nargs__=length(varargin); + Eps__=10^(-5); + Fnstr__=varargin(1); + Fnstr__=strsubst(Fnstr__,Prime(),'`'); + K__=mtlb_findstr(Fnstr__,'='); + Str__=part(Fnstr__,1:(K__-1)); + Fnstr__=part(Fnstr__,(K__+1):length(Fnstr__)); + JL__=mtlb_findstr(Str__,'`'); + Yname__=part(Str__,1:(JL__(1)-1)); + Yname__=strsubst(Yname__,',',';'); + Tmp__=mtlb_findstr(Yname__,';'); + if length(Tmp__)>0 + Dim__=length(Tmp__)+1; + Order__=1; + Fnstr__=strsubst(Fnstr__,',',';'); + else + Dim__=1; + Order__=length(JL__); + end; + Rgstr__=varargin(2); + K__=mtlb_findstr(Rgstr__,'='); + if K__~=[] + Xname__=part(Rgstr__,1:K__-1); + Rng__=evstr(part(Rgstr__,K__+1:length(Rgstr__))); + else + Xname__=Rgstr__; + Rng__=[XMIN,XMAX]; + end; + X0__=varargin(3); + Y0__=varargin(4); + if size(Y0__,2)>1 + Y0__=Y0__'; + end; + N__=50; + if Nargs__>=5 + Tmp__=varargin(5); + Tmp__=strsubst(Tmp__,"=","__="); // 15.12.08 + Tmp__=strsubst(Tmp__,"____","__"); + execstr(Tmp__); + end; + X1__=Rng__(1); X2__=Rng__(2); + dX__=(X2__-X1__)/(N__-1); + dX__=(X2__-X1__)/(N__); // 15.11.16 + if Dim__>1 + Tmp__=mtlb_findstr(Yname__,'['); + Data__=part(Yname__,Tmp__+1:length(Yname__)); + Tmp__=mtlb_findstr(Data__,']'); + Data__=part(Data__,1:Tmp__-1); + Data__=';'+Data__+';'; + NL__=mtlb_findstr(Data__,';'); + NameL__=list(); + for I__=1:length(NL__)-1 + Tmp__=part(Data__,NL__(I__)+1:NL__(I__+1)-1); + NameL__(I__)=Tmp__; + end; + Fnrep__=Fnstr__; + for I__=1:length(NameL__) + Tmp__=NameL__(I__); + Fnrep__=strsubst(Fnrep__,Tmp__,'Pt('+string(I__)+')'); + end; + Tmp1__='Outf=Dfp__('+Xname__+',Pt)'; + Tmp2__='Outf='+Fnrep__; + deff(Tmp1__,Tmp2__); + Y0p__=Y0__; + Tmp1__='Outf=Dfn__('+Xname__+',Pt)'; + Tmp2__='Outf=-('+Fnrep__+')'; + deff(Tmp1__,Tmp2__); + Y0n__=Y0__; + else + YL__=mtlb_findstr(Fnstr__,Yname__); + Fnrep__=part(Fnstr__,1:YL__(1)-1); + for I__=1:length(YL__) + Py__=YL__(I__); + J__=1; + K__=Py__+1; + while part(Fnstr__,K__:K__)=='`' + J__=J__+1; K__=K__+1; + end; + Fnrep__=Fnrep__+Yname__+'('+string(J__)+')'; + if I__==length(YL__) + Fnrep__=Fnrep__+part(Fnstr__,K__:length(Fnstr__)); + else + J__=YL__(I__+1)-1; + if J__>=K__ + Fnrep__=Fnrep__+part(Fnstr__,K__:J__); + end; + end; + end; + Eqvec__='['; + for I__=1:Order__-1 + Eqvec__=Eqvec__+Yname__+'('+string(I__+1)+');'; + end; + Eqvec__=Eqvec__+Fnrep__+']'; + Tmp1__='Outf=Dfp__('+Xname__+','+Yname__+')'; + Tmp2__='Outf='+Eqvec__; + deff(Tmp1__,Tmp2__); + Y0p__=Y0__; + YL__=mtlb_findstr(Fnstr__,Yname__); + Fnrep__=part(Fnstr__,1:YL__(1)-1); + for I__=1:length(YL__) + Py__=YL__(I__); + J__=1; + K__=Py__+1; + while part(Fnstr__,K__:K__)=='`' + J__=J__+1; K__=K__+1; + end; + if modulo(J__,2)==1 + Fnrep__=Fnrep__+Yname__+'('+string(J__)+')'; + else + Fnrep__=Fnrep__+'(-'+Yname__+'('+string(J__)+'))'; + end; + if I__==length(YL__) + Fnrep__=Fnrep__+part(Fnstr__,K__:length(Fnstr__)); + else + J__=YL__(I__+1)-1; + if J__>=K__ + Fnrep__=Fnrep__+part(Fnstr__,K__:J__); + end; + end; + end; + if modulo(Order__,2)==1 + Fnrep__='-('+Fnrep__+')'; + end; + Fnrep__=strsubst(Fnrep__,Xname__,'(-'+Xname__+')'); // 09.11.12 + Eqvec__='['; + for I__=1:Order__-1 + Eqvec__=Eqvec__+Yname__+'('+string(I__+1)+');'; + end; + Eqvec__=Eqvec__+Fnrep__+']'; + Tmp1__='Outf=Dfn__('+Xname__+','+Yname__+')'; + Tmp2__='Outf='+Eqvec__; + deff(Tmp1__,Tmp2__); + Y0n__=[]; + for I__=1:size(Y0__,1) + Y0n__=[Y0n__;(-1)^(I__-1)*Y0__(I__)]; + end; + end; + if X0__<=X1__ + X__=X1__:dX__:X2__; + Y__=ode(Y0p__,X0__,X__,Dfp__); + M__=min(size(X__,2),size(Y__,2)); + if Dim__>1 + PL__=Y__'; + P__=PL__(1:M__,:); + else + P__=[X__(:,1:M__);Y__(1,1:M__)]'; + end; + return; + end; + if X2__<=X0__ + X__=(-X2__):dX__:(-X1__); + Y__=ode(Y0n__,-X0__,X__,Dfn__); + X__=-X__; + M__=min(size(X__,2),size(Y__,2)); + if Dim__>1 + PL__=Y__'; + P__=PL__(1:M__,:); + else + P__=[X__(:,1:M__);Y__(1,1:M__)]'; + end; + return; + end; + XP__=X0__:dX__:X2__; + YP__=ode(Y0p__,X0__,XP__,Dfp__); + M__=min(size(XP__,2),size(YP__,2)); + XP__=XP__(:,1:M__); + YP__=YP__(:,1:M__); + XN__=(-X0__)+dX__:dX__:(-X1__); + YN__=ode(Y0n__,-X0__,XN__,Dfn__); + M__=min(size(XN__,2),size(YN__,2)); + XN__=XN__(:,1:M__); + YN__=YN__(:,1:M__); + XN__=-XN__; + XN__=XN__(length(XN__):-1:1); + YN__=YN__(:,size(YN__,2):-1:1); + if Dim__>1 + P__=[YN__';YP__'] + else + X__=[XN__,XP__]; + Y__=[YN__(1,:),YP__(1,:)]; + P__=[X__;Y__]'; + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Derivative.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Derivative.bin Binary files differnew file mode 100644 index 00000000..b4f3edb7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Derivative.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Derivative.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Derivative.sci new file mode 100755 index 00000000..cbffc3d7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Derivative.sci @@ -0,0 +1,64 @@ +// 09.10.04 +// 09.10.05 +// 09.10.06 +// 14.10.24 numderivative used after 5.5 + +function Out=Derivative(varargin) + Nargs=length(varargin); + Out=[]; + Fs=varargin(1); + Vv=varargin(2); + Np=3; + if type(Vv)==10 + Prstr=strsubst(Vv,'[','('); + Prstr=strsubst(Prstr,']',')'); + Tmp=part(Prstr,1); + if Tmp~='(' + Prstr='('+Prstr+')'; + end; + deff('Out=Tmpfun'+Prstr,'Out='+Fs); + Fs='Tmpfun'+Prstr; + Vv=varargin(Np); + Np=Np+1; + end; + Nd=[]; + if Np<=Nargs + Nd=varargin(Np); + end; + Js=mtlb_findstr(Fs,'('); + JL=mtlb_findstr(Fs,','); + Je=mtlb_findstr(Fs,')'); + Sep=[Js(1),JL,Je]; + Fse=Fs; + for I=1:length(Vv) + J1=Sep(I)+1; + J2=Sep(I+1)-1; + Tmp1=part(Fs,J1:J2); + Tmp2='X_'+string(I); + Fse=strsubst(Fse,Tmp1,Tmp2); + end; + function Ans=Tmpf(W) + X1=W(1); + if length(W)>1 + X2=W(2); + else; + X2=%inf; + end; + if length(W)>2 + X3=W(3); + else + X3=%inf; + end; + Tmp=Assign(Fse,'X_1',X1,'X_2',X2,'X_3',X3); + Ans=evstr(Tmp)'; + endfunction; + Tmp1=getversion("scilab"); + if Tmp1(1)*10+Tmp1(2)>=55 then + Out=numderivative(Tmpf,Vv')'; + else + Out=derivative(Tmpf,Vv')'; + end + if Nd~=[] + Out=Out(Nd,:) + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Diagcelldata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Diagcelldata.bin Binary files differnew file mode 100644 index 00000000..8854f5a7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Diagcelldata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Diagcelldata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Diagcelldata.sci new file mode 100644 index 00000000..b6a53b62 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Diagcelldata.sci @@ -0,0 +1,15 @@ +// 10.03.28 + +function Out=Diagcelldata(Tb,Nc,Nr) + Tmp=Findcell(Tb,Nc,Nr); + C=Tmp(1); + Dx=Tmp(2); + Dy=Tmp(3); + Pne=C+[Dx,Dy]; + Pnw=C+[-Dx,Dy]; + Psw=C+[-Dx,-Dy]; + Pse=C+[Dx,-Dy]; + Tmp1=Listplot(Pnw,Pse); + Tmp2=Listplot(Pne,Psw); + Out=list(Tmp1,Tmp2); +endfunction;
\ No newline at end of file diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dividegraphics.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dividegraphics.bin Binary files differnew file mode 100644 index 00000000..91415a88 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dividegraphics.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dividegraphics.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dividegraphics.sci new file mode 100755 index 00000000..be16b473 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dividegraphics.sci @@ -0,0 +1,20 @@ +// 08.05.31 +// 10.01.01 +// 11.01.07 + +function OutL=Dividegraphics(Pd) + if length(Pd)==0 + OutL=Pd; + return; + end; + DtL=Flattenlist(Pd); + OutL=list(); + for J=1:length(DtL) + Dt= DtL(J); + Ndm=Dataindex(Dt); + for I=1:size(Ndm,1) + Fd=Dt(Ndm(I,1):Ndm(I,2),:); + OutL($+1)=Fd; + end; + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dividetable.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dividetable.bin Binary files differnew file mode 100644 index 00000000..7b1b6ff3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dividetable.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dividetable.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dividetable.sci new file mode 100644 index 00000000..36531da2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dividetable.sci @@ -0,0 +1,9 @@ +// 13.05.03 + +function Out=Dividetable(Tb) + G=Tb(1); + Gw=G(1); + Gt=Mixsub(Tb(2),G); + Gy=Mixsub(Tb(3),G); + Out=list(Gw,Gt,Gy) +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Doscaling.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Doscaling.bin Binary files differnew file mode 100644 index 00000000..c7f08dda --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Doscaling.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Doscaling.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Doscaling.sci new file mode 100755 index 00000000..5054faf2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Doscaling.sci @@ -0,0 +1,14 @@ +// 09.12.25 + +function Out=Doscaling(G) + global LOGX LOGY SCALEX SCALEY; + GLg=G; + if LOGX==1 + GLg=[log10(G(:,1)),GLg(:,2)]; + end; + if LOGY==1 + GLg=[GLg(:,1),log10(G(:,2))]; + end; + Out=[SCALEX*GLg(:,1),SCALEY*GLg(:,2)]; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dotfilldata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dotfilldata.bin Binary files differnew file mode 100644 index 00000000..489764ae --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dotfilldata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dotfilldata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dotfilldata.sci new file mode 100755 index 00000000..fc2847c7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dotfilldata.sci @@ -0,0 +1,186 @@ +// 08.05.31 +// 10.01.01 +// 10.03.07 (Kosa ) + +function ShaL=Dotfilldata(varargin) + global XMIN XMAX YMIN YMAX MilliIn; + Nargs=length(varargin); + ShaL=[]; + Eps=0.01; + Kakudo=45; + Kosa=0.5; + Tmp=Doscaling([XMIN,YMIN]); + Xmn=Tmp(1); Ymn=Tmp(2); + Tmp=Doscaling([XMAX,YMAX]); + Xmx=Tmp(1); Ymx=Tmp(2); + for N=Nargs:-1:1 + Tmp=varargin(N); + if Mixtype(Tmp)~=1 + break + end + end + if N<Nargs + Kosa=varargin(N+1); + end +// Kosa=min(Kosa,1); // 100307 + Tmp=1/(2*Kosa); + Kankaku=Tmp*0.100*1000/2.54/MilliIn; + NaitenL=varargin(1); + if Mixtype(NaitenL)==1 + NaitenL=list(NaitenL); + end + Ns=2; + StartP=Op(1,NaitenL); + if type(StartP)==10 + StartP=[(XMIN+XMAX)/2,(YMIN+YMAX)/2]; + else + StartP=Doscaling(StartP); + end; + Tmp=varargin(2); + if Mixtype(Tmp)==1 + StartP=Doscaling(Tmp); + Ns=3; + end + Tmp=[]; + for I=Ns:N + Tmp=Mixjoin(Tmp,list(varargin(I))); + end + Bdy=Kyoukai(Tmp); + Bdys=list(); + for I=1:length(Bdy) + Tmp1=Bdy(I); + Tmp2=Doscaling(Tmp1); + Bdys=Mixjoin(Bdys,list(Tmp2)) + end; + Bdy=Bdys; + PtnL=[]; + for I=1:length(NaitenL) + Tmp=Op(I,NaitenL); + if type(Tmp)==1 + Tmp1=Naigai(Tmp,Bdy) + PtnL=Mixjoin(PtnL,list(Tmp1)); + else + if type(Tmp)~=10 + disp('Type Error'); + return; + end + Ptn=[]; + for J=1:length(Tmp) + if Op(J,Tmp)=='i' + Ptn=[Ptn,1]; + else + Ptn=[Ptn,0]; + end + end + PtnL=Mixjoin(PtnL,list(Ptn)); + end + end + Call=length(Bdy); + Ptn=zeros(1,Call); + if Member(Ptn,PtnL) + Wn=Doscaling(Framedata()); + Bdy=Mixjoin(Bdy,list(Wn)); + Tmp=[]; + for I=1:Mixlength(PtnL) + Tmp1=[Op(I,PtnL),1]; + Tmp=Mixjoin(Tmp,list(Tmp1)); + end + PtnL=Tmp; + end + V=[cos(Kakudo*%pi/180),sin(Kakudo*%pi/180)]; + Vm=[-sin(Kakudo*%pi/180),cos(Kakudo*%pi/180)]; + Tmp=Op(1,NaitenL); + if type(Tmp)==1 & size(Tmp,2)>1 + Delta=Tmp-StartP; + K=Trunc(Dotprod(Delta,Vm)/Kankaku); + PA=StartP+K*Kankaku*Vm; + P=PA; + Sha=Makeshasen(PtnL,P,V,Bdy); + Sha=Dividegraphics(Sha); + I=1; + while length(Sha)~=0 + for J=1:length(Sha) + Tmp=Op(J,Sha); + Q=Tmp(1,:); + R=Tmp(2,:); + Tmp=Dotprod(Q-P,V)/Kankaku; + K1=ceil(Tmp); + if abs(K1-Tmp)<Eps K1=K1+1; end + Tmp=Dotprod(R-P,V)/Kankaku; + K2=floor(Tmp); + if abs(Tmp-K2)<Eps K2=K2-1; end + for K=K1:K2 + Tmp1=Pointdata(P+K*Kankaku*V) + ShaL=Mixjoin(ShaL,list(Tmp1)); + end + end + P=PA+I*Kankaku*Vm; + Sha=Makeshasen(PtnL,P,V,Bdy); + Sha=Dividegraphics(Sha); + I=I+1; + end + P=PA-Kankaku*Vm; + Sha=Makeshasen(PtnL,P,V,Bdy); + I=2; + while length(Sha)~=0 + for J=1:length(Sha) + Tmp=Op(J,Sha); + Q=Tmp(1,:); + R=Tmp(2,:); + Tmp=Dotprod(Q-P,V)/Kankaku; + K1=ceil(Tmp); + if abs(K1-Tmp)<Eps K1=K1+1; end + Tmp=Dotprod(R-P,V)/Kankaku; + K2=floor(Tmp); + if abs(Tmp-K2)<Eps K2=K2-1; end + for K=K1:K2 + Tmp1=Pointdata(P+K*Kankaku*V) + ShaL=Mixjoin(ShaL,list(Tmp1)); + end + end + P=PA-I*Kankaku*Vm; + Sha=Makeshasen(PtnL,P,V,Bdy); + I=I+1; + end + else + Delta=[Xmn,Ymn]-StartP; + K1=Trunc(Dotprod(Delta,Vm)/Kankaku); + Delta=[Xmx,Ymn]-StartP; + K2=Trunc(Dotprod(Delta,Vm)/Kankaku); + Delta=[Xmx,Ymx]-StartP; + K3=Trunc(Dotprod(Delta,Vm)/Kankaku); + Delta=[Xmn,Ymx]-StartP; + K4=Trunc(Dotprod(Delta,Vm)/Kankaku); + IM=max(K1,K2,K3,K4); + Im=min(K1,K2,K3,K4); + for I=Im:IM + P=StartP+I*Kankaku*Vm; + Sha=Makeshasen(PtnL,P,V,Bdy); + Sha=Dividegraphics(Sha); + if length(Sha)>0 + for J=1:length(Sha) + Tmp=Op(J,Sha); + Q=Tmp(1,:); + R=Tmp(2,:); + Tmp=Dotprod(Q-P,V)/Kankaku; + K1=ceil(Tmp); + if abs(K1-Tmp)<Eps K1=K1+1; end + Tmp=Dotprod(R-P,V)/Kankaku; + K2=floor(Tmp); + if abs(Tmp-K2)<Eps K2=K2-1; end + for K=K1:K2 + Tmp1=Pointdata(P+K*Kankaku*V) + ShaL=Mixjoin(ShaL,list(Tmp1)); + end + end + end + end + end + ShaLs=list(); + for I=1:length(ShaL) + Tmp=ShaL(I); + Tmp1=Unscaling(Tmp); + ShaLs=Mixjoin(ShaLs,Tmp1); + end; + ShaL=ShaLs +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dotprod.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dotprod.bin Binary files differnew file mode 100644 index 00000000..fe44d95c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dotprod.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dotprod.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dotprod.sci new file mode 100755 index 00000000..dc35fde5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dotprod.sci @@ -0,0 +1,6 @@ +// 09.10.03 + +function Out=Dotprod(a,b) + Out=a*b'; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dottedline.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dottedline.bin Binary files differnew file mode 100644 index 00000000..a678c346 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dottedline.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dottedline.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dottedline.sci new file mode 100755 index 00000000..7e4ea8a1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dottedline.sci @@ -0,0 +1,133 @@ +// 08.05.21 +// 08.11.26 +// 09.12.24 (Revised) +// 09.12.29 +// 10.01.02 + +function Dottedline(varargin) + global Wfile FID MilliIn PenThick PenThickInit + Nall=length(varargin); + Nagasa=0.1; + Ookisa=PenThick; + I=Nall; + Tmp=varargin(I); + while type(Tmp)==1 & length(Tmp)==1 + I=I-1; + Tmp=varargin(I); + end + if I==Nall-1 + Nagasa=Nagasa*varargin(Nall); + Nall=Nall-1; + end + if I==Nall-2 + Nagasa=Nagasa*varargin(Nall-1); + Ookisa=round(Ookisa*varargin(Nall)); + Nall=Nall-2; + end + Nagasa=1000/2.54/MilliIn*Nagasa; + for N=1:Nall + Tmp=varargin(N); + Pdata=Flattenlist(Tmp); // + for II=1:Mixlength(Pdata) + Clist=MakeCurves(Op(II,Pdata)); + DinM=Dataindex(Clist); + for n=1:size(DinM,1) + Tmp=DinM(n,:); + Data=Clist(Tmp(1):Tmp(2),:); + Len=0; + Lenlist=[0]; + for I=2:size(Data,1) + Len=Len+Vecnagasa(Data(I,:)-Data(I-1,:)); + Lenlist=[Lenlist,Len]; + end + Lenall=Lenlist(length(Lenlist)); + if Lenall==0 + continue + end + Naga=Nagasa; + Nten=round(Lenall/Naga)+1; + if Nten>1 + Seg=Lenall/(Nten-1); + else + Seg=Lenall; + end + Eps=10^(-6)*Seg; + PPd=[]; + Hajime=1; + for I=0:Nten-1 + Len=Seg*I; + if I>0 + J=Hajime; + while Len>=Lenlist(J)+Eps + J=J+1; + end + Hajime=J-1; + end + T=(Len-Lenlist(Hajime))... + /(Lenlist(Hajime+1)-Lenlist(Hajime)); + P=Data(Hajime,:)+T*(Data(Hajime+1,:)... + -Data(Hajime,:)); + PPd=[PPd;P]; + if I==Nten-1 + if norm(P-Data(1,:))<Eps + continue + end + end + end + Str='\special{pn '+string(Ookisa)+'}%'; + if Wfile=='default' + mprintf('%s\n',Str); + else + mfprintf(FID,'%s\n',Str); + end + for I=1:size(PPd,1) + P=PPd(I,:); + if size(PPd,1)==1 + V=[1,0]; + elseif I==1 + Tmp=PPd(I+1,:)-P; + V=1/norm(Tmp)*Tmp; + elseif I==size(PPd,1) + Tmp= P-PPd(I-1,:); + V=1/norm(Tmp)*Tmp; + else + Tmp1=PPd(I+1,:)-P; + Tmp2=P-PPd(I-1,:); + Tmp3=1/norm(Tmp1)*Tmp1+1/norm(Tmp2)*Tmp2; + V=1/norm(Tmp3)*Tmp3; + end; + Tmp=round(MilliIn*P(1)-1/2*Ookisa*V(1)); + X=string(Tmp); + Tmp=-round(MilliIn*P(2)-1/2*Ookisa*V(2)); + Y=string(Tmp); + Str='\special{pa '+X+' '+Y+'}'; + if Wfile=='default' + mprintf('%s',Str); + else + mfprintf(FID,'%s',Str); + end + Tmp=round(MilliIn*P(1)+1/2*Ookisa*V(1)); + X=string(Tmp); + Tmp=-round(MilliIn*P(2)+1/2*Ookisa*V(2)); + Y=string(Tmp); + Str='\special{pa '+X+' '+Y+'}'; + if Wfile=='default' + mprintf('%s',Str); + mprintf('%s','\special{fp}'); + if modulo(I,2)==0 + mprintf('%s\n','%'); + end; + else + mfprintf(FID,'%s',Str); + mfprintf(FID,'%s','\special{fp}'); + if modulo(I,2)==0 + mfprintf(FID,'%s\n','%'); + end; + end + end + end + end; + end; + Tmp=PenThick/PenThickInit; + Setpen(Tmp); +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dottedlineold.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dottedlineold.bin Binary files differnew file mode 100644 index 00000000..5871fcc7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dottedlineold.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dottedlineold.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dottedlineold.sci new file mode 100755 index 00000000..c4d9b86a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dottedlineold.sci @@ -0,0 +1,115 @@ +// 08.05.21 +// 08.11.26 + +function Dottedline(varargin) + global Wfile FID MilliIn; + Nall=length(varargin); + Nagasa=0.1; + Ookisa=0.02*0.5; + I=Nall; + Tmp=varargin(I); + while type(Tmp)==1 & length(Tmp)==1 + I=I-1; + Tmp=varargin(I); + end + if I==Nall-1 + Nagasa=Nagasa*varargin(Nall); + Nall=Nall-1; + end + if I==Nall-2 + Nagasa=Nagasa*varargin(Nall-1); + Ookisa=Ookisa*varargin(Nall); + Nall=Nall-2; + end + Nagasa=1000/2.54/MilliIn*Nagasa; + Ookisa=1000/2.54/MilliIn*Ookisa; + CL=[]; + Nk=4; + Tmp=Framedata([0,0],Ookisa/2); + CL=Tmp; + for N=1:Nall + Pdata=varargin(N); + if Mixtype(Pdata)==1 + Pdata=MixS(Pdata); + end + for II=1:Mixlength(Pdata) + Clist=MakeCurves(Op(II,Pdata)); + DinM=Dataindex(Clist); + for n=1:size(DinM,1) + Tmp=DinM(n,:); + Data=Clist(Tmp(1):Tmp(2),:); + Len=0; + Lenlist=[0]; + for I=2:size(Data,1) + Len=Len+Vecnagasa(Data(I,:)-Data(I-1,:)); + Lenlist=[Lenlist,Len]; + end + Lenall=Lenlist(length(Lenlist)); + if Lenall==0 + continue + end + Naga=Nagasa; + Nten=round(Lenall/Naga)+1; + if Nten>1 + Seg=Lenall/(Nten-1); + else + Seg=Lenall; + end + Eps=10^(-6)*Seg; + Hajime=1; + for I=0:Nten-1 + Len=Seg*I; + if I>0 + J=Hajime; + while Len>=Lenlist(J)+Eps + J=J+1; + end + Hajime=J-1; + end + T=(Len-Lenlist(Hajime))... + /(Lenlist(Hajime+1)-Lenlist(Hajime)); + P=Data(Hajime,:)+T*(Data(Hajime+1,:)... + -Data(Hajime,:)); + if I==Nten-1 + if Vecnagasa(P-Data(1,:))<Eps + continue + end + end + PL=[]; + for J=1:size(CL,1) + PL=[PL;P+CL(J,:)]; + end + Mojisu=0; + for J=1:size(PL,1) + Q=PL(J,:); + X=round(MilliIn*Q(1)); + X=string(X); + Y=-round(MilliIn*Q(2)); + Y=string(Y); + Str='\special{pa '+X+" "+Y+'}'; + if Wfile=='default' + mprintf('%s',Str); + else + mfprintf(FID,'%s',Str); + end + Mojisu=Mojisu+length(Str); + if Mojisu>80 + if Wfile=='default' + mprintf('%c\n','%'); + else + mfprintf(FID,'%c\n','%'); + end + Mojisu=0; + end + end + Str='\special{sh 1}'+'\special{fp}%' + if Wfile=='default' + mprintf('%s\n',Str); + else + mfprintf(FID,'%s\n',Str); + end + end + end + end + end +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dropnumlistcrv.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dropnumlistcrv.bin Binary files differnew file mode 100644 index 00000000..9777c32b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dropnumlistcrv.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dropnumlistcrv.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dropnumlistcrv.sci new file mode 100755 index 00000000..3a06be00 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Dropnumlistcrv.sci @@ -0,0 +1,34 @@ +// 08.09.10 +// 08.09.15 +// 08.10.10 +// 10.09.03 + +function OutL=Dropnumlistcrv(QdL,Eps) + Eps0=10^(-6); // + if Mixtype(QdL)==1 + PdL=list(QdL); + else + PdL=QdL; + end; + OutL=[]; + for I=1:Mixlength(PdL) + Pd=Op(I,PdL); + PtL=[1]; + P=Pd(1,:); + for K=2:size(Pd,1)-1 // + if norm(P-Pd(K,:))>Eps + PtL=[PtL,K]; + P=Pd(K,:); + end; + end; + // PtL=[PtL,size(Pd,1)]; + K=size(Pd,1) // + if norm(P-Pd(K,:))>Eps0 // + PtL=[PtL,K]; // + end; // + if length(PtL)==1 + PtL=[]; + end; + OutL=Mixadd(OutL,PtL); + end; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Droppoint.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Droppoint.bin Binary files differnew file mode 100644 index 00000000..cf57e835 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Droppoint.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Droppoint.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Droppoint.sci new file mode 100755 index 00000000..84fd6daa --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Droppoint.sci @@ -0,0 +1,28 @@ +// 08.10.07
+// 08.10.27
+// 09.06.02
+
+function AnsL=Droppoint(varargin)
+ Nargs=length(varargin);
+ Curve=varargin(1);
+ Eps=0.02;
+ if Nargs>=2
+ Eps=varargin(2);
+ end;
+ AnsL=[%inf,%inf];
+ for I=1:size(Curve,1)
+ P=Curve(I,:);
+ if P(1)~=%inf
+ Tmp=AnsL(size(AnsL,1),:);
+ if norm(P-Tmp)>Eps
+ AnsL=[AnsL;P];
+ end;
+ else
+ AnsL=[AnsL;%inf,%inf];
+ end;
+ end;
+ AnsL=AnsL(2:size(AnsL,1),:);
+ Tmp=Ptend(Curve);
+ AnsL=[AnsL(1:size(AnsL,1)-1,:);Tmp];
+endfunction;
+
diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Drwline.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Drwline.bin Binary files differnew file mode 100644 index 00000000..071b7070 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Drwline.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Drwline.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Drwline.sci new file mode 100755 index 00000000..2ec407ec --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Drwline.sci @@ -0,0 +1,71 @@ +// 08.05.21
+
+function Drwline(varargin)
+ global Wfile FID MilliIn PenThick PenThickInit;
+ Nall=length(varargin);
+ Thick=0;
+ Tmp=varargin(Nall);
+ if type(Tmp)==1 & length(Tmp)==1
+ Thick=round(varargin(Nall)*PenThickInit);
+ Str='\special{pn '+string(Thick)+'}%';
+ if Wfile=='default'
+ mprintf('%s\n',Str);
+ else
+ mfprintf(FID,'%s\n',Str);
+ end
+ Nall=Nall-1;
+ end
+ for N=1:Nall
+ Tmp=varargin(N);
+ Pdata=Flattenlist(Tmp);
+ for II=1:length(Pdata)
+ Clist=MakeCurves(Op(II,Pdata));
+ DinM=Dataindex(Clist);
+ for n=1:size(DinM,1)
+ Tmp=DinM(n,:);
+ Data=Clist(Tmp(1):Tmp(2),:);
+ Mojisu=0;
+ for I=1:size(Data,1)
+ Tmp=Data(I,:);
+ X=round(MilliIn*Tmp(1));
+ X=string(X);
+ Y=-round(MilliIn*Tmp(2));
+ Y=string(Y);
+ Str='\special{pa '+X+" "+Y+'}';
+ if Wfile=='default'
+ mprintf('%s',Str);
+ else
+ mfprintf(FID,'%s',Str);
+ end
+ Mojisu=Mojisu+length(Str);
+ if Mojisu>80
+ if Wfile=='default'
+ mprintf('%c\n','%');
+ else
+ mfprintf(FID,'%c\n','%');
+ end
+ Mojisu=0;
+ end
+ end
+ if Mojisu~=0
+ if Wfile=='default'
+ mprintf('%s\n','%');
+ else
+ mfprintf(FID,'%s\n','%');
+ end
+ end;
+ if Wfile=='default'
+ mprintf('%s\n','\special{fp}%');
+ else
+ mfprintf(FID,'%s\n','\special{fp}%');
+ end
+ end
+ end
+ end;
+ Str='%';
+ if Thick>0
+ Tmp=PenThick/PenThickInit; // modified
+ Setpen(Tmp);
+ end
+endfunction
+
diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Drwpt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Drwpt.bin Binary files differnew file mode 100644 index 00000000..198c0c88 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Drwpt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Drwpt.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Drwpt.sci new file mode 100755 index 00000000..5cb45c6f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Drwpt.sci @@ -0,0 +1,75 @@ +// +// 08.05.31 +// 09.12.25 +// 10.01.01 + +function Drwpt(varargin) + global Wfile FID TenSize TenSizeInit MilliIn; + Nargs=length(varargin); + if TenSize>TenSizeInit + N=round(6*sqrt(TenSize/TenSizeInit)); + else + N=4 + end + Tmp=varargin(Nargs); + if type(Tmp)==1 + if length(Tmp)>1 + Kosa=1; All=Nargs; + else + Kosa=Tmp; All=Nargs-1; + end; + elseif type(Tmp)==15 + Kosa=1; All=Nargs; + end; + CL=[]; + for J=0:N + Tmp=TenSize*0.5*1000/2.54/MilliIn; + Tmp=Tmp*[cos(%pi/4+J*2*%pi/N),sin(%pi/4+J*2*%pi/N)]; + CL=[CL;Tmp]; + end + for II=1:All + Tmp=varargin(II); + MS=Flattenlist(Tmp); // 11.05.29 + for I=1:length(MS); + P=Op(I,MS); + if InWindow(P)~='i' + continue + end + P=Doscaling(P); + PL=[]; + for J=0:N + PL=[PL;P+CL(J+1,:)]; + end; + Mojisu=0; + for J=1:size(PL,1) + Q=PL(J,:); + X=string(round(MilliIn*Q(1))); + Y=string(-round(MilliIn*Q(2))); + Str='\special{pa '+X+' '+Y+'}' + if Wfile=='default' + mprintf('%s',Str); + else + mfprintf(FID,'%s',Str); + end + Mojisu=Mojisu+length(Str); + if Mojisu>80 + if Wfile=='default' + mprintf('%s\n','%'); + else + mfprintf(FID,'%s\n','%'); + end + Mojisu=0; + end + end; + Str1='\special{sh '+string(Kosa)+'}'; + Str2='\special{fp}%'; + if Wfile=='default' + mprintf('%s',Str1); + mprintf('%s\n',Str2); + else + mfprintf(FID,'%s',Str1); + mfprintf(FID,'%s\n',Str2); + end + end + end +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Drwxy.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Drwxy.bin Binary files differnew file mode 100644 index 00000000..42407401 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Drwxy.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Drwxy.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Drwxy.sci new file mode 100755 index 00000000..b091754f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Drwxy.sci @@ -0,0 +1,17 @@ +function Drwxy(varargin) + global XMIN XMAX YMIN YMAX GENTEN ARROWSIZE + global ZIKU XNAME XPOS YNAME YPOS ONAME OPOS ULEN; + Nargs=length(varargin) + Tmp=mtlb_findstr(ZIKU,'arrow'); + if Tmp~=[] + Arrowline([XMIN,GENTEN(2)],[XMAX,GENTEN(2)],ARROWSIZE); + Arrowline([GENTEN(1),YMIN],[GENTEN(1),YMAX],ARROWSIZE); + else + Drwline(Listplot([XMIN,GENTEN(2)],[XMAX,GENTEN(2)])); + Drwline(Listplot([GENTEN(1),YMIN],[GENTEN(1),YMAX])); + end; + Letter([XMAX,GENTEN(2)],XPOS,XNAME); + Letter([GENTEN(1),YMAX],YPOS,YNAME); + Letter(GENTEN,OPOS,ONAME); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Embed.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Embed.bin Binary files differnew file mode 100644 index 00000000..dd1bf063 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Embed.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Embed.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Embed.sci new file mode 100755 index 00000000..9b67e366 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Embed.sci @@ -0,0 +1,41 @@ +// 09.09.25 +// 09.11.21 +// 09.11.26 + +function Out=Embed(varargin) + Nargs=length(varargin); + Pd3=varargin(1); + if Mixtype(Pd3)==1 + Pd3=list(Pd3); + elseif Mixtype(Pd3)==3 + Tmp=list(); + for I=1:length(Pd3) + Tmp=Mixjoin(Tmp,Pd3(I)); + end; + Pd3=Tmp; + end; + Tmpf=varargin(2); + if type(Tmpf)==10 + Tmp=varargin(3); + Tmp1=strsubst(Tmp,'[','('); + Vstr=strsubst(Tmp1,']',')'); + deff('Z=Tmpfn'+Vstr,'Z='+Tmpf); + else + Tmpfn=Tmpf; + end; + Out=list(); + for I=1:length(Pd3) + PD=Pd3(I); + Ans=[]; + for J=1:size(PD,1) + P=PD(J,:); + Tmp=Tmpfn(P(1),P(2)); + Ans=[Ans;Tmp]; + end; + Out($+1)=Ans; + end; + if length(Out)==1 + Out=Out(1); + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Enclosing.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Enclosing.bin Binary files differnew file mode 100644 index 00000000..d9d9c1bf --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Enclosing.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Enclosing.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Enclosing.sci new file mode 100755 index 00000000..bfc191b9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Enclosing.sci @@ -0,0 +1,23 @@ +// 08.05.31 +// 10.12.04 +// 16.12.05 to make it a closed curve + +function AnsL=Enclosing(varargin) + global MilliIn; + Eps=10^(-7); // 12.05 + Nargs=length(varargin); + P=varargin(1); + if Mixtype(P)==2 + Tmp=Op(1,P); + if type(Tmp)~=1 | length(Tmp)~=1 + AnsL=EnclosingS(P,varargin(2:Nargs)); + AnsL=Joincrvs(AnsL) // 10.12.04 + end + end; + Tmp1=Op(1,AnsL); + Tmp2=Op(size(AnsL,1),AnsL); + if norm(Tmp2-Tmp1)>Eps then // 12.05 + AnsL=[AnsL;Tmp1]; + end; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/EnclosingS.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/EnclosingS.bin Binary files differnew file mode 100644 index 00000000..6e120c8d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/EnclosingS.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/EnclosingS.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/EnclosingS.sci new file mode 100755 index 00000000..cded7ef2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/EnclosingS.sci @@ -0,0 +1,126 @@ +// 08.05.31 +// 08.11.12 +// 09.10.12 +// 09.10.14 +// 15.04.10 + +function AnsL=EnclosingS(varargin) + global MilliIn; + Nargs=length(varargin); + AnsL=[]; + PdataL=varargin(1); + Nall=length(PdataL); + Eps=10^(-3); + EEps=0.1; + S=[]; + Flg=0; + for I=2:Nargs + Tmp=varargin(I); + if type(Tmp)==1 & size(Tmp,1)==1 & size(Tmp,2)>1 + S=Tmp; + end + if type(Tmp)==1 & length(Tmp)==1 + if Flg==0 + Eps=Tmp; + Flg=Flg+1 + else + EEps=Tmp + end + end + end + F=Op(1,PdataL); G=Op(Nall,PdataL); + KL=IntersectcrvsPp(F,G); + if length(KL)==1 + Tmp=Op(1,KL); + P=Op(1,Tmp); + T1=Op(2,Tmp); + end + if length(KL)==0 + if Numptcrv(F)>Numptcrv(G) + Tmp=Nearestpt(F,G); + P=Op(1,Tmp); + T1=Op(2,Tmp); + else + Tmp=Nearestpt(G,F); + P=Op(3,Tmp); + T1=Op(4,Tmp); + end + end + if length(KL)>1 // 15.04.10 + if S==[] + disp('No Start Point'); + return + end; + Tmp=Op(1,KL); + P=Op(1,Tmp); + T1=Op(2,Tmp); + Tmp=norm(P-S); + for I=2:length(KL) + Tmp1=Op(1,Op(I,KL)); + Tmp2=norm(Tmp1-S); + if Tmp2<Tmp + P=Tmp1; + T1=Op(2,Op(I,KL)); + Tmp=Tmp2; + end + end + end + S=P; + AnsL=[]; + for N=1:Nall + F=Op(N,PdataL); + if N>1 P=Q;end + if N==Nall + Q=S; + else + Flg=0; + G=Op(N+1,PdataL); + KL=IntersectcrvsPp(G,F); + if length(KL)==1 + Tmp=Op(1,KL); + Q=Op(1,Tmp); + T3=Op(2,Tmp); + Flg=10; + end + if length(KL)==0 Flg=1; end + if length(KL)>=2 // Maple bug? + Tmp1=Op(1,Op(1,KL)); + Tmp2=Op(1,Op(2,KL)); + Tmp=norm(Tmp1-Tmp2); + if Tmp<Eps*10 Flg=1; end + end + if Flg==1 + if Numptcrv(F)>Numptcrv(G) + Tmp=Nearestpt(F,G); + Q=Op(1,Tmp); + T3=Op(4,Tmp); + Flg=10; + else + Tmp=Nearestpt(G,F); + Q=Op(3,Tmp); + T3=Op(2,Tmp); + Flg=10; + end + end + if Flg<10 + T2=%inf; + for I=1:length(KL) + Dt=Op(I,KL); + Tmp1=Op(1,Dt); + Tmp=Op(3,Dt); + Tmp2=Paramoncrv(Tmp1,Tmp,F); + Tmp3=Op(2,Dt); + if (Tmp2>T1+Eps) & (Tmp2<T2+Eps) + Q=Tmp1; + T2=Tmp2; + T3=Tmp3; + end + end + end + end + Tmp=Partcrv(P,Q,F); + T1=T3; + AnsL=Mixadd(AnsL,Tmp); + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Endpicture.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Endpicture.bin Binary files differnew file mode 100644 index 00000000..36e0755f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Endpicture.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Endpicture.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Endpicture.sci new file mode 100755 index 00000000..ff4a3c43 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Endpicture.sci @@ -0,0 +1,11 @@ +// 08.05.22 + +function Endpicture(varargin) + if length(varargin)==0 + Flg=1 + else + Flg=varargin(1); + end + Closepicture(Flg) +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Evlptablepara.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Evlptablepara.bin Binary files differnew file mode 100644 index 00000000..027661d5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Evlptablepara.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Evlptablepara.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Evlptablepara.sci new file mode 100755 index 00000000..b9c86eef --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Evlptablepara.sci @@ -0,0 +1,79 @@ +// 08.09.10 +// 13.10.21 ( __ added to varibles ) +// 17.05.21 Mdv, Ndv changed to division number + +function [Zval__,Xval__,Yval__]=Evlptablepara(MS__) + Nargs__=Mixlength(MS__); + Eps__=10^(-3); + Tmp__=Mixop(1,MS__); + FdL__=Fullformfunc(Tmp__); + Mdv=50; + Ndv__=50; + if Nargs__>=2 + Tmp__=Mixop(2,MS__); + if Mixtype(Tmp__)~=1 Tmp__=Mixop(1,Tmp__); end; + if length(Tmp__)>1 + Mdv__=Tmp__(1,1); + Ndv__=Tmp__(1,2); + else + Mdv__=Tmp__ + if Nargs__==2 + Ndv__=Mdv__ + else + Tmp1__=Mixop(3,MS__); + if type(Tmp1__)==1 & length(Tmp1__)==1 + Ndv__=Tmp1__; + else + Ndv__=Mdv__; + end + end + end + end; + Tmp__=Mixop(5,FdL__); + K__=mtlb_findstr(Tmp__,'='); + Uname__=part(Tmp__,1:K__-1); + Urange__=evstr(part(Tmp__,K__+1:length(Tmp__))); + Tmp__=Mixop(6,FdL__); + K__=mtlb_findstr(Tmp__,'='); + Vname__=part(Tmp__,1:K__-1); + Vrange__=evstr(part(Tmp__,K__+1:length(Tmp__))); + U1__=Urange__(1); U2__=Urange__(2); + V1__=Vrange__(1); V2__=Vrange__(2); + Du__=(U2__-U1__)/(Mdv__); //17.05.21 + Dv__=(V2__-V1__)/(Ndv__); //17.05.21 + Xyzstr__=[Mixop(2,FdL__),Mixop(3,FdL__),Mixop(4,FdL__)]; + I__=1; + Zval__=[]; + for v__=V1__:Dv__:V2__ + v1__=v__-Eps__/2; v2__=v__+Eps__/2; + ZuL__=[]; + for u__=U1__:Du__:U2__; + u1__=u__-Eps__/2; u2__=u__+Eps__/2; + Tmpv__=strsubst(Xyzstr__,Vname__,'v__'); + Tmp__=strsubst(Tmpv__,Uname__,'u1__'); + P1__=evstr(Tmp__); + Tmp__=strsubst(Tmpv__,Uname__,'u2__'); + P2__=evstr(Tmp__); + Tmp1__=Parapt(P1__); + Tmp2__=Parapt(P2__); + Dxu__=(Tmp2__(1)-Tmp1__(1))/Eps__; + Dyu__=(Tmp2__(2)-Tmp1__(2))/Eps__; + u1__=u__-Eps__/2; u2__=u__+Eps__/2; + Tmpu__=strsubst(Xyzstr__,Uname__,'u__'); + Tmp__=strsubst(Tmpu__,Vname__,'v1__'); + P1__=evstr(Tmp__); + Tmp__=strsubst(Tmpu__,Vname__,'v2__'); + P2__=evstr(Tmp__); + Tmp1__=Parapt(P1__); + Tmp2__=Parapt(P2__); + Dxv__=(Tmp2__(1)-Tmp1__(1))/Eps__; + Dyv__=(Tmp2__(2)-Tmp1__(2))/Eps__; + Tmp__=Dxu__*Dyv__-Dxv__*Dyu__; + ZuL__=[ZuL__,Tmp__]; + end; + Zval__=[Zval__;ZuL__]; + end; + Yval__=V1__:Dv__:V2__; + Xval__=U1__:Du__:U2__; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Evlptablepers.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Evlptablepers.bin Binary files differnew file mode 100644 index 00000000..d5745d92 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Evlptablepers.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Evlptablepers.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Evlptablepers.sci new file mode 100755 index 00000000..15ddd0a8 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Evlptablepers.sci @@ -0,0 +1,77 @@ +// 08.09.21 +// 13.11.01 ( __ added to varibles ) + +function [Zval__,Xval__,Yval__]=Evlptablepers(MS__) + Nargs__=Mixlength(MS__); + Eps__=10^(-3); + Tmp__=Mixop(1,MS__); + FdL__=Fullformfunc(Tmp__); + Mdv__=50; + Ndv__=50; + if Nargs__>=2 + Tmp__=Mixop(2,MS__); + if Mixtype(Tmp__)~=1 Tmp__=Mixop(1,Tmp__); end; + if length(Tmp__)>1 + Mdv__=Tmp__(1,1); + Ndv__=Tmp__(1,2); + else + Mdv__=Tmp__ + if Nargs__==2 + Ndv__=Mdv__ + else + Tmp__1=Mixop(3,MS__); + if type(Tmp__1)==1 & length(Tmp__1)==1 + Ndv__=Tmp__1; + else + Ndv__=Mdv__; + end + end + end + end; + Tmp__=Mixop(5,FdL__); + K__=mtlb_findstr(Tmp__,'='); + Uname__=part(Tmp__,1:K__-1); + Urange__=evstr(part(Tmp__,K__+1:length(Tmp__))); + Tmp__=Mixop(6,FdL__); + K__=mtlb_findstr(Tmp__,'='); + Vname__=part(Tmp__,1:K__-1); + Vrange__=evstr(part(Tmp__,K__+1:length(Tmp__))); + U1__=Urange__(1); U2__=Urange__(2); + V1__=Vrange__(1); V2__=Vrange__(2); + Du__=(U2__-U1__)/(Mdv__-1); + Dv__=(V2__-V1__)/(Ndv__-1); + Xyzstr__=[Mixop(2,FdL__),Mixop(3,FdL__),Mixop(4,FdL__)]; + I__=1; + Zval__=[]; + for v__=V1__:Dv__:V2__ + v__1=v__-Eps__/2; v__2=v__+Eps__/2; + ZuL__=[]; + for u__=U1__:Du__:U2__; + u__1=u__-Eps__/2; u__2=u__+Eps__/2; + Tmp__v=strsubst(Xyzstr__,Vname__,'v__'); + Tmp__=strsubst(Tmp__v,Uname__,'u__1'); + P1__=evstr(Tmp__); + Tmp__=strsubst(Tmp__v,Uname__,'u__2'); + P2__=evstr(Tmp__); + Tmp__1=Perspt(P1__); + Tmp__2=Perspt(P2__); + Dxu__=(Tmp__2(1)-Tmp__1(1))/Eps__; + Dyu__=(Tmp__2(2)-Tmp__1(2))/Eps__; + u__1=u__-Eps__/2; u__2=u__+Eps__/2; + Tmp__u=strsubst(Xyzstr__,Uname__,'u__'); + Tmp__=strsubst(Tmp__u,Vname__,'v__1'); + P1__=evstr(Tmp__); + Tmp__=strsubst(Tmp__u,Vname__,'v__2'); + P2__=evstr(Tmp__); + Tmp__1=Perspt(P1__); + Tmp__2=Perspt(P2__); + Dxv__=(Tmp__2(1)-Tmp__1(1))/Eps__; + Dyv__=(Tmp__2(2)-Tmp__1(2))/Eps__; + Tmp__=Dxu__*Dyv__-Dxv__*Dyu__; + ZuL__=[ZuL__,Tmp__]; + end; + Zval__=[Zval__;ZuL__]; + end; + Yval__=V1__:Dv__:V2__; + Xval__=U1__:Du__:U2__; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Execmd.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Execmd.bin Binary files differnew file mode 100644 index 00000000..a18f4f27 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Execmd.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Execmd.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Execmd.sci new file mode 100644 index 00000000..2a4d1491 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Execmd.sci @@ -0,0 +1,8 @@ +// 10.01.16 +// 10.02.24 + +function Execmd(StrL) + for I=1:length(StrL) + execstr(Op(I,StrL)) + end; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Expr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Expr.bin Binary files differnew file mode 100644 index 00000000..b714247e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Expr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Expr.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Expr.sci new file mode 100755 index 00000000..5b9df24b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Expr.sci @@ -0,0 +1,100 @@ +// +// 09.12.25 + +function Expr(varargin) + global Wfile FID MEMORI; + Nargs=length(varargin); + for I=1:3:Nargs + Tmp=varargin(I); + P=Doscaling(Tmp); + X=P(1); + Y=P(2); + Houkou=varargin(I+1); + Mojiretu='$'+varargin(I+2)+'$'; + Hset=Houkou; + Vhoko='c'; + if mtlb_findstr(Hset,'n')~=[] + Vhoko='n'; Y=Y+MEMORI; + end + if mtlb_findstr(Hset,'s')~=[] + Vhoko='s'; Y=Y-MEMORI; + end + Hhoko='c'; + if mtlb_findstr(Hset,'e')~=[] + Hhoko='e'; X=X+MEMORI; + end + if mtlb_findstr(Hset,'w')~=[] + Hhoko='w'; X=X-MEMORI; + end + Hoko=Vhoko+Hhoko; + Suu='+-.0123456789'; + SuuL=Suu; + Hcode=ascii(Houkou); + J=1; Dstr=''; + while J<=length(Houkou) + Tmp=char(Hcode(J)); + if mtlb_findstr(SuuL,Tmp)~=[] + if Dstr=='' + Hk=char(Hcode(J-1)); + end + Dstr=Dstr+Tmp; + else + if Dstr~='' + Nmbr=msscanf(Dstr,'%f'); + D=Nmbr*MEMORI; + if Hk=='n' + Y=Y+D; + end + if Hk=='s' + Y=Y-D; + end + if Hk=='e' + X=X+D; + end + if Hk=='w' + X=X-D; + end + Dstr=''; + end + end + J=J+1; + end + if Dstr~='' + Nmbr=msscanf(Dstr,'%f'); + D=Nmbr*MEMORI; + if Hk=='n' + Y=Y+D; + end + if Hk=='s' + Y=Y-D; + end + if Hk=='e' + X=X+D; + end + if Hk=='w' + X=X-D; + end + end + CalcWidth(Hoko,Mojiretu); + CalcHeight(Hoko,Mojiretu); + Tmp='){\hspace*{\Width}'; + Str=Tmp+'\raisebox{\Height}{'+Mojiretu+'}}'; + if Wfile=='default' + mprintf('%s','\put('); + mprintf('%6.4f%s%6.4f',X,',',Y); + mprintf('%s%s\n',Str,'%'); + mprintf('%s\n','%'); + else + mfprintf(FID,'%s','\put('); + mfprintf(FID,'%6.4f%s%6.4f',X,',',Y); + mfprintf(FID,'%s%s\n',Str,'%'); + mfprintf(FID,'%s\n','%'); + end + if Wfile=='default' + mprintf('%s\n','%'); + else + mfprintf(FID,'%s\n','%'); + end + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Exprrot.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Exprrot.bin Binary files differnew file mode 100644 index 00000000..ea7beb15 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Exprrot.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Exprrot.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Exprrot.sci new file mode 100755 index 00000000..d51dfa91 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Exprrot.sci @@ -0,0 +1,36 @@ +// 08.05.31 +// 08.08.24 +// 09.12.25 + +function Exprrot(varargin) + global MEMORI; + P=varargin(1); + V=varargin(2); N=3; + P=Doscaling(P); + V=Doscaling(V); + Tmov=0; + Tmp=varargin(N); + if type(Tmp)==1 + Tmov=Tmp; N=N+1; + end + Nmov=0; + Tmp=varargin(N); + if type(Tmp)==1 then + Nmov=Tmp; N=N+1; + end + Mojiretu='$'+varargin(N)+'$'; + Tv=1/norm(V)*V; + Nv=[-Tv(2),Tv(1)]; + P=P+MEMORI*Tmov*Tv+MEMORI*Nmov*Nv; + Tmp=acos(V(1)/norm(V)); + Theta=round(Tmp*180/%pi); + if V(2)>=0 + Units=''; + else + Units='units=-360,'; + end + Tmp='\rotatebox['+Units+'origin=c]{'+string(Theta); + Tmp=Tmp+'}{'+Mojiretu+'}'; + Letter(P,"c",Tmp); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Faceremovaldata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Faceremovaldata.bin Binary files differnew file mode 100644 index 00000000..9c11aaad --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Faceremovaldata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Faceremovaldata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Faceremovaldata.sci new file mode 100755 index 00000000..ae0bea54 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Faceremovaldata.sci @@ -0,0 +1,78 @@ +// 09.10.29 +// 10.02.07 debugged + +function NohiddenL=Faceremovaldata(FL,CLadd,PT) + global PHHIDDENDATA VELNO VELHI; + NohiddenL=list(); + HiddenL=list(); + Eps=10^(-4); + if mtlb_findstr(PT,'para')~=[] + Ptype=1; //para + else + Ptype=-1; //pers + end; + if length(CLadd)>0 + if type(CLadd)==1 + C=list(); + if size(CLadd,1)>1 + for I=1:size(CLadd,1) + C($+1)=CLadd(I,:); + end; + else + for I=1:3:size(CLadd,2) + C($+1)=CLadd(1,I:I+2); + end; + end; + CrvL=list(C); + elseif type(CLadd(1))==1 + CrvL=list(); + for J=1:length(CLadd)// + Ctmp=CLadd(J); + C=list(); + if size(Ctmp,1)>1 + for I=1:size(Ctmp,1) + C($+1)=Ctmp(I,:); + end; + else + for I=1:3:size(Ctmp,2) + C($+1)=Ctmp(1,I:I+2); + end; + end; + CrvL($+1)=C; + end; + else + CrvL=CLadd; + end; + else + CrvL=list(); + end; + VELNO=list(); + for I=1:length(CrvL) + Tmp=CrvL(I); + for J=1:length(Tmp)-1 + Edge=list(Tmp(J),Tmp(J+1)); + Ntmp=length(VELNO); // + VELNO(Ntmp+1)=list(Edge,0,Ntmp+1); // + end; + end; + VELHI=list(); + Out=MakeveLfaceL(FL); + FaceL=Out(2); + for Nf=1:length(FaceL) + Face=FaceL(Nf); + Menkakusi2(Face,Nf,Ptype); + end; + for I=1:length(VELNO) + Edge=Op(1,VELNO(I)); + if norm(Edge(1)-Edge(2))>Eps + NohiddenL($+1)=Spaceline(Edge); + end; + end; + for I=1:length(VELHI) + Edge=Op(1,VELHI(I)); + if norm(Edge(1)-Edge(2))>Eps + HiddenL($+1)=Spaceline(Edge); + end; + end; + PHHIDDENDATA=HiddenL; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Faceremovaldata0.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Faceremovaldata0.bin Binary files differnew file mode 100644 index 00000000..d32b2b3d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Faceremovaldata0.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Faceremovaldata0.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Faceremovaldata0.sci new file mode 100755 index 00000000..7dc8bef1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Faceremovaldata0.sci @@ -0,0 +1,81 @@ +// NEW +// Faceremovaldata +// 09.10.24 +// 09.10.26 +// 09.10.27 + +function NohiddenL=Faceremovaldata(FL,CLadd,PT) + global PHHIDDENDATA VELNO VELHI; + NohiddenL=list(); + HiddenL=list(); + Eps=10^(-4); + if mtlb_findstr(PT,'para')~=[] + Ptype=1; //para + else + Ptype=-1; //pers + end; + if length(CLadd)>0 + if type(CLadd)==1 + C=list(); + if size(CLadd,1)>1 + for I=1:size(CLadd,1) + C($+1)=CLadd(I,:); + end; + else + for I=1:3:size(CLadd,2) + C($+1)=CLadd(1,I:I+2); + end; + end; + CrvL=list(C); + elseif type(CLadd(1))==1 + CrvL=list(); + for J=1:length(CL) + Ctmp=CLadd(J); + C=list(); + if size(Ctmp,1)>1 + for I=1:size(Ctmp,1) + C($+1)=Ctmp(I,:); + end; + else + for I=1:3:size(Ctmp,2) + C($+1)=Ctmp(1,I:I+2); + end; + end; + CrvL($+1)=C; + end; + else + CrvL=CLadd; + end; + else + CrvL=list(); + end; + VELNO=list(); + for I=1:length(CrvL) + Tmp=CrvL(I); + for J=1:length(Tmp)-1 + Edge=list(Tmp(J),Tmp(J+1)); + VELNO($+1)=list(Edge,0); + end; + end; + VELHI=list(); + Out=MakeveLfaceL(FL); + FaceL=Out(2); + for Nf=1:length(FaceL) + Face=FaceL(Nf); + Menkakusi(Face,Nf,Ptype); + end; + for I=1:length(VELNO) + Edge=Op(1,VELNO(I)); + if norm(Edge(1)-Edge(2))>Eps + NohiddenL($+1)=Spaceline(Edge); + end; + end; + for I=1:length(VELHI) + Edge=Op(1,VELHI(I)); + if norm(Edge(1)-Edge(2))>Eps + HiddenL($+1)=Spaceline(Edge); + end; + end; + PHHIDDENDATA=HiddenL; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Facesdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Facesdata.bin Binary files differnew file mode 100644 index 00000000..10b573ba --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Facesdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Facesdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Facesdata.sci new file mode 100755 index 00000000..0ed2f249 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Facesdata.sci @@ -0,0 +1,154 @@ +///////// +// 09.10.29 +// 11.01.13 (HiddenL) remodified 110122 +// 13.03.30 (HiddenL) debugged 140330 + +function NohiddenL=Facesdata(varargin) + global PHHIDDENDATA VELNO VELHI; + Nargs=length(varargin); + FL=varargin(1); + PT=varargin($); + if mtlb_findstr(PT,'para')~=[] + Ptype=1; //para + else + Ptype=-1; //pers + end; + if Nargs==2 + CLadd=list(); + else + CLadd=varargin(2); + end; + NohiddenL=list(); + HiddenL=list(); + Eps=10^(-4); + if length(CLadd)>0 + if type(CLadd)==1 + C=list(); + if size(CLadd,1)>1 + for I=1:size(CLadd,1) + C($+1)=CLadd(I,:); + end; + else + for I=1:3:size(CLadd,2) + C($+1)=CLadd(1,I:I+2); + end; + end; + CrvL=list(C); + elseif type(CLadd(1))==1 + CrvL=list(); + for J=1:length(CL) + Ctmp=CLadd(J); + C=list(); + if size(Ctmp,1)>1 + for I=1:size(Ctmp,1) + C($+1)=Ctmp(I,:); + end; + else + for I=1:3:size(Ctmp,2) + C($+1)=Ctmp(1,I:I+2); + end; + end; + CrvL($+1)=C; + end; + else + CrvL=CLadd; + end; + else + CrvL=list(); + end; + Out=MakeveLfaceL(FL); + VELNO=Out(1); + VELHI=list(); + for I=1:length(CrvL) + Tmp=CrvL(I); + for J=1:length(Tmp)-1 + Edge=list(Tmp(J),Tmp(J+1)); + Ntmp=length(VELNO); // + VELNO(Ntmp+1)=list(Edge,0,Ntmp+1); // + end; + end; + FaceL=Out(2); + if mtlb_findstr(PT,'raw')==[] + for Nf=1:length(FaceL) + Face=FaceL(Nf); + Menkakusi2(Face,Nf,Ptype); + end; + end; + for I=1:length(VELNO) + Edge=Op(1,VELNO(I)); + if norm(Edge(1)-Edge(2))>Eps + NohiddenL($+1)=Spaceline(Edge); + end; + end; + EdgeL=list(); // from 13.03.30 + for K=1:length(VELHI) + Edge=Op(1,VELHI(K)); + P=Edge(1); Q=Edge(2); + if norm(P-Q)>Eps then + EdgeL($+1)=Edge; + end + end + for K=1:length(EdgeL) + Edge=EdgeL(K); // + P=Edge(1); Q=Edge(2); + Cflg=0; + for J=K+1:length(EdgeL) + Ej=EdgeL(J); // + Pj=Ej(1); Qj=Ej(2); + if norm(Crossprod(Q-P,Qj-Pj))>Eps then + continue + end + if norm(Q-Pj)<Eps then + EdgeL(J)=list(P,Qj); + Cflg=1; + break; + end + if norm(P-Qj)<Eps then + EdgeL(J)=list(Q,Pj) + Cflg=1; + break; + end; + end + if Cflg==0 then + HiddenL($+1)=Spaceline(Edge); + end; + end; // upto 14.03.30 + +// L=1:length(VELHI); // from 11.01.13 +// while length(L)>0 +// Lr=[]; +// Edge=Op(1,VELHI(L(1))); // +// P=Edge(1); +// Q=Edge(2); +// +// disp([293,P,Q]) +// +// if norm(P-Q)>Eps +// for J=2:length(L) +// Rflg=0; +// Ej=Op(1,VELHI(L(J))); // +// Pj=Ej(1); +// Qj=Ej(2); +// if norm(Crossprod(Q-P,Qj-Pj))>Eps +// Lr=[Lr,J]; +// continue; +// end; +// if norm(Q-Pj)<Eps +// Edge(2)=Qj; +// Rflg=1; +// elseif norm(P-Qj)<Eps +// Edge(1)=Pj; +// Rflg=1; +// end; +// if Rflg==0 +// Lr=[Lr,J]; +// end; +// end; +// else +// Lr=L(2:length(L)); +// end; +// L=Lr; // upto 11.01.13 +// HiddenL($+1)=Spaceline(Edge); +// end; + PHHIDDENDATA=HiddenL; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Facesdata0.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Facesdata0.bin Binary files differnew file mode 100644 index 00000000..8af8ea49 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Facesdata0.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Facesdata0.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Facesdata0.sci new file mode 100755 index 00000000..c300cf6e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Facesdata0.sci @@ -0,0 +1,88 @@ +// 09.10.27 + +function NohiddenL=Facesdata(varargin) + global PHHIDDENDATA VELNO VELHI; + Nargs=length(varargin); + FL=varargin(1); + PT=varargin($); + if mtlb_findstr(PT,'para')~=[] + Ptype=1; //para + else + Ptype=-1; //pers + end; + if Nargs==2 + CLadd=list(); + else + CLadd=varargin(2); + end; + NohiddenL=list(); + HiddenL=list(); + Eps=10^(-4); + if length(CLadd)>0 + if type(CLadd)==1 + C=list(); + if size(CLadd,1)>1 + for I=1:size(CLadd,1) + C($+1)=CLadd(I,:); + end; + else + for I=1:3:size(CLadd,2) + C($+1)=CLadd(1,I:I+2); + end; + end; + CrvL=list(C); + elseif type(CLadd(1))==1 + CrvL=list(); + for J=1:length(CL) + Ctmp=CLadd(J); + C=list(); + if size(Ctmp,1)>1 + for I=1:size(Ctmp,1) + C($+1)=Ctmp(I,:); + end; + else + for I=1:3:size(Ctmp,2) + C($+1)=Ctmp(1,I:I+2); + end; + end; + CrvL($+1)=C; + end; + else + CrvL=CLadd; + end; + else + CrvL=list(); + end; + Out=MakeveLfaceL(FL); + VELNO=Out(1); + VELHI=list(); + for I=1:length(CrvL) + Tmp=CrvL(I); + for J=1:length(Tmp)-1 + Edge=list(Tmp(J),Tmp(J+1)); + VELNO($+1)=list(Edge,0); + end; + end; + FaceL=Out(2); + if mtlb_findstr(PT,'raw')==[] + for Nf=1:length(FaceL) + Face=FaceL(Nf); + Menkakusi(Face,Nf,Ptype); + end; + end; + for I=1:length(VELNO) + Edge=Op(1,VELNO(I)); + if norm(Edge(1)-Edge(2))>Eps + NohiddenL($+1)=Spaceline(Edge); + end; + end; + for I=1:length(VELHI) + Edge=Op(1,VELHI(I)); + if norm(Edge(1)-Edge(2))>Eps + HiddenL($+1)=Spaceline(Edge); + end; + end; + PHHIDDENDATA=HiddenL; +endfunction + + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Findcell.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Findcell.bin Binary files differnew file mode 100644 index 00000000..513db3d6 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Findcell.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Findcell.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Findcell.sci new file mode 100755 index 00000000..062fcc5c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Findcell.sci @@ -0,0 +1,127 @@ +// 09.11.26 +// 09.12.06 +// 09.12.14 +// 10.01.12 +// 10.01.13 +// 10.01.14 + +function Out=Findcell(varargin)//TbL,Nrg,Mrg + Nargs=length(varargin); + TbL=varargin(1); + Ag=varargin(2); + Alpha='-ABCDEFGHIJKLMNOPQRSTUVWXYZ'; + if type(Ag)==10 + Clm=[]; + Rstr=''; + for I=1:length(Ag) + C=part(Ag,I:I); + Tmp=ascii(C); + if Tmp>=96 + C=char(Tmp-32); + end; + Tmp=mtlb_findstr(C,Alpha) + if length(Tmp)>0 + Clm=[Clm,Tmp-1]; + else + Rstr=Rstr+C; + end; + end; + Nrg=0; + for I=length(Clm):-1:1 + Tmp=Clm(I); + Tmp1=length(Clm)-I; + Nrg=Nrg+Tmp*26^Tmp1; + end; + Mrg=eval(Rstr); + if Nargs>=3 + Ag=varargin(3); + Clm=[]; + Rstr=''; + for I=1:length(Ag) + C=part(Ag,I:I); + Tmp=ascii(C); + if Tmp>=96 + C=char(Tmp-32); + end; + Tmp=mtlb_findstr(C,Alpha) + if length(Tmp)>0 + Clm=[Clm,Tmp]; + else + Rstr=Rstr+C; + end; + end; + Nrg2=0; + for I=length(Clm):-1:1 + Tmp=Clm(I); + Tmp1=length(Clm)-I; + Nrg2=Nrg2+Tmp*26^Tmp1; + end; + Nrg=[Nrg,Nrg2]; + Mrg=[Mrg,eval(Rstr)]; + end; + else + Nrg=varargin(2); + Mrg=varargin(3); + end; + if length(Mrg)==1 + m1=Mrg; m2=m1+1; + else + m1=Mrg(1); m2=Mrg(2); + end; + if length(Nrg)==1 + n1=Nrg; n2=n1+1; + else + n1=Nrg(1); n2=Nrg(2); + end; + n1=n1+1; n2=n2+1; + m1=m1+1; m2=m2+1; + Hind=TbL(2); + Vind=TbL(3); + HL=Mixsub(TbL(2),TbL(1)); + Tmp1=Op(1,TbL(4)); + Tmp2=Op(2,TbL(4)); + HL=Mixjoin(list(Tmp1),HL,list(Tmp2)); + VL=Mixsub(TbL(3),TbL(1)); + Tmp1=Op(1,TbL(5)); + Tmp2=Op(2,TbL(5)); + VL=Mixjoin(list(Tmp1),VL,list(Tmp2)); + Tmp=TbL(6); + Tmp1=Listplot([Ptsw(Tmp),Ptnw(Tmp)]); + Tmp2=Listplot([Ptse(Tmp),Ptne(Tmp)]); + HL=Mixjoin(list(Tmp1),HL,list(Tmp2)); + Tmp1=Listplot([Ptnw(Tmp),Ptne(Tmp)]); + Tmp2=Listplot([Ptsw(Tmp),Ptse(Tmp)]); + VL=Mixjoin(list(Tmp1),VL,list(Tmp2)); + Tmp=HL(n1); + if type(Tmp)==1 + H1=Tmp(1,1); + else + Tmp1=Tmp(1); + H1=Tmp1(1,1); + end; + Tmp=HL(n2); + if type(Tmp)==1 + H2=Tmp(1,1); + else + Tmp1=Tmp(1); + H2=Tmp1(1,1); + end; + Tmp=VL(m1); + if type(Tmp)==1 + V1=Tmp(1,2); + else + Tmp1=Tmp(1); + V1=Tmp1(1,2); + end; + Tmp=VL(m2); + if type(Tmp)==1 + V2=Tmp(1,2); + else + Tmp1=Tmp(1); + V2=Tmp1(1,2); + end; + Pt=[(H1+H2)/2,(V1+V2)/2]; + High=(V1-V2)/2; + Wide=(H2-H1)/2; + Out=list(Pt,Wide,High); +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Flattenlist.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Flattenlist.bin Binary files differnew file mode 100644 index 00000000..54c4fa4b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Flattenlist.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Flattenlist.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Flattenlist.sci new file mode 100644 index 00000000..903679ab --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Flattenlist.sci @@ -0,0 +1,17 @@ +// 10.11.13 + +function Out=Flattenlist(varargin) + Out=list(); + for N=1:length(varargin) + D=varargin(N); + if type(D)~=15 + Out($+1)=D; + else + for I=1:length(D) + Ds=D(I); + Tmp=Flattenlist(Ds); + Out=lstcat(Out,Tmp); + end; + end; + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Fontsize.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Fontsize.bin Binary files differnew file mode 100644 index 00000000..e1a1d3b6 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Fontsize.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Fontsize.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Fontsize.sci new file mode 100755 index 00000000..218b599f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Fontsize.sci @@ -0,0 +1,54 @@ +function Fontsize(Ookisa) + global Wfile FID; + Str='%'; + Ucode=ascii(Ookisa); + S=char(Ucode(1)); + if S=='n' + Str='\normalsize%'; + end + if S=='s' + if length(Ucode)==1 + Tmp=''; + else + Tmp=char(Ucode(2)); + end + if Tmp=='s' + Str='\scriptsize%'; + else + Str='\small%'; + end + end + if S=='f' + Str='\footnotesize%'; + end + if S=='t' + Str='\tiny%'; + end + if S=='l' + Str='\large%'; + end + if S=='L' + if length(Ucode)==1 + Tmp='a'; + else + Tmp=char(Ucode(2)); + end + if Tmp=='a' + Str='\Large%'; + else + Str='\LARGE%'; + end + end + if S=='h' + Str='\huge%'; + end + if S=='H' + Str='\Huge%'; + end + if Wfile=='default' + mprintf('%s\n',Str); + else + mfprintf(FID,'%s\n',Str); + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Fouriercoeff.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Fouriercoeff.bin Binary files differnew file mode 100644 index 00000000..de2203fe --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Fouriercoeff.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Fouriercoeff.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Fouriercoeff.sci new file mode 100755 index 00000000..af259244 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Fouriercoeff.sci @@ -0,0 +1,21 @@ +// 09.03.13 + +function Out=Fouriercoeff(Fn,T,Ch,K) + Eps=10^(-5); + L=T/2; + Tmp1='Out=FUNC(x)'; + if Ch=='c' + Tmp2='Out=Fn(10*L*x)*cos('+string(K)+'*%pi*x*10)'; + else + Tmp2='Out=Fn(10*L*x)*sin('+string(K)+'*%pi*x*10)'; + end; + deff(Tmp1,Tmp2); + Out=10*intg(-0.1,0.1,FUNC); + if K==0 + Out=Out/2; + end; + if abs(Out)<Eps + Out=0; + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/FouriercoeffL.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/FouriercoeffL.bin Binary files differnew file mode 100644 index 00000000..cc5d39c4 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/FouriercoeffL.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/FouriercoeffL.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/FouriercoeffL.sci new file mode 100755 index 00000000..2d0d840b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/FouriercoeffL.sci @@ -0,0 +1,18 @@ +// 09.03.12 + +function Out=FouriercoeffL(Fn,T,Upto) + Out=Mix(Fouriercoeff(Fn,T,'c',0)); + CL=[]; + for K=1:Upto + Tmp=Fouriercoeff(Fn,T,'c',K); + CL=[CL,Tmp]; + end; + Out=Mixadd(Out,CL); + CL=[]; + for K=1:Upto + Tmp=Fouriercoeff(Fn,T,'s',K); + CL=[CL,Tmp]; + end; + Out=Mixadd(Out,CL); + Out=Mixadd(Out,T); +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Fouriersum.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Fouriersum.bin Binary files differnew file mode 100644 index 00000000..91dee3ce --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Fouriersum.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Fouriersum.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Fouriersum.sci new file mode 100755 index 00000000..6182f4a7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Fouriersum.sci @@ -0,0 +1,15 @@ +// 09.03.12 + +function Out=Fouriersum(COEFF,x) + C=Mixop(1,COEFF); + A=Mixop(2,COEFF); + B=Mixop(3,COEFF); + T=Mixop(4,COEFF); + Upto=size(A,2); + L=T/2; + K=1:Upto; + Tmp1=sum(A(K).*cos(K*%pi*x/L)); + Tmp2=sum(B(K).*sin(K*%pi*x/L)); + Out=C+Tmp1+Tmp2; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Fracform.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Fracform.bin Binary files differnew file mode 100644 index 00000000..4cc02afc --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Fracform.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Fracform.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Fracform.sci new file mode 100755 index 00000000..437ff122 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Fracform.sci @@ -0,0 +1,18 @@ +// 09.08.23 + +function Out=Fracform(X) + [N,D]=rat(X); + Out=[]; + for I=1:size(X,1) + for J=1:size(X,2) + Tmp1=N(I,J); + Tmp2=D(I,J); + if Tmp2==1 + Out(I,J)=string(Tmp1); + else + Out(I,J)=string(Tmp1)+'/'+string(Tmp2); + end; + end; + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Framedata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Framedata.bin Binary files differnew file mode 100644 index 00000000..828acf25 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Framedata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Framedata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Framedata.sci new file mode 100755 index 00000000..071f7381 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Framedata.sci @@ -0,0 +1,36 @@ +// 2011.12.18 ( available for list ) + +function P=Framedata(varargin) + global XMIN XMAX YMIN YMAX + VaL=Flattenlist(varargin); + N=length(VaL); + if N<=1 + H=1.0*10^(-4); + PA=[XMIN+H,YMIN+H]; + PB=[XMAX-H,YMIN+H]; + PC=[XMAX-H,YMAX-H]; + PD=[XMIN+H,YMAX-H]; + else + Tmp=VaL(N); + if type(Tmp)==1 & length(Tmp)==1 + Dy=Tmp; + Dx=Dy; + Tmp=VaL(N-1); + if type(Tmp)==1 & length(Tmp)==1 + Dx=Tmp; + end; + Tmp=VaL(1); + X=Tmp(1); Y=Tmp(2); + X1=X-Dx; X2=X+Dx; + Y1=Y-Dy; Y2=Y+Dy; + else + Tmp=VaL(1); + X1=Tmp(1); X2=Tmp(2); + Tmp=VaL(2); + Y1=Tmp(1); Y2=Tmp(2); + end; + PA=[X1,Y1]; PB=[X2,Y1]; + PC=[X2,Y2]; PD=[X1,Y2]; + end; + P=Listplot(PA,PB,PC,PD,PA) +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Fullformfunc.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Fullformfunc.bin Binary files differnew file mode 100644 index 00000000..5e765044 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Fullformfunc.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Fullformfunc.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Fullformfunc.sci new file mode 100755 index 00000000..97ddae5b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Fullformfunc.sci @@ -0,0 +1,79 @@ +// 08.08.16 +// 08.09.16 +// 09.11.14 +// 10.08.19 +// 13.10.22 ( __ added to varibles ) + +function Out__=Fullformfunc(FdL__) + Out__=MixS(Mixop(1,FdL__)); + N__=Mixlength(FdL__); + for Jrg__=1:N__ + Tmp__=Mixop(Jrg__,FdL__); + if part(Tmp__,length(Tmp__))==']' + break + end; + end; + Urg__=Mixop(Jrg__,FdL__); + K__=mtlb_findstr(Urg__,'='); + Uname__=stripblanks(part(Urg__,1:K__-1)); + Tmp__=part(Urg__,K__+1:length(Urg__)); // 2013.10.22 + Tmp1__=evstr(Tmp__); + Urg__=Uname__+"=["+string(Tmp1__(1))+","+string(Tmp1__(2))+"]"; + Vrg__=Mixop(Jrg__+1,FdL__); + K__=mtlb_findstr(Vrg__,'='); + Vname__=stripblanks(part(Vrg__,1:K__-1)); + Tmp__=part(Vrg__,K__+1:length(Vrg__)); + Tmp1__=evstr(Tmp__); + Vrg__=Vname__+"=["+string(Tmp1__(1))+","+string(Tmp1__(2))+"]"; // + if Jrg__==2 + Tmp__=Mixop(1,FdL__); + K__=mtlb_findstr(Tmp__,'='); + Zf__=part(Tmp__,K__+1:length(Tmp__)); + Tmp__=MixS(Uname__,Vname__,Zf__,Urg__,Vrg__); + Out__=Mixjoin(Out__,Tmp__); + elseif Jrg__==4 + Tmp__=Mixop(1,FdL__); + K__=mtlb_findstr(Tmp__,'='); + Zf__=part(Tmp__,K__+1:length(Tmp__)); + Tmp__=Mixop(2,FdL__); + K__=mtlb_findstr(Tmp__,'='); + Xname__=stripblanks(part(Tmp__,1:K__-1)); + Xf__=part(Tmp__,K__+1:length(Tmp__)); + Tmp__=Mixop(3,FdL__); + K__=mtlb_findstr(Tmp__,'='); + Yname__=stripblanks(part(Tmp__,1:K__-1)); + Yf__=part(Tmp__,K__+1:length(Tmp__)); + Tmp__=strsubst(Zf__,Xname__,'('+Xf__+')'); + Zf__=strsubst(Tmp__,Yname__,'('+Yf__+')'); + Tmp__=MixS(Xf__,Yf__,Zf__,Urg__,Vrg__); + Out__=Mixjoin(Out__,Tmp__); + else + Tmp__=Mixop(2,FdL__); + K__=mtlb_findstr(Tmp__,'='); + Xf__=part(Tmp__,K__+1:length(Tmp__)); + Tmp__=Mixop(3,FdL__); + K__=mtlb_findstr(Tmp__,'='); + Yf__=part(Tmp__,K__+1:length(Tmp__)); + Tmp__=Mixop(4,FdL__); + K__=mtlb_findstr(Tmp__,'='); + Zf__=part(Tmp__,K__+1:length(Tmp__)); + Tmp__=MixS(Xf__,Yf__,Zf__,Urg__,Vrg__); + Out__=Mixjoin(Out__,Tmp__); + end; + DrwS__='enws'; + BdyL__=[]; + for I__=Jrg__+2:Mixlength(FdL__) + Tmp__=Mixop(I__,FdL__); + if type(Tmp__)==10 + if length(Tmp__)==0 // + Tmp__=' '; + end; + DrwS__=Tmp__; + end; + if type(Tmp__)==1 & size(Tmp__,2)>1 + BdyL__=Tmp__; + end; + end; + Tmp__=MixS(DrwS__,BdyL__); + Out__=Mixjoin(Out__,Tmp__); +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Gaiseki.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Gaiseki.bin Binary files differnew file mode 100644 index 00000000..ba4a0779 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Gaiseki.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Gaiseki.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Gaiseki.sci new file mode 100755 index 00000000..3d17995e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Gaiseki.sci @@ -0,0 +1,11 @@ +function G=Gaiseki(a,b) + if length(a)==3 + Tmp=[a(2)*b(3)-a(3)*b(2),... + a(3)*b(1)-a(1)*b(3),... + a(1)*b(2)-a(2)*b(1)]; + else + Tmp=a(1)*b(2)-a(2)*b(1); + end; + G=Tmp; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Getcounter.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Getcounter.bin Binary files differnew file mode 100644 index 00000000..a66e7b20 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Getcounter.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Getcounter.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Getcounter.sci new file mode 100755 index 00000000..ca4e0d2a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Getcounter.sci @@ -0,0 +1,7 @@ +// 09.09.10 + +function Out=Getcounter() + global GCOUNTER; + Out=GCOUNTER; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Gettrace.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Gettrace.bin Binary files differnew file mode 100644 index 00000000..d0751e37 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Gettrace.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Gettrace.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Gettrace.sci new file mode 100755 index 00000000..5395d885 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Gettrace.sci @@ -0,0 +1,7 @@ +// 09.09.10 + +function Out=Gettrace(); + global TRACEDATA; + Out=TRACEDATA; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Hatchdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Hatchdata.bin Binary files differnew file mode 100644 index 00000000..4e13bb0c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Hatchdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Hatchdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Hatchdata.sci new file mode 100755 index 00000000..236287ef --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Hatchdata.sci @@ -0,0 +1,141 @@ +// 08.05.21 +// 09.10.05 +// 09.12.25 +// 10.01.20 +// 10.02.01 +// 10.11.04 ( debugged 83 ) + +function ShaLs=Hatchdata(varargin) + global XMIN XMAX YMIN YMAX MilliIn; + ShaL=[]; + Nargs=length(varargin); + Kakudo=45; + Kankaku=0.125*1000/2.54/MilliIn; + Tmp=Doscaling([XMIN,YMIN]); + Xmn=Tmp(1); Ymn=Tmp(2); + Tmp=Doscaling([XMAX,YMAX]); + Xmx=Tmp(1); Ymx=Tmp(2); + for N=Nargs:-1:1 + Tmp=varargin(N); + if Mixtype(Tmp)~=1 + break + end + end + if N<Nargs + Kakudo=varargin(N+1); + if N==Nargs-2 + Kankaku=0.125*varargin(Nargs); + end + end + NaitenL=varargin(1); + if Mixtype(NaitenL)==1 + NaitenL=list(NaitenL); + end + Ns=2; + StartP=Op(1,NaitenL); + if type(StartP)==10 + StartP=[(Xmn+Xmx)/2,(Ymn+Ymx)/2]; + end + if Mixtype(varargin(2))==1 + StartP=varargin(2); + StartP=Doscaling(StartP); + Ns=3; + end + Tmp=list(); + for I=Ns:N + Tmp1=list(varargin(I)); + Tmp=Mixjoin(Tmp,Tmp1); + end + Bdy=Kyoukai(Tmp); + Bdys=list(); + for I=1:length(Bdy) + Tmp1=Bdy(I); + Tmp2=Doscaling(Tmp1); + Bdys=Mixjoin(Bdys,list(Tmp2)); + end; + Bdy=Bdys; + PtnL=list(); + for I=1:length(NaitenL) + Tmp=Op(I,NaitenL); + if type(Tmp)==1 + Tmp1=Naigai(Tmp,Bdy); + PtnL=Mixjoin(PtnL,list(Tmp1)); + else + if type(Tmp)~=10 + disp('Type Error'); + return + end + Ptn=[]; + for J=1:length(Tmp) + if Op(J,Tmp)=='i' + Ptn=[Ptn,1]; + else + Ptn=[Ptn,0]; + end + end + PtnL=Mixjoin(PtnL,list(Ptn)); + end + end + Call=length(Bdy); + Ptn=zeros(1,Call); + if Member(Ptn,PtnL) + Wn=Doscaling(Framedata()); + Bdy=Mixjoin(Bdy,list(Wn)); + Tmp=list(); + for I=1:length(PtnL) + Tmp1=[Op(I,PtnL),1]; + Tmp=Mixjoin(Tmp,Tmp1); // 10.11.04 + end + PtnL=Tmp; + end + V=[cos(Kakudo*%pi/180),sin(Kakudo*%pi/180)]; + Vm=[-sin(Kakudo*%pi/180),cos(Kakudo*%pi/180)]; + Tmp=Op(1,NaitenL); + if type(Tmp)==1 & size(Tmp,2)==2 + Tmp=Doscaling(Tmp); + Delta=Tmp-StartP; + K=Trunc((Delta(1)*Vm(1)+Delta(2)*Vm(2))/Kankaku); + PA=StartP+K*Kankaku*Vm; + Sha=Makeshasen(PtnL,PA,V,Bdy); + I=1; + while length(Sha)~=0 + for J=1:length(Sha) + ShaL=Mixadd(ShaL,Sha(J)); + end; + Sha=Makeshasen(PtnL,PA+I*Kankaku*Vm,V,Bdy); + I=I+1; + end + Sha=Makeshasen(PtnL,PA-Kankaku*Vm,V,Bdy); + I=2; + while length(Sha)~=0 + for J=1:length(Sha) + ShaL=Mixjoin(ShaL,list(Sha(J))); + end; + Sha=Makeshasen(PtnL,PA-I*Kankaku*Vm,V,Bdy); + I=I+1; + end + else + Delta=[Xmn,Ymn]-StartP; + K1=Trunc((Delta(1)*Vm(1)+Delta(2)*Vm(2))/Kankaku); + Delta=[Xmx,Ymn]-StartP; + K2=Trunc((Delta(1)*Vm(1)+Delta(2)*Vm(2))/Kankaku); + Delta=[Xmx,Ymx]-StartP; + K3=Trunc((Delta(1)*Vm(1)+Delta(2)*Vm(2))/Kankaku); + Delta=[Xmn,Ymx]-StartP; + K4=Trunc((Delta(1)*Vm(1)+Delta(2)*Vm(2))/Kankaku); + IM=max(K1,K2,K3,K4); + Im=min(K1,K2,K3,K4); + for I=Im:IM + Sha=Makeshasen(PtnL,StartP+I*Kankaku*Vm,V,Bdy); + for J=1:length(Sha) + ShaL=Mixjoin(ShaL,list(Sha(J))); + end + end + end + ShaLs=list(); + for I=1:length(ShaL) + Tmp=ShaL(I); + Tmp1=Unscaling(Tmp); + ShaLs=Mixjoin(ShaLs,list(Tmp1)); + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Hexahedrondata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Hexahedrondata.bin Binary files differnew file mode 100644 index 00000000..b7f91dc9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Hexahedrondata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Hexahedrondata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Hexahedrondata.sci new file mode 100644 index 00000000..7bc05ed9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Hexahedrondata.sci @@ -0,0 +1,15 @@ +// s : 2014.06.22 + +function Out=Hexahedrondata(A,V1,V2,V3) + Tmp=det([V1;V2;V3]); + if Tmp<0 then + Tmp1=V1; + V1=V2; + V2=Tmp1 + end + B=A+V1; C=A+V1+V2; D=A+V2; + E=A+V3; F=B+V3; G=C+V3; H=D+V3; + VL=list(A,B,C,D,E,F,G,H); + FL=list([1,4,3,2],[5,6,7,8],[1,2,6,5],[2,3,7,6],[3,4,8,7],[1,5,8,4]); + Out=list(VL,FL) +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/HiddenWireData.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/HiddenWireData.bin Binary files differnew file mode 100644 index 00000000..d4296e92 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/HiddenWireData.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/HiddenWireData.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/HiddenWireData.sci new file mode 100755 index 00000000..2ead122d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/HiddenWireData.sci @@ -0,0 +1,7 @@ +// 08.09.15 + +function Out=HiddenWireData() + global HIDDENWIREDATA + Out=HIDDENWIREDATA; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Htickmark.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Htickmark.bin Binary files differnew file mode 100644 index 00000000..65df35b0 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Htickmark.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Htickmark.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Htickmark.sci new file mode 100644 index 00000000..ab8a54b6 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Htickmark.sci @@ -0,0 +1,144 @@ +// 08.05.17 Debugged +// 09.12.25 +// 11.04.13 debugged ( [a,b] ) +// 14.03.05 MARKLEN + +function Htickmark(varargin) + global Wfile FID MARKLEN GENTEN XMIN XMAX; + Nargs=length(varargin); + ArgsL=list(varargin(1:Nargs)); + if type(Op(1,ArgsL))==10 + Str=Op(1,ArgsL); + Tmp=mtlb_findstr(Str,'m'); + if Tmp~=[] + I=Tmp(1); + else + I=0; + end + Tmp=mtlb_findstr(Str,'n'); + if Tmp~=[] + J=Tmp(1); + else + J=0; + end + Tmp=mtlb_findstr(Str,'r'); + if Tmp~=[] + K=Tmp(1); + else + K=0; + end; + if K>0 + Tmp=ascii(Str); + S=char(Tmp(K+1:length(Tmp))); + R=msscanf(S,'%f'); + if length(R)==0 + R=1; + end + else + R=1; + K=length(Str)+1; + end + if J>0 then + Tmp=ascii(Str); + S=char(Tmp(J+1:K-1)); + if S==[] + S=''; + end; + Dn=msscanf(S,'%d'); + if length(Dn)==0 + Dn=1; + end + else + Dn=1000; + J=length(Str)+1; + end + Tmp=ascii(Str); + S=char(Tmp(I+1:J-1)); + if S==[] + S=''; + end + Dm=msscanf(S,'%f'); + if length(Dm)==0 + Dm=1; + end + ArgsL=list(); + for I=1:floor((XMAX-GENTEN(1))/Dm) + ArgsL($+1)=I*Dm; + if I-floor(I/Dn)*Dn==0 + Str=string(I*Dm*R); + K=length(Str); + Tmp=ascii(Str); + if char(Tmp(K))=='.' + Str=char(Tmp(1:k-1)); + end + ArgsL($+1)=Str; + end + end + for I=-1:-1:ceil((XMIN-GENTEN(1))/Dm) + ArgsL($+1)=I*Dm; + if I-floor(I/Dn)*Dn==0 + Str=string(I*Dm*R); + K=length(Str); + Tmp=ascii(Str); + if char(Tmp(K))=='.' + Str=char(1:K-1); + end + ArgsL($+1)=Str; + end + end + end + MemoriList=list(); + Memori=list(); + for N=1:length(ArgsL) + Dt=ArgsL(N); + if type(Dt)==1 & length(Dt)>1 + if length(Memori)>0 + MemoriList($+1)=Memori; + end + Memori=list(Dt(1),Dt(2)); + continue + end + if type(Dt)==10 + Memori($+1)=Dt; + else + if length(Memori)>0 + MemoriList($+1)=Memori; + end + Memori=list(Dt,GENTEN(2)); + end + end + MemoriList($+1)=Memori; + for N=1:length(MemoriList) + Dt=MemoriList(N); + Ndt=length(Dt); + X=Op(1,Dt); + Y=Op(2,Dt); + Tmp=Doscaling([X,Y]); + X=Tmp(1); + Y=Tmp(2); + Moji=Op(Ndt,Dt); + Tmp1=Unscaling([X,Y+MARKLEN]); + Tmp2=Unscaling([X,Y-MARKLEN]); + Fd=Listplot([Tmp1,Tmp2]); + Drwline(Fd); + if Ndt==3 + Tmp=Unscaling([X,Y-MARKLEN]); + Expr(Tmp,'s',Moji); + end + if Ndt==4 + Houkou=Op(3,Dt); + if mtlb_findstr(Houkou,'s')~=[] + Tmp=Unscaling([X,Y-MARKLEN]); + Expr(Tmp,Houkou,Moji); + else + Tmp=Unscaling([X,Y+MARKLEN]); + Expr(Tmp,Houkou,Moji); + end + end + if Wfile=='default' + mprintf('%s\n','%'); + else + mfprintf(FID,'%s\n','%'); + end + end +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/ImplicitData.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/ImplicitData.bin Binary files differnew file mode 100644 index 00000000..39861c63 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/ImplicitData.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/ImplicitData.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/ImplicitData.sci new file mode 100755 index 00000000..ae02fee1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/ImplicitData.sci @@ -0,0 +1,9 @@ +// 08.09.10 +// 08.09.16 +// 08.10.10 (Name) + +function Out=ImplicitData() + global IMPLICITDATA + Out=IMPLICITDATA; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Implicitplot.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Implicitplot.bin Binary files differnew file mode 100644 index 00000000..875a82b3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Implicitplot.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Implicitplot.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Implicitplot.sci new file mode 100755 index 00000000..b0715484 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Implicitplot.sci @@ -0,0 +1,61 @@ +// 08.09.09 +// 08.09.20 +// 13.10.19 ( __ added to variables ) + +function Out__=Implicitplot(varargin) + Eps__=10^(-4); + Nargs__=length(varargin); + Fstr__=varargin(1); + if Mixtype(Fstr__)~=1 + MS__=Fstr__; + [Zval__,Xval__,Yval__]=Makevaltable(MS__); + elseif type(Fstr__)==10 + MS__=[]; + for I__=1:Nargs__ + MS__=Mixadd(MS__,varargin(I__)); + end; + [Zval__,Xval__,Yval__]=Makevaltable(MS__); + else + Zval__=varargin(1); + Xval__=varargin(2); + Yval__=varargin(3); + end; + Out__=[]; + for J__=1:length(Yval__)-1 + for I__=1:length(Xval__)-1 + a1__=Xval__(I__);b1__=Yval__(J__);c1__=Zval__(J__,I__); + a2__=Xval__(I__+1);b2__=Yval__(J__);c2__=Zval__(J__,I__+1); + a3__=Xval__(I__+1);b3__=Yval__(J__+1);c3__=Zval__(J__+1,I__+1); + a4__=Xval__(I__);b4__=Yval__(J__+1);c4__=Zval__(J__+1,I__); + PL__=[a1__,b1__;a2__,b2__;a3__,b3__;a4__,b4__;a1__,b1__]; + VL__=[c1__,c2__,c3__,c4__,c1__]; + QL__=[]; + for K__=1:4 + if abs(VL__(K__))<=Eps__ + QL__=[QL__;PL__(K__,:)]; + elseif VL__(K__)>Eps__ + if VL__(K__+1)<-Eps__ + Tmp__=1/(VL__(K__)-VL__(K__+1))*(-VL__(K__+1)*PL__(K__,:)... + + VL__(K__)*PL__(K__+1,:)); + QL__=[QL__;Tmp__]; + end + else + if VL__(K__+1)>Eps__ + Tmp__=1/(-VL__(K__)+VL__(K__+1))*(VL__(K__+1)*PL__(K__,:)... + - VL__(K__)*PL__(K__+1,:)); + QL__=[QL__;Tmp__]; + end; + end; + end; + if size(QL__,1)==2 + Out__=[Out__;%inf,%inf;QL__(1,:);QL__(2,:)]; + end; + end; + end; + Out__=Out__(2:size(Out__,1),:); + if size(Out__,1)>0 + Out__=Connectseg(Out__); + else + Out__=[]; + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/InWindow.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/InWindow.bin Binary files differnew file mode 100644 index 00000000..37882bfa --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/InWindow.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/InWindow.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/InWindow.sci new file mode 100755 index 00000000..9dacd30c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/InWindow.sci @@ -0,0 +1,11 @@ +function Rx=InWindow(PA) + global XMIN XMAX YMIN YMAX + Eps=10.0^(-6); + X=PA(1); Y=PA(2); + if X>XMIN-Eps & X<XMAX+Eps & Y>YMIN-Eps & Y<YMAX+Eps + Rx='i' + else + Rx='o' + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Initangle.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Initangle.bin Binary files differnew file mode 100644 index 00000000..80050aeb --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Initangle.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Initangle.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Initangle.sci new file mode 100755 index 00000000..d5e09ff4 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Initangle.sci @@ -0,0 +1,8 @@ +// 08.07.11 + +function Initangle() + global PHI THETA; + PHI=30*%pi/180; + THETA=60*%pi/180; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Integrate.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Integrate.bin Binary files differnew file mode 100644 index 00000000..cca9ea76 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Integrate.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Integrate.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Integrate.sci new file mode 100755 index 00000000..abd3377f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Integrate.sci @@ -0,0 +1,25 @@ +// 09.10.09 +// 09.10.21 Es, Er + +function Out=Integrate(varargin); + Nargs=length(varargin); + Fs=varargin(1); + Vs=varargin(2); + Itv=varargin(3); + Es=1d-10; + if Nargs>3 + Es=varargin(4); + end; + Er=1d-8; + if Nargs>4 + Er=varargin(5); + end; + Out=0; + Na=1; + while Na<length(Itv) + A=Itv(Na); B=Itv(Na+1); + Out=Out+integrate(Fs,Vs,A,B,Es,Er); + Na=Na+1; + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Intersectcrvs.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Intersectcrvs.bin Binary files differnew file mode 100644 index 00000000..9c865940 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Intersectcrvs.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Intersectcrvs.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Intersectcrvs.sci new file mode 100755 index 00000000..59b4fdcc --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Intersectcrvs.sci @@ -0,0 +1,34 @@ +// 08.05.18 Koshikawa +// 08.05.19 Changed +// 08.06.03 +// 09.11.12 +// 09.11.14 debug + +function PL=Intersectcrvs(varargin) + Nargs=length(varargin); + Eps=10^(-4); + Tmp=varargin(Nargs); + if type(Tmp)==1 & length(Tmp)==1 + Eps=Tmp; + end + G1=varargin(1); + if Mixtype(G1)==1 + G1=list(G1); + end; + G2=varargin(2); + if Mixtype(G2)==1 + G2=list(G2); // + end; + PL=list(); + for N=1:length(G1) + for M=1:length(G2) + KL=IntersectcrvsPp(G1(N),G2(M),Eps); + for I=1:length(KL) + Tmp=KL(I);; + P=Tmp(1); + PL($+1)=P; + end; + end; + end; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/IntersectcrvsPp.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/IntersectcrvsPp.bin Binary files differnew file mode 100644 index 00000000..806ccfa3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/IntersectcrvsPp.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/IntersectcrvsPp.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/IntersectcrvsPp.sci new file mode 100755 index 00000000..a1218d06 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/IntersectcrvsPp.sci @@ -0,0 +1,101 @@ +// 08.05.18 Koshikawa +// 08.05.19 Changed +// 08.00.04 +// 09.11.07 for the same curve + +function KL=IntersectcrvsPp(varargin) // Modified + Nargs=length(varargin); + G1=varargin(1); G2=varargin(2); + Eps=10.0^(-4); + if Nargs>2 + Eps=varargin(3) + end + SqEps=10.0^(-10); + Eps2=0.1; + if Nargs>3 + Eps2=varargin(4) + end + Data1=G1; + Data2=G2; + if size(Data1,1)==size(Data2,1) + Tmp1=Data2(size(Data2,1):-1:1,:); // 09.11.07 + Eps0=10^(-6); + Tmp2=norm(Data1-Data2); + Tmp3=norm(Data1-Tmp1); + if Tmp2<Eps0|Tmp3<Eps0 + KL=list(); + return; + end; // + end; + KL1=[]; + KL2=[]; + for I=1:size(Data1,1)-1 + A=Data1(I,:); + B=Data1(I+1,:); + for J=1:size(Data2,1)-1 + P=Data2(J,:); Q=Data2(J+1,:); + Tmp=Koutenseg(A,B,P,Q,Eps,Eps2); + if Tmp~=[%inf,-%inf] + if Op(3,Tmp)==0 + Tmp1=MixS(Op(1,Tmp),Op(2,Tmp),I,J); + KL1=Mixadd(KL1,Tmp1); + else + Tmp2=MixS(Op(1,Tmp),Op(2,Tmp),I,J); + KL2=Mixadd(KL2,Tmp2); + end + end + end + end + KL=[]; + if Mixlength(KL1)>0 + Tmp=Op(1,KL1); + P=Op(1,Tmp); + T=Op(2,Tmp); + I=Op(3,Tmp); + J=Op(4,Tmp); + Tmp=MixS(P,I+T,J); + KL=MixL(Tmp); + end + for N=2:Mixlength(KL1) + Tmp=Op(N,KL1); + P=Op(1,Tmp); + Flg=0; + for K=1:Mixlength(KL) + Tmp=Op(K,KL); + if Vecnagasa2(P-Op(1,Tmp))<SqEps + Flg=1; + break + end + end + if Flg==0 + Tmp=Op(N,KL1); + T=Op(2,Tmp); + I=Op(3,Tmp); + J=Op(4,Tmp); + Tmp=MixS(P,I+T,J); + KL=Mixadd(KL,Tmp); + end + end + for N=1:Mixlength(KL2) + Tmp=Op(N,KL2); + P=Op(1,Tmp); + Flg=0; + for K=1:Mixlength(KL) + Tmp=Op(K,KL); + if Vecnagasa2(P-Op(1,Tmp))<SqEps + Flg=1; + break + end + end + if Flg==0 + Tmp=Op(N,KL2); + T=Op(2,Tmp); + T=min(max(T,0),1); + I=Op(3,Tmp); + J=Op(4,Tmp); + Tmp=MixS(P,I+T,J); + KL=Mixadd(KL,Tmp); + end + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Intersectcrvsf.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Intersectcrvsf.bin Binary files differnew file mode 100644 index 00000000..fd6bbac1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Intersectcrvsf.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Intersectcrvsf.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Intersectcrvsf.sci new file mode 100755 index 00000000..2a2e5b6c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Intersectcrvsf.sci @@ -0,0 +1,47 @@ +// 08.10.26 +// 10.02.16 + +function Out=Intersectcrvsf(varargin) + Nargs=length(varargin); + Eps0=10^(-4); + Crv=varargin(1); + Fd=varargin(2); + N=3;Uveq=1; + if Nargs>=3 + Tmp=varargin(3); + if type(Tmp)==10 + Uveq=Tmp; + N=4; + end; + end; + Np=[50,50]; + if Nargs>=N + Np=varargin(N); + if length(Np)==1 + Np=[Np,Np]; + end; + end; + Eps=[0.05,1]; // + if Nargs>=N+1 + Eps=varargin(N+1); + end; + if length(Eps)==1 // + Eps=[Eps,1]; // + end; // + Out=[]; + for I=1:Numptcrv(Crv)-1 + PtA=Ptcrv(I,Crv); + PtB=Ptcrv(I+1,Crv); + if norm(PtB-PtA)<Eps0 + continue; + end; + PL=Meetpoints(PtA,PtB,Fd,Uveq,Np,Eps(1)); + for J=1:Mixlength(PL) + Pt=Mixop(J,PL); + Tmp=norm(Pt-PtA)/norm(PtB-PtA); + Tmp=min(max(Tmp,0),1); + Out=Mixadd(Out,[Pt,I+Tmp]); + end; + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Intersectlines.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Intersectlines.bin Binary files differnew file mode 100644 index 00000000..12e2536d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Intersectlines.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Intersectlines.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Intersectlines.sci new file mode 100755 index 00000000..ed92a5aa --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Intersectlines.sci @@ -0,0 +1,22 @@ +// 09.10.11 +// 09.10.12 + +function Out=Intersectlines(L1,L2) + Eps0=10^(-6); + P=Ptstart(L1); + a1=P(1); a2=P(2); + V=Ptend(L1)-P; + b1=V(1); b2=V(2); + P=Ptstart(L2); + c1=P(1); c2=P(2); + V=Ptend(L2)-P; + d1=V(1); d2=V(2); + Den=b1*d2-d1*b2; + if abs(Den)<Eps0 + Out=[]; + return; + end; + x=-(d1*b2*a1-c1*b1*d2-d1*a2*b1+d1*b1*c2)/Den; + y=-(-a2*b1*d2+b2*a1*d2-b2*c1*d2+c2*d1*b2)/Den; + Out=[x,y]; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/IntersectselfPp.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/IntersectselfPp.bin Binary files differnew file mode 100644 index 00000000..12429fff --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/IntersectselfPp.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/IntersectselfPp.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/IntersectselfPp.sci new file mode 100755 index 00000000..4b246e95 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/IntersectselfPp.sci @@ -0,0 +1,95 @@ +// 09.05.27 +// 09.06.03 +// 09.06.05 + +function KL=IntersectselfPp(varargin) + Nargs=length(varargin); + G1=varargin(1); + Eps=10.0^(-4); + if Nargs>1 + Eps=varargin(2) + end + Eps0=10.0^(-5); + Eps2=0.01; +// if Nargs>2 +// Eps2=varargin(3) +// end; + Data1=G1; + KL1=[]; + KL2=[]; + for I=1:size(Data1,1)-2 + A=Data1(I,:); + B=Data1(I+1,:); + Is=I+2; + Tmp=Data1(Is,:); + while norm(Tmp-B)<Eps & Is<size(Data1,1); + Is=Is+1; + Tmp=Data1(Is,:); + end; + for J=Is:size(Data1,1)-1 + P=Data1(J,:); Q=Data1(J+1,:); + Tmp=Koutenseg(A,B,P,Q,Eps,Eps2); + if Tmp~=[%inf,-%inf] + if Op(3,Tmp)==0 + Tmp1=MixS(Op(1,Tmp),Op(2,Tmp),I,J); + KL1=Mixadd(KL1,Tmp1); + else + Tmp2=MixS(Op(1,Tmp),Op(2,Tmp),I,J); + KL2=Mixadd(KL2,Tmp2); + end + end + end + end + KL=[]; + if Mixlength(KL1)>0 + Tmp=Op(1,KL1); + P=Op(1,Tmp); + T=Op(2,Tmp); + I=Op(3,Tmp); + J=Op(4,Tmp); + S=ParamonCurve(P,J,Data1); + Tmp=MixS(P,I+T,J); + Tmp2=MixS(P,S,I); + KL=MixL(Tmp); + KL=Mixadd(KL,Tmp2); + end; + for N=2:Mixlength(KL1) + Tmp=Op(N,KL1); + P=Op(1,Tmp); + T=Op(2,Tmp); + I=Op(3,Tmp); + J=Op(4,Tmp); + S=ParamonCurve(P,J,Data1); + Tmp=MixS(P,I+T,J); + Tmp1=MixS(P,S,I); + KL=Mixadd(KL,Tmp); + KL=Mixadd(KL,Tmp1); + end + for N=1:Mixlength(KL2) + Tmp=Op(N,KL2); + P=Op(1,Tmp); + T=Op(2,Tmp); + T=min(max(T,0),1); + I=Op(3,Tmp); + J=Op(4,Tmp); + S=ParamonCurve(P,J,Data1); + Flg=0; + for K=1:Mixlength(KL) + Tmp=Op(K,KL); + if norm(P-Op(1,Tmp))<Eps + Tmp1=Op(2,Tmp); + if abs(I+T-Tmp1)<Eps + Flg=1; + break; + end; + end; + end; + if Flg==0 + Tmp=MixS(P,I+T,J); + Tmp1=MixS(P,S,I); + KL=Mixadd(KL,Tmp); + KL=Mixadd(KL,Tmp1); + end; + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Invdashline.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Invdashline.bin Binary files differnew file mode 100644 index 00000000..a247d3a0 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Invdashline.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Invdashline.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Invdashline.sci new file mode 100644 index 00000000..bf6f976f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Invdashline.sci @@ -0,0 +1,29 @@ +// 10.11.13 ( Flattenlist used +// 13.10.19 debugged + +function Invdashline(varargin) + global MilliIn; + Nargs=length(varargin); + Nall=Nargs; Sen=1 ; Gap=1; + Tmp=varargin(Nall); + if type(Tmp)==1 & length(Tmp)==1 & Tmp>0 // 2013.10.19 + Tmp1=varargin(Nall-1); + if type(Tmp1)==1 & length(Tmp1)==1 & Tmp1>0 // 2013.10.19 + Sen=Tmp1; Gap=Tmp; + Nall=Nall-2; + else + Sen=Tmp; Gap=Sen; + Nall=Nall-1; + end + end + Sen=1000/2.54/MilliIn*Sen; + Gap=1000/2.54/MilliIn*Gap; + for N=1:Nall + Tmp=varargin(N); + Fdata=Flattenlist(Tmp); + for I=1:length(Fdata); + Figdata=Fdata(I); + Makehasen(Figdata,Sen,Gap,1); + end; + end; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Invert.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Invert.bin Binary files differnew file mode 100644 index 00000000..ab928c50 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Invert.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Invert.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Invert.sci new file mode 100755 index 00000000..9f9f9d95 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Invert.sci @@ -0,0 +1,6 @@ +// 08.05.31 + +function OutL=Invert(Pd) + OutL=Pd(size(Pd,1):-1:1,:); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Invparapt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Invparapt.bin Binary files differnew file mode 100644 index 00000000..b5f41832 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Invparapt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Invparapt.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Invparapt.sci new file mode 100755 index 00000000..4d7863b1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Invparapt.sci @@ -0,0 +1,50 @@ +// 08.07.11 +// 08.08.17 +// 09.10.31 +// 09.11.12 + +function Out=Invparapt(varargin) + Eps=10^(-4); + Fk=varargin($); + NFk=Numptcrv(Fk) + Tmp=varargin(1); + if type(Tmp)==1 & size(Tmp)==1 + Ph=Tmp; + Fh=varargin(2); + else + Fh=Projpara(Fk); + if NFk>2 + Tmp1=Nearestpt(Tmp,Fh); + Ph=Tmp1(2); + else + Ah=Ptcrv(1,Fh); Bh=Ptcrv(2,Fh); + V1=Tmp-Ah; V2=Bh-Ah; + Tmp1=Crossprod(V1,V2); + if abs(Tmp1)>Eps + disp('Not on the line'); + Out=[]; + return; + else + Ph=Dotprod(V1,V2)/norm(V2)^2+1; // 09.11.12 + end; + end; + end; + if NFk>2 + N=Trunc(Ph); + S0=Ph-N; + if Ph>Numptcrv(Fh)-Eps + Out=list(Ptend(Fk),Numptcrv(Fh)); + return; + end; + else + N=1; + S0=Ph-1; // 09.11.12 + end; + Ak=Ptcrv(N,Fk); Bk=Ptcrv(N+1,Fk); + Ah=Ptcrv(N,Fh); Bh=Ptcrv(N+1,Fh); + Ph=(1-S0)*Ah+S0*Bh; + T2=S0; + Pk=(1-T2)*Ak+T2*Bk; + Out=list(Pk,N+T2); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Invperspt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Invperspt.bin Binary files differnew file mode 100644 index 00000000..10fe9aa7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Invperspt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Invperspt.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Invperspt.sci new file mode 100755 index 00000000..c2c35355 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Invperspt.sci @@ -0,0 +1,65 @@ +// 08.08.12 +// 09.10.31 +// 09.11.12 + +function Out=Invperspt(varargin) + global FocusPoint EyePoint; + Eps=10^(-4); + Fk=varargin($); + NFk=Numptcrv(Fk) + Tmp=varargin(1); + if type(Tmp)==1 & length(Tmp)==1 + Ph=varargin(1); + Fh=varargin(2); + else + Fh=Projpers(Fk); + if NFk>2 + Tmp1=Nearestpt(Tmp,Fh); + Ph=Tmp1(2); + else + Ah=Ptcrv(1,Fh); Bh=Ptcrv(2,Fh); + V1=Tmp-Ah; V2=Bh-Ah; + Tmp1=Crossprod(V1,V2); + if abs(Tmp1)>Eps + disp('Not on the line'); + Out=[]; + return; + else + Ph=Dotprod(V1,V2)/norm(V2)^2+1; // 09.11.12 + end; + end; + end; + if NFk>2 + N=Trunc(Ph); + S0=Ph-N; + if Ph>Numptcrv(Fh)-Eps + Out=list(Ptend(Fk),Numptcrv(Fh)); + return; + end; + else + N=1; + S0=Ph-1; // 09.11.12 + end; + Ak=Ptcrv(N,Fk); Bk=Ptcrv(N+1,Fk); + Ah=Ptcrv(N,Fh); Bh=Ptcrv(N+1,Fh); + Ph=(1-S0)*Ah+S0*Bh; + Phc=Cancoordpers([Ph,0]); + Ahc=Cancoordpers([Ah,0]); + Bhc=Cancoordpers([Bh,0]); + Vp=Phc-EyePoint; + Va=Ak-EyePoint; + AB=Bk-Ak; + Cp=Crossprod(Vp,AB); + Nmr=Crossprod(Va,Vp); + Mx=max(abs(Cp)); + if abs(Cp(1))==Mx + T2=Nmr(1)/Cp(1); + elseif abs(Cp(2))==Mx + T2=Nmr(2)/Cp(2); + else + T2=Nmr(3)/Cp(3); + end; + Pk=(1-T2)*Ak+T2*Bk; + Out=list(Pk,N+T2); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Joincrvs.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Joincrvs.bin Binary files differnew file mode 100644 index 00000000..13bbbe42 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Joincrvs.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Joincrvs.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Joincrvs.sci new file mode 100755 index 00000000..04aaf4eb --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Joincrvs.sci @@ -0,0 +1,51 @@ +// 08.05.31 +// 08.08.22 +// 08.09.14 +// 08.09.20 +// 08.10.27 +// 11.06.25 + +function PtL=Joincrvs(varargin) + Nall=length(varargin); + Eps=10^(-4); + Tmp=varargin(Nall); + if type(Tmp)==1 & length(Tmp)==1 + Eps=Tmp; + Nall=Nall-1; + end; + QdL=list(); + for I=1:Nall + QdL($+1)=varargin(I); // 11.06.25 + end; + QdL=Flattenlist(QdL); // 11.06.25 + if length(QdL)==0 + PtL=[]; + return; + end; + PtL=[Mixop(1,QdL)]; + for I=2:Mixlength(QdL) + Qd=QdL(I); + if Numptcrv(Qd)<=1 // 11.06.25 + continue; + end; + P=Ptend(PtL) + S=Ptstart(PtL); + Q=Ptstart(Qd); + R=Ptend(Qd); + MN=min(norm(P-Q),norm(P-R),norm(S-Q),norm(S-R)); + if MN==norm(P-R) + Qd=Invert(Qd); + elseif MN==norm(S-Q) + PtL=Invert(PtL); + elseif MN==norm(S-R); + PtL=Invert(PtL); + Qd=Invert(Qd); + end; + if MN>Eps + PtL=[PtL;Qd]; + else + PtL=[PtL;Qd(2:size(Qd,1),:)]; + end; + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Joingraphics.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Joingraphics.bin Binary files differnew file mode 100644 index 00000000..5baec784 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Joingraphics.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Joingraphics.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Joingraphics.sci new file mode 100755 index 00000000..78cd46e5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Joingraphics.sci @@ -0,0 +1,26 @@ +// 11.11.02 (for list structure) + +function P=Joingraphics(varargin) + Ls=Flattenlist(varargin); + N=length(Ls); + Tp=Ls(N); + Listflg=0; + if type(Tp)==10 + Tmp=part(Tp,1); + if Tmp=="L"|Tmp=="l" + Listflg=1 + end; + N=N-1; + Ls=Mixsub(1:N,Ls); + end; + if Listflg==1 + P=Ls + else + P=[]; + for I=1:N + Tmp=Ls(I); + P=[P;%inf,%inf;Tmp]; + end; + P=P(2:size(P,1),:) + end +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ketinit.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ketinit.bin Binary files differnew file mode 100644 index 00000000..5d029c80 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ketinit.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ketinit.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ketinit.sci new file mode 100755 index 00000000..bbe02e62 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ketinit.sci @@ -0,0 +1,57 @@ +// 08.07.08 PHI,THETA,FocusPoint,EyePoint; +// 08.08.08 +// 08.08.31 +// 08.09.18 +// 09.10.09 ASSIGNLIST +// 09.12.25 SCALING +// 10.04.16 TEXFOR +// 13.05.19 funcprot(0) +// 13.03.05 MARKLEN instead of MEMORI + +function Ketinit() + global THISVERSION + global TenSize TenSizeInit Wfile XMIN XMAX YMIN YMAX + global XNAME XPOS YNAME YPOS ONAME OPOS ARROWSIZE + global ULEN MilliIn PenThick PenThickInit ZIKU + global MEMORI MEMORIInit MEMORINow GENTEN + global MARKLEN MARKLENInit MARKLENNow + global YaSize YaAngle YaPosition YaThick YaStyle + global PHI THETA FocusPoint EyePoint ASSIGNLIST + global SCALEX SCALEY LOGX LOGY TEXFORLEVEL TEXFORLAST + funcprot(0); // 2013.05.19 + Setversion(); + XMIN=-5 ;XMAX=5; + YMIN=-5 ; YMAX=5; + ZIKU='line'; ARROWSIZE=1; + XNAME='$x$' ; XPOS='e'; + YNAME='$y$' ; YPOS='n'; + ONAME='O' ; OPOS='sw'; + ULEN='1cm'; + MilliIn=1/2.54*1000; + PenThick=round(MilliIn*0.02); + PenThickInit=PenThick; + TenSizeInit=0.02; + TenSize=TenSizeInit; + Wfile='default'; + MEMORI=0.05; + MEMORIInit=MEMORI; + MEMORINow=MEMORI; + MARKLEN=0.05; + MARKLENInit=MARKLEN; + MARKLENNow=MARKLEN; + GENTEN=[0,0]; + YaSize=1; YaAngle=18; YaPosition=1; + YaThick=1; YaStyle='tf'; + PHI=30*%pi/180; + THETA=60*%pi/180; + FocusPoint=[0,0,0]; + EyePoint=[5,5,5]; + ASSIGNLIST=list('`',char(39)); + SCALEX=1; + SCALEY=1; + LOGX=0; + LOGY=0; + TEXFORLEVEL=0; + TEXFORLAST=list(); + endfunction; +
\ No newline at end of file diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Kouten.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Kouten.bin Binary files differnew file mode 100644 index 00000000..2f1c2398 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Kouten.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Kouten.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Kouten.sci new file mode 100755 index 00000000..c12b721e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Kouten.sci @@ -0,0 +1,31 @@ +// 08.05.18 +// 08.05.19 +// 09.06.01 (same as 05.19) + +function Out=Kouten(PA,V,P,Q); + Eps=10.0^(-6); + A1=PA(1); A2=PA(2); + V1=V(1); V2=V(2); + P1=P(1); P2=P(2); + U1=Q(1)-P1; U2=Q(2)-P2; + Tmp=norm(P-Q)*norm(V); + if Tmp==0 + Out=[%inf,-%inf]; + return + end + D=U1*V2-U2*V1; + if abs(D)/Tmp<Eps + Out=[%inf,-%inf]; + return + end + S=((-A2+P2)*V1+(A1-P1)*V2)/D; + if S>1+Eps | S<-Eps + Out=[%inf,-%inf]; + return + end + T=((-A2+P2)*U1+(A1-P1)*U2)/D; + Tmp=PA+T*V; + Out=MixS(T,Tmp,sign(D)); +endfunction + + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/KoutenList.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/KoutenList.bin Binary files differnew file mode 100644 index 00000000..ffe8ecfe --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/KoutenList.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/KoutenList.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/KoutenList.sci new file mode 100755 index 00000000..82cf1e2c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/KoutenList.sci @@ -0,0 +1,51 @@ +// 08.05.18 +// 08.05.20 +// 08.06.02 + +function TenL=KoutenList(PA,V,Bdy) + Eps=10.0^(-6); + TenL=[]; + for N=1:Mixlength(Bdy) + KL=Op(N,Bdy); + for K=1:size(KL,1)-1 + P=KL(K,:); Q=KL(K+1,:); + if P~='/' & Q~='/' + Tmp=Kouten(PA,V,P,Q); + if Tmp~=[%inf,-%inf] + Ten=Mixadd(Tmp,N); + Flg=0; + NN=Mixlength(TenL); + I=1; + while Flg==0 & I<=NN + Tmp=Op(I,TenL); + if Op(1,Ten)<Op(1,Tmp)-Eps + Tmp=Mixsub(1:I-1,TenL); + Tmp1=Mixadd(Tmp,Ten); + Tmp2=Mixsub(I:Mixlength(TenL),TenL); + TenL=Mixjoin(Tmp1,Tmp2); + Flg=1; + elseif Op(1,Ten)<Op(1,Tmp)+Eps + if Op(4,Ten)~=Op(4,Tmp) + Tmp=Mixsub(1:I-1,TenL); + Tmp1=Mixadd(Tmp,Ten); + Tmp2=Mixsub(I:Mixlength(TenL),TenL); + TenL=Mixjoin(Tmp1,Tmp2); + Flg=1; + elseif Op(3,Ten)~=Op(3,Tmp) + Tmp1=Mixsub(1:I-1,TenL); + Tmp2=Mixsub(I+1:Mixlength(TenL),TenL); + TenL=Mixjoin(Tmp1,Tmp2); + end + Flg=1; + end + I=I+1; + end + if Flg==0 + TenL=Mixadd(TenL,Ten); + end + end + end + end + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Koutenseg.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Koutenseg.bin Binary files differnew file mode 100644 index 00000000..f7e0a110 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Koutenseg.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Koutenseg.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Koutenseg.sci new file mode 100755 index 00000000..371807fa --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Koutenseg.sci @@ -0,0 +1,105 @@ +// +// 08.05.19 +// 09.12.05 + +function Out=Koutenseg(varargin) + //pointdata on AB at which AB intersects CD + Nargs=length(varargin); + Eps0=10^(-4); + A=varargin(1); V=varargin(2)-A; + Sv2=V(1)^2+V(2)^2; + if Sv2<10^(-6) + Out=[%inf,-%inf]; + return + end + P=varargin(3)-A; Q=varargin(4)-A; + Eps=10.0^(-3); + if Nargs>=5 + Eps=varargin(5); + end + Eps2=0.2; + if Nargs>=6 + Eps2=varargin(6); + end + Eps=min(Eps2,Eps/sqrt(Sv2)); + P1=(P(1)*V(1)+P(2)*V(2))/Sv2; + P2=(-P(1)*V(2)+P(2)*V(1))/Sv2; + Q1=(Q(1)*V(1)+Q(2)*V(2))/Sv2; + Q2=(-Q(1)*V(2)+Q(2)*V(1))/Sv2; + m1=-Eps; M1=1+Eps; + m2=-Eps; M2=Eps; + if (max(P1,Q1)<m1) | (min(P1,Q1)>M1) + Out=[%inf,-%inf]; + return + end + if (max(P2,Q2)<m2) | (min(P2,Q2)>M2) + Out=[%inf,-%inf]; + return + end + if P2*Q2<0 + T=P1-(Q1-P1)/(Q2-P2)*P2; + if (T>m1) & (T<M1) + if (T>-Eps0) & (T<1+Eps0) + Tmp1=A+T*V; + Tmp2=min(max(T,0),1); + Out=MixS(Tmp1,Tmp2,0); + else + Tmp1=A+T*V; + Tmp2=min(max(T,0),1); + Out=MixS(Tmp1,Tmp2,1); + end + return + end + if P1<m1 | P1>M1 | P2<m2 | P2>M2 + if Q1<m1 | Q1>M1 | Q2<m2 | Q2>M2 + Out=[%inf,-%inf]; + return + end + T=min(max(Q1,0),1); + Tmp=A+T*V; + Out=MixS(Tmp,T,1); + return + end + T=min(max(P1,0),1); + Tmp=A+T*V; + Out=MixS(Tmp,T,1); + return + end + if P1 > -Eps0 & P1 < 1 + Eps0 & P2 > -Eps0 & P2 < Eps0 + T= P1; + Tmp=A+T*V; + Out= MixS(Tmp, T, 0); + return + end + if Q1 > -Eps0 & Q1 < 1 + Eps0 & Q2 > -Eps0 & Q2 < Eps0 + T= Q1; + Tmp=A+T*V; + Out=MixS(Tmp,T,0); + return + end + if P1<m1 | P1>M1 | P2<m2 | P2>M2 + if Q1<m1 | Q1>M1 | Q2<m2 | Q2>M2 + Out=[%inf,-%inf]; + return + end + T=min(max(Q1,0),1); + Tmp=A+T*V; + Out=MixS(Tmp,T,1); + return + end + if Q1<m1 | Q1>M1 | Q2<m2 | Q2>M2 + T=min(max(P1,0),1); + Tmp=A+T*V; + Out=MixS(Tmp,T,1); + return + end + if abs(P2)<abs(Q2) + T=min(max(P1,0),1); + else + T=min(max(Q1,0),1); + end + Tmp=A+T*V; + Out=MixS(Tmp,T,1); +endfunction + + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Kukannozoku.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Kukannozoku.bin Binary files differnew file mode 100644 index 00000000..70d72423 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Kukannozoku.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Kukannozoku.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Kukannozoku.sci new file mode 100755 index 00000000..0e38dae7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Kukannozoku.sci @@ -0,0 +1,45 @@ +// 08.07.13 +// 08.10.16 + +function Res=Kukannozoku(Jokyo,KukanL) + Eps=10^(-6); + N=size(KukanL,1); + T1=Jokyo(1); T2=Jokyo(2); + Tmp=KukanL(1,:); + T1=max(T1,Tmp(1)); + Tmp=KukanL(N,:); + T2=min(T2,Tmp(2)); + Res=[]; + Flg=0; + for I=1:N + Ku=KukanL(I,:); + if Flg==0 + if Ku(2)<T1 + Res=[Res;Ku]; + else + Flg=1; + if Ku(1)<T1-Eps + Tmp=[Ku(1),T1]; + Res=[Res;Tmp]; + end; + if Ku(2)>T2+Eps + Tmp=[T2,Ku(2)]; + Res=[Res;Tmp]; + end; + end; + elseif Flg==1 + if Ku(2)<T2 + continue; + else + Flg=2; + if Ku(1)<T2-Eps + Ku=[T2,Ku(2)]; + end; + Res=[Res;Ku]; + end; + else + Res=[Res;Ku]; + end; + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Kukeiwake.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Kukeiwake.bin Binary files differnew file mode 100644 index 00000000..0d78251c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Kukeiwake.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Kukeiwake.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Kukeiwake.sci new file mode 100755 index 00000000..4e38175f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Kukeiwake.sci @@ -0,0 +1,62 @@ +// 08.05.30 + +function Out=Kukeiwake(PL) + global XMIN XMAX YMIN YMAX; + Eps=10.0^(-6); + NW=[XMIN,YMAX]; SW=[XMIN,YMIN]; + SE=[XMAX,YMIN]; NE=[XMAX,YMAX]; + Sikaku=[NW;SW;SE;NE;NW]; + Kt=IntersectcrvsPp(PL,Sikaku); + if Mixlength(Kt)~=2 + disp('not two points') + return + end + Tmp=Op(1,Kt); + Pt1=Op(1,Tmp); + N1=Trunc(Op(2,Tmp)); + M1=Op(3,Tmp); + Tmp=Op(2,Kt); + Pt2=Op(1,Tmp); + N2=Trunc(Op(2,Tmp)); + M2=Op(3,Tmp); + T1=ParamonCurve(Pt1,M1,Sikaku); + T2=ParamonCurve(Pt2,M2,Sikaku); + QL=[]; + if Vecnagasa(Pt1,PL(N1+1,:))>Eps + QL=[Pt1]; + end + QL=[QL;PL(N1+1:N2,:)]; + if Vecnagasa(Pt2,PL(N2,:))>Eps + QL=[QL;Pt2]; + end + HidariL=QL; + Ms=M2+1; Me=M1; + if T1<T2+Eps Me=M1+4; end + for M=Ms:Me + Tmp=HidariL(size(HidariL,1),:); + P=Sikaku(modulo(M-1,4)+1,:); + if Vecnagasa(Tmp,P)>Eps + HidariL=[HidariL;P]; + end + end + Tmp=HidariL(size(HidariL,1),:); + if Vecnagasa(Tmp,Pt1)>Eps + HidariL=[HidariL;Pt1]; + end + MigiL=QL; + Ms=M2; Me=M1+1; + if T1>T2-Eps Me=Me-4; end; + for M=Ms:-1:Me + Tmp=MigiL(size(MigiL,1),:); + P=Sikaku(modulo(M-1,4)+1,:); + if Vecnagasa(Tmp,P)>Eps + MigiL=[MigiL;P] + end + end + Tmp=MigiL(size(MigiL,1),:); + if Vecnagasa(Tmp,Pt1)>Eps + MigiL=[MigiL;Pt1]; + end + Out=MixS(HidariL,MigiL); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Kyorihensuu.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Kyorihensuu.bin Binary files differnew file mode 100644 index 00000000..fdf86c27 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Kyorihensuu.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Kyorihensuu.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Kyorihensuu.sci new file mode 100755 index 00000000..a07a89d1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Kyorihensuu.sci @@ -0,0 +1,30 @@ +function Kyorihensuu(varargin) + if length(varargin)==0 + FL='default'; + else + FL=varargin(1); + if FL=='' + FL='tmp.tex' + end + end + StrM=[... + '\newlength{\Width}%',... + '\newlength{\Height}%',... + '\newlength{\Depth}%'... + ]; + if FL~='default' + Fid=mopen(FL,'w'); + mprintf('%s\n\n','Writing to '+FL); + end; + for I=1:size(StrM,2) + Str=StrM(I); + mprintf('%s\n',Str); + if FL~='default' + mfprintf(Fid,'%s\n',Str); + end + end + if FL~='default' + mclose(Fid) + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Kyoukai.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Kyoukai.bin Binary files differnew file mode 100644 index 00000000..fcb5da5c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Kyoukai.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Kyoukai.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Kyoukai.sci new file mode 100755 index 00000000..4090c2da --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Kyoukai.sci @@ -0,0 +1,144 @@ +// 08.05.18 +// 08.05.19 +// 08.05.20 +// 08.05.30 +// 08.09.19 +// 08.10.26 +// 09.01.15 "e" +// 09.05.18 +// 09.12.05 +// 16.11.03 Eps=10^(-5) +// 16.12.05 Eps=10^(-7) + +function PLall=Kyoukai(varargin) + global XMIN XMAX YMIN YMAX + Nargs=length(varargin); + Eps0=10^(-7); + DataL=[]; + for I=1:Nargs + Tmp=varargin(I); + if Mixtype(Tmp)==1 + Tmp1=MixS(Tmp); + DataL=Mixadd(DataL,Tmp1); + end + if Mixtype(Tmp)==2 + DataL=Mixadd(DataL,Tmp); + end + if Mixtype(Tmp)==3 + DataL=Mixjoin(DataL,Tmp); + end + end; + Eps=10.0^(-4); + PLall=[]; + Sflg=0; + N=Mixlength(DataL); + for I=1:N + Data=Op(I,DataL); + Tmp=Op(Mixlength(Data),Data); + if type(Tmp)==1 & size(Tmp,1)==1 & size(Tmp,2)>1 + Rg=Tmp ; Nd=Mixlength(Data)-1; + elseif type(Tmp)==10 + Rg=Tmp ; Nd=Mixlength(Data)-1; + else + Rg='c' ; Nd=Mixlength(Data); + end; + for J=1:Nd + Tmp=Op(J,Data); + if type(Tmp)==10 + Rg=Tmp; + continue + end + Points=Tmp; + P1=Ptstart(Points); + P2=Ptend(Points); + if J==1 + PL=Points; + Pfirst=P1; + Plast=P2; + if Nd>=2 + Tmp=Op(2,Data); + P=Ptstart(Tmp); + Q=Ptend(Tmp); + if norm(P2-P)>Eps & norm(P2-Q)>Eps + Tmp=size(PL,1); + PL=PL(Tmp:-1:1,:); + Pfirst=Ptstart(PL); + Plast=Ptend(PL); + end; + end + else + if norm(P1-Plast)<Eps + Stp=1; Ks=2; Ke=size(Points,1); + elseif norm(P2-Plast)<Eps + Stp=-1; Ks=size(Points,1)-1; Ke=1; + else + PL=[PL;%inf,%inf;Points]; + Sflg=1; + Pfirst=P1; + Plast=P2; + Stp=1; Ks=size(Points,1)-1; Ke=1; + end + for K=Ks:Stp:Ke + PL=[PL;Points(K,:)]; + end + Plast=Points(Ke,:); + end + end + if norm(Pfirst-Plast)>Eps + Np=size(PL,1); + if Rg=='c' + PL=[PL;Pfirst]; + elseif Rg=='s' + Tmp=[PL(1:Np,2);YMIN]; + Y=min(Tmp)-1; + P=[Plast(1),Y]; Q=[Pfirst(1),Y]; + PL=[PL;P;Q;Pfirst]; + elseif Rg=='n' + Tmp=[PL(1:Np,2);YMAX]; + Y=max(Tmp)+1; + P=[Plast(1),Y]; Q=[Pfirst(1),Y]; + PL=[PL;P;Q;Pfirst]; + elseif Rg=='w' + Tmp=[PL(1:Np,1);XMIN]; + X=min(Tmp)-1; + P=[X,Plast(2)]; Q=[X,Pfirst(2)]; + PL=[PL;P;Q;Pfirst]; + elseif Rg=='e' + Tmp=[PL(1:Np,1);XMAX]; + X=max(Tmp)+1; + P=[X,Plast(2)]; Q=[X,Pfirst(2)]; + PL=[PL;P;Q;Pfirst]; + elseif type(Rg)==1 & size(Rg,1)==1 & size(Rg,2)>1 + Tmp=Kukeiwake(PL); //Modified from here + Tmp1=Op(1,Tmp); + Tmp2=Naigai(Rg,Mix(Tmp1)); + if Tmp2==[1] + PL=Op(1,Tmp); + else + PL=Op(2,Tmp); // to here + end + end + end + Tmp=[Ptstart(PL)]; + for J=2:size(PL,1) + P=PL(J,:); + Q=Tmp(size(Tmp,1),:); + if norm(P-Q)>Eps then + Tmp=[Tmp;P]; + end + end + PL=Tmp; + PLall=Mixadd(PLall,PL); + end + if Mixlength(PLall)==1 & Sflg==0 + Tmp=Op(1,PLall); +// Tmp=Op(1,Tmp); + if norm(Ptstart(Tmp)-Ptend(Tmp))>Eps0 + Tmp=[Tmp;Ptstart(Tmp)]; + PLall=MixS(Tmp); + end + end; +endfunction; + + + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Letter.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Letter.bin Binary files differnew file mode 100644 index 00000000..7949b7bf --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Letter.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Letter.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Letter.sci new file mode 100755 index 00000000..7a7a4b78 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Letter.sci @@ -0,0 +1,100 @@ +// +// 09.12.25 + +function Letter(varargin) + global Wfile FID MEMORI; + Nargs=length(varargin); + for I=1:3:Nargs + Tmp=varargin(I); + P=Doscaling(Tmp); + X=P(1); + Y=P(2); + Houkou=varargin(I+1); + Mojiretu=varargin(I+2); + Hset=Houkou; + Vhoko='c'; + if mtlb_findstr(Hset,'n')~=[] + Vhoko='n'; Y=Y+MEMORI; + end + if mtlb_findstr(Hset,'s')~=[] + Vhoko='s'; Y=Y-MEMORI; + end + Hhoko='c'; + if mtlb_findstr(Hset,'e')~=[] + Hhoko='e'; X=X+MEMORI; + end + if mtlb_findstr(Hset,'w')~=[] + Hhoko='w'; X=X-MEMORI; + end + Hoko=Vhoko+Hhoko; + Suu='+-.0123456789'; + SuuL=Suu; + Hcode=ascii(Houkou); + J=1; Dstr=''; + while J<=length(Houkou) + Tmp=char(Hcode(J)); + if mtlb_findstr(SuuL,Tmp)~=[] + if Dstr=='' + Hk=char(Hcode(J-1)); + end + Dstr=Dstr+Tmp; + else + if Dstr~='' + Nmbr=msscanf(Dstr,'%f'); + D=Nmbr*MEMORI; + if Hk=='n' + Y=Y+D; + end + if Hk=='s' + Y=Y-D; + end + if Hk=='e' + X=X+D; + end + if Hk=='w' + X=X-D; + end + Dstr=''; + end + end + J=J+1; + end + if Dstr~='' + Nmbr=msscanf(Dstr,'%f'); + D=Nmbr*MEMORI; + if Hk=='n' + Y=Y+D; + end + if Hk=='s' + Y=Y-D; + end + if Hk=='e' + X=X+D; + end + if Hk=='w' + X=X-D; + end + end + CalcWidth(Hoko,Mojiretu); + CalcHeight(Hoko,Mojiretu); + Tmp='){\hspace*{\Width}'; + Str=Tmp+'\raisebox{\Height}{'+Mojiretu+'}}'; + if Wfile=='default' + mprintf('%s','\put('); + mprintf('%6.4f%s%6.4f',X,',',Y); + mprintf('%s%s\n',Str,'%'); + mprintf('%s\n','%'); + else + mfprintf(FID,'%s','\put('); + mfprintf(FID,'%6.4f%s%6.4f',X,',',Y); + mfprintf(FID,'%s%s\n',Str,'%'); + mfprintf(FID,'%s\n','%'); + end + if Wfile=='default' + mprintf('%s\n','%'); + else + mfprintf(FID,'%s\n','%'); + end + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Letterrot.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Letterrot.bin Binary files differnew file mode 100644 index 00000000..dc1116b4 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Letterrot.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Letterrot.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Letterrot.sci new file mode 100755 index 00000000..f99917cf --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Letterrot.sci @@ -0,0 +1,36 @@ +// 08.05.31 +// 08.08.24 +// 09.12.25 + +function Letterrot(varargin) + global MEMORI; + P=varargin(1); + V=varargin(2); N=3; + P=Doscaling(P); + V=Doscaling(V); + Tmov=0; + Tmp=varargin(N); + if type(Tmp)==1 + Tmov=Tmp; N=N+1; + end + Nmov=0; + Tmp=varargin(N); + if type(Tmp)==1 then + Nmov=Tmp; N=N+1; + end + Mojiretu=varargin(N); + Tv=1/Vecnagasa(V)*V; + Nv=[-Tv(2),Tv(1)]; + P=P+MEMORI*Tmov*Tv+MEMORI*Nmov*Nv; + Tmp=acos(V(1)/Vecnagasa(V)); + Theta=round(Tmp*180/%pi); + if V(2)>=0 + Units=''; + else + Units='units=-360,'; + end + Tmp='\rotatebox['+Units+'origin=c]{'+string(Theta); + Tmp=Tmp+'}{'+Mojiretu+'}'; + Letter(P,"c",Tmp); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Lineplot.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Lineplot.bin Binary files differnew file mode 100644 index 00000000..b8e9311a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Lineplot.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Lineplot.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Lineplot.sci new file mode 100755 index 00000000..bc44c2e9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Lineplot.sci @@ -0,0 +1,44 @@ +// 09.10.09 +// 09.10.12 +// 09.11.01 +// 09.11.12 +// 09.12.06 +// 10.12.04 + +function Out=Lineplot(varargin) + Nargs=length(varargin); + A=varargin(1); + if type(A)==1 // 09.11.12 from + Tmp=length(A); + if Tmp>3 + B=A(Tmp/2+1:Tmp); + A=A(1:Tmp/2); + Is=2; + else + B=varargin(2); + Is=3; + end; + else + B=A(2); + A=A(1); + Is=2; + end; // upto + Mag=100; Semi=''; + for I=Is:Nargs + Tmp=varargin(I); + select type(Tmp) + case 1 + Mag=Tmp; + case 10 + Semi=Tmp; + end; + end; + V= Mag/norm(B-A)*(B-A) // 10.12.04 from here + if Semi=="" + Out=Listplot(A-V,A+V) + elseif Semi=="+" + Out=Listplot(A,A+V) + else + Out=Listplot(A-V,A) + end // 10.12.04 to here +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Listplot.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Listplot.bin Binary files differnew file mode 100644 index 00000000..5f1081ec --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Listplot.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Listplot.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Listplot.sci new file mode 100755 index 00000000..0bc9f736 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Listplot.sci @@ -0,0 +1,24 @@ +// +// 08.07.13 +// 09.06.13 + +function Z=Listplot(varargin) + Z=[]; + for I=1:length(varargin) + Data=varargin(I); + if Mixtype(Data)==1 + if size(Data,1)==1 + Tmp=matrix(Data,2,size(Data,2)/2); + Z=[Z;Tmp']; + else + Z=[Z;Data]; + end; + else + for J=1:Mixlength(Data) + Tmp=Mixop(J,Data); + Z=[Z;Tmp]; + end + end + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/MakeBowdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/MakeBowdata.bin Binary files differnew file mode 100644 index 00000000..e44f369d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/MakeBowdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/MakeBowdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/MakeBowdata.sci new file mode 100755 index 00000000..27e70d48 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/MakeBowdata.sci @@ -0,0 +1,49 @@ +// +// 08.08.24 +// 10.01.02 + +function Out=MakeBowdata(PA,PB,H) + global BOWSTART BOWEND + BOWSTART=PA; + BOWEND=PB; + Eps=10^(-5); + D=1/2*Vecnagasa(PB-PA); + R=(H^2+D^2)/(2*H); + A1=PA(1); A2=PA(2); + B1=PB(1); B2=PB(2); + if abs(A2-B2)>Eps + x=poly(0,'X'); + y=-(A1-B1)*x/(A2-B2)+(1/2)*(A1^2+A2^2-B1^2-B2^2)/(A2-B2); + Eq1=(A1-x)^2+(A2-y)^2-R^2; + Tmp=coeff(Eq1); + C0=Tmp(1); C1=Tmp(2); C2=Tmp(3); + Det=sqrt(C1^2-4*C0*C2); + Ansx1=(-C1+Det)/(2*C2); + Ansx2=(-C1-Det)/(2*C2); + Tmp=horner(y,Ansx1); + PC=[Ansx1,Tmp]; + Tmp=horner(y,Ansx2); + PC2=[Ansx2,Tmp]; + else + Tmp=0.5*(PA+PB); + PC=Tmp+[0,R-H]; + PC2=Tmp-[0,R-H]; + end; + VA=PA-PC; + VB=PB-PC; + if VA(1)*VB(2)-VA(2)*VB(1)<0 + PC=PC2; + end + AngA=acos((PA(1)-PC(1))/R); + if PA(2)-PC(2)<0 + AngA=-AngA; + end + AngB=acos((PB(1)-PC(1))/R); + if PB(2)-PC(2)<0 + AngB=-AngB; + end + if AngA>AngB + AngB=AngB+2*%pi; + end + Out=Mixmake(PC,R,AngA,AngB); +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/MakeCurves.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/MakeCurves.bin Binary files differnew file mode 100644 index 00000000..f1333732 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/MakeCurves.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/MakeCurves.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/MakeCurves.sci new file mode 100755 index 00000000..f3bbd3ec --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/MakeCurves.sci @@ -0,0 +1,62 @@ +// +// 09.12.25 +// 10.01.01 +// 10.12.02 ( debugged for norm()==0 ) + +function Outdata=MakeCurves(varargin) + Figdata=varargin(1); + Ptout=1; + if length(varargin)>=2 + Ptout=varargin(2); + end + Eps=10.0^(-6); + IndM=Dataindex(Figdata); + Atos=[]; + for Nd=1:size(IndM,1) + Tmp=IndM(Nd,:); + Motos=Figdata(Tmp(1):Tmp(2),:); + All=size(Motos,1); + if size(Motos,1)==1 + if InWindow(Motos)=='o' + continue; + end; + if Ptout==1 + Drwpt(Motos(1,:)); + else + Atos=[Atos;%inf,%inf;Doscaling(Motos)]; + end + continue + end + Crv=[]; + for I=2:All + P=Motos(I-1,:); + Q=Motos(I,:); + Snbn=MeetWindow(P,Q); + if Snbn==[] + if Crv~=[] + Atos=[Atos;%inf,%inf;Doscaling(Crv)]; + Crv=[]; + end + else + if norm(Snbn(1,:)-Snbn(2,:))<Eps // 10.12.02 + continue; + end; + if Crv==[] + Crv=Snbn + else + Tmp=Crv(size(Crv,1),:); + if norm(Tmp-Snbn(1,:))<Eps + Crv=[Crv;Snbn(2,:)]; + else + Atos=[Atos;%inf,%inf;Doscaling(Crv)]; + Crv=Snbn; + end + end + end + end + if size(Crv,1)>=2 + Atos=[Atos;%inf,%inf;Doscaling(Crv)]; + end + end + Outdata=Atos(2:size(Atos,1),:); +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/MakecutbycrvL.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/MakecutbycrvL.bin Binary files differnew file mode 100644 index 00000000..1c1d8d80 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/MakecutbycrvL.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/MakecutbycrvL.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/MakecutbycrvL.sci new file mode 100755 index 00000000..81b0492f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/MakecutbycrvL.sci @@ -0,0 +1,45 @@ +// 08.09.19 +// 08.10.15 +// 08.12.21 + +function AnsL=MakecutbycrvL(Out1,CutuvL,Uveqstr,Uname,Vname,Eps) + if CutuvL==[] + if Mixtype(Out1)==1 + AnsL=Mix(Out1); + else + AnsL=Out1; + end; + return; + end; + AnsL=[]; + ParL=Partitionseg(Out1,CutuvL,Eps); + Flg=0; + for J=1:length(ParL)-1 + Tmp=(ParL(J)+ParL(J+1))*0.5; + Tmp=PointonCurve(Tmp,Out1); + Tmp1='('+string(Tmp(1))+')'; + Tmp2='('+string(Tmp(2))+')'; + Tmp=strsubst(Uveqstr,Uname,Tmp1); + Tmp=strsubst(Tmp,Vname,Tmp2); + Tmp=evstr(Tmp); + if Tmp>0 + if Flg==0 + P1=ParL(J); + end; + Flg=1 + else + if Flg==1 + P2=ParL(J); + Tmp=Partcrv(P1,P2,Out1); + AnsL=Mixadd(AnsL,Tmp); + end; + Flg=0 + end; + end; + if Flg==1 + P2=ParL(length(ParL)); + Tmp=Partcrv(P1,P2,Out1); + AnsL=Mixadd(AnsL,Tmp); + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makehasen.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makehasen.bin Binary files differnew file mode 100644 index 00000000..eb542783 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makehasen.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makehasen.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makehasen.sci new file mode 100755 index 00000000..9cf82362 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makehasen.sci @@ -0,0 +1,119 @@ +function Makehasen(Figdata,Sen,Gap,Ptn) + global Wfile FID; + Eps=10.0^(-6); + Clist=MakeCurves(Figdata); + DinM=Dataindex(Clist); + for N=1:size(DinM,1) + Tmp=DinM(N,:); + Data=Clist(Tmp(1):Tmp(2),:); + Dtall=size(Data,1); + Len=0; + Lenlist=[0]; + for I=2:Dtall + Len=Len+Vecnagasa(Data(I,:)-Data(I-1,:)); + Lenlist=[Lenlist,Len]; + end + Lenall=Lenlist(Dtall); + if Lenall==0 + continue + end + Kari=(Sen+Gap)*0.1; + Naga=Sen*0.1; + Tobi=Gap*0.1; + if Vecnagasa(Data(1,:)-Data(Dtall,:))<Eps + Nsen=max(ceil(Lenall/Kari),3); + SegUnit=Lenall/Nsen; + Naga=SegUnit*Sen/(Sen+Gap); + Tobi=SegUnit*Gap/(Sen+Gap); + SegList=[0:SegUnit:(Nsen-1)*SegUnit]; + else + if Ptn==0 + Nsen=max(ceil((Lenall+Tobi)/Kari),3); + SegUnit=Lenall*(Sen+Gap)/(Nsen*Sen+(Nsen-1)*Gap); + Naga=SegUnit*Sen/(Sen+Gap); + Tobi=SegUnit*Gap/(Sen+Gap); + SegList=[0:SegUnit:(Nsen-1)*SegUnit]; + else + Nsen=max(ceil((Lenall+Naga)/Kari),3); + SegUnit=Lenall*(Sen+Gap)/((Nsen-1)*Sen+Nsen*Gap); + Naga=SegUnit*Sen/(Sen+Gap); + Tobi=SegUnit*Gap/(Sen+Gap); + SegList=[Tobi:SegUnit:Tobi+(Nsen-2)*SegUnit]; + end + end + Hajime=1; Owari=1; + Mojisu=0; + for I=1:length(SegList) + Len=SegList(I); + J=Owari; + while Len>=Lenlist(J)-Eps + if J==Dtall + break + end + J=J+1; + end + Hajime=J-1; + J=Hajime; + while Len+Naga>Lenlist(J)-Eps + if J==Dtall + break + end + J=J+1 + end + Owari=J-1; + T=(Len-Lenlist(Hajime))... + /(Lenlist(Hajime+1)-Lenlist(Hajime)); + P=Data(Hajime,:)+T*(Data(Hajime+1,:)-Data(Hajime,:)); + X=string(round(MilliIn*P(1))); + Y=string(-round(MilliIn*P(2))); + Str='\special{pa '+X+' '+Y+'}'; + if Wfile=='default' + mprintf('%s',Str); + else + mfprintf(FID,'%s',Str); + end; + Mojisu=Mojisu+length(Str); + for J=Hajime+1:Owari + P=Data(J,:); + X=string(round(MilliIn*P(1))); + Y=string(-round(MilliIn*P(2))); + Str='\special{pa '+X+' '+Y+'}'; + if Wfile=='default' + mprintf('%s',Str); + else + mfprintf(FID,'%s',Str); + end; + Mojisu=Mojisu+length(Str); + end + T=(Len+Naga-Lenlist(Owari))... + /(Lenlist(Owari+1)-Lenlist(Owari)); + P=Data(Owari,:)+T*(Data(Owari+1,:)-Data(Owari,:)); + X=string(round(MilliIn*P(1))); + Y=string(-round(MilliIn*P(2))); + Str1='\special{pa '+X+' '+Y+'}'; + Str2='\special{fp}'; + if Wfile=='default' + mprintf('%s',Str1); + mprintf('%s',Str2); + else + mfprintf(FID,'%s',Str1); + mfprintf(FID,'%s',Str2); + end; + Mojisu=Mojisu+length(Str1)+length(Str2); + if Mojisu>80 + if Wfile=='default' + mprintf('%s\n','%'); + else + mfprintf(FID,'%s\n','%'); + end; + Mojisu=0; + end + end + end + if Wfile=='default' + mprintf('%s\n%s\n','%','%'); + else + mfprintf(FID,'%s\n%s\n','%','%'); + end; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makeliststr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makeliststr.bin Binary files differnew file mode 100644 index 00000000..ec29163f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makeliststr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makeliststr.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makeliststr.sci new file mode 100755 index 00000000..e9915e1b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makeliststr.sci @@ -0,0 +1,41 @@ +// 09.10.21 + +function Out=Makeliststr(L) + Out='list('; + for I=1:length(L) + Dt=L(I); + if type(Dt)==1 + if length(Dt)==1 + Dts=string(Dt); + else + Dts='['; + for J=1:size(Dt,1) + for K=1:size(Dt,2) + Dts=Dts+string(Dt(J,K)); + if K<size(Dt,2) + Dts=Dts+','; + end; + end; + if J<size(Dt,1) + Dts=Dts+';'; + else + Dts=Dts+']'; + end; + end; + end; + end; + if type(Dt)==10 + Dts=Prime()+Dt+Prime(); + end; + if type(Dt)==15 + Dts=Makeliststr(Dt); + end; + Out=Out+Dts; + if I<length(L) + Out=Out+','; + else + Out=Out+')'; + end; + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makesfcutoffdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makesfcutoffdata.bin Binary files differnew file mode 100644 index 00000000..a5b313ff --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makesfcutoffdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makesfcutoffdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makesfcutoffdata.sci new file mode 100755 index 00000000..e24525e1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makesfcutoffdata.sci @@ -0,0 +1,345 @@ +// 08.09.19 +// 08.09.24 +// 08.10.09 +// 08.10.10 +// 08.10.15 +// 08.12.06 +// 08.12.21 +// 08.12.31 +// 10.02.16 Eps__ ( And Mislength, Mixop replaced ) +// 13.10.21 ( __ added to varibles ) + +function FsL__=Makesfcutoffdata(MS__) + global IMPLICITDATA CUSPDATA CUSPPT CUSPSPLITPT + global BORDERPT OTHERPARTITION PARTITIONPT + global HIDDENDATA BORDERHIDDENDATA; + timer(); + Nargs__=length(MS__); + HT__=Op(1,MS__); + PT__=Op(2,MS__); + Fd__=Op(3,MS__); + CutD__=Op(4,MS__); + Np__=[50,50]; + Eps__=[0.05,1]; // + Eps__2=0.2; + Sgnstr__='+'; + K__=0; + for I__=5:Nargs__ + Tmp__=Op(I__,MS__); + if type(Tmp__)==10 + Sgnstr__=Tmp__; + end; + if type(Tmp__)==1 // from + K__=K__+1; + if K__==1 + Np__=Tmp__; + if length(Np__)==1 + Np__=[Np__,Np__]; + end; + end; + if K__==2 + Eps__=Tmp__; + if length(Eps__)==1 + Eps__=[Eps__,1]; + end; + end; + if K__==3 + Eps__2=Tmp__; + end; + end; // upto + end; + Tmp__=Op(2,Fd__); + K__=mtlb_findstr(Tmp__,'='); + Xname__=part(Tmp__,1:K__-1); + Tmp__=Op(3,Fd__); + K__=mtlb_findstr(Tmp__,'='); + Yname__=part(Tmp__,1:K__-1); + Tmp__=Op(1,Fd__); + K__=mtlb_findstr(Tmp__,'='); + if K__~=[] + Zname__=part(Tmp__,1:K__-1); + else + Tmp__=Op(4,Fd__); + K__=mtlb_findstr(Tmp__,'='); + Zname__=part(Tmp__,1:K__-1); + end; + Fd__L=Fullformfunc(Fd__); + Fxy__=Op(1,Fd__L); + Xf__=Op(2,Fd__L); + Yf__=Op(3,Fd__L); + Zf__=Op(4,Fd__L); + DrwS__=Op(7,Fd__L); + Tmp__=Op(5,Fd__L); + K__=mtlb_findstr(Tmp__,'='); + Uname__=part(Tmp__,1:K__-1); + Urg__=evstr(part(Tmp__,K__+1:length(Tmp__))); + Tmp__=Op(6,Fd__L); + K__=mtlb_findstr(Tmp__,'='); + Vname__=part(Tmp__,1:K__-1); + Vrg__=evstr(part(Tmp__,K__+1:length(Tmp__))); + Umin__=Urg__(1); Umax__=Urg__(2); + Vmin__=Vrg__(1); Vmax__=Vrg__(2); + Fugou__=1; + if Sgnstr__=='-' | Sgnstr__=='n' + Fugou__=-1; + end; + if Mixtype(CutD__)~=1 + V1__=Op(1,CutD__); + Tmp__=Op(2,CutD__); + if length(Tmp__)>1 + D__=V1__(1)*Tmp__(1)+V1__(2)*Tmp__(2)+V1__(3)*Tmp__(3); + else + D__=Tmp__; + end; + Tmp__=string(V1__(1))+'*'+Xname__+'+'; + Tmp__=Tmp__+string(V1__(2))+'*'+Yname__+'+'; + Tmp__=Tmp__+string(V1__(3))+'*'+Zname__+'-'; + Eq__=Tmp__+string(D__); + elseif type(CutD__)==1 + V1__=CutD__(1:3); + D__=CutD__(4); + Tmp__=string(V1__(1))+'*'+Xname__+'+'; + Tmp__=Tmp__+string(V1__(2))+'*'+Yname__+'+'; + Tmp__=Tmp__+string(V1__(3))+'*'+Zname__+'+'; + Eq__=Tmp__+string(D__); + else + K__=mtlb_findstr(CutD__,'='); + if K__>0 + Tmp__1=part(CutD__,1:K__-1); + Tmp__2=part(CutD__,K__+1:length(CutD__)); + Eq__=Tmp__1+'-('+Tmp__2+')'; + else + Eq__=CutD__; + end; + end; + Eq__='('+string(Fugou__)+')*('+Eq__+')'; + Tmp__=strsubst(Eq__,Xname__,'('+Xf__+')'); + Tmp__=strsubst(Tmp__,Yname__,'('+Yf__+')'); + Uveq__=strsubst(Tmp__,Zname__,'('+Zf__+')'); + Tmp__1=Op(5,Fd__L); + Tmp__2=Op(6,Fd__L); + CutuvL__=Implicitplot(Uveq__,Tmp__1,Tmp__2,Np__); + EkL__=[]; + for I__=1:length(CutuvL__) + Out__1=Op(I__,CutuvL__); + Out__2=[]; + for J__=1:size(Out__1,1) + Tmp__1=Out__1(J__,1); + Tmp__2=Out__1(J__,2); + Tmp__=strsubst(Xf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Xv__=evstr(Tmp__); + Tmp__=strsubst(Yf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Yv__=evstr(Tmp__); + Tmp__=strsubst(Zf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Zv__=evstr(Tmp__); + Out__2=[Out__2,[Xv__,Yv__,Zv__]]; + end; + Tmp__=Spaceline(Out__2); + EkL__=Mixjoin(EkL__,list(Tmp__)); + end; + Tmp__=mtlb_findstr(DrwS__,'e'); + if length(Tmp__)~=0 + Tmp__=Paramplot('[Umax__,T]','T=[Vmin__,Vmax__]','N='+string(Np__(2))); + Tmp__L=MakecutbycrvL(Tmp__,CutuvL__,Uveq__,Uname__,Vname__,Eps__(1)); + for I__=1:length(Tmp__L) + Out__1=Op(I__,Tmp__L); + Out__2=[]; + for J__=1:size(Out__1,1) + Tmp__1=Out__1(J__,1); + Tmp__2=Out__1(J__,2); + Tmp__=strsubst(Xf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Xv__=evstr(Tmp__); + Tmp__=strsubst(Yf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Yv__=evstr(Tmp__); + Tmp__=strsubst(Zf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Zv__=evstr(Tmp__); + Out__2=[Out__2,[Xv__,Yv__,Zv__]]; + end; + Tmp__=Spaceline(Out__2); + EkL__=Mixjoin(EkL__,list(Tmp__)); + end + end; + Tmp__=mtlb_findstr(DrwS__,'n'); + if length(Tmp__)~=0 + Tmp__=Paramplot('[T,Vmax__]','T=[Umin__,Umax__]','N='+string(Np__(1))); + Tmp__L=MakecutbycrvL(Tmp__,CutuvL__,Uveq__,Uname__,Vname__,Eps__(1)); + for I__=1:length(Tmp__L) + Out__1=Op(I__,Tmp__L); + Out__2=[]; + for J__=1:size(Out__1,1) + Tmp__1=Out__1(J__,1); + Tmp__2=Out__1(J__,2); + Tmp__=strsubst(Xf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Xv__=evstr(Tmp__); + Tmp__=strsubst(Yf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Yv__=evstr(Tmp__); + Tmp__=strsubst(Zf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Zv__=evstr(Tmp__); + Out__2=[Out__2,[Xv__,Yv__,Zv__]]; + end; + Tmp__=Spaceline(Out__2); + EkL__=Mixjoin(EkL__,list(Tmp__)); + end + end; + Tmp__=mtlb_findstr(DrwS__,'w'); + if length(Tmp__)~=0 + Tmp__=Paramplot('[Umin__,T]','T=[Vmin__,Vmax__]','N='+string(Np__(2))); + Tmp__L=MakecutbycrvL(Tmp__,CutuvL__,Uveq__,Uname__,Vname__,Eps__(1)); + for I__=1:length(Tmp__L) + Out__1=Op(I__,Tmp__L); + Out__2=[]; + for J__=1:size(Out__1,1) + Tmp__1=Out__1(J__,1); + Tmp__2=Out__1(J__,2); + Tmp__=strsubst(Xf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Xv__=evstr(Tmp__); + Tmp__=strsubst(Yf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Yv__=evstr(Tmp__); + Tmp__=strsubst(Zf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Zv__=evstr(Tmp__); + Out__2=[Out__2,[Xv__,Yv__,Zv__]]; + end; + Tmp__=Spaceline(Out__2); + EkL__=Mixjoin(EkL__,list(Tmp__)); + end + end; + Tmp__=mtlb_findstr(DrwS__,'s'); + if length(Tmp__)~=0 + Tmp__=Paramplot('[T,Vmin__]','T=[Umin__,Umax__]','N='+string(Np__(1))); + Tmp__L=MakecutbycrvL(Tmp__,CutuvL__,Uveq__,Uname__,Vname__,Eps__(1)); + for I__=1:length(Tmp__L) + Out__1=Op(I__,Tmp__L); + Out__2=[]; + for J__=1:size(Out__1,1) + Tmp__1=Out__1(J__,1); + Tmp__2=Out__1(J__,2); + Tmp__=strsubst(Xf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Xv__=evstr(Tmp__); + Tmp__=strsubst(Yf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Yv__=evstr(Tmp__); + Tmp__=strsubst(Zf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Zv__=evstr(Tmp__); + Out__2=[Out__2,[Xv__,Yv__,Zv__]]; + end; + Tmp__=Spaceline(Out__2); + EkL__=Mixjoin(EkL__,list(Tmp__)); + end + end; + Fbdxy__=[]; + for I__=1:length(EkL__) + Out__1=Op(I__,EkL__); + Out__2=[]; + for J__=1:size(Out__1,1) + Tmp__=Out__1(J__,1:2); + Out__2=[Out__2,Tmp__]; + end; + Tmp__=Listplot(Out__2); + Fbdxy__=Mixjoin(Fbdxy__,list(Tmp__)); + end; + if PT__=='pers' + [Zval__,Xval__,Yval__]=Evlptablepers(Mix(Fd__,Np__)); + end; + if PT__=='para' + [Zval__,Xval__,Yval__]=Evlptablepara(Mix(Fd__,Np__)); + end; + Mixdisp(Mix('Ridge Equation obtained ',timer())); + Out__2=Implicitplot(Zval__,Xval__,Yval__); + IMPLICITDATA=Out__2; + Tmp__L=[]; + for I__=1:length(Out__2) + Tmp__1=Op(I__,Out__2); + Tmp__=MakecutbycrvL(Tmp__1,CutuvL__,Uveq__,Uname__,Vname__,Eps__(1)); + for J__=1:length(Tmp__) + Tmp__L=Mixjoin(Tmp__L,Op(J__,Tmp__)); + end; + end; + Out__3=Tmp__L; + IMPLICITDATA=Out__3; + Mixdisp(Mix('ImplicitData obtained ',timer())); + if PT__=='pers' + Out__4=Cuspsplitpers(Out__3,Fd__,Eps__(1)); + end; + if PT__=='para' + Out__4=Cuspsplitpara(Out__3,Fd__,Eps__(1)); + end; + CUSPDATA=Out__4; + CUSPT=CUSPSPLITPT; + Mixdisp(Mix('CuspData obtained ',timer())); + FkL__=Mixjoin(EkL__,Out__4); + if PT__=='pers' + Fall__=Projpers(FkL__); + end; + if PT__=='para' + Fall__=Projpara(FkL__); + end; + if HT__=='raw' + Mixdisp(Mix('BorderData obtained ',timer())); + FsL__=FkL__; + return; + end; + BORDERPT=[]; + Tmp__=[]; + for I__=1:length(Fall__) + Tmp__=Mixjoin(Tmp__,list([])); + end; + OTHERPARTITION=Tmp__; + FsL__=[]; + BORDERHIDDENDATA=[]; + for I__=1:length(Fall__) + if PT__=='pers' + Tmp__=Projpers(Op(I__,FkL__)); + end; + if PT__=='para' + Tmp__=Projpara(Op(I__,FkL__)); + end; + ParL__=Partitionseg(Tmp__,Fall__,Eps__(1),Eps__2,I__); + if length(PARTITIONPT)>2 + Tmp__=length(PARTITIONPT)-1; + Tmp__1=BORDERPT; + for J__=2:Tmp__ + Tmp__2=Op(J__,PARTITIONPT); + Tmp__1=Mixjoin(Tmp__1,list(Tmp__2)); + end; + BORDERPT=Tmp__1; + end; + if PT__=='pers' + if Fxy__=='p' + Tmp__1=Op(I__,FkL__); + Tmp__=Nohiddenpers2(ParL__,Tmp__1,Fd__,Uveq__,Np__,Eps__); + else + Tmp__1=Op(I__,FkL__); + Tmp__=Nohiddenpers2(ParL__,Tmp__1,Fd__,Uveq__,Np__,Eps__); +// Tmp__2=Mix(Fxy__,Fbdxy__,Xname__,Yname__); +// Tmp__=Nohiddenpers(ParL__,Tmp__1,Tmp__2); + end; + else + if Fxy__=='p' + Tmp__1=Op(I__,FkL__); + Tmp__=Nohiddenpara2(ParL__,Tmp__1,Fd__,Uveq__,Np__,Eps__); + else + Tmp__1=Op(I__,FkL__); + Tmp__=Nohiddenpara2(ParL__,Tmp__1,Fd__,Uveq__,Np__,Eps__); +// Tmp__2=Mix(Fxy__,Fbdxy__,Xname__,Yname__); +// Tmp__=Nohiddenpara(ParL__,Tmp__1,Tmp__2); + end; + end; + BORDERHIDDENDATA=Mixjoin(BORDERHIDDENDATA,HIDDENDATA); + FsL__=Mixjoin(FsL__,Tmp__); + end; + Mixdisp(Mix('BorderData obtained ',timer())); +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makeshasen.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makeshasen.bin Binary files differnew file mode 100644 index 00000000..04b49b15 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makeshasen.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makeshasen.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makeshasen.sci new file mode 100755 index 00000000..443751be --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makeshasen.sci @@ -0,0 +1,41 @@ +// 08.05.20 +// 09.10.05 +// 10.01.20 +// 10.02.01 + +function Out=Makeshasen(PtnL,PA,V,Bdy) + Eps=10.0^(-6); + TenL=KoutenList(PA,V,Bdy); + Nten=length(TenL); + Call=length(Bdy); + Ptn=zeros(1,Call); + Out=list(); + GL=[] + Te=-10.0^6; + for I=1:Nten-1 + TenP=Op(I,TenL); TenQ=Op(I+1,TenL); + Ts=Op(1,TenP); + P=Op(2,TenP); Q=Op(2,TenQ); + NC=Op(4,TenP); + Tmp=modulo(Ptn(NC)+1,2); + Ptn(1,NC)=Tmp; + if Op(1,TenQ)-Ts>Eps + if Member(Ptn,PtnL) + if abs(Te-Ts)>Eps + if GL~=[] + J=length(Out); + Out(J+1)=GL; + end; + Tmp=Listplot(P,Q); + GL=Tmp; + else + GL=[GL;Q]; + end + Te=Op(1,TenQ); + end + end + end + if size(GL,1)>0 + Out=Mixjoin(Out,list(GL)) + end; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makeskeletondata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makeskeletondata.bin Binary files differnew file mode 100644 index 00000000..ae09526a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makeskeletondata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makeskeletondata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makeskeletondata.sci new file mode 100755 index 00000000..99ad5910 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makeskeletondata.sci @@ -0,0 +1,171 @@ +// 08.07.13 +// 08.10.16 +// 09.03.05 +// 09.05.12 +// 10.05.09 +// 14.07.05 +// 16.12.24 ( when kukanL=[] ) + +function Allres=Makeskeletondata(Obj2L,Plt2L,R0,Eps2) + Eps=10.0^(-3); + Dmat=[]; + Dind=[]; + for I=1:Mixlength(Plt2L) + Dt=Mixop(I,Plt2L); + N1=size(Dmat,1)+1; + Dmat=[Dmat;Dt]; + N2=size(Dmat,1); + Dind=[Dind;N1,N2]; + end; + Nind=size(Dind,1); + Allres=[]; + for Nobj=1:Mixlength(Obj2L) + Plt2=Mixop(Nobj,Obj2L); + PhL=Plt2(:,1:2); + ClipL=[]; + for Ns=1:size(PhL,1)-1 + P1=PhL(Ns:Ns+1,:); + for I=1:size(Dind,1) + Tmp=Dmat(Dind(I,1):Dind(I,2),:); + P2=Tmp(:,1:2); + KC=IntersectcrvsPp(P1,P2,Eps); + if Mixlength(KC)>0 + for J=1:Mixlength(KC) + P=Mixop(1,Mixop(J,KC)); + Tmp=Mixop(2,Mixop(J,KC)); + if Tmp<1+Eps & Ns==1 // 2010.05.09 + continue; + end; + if Tmp>Numptcrv(P1)-Eps & Ns==size(PhL,1)-1 + continue; + end; // + N1=Ns; + N2=Mixop(3,Mixop(J,KC)); + Pa=Plt2(N1,1:2); + Za=Plt2(N1,3); + Pb=Plt2(N1+1,1:2); + Zb=Plt2(N1+1,3); + if norm(Pa-Pb)<Eps // added from here + continue; + end; // upto here + T1=norm(Pa-P)/norm(Pa-Pb); + Z1=(1-T1)*Za+T1*Zb; + Tmp=Dmat(Dind(I,1):Dind(I,2),:); + Pa=Tmp(N2,1:2); + Za=Tmp(N2,3); + Pb=Tmp(N2+1,1:2); + Zb=Tmp(N2+1,3); + if norm(Pa-Pb)<Eps // added from here + continue; + end; // upto here + T2=norm(Pa-P)/norm(Pa-Pb); + Z2=(1-T2)*Za+T2*Zb; + if Z1<Z2-Eps2 + if ClipL==[] // corrected from here + Tmp=1; + else + Tmp1=ClipL(:,1)-P(1); + Tmp2=ClipL(:,2)-P(2); + Tmp3=Tmp1.^2+Tmp2.^2; // 20140705 + Tmp=min(Tmp3); + end; // upto here + if Tmp>Eps^2 + Tmp1=P1(2,:)-P1(1,:); + Tmp2=Pb-Pa; + Tmp3=Naiseki(Tmp1,Tmp2); + Tmp3=Tmp3/norm(Tmp1)/norm(Tmp2); + Tmp=1-0.5*Tmp3^2; + ClipL=[ClipL;P,N1,T1,R0/Tmp]; + end; + end; + end; + end; + end; + end; + Te=size(Plt2,1); + KukanL=[1.0,Te]; + P1=PhL; + if size(ClipL,1)>0 + for I=1:size(ClipL,1) + P=ClipL(I,1:2); + NN=ClipL(I,3); + T=NN+ClipL(I,4); + R=ClipL(I,5); + Flg=0; + for J=NN:-1:1 + Q=PointonCurve(J,P1); + if norm(P-Q)<R + continue; + end + Flg=1; + break; + end; + if Flg==0 + T1=1; + else + T1=J; T2=T; + H=T2-T1; + for N=1:10 + H=H*0.5; + Q=PointonCurve(T1+H,P1); + if norm(P-Q)<R + T2=T2-H; + else + T1=T1+H; + end; + end; + end; + Ku=[T1]; + Flg=0; + for J=NN+1:Te + Q=PointonCurve(J,P1); + if norm(P-Q)<R + continue; + end; + Flg=1; + break; + end; + if Flg==0 + T2=Te; + else + T1=T; T2=J; + H=T2-T1; + for N=1:10 + H=H*0.5; + Q=PointonCurve(T1+H,P1); + if norm(P-Q)<R + T1=T1+H; + else + T2=T2-H; + end; + end; + end; + Ku=[Ku,T2]; + if size(KukanL,2)==0 then + break; + end; + KukanL=Kukannozoku(Ku,KukanL); + end; + end; + Res=[]; + for I=1:size(KukanL,1) + T1=KukanL(I,1); N1=Trunc(T1); + T2=KukanL(I,2); N2=Trunc(T2); + PtL=[]; + if T1-N1<1-Eps + Tmp=PointonCurve(T1,P1); + PtL=MixS(Tmp); + end; + for J=N1+1:N2 + Tmp=PointonCurve(J,P1); + PtL=Mixadd(PtL,Tmp); + end; + if T2-N2>Eps + Tmp=PointonCurve(T2,P1); + PtL=Mixadd(PtL,Tmp); + end; + Res=Mixadd(Res,Listplot(PtL)); + end; + Allres=Mixjoin(Allres,Res); + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makeskeletonpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makeskeletonpersdata.bin Binary files differnew file mode 100644 index 00000000..76247746 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makeskeletonpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makeskeletonpersdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makeskeletonpersdata.sci new file mode 100755 index 00000000..4838d658 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makeskeletonpersdata.sci @@ -0,0 +1,188 @@ +// 08.08.14 +// 08.10.16 +// 09.05.12 +// 09.09.25 +// 10.05.09 +// 10.08.17 +// 14.07.05 + +function Allres=Makeskeletonpersdata(Obj2L,Plt2L,R0,Eps2) + Eps=10.0^(-3); + Dmat=[]; + Dind=[]; + for I=1:Mixlength(Plt2L) + Dt=Mixop(I,Plt2L); + N1=size(Dmat,1)+1; + Dmat=[Dmat;Dt]; + N2=size(Dmat,1); + Dind=[Dind;N1,N2]; + end; + Nind=size(Dind,1); + Allres=[]; + for Nobj=1:Mixlength(Obj2L) + Plt2=Mixop(Nobj,Obj2L); + PhL=Plt2(:,1:2); + ClipL=[]; + for Ns=1:size(PhL,1)-1 + P1=PhL(Ns:Ns+1,:); + for I=1:size(Dind,1) + Tmp=Dmat(Dind(I,1):Dind(I,2),:); + P2=Tmp(:,1:2); + KC=IntersectcrvsPp(P1,P2,Eps); + if Mixlength(KC)>0 + for J=1:Mixlength(KC) + P=Mixop(1,Mixop(J,KC)); + Tmp=Mixop(2,Mixop(J,KC)); + if Tmp<1+Eps & Ns==1 // 2010.05.09 + continue; + end; + if Tmp>Numptcrv(P1)-Eps & Ns==size(PhL,1)-1 + continue; + end; // + N1=Ns; + N2=Mixop(3,Mixop(J,KC)); + Pa=Plt2(N1,1:2); + Za=Plt2(N1,3); + Pb=Plt2(N1+1,1:2); + Zb=Plt2(N1+1,3); + if norm(Pa-Pb)<Eps // added from here + continue; + end; // upto here + T1=norm(Pa-P)/norm(Pa-Pb); + Pka=Cancoordpers([Pa(1),Pa(2),Za]); + Pkb=Cancoordpers([Pb(1),Pb(2),Zb]); + if T1>1-Eps + Pk=Pkb; + else + Tmp1=Listplot([Pa,Pb]); + Tmp2=Spaceline([Pka,Pkb]); + Tmp=Invperspt(1+T1,Tmp1,Tmp2); + Pk=Mixop(1,Tmp); + end; + Z1=Zperspt(Pk); + Tmp=Dmat(Dind(I,1):Dind(I,2),:); + Pa=Tmp(N2,1:2); + Za=Tmp(N2,3); + Pb=Tmp(N2+1,1:2); + Zb=Tmp(N2+1,3); + if norm(Pa-Pb)<Eps // added from here + continue; + end; // upto here + T2=norm(Pa-P)/norm(Pa-Pb); + Pka=Cancoordpers([Pa(1),Pa(2),Za]); + Pkb=Cancoordpers([Pb(1),Pb(2),Zb]); + if T2>1-Eps + Pk=Pkb; + else + Tmp1=Listplot([Pa,Pb]); + Tmp2=Spaceline([Pka,Pkb]); + Tmp=Invperspt(1+T2,Tmp1,Tmp2); + Pk=Mixop(1,Tmp); + end + Z2=Zperspt(Pk); + if Z1<Z2-Eps2 + if ClipL==[] // corrected from here + Tmp=1; + else + Tmp1=ClipL(:,1)-P(1); + Tmp2=ClipL(:,2)-P(2); + Tmp3=Tmp1.^2+Tmp2.^2; // 20140705 + Tmp=min(Tmp3); + end; // upto here + if Tmp>Eps^2 + Tmp1=P1(2,:)-P1(1,:); + Tmp2=Pb-Pa; + Tmp3=Naiseki(Tmp1,Tmp2); + Tmp3=Tmp3/norm(Tmp1)/norm(Tmp2); + Tmp=1-0.5*Tmp3^2; + ClipL=[ClipL;P,N1,T1,R0/Tmp]; + end; + end; + end; + end; + end; + end; + Te=size(Plt2,1); + KukanL=[1.0,Te]; + P1=PhL; + if size(ClipL,1)>0 + for I=1:size(ClipL,1) + P=ClipL(I,1:2); + NN=ClipL(I,3); + T=NN+ClipL(I,4); + R= ClipL(I,5); // 10.08.17 + Flg=0; + for J=NN:-1:1 + Q=PointonCurve(J,P1); + if norm(P-Q)<R + continue; + end + Flg=1; + break; + end; + if Flg==0 + T1=1; + else + T1=J; T2=T; + H=T2-T1; + for N=1:10 + H=H*0.5; + Q=PointonCurve(T1+H,P1); + if norm(P-Q)<R + T2=T2-H; + else + T1=T1+H; + end; + end; + end; + Ku=[T1]; + Flg=0; + for J=NN+1:Te + Q=PointonCurve(J,P1); + if norm(P-Q)<R + continue; + end; + Flg=1; + break; + end; + if Flg==0 + T2=Te; + else + T1=T; T2=J; + H=T2-T1; + for N=1:10 + H=H*0.5; + Q=PointonCurve(T1+H,P1); + if norm(P-Q)<R + T1=T1+H; + else + T2=T2-H; + end; + end; + end; + Ku=[Ku,T2]; + KukanL=Kukannozoku(Ku,KukanL); + end; + end; + Res=[]; + for I=1:size(KukanL,1) + T1=KukanL(I,1); N1=Trunc(T1); + T2=KukanL(I,2); N2=Trunc(T2); + PtL=[]; + if T1-N1<1-Eps + Tmp=PointonCurve(T1,P1); + PtL=MixS(Tmp); + end; + for J=N1+1:N2 + Tmp=PointonCurve(J,P1); + PtL=Mixadd(PtL,Tmp); + end; + if T2-N2>Eps + Tmp=PointonCurve(T2,P1); + PtL=Mixadd(PtL,Tmp); + end; + Res=Mixadd(Res,Listplot(PtL)); + end; + Allres=Mixjoin(Allres,Res); + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makevaltable.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makevaltable.bin Binary files differnew file mode 100644 index 00000000..e8a0ce7a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makevaltable.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makevaltable.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makevaltable.sci new file mode 100755 index 00000000..dc917f30 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makevaltable.sci @@ -0,0 +1,79 @@ +// 08.09.09 +// 08.10.08 +// 08.12.06 +// 08.12.30 +// 09.06.03 +// 13.10.19 ( __ added to variables ) + +function [Zval__,Xval__,Yval__]=Makevaltable(MS__) + Eps__=10^(-6); + Nargs__=Mixlength(MS__); + Fstr__=Mixop(1,MS__); + Tmp__=Mixop(2,MS__); + Tmp1__=mtlb_findstr(Tmp__,'='); + Xname__=part(Tmp__,Tmp1__-1); + Xrange__=evstr(part(Tmp__,Tmp1__+1:length(Tmp__))); + Tmp__=Mixop(3,MS__); + Tmp1__=mtlb_findstr(Tmp__,'='); + Yname__=part(Tmp__,Tmp1__-1); + Yrange__=evstr(part(Tmp__,Tmp1__+1:length(Tmp__))); + Tmp__=strsubst(Fstr__,Xname__,'x'); + Fstr__=strsubst(Tmp__,Yname__,'y'); + Tmp__=mtlb_findstr(Fstr__,Xname__); + if length(Tmp__)==0 + Fstr__=Fstr__+'+0*x'; + end; + Mdv__=50; + Ndv__=50; + if Nargs__>=4 + Tmp__=Mixop(4,MS__); + if length(Tmp__)>1 + Mdv__=Tmp__(1,1); + Ndv__=Tmp__(1,2); + else + Mdv__=Tmp__ + if Nargs__==4 + Ndv__=Mdv__ + else + Tmp1__=Mixop(5,MS__); + if type(Tmp1__)==1 & length(Tmp1__)==1 + Ndv__=Tmp1__; + else + Ndv__=Mdv__; + end + end + end + end + X1__=Xrange__(1); X2__=Xrange__(2); + Y1__=Yrange__(1); Y2__=Yrange__(2); + Dx__=(X2__-X1__)/(Mdv__-1); + Dy__=(Y2__-Y1__)/(Ndv__-1); + Xval__=[]; + Tmp__=X1__; + while Tmp__<X2__+Eps__ + Xval__=[Xval__,Tmp__]; + Tmp__=Tmp__+Dx__; + end; + Yval__=[]; + Tmp__=Y1__; + while Tmp__<Y2__+Eps__ + Yval__=[Yval__,Tmp__]; + Tmp__=Tmp__+Dy__; + end; + I__=1; +// x=Xval; +// for y=Yval +// Tmp=evstr(Fstr); +// Zval(I,:)=Tmp; +// I=I+1; +// end; + for y=Yval__ + J__=1; + for x=Xval__ + Zval__(I__,J__)=evstr(Fstr__); + J__=J__+1; + end; + I__=I__+1; + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/MakeveLfaceL.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/MakeveLfaceL.bin Binary files differnew file mode 100644 index 00000000..36526d8e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/MakeveLfaceL.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/MakeveLfaceL.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/MakeveLfaceL.sci new file mode 100755 index 00000000..a16a5a4d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/MakeveLfaceL.sci @@ -0,0 +1,68 @@ +// 08.08.22 +// 09.10.25 +// 09.10.26 +// 09.10.27 +// 09.10.29 + +function Out=MakeveLfaceL(VfL) + // Out format + // VeL Edge, Face num(as numlist), VeL num + // FL Face (Vertexs) + Eps=10^(-4); + Tmp=VfL($); + Tmp1=Tmp(1); + if type(Tmp1)==1 + FvL=list(VfL); + else + FvL=VfL; + end; + EL=list(); FL=list(); + for Nn=1:length(FvL) + Tmp=FvL(Nn); + VL=Tmp(1); + if length(VL)>0 + FnL=Tmp(2); + FaceL=list(); + for I=1:length(FnL) + Tmp1=FnL(I); + PtL=list(); + for J=1:length(Tmp1) + Tmp2=Tmp1(J); + PtL(J)=VL(Tmp2); + end; + FaceL(I)=PtL; + end; + else + FaceL=list(Tmp(2)); + end; + for I=1:length(FaceL) + Face=FaceL(I); + Face($+1)=Face(1); + FL($+1)=Face; + for J=1:length(Face)-1 + Edge=list(Face(J),Face(J+1)); + Flg=0; + for K=1:length(EL) + Tmp=EL(K); + Tmp1=Tmp(1); + Tmp2=norm(Edge(1)-Tmp1(1))+norm(Edge(2)-Tmp1(2)); + Tmp3=norm(Edge(1)-Tmp1(2))+norm(Edge(2)-Tmp1(1)); + if Tmp2<Eps | Tmp3<Eps + Tmp=EL(K); + Tmp1=Tmp(1); + Tmp2=[Tmp(2),length(FL)]; + EL(K)=list(Tmp1,Tmp2,K); + Flg=1; + break; + end; + end; + if Flg==0 + Ntmp=length(EL); + EL(Ntmp+1)=list(Edge,[length(FL)],Ntmp+1); + end; + end; + end; + end; + Out=list(EL,FL); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makexybdy.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makexybdy.bin Binary files differnew file mode 100644 index 00000000..e1c2db72 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makexybdy.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makexybdy.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makexybdy.sci new file mode 100644 index 00000000..fb8aa27b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Makexybdy.sci @@ -0,0 +1,111 @@ +// 08.09.13 +// 08.09.16 +// 08.10.11 +// 08.10.27 +// 14.07.07 debug ( Kitahara ) + +function EhL=Makexybdy(Fd,Np) + Eps0=10^(-4); + FdL=Fullformfunc(Fd); + Tmp1=Mixop(2,FdL); + Tmp2=Mixop(3,FdL); + Xystr=[Tmp1,Tmp2]; + Tmp=Mixop(5,FdL); + K=mtlb_findstr(Tmp,'='); + Uname=part(Tmp,1:K-1); + Urg=evstr(part(Tmp,K+1:length(Tmp))); + Tmp=Mixop(6,FdL); + K=mtlb_findstr(Tmp,'='); + Vname=part(Tmp,1:K-1); + Vrg=evstr(part(Tmp,K+1:length(Tmp))); + Umin=Urg(1); Umax=Urg(2); + Vmin=Vrg(1); Vmax=Vrg(2); + DrwS=Mixop(7,FdL); + Cflg=0; + EhL=[]; + Tmp=mtlb_findstr(DrwS,'e'); + if length(Tmp)~=0 + Tmp1=strsubst(Xystr,Uname,'('+string(Umax)+')'); + Tmp2=Mixop(6,FdL); + Tmp3='N='+string(Np(2)); + Tmp=Paramplot(Tmp1,Tmp2,Tmp3); + if norm(Ptstart(Tmp)-Ptend(Tmp))<Eps0 + Cflg=1; + Tmp(size(Tmp,1),:)=Tmp(1,:); + end; + EhL=Mixadd(EhL,Tmp); + end; + Tmp=mtlb_findstr(DrwS,'n'); + if length(Tmp)~=0 + Tmp1=strsubst(Xystr,Vname,'('+string(Vmax)+')'); + Tmp2=Mixop(5,FdL); + Tmp3='N='+string(Np(1)); + Tmp=Paramplot(Tmp1,Tmp2,Tmp3); + if Cflg~=0 // 140707 Kitahara + Tmp1=Mixop(Mixlength(EhL),EhL); + Tmp=Joincrvs(Tmp1,Tmp); + if norm(Ptstart(Tmp)-Ptend(Tmp))<Eps0 + Cflg=1; + Tmp(size(Tmp,1),:)=Tmp(1,:); + end; + Tmp1=Mixsub(1:Mixlength(EhL)-1,EhL); + EhL=Mixadd(Tmp1,Tmp); + else + Cflg=0; + if norm(Ptstart(Tmp)-Ptend(Tmp))<Eps0 + Cflg=1; + Tmp(size(Tmp,1),:)=Tmp(1,:); + end; + EhL=Mixadd(EhL,Tmp); + end; + end; + Tmp=mtlb_findstr(DrwS,'w'); + if length(Tmp)~=0 + Tmp1=strsubst(Xystr,Uname,'('+string(Umin)+')'); + Tmp2=Mixop(6,FdL); + Tmp3='N='+string(Np(2)); + Tmp=Paramplot(Tmp1,Tmp2,Tmp3); + if Cflg~=0 //if Cflg==0 + Tmp1=Mixop(Mixlength(EhL),EhL); + Tmp=Joincrvs(Tmp1,Tmp); + if norm(Ptstart(Tmp)-Ptend(Tmp))<Eps0 + Cflg=1; + Tmp(size(Tmp,1),:)=Tmp(1,:); + end; + Tmp1=Mixsub(1:Mixlength(EhL)-1,EhL); + EhL=Mixadd(Tmp1,Tmp); + else + Cflg=0; + if norm(Ptstart(Tmp)-Ptend(Tmp))<Eps0 + Cflg=1; + Tmp(size(Tmp,1),:)=Tmp(1,:); + end; + EhL=Mixadd(EhL,Tmp); + end; + end; + Tmp=mtlb_findstr(DrwS,'s'); + if length(Tmp)~=0 + Tmp1=strsubst(Xystr,Vname,'('+string(Vmin)+')'); + Tmp2=Mixop(5,FdL); + Tmp3='N='+string(Np(1)); + Tmp=Paramplot(Tmp1,Tmp2,Tmp3); + if Cflg~=0 //if Cflg==0 + Tmp1=Mixop(Mixlength(EhL),EhL); + Tmp=Joincrvs(Tmp1,Tmp); + if norm(Ptstart(Tmp)-Ptend(Tmp))<Eps0 + Cflg=1; + Tmp(size(Tmp,1),:)=Tmp(1,:); + end; + Tmp1=Mixsub(1:Mixlength(EhL)-1,EhL); + EhL=Mixadd(Tmp1,Tmp); + else + Cflg=0; + if norm(Ptstart(Tmp)-Ptend(Tmp))<Eps0 + Cflg=1; + Tmp(size(Tmp,1),:)=Tmp(1,:); + end; + EhL=Mixadd(EhL,Tmp); + end; + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mawarikomi.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mawarikomi.bin Binary files differnew file mode 100644 index 00000000..8f3c4b69 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mawarikomi.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mawarikomi.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mawarikomi.sci new file mode 100755 index 00000000..11b02c63 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mawarikomi.sci @@ -0,0 +1,39 @@ +function Mawarikomi(varargin) + FL='default'; + haba='10cm'; + Nargs=length(varargin); + if Nargs>0 + haba=varargin(1); + if Nargs>=2 + FL=varargin(2); + if FL=='' + FL='tmp.tex' + end + end + end + StrM=[ + '\begin{mawarikomi}%',... + '%<1>[5](0,0)%',... + '{'+haba+'}{%',... + '',... + '}',... + '',... + '',... + '\end{mawarikomi}'... + ]; + if FL~='default' + Fid=mopen(FL,'w'); + mprintf('%s\n\n','Writing to '+FL); + end; + for I=1:size(StrM,2) + Str=StrM(I); + mprintf('%s\n',Str); + if FL~='default' + mfprintf(Fid,'%s\n',Str); + end + end + if FL~='default' + mclose(Fid); + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/MeetWindow.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/MeetWindow.bin Binary files differnew file mode 100644 index 00000000..1bc9eef3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/MeetWindow.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/MeetWindow.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/MeetWindow.sci new file mode 100755 index 00000000..65f543ea --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/MeetWindow.sci @@ -0,0 +1,91 @@ +// +// 08.05.30 debugged +// 08.08.14 (horner) +// 09.12.31 (gsort) +// 15.10.23 ( horner not used ) +// 16.12.29 (msprintf("%3.10f",..) used ) + +function R=MeetWindow(PA,PB) + global XMIN XMAX YMIN YMAX + if InWindow(PA)=='i' & InWindow(PB)=='i' + R=[PA;PB]; + return + end; + Eps=10.0^(-6); + t=poly(0,'T'); + PT="(1-(t))*PA+(t)*PB"; + Txm=-1; TxM=-1; Tym=-1; TyM=-1; + if PA(1)~=PB(1) + Txm=(XMIN-PA(1))/(PB(1)-PA(1)); + TxM=(XMAX-PA(1))/(PB(1)-PA(1)); + end + if PA(2)~=PB(2) + Tym=(YMIN-PA(2))/(PB(2)-PA(2)); + TyM=(YMAX-PA(2))/(PB(2)-PA(2)); + end; +// Tmp=horner(PT(2),Txm); + Tmp1=strsubst(PT,"t",msprintf("%3.10f",Txm)); + Tmp1=evstr(Tmp1) + Tmp=Tmp1(2); + if Tmp<YMIN-Eps | Tmp>YMAX+Eps + Txm=-1; + end +// Tmp=horner(PT(2),TxM); + Tmp1=strsubst(PT,"t",msprintf("%3.10f",TxM)); + Tmp1=evstr(Tmp1) + Tmp=Tmp1(2); + if Tmp<YMIN-Eps | Tmp>YMAX+Eps + TxM=-1 + end +// Tmp=horner(PT(1),Tym); + Tmp1=strsubst(PT,"t",msprintf("%3.10f",Tym)); + Tmp1=evstr(Tmp1) + Tmp=Tmp1(1); + if Tmp<XMIN-Eps | Tmp>XMAX+Eps + Tym=-1 + end +// Tmp=horner(PT(1),TyM); + Tmp1=strsubst(PT,"t",msprintf("%3.10f",TyM)); + Tmp1=evstr(Tmp1) + Tmp=Tmp1(1); + if Tmp<XMIN-Eps | Tmp>XMAX+Eps + TyM=-1 + end + Tmp=gsort([Txm,TxM,Tym,TyM]); + Tans=Tmp(length(Tmp):-1:1); + Tmp=[]; + for I=1:length(Tans) + Tmp1=Tans(I); + if Tmp1>-Eps & Tmp1<1+Eps + if length(Tmp)==0 + Tmp=[Tmp1]; + elseif abs(Tmp(length(Tmp))-Tmp1)>Eps + Tmp=[Tmp,Tmp1] + end + end + end + Tans=Tmp; + if length(Tans)==0 + R=[]; + return; + end + if length(Tans)==1 +// Ten1=horner(PT,Tans(1)); + Tmp1=strsubst(PT,"t",string(Tans(1))); + Ten1=evstr(Tmp1) + if InWindow(PA)=='i' + R=[PA;Ten1]; + return; + else + R=[Ten1;PB]; + return + end + end +// Ten1=horner(PT,Tans(1)); + Tmp1=strsubst(PT,"t",string(Tans(1))); + Ten1=evstr(Tmp1) +// Ten2=horner(PT,Tans(2)); + Tmp1=strsubst(PT,"t",string(Tans(2))); + Ten2=evstr(Tmp1) + R=[Ten1;Ten2]; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Meetpoints.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Meetpoints.bin Binary files differnew file mode 100644 index 00000000..0392c6b0 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Meetpoints.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Meetpoints.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Meetpoints.sci new file mode 100755 index 00000000..65ba1166 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Meetpoints.sci @@ -0,0 +1,169 @@ +// 08.10.24 +// 08.10.25 +// 08.10.26 +// 09.12.31 (gsort) +// 13.10.22 ( __ added to varibles ) +// 13.12.02 debugged + +function PtL__=Meetpoints(PtA__,PtB__,Fd__,Uveq__,Np__,Eps__) + Eps__0=10^(-4); + Vec__=PtB__-PtA__; + Out__=[]; + PtL__=[]; + Tmp__=Mixop(2,Fd__); + K__=mtlb_findstr(Tmp__,'='); + Xname__=part(Tmp__,1:K__-1); + Tmp__=Mixop(3,Fd__); + K__=mtlb_findstr(Tmp__,'='); + Yname__=part(Tmp__,1:K__-1); + Tmp__=Mixop(1,Fd__); + K__=mtlb_findstr(Tmp__,'='); + if K__~=[] + Zname__=part(Tmp__,1:K__-1); + else + Tmp__=Mixop(4,Fd__); + K__=mtlb_findstr(Tmp__,'='); + Zname__=part(Tmp__,1:K__-1); + end; + Fd__L=Fullformfunc(Fd__); + Xf__=Mixop(2,Fd__L); + Yf__=Mixop(3,Fd__L); + Zf__=Mixop(4,Fd__L); + Tmp__=Mixop(5,Fd__L); + K__=mtlb_findstr(Tmp__,'='); + Uname__=part(Tmp__,1:K__-1); + Urg__=evstr(part(Tmp__,K__+1:length(Tmp__))); + Tmp__=Mixop(6,Fd__L); + K__=mtlb_findstr(Tmp__,'='); + Vname__=part(Tmp__,1:K__-1); + Vrg__=evstr(part(Tmp__,K__+1:length(Tmp__))); + Umin__=Urg__(1); UMax__=Urg__(2); + Vmin__=Vrg__(1); VMax__=Vrg__(2); + V1__='('+string(Vec__(1))+')'; + V2__='('+string(Vec__(2))+')'; + V3__='('+string(Vec__(3))+')'; + Xstr__='(('+Xf__+')-('+string(PtA__(1))+'))'; + Ystr__='(('+Yf__+')-('+string(PtA__(2))+'))'; + Zstr__='(('+Zf__+')-('+string(PtA__(3))+'))'; + Urg__str=Mixop(5,Fd__L); + Vrg__str=Mixop(6,Fd__L); + if abs(Vec__(2))>Eps__0 | abs(Vec__(1))>Eps__0 + Eq__=V2__+'*'+Xstr__+'-'+V1__+'*'+Ystr__; + else + Eq__=Xstr__; + end; + MS__=Mix(Eq__,Urg__str,Vrg__str,Np__); + [Zval__,Xval__,Yval__]=Makevaltable(MS__); + for J=1:length(Yval__)-1 + for I=1:length(Xval__)-1 + a1__=Xval__(I);b1__=Yval__(J);c1__=Zval__(J,I); + a2__=Xval__(I+1);b2__=Yval__(J);c2__=Zval__(J,I+1); + a3__=Xval__(I+1);b3__=Yval__(J+1);c3__=Zval__(J+1,I+1); + a4__=Xval__(I);b4__=Yval__(J+1);c4__=Zval__(J+1,I); + PL__=[a1__,b1__;a2__,b2__;a3__,b3__;a4__,b4__;a1__,b1__]; + VL__=[c1__,c2__,c3__,c4__,c1__]; + QL__=[]; + for K__=1:4 + P1__=PL__(K__,:); P2__=PL__(K__+1,:); + M1__=VL__(K__); M2__=VL__(K__+1); + if M1__>=Eps__0 & M2__>=Eps__0 + continue; + end; + if M1__<=-Eps__0 & M2__<=-Eps__0 + continue; + end; + if abs(M1__)<Eps__0 + Tmp__=P1__; + elseif abs(M2__)<Eps__0 + continue; + else + Tmp__=1/(M1__-M2__)*(-M2__*P1__+M1__*P2__); + end; + QL__=[QL__;Tmp__]; + end; + if size(QL__,1)==2 + Puv__1=QL__(1,:); Puv__2=QL__(2,:); + Tmp__1=Puv__1(1); + Tmp__2=Puv__1(2); + Tmp__=strsubst(Xf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Xv__=evstr(Tmp__); + Tmp__=strsubst(Yf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Yv__=evstr(Tmp__); // 13.12.02 + Tmp__=strsubst(Zf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Zv__=evstr(Tmp__); + P1__=[Xv__,Yv__,Zv__]; + Tmp__1=Puv__2(1); + Tmp__2=Puv__2(2); + Tmp__=strsubst(Xf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Xv__=evstr(Tmp__); + Tmp__=strsubst(Yf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Yv__=evstr(Tmp__); + Tmp__=strsubst(Zf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Zv__=evstr(Tmp__); + P2__=[Xv__,Yv__,Zv__]; + V1__=Vec__(1); V2__=Vec__(2); V3__=Vec__(3); + if abs(V1__)>Eps__0 + M1__=PtA__(3)+V3__/V1__*(P1__(1)-PtA__(1))-P1__(3); + M2__=PtA__(3)+V3__/V1__*(P2__(1)-PtA__(1))-P2__(3); + elseif abs(V2__)>Eps__0 + M1__=PtA__(3)+V3__/V2__*(P1__(2)-PtA__(2))-P1__(3); + M2__=PtA__(3)+V3__/V2__*(P2__(2)-PtA__(2))-P2__(3); + else + M1__=PtA__(2)-P1__(2); + M2__=PtA__(2)-P2__(2); + end; + if M1__*M2__>=0 + if (M1__>Eps__0 & M2__>Eps__0) | (M1__<-Eps__0 & M2__<-Eps__0) + continue; + end; + if abs(M1__)<=Eps__0 + Pt__=P1__; Ptuv__=Puv__1; + else + Pt__=P2__; Ptuv__=Puv__2; + end; + else + Pt__=1/(M1__-M2__)*(-M2__*P1__+M1__*P2__); + Ptuv__=1/(M1__-M2__)*(-M2__*Puv__1+M1__*Puv__2); + end; + if type(Uveq__)==10 + Tmp__1='('+string(Ptuv__(1))+')'; + Tmp__2='('+string(Ptuv__(2))+')'; + Tmp__=strsubst(Uveq__,Uname__,Tmp__1); + Tmp__=strsubst(Tmp__,Vname__,Tmp__2); + Tmp__=evstr(Tmp__); + if Tmp__<-Eps__0 + continue; + end; + end; + Tmp__1=Naiseki(Pt__-PtA__,Vec__); + Tmp__1=Tmp__1/norm(Vec__)^2; + if Tmp__1>-Eps__0 & Tmp__1<1+Eps__0 + Out__=[Out__,Tmp__1]; + end; + end; + end; + end; + if length(Out__)>0 + Out__=gsort(Out__); + Out__=Out__(length(Out__):-1:1); + Tmp__=[Out__(1)]; + for I__=2:length(Out__) + Tmp__1=(Out__(I__)-Tmp__(length(Tmp__)))*Vec__; + Tmp__1=norm(Tmp__1); + if Tmp__1>Eps__ + Tmp__=[Tmp__,Out__(I__)]; + end; + end; + Out__=Tmp__; + for I__=1:length(Out__) + Tmp__=PtA__+Out__(I__)*Vec__; + PtL__=Mixadd(PtL__,Tmp__); + end; + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Member.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Member.bin Binary files differnew file mode 100644 index 00000000..61d508ef --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Member.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Member.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Member.sci new file mode 100755 index 00000000..79826f90 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Member.sci @@ -0,0 +1,21 @@ +// 08.05.18 + +// Structure changed +// 09.10.11 + +function TF=Member(A,L) + if Mixtype(L)>1 + N=Mixlength(L); + else + N=length(L); + end + for I=1:N + Tmp=Op(I,L); + if A==Tmp + TF=%t + return + end + end + TF=%f +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Menkakusi.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Menkakusi.bin Binary files differnew file mode 100644 index 00000000..2bc985c7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Menkakusi.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Menkakusi.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Menkakusi.sci new file mode 100755 index 00000000..de8d4b0d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Menkakusi.sci @@ -0,0 +1,206 @@ +// 08.08.21 +// 09.10.24 +// 09.10.26 + +function Menkakusi(Face,Nf,Ptype) + global THETA PHI EyePoint FocusPoint VELNO VELHI; + Eps0=10^(-6); + Eps=10^(-4); + Tmp1=Face(1)-Face(2); + Tmp2=Face(3)-Face(2); + if norm(Tmp1)<Eps | norm(Tmp2)<Eps + return; + end; + Vec=1/norm(Tmp1)/norm(Tmp2)*Crossprod(Tmp1,Tmp2); + if norm(Vec)<Eps + return; + end; + if Ptype==-1 + W=EyePoint; + Tmp=Dotprod(Vec,W-Face(1)); + else + W=[sin(THETA)*cos(PHI),sin(THETA)*sin(PHI),cos(THETA)]; + W=100*W; + Tmp=Dotprod(Vec,W-Face(1)); + end; + if abs(Tmp)<Eps + return; + end; + if Tmp<-Eps + Vec=-Vec; + end; + if Ptype==-1 + G1=Projpers(Spaceline(Face)); + else + G1=Projpara(Spaceline(Face)) + end; + VL=list(); + for I=1:Numptcrv(G1) + VL(I)=Ptcrv(I,G1); + end; + Out1L=list(); + Out2L=VELHI; + for N=1:length(VELNO) + Tmp=VELNO(N); + Edge=Tmp(1); + Ne=Tmp(2); + Nenm=Tmp(3); + if Member(Nf,Ne) + Out1L($+1)=list(Edge,Ne,Nenm); + continue; + end; + if Ptype==-1 + P=Perspt(Edge(1)); + Q=Perspt(Edge(2)); + else + P=Parapt(Edge(1)); + Q=Parapt(Edge(2)); + end; + if norm(P-Q)<Eps + continue; + end; + Tmp=Kyoukai(Mix(G1)); + Tmp1=Naigai(P,Tmp); + Ng1=Tmp1(1); + Tmp1=Naigai(Q,Tmp); + Ng2=Tmp1(1); + KL=IntersectcrvsPp(Listplot([P,Q]),G1); + if Mixlength(KL)==0 + if Ng1==0 + Out1L($+1)=list(Edge,Ne,Nenm); + else + Tmp1=(Edge(1)+Edge(2))*0.5-Face(1); + Tmp=Dotprod(Tmp1,Vec)/norm(Tmp1); + if Tmp>-Eps + Out1L($+1)=list(Edge,Ne,Nenm); + else + Out2L($+1)=list(Edge,Ne,Nenm); + end; + end; + continue; + end; + Flg=0; + for I=1:Mixlength(VL)-1 + Tmp=VL(I+1)-VL(I); + if norm(Tmp)<Eps continue; end; + Tmp1=Crossprod(Tmp,Q-P)/norm(Tmp)/norm(Q-P); + if abs(Tmp1)<Eps + Flg=1; + break; + end; + end; + if Flg==1 + Tmp=Mixop(I,VL)-P; + if norm(Tmp)<Eps + Tmp1=0; + else + Tmp1=Crossprod(Tmp,Q-P)/norm(Tmp)/norm(Q-P); + end; + if abs(Tmp1)<Eps then + Out1L($+1)=list(Edge,Ne,Nenm); + continue; + end; + end; + if Mixlength(KL)==1 + Tmp=KL(1); + Tmp=Tmp(2)-1; + if Tmp<Eps + if Ng2==0 + Out1L($+1)=list(Edge,Ne,Nenm); + else + Tmp1=Edge(2)-Face(1); + Tmp1=Dotprod(Tmp1,Vec); + if Tmp1>-Eps + Out1L($+1)=list(Edge,Ne,Nenm); + else + Out2L($+1)=list(Edge,Ne,Nenm); + end; + end; + continue; + end; + if Tmp>1-Eps + if Ng1==0 + Out1L($+1)=list(Edge,Ne,Nenm); + else + Tmp1=Edge(1)-Face(1); + Tmp1=Dotprod(Tmp1,Vec); + if Tmp1>-Eps + Out1L($+1)=list(Edge,Ne,Nenm); + else + Out2L($+1)=list(Edge,Ne,Nenm); + end; + end; + continue; + end; + if Ng1==0 & Ng2==0 + Out1L($+1)=list(Edge,Ne,Nenm); + else + Tmp1=KL(1); + Tmp1=Tmp1(1); + if Ptype==-1 + Tmp=Invperspt(Tmp1,Spaceline(Edge)); + else + Tmp=Invparapt(Tmp1,Spaceline(Edge)) + end; + Ak=Tmp(1); + if Ng1==1 + Tmp1=Edge(1)-Face(1); + Tmp1=Dotprod(Tmp1,Vec); + if Tmp1>-Eps + Out1L($+1)=list(Edge,Ne,Nenm); + else + Tmp2=list(Ak,Edge(2)); + Out1L($+1)=list(Tmp2,Ne,Nenm); + Tmp2=list(Edge(1),Ak); + Out2L($+1)=list(Tmp2,Ne,Nenm); + end; + end; + if Ng2==1 + Tmp1=Edge(2)-Face(1); + Tmp1=Dotprod(Tmp1,Vec); + if Tmp1>-Eps + Out1L($+1)=list(Edge,Ne,Nenm); + else + Tmp2=list(Edge(1),Ak); + Out1L($+1)=list(Tmp2,Ne,Nenm); + Tmp2=list(Ak,Edge(2)); + Out2L($+1)=list(Tmp2,Ne,Nenm); + end; + end; + end; + end; + if Mixlength(KL)==2 + Tmp1=KL(1); + Tmp1=Tmp1(2); + Tmp2=KL(2); + Tmp2=Tmp2(2); + if Tmp1>Tmp2 + KL=list(KL(2),KL(1)); + end; + Tmp=Spaceline(Edge); + Tmp1=KL(1); + Tmp1=Tmp1(1); + Tmp2=KL(2); + Tmp2=Tmp2(1); + if Ptype==-1 + Ak=Mixop(1,Invperspt(Tmp1,Tmp)); + Bk=Mixop(1,Invperspt(Tmp2,Tmp)) + else + Ak=Mixop(1,Invparapt(Tmp1,Tmp)); + Bk=Mixop(1,Invparapt(Tmp2,Tmp)) + end; + Tmp1=(Ak+Bk)*0.5-Face(1); + Tmp=Dotprod(Tmp1,Vec); + if Tmp>-Eps + Out1L($+1)=list(Edge,Ne,Nenm); + else + Out1L($+1)=list(list(Edge(1),Ak),Ne,Nenm); + Out1L($+1)=list(list(Bk,Edge(2)),Ne,Nenm); + Out2L($+1)=list(list(Ak,Bk),Ne,Nenm); + end; + end; + end; + VELNO=Out1L; + VELHI=Out2L; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Menkakusi2.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Menkakusi2.bin Binary files differnew file mode 100644 index 00000000..bcb9509f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Menkakusi2.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Menkakusi2.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Menkakusi2.sci new file mode 100755 index 00000000..43eab74b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Menkakusi2.sci @@ -0,0 +1,186 @@ +// 09.10.29 +// 09.11.15 +// 10.08.17 debug (line 66) + +function Menkakusi2(Face,Nf,Ptype) + global THETA PHI EyePoint FocusPoint VELNO VELHI; + Eps0=10^(-6); + Eps=10^(-4); + Tmp1=Face(1)-Face(2); + Tmp2=Face(3)-Face(2); + if norm(Tmp1)<Eps | norm(Tmp2)<Eps + return; + end; + Vec=1/norm(Tmp1)/norm(Tmp2)*Crossprod(Tmp1,Tmp2); + if norm(Vec)<Eps + return; + end; + if Ptype==-1 + W=EyePoint; + Tmp=Dotprod(Vec,W-Face(1)); + else + W=[sin(THETA)*cos(PHI),sin(THETA)*sin(PHI),cos(THETA)]; + W=100*W; + Tmp=Dotprod(Vec,W-Face(1)); + end; + if abs(Tmp)<Eps + return; + end; + if Tmp<-Eps + Vec=-Vec; + end; + if Ptype==-1 + G1=Projpers(Spaceline(Face)); + else + G1=Projpara(Spaceline(Face)) + end; + VL=list(); + for I=1:Numptcrv(G1) + VL(I)=Ptcrv(I,G1); + end; + Out1L=list(); + Out2L=VELHI; + for N=1:length(VELNO) + Out1=list(); + Out2=list(); + Tmp=VELNO(N); + Edge=Tmp(1); + Ne=Tmp(2); + NNe=Tmp(3); + if Member(Nf,Ne) + Out1L($+1)=list(Edge,Ne,NNe); + continue; + end; + if Ptype==-1 + PtA=Perspt(Edge(1)); + PtB=Perspt(Edge(2)); + else + PtA=Parapt(Edge(1)); + PtB=Parapt(Edge(2)); + end; + if norm(PtA-PtB)<Eps continue; end; + Bdy=list(G1); + V=PtB-PtA; + TenL=KoutenList(PtA,V,Bdy); + Nten=length(TenL); + if Nten==0 // 10.08.17 + Out1L($+1)=list(Edge,Ne,NNe); + continue; + end; + Te=0; + Pe3=Edge(1); + if Ptype==-1 + Tmp1=Perspt(Pe3); + Tmp=Invperspt(Tmp1,Spaceline(Face)); + else + Tmp1=Parapt(Pe3); + Tmp=Invparapt(Tmp1,Spaceline(Face)); + end; + Qe3=Tmp(1); + Flg=0; + for I=1:Nten + TenP=TenL(I); + Ts=TenP(1); + P=TenP(2); + if Ts<-Eps + continue; + end; + Eline=Spaceline(Edge); + if Ptype==-1 + Tmp=Invperspt(P,Eline); + Tmp1=Invperspt(P,Spaceline(Face)); + else + Tmp=Invparapt(P,Eline) + Tmp1=Invparapt(P,Spaceline(Face)); + end; + P3=Tmp(1); Q3=Tmp1(1); + if Ts>1-Eps // P3, Q3 are necessary + Flg=I; + break; + end; + if abs(Te-Ts)>Eps0 // + if modulo(I,2)==1 + Out1($+1)=list(Pe3,P3); + else + if Qe3==[] + Tmp=Op(2,TenL(I-1)); + if Ptype==-1 + Tmp1=Invperspt(Tmp,Spaceline(Face)); + else + Tmp1=Invparapt(Tmp,Spaceline(Face)); + end; + Qe3=Tmp1(1); + end; + PM=0.5*(Pe3+P3); QM=0.5*(Qe3+Q3); + if Ptype==-1 + Z1=Zperspt(PM); Z2=Zperspt(QM); + else + Z1=Zparapt(PM); Z2=Zparapt(QM); + end; + if Z1>Z2 + Out1($+1)=list(Pe3,P3); + else + Out2($+1)=list(Pe3,P3); + end; + end; + end; + Te=Ts; Pe3=P3; Qe3=Q3; + end; + if Flg==0 + if norm(Pe3-Edge(2))>Eps0 + Out1($+1)=list(Pe3,Edge(2)); + end; + else + if modulo(Flg,2)==1 + Out1($+1)=list(Pe3,Edge(2)); + else + PM=0.5*(Pe3+P3); QM=0.5*(Qe3+Q3); + if Ptype==-1 + Z1=Zperspt(PM); Z2=Zperspt(QM); + else + Z1=Zparapt(PM); Z2=Zparapt(QM); + end; + if Z1>Z2 + Out1($+1)=list(Pe3,Edge(2)); + else + Out2($+1)=list(Pe3,Edge(2)); + end; + end; + end; + for I=1:length(Out1) + Tmp=Out1(I); + if I==1 + SeL=Tmp; + else + if norm(SeL(2)-Tmp(1))<Eps0 + SeL(2)=Tmp(2); + else + Out1L($+1)=list(SeL,Ne,NNe); + SeL=Tmp; + end; + end; + end; + if length(Out1)>0 + Out1L($+1)=list(SeL,Ne,NNe); + end; + for I=1:length(Out2) + Tmp=Out2(I); + if I==1 + SeL=Tmp; + else + if norm(SeL(2)-Tmp(1))<Eps0 + SeL(2)=Tmp(2); + else + Out2L($+1)=list(SeL,Ne,NNe); + SeL=Tmp; + end; + end; + end; + if length(Out2)>0 + Out2L($+1)=list(SeL,Ne,NNe); + end; + end; + VELNO=Out1L; + VELHI=Out2L; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mix.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mix.bin Binary files differnew file mode 100644 index 00000000..5b35bcb9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mix.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mix.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mix.sci new file mode 100755 index 00000000..4f06c437 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mix.sci @@ -0,0 +1,15 @@ +// 08.05.20 +// 08.08.08 + +// Structure changed +// 09.10.11 + +function M=Mix(varargin) + Nargs=length(varargin); + M=list(); + for I=1:Nargs + Da=varargin(I); + M(I)=Da; + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/MixL.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/MixL.bin Binary files differnew file mode 100644 index 00000000..92d14b2c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/MixL.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/MixL.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/MixL.sci new file mode 100755 index 00000000..daf5a2d9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/MixL.sci @@ -0,0 +1,14 @@ +// 08.05.19 + +// Structure changed +// 09.10.11 + +function M=MixL(varargin) + Nargs=length(varargin); + M=list(); + for I=1:Nargs + Da=varargin(I); + M(I)=Da; + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/MixS.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/MixS.bin Binary files differnew file mode 100644 index 00000000..5a0d9b25 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/MixS.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/MixS.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/MixS.sci new file mode 100755 index 00000000..623af493 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/MixS.sci @@ -0,0 +1,15 @@ +// 08.05.19 + +//Structure Changed + +// 09.10.11 + +function M=MixS(varargin) + Nargs=length(varargin); + M=list(); + for I=1:Nargs + Da=varargin(I); + M(I)=Da; + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixadd.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixadd.bin Binary files differnew file mode 100644 index 00000000..cb5b4953 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixadd.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixadd.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixadd.sci new file mode 100755 index 00000000..8d45fea1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixadd.sci @@ -0,0 +1,23 @@ +// 05.14 Data Structure +// 05.16 List of MixList +// 05.19 use:MixS, MixL, Mixtype +// 08.08.17 + +// Structure changed +// 09.10.11 + +function M=Mixadd(varargin) + Nargs=length(varargin); + M=list(); + Tmp=varargin(1); + if length(Tmp)==0 + M(1)=varargin(2); + else + M=Tmp; + M($+1)=varargin(2); + end; + for I=3:Nargs + M($+1)=varargin(I); + end; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixdisp.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixdisp.bin Binary files differnew file mode 100644 index 00000000..c15a987e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixdisp.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixdisp.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixdisp.sci new file mode 100755 index 00000000..2fed1197 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixdisp.sci @@ -0,0 +1,14 @@ +// 08.05.19 + +// Structure changed +// 09.10.11 +// 10.01.02 + +function Mixdisp(L) + if Mixtype(L)==1 + disp(L) + return; + end; + Str=Makeliststr(L); + disp(Str) +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixjoin.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixjoin.bin Binary files differnew file mode 100644 index 00000000..3666302f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixjoin.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixjoin.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixjoin.sci new file mode 100755 index 00000000..d6e49c14 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixjoin.sci @@ -0,0 +1,29 @@ +// 08.05.18 +// 08.05.19 Changed +// 08.08.15 + +// Structure changed +// 09.10.11 + +function M=Mixjoin(varargin) + Nargs=length(varargin); + M=list(); + for I=1:Nargs + Tmp=varargin(I); + if length(Tmp)==0 + continue; + end; + if Mixtype(Tmp)==1 + Tmp=list(Tmp); + end; + if length(M)==0 + M=Tmp; + else + M=lstcat(M,Tmp); + end; + end; + if length(M)==0 + M=[]; + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixlength.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixlength.bin Binary files differnew file mode 100644 index 00000000..d9515fd8 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixlength.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixlength.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixlength.sci new file mode 100755 index 00000000..6fd31749 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixlength.sci @@ -0,0 +1,18 @@ +// 08.05.14 Data Structure +// 08.05.23 Debugged + +// Structure changed +// 09.10.11 + +function Out=Mixlength(PL) + if PL==[] + Out=0; + return + end + if Mixtype(PL)==1 + Out=size(PL,1); + else + Out=length(PL); + end; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixmake.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixmake.bin Binary files differnew file mode 100644 index 00000000..b85a4f1a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixmake.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixmake.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixmake.sci new file mode 100755 index 00000000..7f05a2ab --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixmake.sci @@ -0,0 +1,14 @@ +// 08.05.19 + +// Structure changed +// 09.10.11 + +function PL=Mixmake(varargin) + PL=list(); + for I=1:length(varargin) + Tmp=varargin(I); + PL=Mixadd(PL,Tmp); + end +endfunction + + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixop.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixop.bin Binary files differnew file mode 100644 index 00000000..f5ff95b4 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixop.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixop.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixop.sci new file mode 100755 index 00000000..10c846dc --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixop.sci @@ -0,0 +1,22 @@ +// 08.05.14 Data Structure +// 08.04.15 List ex N=1:3 +// 08.05.16 List of MixL +// 08.05.18 Debugged +// 08.05.19 Changed +// 08.08.17 + +// Structure changed +// 09.10.11 + +function D=Mixop(N,PL) + D=[]; + if Mixtype(PL)==1 + D=PL; + return; + end; + if type(N)~=1 | length(N)>1 | N>Mixlength(PL) + return + end; + D=PL(N); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixsub.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixsub.bin Binary files differnew file mode 100644 index 00000000..116f9ae6 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixsub.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixsub.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixsub.sci new file mode 100755 index 00000000..e3e281f3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixsub.sci @@ -0,0 +1,18 @@ +// 08.05.19 +// 08.05.20 debugged +// 08.06.02 + +// Structure changed +// 09.10.11 + +function M=Mixsub(Rg,PL) + M=list(); + N=Mixlength(PL); + for I=Rg + if I>N + return; + end; + M($+1)=PL(I); + end; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixtype.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixtype.bin Binary files differnew file mode 100644 index 00000000..bd65bd09 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixtype.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixtype.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixtype.sci new file mode 100755 index 00000000..b336c763 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Mixtype.sci @@ -0,0 +1,19 @@ +// 08.05.19 + +// Structure changed +// 09.10.11 + +function T=Mixtype(D) + if type(D)~=15 + T=1; + return; + end; + for I=1:length(D) + if type(D(I))==15 + T=3; + return; + end; + end; + T=2; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Naigai.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Naigai.bin Binary files differnew file mode 100644 index 00000000..23f75fa2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Naigai.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Naigai.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Naigai.sci new file mode 100755 index 00000000..8a4f0557 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Naigai.sci @@ -0,0 +1,18 @@ +// 08.05.18 +// 08.05.20 + +function Ptn=Naigai(A,Bdy) + V=[1,1]; + Call=Mixlength(Bdy); + KL=KoutenList(A,V,Bdy); + Ptn=zeros(1,Call); + for K=1:Mixlength(KL) + Ten=Op(K,KL); + T=Op(1,Ten); NC=Op(4,Ten); + if T<0 + Tmp=modulo(Ptn(NC)+1,2); + Ptn(1,NC)=Tmp; + end + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Naiseki.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Naiseki.bin Binary files differnew file mode 100644 index 00000000..cc184ed1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Naiseki.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Naiseki.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Naiseki.sci new file mode 100755 index 00000000..193ad384 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Naiseki.sci @@ -0,0 +1,4 @@ +function N=Naiseki(a,b) + N=a*b'; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Nearestpt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Nearestpt.bin Binary files differnew file mode 100644 index 00000000..70999c76 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Nearestpt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Nearestpt.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Nearestpt.sci new file mode 100755 index 00000000..a404370a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Nearestpt.sci @@ -0,0 +1,53 @@ +// 08.05.31 +// 08.06.03 +// 08.10.07 + +function Ans=Nearestpt(varargin) + Nargs=length(varargin); + PL1=varargin(1); + if size(PL1,1)==1 + Flg=0; + else + Flg=1 + end + Eps=10.0^(-6); +// Fig=varargin(2); + PL=varargin(2); + Ans=MixS(PL1(1,:),1,PL(1,:),1,norm(PL1(1,:)-PL(1,:))); + for N=1:size(PL1,1) + PA=PL1(N,:); + Pm=PL(1,:); + Im=1; + Sm=norm(Pm-PA); + for I=1:size(PL,1)-1 + A1=PL(I,1); A2=PL(I,2); + B1=PL(I+1,1); B2=PL(I+1,2); + V1=B1-A1; V2=B2-A2; + X1=PA(1); X2=PA(2); + Tmp=V2^2+V1^2; + if abs(Tmp)<Eps + continue; + end; + T=(-A2*V2-V1*A1+V1*X1+X2*V2)/Tmp; + if T<-Eps + P=[A1,A2]; + elseif T>1+Eps + P=[B1,B2]; + else + P=[A1+T*V1,A2+T*V2]; + end + S=norm(P-PA); + if S<Sm-Eps + Tmp=ParamonCurve(P,I,PL); + Pm=P; Im=Tmp; Sm=S; + end + end + if Sm<Op(5,Ans) + Ans=MixS(PA,N,Pm,Im,Sm); + end + end + if Flg==0 + Ans=Mixsub(3:5,Ans); + end +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Newlength.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Newlength.bin Binary files differnew file mode 100644 index 00000000..b3417b7a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Newlength.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Newlength.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Newlength.sci new file mode 100755 index 00000000..9e0227e8 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Newlength.sci @@ -0,0 +1,9 @@ +function Newlength(varargin) + if length(varargin)==0 + Kyorihensuu(); + else + FL=varargin(1); + Kyorihensuu(FL); + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Nohiddenpara.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Nohiddenpara.bin Binary files differnew file mode 100644 index 00000000..a7c43a91 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Nohiddenpara.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Nohiddenpara.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Nohiddenpara.sci new file mode 100755 index 00000000..3826b281 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Nohiddenpara.sci @@ -0,0 +1,254 @@ +// 08.09.13 +// 09.12.31 (gsort) + +function FigkL=Nohiddenpara(varargin) + global HIDDENDATA THETA PHI; + Eps=0.001; + PaL=varargin(1); + Fk=varargin(2); + FuncdL=varargin(3); + Tmp=Mixop(1,FuncdL); + Fxy=Mixop(1,Tmp); + K=mtlb_findstr(Fxy,'='); + Fxy=part(Fxy,K+1:length(Fxy)); + Fbdxy=Mixop(2,FuncdL); + Tmp=Mixop(3,FuncdL); + Xname=Mixop(1,Tmp); + Tmp=Mixop(4,FuncdL); + Yname=Mixop(1,Tmp); + FigkL=[]; + if Fbdxy==[] + return; + end; + Bdy=Kyoukai(Fbdxy); + Ptn=0; + Fh=Projpara(Fk); + SeL=[]; + for N=1:length(PaL)-1 + S=(PaL(N)+PaL(N+1))/2; + P=PointonCurve(S,Fh); + Tmp=Invparapt(S,Fh,Fk) + Pk=Mixop(1,Tmp); + Qk=[sin(THETA)*cos(PHI),sin(THETA)*sin(PHI),cos(THETA)]; + Flg=zeros(1,Mixlength(Fbdxy)); + for I=1:1000 + Tmp=Pk+I*10*Qk; + Tmp1=Naigai(Tmp(1:2),Bdy); + if Tmp1==Flg + Flg=1; + Qk=Tmp; + break; + end; + end; + if Flg~=1 + disp('Bad EyePoint'); + return; + end; + T=poly(0,'t'); + P0=(1-T)*Pk+T*Qk; + X0str='('+pol2str(P0(1))+')'; + Y0str='('+pol2str(P0(2))+')'; + Z0str='('+pol2str(P0(3))+')'; + Tmp=strsubst(Fxy,Xname,X0str); + Tmp=strsubst(Tmp,Yname,Y0str); + Efn=Z0str+'-('+Tmp+')'; + t=0; + Tmp=evstr(Efn); + Eps=max(Eps,abs(Tmp)); + Tmp1=evstr([X0str,Y0str]); + t=1; + Tmp2=evstr([X0str,Y0str]); + Seg=Listplot([Tmp1,Tmp2]); + Tmp=[]; + for I=1:Mixlength(Fbdxy) + Tmp2=Mixop(I,Fbdxy); + Tmp1=IntersectcrvsPp(Seg,Tmp2,Eps); + if Mixlength(Tmp1)>0 + Tmp2=[]; + for J=1:Mixlength(Tmp1) + Tmp3=Mixop(J,Tmp1); + Tmp3=Mixop(2,Tmp3)-1; + Tmp2=[Tmp2,Tmp3]; + end; + Tmp=[Tmp,Tmp2]; + else + Tmp2=Mixop(I,Fbdxy); + Tmp1=Nearestpt(Tmp2,Seg); + Tmp3=Mixop(5,Tmp1); + if Tmp3<Eps + Tmp4=Mixop(4,Tmp1); + Tmp=[Tmp,Tmp4-1]; + end; + end; + end; + if length(Tmp)==0 + SeL=[SeL,N]; + continue; + end; + Tmp=gsort(Tmp); + Tmp=Tmp(length(Tmp):-1:1); + ParamL=[0]; + for I=1:length(Tmp) + Tmp1=Tmp(I); + Tmp2=ParamL(length(ParamL)); + if Tmp1-Tmp2>Eps + ParamL=[ParamL,Tmp1]; + end; + end; + Nhdflg=0; + for M=1:length(ParamL)-1 + TL=[ParamL(M),ParamL(M+1)]; + t=TL(1); + Tmp1=evstr([X0str,Y0str]); + t=TL(2); + Tmp2=evstr([X0str,Y0str]); + Tmp=Naigai(0.5*(Tmp1+Tmp2),Bdy); + Tmp=modulo(sum(Tmp),2); + if Tmp==Ptn continue; end; + Ik=max(ceil(log((TL(2)-TL(1))/Eps)/log(2)),6); + t=TL(1); + Tmp1=evstr(Efn); + t=TL(2); + Tmp2=evstr(Efn); + if abs(Tmp1)<=Eps + if M>1 + Nhdflg=-10; + break; + end; + end; + if abs(Tmp2)<=Eps + Nhdflg=-10; + break; + end; + if Tmp2>Eps + if Tmp1<-Eps + Nhdflg=-10; + break; + end; + for I=1:Ik + AddL=[]; + VL=[]; + for J=1:length(TL)-1 + Tmp=(TL(J)+TL(J+1))*0.5; + AddL=[AddL,Tmp]; + t=Tmp; + Tmp1=evstr(Efn); + VL=[VL,Tmp1]; + end; + Tmp1=min(VL); + if Tmp1<=-Eps*2 + Nhdflg=-10; + break; + end; + TL=gsort([TL,AddL]); + end; + if Nhdflg~=0 break; end; + else + if Tmp1<-Eps + Nhdflg=-10; + break; + end; + for I=1:Ik + AddL=[]; + VL=[]; + for J=1:length(TL)-1 + Tmp=(TL(J)+TL(J+1))*0.5; + AddL=[AddL,Tmp]; + t=Tmp; + Tmp1=evstr(Efn); + VL=[VL,Tmp1]; + end; + Tmp1=max(VL); + if Tmp1>Eps*2 + Nhdflg=-10; + break; + end; + TL=gsort([TL,AddL]); + end; + if Nhdflg~=0 break; end; + end; + end; + if Nhdflg==0 + SeL=[SeL,N]; + end; + end; + FigL=[]; + FigkL=[]; + for I=1:length(SeL) + Tmp1=PointonCurve(PaL(SeL(I)),Fh); + Tmp2=PointonCurve(PaL(SeL(I)+1),Fh); + if I==1 + P=Tmp1; SP=PaL(SeL(I)); + Q=Tmp2; SQ=PaL(SeL(I)+1); + else + if Member(SeL(I)-1,SeL) + Q=Tmp2; SQ=PaL(SeL(I)+1); + else + FigL=Mixadd(FigL,Partcrv(SP,SQ,Fh)); + Tmp3=Invparapt(SP,Fh,Fk); + TP=Mixop(2,Tmp3); + Tmp3=Invparapt(SQ,Fh,Fk); + TQ=Mixop(2,Tmp3); + Tmp4=Partcrv3(TP,TQ,Fk) + FigkL=Mixadd(FigkL,Tmp4); + P=Tmp1; SP=PaL(SeL(I)); + Q=Tmp2; SQ=PaL(SeL(I)+1); + end; + end; + end; + if length(SeL)>0 + if norm(P-Q)>Eps + FigL=Mixadd(FigL,Partcrv(P,Q,Fh)); + Tmp3=Invparapt(SP,Fh,Fk); + TP=Mixop(2,Tmp3); + Tmp3=Invparapt(SQ,Fh,Fk); + TQ=Mixop(2,Tmp3); + FigkL=Mixadd(FigkL,Partcrv3(TP,TQ,Fk)); + else + FigL=Mixadd(FigL,Fh); + FigkL=Mixadd(FigkL,Fk); + end; + end; + Tmp=[]; + for I=1:length(PaL)-1 + if ~Member(I,SeL) + Tmp=[Tmp,I]; + end; + end; + SeL=Tmp; + HIDDENDATA=[]; + for I=1:length(SeL) + Tmp=PaL(SeL(I)); + Tmp1=PointonCurve(Tmp,Fh); + Tmp=PaL(SeL(I)+1); + Tmp2=PointonCurve(Tmp,Fh); + if I==1 + P=Tmp1; SP=PaL(SeL(I)); + Q=Tmp2; SQ=PaL(SeL(I)+1); + else + if Member(SeL(I)-1,SeL) + Q=Tmp2; SQ=PaL(SeL(I)+1); + else + Tmp=Invparapt(SP,Fh,Fk); + TP=Mixop(2,Tmp); + Tmp=Invparapt(SQ,Fh,Fk); + TQ=Mixop(2,Tmp); + HIDDENDATA=Mixadd(HIDDENDATA,Partcrv3(TP,TQ,Fk)); + P=Tmp1; SP=PaL(SeL(I)); + Q=Tmp2; SQ=PaL(SeL(I)+1); + end; + end; + end; + if length(SeL)>0 + if norm(P-Q)>Eps + Tmp=Invparapt(SP,Fh,Fk); + TP=Mixop(2,Tmp); + Tmp=Invparapt(SQ,Fh,Fk); + TQ=Mixop(2,Tmp); + HIDDENDATA=Mixadd(HIDDENDATA,Partcrv3(TP,TQ,Fk)); + else + HIDDENDATA=Mixadd(HIDDENDATA,Fk); + end; + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Nohiddenpara2.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Nohiddenpara2.bin Binary files differnew file mode 100644 index 00000000..4bb581d7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Nohiddenpara2.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Nohiddenpara2.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Nohiddenpara2.sci new file mode 100755 index 00000000..996559db --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Nohiddenpara2.sci @@ -0,0 +1,131 @@ +// 08.10.10 +// 08.10.15 +// 09.06.24 +// 10.02.16 Eps + +function FigkL=Nohiddenpara2(PaL,Fk,Fd,Uveq,Np,Eps) + global HIDDENDATA THETA PHI TMP; + Eps0=10^(-5); + Fh=Projpara(Fk); + P1=Ptstart(Fh); + P2=Ptend(Fh); + Csp=CuspPt(); + Cspflg=1; + for I=1:Mixlength(Csp) + Tmp=Mixop(I,Csp); + if norm(Tmp-P1)<Eps0 + select Cspflg, + case 1 then Cspflg=2, + case 3 then Cspflg=6; + end; + continue; + end; + if norm(Tmp-P2)<Eps0 + select Cspflg, + case 1 then Cspflg=3, + case 2 then Cspflg=6; + end; + continue; + end; + end; + SeL=[]; + for N=1:length(PaL)-1 + S=(PaL(N)+PaL(N+1))/2; + Tmp=Invparapt(S,Fh,Fk); + PtA=Mixop(1,Tmp); + PtAp=Parapt(PtA); + Vec=[sin(THETA)*cos(PHI),sin(THETA)*sin(PHI),cos(THETA)]; + Epstmp=Eps; + if N==1 & modulo(Cspflg,2)==0 + Tmp=min(Eps(1)*norm(PtAp-Ptstart(Fh)),Eps(1)); // + Epstmp=[Tmp,Eps(2)]; // + end; + if N==length(PaL)-1 & modulo(Cspflg,3)==0 + Tmp=min(Eps(1)*norm(PtAp-Ptend(Fh)),Eps(1)); // + Epstmp=[Tmp,Eps(2)]; // + end; + Flg=PthiddenQ(PtA,Vec,Fd,Uveq,Np,Epstmp); + if Flg==0 + SeL=[SeL,N]; + end; + end; + FigL=[]; + FigkL=[]; + for I=1:length(SeL) + Tmp1=PointonCurve(PaL(SeL(I)),Fh); + Tmp2=PointonCurve(PaL(SeL(I)+1),Fh); + if I==1 + P=Tmp1; SP=PaL(SeL(I)); + Q=Tmp2; SQ=PaL(SeL(I)+1); + else + if Member(SeL(I)-1,SeL) + Q=Tmp2; SQ=PaL(SeL(I)+1); + else + FigL=Mixadd(FigL,Partcrv(SP,SQ,Fh)); + Tmp3=Invparapt(SP,Fh,Fk); + TP=Mixop(2,Tmp3); + Tmp3=Invparapt(SQ,Fh,Fk); + TQ=Mixop(2,Tmp3); + Tmp4=Partcrv3(TP,TQ,Fk) + FigkL=Mixadd(FigkL,Tmp4); + P=Tmp1; SP=PaL(SeL(I)); + Q=Tmp2; SQ=PaL(SeL(I)+1); + end; + end; + end; + if length(SeL)>0 + if norm(P-Q)>Eps(1) // + FigL=Mixadd(FigL,Partcrv(P,Q,Fh)); + Tmp3=Invparapt(SP,Fh,Fk); + TP=Mixop(2,Tmp3); + Tmp3=Invparapt(SQ,Fh,Fk); + TQ=Mixop(2,Tmp3); + FigkL=Mixadd(FigkL,Partcrv3(TP,TQ,Fk)); + else + FigL=Mixadd(FigL,Fh); + FigkL=Mixadd(FigkL,Fk); + end; + end; + Tmp=[]; + for I=1:length(PaL)-1 + if ~Member(I,SeL) + Tmp=[Tmp,I]; + end; + end; + SeL=Tmp; + HIDDENDATA=[]; + for I=1:length(SeL) + Tmp=PaL(SeL(I)); + Tmp1=PointonCurve(Tmp,Fh); + Tmp=PaL(SeL(I)+1); + Tmp2=PointonCurve(Tmp,Fh); + if I==1 + P=Tmp1; SP=PaL(SeL(I)); + Q=Tmp2; SQ=PaL(SeL(I)+1); + else + if Member(SeL(I)-1,SeL) + Q=Tmp2; SQ=PaL(SeL(I)+1); + else + Tmp=Invparapt(SP,Fh,Fk); + TP=Mixop(2,Tmp); + Tmp=Invparapt(SQ,Fh,Fk); + TQ=Mixop(2,Tmp); + HIDDENDATA=Mixadd(HIDDENDATA,Partcrv3(TP,TQ,Fk)); + P=Tmp1; SP=PaL(SeL(I)); + Q=Tmp2; SQ=PaL(SeL(I)+1); + end; + end; + end; + if length(SeL)>0 + if norm(P-Q)>Eps(1) // + Tmp=Invparapt(SP,Fh,Fk); + TP=Mixop(2,Tmp); + Tmp=Invparapt(SQ,Fh,Fk); + TQ=Mixop(2,Tmp); + HIDDENDATA=Mixadd(HIDDENDATA,Partcrv3(TP,TQ,Fk)); + else + HIDDENDATA=Mixadd(HIDDENDATA,Fk); + end; + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Nohiddenpers.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Nohiddenpers.bin Binary files differnew file mode 100644 index 00000000..47aea6f6 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Nohiddenpers.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Nohiddenpers.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Nohiddenpers.sci new file mode 100755 index 00000000..140516b1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Nohiddenpers.sci @@ -0,0 +1,253 @@ +// 08.09.21 +// 09.12.31 (gsort) + +function FigkL=Nohiddenpers(varargin) + global EyePoint FocusPoint HIDDENDATA; + Eps=0.001; + PaL=varargin(1); + Fk=varargin(2); + FuncdL=varargin(3); + Tmp=Mixop(1,FuncdL); + Fxy=Mixop(1,Tmp); + K=mtlb_findstr(Fxy,'='); + Fxy=part(Fxy,K+1:length(Fxy)); + Fbdxy=Mixop(2,FuncdL); + Tmp=Mixop(3,FuncdL); + Xname=Mixop(1,Tmp); + Tmp=Mixop(4,FuncdL); + Yname=Mixop(1,Tmp); + FigkL=[]; + if Fbdxy==[] + return; + end; + Bdy=Kyoukai(Fbdxy); + Ptn=0; + Fh=Projpers(Fk); + SeL=[]; + for N=1:length(PaL)-1 + S=(PaL(N)+PaL(N+1))/2; + P=PointonCurve(S,Fh); + Tmp=Invperspt(S,Fh,Fk) + Pk=Mixop(1,Tmp); + Flg=zeros(1,Mixlength(Fbdxy)); + for I=1:1000 + Tmp=Pk+I*(EyePoint-Pk); + Tmp1=Naigai(Tmp(1:2),Bdy); + if Tmp1==Flg + Flg=1; + Qk=Tmp; + break; + end; + end; + if Flg~=1 + disp('Bad EyePoint'); + return; + end; + T=poly(0,'t'); + P0=(1-T)*Pk+T*Qk; + X0str='('+pol2str(P0(1))+')'; + Y0str='('+pol2str(P0(2))+')'; + Z0str='('+pol2str(P0(3))+')'; + Tmp=strsubst(Fxy,Xname,X0str); + Tmp=strsubst(Tmp,Yname,Y0str); + Efn=Z0str+'-('+Tmp+')'; + t=0; + Tmp=evstr(Efn); + Eps=max(Eps,abs(Tmp)); + Tmp1=evstr([X0str,Y0str]); + t=1; + Tmp2=evstr([X0str,Y0str]); + Seg=Listplot([Tmp1,Tmp2]); + Tmp=[]; + for I=1:Mixlength(Fbdxy) + Tmp2=Mixop(I,Fbdxy); + Tmp1=IntersectcrvsPp(Seg,Tmp2,Eps); + if Mixlength(Tmp1)>0 + Tmp2=[]; + for J=1:Mixlength(Tmp1) + Tmp3=Mixop(J,Tmp1); + Tmp3=Mixop(2,Tmp3)-1; + Tmp2=[Tmp2,Tmp3]; + end; + Tmp=[Tmp,Tmp2]; + else + Tmp2=Mixop(I,Fbdxy); + Tmp1=Nearestpt(Tmp2,Seg); + Tmp3=Mixop(5,Tmp1); + if Tmp3<Eps + Tmp4=Mixop(4,Tmp1); + Tmp=[Tmp,Tmp4-1]; + end; + end; + end; + if length(Tmp)==0 + SeL=[SeL,N]; + continue; + end; + Tmp=gsort(Tmp); + Tmp=Tmp(length(Tmp):-1:1); + ParamL=[0]; + for I=1:length(Tmp) + Tmp1=Tmp(I); + Tmp2=ParamL(length(ParamL)); + if Tmp1-Tmp2>Eps + ParamL=[ParamL,Tmp1]; + end; + end; + Nhdflg=0; + for M=1:length(ParamL)-1 + TL=[ParamL(M),ParamL(M+1)]; + t=TL(1); + Tmp1=evstr([X0str,Y0str]); + t=TL(2); + Tmp2=evstr([X0str,Y0str]); + Tmp=Naigai(0.5*(Tmp1+Tmp2),Bdy); + Tmp=modulo(sum(Tmp),2); + if Tmp==Ptn continue; end; + Ik=max(ceil(log((TL(2)-TL(1))/Eps)/log(2)),6); + t=TL(1); + Tmp1=evstr(Efn); + t=TL(2); + Tmp2=evstr(Efn); + if abs(Tmp1)<=Eps + if M>1 + Nhdflg=-10; + break; + end; + end; + if abs(Tmp2)<=Eps + Nhdflg=-10; + break; + end; + if Tmp2>Eps + if Tmp1<-Eps + Nhdflg=-10; + break; + end; + for I=1:Ik + AddL=[]; + VL=[]; + for J=1:length(TL)-1 + Tmp=(TL(J)+TL(J+1))*0.5; + AddL=[AddL,Tmp]; + t=Tmp; + Tmp1=evstr(Efn); + VL=[VL,Tmp1]; + end; + Tmp1=min(VL); + if Tmp1<=-Eps*2 + Nhdflg=-10; + break; + end; + TL=gsort([TL,AddL]); + end; + if Nhdflg~=0 break; end; + else + if Tmp1<-Eps + Nhdflg=-10; + break; + end; + for I=1:Ik + AddL=[]; + VL=[]; + for J=1:length(TL)-1 + Tmp=(TL(J)+TL(J+1))*0.5; + AddL=[AddL,Tmp]; + t=Tmp; + Tmp1=evstr(Efn); + VL=[VL,Tmp1]; + end; + Tmp1=max(VL); + if Tmp1>Eps*2 + Nhdflg=-10; + break; + end; + TL=gsort([TL,AddL]); + end; + if Nhdflg~=0 break; end; + end; + end; + if Nhdflg==0 + SeL=[SeL,N]; + end; + end; + FigL=[]; + FigkL=[]; + for I=1:length(SeL) + Tmp1=PointonCurve(PaL(SeL(I)),Fh); + Tmp2=PointonCurve(PaL(SeL(I)+1),Fh); + if I==1 + P=Tmp1; SP=PaL(SeL(I)); + Q=Tmp2; SQ=PaL(SeL(I)+1); + else + if Member(SeL(I)-1,SeL) + Q=Tmp2; SQ=PaL(SeL(I)+1); + else + FigL=Mixadd(FigL,Partcrv(SP,SQ,Fh)); + Tmp3=Invperspt(SP,Fh,Fk); + TP=Mixop(2,Tmp3); + Tmp3=Invperspt(SQ,Fh,Fk); + TQ=Mixop(2,Tmp3); + Tmp4=Partcrv3(TP,TQ,Fk) + FigkL=Mixadd(FigkL,Tmp4); + P=Tmp1; SP=PaL(SeL(I)); + Q=Tmp2; SQ=PaL(SeL(I)+1); + end; + end; + end; + if length(SeL)>0 + if norm(P-Q)>Eps + FigL=Mixadd(FigL,Partcrv(P,Q,Fh)); + Tmp3=Invperspt(SP,Fh,Fk); + TP=Mixop(2,Tmp3); + Tmp3=Invperspt(SQ,Fh,Fk); + TQ=Mixop(2,Tmp3); + FigkL=Mixadd(FigkL,Partcrv3(TP,TQ,Fk)); + else + FigL=Mixadd(FigL,Fh); + FigkL=Mixadd(FigkL,Fk); + end; + end; + Tmp=[]; + for I=1:length(PaL)-1 + if ~Member(I,SeL) + Tmp=[Tmp,I]; + end; + end; + SeL=Tmp; + HIDDENDATA=[]; + for I=1:length(SeL) + Tmp=PaL(SeL(I)); + Tmp1=PointonCurve(Tmp,Fh); + Tmp=PaL(SeL(I)+1); + Tmp2=PointonCurve(Tmp,Fh); + if I==1 + P=Tmp1; SP=PaL(SeL(I)); + Q=Tmp2; SQ=PaL(SeL(I)+1); + else + if Member(SeL(I)-1,SeL) + Q=Tmp2; SQ=PaL(SeL(I)+1); + else + Tmp=Invperspt(SP,Fh,Fk); + TP=Mixop(2,Tmp); + Tmp=Invperspt(SQ,Fh,Fk); + TQ=Mixop(2,Tmp); + HIDDENDATA=Mixadd(HIDDENDATA,Partcrv3(TP,TQ,Fk)); + P=Tmp1; SP=PaL(SeL(I)); + Q=Tmp2; SQ=PaL(SeL(I)+1); + end; + end; + end; + if length(SeL)>0 + if norm(P-Q)>Eps + Tmp=Invperspt(SP,Fh,Fk); + TP=Mixop(2,Tmp); + Tmp=Invperspt(SQ,Fh,Fk); + TQ=Mixop(2,Tmp); + HIDDENDATA=Mixadd(HIDDENDATA,Partcrv3(TP,TQ,Fk)); + else + HIDDENDATA=Mixadd(HIDDENDATA,Fk); + end; + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Nohiddenpers2.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Nohiddenpers2.bin Binary files differnew file mode 100644 index 00000000..65217043 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Nohiddenpers2.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Nohiddenpers2.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Nohiddenpers2.sci new file mode 100644 index 00000000..d49bce91 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Nohiddenpers2.sci @@ -0,0 +1,134 @@ +// 08.10.11 +// 08.10.12 +// 08.10.15 +// 09.06.24 +// 10.02.16 Eps +// 11.04.12 Eps0 (bug) +// 13.11.02 bug + +function FigkL=Nohiddenpers2(PaL,Fk,Fd,Uveq,Np,Eps) + global EyePoint FocusPoint HIDDENDATA; + Eps0=10^(-5); // 11.04.12 + Fh=Projpers(Fk); + P1=Ptstart(Fh); + P2=Ptend(Fh); + Csp=CuspPt(); + Cspflg=1; + for I=1:Mixlength(Csp) + Tmp=Mixop(I,Csp); + if norm(Tmp-P1)<Eps0 + select Cspflg, + case 1 then Cspflg=2, + case 3 then Cspflg=6; + end; + continue; + end; + if norm(Tmp-P2)<Eps0 + select Cspflg, + case 1 then Cspflg=3, + case 2 then Cspflg=6; + end; + continue; + end; + end; + SeL=[]; + for N=1:length(PaL)-1 + S=(PaL(N)+PaL(N+1))/2; + Tmp=Invperspt(S,Fh,Fk) + PtA=Mixop(1,Tmp); + PtAp=Perspt(PtA); +// Vec=EyePoint-FocusPoint; + Vec=EyePoint-PtA; // 2013.11.02 + Epstmp=Eps; // 2011.04.12 + if N==1 & modulo(Cspflg,2)==0 + Tmp=min(Eps(1)*norm(PtAp-Ptstart(Fh)),Eps(1)); // + Epstmp=[Tmp,Eps(2)]; // + end; + if N==length(PaL)-1 & modulo(Cspflg,3)==0 + Tmp=min(Eps(1)*norm(PtAp-Ptend(Fh)),Eps(1)); // + Epstmp=[Tmp,Eps(2)]; // + end; + Flg=PthiddenQ(PtA,Vec,Fd,Uveq,Np,Epstmp); + if Flg==0 + SeL=[SeL,N]; + end; + end; + FigL=[]; + FigkL=[]; + for I=1:length(SeL) + Tmp1=PointonCurve(PaL(SeL(I)),Fh); + Tmp2=PointonCurve(PaL(SeL(I)+1),Fh); + if I==1 + P=Tmp1; SP=PaL(SeL(I)); + Q=Tmp2; SQ=PaL(SeL(I)+1); + else + if Member(SeL(I)-1,SeL) + Q=Tmp2; SQ=PaL(SeL(I)+1); + else + FigL=Mixadd(FigL,Partcrv(SP,SQ,Fh)); + Tmp3=Invperspt(SP,Fh,Fk); + TP=Mixop(2,Tmp3); + Tmp3=Invperspt(SQ,Fh,Fk); + TQ=Mixop(2,Tmp3); + Tmp4=Partcrv3(TP,TQ,Fk) + FigkL=Mixadd(FigkL,Tmp4); + P=Tmp1; SP=PaL(SeL(I)); + Q=Tmp2; SQ=PaL(SeL(I)+1); + end; + end; + end; + if length(SeL)>0 + if norm(P-Q)>Eps(1) // + FigL=Mixadd(FigL,Partcrv(P,Q,Fh)); + Tmp3=Invperspt(SP,Fh,Fk); + TP=Mixop(2,Tmp3); + Tmp3=Invperspt(SQ,Fh,Fk); + TQ=Mixop(2,Tmp3); + FigkL=Mixadd(FigkL,Partcrv3(TP,TQ,Fk)); + else + FigL=Mixadd(FigL,Fh); + FigkL=Mixadd(FigkL,Fk); + end; + end; + Tmp=[]; + for I=1:length(PaL)-1 + if ~Member(I,SeL) + Tmp=[Tmp,I]; + end; + end; + SeL=Tmp; + HIDDENDATA=[]; + for I=1:length(SeL) + Tmp=PaL(SeL(I)); + Tmp1=PointonCurve(Tmp,Fh); + Tmp=PaL(SeL(I)+1); + Tmp2=PointonCurve(Tmp,Fh); + if I==1 + P=Tmp1; SP=PaL(SeL(I)); + Q=Tmp2; SQ=PaL(SeL(I)+1); + else + if Member(SeL(I)-1,SeL) + Q=Tmp2; SQ=PaL(SeL(I)+1); + else + Tmp=Invperspt(SP,Fh,Fk); + TP=Mixop(2,Tmp); + Tmp=Invperspt(SQ,Fh,Fk); + TQ=Mixop(2,Tmp); + HIDDENDATA=Mixadd(HIDDENDATA,Partcrv3(TP,TQ,Fk)); + P=Tmp1; SP=PaL(SeL(I)); + Q=Tmp2; SQ=PaL(SeL(I)+1); + end; + end; + end; + if length(SeL)>0 + if norm(P-Q)>Eps(1) // + Tmp=Invperspt(SP,Fh,Fk); + TP=Mixop(2,Tmp); + Tmp=Invperspt(SQ,Fh,Fk); + TQ=Mixop(2,Tmp); + HIDDENDATA=Mixadd(HIDDENDATA,Partcrv3(TP,TQ,Fk)); + else + HIDDENDATA=Mixadd(HIDDENDATA,Fk); + end; + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Numptcrv.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Numptcrv.bin Binary files differnew file mode 100644 index 00000000..6093f704 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Numptcrv.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Numptcrv.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Numptcrv.sci new file mode 100755 index 00000000..dad4f4ef --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Numptcrv.sci @@ -0,0 +1,4 @@ +function N=Numptcrv(Fig) + N=size(Fig,1) +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objcurve.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objcurve.bin Binary files differnew file mode 100644 index 00000000..1720cf7c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objcurve.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objcurve.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objcurve.sci new file mode 100644 index 00000000..20a86640 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objcurve.sci @@ -0,0 +1,115 @@ +// s : 2014.06.22 +// 2014.08.26 debugged 1,-1 => "+","-" +// 2014.09.07 Objjoin added +// 2016.10.09 Np in Spacecurve changed + +function Out=Objcurve(varargin) + global OBJFIGNO OBJJOIN + Eps=10^(-6); + Args=varargin; + Nargs=length(Args) + Tmp=Args(1); + PtL=Flattenlist(Tmp); + PL=list(); + for J=1:length(PtL) + Tmp=PtL(J); + for K=1:size(Tmp,1) + PL=lstcat(PL,list(Tmp(K,:))) + end; + end; + Closed=norm(PL(length(PL))-PL(1))<Eps + Pstr="xy"; + Tmp=Args(Nargs) + if type(Tmp)==10 then + Pstr=Tmp; + Nargs=Nargs-1 + end; + Sz=0.1; + Np=4; + if Nargs>=2 then + Sz=Args(2) + end; + if Nargs>=3 then + Np=Args(3) + end; + Assign("Sz",Sz) + if Pstr=="xy" then + Vz=[0,0,1]; + Fs=Assign("[Sz*cos(t),Sz*sin(t),0]") + end; + if Pstr=="yz" then + Vz=[1,0,0]; + Fs=Assign("[0,Sz*cos(t),Sz*sin(t)]") + end; + if Pstr=="zx" then + Vz=[0,1,0]; + Fs=Assign("[Sz*sin(t),0,Sz*cos(t)]") + end; + Gc0=Spacecurve(Fs,"t=[0,2*%pi]","N="+string(Np));//16.10.09 + P=PL(1); Q=PL(2); R=PL(length(PL)-1); + PQ1=Q-P; + if ~Closed then + PQ2=PQ1 + else + PQ2=P-R + end; + Vp=PQ1/norm(PQ1)+PQ2/norm(PQ2); + Vp1=Vp/norm(Vp); + Theta=acos(min(Dotprod(Vz,Vp1),1)); + Vj=Crossprod(Vz,Vp1); + if norm(Vj)<Eps then + Vj=Vz + end; + Gc1=Rotate3data(Gc0,Vj,Theta); + CL=list(Translate3data(Gc1,P)); + for J=2:(length(PL)-1) + P=PL(J); Q=PL(J+1); + PQ2=Q-P; + if norm(PQ2)<Eps then + continue + end; + Vp=PQ1/norm(PQ1)+PQ2/norm(PQ2); + Vp2=Vp/norm(Vp); + Theta=acos(min(Dotprod(Vp1,Vp2),1)); + Vj=Crossprod(Vp1,Vp2); + if norm(Vj)<Eps then + Vj=Vp1 + end; + Gc2=Rotate3data(Gc1,Vj,Theta); + CL=lstcat(CL,list(Translate3data(Gc2,P))); + PQ1=PQ2; + Vp1=Vp2; + Gc1=Gc2; + end; + if ~Closed then + Vp2=(Q-P)/norm(Q-P); + Theta=acos(min(Dotprod(Vp1,Vp2),1)); + Vj=Crossprod(Vp1,Vp2); + if norm(Vj)<Eps then + Vj=Vp1 + end; + Gc3=Rotate3data(Gc1,Vj,Theta); + CL=lstcat(CL,list(Translate3data(Gc3,Q))) + end; + Objname(); // from 140907 + Join=Objjoin(); + Objjoin(1); // upto + GL1=CL(1); + for J=2:length(CL) + GL2=CL(J); + Dt=Objrecs(GL1,GL2,"-"); + GL1=Dt(2); + if J==2 then + GL0=Dt(1) + end; + end; + if ~Closed then + Objpolygon(CL(1),"-"); + N=length(CL); + Objpolygon(CL(N),"+") + else + Objrecs(GL1,GL0,"-") + end; + Out=CL + OBJJOIN=Join; // 140907 +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objjoin.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objjoin.bin Binary files differnew file mode 100644 index 00000000..1691debf --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objjoin.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objjoin.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objjoin.sci new file mode 100644 index 00000000..e8a80ff3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objjoin.sci @@ -0,0 +1,9 @@ +// s: 2014.09.07 + +function Out=Objjoin(varargin) + global OBJJOIN + if length(varargin)>0 + OBJJOIN=abs(sign(varargin(1))) + end; + Out=OBJJOIN +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objname.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objname.bin Binary files differnew file mode 100644 index 00000000..c6d194f0 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objname.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objname.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objname.sci new file mode 100644 index 00000000..6c523fc2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objname.sci @@ -0,0 +1,11 @@ +// s: 2014.09.07 + +function Objname() + global OBJFIGNO OBJJOIN + if OBJJOIN==0 then + OBJFIGNO=OBJFIGNO+1; + Gname="ketfig"+string(OBJFIGNO); + Printobjstr("# "+Gname); + Printobjstr("g "+Gname); + end; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objpolygon.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objpolygon.bin Binary files differnew file mode 100644 index 00000000..d9a85501 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objpolygon.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objpolygon.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objpolygon.sci new file mode 100644 index 00000000..ba5b346a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objpolygon.sci @@ -0,0 +1,65 @@ +// s : 2014.06.22 +// 14.09.07 Objjoin added + +function Out=Objpolygon(varargin) + global OBJFIGNO OBJJOIN + Eps=10^(-6); + Args=varargin; + Nargs=length(Args); + Tmp=Args(1); + PtL=Flattenlist(Tmp); + PL=list(); + for J=1:length(PtL) + Tmp=PtL(J); + for K=1:size(Tmp,1) + PL=lstcat(PL,list(Tmp(K,:))) + end; + end; + Sel=Args(Nargs); Nargs=Nargs-1; + Objname(); // 140907 + for J=1:length(PL) + P=PL(J); + if (length(P)<4) | (P(4)==0) then + Np=Writeobjpoint(P); + PL(J)=[P(1:3),Np] + end; + end; + if Nargs==1 then + Tmp=PL(1); + Cen=Tmp(1:3); + Nc=Tmp(4) + else + Tmp=Args(2); + if length(Tmp)==1 then + Tmp1=PL(Tmp); + Cen=Tmp1(1:3); + Nc=Tmp(4) + else + Cen=Tmp; + Nc=Writeobjpoint(Cen) + end; + end; + for J=1:length(PL) + if J<length(PL) then + Je=J+1 + else + Je=1 + end; + Pt1=Cen; + PLj=PL(J); PLje=PL(Je); + Pt2=PLj(1:3); Pt3=PLje(1:3); + if norm(Crossprod(Pt2-Pt1,Pt3-Pt1))<Eps then + continue + end; + P1=sprintf("%1d",Nc); + P2=sprintf("%1d",PLj(4)) + P3=sprintf("%1d",PLje(4)) + if Sel=="+" then // 6.22 + Str="f "+P1+" "+P2+" "+P3+" " + else + Str="f "+P1+" "+P3+" "+P2+" " + end; + Printobjstr(Str) + end; + Out=PL +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objpolyhedron.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objpolyhedron.bin Binary files differnew file mode 100644 index 00000000..fed77a7d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objpolyhedron.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objpolyhedron.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objpolyhedron.sci new file mode 100644 index 00000000..c33e23a8 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objpolyhedron.sci @@ -0,0 +1,25 @@ +// s : 2014.06.22 +// 14.09.07 Objjoin added + +function Out=Objpolyhedron(Vertex,Face) + global NPOINT OBJFIGNO; + OBJFIGNO=OBJFIGNO+1; + Ninit=NPOINT; + Objname(); // 140907 + for N=1:length(Vertex) + P=Vertex(N); + Np=Writeobjpoint(P); + Vertex(N)=[P(1:3),Np] + end; + for N=1:length(Face) + F=Face(N)+Ninit; + Face(N)=F; + Str="f" + for J=1:length(F) + P=sprintf("%1d",F(J)); + Str=Str+" "+P + end; + Printobjstr(Str) + end; + Out=list(Vertex,Face) +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objrecs.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objrecs.bin Binary files differnew file mode 100644 index 00000000..2a419206 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objrecs.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objrecs.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objrecs.sci new file mode 100644 index 00000000..d8775fb3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objrecs.sci @@ -0,0 +1,87 @@ +// s : 2014.06.22 +// 2014.09.07 Objjoin added + +function Out=Objrecs(varargin) + global OBJFIGNO OBJJOIN + Eps=10^(-6); + Args=varargin; + Nargs=length(Args); + Tmp=Args(1); + PtL=Flattenlist(Tmp); + PL1=list(); + for J=1:length(PtL) + Tmp=PtL(J); + for K=1:size(Tmp,1) + PL1=lstcat(PL1,list(Tmp(K,:))) + end; + end; + Sel=Args(Nargs); Nargs=Nargs-1; + Objname(); // // 140907 + for J=1:length(PL1) + P=PL1(J) + if (length(P)<4) | (P(4)==0) then + Np=Writeobjpoint(P); + PL1(J)=[P(1:3),Np]; + end; + end; + Tmp=Args(2); + if (type(Tmp)==1) & (size(Tmp,1)==1) then + Drv=Tmp; + Len=norm(Drv); + PL2=list(); + for J=1:length(PL1) + Tmp=PL1(J); + P=Tmp(1:3)+Drv; + Np=Writeobjpoint(P); + PL2=lstcat(PL2,list([P(1:3),Np])); + if J<length(PL1) then + Vec=PL1(J+1)-PL1(J); + if norm(Vec)>Eps then + Tmp1=Crossprod(Drv,Vec); + Tmp2=Crossprod(Tmp1,Vec); + Tmp3=Dotprod(Tmp2,Drv); + if Tmp3<-Eps then + Tmp2=-Tmp2 + end; + Drv=Len/norm(Tmp2)*Tmp2 + end + end + end + else + PtL=Flattenlist(Tmp); + PL2=list(); + for J=1:length(PtL) + Tmp=PtL(J); + for K=1:size(Tmp,1) + PL2=lstcat(PL2,list(Tmp(K,:))) + end; + end; + for J=1:length(PL2) + P=PL2(J); + if (length(P)<4) | (P(4)==0) then + Np=Writeobjpoint(P); + PL2(J)=[P(1:3),Np] + end; + end; + end; + Printobjstr("vt 0 0"); + Printobjstr("vt 1 0"); + Printobjstr("vt 1 1"); + Printobjstr("vt 0 1"); + for J=2:length(PL1) + P1=sprintf("%1d",Op(4,PL1(J-1))); + P2=sprintf("%1d",Op(4,PL2(J-1))); + P3=sprintf("%1d",Op(4,PL2(J))); + P4=sprintf("%1d",Op(4,PL1(J))); + N1=""; N2=""; N3=""; N4=""; + if Sel=="+" then // 6.22 + Str="f "+P1+"/1/"+N1+" "+P2+"/2/"+N2+" "; + Str=Str+P3+"/3/"+N3+" "+P4+"/4/"+N4; + else + Str="f "+P1+"/1/"+N1+" "+P4+"/4/"+N4+" "; + Str=Str+P3+"/3/"+N3+" "+P2+"/2/"+N2; + end; + Printobjstr(Str) + end; + Out=list(PL1,PL2) +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objsurf.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objsurf.bin Binary files differnew file mode 100644 index 00000000..99ec2207 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objsurf.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objsurf.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objsurf.sci new file mode 100644 index 00000000..15543b8a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objsurf.sci @@ -0,0 +1,114 @@ +// s : 2014.06.22 +// e : 2014.07.18 +// Objsurf, Objthicksurf : Range argments changed +// 2014.09.07 Objjoin added + +function Out=Objsurf(varargin) + global OBJFIGNO OBJJOIN + Args=varargin; + Nargs=length(Args); + Sel=Args(Nargs); Nargs=Nargs-1; + Rf=Args(1); + N=2; + Mg=0; Ng=0; + if type(Args(N))==1 then + if length(Args(N))>2 then + U=Args(N); + Mg=length(U)-1; + N=N+1; + elseif length(Args(N))==2 then + Intab=Args(N); + Ag=Intab(1); Bg=Intab(2); + N=N+1; + else + Ag=Args(N); Bg=Args(N+1); + N=N+2; + end; + else // when type(Args(N))==10 + Tmp0=Args(N); + Tmp=mtlb_findstr("=",Tmp0); + if length(Tmp)>0 then + Tmp0=part(Tmp0,(Tmp+1):length(Tmp0)); + end; + Intab=evstr(Tmp0); + Ag=Intab(1); Bg=Intab(2); + N=N+1; + end; + if type(Args(N))==1 then + if length(Args(N))>2 then + V=Args(N); + Ng=length(V)-1; + N=N+1; + elseif length(Args(N))==2 then + Intab=Args(N); + Cg=Intab(1); Dg=Intab(2); + N=N+1; + else + Cg=Args(N); Dg=Args(N+1); + N=N+2; + end; + else // when type(Args(N))==10 + Tmp0=Args(N); + Tmp=mtlb_findstr("=",Tmp0); + if length(Tmp)>0 then + Tmp0=part(Tmp0,(Tmp+1):length(Tmp0)); + end; + Intab=evstr(Tmp0); + Cg=Intab(1); Dg=Intab(2); + N=N+1; + end; + if Mg==0 then + Mg=Args(N); + N=N+1; + U=[]; + for J=1:(Mg+1) + U=[U,Ag+(J-1)/Mg*(Bg-Ag)]; + end; + end; + if Ng==0 then + Ng=Args(N); + V=[]; + for K=1:(Ng+1) + V=[V,Cg+(K-1)/Ng*(Dg-Cg)]; + end; + end; + Objname(); // // 140907 + PL=list(); + for J=1:(Mg+1) + for K=1:(Ng+1) + P=Rf(U(J),V(K)); + Np=Writeobjpoint(P) + PL=lstcat(PL,list([P,Np])); + end; + end; + Idx=1:(Ng+1):(Ng+1)*Mg+1; + Pus=Mixsub(Idx,PL); + Idx=(Ng+1):(Ng+1):(Ng+1)*(Mg+1); + Pue=Mixsub(Idx,PL); + Idx=1:1:Ng+1; + Pvs=Mixsub(Idx,PL); + Idx=(Ng+1)*Mg+1:1:(Ng+1)*(Mg+1); + Pve=Mixsub(Idx,PL); + Printobjstr("vt 0 0"); + Printobjstr("vt 1 0"); + Printobjstr("vt 1 1"); + Printobjstr("vt 0 1"); + for J=1:Mg + for K=1:Ng + P1=sprintf("%1d",Op(4,PL((Ng+1)*(J-1)+K))) + P2=sprintf("%1d",Op(4,PL((Ng+1)*J+K))) + P3=sprintf("%1d",Op(4,PL((Ng+1)*J+K+1))) + P4=sprintf("%1d",Op(4,PL((Ng+1)*(J-1)+K+1))) + N1=""; N2=""; N3=""; N4=""; + if Sel=="+" then // 6.22 + Str="f "+P1+"/1/"+N1+" "+P2+"/2/"+N2+" "; + Str=Str+P3+"/3/"+N3+" "+P4+"/4/"+N4; + else + Str="f "+P1+"/1/"+N1+" "+P4+"/4/"+N4+" "; + Str=Str+P3+"/3/"+N3+" "+P2+"/2/",N2; + end; + Printobjstr(Str) + end; + end; + Out=list(U,V,Pus,Pue,Pvs,Pve) +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objsymb.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objsymb.bin Binary files differnew file mode 100644 index 00000000..09306fec --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objsymb.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objsymb.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objsymb.sci new file mode 100644 index 00000000..808924a4 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objsymb.sci @@ -0,0 +1,7 @@ +// s : 2014.08.25 + +function Objsymb(Symb,Thick,Face,Dir) + for J=1:length(Symb) + Objcurve(Symb(J),Thick,Face,Dir); + end +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objthicksurf.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objthicksurf.bin Binary files differnew file mode 100644 index 00000000..b73e2b6a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objthicksurf.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objthicksurf.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objthicksurf.sci new file mode 100644 index 00000000..42fde6a5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Objthicksurf.sci @@ -0,0 +1,123 @@ +// s : 2014.06.22 +// e : 2014.07.18 +// Objsurf, Objthicksurf : Range argments changed +// 14.09.07 Objjoin added + +function Out=Objthicksurf(varargin) + global OBJJOIN + Args=varargin; + Nargs=length(Args) + Sel=Args(Nargs); Nargs=Nargs-1; + Selsurf=part(Sel,1); // from 6.22 + Selside=["0","0","0","0"]; // wesn + Tmp=mtlb_findstr(Sel,"w"); + if length(Tmp)>0 then + Selside(1)=part(Sel,Tmp+1) + end; + Tmp=mtlb_findstr(Sel,"e"); + if length(Tmp)>0 then + Selside(2)=part(Sel,Tmp+1) + end; + Tmp=mtlb_findstr(Sel,"s"); + if length(Tmp)>0 then + Selside(3)=part(Sel,Tmp+1) + end; + Tmp=mtlb_findstr(Sel,"n"); + if length(Tmp)>0 then + Selside(4)=part(Sel,Tmp+1) + end; + Nfth=Args(Nargs-2); + Thick1=Args(Nargs-1); + Thick2=Args(Nargs); + Nargs=Nargs-3; // upto 6.22 + Rfth=Args(1); // 6.22 + N=2; + Mg=0; Ng=0; + if type(Args(N))==1 then + if length(Args(N))>2 then + U=Args(N); + Mg=length(U)-1; + N=N+1; + elseif length(Args(N))==2 then + Intab=Args(N); + Ag=Intab(1); Bg=Intab(2); + N=N+1; + else + Ag=Args(N); Bg=Args(N+1); + N=N+2; + end; + else // when type(Args(N))==10 + Tmp0=Args(N); + Tmp=mtlb_findstr("=",Tmp0); + if length(Tmp)>0 then + Tmp0=part(Tmp0,(Tmp+1):length(Tmp0)); + end; + Intab=evstr(Tmp0); + Ag=Intab(1); Bg=Intab(2); + N=N+1; + end; + if type(Args(N))==1 then + if length(Args(N))>2 then + V=Args(N); + Ng=length(V)-1; + N=N+1; + elseif length(Args(N))==2 then + Intab=Args(N); + Cg=Intab(1); Dg=Intab(2); + N=N+1; + else + Cg=Args(N); Dg=Args(N+1); + N=N+2; + end; + else // when type(Args(N))==10 + Tmp0=Args(N); + Tmp=mtlb_findstr("=",Tmp0); + if length(Tmp)>0 then + Tmp0=part(Tmp0,(Tmp+1):length(Tmp0)); + end; + Intab=evstr(Tmp0); + Cg=Intab(1); Dg=Intab(2); + N=N+1; + end; + if Mg==0 then + Mg=Args(N); + N=N+1; + U=[]; + for J=1:(Mg+1) + U=[U,Ag+(J-1)/Mg*(Bg-Ag)]; + end; + end; + if Ng==0 then + Ng=Args(N); + V=[]; + for K=1:(Ng+1) + V=[V,Cg+(K-1)/Ng*(Dg-Cg)]; + end; + end; + Objname(); // 140907 from + Join=OBJJOIN; + OBJJOIN=1; // upto + deff("Out=F1(u,v)","Out=Rfth(u,v)+Thick1*Nfth(u,v)"); + deff("Out=F2(u,v)","Out=Rfth(u,v)+Thick2*Nfth(u,v)"); + Dt1=Objsurf(F1,U,V,Selsurf); + if Selsurf=="+" then Tmp="-"; else Tmp="+"; end; + Dt2=Objsurf(F2,U,V,Tmp); + Out=list(Dt1,Dt2); //from 06.22 + if Selside(1)~="0" then + Dt=Objrecs(Dt1(3),Dt2(3),Selside(1)); + Out=lstcat(Out,list(Dt)); + end + if Selside(2)~="0" then + Dt=Objrecs(Dt1(4),Dt2(4),Selside(2)); + Out=lstcat(Out,list(Dt)); + end + if Selside(3)~="0" then + Dt=Objrecs(Dt1(5),Dt2(5),Selside(3)); + Out=lstcat(Out,list(Dt)); + end + if Selside(4)~="0" then + Dt=Objrecs(Dt1(6),Dt2(6),Selside(4)); + Out=lstcat(Out,list(Dt)); + end; // upto 6.22 + OBJJOIN=Join // 140907 +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Op.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Op.bin Binary files differnew file mode 100644 index 00000000..fde60066 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Op.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Op.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Op.sci new file mode 100755 index 00000000..519bc9da --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Op.sci @@ -0,0 +1,35 @@ +// 08.05.19 + +// Structure changed +// 09.10.11 +// 10.01.10 available for plotdata +// 10.01.12 available for Dataindexed +// 10.01.16 + +function C=Op(N,Data) + C=[]; + if Mixtype(Data)>1 + C=Mixop(N,Data); + return; + end; + if type(Data)==10 + if size(Data,2)==1 + C=part(Data,N:N); + else + C=Data(N) + end; + return; + end; + if type(Data)==1 + if size(Data,1)==1 + C=Data(N); + else + Din=Dataindex(Data); + if size(Din,1)==1 + C=Data(N,:); + else + C=Data(Din(N,1):Din(N,2),:); + end; + end; + end +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Openfile.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Openfile.bin Binary files differnew file mode 100644 index 00000000..aaf01a9b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Openfile.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Openfile.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Openfile.sci new file mode 100755 index 00000000..4007e1b3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Openfile.sci @@ -0,0 +1,106 @@ + +// +// 10.01.10 filename written +// 13.05.20 openfile error tackled +// creator and date recorded +// 13.11.01 Beginpicture joined optionally + +function Openfile(varargin) + global Wfile FID; + + function Out=Datecount(F) + Tmp1=fileinfo(F); + Tmp=getdate(Tmp1(7)); + Year=Tmp(1); + Sec=((Tmp(4)-1)*24+Tmp(7))*3600+Tmp(8)*60+Tmp(9); + Out=[Year,Sec]; + endfunction + + function Out=Datestr(F) + if F~="" then + Tmp1=fileinfo(F); + Tmp=getdate(Tmp1(7)); + else + Tmp=getdate(); + end; + Year=Tmp(1); + Month=Tmp(2); + Day=Tmp(6); + Hour=Tmp(7); + Min=Tmp(8); + D=string(Year)+"-"+string(Month)+"-"+string(Day); + T=string(Hour)+":"+string(Min); + Out=D+" "+T; + endfunction + + File=varargin(1); + Bflg=0; + Creator=''; + Cflg=0; + Nargs=length(varargin); + for N=2:Nargs + Tmp=varargin(N); + K=mtlb_findstr(Tmp,"="); + if length(K)>0 then + Creator=part(Tmp,(K+1):length(Tmp)); + Cflg=1; + else + Bflg=1; + Unitstr=Tmp + end + end; + Recentf=''; + Tmp1=dir("*.sce"); + Files=Tmp1(2); + if size(Files,1)>0 then + Recentf=Files(1,:); + Dt=Datecount(Recentf); + for J=2:size(Files,1) + F=Files(J,:); + D=Datecount(F); + if D(1)~=Dt(1) then + if D(1)>Dt(1) then + Recentf=F; + Dt=D; + end + continue + end + if D(2)>Dt(2) then + Recentf=F; + Dt=D; + end + end; + end; + StrW="%%% "+File+" "+Datestr("") + StrC="%%% "+Creator; + if Cflg==0 then + if Recentf~="" then + StrC=StrC+Recentf+" "+Datestr(Recentf); + end + end + if File =='' then + Wfile='default'; + else +// errcatch(4,"continue"); // 2017.02.18 from +// Tmp=FID; +// if iserror(4) then +// FID=[]; +// errclear(4); +// end; +// if FID~=[] then +// mclose(FID); +// FID=[]; +// end +// errcatch(4,"kill"); // 2017.02.18 upto + FID=mopen(File,'w'); + Wfile=File; + end + if Wfile=='default' + mprintf('%s\n%s\n',StrW,StrC); + else + mfprintf(FID,'%s\n%s\n',StrW,StrC); + end + if Bflg==1 then + Beginpicture(Unitstr) + end +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Openobj.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Openobj.bin Binary files differnew file mode 100644 index 00000000..0562b2b2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Openobj.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Openobj.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Openobj.sci new file mode 100644 index 00000000..e902ce5d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Openobj.sci @@ -0,0 +1,33 @@ +// s : 2014.06.22 +// e : 14.09.07 + +function Out=Openobj(Fnm) + global OBJFMT NPOINT NNORM OBJSCALE OBJFIGNO Wfile FID OBJJOIN + OBJFMT= "%7.4f"; + NPOINT= 0; + NNORM=0; + OBJSCALE=1; + OBJFIGNO=0; + OBJJOIN=0; // 140906 + if Fnm =='' then + Wfile='default'; + else +// errcatch(4,"continue"); //17.02.18from +// Tmp=FID; +// if iserror(4) then +// FID=[]; +// errclear(4); +// end; +// if FID~=[] then +// mclose(FID); +// FID=[]; +// end +// errcatch(4,"kill"); //17.02.18upto + if length(mtlb_findstr(Fnm,".obj"))==0 + Fnm=Fnm+".obj"; + end; + FID=mopen(Fnm,'w'); + Wfile=Fnm; + Out=Wfile; + end +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Openpar.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Openpar.bin Binary files differnew file mode 100644 index 00000000..4fad25f8 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Openpar.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Openpar.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Openpar.sci new file mode 100755 index 00000000..a3056f66 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Openpar.sci @@ -0,0 +1,29 @@ +// 08.05.31 + +function Openpar(varargin) + global Wfile FID; + Nargs=length(varargin); + Tmp=varargin(1); + Tmp1=Strop(1,Tmp); + if Tmp1=='\' | Tmp1=='ツ・' + Namestr=Tmp; + N=2; + else + Namestr='\tmp'; + N=1; + end + Habastr=varargin(N); + if Nargs>N + Posstr='['+varargin(N+1)+']'; + else + Posstr='[c]' + end + Openphr(Namestr); + S='\begin{minipage}'+Posstr+'{'+Habastr+'}%'; + if Wfile=='default' + mprintf('%s\n',S); + else + mfprintf(FID,'%s\n',S); + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Openphr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Openphr.bin Binary files differnew file mode 100644 index 00000000..3324d29e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Openphr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Openphr.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Openphr.sci new file mode 100755 index 00000000..461549e9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Openphr.sci @@ -0,0 +1,12 @@ +// 08.05.31 + +function Openphr(Str) + global Wfile FID + S='\def'+Str+'{%'; + if Wfile=='default' + mprintf('%s\n',S); + else + mfprintf(FID,'%s\n',S); + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Openpicture.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Openpicture.bin Binary files differnew file mode 100644 index 00000000..6f58ed83 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Openpicture.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Openpicture.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Openpicture.sci new file mode 100755 index 00000000..edf043ca --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Openpicture.sci @@ -0,0 +1,92 @@ +// +// 09.12.25 +// 11.05.25 +// 14.03.05 MARKLEN +// 17.03.19 VL=[] => VL=""; + +function Openpicture(ul) + global Wfile FID XMIN XMAX YMIN YMAX ULEN + global MilliIn MARKLEN MARKLENNow PenThickInit; + Tmp=Doscaling([XMIN,YMIN]); + Xm=Tmp(1); + Ym=Tmp(2); + Tmp=Doscaling([XMAX,YMAX]); + XM=Tmp(1); + YM=Tmp(2); + Dx=XM-Xm; + Dy=YM-Ym; + Sym='.0123456789 +-*/'; + Tmp=ascii(Sym); + SL=Sym; + OL='+-*/'; + if ul~='' + ULEN=ul; + end + Is=1; + VL=""; // 17.03.19 + Ucode=ascii(ULEN); + for I=1:length(Ucode) + C=char(Ucode(I)); + if mtlb_findstr(SL,C)~=[] + if mtlb_findstr(OL,C)~=[] + Str=char(Ucode(Is:(I-1))); + VL=VL+Str+C; + Is=I+1; + end + else + Unit=char(Ucode(I:(I+1))); + Str=char(Ucode(Is:(I-1))); + VL=VL+Str; + break; + end; + end; + Valu=evstr(VL); + Str=string(Valu); + ULEN=Str+Unit; + if Unit=='cm' + MilliIn=1000/2.54*Valu; + end + if Unit=='mm' + MilliIn=1000/2.54*Valu/10; + end + if Unit=='in' + MilliIn=1000*Valu; + end + if Unit=='pt' + MilliIn=1000/72.27*Valu; + end + if Unit=='pc' + MilliIn=1000/6.022*Valu; + end + if Unit=='bp' + MilliIn=1000/72*Valu; + end + if Unit=='dd' + MilliIn=1000/1238/1157/72.27*Valu; + end + if Unit=='cc' + MilliIn=1000/1238/1157/72.27*12*Valu;p + end + if Unit=='sp' + MilliIn=1000/72.27/65536*Valu/10; + end + MARKLEN=MARKLENNow*1000/2.54/MilliIn; + if Wfile=='default' + mprintf('%s%s%s\n','{\unitlength=',ULEN,'%'); + mprintf('%s\n','\begin{picture}%'); + mprintf('%c%10.5f%c%10.5f%2s%10.5f%c%10.5f%2s\n',... + '(',Dx,',',Dy,')(',Xm,',',Ym,')%'); + Str='\special{pn '+string(PenThickInit)+'}%'; + mprintf('%s\n',Str); + mprintf('%s\n','%'); + else + mfprintf(FID,'%s%s%s\n','{\unitlength=',ULEN,'%'); + mfprintf(FID,'%s\n','\begin{picture}%'); + mfprintf(FID,'%c%10.5f%c%10.5f%2s%10.5f%c%10.5f%2s\n',... + '(',Dx,',',Dy,')(',Xm,',',Ym,')%'); //11.05.25 + Str='\special{pn '+string(PenThickInit)+'}%'; + mfprintf(FID,'%s\n',Str); + mfprintf(FID,'%s\n','%'); + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ovalbox.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ovalbox.bin Binary files differnew file mode 100644 index 00000000..75982c37 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ovalbox.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ovalbox.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ovalbox.sci new file mode 100644 index 00000000..8889de32 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ovalbox.sci @@ -0,0 +1,42 @@ +function Ovalbox(varargin) + global XMIN XMAX YMIN YMAX + Nargs=length(varargin); + Pos=varargin(1); + Dr=varargin(2); + StrV=varargin(3); + R=0.2; + NDflg=0; + for I=4:Nargs + Tmp=varargin(I); + if type(Tmp)==1 + R=Tmp; + else + if part(Tmp,1)=='-' + NDflg=1; + Tmp1=part(Tmp,2:length(Tmp)); + Cmdstr=strsubst(Tmp1,'*','G1'); + end; + end; + end; + Xr=[XMIN,XMAX]; + Yr=[YMIN,YMAX]; + Uv=0.6; Uh=0.8; + N=length(StrV); + W=Uh; H=Uv*N; + Setwindow([-W/2,W/2],[-H,0]); + G1=Ovaldata([0,-H/2],W/2,H/2,R); + Openphr('\ketpictmp'); + Beginpicture('1cm'); + if NDflg==0 + Drwline(G1); + else + execstr(Cmdstr); + end; + for I=1:N + Letter([0,Uv/2-Uv*I],'c',Op(I,StrV)) + end; + Endpicture(0); + Closephr(); + Setwindow(Xr,Yr); + Letter(Pos,Dr,'\ketpictmp'); +endfunction;
\ No newline at end of file diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ovaldata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ovaldata.bin Binary files differnew file mode 100644 index 00000000..c39ee4b6 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ovaldata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ovaldata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ovaldata.sci new file mode 100644 index 00000000..823fc8c4 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ovaldata.sci @@ -0,0 +1,31 @@ +// e : 2015.11.15 +function Out=Ovaldata(varargin) + global XMIN XMAX YMIN YMAX + Nargs=length(varargin); + if Nargs<=1 + Eps=1.0*10^(-4); + C=[(XMIN+XMAX)/2,(YMIN+YMAX)/2]; + Dx=XMAX-C(1)-Eps; + Dy=YMAX-C(2)-Eps; + N=1; + else + C=varargin(1); + Dx=varargin(2); + Dy=varargin(3); + N=4; + end; + Rc=0.2; + if N<=Nargs + Rc=varargin(N)*Rc; // 15.11.15 + end; + Out=[]; + P=C+[Dx-Rc,Dy-Rc]; + Tmp1=Circledata(P,Rc,'R=[0,%pi/2]','N=10'); + Tmp2=Listplot(C+[Dx-Rc,Dy],C+[0,Dy]); + Tmp3=Listplot(C+[Dx,0],C+[Dx,Dy-Rc]); + G=Joincrvs(Tmp3,Tmp1,Tmp2); + Tmp=Reflectdata(G,[C,C+[0,1]]); + G=Joincrvs(G,Tmp); + Tmp=Reflectdata(G,[C,C+[1,0]]); + Out=Joincrvs(G,Tmp); +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Paramark.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Paramark.bin Binary files differnew file mode 100644 index 00000000..9695687c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Paramark.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Paramark.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Paramark.sci new file mode 100755 index 00000000..82ac7c4f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Paramark.sci @@ -0,0 +1,20 @@ +// 08.06.18 + +function P=Paramark(varargin) + Nargs=length(varargin); + PA=varargin(1); + PB=varargin(2); + PC=varargin(3); + R=0.5; + if Nargs>=4 + R=varargin(4)*R; + end + U=R*(PA-PB)/Vecnagasa(PA,PB); + V=R*(PC-PB)/Vecnagasa(PC,PB); + if Gaiseki(PA-PB,PC-PB)~=0 + P=Listplot([PB+U,PB+U+V,PB+V]); + else + P=[]; + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/ParamonCurve.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/ParamonCurve.bin Binary files differnew file mode 100644 index 00000000..323d0fcd --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/ParamonCurve.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/ParamonCurve.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/ParamonCurve.sci new file mode 100755 index 00000000..ce7e0d76 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/ParamonCurve.sci @@ -0,0 +1,18 @@ +// 08.05.30 + +function Out=ParamonCurve(P,N,PtL) +// PtL=Plt; + if N==size(PtL,1) + Out=N; + else + Pa=PtL(N,:); + Pb=PtL(N+1,:); + V=Pb-Pa; + W=P-Pa; + D2=V(1)^2+V(2)^2; + S=(V(1)*W(1)+V(2)*W(2))/D2; + S=min(max(S,0),1); + Out=N+S; + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Paramoncrv.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Paramoncrv.bin Binary files differnew file mode 100644 index 00000000..14f251f7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Paramoncrv.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Paramoncrv.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Paramoncrv.sci new file mode 100755 index 00000000..83661787 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Paramoncrv.sci @@ -0,0 +1,35 @@ +// 09.10.03 + +function Out=Paramoncrv(varargin) + Eps=10^(-8); + Nargs=length(varargin); + P=varargin(1); + Gdata=varargin(Nargs); + if size(P,1)>1 + Tmp=P; P=Gdata; Gdata=Tmp; + end; + if Nargs==2 + Tmp=Nearestpt(P,Gdata); + Out=Mixop(2,Tmp); + return; + end; + N=varargin(2); + PtL=Gdata; + if N==size(PtL,1) + Out=N; + else + Pa=PtL(N,:); + Pb=PtL(N+1,:); + V=Pb-Pa; + W=P-Pa; + D2=norm(V)^2; + if D2<Eps + Out=0; + return; + end; + S=Dotprod(V,W)/D2; + S=min(max(S,0),1); + Out=N+S; + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Paramplot.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Paramplot.bin Binary files differnew file mode 100644 index 00000000..fc163602 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Paramplot.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Paramplot.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Paramplot.sci new file mode 100755 index 00000000..4e3effdc --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Paramplot.sci @@ -0,0 +1,140 @@ +// 08.06.18 (N) +// 08.12.18 +// 09.03.12 +// 09.12.31 (gsort) +// 13.10.19 ( __ added to variables ) +// 14.10.24 N,D,E => N__, etc +// 14.12.11 Assign used +// 15.11.16 N changed to number of intervals +// 16.12.13 in case of T1=T2 + +function P__=Paramplot(varargin) + Eps__=10^(-5); + Nargs__=length(varargin); + if type(varargin(1))==13 + Fnflg__=1; + Fnx__=varargin(1); + Fny__=varargin(2); Is__=3; + if type(varargin(Is__))==13 + Fnflg__=Fnflg__+1; + Fnargx__=varargin(Is__); + Fnargy__=varargin(Is__+1); + Is__=Is__+2; + end; + else + Fnflg__=0; + Fnstr__=varargin(1); Is__=2; + end; + Rgstr__=varargin(Is__); Is__=Is__+1; + Range__=[0,2*%pi]; + N__=50; // Numpoints + E__=[]; // Exclusions + D__=%inf; // Discont + for I__=Is__:Nargs__ + Tmp__=varargin(I__); + K__=mtlb_findstr(Tmp__,'='); + Tmp1__=strsplit(Tmp__,[K__-1,K__]); + Tmp2__=ascii(Tmp1__(1,1)); + Lhs__=char(Tmp2__(1)); + Str__=Lhs__+'__='+Tmp1__(3,1); + execstr(Str__); + end; + K__=mtlb_findstr(Rgstr__,'='); + if K__~=[] + Tmp__=strsplit(Rgstr__,[K__-1,K__]); + Vname__=Tmp__(1,1); + Rng__=evstr(Tmp__(3,1)); + else + Vname__=Rgstr__; + Rng__=[XMIN,XMAX]; + end + T1__=Rng__(1); T2__=Rng__(2); +// Dt__=(T2__-T1__)/(N__-1); + Dt__=(T2__-T1__)/(N__); // 15.11.16 + if Fnflg__==0 + Str__=Assign(Fnstr__,Vname__,'t__'); + end; + if abs(Dt__)<Eps__ then // 16.12.13 + t__=T1__; + P__=evstr(Str__); + return; + end; + P__=[]; + E__=gsort(E__); + E__=E__(length(E__):-1:1); + E__=[E__,%inf]; + Tmp__=gsort(E__); + E__=Tmp__(length(Tmp__):-1:1); + Ke__=1; + for t__=T1__:Dt__:T2__ + Pa__=[]; + if t__-E__(Ke__)<-Eps__ + if Fnflg__==0 + Pa__=evstr(Str__); + else + if Fnflg__==1 + Pa__=[Fnx__(t__),Fny__(t__)]; + else + if type(Fnargx__)==1 + Tmp1__=Fnx__(t__); + else + Tmp1__=Fnx__(Fnargx__,t__); + end; + if type(Fnargy__)==1 + Tmp2__=Fny__(t__); + else + Tmp2__=Fny__(Fnargy__,t__); + end; + Pa__=[Tmp1__,Tmp2__]; + end; + end; + end + if abs(t__-E__(Ke__))<=Eps__ + if P__~=[] & P__(size(P__,1),:)~=[%inf,%inf] + Pa__=[%inf,%inf]; + end + end + if t__-E__(Ke__)>Eps__ + if Fnflg__==0 + Pa__=evstr(Str__); + else + if Fnflg__==1 + Pa__=[Fnx__(t__),Fny__(t__)]; + else + if type(Fnargx__)==1 + Tmp1__=Fnx__(t__); + else + Tmp1__=Fnx__(Fnargx__,t__); + end; + if type(Fnargy__)==1 + Tmp2__=Fny__(t__); + else + Tmp2__=Fny__(Fnargy__,t__); + end; + Pa__=[Tmp1__,Tmp2__]; + end; + end; + Ke__=Ke__+1; + end + if Pa__~=[] + if Pa__(1)==%inf + P__=[P__; Pa__] + elseif P__==[] + P__=[Pa__]; + else + Tmp__=P__(size(P__,1),:); + if Tmp__(1)==%inf + P__=[P__;Pa__]; + elseif norm(Tmp__-Pa__)<D__ + P__=[P__;Pa__]; + else + P__=[P__;%inf,%inf;Pa__]; + end + end + end + end; + Tmp__=size(P__,1); + if P__(Tmp__,1)==%inf + P__=P__(1:Tmp__-1,:); + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Parapt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Parapt.bin Binary files differnew file mode 100644 index 00000000..092914d8 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Parapt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Parapt.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Parapt.sci new file mode 100755 index 00000000..5adb4837 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Parapt.sci @@ -0,0 +1,12 @@ +// 08.07.11 +// 10.01.02 + +function Out=Parapt(P) + global PHI THETA + x=P(1); + y=P(2); + z=P(3); + Xz=-x*sin(PHI)+y*cos(PHI); + Yz=-x*cos(PHI)*cos(THETA)-y*sin(PHI)*cos(THETA)+z*sin(THETA); + Out=[Xz,Yz]; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Partcrv.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Partcrv.bin Binary files differnew file mode 100644 index 00000000..73386a71 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Partcrv.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Partcrv.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Partcrv.sci new file mode 100755 index 00000000..0b4844df --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Partcrv.sci @@ -0,0 +1,42 @@ +// 08.05.31 +// 09.03.06 + +function Ans=Partcrv(A,B,PkL) + Eps=10.0^(-3); + if type(A)==1 & length(A)==1 + // new part from + if A>B+Eps + Npt=Numptcrv(PkL); + Out1=Partcrv(A,Npt,PkL); + Out2=Partcrv(1,B,PkL); + Tmp=Ptstart(PkL)-Ptend(PkL); + if norm(Tmp)<Eps + Ans=Joincrvs(Out1,Out2); + else + Ans=Mix(Out1,Out2); + end; + return; + end; + // to here + Is=ceil(A); + Ie=floor(B); + PL=[]; + if A<Is-Eps + P=(Is-A)*PkL(Is-1,:)+(1-Is+A)*PkL(Is,:); + PL=[P]; + end + PL=[PL;PkL(Is:Ie,:)]; + if B>Ie+Eps + P=(1-B+Ie)*PkL(Ie,:)+(B-Ie)*PkL(Ie+1,:); + PL=[PL;P] + end + Ans=PL; + return + end; + Tmp=Nearestpt(A,PkL);// + Ta=Op(2,Tmp);// + Tmp=Nearestpt(B,PkL);// + Tb=Op(2,Tmp);// + Ans=Partcrv(Ta,Tb,PkL);// +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Partcrv3.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Partcrv3.bin Binary files differnew file mode 100644 index 00000000..5d9d9e2f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Partcrv3.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Partcrv3.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Partcrv3.sci new file mode 100755 index 00000000..5b3cd178 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Partcrv3.sci @@ -0,0 +1,34 @@ +// 08.09.13 +// 09.03.06 + +function PL=Partcrv3(T1,T2,Fk) + Eps=10^(-4); +// Tmp=Mixop(1,Fk); + // new part from + if T1>T2+Eps + Npt=size(Fk,1); + Out1=Partcrv3(T1,Npt,Fk); + Out2=Partcrv3(1,T2,Fk); + Tmp=Fk(1,:)-Fk(Npt,:); + if norm(Tmp)<Eps + PL=Joincrvs(Out1,Out2); + else + PL=Mix(Out1,Out2); + end; + return; + end; + // to here + Is=ceil(T1); + Ie=floor(T2); + PL=[]; + if T1<Is-Eps + P=(Is-T1)*Fk(Is-1,:)+(1-Is+T1)*Fk(Is,:); + PL=[P] + end; + PL=[PL;Fk(Is:Ie,:)]; + if T2>Ie+Eps + P=(1-T2+Ie)*Fk(Ie,:)+(T2-Ie)*Fk(Ie+1,:); + PL=[PL;P] + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Partframe.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Partframe.bin Binary files differnew file mode 100644 index 00000000..bf10f26e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Partframe.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Partframe.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Partframe.sci new file mode 100644 index 00000000..a8581b1b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Partframe.sci @@ -0,0 +1,27 @@ +// 13.05.03 + +function Out=Partframe(Tb,St,Ed) + G=Dividetable(Tb); + Gw=G(1); + Gt=G(2); + Gy=G(3); + Gwt=Tb(4); + Gwy=Tb(5); + Gat=lstcat(list(Gwt(1)),Gt,list(Gwt(2))); + Gay=lstcat(list(Gwy(1)),Gy,list(Gwy(2))); + Tmp1=Ptstart(Gat(St(1))); + Tmp2=Ptstart(Gay(St(2))); + Ps=[Tmp1(1),Tmp2(2)]; + Tmp1=Ptstart(Gat(Ed(1))); + Tmp2=Ptstart(Gay(Ed(2))); + Pe=[Tmp1(1),Tmp2(2)]; + Pars=Paramoncrv(Ps,Gw); + Pare=Paramoncrv(Pe,Gw); + if Pars<Pare then + Out=Partcrv(Pars,Pare,Gw); + else + Tmp1=Partcrv(Pars,Numptcrv(Gw),Gw); + Tmp2=Partcrv(1,Pare,Gw); + Out=Joincrvs(Tmp1,Tmp2); + end +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PartitionPt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PartitionPt.bin Binary files differnew file mode 100644 index 00000000..badede95 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PartitionPt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PartitionPt.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PartitionPt.sci new file mode 100755 index 00000000..15d74ec4 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PartitionPt.sci @@ -0,0 +1,7 @@ +// 08.09.13 + +function Out=PartitionPt() + global PARTITIONPT; + Out=PARTITIONPT; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Partitionseg.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Partitionseg.bin Binary files differnew file mode 100644 index 00000000..b732c600 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Partitionseg.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Partitionseg.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Partitionseg.sci new file mode 100755 index 00000000..39c23c45 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Partitionseg.sci @@ -0,0 +1,100 @@ +// 08.09.13 +// 08.10.17 +// 09.05.27 +// 09.12.31 (gsort) + +function Out=Partitionseg(varargin) + global PARTITIONPT OTHERPARTITION; + Nargs=length(varargin); + Fig=varargin(1); + GL=varargin(2); N=3; + Eps0=10^(-5); + Eps=0.05; + if Nargs>2 + Eps=varargin(3); + end; + Eps2=0.2; + if Nargs>3 + Eps2=varargin(4); + end; + if Nargs>4 + Ns=varargin(5); + Other=Mixop(Ns,OTHERPARTITION); + else + Ns=1; + Other=[]; + OTHERPARTITION=[]; + for N=1:Mixlength(GL) + OTHERPARTITION=Mixadd(OTHERPARTITION,[]); + end; + end; + Npt=size(Fig,1); + ParL=[1,Npt,Other]; + for N=Ns:Mixlength(GL) + G=Mixop(N,GL); + if Fig==G + KouL=IntersectselfPp(Fig,Eps,Eps2); + else + KouL=IntersectcrvsPp(Fig,G,Eps,Eps2); + Tmp=Nearestpt(Ptstart(Fig),G); + Tmp1=Mixop(1,Tmp); + Tmp2=Mixop(2,Tmp); + Tmp3=Mixop(3,Tmp); + if Tmp3>Eps0 & Tmp3<Eps + Tmp1=Mix(Tmp1,1,floor(Tmp2)); + KouL=Mixadd(KouL,Tmp1); + end; + Tmp=Nearestpt(Ptend(Fig),G); + Tmp1=Mixop(1,Tmp); + Tmp2=Mixop(2,Tmp); + Tmp3=Mixop(3,Tmp); + if Tmp3>Eps0 & Tmp3<Eps + Tmp1=Mix(Tmp1,Numptcrv(Fig),floor(Tmp2)); + KouL=Mixadd(KouL,Tmp1); + end; + end; + for I=1:Mixlength(KouL) + Tmp=Mixop(I,KouL); + P=Mixop(1,Tmp); + S=Mixop(2,Tmp); + ParL=[ParL,S]; + K=Mixop(3,Tmp); + S=ParamonCurve(P,K,G); + Tmp=Mixop(N,OTHERPARTITION); + Tmp1=gsort([Tmp,S]); + Tmp1=Tmp1(length(Tmp1):-1:1); + Tmp2=[]; + for J=1:Mixlength(OTHERPARTITION) + Tmp3=Mixop(J,OTHERPARTITION); + if J~=N + Tmp2=Mixadd(Tmp2,Tmp3); + else + Tmp2=Mixadd(Tmp2,Tmp1); + end; + end; + OTHERPARTITION=Tmp2; + end; + end; + ParL=gsort(ParL); + ParL=ParL(length(ParL):-1:1); + ParL(1)=1; + Out=[ParL(1)]; + P=PointonCurve(ParL(1),Fig); + PARTITIONPT=Mix(P); + for I=1:length(ParL) + Tmp=ParL(I); + P=PointonCurve(Tmp,Fig); + Tmp1=Out(length(Out)); + Q=PointonCurve(Tmp1,Fig); + if norm(P-Q)>Eps + Out=[Out,Tmp]; +// P=PointonCurve(Tmp,Fig); + PARTITIONPT=Mixadd(PARTITIONPT,P); + end; + end; + if Out(length(Out))~=Npt + Out=[Out(1:length(Out)-1),Npt]; + end; + if length(Out)==1 Out=[1,Npt]; end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Perspt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Perspt.bin Binary files differnew file mode 100644 index 00000000..e48ca436 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Perspt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Perspt.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Perspt.sci new file mode 100755 index 00000000..eb689ffe --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Perspt.sci @@ -0,0 +1,21 @@ +// 08.08.12 + +function Out=Perspt(P) + global FocusPoint EyePoint; + Tmp=P-FocusPoint; + X1=Tmp(1); Y1=Tmp(2); Z1=Tmp(3); + Tmp=EyePoint-FocusPoint; + E1=Tmp(1); F1=Tmp(2); G1=Tmp(3); + Ca=E1/sqrt(E1^2+F1^2); + Sa=F1/sqrt(E1^2+F1^2); + X2=X1*Ca+Y1*Sa; Y2=-X1*Sa+Y1*Ca; Z2=Z1; + E2=E1*Ca+F1*Sa; F2=-E1*Sa+F1*Ca; G2=G1; + Cb=E2/sqrt(E2^2+G2^2); + Sb=G2/sqrt(E2^2+G2^2); + X3=X2*Cb+Z2*Sb; Y3=Y2; Z3=-X2*Sb+Z2*Cb; + E3=E2*Cb+G2*Sb; F3=F2; G3=-E2*Sb+G2*Cb; + Yz=E3/(E3-X3)*Y3; + Zz=E3/(E3-X3)*Z3; + Out=[Yz,Zz]; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PhFaceL.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PhFaceL.bin Binary files differnew file mode 100644 index 00000000..6c1648ab --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PhFaceL.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PhFaceL.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PhFaceL.sci new file mode 100755 index 00000000..ea2c8e28 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PhFaceL.sci @@ -0,0 +1,7 @@ +// 08.08.17 + +function Out=PhFaceL() + global PHCUTPOINTL PHVERTEXL PHFACEL; + Out=PHFACEL; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PhHiddenData.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PhHiddenData.bin Binary files differnew file mode 100644 index 00000000..a76d1351 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PhHiddenData.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PhHiddenData.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PhHiddenData.sci new file mode 100755 index 00000000..d5333cd1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PhHiddenData.sci @@ -0,0 +1,7 @@ +// 08.08.22
+
+function Out=PhHiddenData()
+ global PHHIDDENDATA;
+ Out=PHHIDDENDATA;
+endfunction;
+
diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PhVertexL.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PhVertexL.bin Binary files differnew file mode 100644 index 00000000..6f261d0b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PhVertexL.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PhVertexL.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PhVertexL.sci new file mode 100755 index 00000000..1eae4bc9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PhVertexL.sci @@ -0,0 +1,7 @@ +// 08.08.17 + +function Out=PhVertexL() + global PHCUTPOINTL PHVERTEXL PHFACEL; + Out=PHVERTEXL; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phcutdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phcutdata.bin Binary files differnew file mode 100644 index 00000000..c447109d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phcutdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phcutdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phcutdata.sci new file mode 100755 index 00000000..9c7806f5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phcutdata.sci @@ -0,0 +1,173 @@ +// 08.08.17 +// 08.09.16 +// 10.01.02 +// 13.10.21 ( __ added to varibles ) +// 14.06.09 ( debugged -- the cause unknown ) + +function Out__=Phcutdata(VL__,FaceL__,PlaneD__) + global PHCUTPOINTL + Out__=[]; + EL__=[]; + Eps__=10^(-4); + for I__=1:Mixlength(FaceL__) + Face__=Mixop(I__,FaceL__); + for J__=1:length(Face__) + Nj__=J__+1; + if J__==length(Face__) + Nj__=1; + end; + N1__=Face__(J__); N2__=Face__(Nj__); + Tmp__=[N1__,N2__]; + Flg__=0; + for K__=1:Mixlength(EL__) + Tmp1__=Mixop(K__,EL__); + Tmp2__=[Tmp1__(2),Tmp1__(1)]; + if Tmp__==Tmp1__ | Tmp__==Tmp2__ + Flg__=1; + break; + end + end; + if Flg__==0 + EL__=Mixadd(EL__,Tmp__); + end; + end; + end; + Out0__=[]; + for I__=1:Mixlength(EL__) + Tmp__=Mixop(I__,EL__); + Tmp1__=Mixop(Tmp__(1),VL__); + Tmp2__=Mixop(Tmp__(2),VL__); + Out0__=Mixadd(Out0__, Spaceline([Tmp1__,Tmp2__])); + end; + if Mixtype(PlaneD__)~=1 + V1__=Mixop(1,PlaneD__); + Tmp__=Mixop(2,PlaneD__); + if length(Tmp__)>1 + d__=V1__(1)*Tmp__(1)+V1__(2)*Tmp__(2)+V1__(3)*Tmp__(3); + else + d__=Tmp__; + end; + elseif type(PlaneD__)==1 + V1__=PlaneD__(1:3); + d__=PlaneD__(4); + else + K__=mtlb_findstr(PlaneD__,'='); + if K__>0 + Tmp1__=part(PlaneD__,1:K__-1); + Tmp2__=part(PlaneD__,K__+1:length(PlaneD__)); + PlaneD__=Tmp1__+'-('+Tmp2__+')'; + end; + x=0; y=0; z=0; + d__=-evstr(PlaneD__); + x=1; y=0; z=0; + Tmp1__=evstr(PlaneD__)+d__; + x=0; y=1; z=0; + Tmp2__=evstr(PlaneD__)+d__; + x=0; y=0; z=1; + Tmp3__=evstr(PlaneD__)+d__; + V1__=[Tmp1__,Tmp2__,Tmp3__]; + end; + if V1__==[0,0,0] + Out__=Out0__; + return; + end; + V3__=[1,0,0]; + Out1__=Rotate3data(Out0__,V1__,V3__); +// x=poly(0,'X'); + Tmp2__=Rotate3pt([1,0,0],V3__,V1__); + Tmp__=V1__(1)*Tmp2__(1)+V1__(2)*Tmp2__(2)+V1__(3)*Tmp2__(3); + x0__=d__/Tmp__; + t__=poly(0,'T'); + PtL__ =[]; + for I__=1:Mixlength(Out1__) + Tmp__=Mixop(I__,Out1__); + Tmp1__=Tmp__(1,:); Tmp2__=Tmp__(2,:); + P__=Tmp1__+t__*(Tmp2__-Tmp1__); + Tmp__=Tmp1__(1)+t__*(Tmp2__(1)-Tmp1__(1)); + if abs(coeff(Tmp__,1))<Eps__ + Tmp__=[]; + else + Tmp1__=coeff(Tmp__,1); + Tmp2__=x0__-coeff(Tmp__,0); + Tmp__=[Tmp2__/Tmp1__]; + end; + if length(Tmp__)>0 + Tmp__=Tmp__(1); + if (Tmp__>-Eps__) & (Tmp__<1+Eps__) + Tmp3__=horner(P__,Tmp__); + Tmp3__=Rotate3pt(Tmp3__,V3__,V1__); + if Tmp__<Eps__ + Tmp1__=Mixop(I__,EL__); + Tmp1__=Tmp1__(1); + Tmp4__=MixS([Tmp1__,Tmp1__],Tmp3__); + else + if Tmp__>1-Eps__ then + Tmp1__=Mixop(I__,EL__); + Tmp1__=Tmp1__(2); + Tmp4__=MixS([Tmp1__,Tmp1__],Tmp3__); + else + Tmp4__=MixS(Mixop(I__,EL__),Tmp3__); + end; + end; + Flg__=0; + for J__=1:Mixlength(PtL__) + Tmp__=Mixop(J__,PtL__); + Tmp__=Mixop(2,Tmp__); + if norm(Tmp3__-Tmp__)<Eps__ then + Flg__=1; + break; + end; + end; + if Flg__==0 + PtL__=Mixadd(PtL__,Tmp4__); + end; + end; + end; + end; + if Mixlength(PtL__)==0 + Out__=Out0__; + return + end; + PL__=Mix(Mixop(1,PtL__)); + QL__=Mixsub(2:Mixlength(PtL__),PtL__); + N__=Mixlength(QL__); + for I__=2:N__+1 + Tmp1__=Mixop(Mixlength(PL__),PL__); + Tmp1__=Mixop(1,Tmp1__); + for J__=1:Mixlength(QL__) + Tmp2__=Mixop(J__,QL__); + Tmp2__=Mixop(1,Tmp2__); + Flg__=0; + for K__=1:Mixlength(FaceL__) + Tmp3__=Mixop(K__,FaceL__); + if Member(Tmp1__(1),Tmp3__) & Member(Tmp1__(2),Tmp3__) & Member(Tmp2__(1),Tmp3__) & Member(Tmp2__(2),Tmp3__) + Flg__=1; + break; + end; + end; + if Flg__==1 + break; + end; + end; + J__=min(J__, Mixlength(QL__)); + PL__=Mixadd(PL__,Mixop(J__,QL__)); + Tmp1__=Mixsub(1:J__-1,QL__); + Tmp2__=Mixsub(J__+1:Mixlength(QL__),QL__); + QL__=Mixjoin(Tmp1__,Tmp2__); + if Mixlength(QL__)==0 + break; + end; + end; + PHCUTPOINTL=PL__; + Tmp__=[]; + for J__=1:Mixlength(PL__); + Tmp1__=Mixop(J__,PL__); + Tmp1__=Mixop(2,Tmp1__); + Tmp__=Mixadd(Tmp__,Tmp1__); + end; + Tmp1__=Mixop(1,PL__); + Tmp1__=Mixop(2,Tmp1__); + Tmp__=Mixadd(Tmp__,Tmp1__); + Out2__=Spaceline(Tmp__); + Out__=Mixadd(Out0__,Out2__); +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phcutoffdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phcutoffdata.bin Binary files differnew file mode 100644 index 00000000..9e24e48d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phcutoffdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phcutoffdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phcutoffdata.sci new file mode 100755 index 00000000..879067ce --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phcutoffdata.sci @@ -0,0 +1,184 @@ +// 08.08.17 +// 10.08.15 near line 25 or so +// 13.10.21 ( __ added to varibles ) + +function Out2__=Phcutoffdata(varargin) + global PHCUTPOINTL PHVERTEXL PHFACEL; + Eps__=10^(-4); + Out2__=[]; + VL__=varargin(1); + FaceL__=varargin(2); + PlaneD__=varargin(3); + Sgnstr__=varargin(4); + Fugou__=1; + if Sgnstr__=='-' | Sgnstr__=='n' Fugou__=-1; end; + Out0__=Phcutdata(VL__,FaceL__,PlaneD__); + PtL__=PHCUTPOINTL; + PHVERTEXL=VL__; + PHFACEL=FaceL__; + if PtL__==[] + Out2__=Out0__; + return; + end; + N1__=Mixlength(VL__); + Face__=[]; + for I__=1:Mixlength(PtL__); + Tmp__=Mixop(I__,PtL__); + Tmp3__=Mixop(1,Tmp__); // 2010.08.15 + Tmp1__=Tmp3__(1); Tmp2__=Tmp3__(2); // 2010.08.15 + if Tmp1__~=Tmp2__ + VL__=Mixadd(VL__,Mixop(2,Tmp__)); + N1__=N1__+1; + Tmp1__=N1__; + end; + Face__=[Face__,Tmp1__]; + PtL__(I__)=list(Mixop(1,Tmp__),Tmp1__); // 2010.08.15 +// Tmp2__=Mixsub(1:I__-1,PtL__); +// Tmp2__=Mixadd(Tmp2__,Mix(Mixop(1,Tmp__),Tmp1__)); +// Tmp3__=Mixsub(I__+1:Mixlength(PtL__),PtL__); +// PtL__=Mixjoin(Tmp2__,Tmp3__); + end; + OutfL__=MixS(Face__); + if Mixtype(PlaneD__)~=1 + V1__=Mixop(1,PlaneD__); + Tmp__=Mixop(2,PlaneD__); + if length(Tmp__)>1 + d__=V1__(1)*Tmp__(1)+V1__(2)*Tmp__(2)+V1__(3)*Tmp__(3); + else + d__=Tmp__; + end; + elseif type(PlaneD__)==1 + V1__=PlaneD__(1:3); + d__=PlaneD__(4); + else + K__=mtlb_findstr(PlaneD__,'='); + if K__>0 + Tmp1__=part(PlaneD__,1:K__-1); + Tmp2__=part(PlaneD__,K__+1:length(PlaneD__)); + PlaneD__=Tmp1__+'-('+Tmp2__+')'; + end; + x=0; y=0; z=0; + d__=-evstr(PlaneD__); + x=1; y=0; z=0; + Tmp1__=evstr(PlaneD__)+d__; + x=0; y=1; z=0; + Tmp2__=evstr(PlaneD__)+d__; + x=0; y=0; z=1; + Tmp3__=evstr(PlaneD__)+d__; + V1__=[Tmp1__,Tmp2__,Tmp3__]; + end; + for I__=1:Mixlength(FaceL__) + Face__=Mixop(I__,FaceL__); + TmpL__=[]; + for J__=1:length(Face__) + N1__=Face__(J__); + if J__==length(Face__) + N2__=Face__(1); + else + N2__=Face__(J__+1); + end; + for K__=1:Mixlength(PtL__) + Pd__=Mixop(K__,PtL__); + Tmp__=Mixop(1,Pd__); + if Tmp__(1)==Tmp__(2) + if Tmp__(1)==N1__ + TmpL__=Mixadd(TmpL__,Mix(J__,[N1__,N2__],Mixop(2,Pd__))); + end + else + if Tmp__==[N1__,N2__] | Tmp__==[N2__,N1__] + TmpL__=Mixadd(TmpL__,Mix(J__,[N1__,N2__],Mixop(2,Pd__))); + end; + end; + end; + end; + if Mixlength(TmpL__)<2 + Flg__=0; + for J__=1:length(Face__) + Tmp__=Mixop(Face__(J__),VL__); + Tmp1__=Fugou__*(Naiseki(V1__,Tmp__)-d__); + if Tmp1__<-Eps__ + Flg__=1; + break; + end; + end; + if Flg__==0 + OutfL__=Mixadd(OutfL__,Face__); + end; + continue; + end; + Pd__=Mixop(1,TmpL__); + Qd__=Mixop(2,TmpL__); + Outf1__=[Mixop(3,Pd__)]; + Nf__=Mixop(1,Pd__)+1; + Tmp__=Mixop(2,Pd__); + JJ__=0; + while Tmp__~=Mixop(2,Qd__) + JJ__=JJ__+1; + if JJ__>20 + disp('bug'); + return; + end; + Tmp1__=Tmp__(2); + if Outf1__(length(Outf1__))~=Tmp1__ + Outf1__=[Outf1__,Tmp1__]; + end; + Tmp__=[Face__(Nf__)]; + Nf__=Nf__+1; + if Nf__>length(Face__) Nf__=1; end; + Tmp__=[Tmp__,Face__(Nf__)]; + end; + Tmp1__=Mixop(3,Qd__); + if Outf1__(length(Outf1__))~=Tmp1__ + Outf1__=[Outf1__,Tmp1__]; + end; + Outf2__=[Mixop(3,Pd__)]; + Nf__=Mixop(1,Pd__); + Tmp__=Mixop(2,Pd__); + JJ__=0; + while Tmp__~=Mixop(2,Qd__) + JJ__=JJ__+1; + if JJ__>20 + disp('bug'); + return; + end; + Tmp1__=Tmp__(1); + if Outf2__(length(Outf2__))~=Tmp1__ + Outf2__=[Outf2__,Tmp1__] + end; + Tmp__=[Face__(Nf__)]; + Nf__=Nf__-1; + if Nf__<1 Nf__=length(Face__); end; + Tmp__=[Face__(Nf__),Tmp__]; + end; + Tmp1__=Mixop(3,Qd__); + if Outf2__(length(Outf2__))~=Tmp1__ + Outf2__=[Outf2__,Tmp1__] + end; + if length(Outf1__)<3 | length(Outf2__)<3 + Face__=Outf1__; + if length(Outf1__)<length(Outf2__) Face__=Outf2__; end; + Flg__=0; + for J__=1:length(Face__) + Tmp__=Mixop(Face__(J__),VL__); + Tmp1__=Fugou__*(Naiseki(V1__,Tmp__)-d__); + if Tmp1__<-Eps__ + Flg__=1; + break; + end; + end; + if Flg__==0 + OutfL__=Mixadd(OutfL__,Face__); + end; + else + Tmp__=Mixop(Outf1__(2),VL__); + Tmp1__=Outf1__; + Tmp2__=Fugou__*(Naiseki(V1__,Tmp__)-d__); + if Tmp2__<0 Tmp1__=Outf2__; end; + OutfL__=Mixadd(OutfL__,Tmp1__); + end; + end; + PHVERTEXL=VL__; + PHFACEL=OutfL__; + Out2__=Phcutdata(VL__,OutfL__,[0,0,0,0]); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phidegree.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phidegree.bin Binary files differnew file mode 100644 index 00000000..4105b83f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phidegree.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phidegree.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phidegree.sci new file mode 100755 index 00000000..02fe98a5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phidegree.sci @@ -0,0 +1,7 @@ +// 08.07.11 + +function Ang=Phidegree() + global PHI; + Ang=PHI*180/%pi; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phparadata.bin Binary files differnew file mode 100644 index 00000000..8e0c2f4b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phparadata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phparadata.sci new file mode 100755 index 00000000..835c173e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phparadata.sci @@ -0,0 +1,7 @@ +// 08.08.21 +// 09.10.27 + +function Out=Phparadata(VL,FaceL) + Out=Facesdata(list(VL,FaceL),'para'); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phpersdata.bin Binary files differnew file mode 100644 index 00000000..bd4d18f5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phpersdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phpersdata.sci new file mode 100755 index 00000000..e422b6fc --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phpersdata.sci @@ -0,0 +1,7 @@ +// 08.08.21 +// 09.10.27 + +function Out=Phpersdata(VL,FaceL) + Out=Facesdata(list(VL,FaceL),'pers'); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phrawparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phrawparadata.bin Binary files differnew file mode 100644 index 00000000..83ccabf1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phrawparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phrawparadata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phrawparadata.sci new file mode 100755 index 00000000..c4c79c26 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phrawparadata.sci @@ -0,0 +1,7 @@ +// 08.08.21 +// 09.10.27 + +function Out=Phrawparadata(VL,FaceL) + Out=Facesdata(list(VL,FaceL),'rawpara'); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phrawpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phrawpersdata.bin Binary files differnew file mode 100644 index 00000000..c2072a26 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phrawpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phrawpersdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phrawpersdata.sci new file mode 100755 index 00000000..29870630 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phrawpersdata.sci @@ -0,0 +1,7 @@ +// 08.08.21 +// 09.10.27 + +function Phrawpersdata(VL,FaceL) + Out=Facesdata(list(VL,FaceL),'rawpers'); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phsparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phsparadata.bin Binary files differnew file mode 100644 index 00000000..4a5a308d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phsparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phsparadata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phsparadata.sci new file mode 100755 index 00000000..3c8018e3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phsparadata.sci @@ -0,0 +1,7 @@ +// 08.08.22 +// 09.10.27 + +function Out=Phsparadata(Fdata) + Out=Facesdata(Fdata,'para') +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phspersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phspersdata.bin Binary files differnew file mode 100644 index 00000000..9d90d190 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phspersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phspersdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phspersdata.sci new file mode 100755 index 00000000..58ab8101 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phspersdata.sci @@ -0,0 +1,7 @@ +// 08.08.22 +// 09.10.27 + +function Out=Phspersdata(Fdata) + Out=Facesdata(Fdata,'pers') +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phsrawparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phsrawparadata.bin Binary files differnew file mode 100644 index 00000000..ef215643 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phsrawparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phsrawparadata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phsrawparadata.sci new file mode 100755 index 00000000..6928d928 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phsrawparadata.sci @@ -0,0 +1,7 @@ +// 08.08.22 +// 09.10.27 + +function Out=Phsrawparadata(Fdata) + Out=Facesdata(Fdata,'rawpara') +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phsrawpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phsrawpersdata.bin Binary files differnew file mode 100644 index 00000000..b571d4dd --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phsrawpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phsrawpersdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phsrawpersdata.sci new file mode 100755 index 00000000..21677841 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Phsrawpersdata.sci @@ -0,0 +1,7 @@ +// 08.08.22 +// 09.10.27 + +function Phsrawpersdata(Fdata) + Out=Facesdata(Fdata,'rawpers') +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Plotdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Plotdata.bin Binary files differnew file mode 100644 index 00000000..fb253985 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Plotdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Plotdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Plotdata.sci new file mode 100755 index 00000000..fc548f28 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Plotdata.sci @@ -0,0 +1,138 @@ +// +// 08.06.18 (N) +// 08.08.24 +// 08.10.05 +// 08.12.18 +// 09.03.12 +// 09.12.31 (gsort) +// 13.10.19 (__ added to variables) +// 14.10.24 N,D,E => N__ ,... +// 14.12.11 Assign used, and debugged (Exfun ) +// 15.11.16 N changed to number of intervals +// 16.12.13 in case of X1=X2 + +function P__=Plotdata(varargin) + global XMIN XMAX YMIN YMAX + Eps__=10^(-5); + Fnstr__=varargin(1); Is__=2; + if type(Fnstr__)==13 + Fnflg__=1; + Fnarg__=varargin(Is__); + if type(Fnarg__)==13 + Fnflg__=Fnflg__+1; + Is__=Is__+1; + end; + else + Fnflg__=0; + end; + Rgstr__=varargin(Is__); Is__=Is__+1; + K__=mtlb_findstr(Rgstr__,'='); + if length(K__)>0 + Tmp__=strsplit(Rgstr__,[K__-1,K__]); + Vname__=Tmp__(1,1); + Rng__=evstr(Tmp__(3,1)); + else + Vname__=Rgstr__; + Rng__=[XMIN,XMAX]; + end; + N__=50; // Numpoints + E__=[]; // Exclusions + Exfun__=''; // Exclusion function + D__=%inf; // Discont + for I__=Is__:length(varargin) + Tmp__=varargin(I__); + Lhs__=part(Tmp__,1); + K__=mtlb_findstr(Tmp__,'='); + Tmp1__=part(Tmp__,K__+1:length(Tmp__)); + if mtlb_findstr(Tmp__,Vname__)==[] + Str__=Lhs__+'__='+Tmp1__; + execstr(Str__); + else + Exfun__=Tmp1__; + end; + end; + X1__=Rng__(1); X2__=Rng__(2); +// dx__=(X2__-X1__)/(N__-1); + dx__=(X2__-X1__)/(N__); // 15.11.16 + if Fnflg__==0 + Str__=Assign(Fnstr__,Vname__,'x__'); + end; + if abs(dx__)<Eps__ then // 16.12.13 + x__=X1__; + P__=[X1__,evstr(Str__)]; + return; + end; + Exfun__=Assign(Exfun__,Vname__,'x__'); + if length(Exfun__)>0 then // 14.12.11 + Tmp__=mtlb_findstr(Exfun__,"x__"); + if length(Tmp__)==0 then + E__=evstr(Exfun__); + Exfun__=""; + end + end + P__=[]; + E__=gsort(E__); + E__=E__(length(E__):-1:1); + E__=[E__,%inf]; + Tmp__=gsort(E__); + E__=Tmp__(length(Tmp__):-1:1); + Ke__=1; + for x__=X1__:dx__:X2__ + if Exfun__~='' + Tmp__=evstr(Exfun__); + if abs(Tmp__)<Eps__ + P__=[P__;%inf,%inf]; + continue; + end; + end; + Pa__=[]; + if x__-E__(Ke__)<-Eps__ + if Fnflg__==0 + Pa__=[x__,evstr(Str__)]; + else + if Fnflg__==1 + Pa__=[x__,Fnstr__(x__)]; + else + Pa__=[x__,Fnstr__(Fnarg__,x__)]; + end; + end; + end; + if abs(x__-E__(Ke__))<=Eps__ + if P__~=[] & P__(size(P__,1),:)~=[%inf,%inf] + Pa__=[%inf,%inf]; + end + end + if x__-E__(Ke__)>Eps__ + if Fnflg__==0 + Pa__=[x__,evstr(Str__)]; + else + if Fnflg__==1 + Pa__=[x__,Fnstr(x__)]; + else + Pa__=[x__,Fnstr__(Fnarg__,x__)]; + end; + end; + Ke__=Ke__+1; + end + if Pa__~=[] + if Pa__(1)==%inf + P__=[P__;Pa__] + elseif P__==[] + P__=[Pa__]; + else + Tmp__=P__(size(P__,1),:); + if Tmp__(1)==%inf + P__=[P__;Pa__]; + elseif norm(Tmp__-Pa__)<D__ + P__=[P__;Pa__]; + else + P__=[P__;%inf,%inf;Pa__]; + end + end + end + end; + Tmp__=size(P__,1); + if P__(Tmp__,1)==%inf + P__=P__(1:Tmp__-1,:); + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Pointdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Pointdata.bin Binary files differnew file mode 100644 index 00000000..1a7c1121 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Pointdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Pointdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Pointdata.sci new file mode 100755 index 00000000..35e2347e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Pointdata.sci @@ -0,0 +1,25 @@ +// +// 08.05.23 +// 09.09.18 +// 13.05.03 list of points is outputted + +function PL=Pointdata(varargin) + Nargs=length(varargin); + PL=list(); + for I=1:Nargs + DL=varargin(I); + DL=Flattenlist(DL); + for K=1:length(DL); + Dt=DL(K); + for J=1:size(Dt,1) + Tmp=Dt(J,:); + if Tmp(1)~=%inf then + PL($+1)=Tmp; + end + end + end; + end; + if length(PL)==1 + PL=PL(1); + end; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PointonCurve.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PointonCurve.bin Binary files differnew file mode 100644 index 00000000..181d1354 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PointonCurve.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PointonCurve.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PointonCurve.sci new file mode 100755 index 00000000..fd2a35d0 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PointonCurve.sci @@ -0,0 +1,15 @@ +// 08.05.30 + +function Out=PointonCurve(T,PtL) + Eps=10^(-4); + N=Trunc(T+Eps); + S=max(T-N,0); +// PtL=Plt; + if N==size(PtL,1) + Out=PtL(N,:); + else + Pa=PtL(N,:);; + Pb=PtL(N+1,:); + Out=(1-S)*Pa+S*Pb; + end +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Pointoncrv.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Pointoncrv.bin Binary files differnew file mode 100644 index 00000000..16b3b587 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Pointoncrv.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Pointoncrv.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Pointoncrv.sci new file mode 100755 index 00000000..c39cdadc --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Pointoncrv.sci @@ -0,0 +1,21 @@ +// 09.10.03 + +function Out=Pointoncrv(varargin) + Eps=10^(-4); + T=varargin(1); + Gdata=varargin(2); + if size(T,1)>1 + Tmp=T; T=Gdata; Gdata=Tmp; + end; + PtL=Gdata; + N=Trunc(T+Eps); + S=max(T-N,0); + if N==size(PtL,1) + Out=PtL(N,:); + else + Pa=PtL(N,:);; + Pb=PtL(N+1,:); + Out=(1-S)*Pa+S*Pb; + end +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Powersum.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Powersum.bin Binary files differnew file mode 100644 index 00000000..337e76a9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Powersum.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Powersum.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Powersum.sci new file mode 100755 index 00000000..b23dfdc8 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Powersum.sci @@ -0,0 +1,17 @@ +// 09.03.12 + +function Out=Powersum(varargin) + Nargs=length(varargin); + COEFF=varargin(1); + x=varargin(2); + if Nargs>2 + x=x-varargin(3); + end; + NL=Mixop(1,COEFF); + A=Mixop(2,COEFF); + Upto=min(size(NL,2),size(A,2)); + NL=NL(1:Upto); + A=A(1:Upto); + Out=sum(A.*x^NL); +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Prime.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Prime.bin Binary files differnew file mode 100644 index 00000000..8a75cbf0 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Prime.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Prime.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Prime.sci new file mode 100755 index 00000000..bc866928 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Prime.sci @@ -0,0 +1,10 @@ +// 09.08.23 + +function Out=Prime(varargin) + if length(varargin)==0 + Out=char(39); + else + Out=varargin(1)+char(39); + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Printobjstr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Printobjstr.bin Binary files differnew file mode 100644 index 00000000..a4c6dba6 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Printobjstr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Printobjstr.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Printobjstr.sci new file mode 100644 index 00000000..bf137751 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Printobjstr.sci @@ -0,0 +1,10 @@ +// s : 2014.06.22 + +function Printobjstr(Str) + global Wfile FID; + if Wfile=='default' then + mprintf('%s\n',Str); + else + mfprintf(FID,'%s\n',Str); + end +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/ProjCurve.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/ProjCurve.bin Binary files differnew file mode 100644 index 00000000..5adfea2f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/ProjCurve.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/ProjCurve.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/ProjCurve.sci new file mode 100755 index 00000000..bbe28c12 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/ProjCurve.sci @@ -0,0 +1,32 @@ +// 08.07.11 +// 08.10.07 +// 09.06.02 +// 09.08.23 + +function AnsL=ProjCurve(Curve) + global PHI THETA; + Eps=10^(-6); + AnsL=[]; // Added + SP=sin(PHI); CP=cos(PHI); + ST=sin(THETA); CT=cos(THETA); + for I=1:size(Curve,1) + P=Curve(I,:); + x=P(1); y=P(2); z=P(3); + if x~=%inf + Xz=-x*SP+y*CP; + Yz=-x*CP*CT-y*SP*CT+z*ST; + Tmp=[Xz,Yz]; + if I==1 + AnsL=[Tmp]; + else + Tmp1=AnsL(size(AnsL,1),:); + if Tmp1(1)==%inf | norm(Tmp-Tmp1)>Eps + AnsL=[AnsL;Tmp]; + end; + end; + else + AnsL=[AnsL;%inf,%inf]; + end; + end; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/ProjcoordCurve.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/ProjcoordCurve.bin Binary files differnew file mode 100644 index 00000000..8b17d615 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/ProjcoordCurve.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/ProjcoordCurve.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/ProjcoordCurve.sci new file mode 100755 index 00000000..74c552a6 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/ProjcoordCurve.sci @@ -0,0 +1,18 @@ +// 08.07.11 +// 08.10.16 + +function Out=ProjcoordCurve(Curve) + global PHI THETA; + SP=sin(PHI); CP=cos(PHI); + ST=sin(THETA); CT=cos(THETA); + Out=[]; + for J=1:size(Curve,1) + P=Curve(J,:); + x=P(1); y=P(2); z=P(3); + Xz=-x*SP+y*CP; + Yz=-x*CP*CT-y*SP*CT+z*ST; + Zz=x*CP*ST+y*SP*ST+z*CT; + Out=[Out;Xz,Yz,Zz]; + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Projpara.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Projpara.bin Binary files differnew file mode 100644 index 00000000..0ce6a992 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Projpara.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Projpara.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Projpara.sci new file mode 100755 index 00000000..82feeff2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Projpara.sci @@ -0,0 +1,41 @@ +// 08.07.11 +// 08.07.15 +// 08.08.12 +// 08.10.28 + +function CL=Projpara(varargin) + Nargs=length(varargin); + Flg=0; + if Nargs==1 & Mixtype(varargin(1))==1 + Flg=1; + end; + CL=[]; + for N=1:Nargs + Crv=varargin(N); + if Mixtype(Crv)==1 + Tmp=ProjCurve(Crv); + CL=Mixadd(CL,Tmp); + else + if Mixtype(Crv)==3 + ObjL=[]; + for I=1:Mixlength(Crv) + Tmp1=Mixop(I,Crv); + if Mixtype(Tmp1)==1 + ObjL=Mixadd(ObjL,Tmp1); + else + ObjL=Mixjoin(ObjL,Tmp1); + end; + end; + Crv=ObjL; + end; + for J=1:Mixlength(Crv) + Tmp=ProjCurve(Mixop(J,Crv)); + CL=Mixadd(CL,Tmp); + end + end + end + if Mixlength(CL)==1 & Flg==1 + CL=Mixop(1,CL); + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Projpers.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Projpers.bin Binary files differnew file mode 100644 index 00000000..7594630e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Projpers.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Projpers.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Projpers.sci new file mode 100755 index 00000000..b43451a9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Projpers.sci @@ -0,0 +1,39 @@ +// 08.08.12 +// 08.10.28 + +function CL=Projpers(varargin) + Nargs=length(varargin); + Flg=0; + if Nargs==1 & Mixtype(varargin(1))==1 + Flg=1; + end; + CL=[]; + for N=1:Nargs + Crv=varargin(N); + if Mixtype(Crv)==1 + Tmp=CameraCurve(Crv); + CL=Mixadd(CL,Tmp); + else + if Mixtype(Crv)==3 + ObjL=[]; + for I=1:Mixlength(Crv) + Tmp1=Mixop(I,Crv); + if Mixtype(Tmp1)==1 + ObjL=Mixadd(ObjL,Tmp1); + else + ObjL=Mixjoin(ObjL,Tmp1); + end; + end; + Crv=ObjL; + end; + for J=1:Mixlength(Crv) + Tmp=CameraCurve(Mixop(J,Crv)); + CL=Mixadd(CL,Tmp); + end + end + end + if Mixlength(CL)==1 & Flg==1 + CL=Mixop(1,CL); + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ptcrv.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ptcrv.bin Binary files differnew file mode 100644 index 00000000..b042e991 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ptcrv.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ptcrv.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ptcrv.sci new file mode 100755 index 00000000..78776d7b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ptcrv.sci @@ -0,0 +1,4 @@ +function P=Ptcrv(N,Fig) + P=Fig(N,:) +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ptend.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ptend.bin Binary files differnew file mode 100644 index 00000000..51257705 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ptend.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ptend.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ptend.sci new file mode 100755 index 00000000..d16ebf80 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ptend.sci @@ -0,0 +1,4 @@ +function P=Ptend(Fig) + P=Fig(size(Fig,1),:) +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PthiddenQ.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PthiddenQ.bin Binary files differnew file mode 100644 index 00000000..b86773c2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PthiddenQ.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PthiddenQ.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PthiddenQ.sci new file mode 100755 index 00000000..98f2ca94 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PthiddenQ.sci @@ -0,0 +1,250 @@ +// 08.10.10 +// 08.10.12 +// 08.10.15 +// 08.10.26 +// 09.06.05 +// 09.09.10 +// 09.10.12 debug +// 09.11.07 debugged +// 10.02.16 Eps__ +// 13.10.22 ( __ added to variables ) + +function Out__=PthiddenQ(PtA__,Vec__,Fd__,Uveq__,Np__,EPS__) +// Out__=1 : hidden +// SL__ : List of segments near PtA__+Vec__ + Eps__0=10^(-4)*(Xmax()-Xmin())/10; + Eps__=EPS__(1)*(Xmax()-Xmin())/10; // + Out__=0; + Vec__1=1/norm(Vec__)*Vec__; + PtL__=[]; + Tmp__=Mixop(2,Fd__); + K__=mtlb_findstr(Tmp__,'='); + Xname__=part(Tmp__,1:K__-1); + Tmp__=Mixop(3,Fd__); + K__=mtlb_findstr(Tmp__,'='); + Yname__=part(Tmp__,1:K__-1); + Tmp__=Mixop(1,Fd__); + K__=mtlb_findstr(Tmp__,'='); + if K__~=[] + Zname__=part(Tmp__,1:K__-1); + else + Tmp__=Mixop(4,Fd__); + K__=mtlb_findstr(Tmp__,'='); + Zname__=part(Tmp__,1:K__-1); + end; + FdL__=Fullformfunc(Fd__); + Xf__=Mixop(2,FdL__); + Yf__=Mixop(3,FdL__); + Zf__=Mixop(4,FdL__); + Tmp__=Mixop(5,FdL__); + K__=mtlb_findstr(Tmp__,'='); + Uname__=part(Tmp__,1:K__-1); + Urg__=evstr(part(Tmp__,K__+1:length(Tmp__))); + Tmp__=Mixop(6,FdL__); + K__=mtlb_findstr(Tmp__,'='); + Vname__=part(Tmp__,1:K__-1); + Vrg__=evstr(part(Tmp__,K__+1:length(Tmp__))); + Umin__=Urg__(1); UMax__=Urg__(2); + Vmin__=Vrg__(1); VMax__=Vrg__(2); + V1__='('+string(Vec__(1))+')'; + V2__='('+string(Vec__(2))+')'; + V3__='('+string(Vec__(3))+')'; + Xstr__='(('+Xf__+')-('+string(PtA__(1))+'))'; + Ystr__='(('+Yf__+')-('+string(PtA__(2))+'))'; + Zstr__='(('+Zf__+')-('+string(PtA__(3))+'))'; + Urg__str=Mixop(5,FdL__); + Vrg__str=Mixop(6,FdL__); + if abs(Vec__(2))>Eps__0 | abs(Vec__(1))>Eps__0 + Eq__=V2__+'*'+Xstr__+'-'+V1__+'*'+Ystr__; + else + Eq__=Xstr__; + end; + MS__=Mix(Eq__,Urg__str,Vrg__str,Np__); + [Zval__,Xval__,Yval__]=Makevaltable(MS__); + SL__=[]; + for J__=1:length(Yval__)-1 + for I__=1:length(Xval__)-1 + a1__=Xval__(I__);b1__=Yval__(J__);c1__=Zval__(J__,I__); + a2__=Xval__(I__+1);b2__=Yval__(J__);c2__=Zval__(J__,I__+1); + a3__=Xval__(I__+1);b3__=Yval__(J__+1);c3__=Zval__(J__+1,I__+1); + a4__=Xval__(I__);b4__=Yval__(J__+1);c4__=Zval__(J__+1,I__); + PL__=[a1__,b1__;a2__,b2__;a3__,b3__;a4__,b4__;a1__,b1__]; + VL__=[c1__,c2__,c3__,c4__,c1__]; + QL__=[]; + for K__=1:4 + P1__=PL__(K__,:); P2__=PL__(K__+1,:); + M1__=VL__(K__); M2__=VL__(K__+1); + if M1__>=Eps__0 & M2__>=Eps__0 + continue; + end; + if M1__<=-Eps__0 & M2__<=-Eps__0 + continue; + end; + if abs(M1__)<Eps__0 + Tmp__=P1__; + elseif abs(M2__)<Eps__0 + continue; + else + Tmp__=1/(M1__-M2__)*(-M2__*P1__+M1__*P2__); + end; + QL__=[QL__;Tmp__]; + end; + if size(QL__,1)==2 + Puv1__=QL__(1,:); Puv2=QL__(2,:); + Tmp__1=Puv1__(1); + Tmp__2=Puv1__(2); + Tmp__=strsubst(Xf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Xv__=evstr(Tmp__); + Tmp__=strsubst(Yf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Yv__=evstr(Tmp__); + Tmp__=strsubst(Zf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Zv__=evstr(Tmp__); + P1__=[Xv__,Yv__,Zv__]; + Tmp__1=Puv2(1); + Tmp__2=Puv2(2); + Tmp__=strsubst(Xf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Xv__=evstr(Tmp__); + Tmp__=strsubst(Yf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Yv__=evstr(Tmp__); + Tmp__=strsubst(Zf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Zv__=evstr(Tmp__); + P2__=[Xv__,Yv__,Zv__]; + if norm(P1__-P2__)<Eps__0 // 09.11.07 + continue; + end; // + Tmp__1=norm(P1__-PtA__); + Tmp__2=Naiseki(P1__-PtA__,Vec__1); + Tmp__3=sqrt(abs(Tmp__1^2-Tmp__2^2)); + Tmp__4=norm(P2__-PtA__); + Tmp__5=Naiseki(P2__-PtA__,Vec__1); + Tmp__6=sqrt(abs(Tmp__4^2-Tmp__5^2)); + if Tmp__2<Tmp__5 + Tmp__=P1__; P1__=P2__; P2__=Tmp__; + Tmp__=Tmp__2; Tmp__2=Tmp__5; Tmp__5=Tmp__; + Tmp__=Tmp__3; Tmp__3=Tmp__6; Tmp__6=Tmp__; + end; + if Tmp__3<EPS__(2)*Eps__ & Tmp__6<EPS__(2)*Eps__ // + if Tmp__2>-Eps__0 + if Tmp__5<-Eps__0 + SL__=[SL__;P1__,P2__,-1]; + else + SL__=[SL__;P1__,P2__,1]; + end; + end; + end; + V1__=Vec__1(1); V2__=Vec__1(2); V3__=Vec__1(3); + if abs(V1__)>Eps__0 + M1__=PtA__(3)+V3__/V1__*(P1__(1)-PtA__(1))-P1__(3); + M2__=PtA__(3)+V3__/V1__*(P2__(1)-PtA__(1))-P2__(3); + elseif abs(V2__)>Eps__0 + M1__=PtA__(3)+V3__/V2__*(P1__(2)-PtA__(2))-P1__(3); + M2__=PtA__(3)+V3__/V2__*(P2__(2)-PtA__(2))-P2__(3); + else + M1__=PtA__(2)-P1__(2); + M2__=PtA__(2)-P2__(2); + end; + if M1__*M2__>=0 + if (M1__>Eps__0 & M2__>Eps__0) | (M1__<-Eps__0 & M2__<-Eps__0) + continue; + end; + if abs(M1__)<=Eps__0 + Pt__=P1__; Ptuv__=Puv1__; + else + Pt__=P2__; Ptuv__=Puv2; + end; + else + Pt__=1/(M1__-M2__)*(-M2__*P1__+M1__*P2__); + Ptuv__=1/(M1__-M2__)*(-M2__*Puv1__+M1__*Puv2); + end; + if type(Uveq__)==10 + Tmp__1='('+string(Ptuv__(1))+')'; + Tmp__2='('+string(Ptuv__(2))+')'; + Tmp__=strsubst(Uveq__,Uname__,Tmp__1); + Tmp__=strsubst(Tmp__,Vname__,Tmp__2); + Tmp__=evstr(Tmp__); + if Tmp__<-Eps__0 + continue; + end; + end; + Tmp__1=Dotprod(Pt__-PtA__,Vec__1); + Tmp__2=abs(Tmp__1); + Tmp__3=Dotprod(P1__-P2__,Vec__1); + Tmp__4=norm(P1__-P2__); + Tmp__6=Tmp__3/Tmp__4; + if Tmp__1>Eps__0 + if abs(Tmp__6)>0.75 // from + PtL__=[PtL__;Pt__,P2__]; + continue; + end; // upto + if Tmp__2>Eps__ + Out__=1; + return + end; + if Tmp__2<2*Eps__ + continue; + end; + end; + end; + end; + end; + if PtL__==[] + return; + end; + for I__=1:size(SL__,1) + P2__=SL__(I__,4:6); + Flg__=0; + for J__=1:size(SL__,1) + P=SL__(J__,1:3); + if norm(P-P2__)<Eps__0 + SL__(I__,7)=J__; + Flg__=1; + break; + end; + end; + if Flg__==0 & SL__(I__,7)>0 + SL__(I__,7)=-2; + end; + end; + for I__=1:size(PtL__,1) + P__=PtL__(I__,4:6); + Flg__=0; + for J__=1:size(SL__,1) + P1__=SL__(J__,1:3); + if norm(P1__-P__)<Eps__0 + Flg__=1; + break; + end; + end; + if Flg__==0 + Pt__=PtL__(I__,1:3); // from + Tmp__0=norm(P__-Pt__); + Tmp__1=abs(Dotprod(P__-Pt__,Vec__1)); + Tmp__2=sqrt(abs(Tmp__0^2-Tmp__1^2)); + Tmp__3=Tmp__2*norm(Pt__-PtA__)/Tmp__0; // should to be changed 10.02.16 + if Tmp__3>Eps__/5 + Out__=1; + return; + else + continue; + end; // upto + end; + Nxt__=SL__(J__,7); + while Nxt__>0 + P__=SL__(Nxt__,4:6); + Nxt__=SL__(Nxt__,7); + end; + if Nxt__==-2 + Out__=1; + return; + else + Out__=0; + end; + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ptne.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ptne.bin Binary files differnew file mode 100644 index 00000000..97796c60 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ptne.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ptne.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ptne.sci new file mode 100755 index 00000000..f6452897 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ptne.sci @@ -0,0 +1,14 @@ +// +// 10.01.13 + +function Out=Ptne(varargin) + global XMIN XMAX YMIN YMAX + if length(varargin)==0 + Out=[XMAX,YMAX]; + else + G=varargin(1); + XM=max(G(:,1)); + YM=max(G(:,2)); + Out=[XM,YM]; + end; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ptnw.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ptnw.bin Binary files differnew file mode 100644 index 00000000..1d290957 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ptnw.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ptnw.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ptnw.sci new file mode 100755 index 00000000..e3cd5ebc --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ptnw.sci @@ -0,0 +1,14 @@ +// +// 10.01.13 + +function Out=Ptnw(varargin) + global XMIN XMAX YMIN YMAX + if length(varargin)==0 + Out=[XMIN,YMAX]; + else + G=varargin(1); + Xm=min(G(:,1)); + YM=max(G(:,2)); + Out=[Xm,YM]; + end; + endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ptse.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ptse.bin Binary files differnew file mode 100644 index 00000000..09489c68 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ptse.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ptse.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ptse.sci new file mode 100755 index 00000000..fe5e52b9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ptse.sci @@ -0,0 +1,14 @@ +// +// 10.01.13 + +function Out=Ptse(varargin) + global XMIN XMAX YMIN YMAX + if length(varargin)==0 + Out=[XMAX,YMIN]; + else + G=varargin(1); + XM=max(G(:,1)); + Ym=min(G(:,2)); + Out=[XM,Ym]; + end; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ptstart.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ptstart.bin Binary files differnew file mode 100644 index 00000000..c662aeb8 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ptstart.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ptstart.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ptstart.sci new file mode 100755 index 00000000..f94437cf --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ptstart.sci @@ -0,0 +1,4 @@ +function P=Ptstart(Fig) + P=Fig(1,:) +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ptsw.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ptsw.bin Binary files differnew file mode 100644 index 00000000..3cd0fa20 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ptsw.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ptsw.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ptsw.sci new file mode 100755 index 00000000..5b0a3474 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ptsw.sci @@ -0,0 +1,13 @@ +// 10.01.13 + +function Out=Ptsw(varargin) + global XMIN XMAX YMIN YMAX + if length(varargin)==0 + Out=[XMIN,YMIN]; + else + G=varargin(1); + Xm=min(G(:,1)); + Ym=min(G(:,2)); + Out=[Xm,Ym]; + end; +endfunction
\ No newline at end of file diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Putcell.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Putcell.bin Binary files differnew file mode 100644 index 00000000..d31053f9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Putcell.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Putcell.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Putcell.sci new file mode 100755 index 00000000..e0020f0b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Putcell.sci @@ -0,0 +1,72 @@ +// 09.11.26 +// 09.12.06 +// 09.12.25 +// 09.12.29 + +function Putcell(varargin) + Nargs=length(varargin); + TbL=varargin(1); + Str=varargin(Nargs); + if type(Str)==1 + Str=string(Str); + end; + Pos=varargin(Nargs-1); + Nrg=varargin(2); + if type(Nrg)==10 + if Nargs==4 + Cell=Findcell(TbL,Nrg); + else + Mrg=varargin(3); + Cell=Findcell(TbL,Nrg,Mrg); + end; + else + Mrg=varargin(3); + Cell=Findcell(TbL,Nrg,Mrg); + end; + Pt=Cell(1); Dr='c'; + Posh=part(Pos,1); + Post=part(Pos,2:length(Pos)); + if (Posh=='r')|(Posh=='R') + Pt=Pt+[Cell(2),0]; + if length(Post)==0 + Dr='w1'; + else + Dr='w'+Post; + end; + end; + if (Posh=='l')|(Posh=='L') + Pt=Pt-[Cell(2),0]; + if length(Post)==0 + Dr='e1'; + else + Dr='e'+Post; + end; + end; + if (Posh=='u')|(Posh=='U') + Pt=Pt+[0,Cell(3)]; + if length(Post)==0 + Dr='s1'; + else + Dr='s'+Post; + end; + end; + if (Posh=='d')|(Posh=='D') + Pt=Pt-[0,Cell(3)]; + if length(Post)==0 + Dr='n1'; + else + Dr='n'+Post; + end; + end; + if (Posh=='b')|(Posh=='B') + Pt=Pt-[0,Cell(3)]; + if length(Post)==0 + Dr='n1'; + else + Dr='n'+Post; + end; + Str='$\mathstrut$'+Str; + end; + Letter(Pt,Dr,Str); +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Putcirmark.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Putcirmark.bin Binary files differnew file mode 100644 index 00000000..f834f86d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Putcirmark.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Putcirmark.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Putcirmark.sci new file mode 100755 index 00000000..63bc151f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Putcirmark.sci @@ -0,0 +1,18 @@ +// 09.11.26 + +function Putcirmark(TbL,Nrg,Mrg,Dt) + if type(Dt)==10 + N=1; Pos=Dt; Str=''; + else + N=length(Dt); Pos='l'; Str='\hspace*{2mm}'; + end; + for I=1:N + Tmp1=Dt(I); + Str=Str+'\cirmark'; + if I<N + Str=Str+'\hspace{3mm}'; + end; + end; + Putcell(TbL,Nrg,Mrg,Pos,Str); +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PutcoL.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PutcoL.bin Binary files differnew file mode 100644 index 00000000..1b37ca31 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PutcoL.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PutcoL.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PutcoL.sci new file mode 100755 index 00000000..41b9a1b6 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PutcoL.sci @@ -0,0 +1,65 @@ +// 09.12.06 +// 10.01.26 + +function PutcoL(varargin) + Nargs=length(varargin); + TbL=varargin(1); + if type(TbL)~=15 + disp('Tabledata missing') + return; + end; + Ag=varargin(2); + if type(Ag)==1 + CoL=Ag; + else + Alpha='-ABCDEFGHIJKLMNOPQRSTUVWXYZ'; + Clm=[]; + for I=1:length(Ag) + C=part(Ag,I:I); + Tmp=ascii(C); + if Tmp>=96 + C=char(Tmp-32); + end; + Tmp=mtlb_findstr(C,Alpha) + if length(Tmp)>0 + Clm=[Clm,Tmp-1]; + end; + end; + Nrg=0; + for I=length(Clm):-1:1 + Tmp=Clm(I); + Tmp1=length(Clm)-I; + Nrg=Nrg+Tmp*26^Tmp1; + end; + CoL=Nrg; + end; + Nr=length(TbL(3))+1; + K=1; + Dpos=varargin(3); + for I=4:Nargs + if I-3>Nr + break; + end; + Dt=varargin(I); + if type(Dt)~=15 + Putcell(TbL,CoL,K,Dpos,Dt); + K=K+1; + else + N=length(Dt); + Str=Dt(N); + Rrng=[K,K+1]; + Pos=Dpos; + for J=1:(N-1) + Tmp=Dt(J); + if type(Tmp)==1 + Rrng=[K,K+Tmp]; + end; + if type(Tmp)==10 + Pos=Tmp; + end; + end; + Putcell(TbL,CoL,Rrng,Pos,Str) + K=Rrng(2); + end; + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PutcoLexpr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PutcoLexpr.bin Binary files differnew file mode 100644 index 00000000..7a5123d8 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PutcoLexpr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PutcoLexpr.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PutcoLexpr.sci new file mode 100644 index 00000000..0e2f9d0a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PutcoLexpr.sci @@ -0,0 +1,65 @@ +// 10.04.01 + +function PutcoLexpr(varargin) + Nargs=length(varargin); + TbL=varargin(1); + if type(TbL)~=15 + disp('Tabledata missing') + return; + end; + Ag=varargin(2); + if type(Ag)==1 + CoL=Ag; + else + Alpha='-ABCDEFGHIJKLMNOPQRSTUVWXYZ'; + Clm=[]; + for I=1:length(Ag) + C=part(Ag,I:I); + Tmp=ascii(C); + if Tmp>=96 + C=char(Tmp-32); + end; + Tmp=mtlb_findstr(C,Alpha) + if length(Tmp)>0 + Clm=[Clm,Tmp-1]; + end; + end; + Nrg=0; + for I=length(Clm):-1:1 + Tmp=Clm(I); + Tmp1=length(Clm)-I; + Nrg=Nrg+Tmp*26^Tmp1; + end; + CoL=Nrg; + end; + Nr=length(TbL(3))+1; + K=1; + Dpos=varargin(3); + for I=4:Nargs + if I-3>Nr + break; + end; + Dt=varargin(I); + if type(Dt)~=15 + Dt='$'+Dt+'$'; + Putcell(TbL,CoL,K,Dpos,Dt); + K=K+1; + else + N=length(Dt); + Str='$'+Dt(N)+'$'; + Rrng=[K,K+1]; + Pos=Dpos; + for J=1:(N-1) + Tmp=Dt(J); + if type(Tmp)==1 + Rrng=[K,K+Tmp]; + end; + if type(Tmp)==10 + Pos=Tmp; + end; + end; + Putcell(TbL,CoL,Rrng,Pos,Str) + K=Rrng(2); + end; + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PutcoLstr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PutcoLstr.bin Binary files differnew file mode 100644 index 00000000..c4cecfc7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PutcoLstr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PutcoLstr.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PutcoLstr.sci new file mode 100755 index 00000000..b993ffa9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/PutcoLstr.sci @@ -0,0 +1,34 @@ +// 10.01.02 for v5 + +function PutcoLstr(varargin) + Tb=varargin(1); + Nr=varargin(2); + Pos=varargin(3); + Str=varargin(4); + Sep=''; + if length(varargin)>4 + Sep=varargin(5); + end; + if Sep=='' + for I=1:length(Str) + Tmp=part(Str,I); + Putcell(Tb,Nr,I,Pos,Tmp); + end; + else + Ltr=''; + K=1; + for I=1:length(Str) + Tmp=part(Str,I); + if Tmp==Sep + Putcell(Tb,Nr,K,Pos,Ltr); + K=K+1; + Ltr=''; + else + Ltr=Ltr+Tmp; + end; + end; + if Ltr~='' + Putcell(Tb,Nr,K,Pos,Ltr); + end; + end; +endfunction;
\ No newline at end of file diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Putdashmark.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Putdashmark.bin Binary files differnew file mode 100644 index 00000000..5fc7bc24 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Putdashmark.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Putdashmark.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Putdashmark.sci new file mode 100755 index 00000000..8d732a9d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Putdashmark.sci @@ -0,0 +1,18 @@ +// 09.11.26 + +function Putdashmark(TbL,Nrg,Mrg,Dt) + N=length(Dt); + Str='\hspace*{2mm}'; + for I=1:N + Tmp1=Dt(I); + if type(Tmp1)==1 + Tmp1=string(Tmp1); + end; + Str=Str+'\dashmark{'+Tmp1+'}'; + if I<N + Str=Str+'\hspace{3mm}'; + end; + end; + Putcell(TbL,Nrg,Mrg,'l',Str); +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Putrecmark.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Putrecmark.bin Binary files differnew file mode 100644 index 00000000..1910dfd9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Putrecmark.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Putrecmark.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Putrecmark.sci new file mode 100755 index 00000000..ce63e542 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Putrecmark.sci @@ -0,0 +1,17 @@ +// 09.11.26 + +function Putrecmark(TbL,Nrg,Mrg,Dt) + if type(Dt)==10 + N=1; Pos=Dt; Str=''; + else + N=length(Dt); Pos='l'; Str='\hspace*{2mm}'; + end; + for I=1:N + Str=Str+'\recmark'; + if I<N + Str=Str+'\hspace{3mm}'; + end; + end; + Putcell(TbL,Nrg,Mrg,Pos,Str); +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Putrow.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Putrow.bin Binary files differnew file mode 100644 index 00000000..9085bc24 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Putrow.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Putrow.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Putrow.sci new file mode 100755 index 00000000..0c2c209a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Putrow.sci @@ -0,0 +1,41 @@ +// 09.12.06 +// 10.01.26 + +function Putrow(varargin) + Nargs=length(varargin); + TbL=varargin(1); + if type(TbL)~=15 + disp('Tabledata missing') + return; + end; + Row=varargin(2); + Nr=length(TbL(2))+1; + K=1; + Dpos=varargin(3); + for I=4:Nargs + if I-3>Nr + break; + end; + Dt=varargin(I); + if type(Dt)~=15 + Putcell(TbL,K,Row,Dpos,Dt); + K=K+1; + else + N=length(Dt); + Str=Dt(N); + Crng=[K,K+1]; + Pos=Dpos; + for J=1:(N-1) + Tmp=Dt(J); + if type(Tmp)==1 + Crng=[K,K+Tmp]; + end; + if type(Tmp)==10 + Pos=Tmp; + end; + end; + Putcell(TbL,Crng,Row,Pos,Str) + K=Crng(2); + end; + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Putrowexpr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Putrowexpr.bin Binary files differnew file mode 100644 index 00000000..83b428d4 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Putrowexpr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Putrowexpr.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Putrowexpr.sci new file mode 100644 index 00000000..0a3158cc --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Putrowexpr.sci @@ -0,0 +1,41 @@ +// 10.04.01 + +function Putrowexpr(varargin) + Nargs=length(varargin); + TbL=varargin(1); + if type(TbL)~=15 + disp('Tabledata missing') + return; + end; + Row=varargin(2); + Nr=length(TbL(2))+1; + K=1; + Dpos=varargin(3); + for I=4:Nargs + if I-3>Nr + break; + end; + Dt=varargin(I); + if type(Dt)~=15 + Dt='$'+Dt+'$'; + Putcell(TbL,K,Row,Dpos,Dt); + K=K+1; + else + N=length(Dt); + Str='$'+Dt(N)+'$'; + Crng=[K,K+1]; + Pos=Dpos; + for J=1:(N-1) + Tmp=Dt(J); + if type(Tmp)==1 + Crng=[K,K+Tmp]; + end; + if type(Tmp)==10 + Pos=Tmp; + end; + end; + Putcell(TbL,Crng,Row,Pos,Str) + K=Crng(2); + end; + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Putrowstr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Putrowstr.bin Binary files differnew file mode 100644 index 00000000..02bd62fd --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Putrowstr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Putrowstr.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Putrowstr.sci new file mode 100755 index 00000000..d006f3ec --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Putrowstr.sci @@ -0,0 +1,34 @@ +// 10.01.02 for v5 + +function Putrowstr(varargin) + Tb=varargin(1); + Nr=varargin(2); + Pos=varargin(3); + Str=varargin(4); + Sep=''; + if length(varargin)>4 + Sep=varargin(5); + end; + if Sep=='' + for I=1:length(Str) + Tmp=part(Str,I); + Putcell(Tb,I,Nr,Pos,Tmp); + end; + else + Ltr=''; + K=1; + for I=1:length(Str) + Tmp=part(Str,I); + if Tmp==Sep + Putcell(Tb,K,Nr,Pos,Ltr); + K=K+1; + Ltr=''; + else + Ltr=Ltr+Tmp; + end; + end; + if Ltr~='' + Putcell(Tb,K,Nr,Pos,Ltr); + end; + end; +endfunction;
\ No newline at end of file diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Puttrace.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Puttrace.bin Binary files differnew file mode 100644 index 00000000..cfb497e7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Puttrace.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Puttrace.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Puttrace.sci new file mode 100755 index 00000000..a4f1ad89 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Puttrace.sci @@ -0,0 +1,7 @@ +// 09.09.10 + +function Puttrace(Dt); + global TRACEDATA; + TRACEDATA=Dt; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ratiocmyk.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ratiocmyk.bin Binary files differnew file mode 100644 index 00000000..116083a4 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ratiocmyk.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ratiocmyk.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ratiocmyk.sci new file mode 100644 index 00000000..839452f6 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ratiocmyk.sci @@ -0,0 +1,87 @@ +// 11.05.28 +// 15.05.03 + +function R=Ratiocmyk(Color) + if type(Color)==1 then + R=Color; + return; + end; + Tmp=grep(Color,','); + if length(Tmp)>0 + R=evstr(Tmp); + return; + end; + select Color + case 'greenyellow' then R=[0.15,0,0.69,0], + case 'yellow' then R=[0,0,1,0], + case 'goldenrod' then R=[0,0.1,0.84,0], + case 'dandelion' then R=[0,0.29,0.84,0], + case 'apricot' then R=[0,0.32,0.52,0], + case 'peach' then R=[0,0.5,0.7,0], + case 'melon' then R=[0,0.46,0.5,0], + case 'yelloworange' then R=[0,0.42,1,0], + case 'orange' then R=[0,0.61,0.87,0], + case 'burntorange' then R=[0,0.51,1,0], + case 'bittersweet' then R=[0,0.75,1,0.24], + case 'redorange' then R=[0,0.77,0.87,0], + case 'mahogany' then R=[0,0.85,0.87,0.35], + case 'maroon' then R=[0,0.87,0.68,0.32], + case 'brickred' then R=[0,0.89,0.94,0.28], + case 'red' then R=[0,1,1,0], + case 'orangered' then R=[0,1,0.5,0], + case 'rubinered' then R=[0,1,0.13,0], + case 'wildstrawberry' then R=[0,0.96,0.39,0], + case 'salmon' then R=[0,0.53,0.38,0], + case 'carnationpink' then R=[0,0.63,0,0], + case 'magenta' then R=[0,1,0,0], + case 'violetred' then R=[0,0.81,0,0], + case 'rhodamine' then R=[0,0.82,0,0], + case 'mulberry' then R=[0.34,0.9,0,0.02], + case 'redviolet' then R=[0.07,0.9,0,0.34], + case 'fuchsia' then R=[0.47,0.91,0,0.08], + case 'lavender' then R=[0,0.48,0,0], + case 'thistle' then R=[0.12,0.59,0,0], + case 'orchid' then R=[0.32,0.64,0,0], + case 'darkorchid' then R=[0.4,0.8,0.2,0], + case 'purple' then R=[0.45,0.86,0,0], + case 'plum' then R=[0.5,1,0,0], + case 'violet' then R=[0.79,0.88,0,0], + case 'royalpurple' then R=[0.75,0.9,0,0], + case 'blueviolet' then R=[0.86,0.91,0,0.04], + case 'periwinkle' then R=[0.57,0.55,0,0], + case 'cadetblue' then R=[0.62,0.57,0.23,0], + case 'cornflowerblue' then R=[0.65,0.13,0,0], + case 'midnightblue' then R=[0.98,0.13,0,0.43], + case 'navyblue' then R=[0.94,0.54,0,0], + case 'royalblue' then R=[1,0.5,0,0], + case 'blue' then R=[1,1,0,0], + case 'cerulean' then R=[0.94,0.11,0,0], + case 'cyan' then R=[1,0,0,0], + case 'processblue' then R=[0.96,0,0,0], + case 'skyblue' then R=[0.62,0,0.12,0], + case 'turquoise' then R=[0.85,0,0.2,0], + case 'tealblue' then R=[0.86,0,0.34,0.02], + case 'aquamarine' then R=[0.82,0,0.3,0], + case 'bluegreen' then R=[0.85,0,0.33,0], + case 'emerald' then R=[1,0,0.5,0], + case 'junglegreen' then R=[0.99,0,0.52,0], + case 'seagreen' then R=[0.69,0,0.5,0], + case 'green' then R=[1,0,1,0], + case 'forestgreen' then R=[0.91,0,0.88,0.12], + case 'pinegreen' then R=[0.92,0,0.59,0.25], + case 'limegreen' then R=[0.5,0,1,0], + case 'yellowgreen' then R=[0.44,0,0.74,0], + case 'springgreen' then R=[0.26,0,0.76,0], + case 'olivegreen' then R=[0.64,0,0.95,0.4], + case 'rawsienna' then R=[0,0.72,1,0.45], + case 'sepia' then R=[0,0.83,1,0.7], + case 'brown' then R=[0,0.81,1,0.6], + case 'tan' then R=[0.14,0.42,0.56,0], + case 'gray' then R=[0,0,0,0.5], + case 'black' then R=[0,0,0,1], + case 'white' then R=[0,0,0,0], + else + disp(Color+' may be user-defined'); + R=Color; // 15.05.03 + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/ReadOutData.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/ReadOutData.bin Binary files differnew file mode 100644 index 00000000..22d88c39 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/ReadOutData.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/ReadOutData.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/ReadOutData.sci new file mode 100644 index 00000000..c1656b15 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/ReadOutData.sci @@ -0,0 +1,92 @@ +// 14.10.10 +// 14.12.14 for 3d +// 15.01.03 changed ("start","end") +// 15.10.24 in case of list-length==1 + +function Out=ReadOutData(varargin) + global Fnameout + if length(varargin)==0 then + Fname=Rnameout; + else + Fname=varargin(1); + end + Fid=mopen(Fname,"rb"); + Gstr=[]; + Str=""; + Flg=1; + Tmp=mgetstr(1,Fid); + while 1==1 + if Tmp=="" then + break; + end; + C=ascii(Tmp); + if Tmp=="/"|C==13|C==10 then// / CR,LF + if Flg==1 then + if part(Str,1:5)=="start" then + Str="Tmp=[];"; + else + if part(Str,1:3)=="end" then + if Flg3d==0 then // 2014.12.14 + Str=Varname+"($+1)=Listplot(Tmp);"; + else + Str=Varname+"($+1)=Spaceline(Tmp);"; + end + else + if part(Str,1:2)=="[[" then + Str="Tmp=[Tmp,"+Str+"];"; + else + Varname=Str; + Str=Varname+"=list();" + Flg3d=-1; + end; + end; + end; + if Flg3d==-1 then // 2014.12.14 + Tmp1=mtlb_findstr(Str,"[["); + if length(Tmp1)>0 then + Tmp2=mtlb_findstr(Str,"]"); + Tmp3=part(Str,Tmp1:Tmp2(1)); + Tmp4=mtlb_findstr(Tmp3,",") + if length(Tmp4)==2 then + Flg3d=1; + else + Flg3d=0; + end + end + end + Gstr=[Gstr;Str]; + Str=""; + Flg=0; + end; + else + Str=Str+Tmp; + Flg=1; + end; + Tmp=mgetstr(1,Fid); + end; + mclose(Fid); + Out=[]; // 15.10.24 from + Var=""; + Ctr=0; + for J=1:size(Gstr,1) + St=Gstr(J,1); + Out=[Out;St]; + Tmp=strsplit(St,"="); + Tmp1=Tmp(1,1); + Tmp2=Tmp(2,1); + if grep(Tmp2,"list()") then + if Ctr==1 then + Out=[Out;Var+"="+Var+"(1)"]; + end; + Var=Tmp1; + Ctr=0; + end; + if grep(Tmp1,"$") then + Ctr=Ctr+1; + end; + end + if Ctr==1 then + Out=[Out;Var+"="+Var+"(1)"]; + end; // 15.10.24 upto + Out; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/ReadfromCindy.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/ReadfromCindy.bin Binary files differnew file mode 100644 index 00000000..9f2e42ee --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/ReadfromCindy.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/ReadfromCindy.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/ReadfromCindy.sci new file mode 100644 index 00000000..eaf9f6df --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/ReadfromCindy.sci @@ -0,0 +1,38 @@ +// s:2014,09.08 +// e:2014.09.26 +// e:2014.10.07 debugged, code changed +// e:2014.10.08 CR | LF + +function Out=ReadfromCindy(Fname) + Fid=mopen(Fname,"rb"); + Gline=list(); + Gpt=list(); + Gstr=[]; + Str=""; + Flg=1; + Tmp=mgetstr(1,Fid); + while 1==1 + if Tmp=="" then + if Flg==1 then + Gstr=[Gstr;Str]; + Str=""; + Flg=1; + end; + break; + end + C=ascii(Tmp); + if C==13|C==10 then// CR,LF + if Flg==1 then + Gstr=[Gstr;Str]; + Str=""; + Flg=0; + end; + else + Str=Str+Tmp; + Flg=1; + end; + Tmp=mgetstr(1,Fid); + end; + mclose(Fid); + Out=Gstr; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Readtextdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Readtextdata.bin Binary files differnew file mode 100644 index 00000000..4a58106b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Readtextdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Readtextdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Readtextdata.sci new file mode 100755 index 00000000..7109f789 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Readtextdata.sci @@ -0,0 +1,160 @@ +// 08.05.22
+// 08.05.23
+// 08.05.26
+// 08.05.28
+// 10.04.25
+// 11.01.05
+// 13.10.06 format, debug
+// 14.01.20 debugged (Big data)
+
+function OutL=Readtextdata(varargin)
+ OutL=[];
+ Nargs=length(varargin);
+ Fname=varargin(1);
+ Suuji='0123456789.+-';
+ Sep='';
+ Hajime=[1,1];
+ N=%inf;
+ R=%inf;
+ D=-%inf; // 11.01.04
+ Fmt="%lf"; // 13.10.06
+ Flg=0;
+ for I=2:Nargs
+ Tmp=varargin(I);
+ if type(Tmp)==1
+ if Flg==0
+ Hajime=Tmp;
+ Flg=1
+ else
+ Owari=Tmp;
+ end
+ elseif mtlb_findstr(Tmp,'=')~=[]
+ execstr(Tmp);
+ else
+ if part(Tmp,1)=="%" // 13.10.06
+ Fmt=Tmp
+ else
+ Sep=Tmp;
+ if Tmp=='s' Sep=' '; end
+ if Tmp==',' Sep=','; end
+ if Tmp=='t' Sep=char(9); end
+ end
+ end
+ end
+ Owari=Hajime+[N-1,R-1];
+ Fid=mopen(Fname,'rb');
+ SL=[];
+ S='';
+ Lsp=0;
+ Flg=1;
+ Tmp=mgetstr(1,Fid);
+ while 1==1 // 2014.01.20
+ if Tmp=='' break; end
+ C=ascii(Tmp);
+ if C>=32 | C==9
+ if C==32
+ if Flg==1
+ Tmp='';
+ end
+ Flg=1
+ else
+ Flg=0;
+ end
+ S=S+Tmp;
+ Tmp=mgetstr(1,Fid);
+ else
+ SL=[SL;S];
+ S='';
+ Flg=1;
+ Tmp=mgetstr(1,Fid);
+ if Lsp==0
+ if C==10 // LF
+ Lsp=1;
+ elseif C==13
+ if ascii(Tmp)==10
+ Lsp=3; // CR LF
+ Tmp=mgetstr(1,Fid);
+ else
+ Lsp=2; // CR
+ end
+ else
+ break;
+ end
+ else
+ if C==10 | C==13
+ if Lsp==3
+ Tmp=mgetstr(1,Fid);
+ end
+ else
+ break
+ end
+ end
+ end
+ end
+ mclose(Fid);
+ if length(S)>0 then // 2013.10.06
+ SL=[SL;S]
+ end
+ for I=1:size(SL,1)
+ S=SL(I,1);
+ if S=='' continue; end
+ if mtlb_findstr(Suuji,Strop(1,S))~=[]
+ break
+ end
+ end
+ Hajime(1,1)=max(Hajime(1,1),I);
+ S=SL(Hajime(1),1);
+ if Sep==''
+ if length(mtlb_findstr(S,char(9)))~=0
+ Sep=char(9);
+ elseif length(mtlb_findstr(S,','))~=0
+ Sep=',';
+ else
+ Sep=' ';
+ end
+ end
+ Tmp=mtlb_findstr(S,Sep);
+ J=length(Tmp);
+ if Tmp(J)~=length(S)
+ J=J+1;
+ end
+ Owari(1,1)=min(size(SL,1),Owari(1));
+ Owari(1,2)=min(J,Owari(2));
+ S=SL(Owari(1),1);
+ while S==''
+ Owari(1,1)=Owari(1,1)-1;
+ S=SL(Owari(1),1);
+ end
+ OutL=[];
+ for J=Hajime(1):Owari(1)
+ S=SL(J,1);
+ if S==''
+ Tmp=%inf*ones(1,Owari(2)-Hajime(2)+1);
+ OutL=[OutL;Tmp];
+ continue
+ end
+ Tmp=Strop(1,S);
+ if mtlb_findstr(Suuji+Sep,Tmp)==[]
+ continue
+ end
+ SpL=[0,mtlb_findstr(S,Sep),length(S)+1];
+ Data=[];
+ for K=Hajime(2):Owari(2)
+ Tmp=Strop(SpL(K)+1:SpL(K+1)-1,S);
+ Tmp1=msscanf(Tmp,Fmt); // 13.10.06
+ Data=[Data,Tmp1];
+ end
+ OutL=[OutL;Data];
+ end;
+ if D~=-%inf // 11.01.04
+ Data=[];
+ for I=1:size(OutL,1)
+ Tmp=OutL(I,:);
+ if Tmp(1)<=D // 11.01.04
+ Tmp=[%inf,%inf];
+ end;
+ Data=[Data;Tmp];
+ end;
+ OutL=Data;
+ end; //
+endfunction;
diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Reflectdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Reflectdata.bin Binary files differnew file mode 100644 index 00000000..d9cd1315 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Reflectdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Reflectdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Reflectdata.sci new file mode 100755 index 00000000..837a5727 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Reflectdata.sci @@ -0,0 +1,51 @@ +// 08.05.25 Koshikawa +// 08.09.20 +// 15.04.12 + +function OutL=Reflectdata(varargin) + Nargs=length(varargin) + ML=varargin(1); + ML=Flattenlist(ML); + if Nargs==1 + PtA=[0,0];PtB=PtA; + else + Pts=varargin(2); + if length(Pts)==2 + PtA=Pts; PtB=PtA; + else + PtA=Pts(1,1:2); PtB=Pts(1,3:4); + end + end + OutL=[]; + for N=1:length(ML) + GL=Op(N,ML); + Out=[]; + for I=1:size(GL,1) + Tmp=GL(I,:); + X1=Tmp(1); + Y1=Tmp(2); + if Tmp==[%inf,%inf] + X2=X1; + Y2=Y1; + else + if PtA==PtB + X2=2*PtA(1)-X1; + Y2=2*PtA(2)-Y1; + else + U=PtB(1)-PtA(1); + V=PtB(2)-PtA(2); + A=PtA(1); + B=PtA(2); + X2=(U^2-V^2)/(U^2+V^2)*X1+2*U*V/(U^2+V^2)*Y1-2*V*(U*B-V*A)/(U^2+V^2); + Y2=2*U*V/(U^2+V^2)*X1-(U^2-V^2)/(U^2+V^2)*Y1+2*U*(U*B-V*A)/(U^2+V^2); + end + end + Out=[Out;X2,Y2]; + end; + OutL=Mixadd(OutL,Out); + end; + if length(OutL)==1 + OutL=Op(1,OutL); + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Rmmember.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Rmmember.bin Binary files differnew file mode 100644 index 00000000..66f6a956 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Rmmember.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Rmmember.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Rmmember.sci new file mode 100644 index 00000000..facea4d5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Rmmember.sci @@ -0,0 +1,20 @@ +// 11.01.14 New + +function Out=Rmmember(L,Rm) + if type(L)==1 + Out=[]; + end; + if type(L)==15 + Out=list(); + end; + for J=1:length(L) + Tmp=L(J); + if ~Member(Tmp,Rm) + Out($+1)=Tmp; + end; + end; + if type(L)==1 & size(L,1)==1 + Out=Out'; + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Rotate3data.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Rotate3data.bin Binary files differnew file mode 100644 index 00000000..e8683dd9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Rotate3data.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Rotate3data.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Rotate3data.sci new file mode 100755 index 00000000..9082290d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Rotate3data.sci @@ -0,0 +1,40 @@ +// 08.08.15 +// 14.03.23 debugged "center" +// 15.04.12 + +function Out=Rotate3data(varargin) +// Eps=10^(-4); + Nargs=length(varargin); + Pd3=varargin(1); + Pd3=Flattenlist(Pd3); // 15.04.12 + W1=varargin(2); + W2=varargin(3); + C=[0,0,0]; + if Nargs>=4 + C=varargin(4); + end; +// if Mixtype(Pd3)==1 // 15.04.12 from +// Pd3=MixS(Pd3); +// elseif Mixtype(Pd3)==3 +// Tmp=[]; +// for I=1:Mixlength(Pd3) +// Tmp=Mixjoin(Tmp,Mixop(I,Pd3)); +// end; +// Pd3=Tmp; +// end; + Out=[]; + for I=1:length(Pd3) + PD=Op(I,Pd3); + Ans=[]; + for J=1:size(PD,1) + P=PD(J,:); + Tmp=Rotate3pt(P,W1,W2,C); // 14.03.23 + Ans=[Ans;Tmp]; + end; + Out=Mixadd(Out,Ans); + end; + if length(Out)==1 + Out=Op(1,Out); + end; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Rotate3pt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Rotate3pt.bin Binary files differnew file mode 100644 index 00000000..bc806d95 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Rotate3pt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Rotate3pt.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Rotate3pt.sci new file mode 100755 index 00000000..910aa734 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Rotate3pt.sci @@ -0,0 +1,75 @@ +// 08.08.15 + +function Ans=Rotate3pt(varargin) + Eps=10^(-4); + Nargs=length(varargin); + P=varargin(1); + W1=varargin(2); + W2=varargin(3); + C=[0,0,0]; + if Nargs>=4 + C=varargin(4); + end; + if type(W2)==1 & length(W2)==1 + Ct=cos(W2); + St=sin(W2); + V3=1/norm(W1)*W1; + if V3(1)==0 + Tmp=[1,0,0]; + else + Tmp=[0,1,0]; + end; + W1=[Tmp(2)*V3(3)-Tmp(3)*V3(2),Tmp(3)*V3(1)-Tmp(1)*V3(3),Tmp(1)*V3(2)-Tmp(2)*V3(1)]; + V1=1/norm(W1)*W1; + V2=[V3(2)*V1(3)-V3(3)*V1(2),V3(3)*V1(1)-V3(1)*V1(3),V3(1)*V1(2)-V3(2)*V1(1)]; + else + Tmp=[W1(2)*W2(3)-W1(3)*W2(2),W1(3)*W2(1)-W1(1)*W2(3),W1(1)*W2(2)-W1(2)*W2(1)]; + if norm(Tmp)<Eps + Ans=P; + return; + end; + V1=1/norm(W1)*W1; + Ns=V1(1)*W2(1)+V1(2)*W2(2)+V1(3)*W2(3); + Tmp=W2-Ns*V1; + V2=1/norm(Tmp)*Tmp; + Tmp=[V1(2)*V2(3)-V1(3)*V2(2),V1(3)*V2(1)-V1(1)*V2(3),V1(1)*V2(2)-V1(2)*V2(1)]; + V3=1/norm(Tmp)*Tmp; + Ct=Ns/norm(W2); + St=sqrt(1-Ct^2); + end; + if norm(Tmp)<Eps + Ans=P; + return; + end; + V1x=V1(1); V1y=V1(2); V1z=V1(3); + V2x=V2(1); V2y=V2(2); V2z=V2(3); + V3x=V3(1); V3y=V3(2); V3z=V3(3); + if Mixtype(P)~=1 + PtL=P; + else + PtL=MixS(P); + end; + Ans=[]; + for N=1:Mixlength(PtL) + P=Mixop(N,PtL); + if P(1)==%inf + Ans=Mixadd(Ans,[%inf,%inf,%inf]); + continue; + end; + x=P(1)-C(1); y=P(2)-C(2); z=P(3)-C(3); + X=((V1x*Ct+V2x*St)*V1x+(-V1x*St+V2x*Ct)*V2x+V3x^2)*x; + X=X+((V1x*Ct+V2x*St)*V1y+(-V1x*St+V2x*Ct)*V2y+V3x*V3y)*y; + X=X+((V1x*Ct+V2x*St)*V1z+(-V1x*St+V2x*Ct)*V2z+V3x*V3z)*z; + Y=((V1y*Ct+V2y*St)*V1x+(-V1y*St+V2y*Ct)*V2x+V3x*V3y)*x; + Y=Y+((V1y*Ct+V2y*St)*V1y+(-V1y*St+V2y*Ct)*V2y+V3y^2)*y; + Y=Y+((V1y*Ct+V2y*St)*V1z+(-V1y*St+V2y*Ct)*V2z+V3y*V3z)*z; + Z=((V1z*Ct+V2z*St)*V1x+(-V1z*St+V2z*Ct)*V2x+V3x*V3z)*x; + Z=Z+((V1z*Ct+V2z*St)*V1y+(-V1z*St+V2z*Ct)*V2y+V3y*V3z)*y; + Z=Z+((V1z*Ct+V2z*St)*V1z+(-V1z*St+V2z*Ct)*V2z+V3z^2)*z; + Ans=Mixadd(Ans,C+[X,Y,Z]); + end; + if Mixlength(Ans)==1 + Ans=Mixop(1,Ans); + end; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Rotatedata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Rotatedata.bin Binary files differnew file mode 100644 index 00000000..fc876c55 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Rotatedata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Rotatedata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Rotatedata.sci new file mode 100755 index 00000000..845cac17 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Rotatedata.sci @@ -0,0 +1,39 @@ +// 08.05.23 Koshikawa +// 08.09.20 +// 15.04.12 + +function OutL=Rotatedata(varargin) + Nargs=length(varargin); + ML=varargin(1); + ML=Flattenlist(ML); + Theta=varargin(2); + if Nargs==2, + Pt=[0,0] + else + Pt=varargin(3); + end + Cx=Pt(1);Cy=Pt(2); + OutL=[]; + for N=1:length(ML) + GL=Op(N,ML); + Out=[]; + for I=1:size(GL,1) + Tmp=GL(I,:); + X1=Tmp(1); + Y1=Tmp(2); + if Tmp==[%inf,%inf] + X2=X1; + Y2=Y1; + else + X2=Cx+(X1-Cx)*cos(Theta)-(Y1-Cy)*sin(Theta); + Y2=Cy+(X1-Cx)*sin(Theta)+(Y1-Cy)*cos(Theta); + end; + Out=[Out;X2,Y2]; + end; + OutL=Mixadd(OutL,Out); + end; + if length(OutL)==1 + OutL=Op(1,OutL); + end; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Roundstr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Roundstr.bin Binary files differnew file mode 100644 index 00000000..f55e05bc --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Roundstr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Roundstr.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Roundstr.sci new file mode 100644 index 00000000..d14f3b3a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Roundstr.sci @@ -0,0 +1,7 @@ +// 10.11.04 + +function Out=Roundstr(X,Ni,Nf) + Na=Ni+1+Nf; + Fmt='%'+string(Na)+'.'+string(Nf)+'f'; + Out=sprintf(Fmt,X); +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Scaledata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Scaledata.bin Binary files differnew file mode 100644 index 00000000..025c430a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Scaledata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Scaledata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Scaledata.sci new file mode 100755 index 00000000..7e563f4b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Scaledata.sci @@ -0,0 +1,39 @@ +// 08.05.25 Koshikawa +// 08.09.20 +// 15.04.12 + +function OutL=Scaledata(varargin) + Nargs=length(varargin); + ML=varargin(1); + ML=Flattenlist(ML); + A=varargin(2); + B=varargin(3); + if Nargs==3 + Pt=[0,0]; + else + Pt=varargin(4); + end + OutL=[]; + for N=1:length(ML) + GL=Op(N,ML); + Out=[]; + for I=1:size(GL,1) + Tmp=GL(I,:); + X1=Tmp(1); + Y1=Tmp(2); + if Tmp==[%inf,%inf] + X2=X1; + Y2=Y1; + else + X2=Pt(1)+A*(X1-Pt(1)); + Y2=Pt(2)+B*(Y1-Pt(2)); + end + Out=[Out;X2,Y2]; + end; + OutL=Mixadd(OutL,Out); + end; + if length(OutL)==1 + OutL=Op(1,OutL); + end; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sectionview.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sectionview.bin Binary files differnew file mode 100644 index 00000000..60750005 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sectionview.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sectionview.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sectionview.sci new file mode 100755 index 00000000..e918e475 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sectionview.sci @@ -0,0 +1,14 @@ +// 09.09.10 +// 09.10.12 remove:Uveq, add:Glist + +function Out=Sectionview(PtA,Vec,Fd,Glist,Np,Eps) + Uv=1/norm(Vec)*Vec; + Nv=[Uv(2),-Uv(1),0]; + G1=Sfcutdata(Fd,Mix(Nv,PtA),Np); + G2=Spaceline([PtA,PtA+10*Uv]); + Tmp=Mixjoin(G1,G2,Glist); + Tmp1=Viewfrom(Nv,Tmp); + Out=Tmp; +endfunction; + + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setangle.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setangle.bin Binary files differnew file mode 100644 index 00000000..e70977ce --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setangle.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setangle.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setangle.sci new file mode 100755 index 00000000..2a4a3c95 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setangle.sci @@ -0,0 +1,17 @@ +// 08.07.11 +// 08.08.12 +// 09.02.27 + +function Setangle(varargin) + global PHI THETA; + Nargs=length(varargin); + if Nargs<2 + Mixdisp(Mix('theta=',THETA*180/%pi)); + Mixdisp(Mix('phi=',PHI*180/%pi)); + return; + else + PHI=varargin(2)*%pi/180; + THETA=varargin(1)*%pi/180; + end +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setarrow.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setarrow.bin Binary files differnew file mode 100644 index 00000000..63725d0f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setarrow.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setarrow.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setarrow.sci new file mode 100755 index 00000000..8f9d6053 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setarrow.sci @@ -0,0 +1,35 @@ +// 08.05.31 +// 09.02.27 + +function Setarrow(varargin) + global YaSize YaAngle YaPosition YaThick YaStyle; + Nargs=length(varargin); + if Nargs==0 + Mixdisp(Mix('Size=',YaSize)); + Mixdisp(Mix('Angle=',YaAngle)); + Mixdisp(Mix('Position=',YaThick)); + Mixdisp(Mix('Style=',YaStyle)); + return; + end; + Flg=0; + for I=1:Nargs + Tmp=varargin(I); + if type(Tmp)==1 + Flg=Flg+1; + if Flg==1 YaSize=Tmp; end + if Flg==2 + if Tmp<5 + YaAngle=18*Tmp; + else + YaAngle=Tmp; + end + end + if Flg==3 YaPosition=Tmp; end + if Flg==4 YaThick=Tmp; end + end + if type(Tmp)==10 + YaStyle=Tmp + end + end +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setax.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setax.bin Binary files differnew file mode 100644 index 00000000..6a258c98 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setax.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setax.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setax.sci new file mode 100755 index 00000000..5fab30e2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setax.sci @@ -0,0 +1,102 @@ +// 08.08.08 +// 09,02.27 + +function Out=Setax(varargin) + global ZIKU XNAME XPOS YNAME YPOS ONAME OPOS ARROWSIZE; + Nargs=length(varargin); + if Nargs==0 + if ZIKU=='line' + Tmp=',' + else + Tmp='(Arrowsize='+string(ARROWSIZE)+'),' + end; + Str=... + ZIKU+Tmp+... + XNAME+','+XPOS+','+YNAME+','+... + YPOS+','+ONAME+','+OPOS; + Out=Str; + disp(Str); + return; + end; + ArgL=[]; + Is=1; + Tmp=varargin(1); + if type(Tmp)==1 & length(Tmp)==1 + Is=varargin(1); + ArgL=[]; + for I=1:Is-1 + ArgL=[ArgL,'']; + end + for I=2:Nargs + ArgL=[ArgL,varargin(I)]; + end + else + if Nargs==1 + ArgL=[varargin(1)]; + else + Tmp=varargin(2); + if type(Tmp)==1 & length(Tmp)==1 + ARROWSIZE=Tmp; + ArgL=[varargin(1)]; + for I=3:Nargs + ArgL=[ArgL,varargin(I)]; + end; + else + ArgL=[]; + for I=1:Nargs + ArgL=[ArgL,varargin(I)]; + end; + end + end + end + for I=size(ArgL,2)+1:7 + ArgL=[ArgL,'']; + end + Zk=ArgL(1); + if Zk~='' + ZL=msscanf(Zk,'%c%f'); + Zk=ZL(1); + if length(ZL)>1 // modified at 080807 + ARROWSIZE=ZL(2); + end + end + Xn=ArgL(2); Xp=ArgL(3); + Yn=ArgL(4); Yp=ArgL(5); + Genn=ArgL(6); Genp=ArgL(7); + if Zk~='' + C=Zk; + if C=='a' + ZIKU='arrow'; + else + ZIKU='line'; + end + end + if Xn~='' + XNAME='$'+Xn+'$' + end + if Xp~='' + XPOS=Xp + end + if Yn~='' + YNAME='$'+Yn+'$' + end + if Yp~='' + YPOS=Yp + end + if Genn~='' + ONAME=Genn + end + if Genp~='' + OPOS=Genp + end + if ZIKU=='line' + Tmp=',' + else + Tmp='(Arrowsize='+string(ARROWSIZE)+'),' + end; + Str=... + ZIKU+Tmp+... + XNAME+','+XPOS+','+YNAME+','+... + YPOS+','+ONAME+','+OPOS; + Out=Str; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setcolor.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setcolor.bin Binary files differnew file mode 100644 index 00000000..cb6ec45d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setcolor.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setcolor.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setcolor.sci new file mode 100644 index 00000000..51b8e0c3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setcolor.sci @@ -0,0 +1,36 @@ +// 11.05.28 +// 11.08.24 +// 15.05.03 + +function Setcolor(varargin) + global Wfile FID; + Nargs=length(varargin); + Color='black'; + Kosa=1; + Color=varargin(1); + if length(varargin)>1 + Kosa=varargin(2); + end; + Iro=Ratiocmyk(Color); + if type(Iro)==10 + Str='\color{'+Iro+"}%"; + else + if size(Iro,2)>3 + Str='\color[cmyk]{'; + else + Str='\color[rgb]{'; + end; + for J=1:size(Iro,2) + Str=Str+string(Kosa*Iro(J)); + if J<size(Iro,2) + Str=Str+','; + end; + end; + Str=Str+'}%'; + end; + if Wfile=='default' + mprintf('%s\n',Str); + else + mfprintf(FID,'%s\n',Str); + end +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setcounter.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setcounter.bin Binary files differnew file mode 100644 index 00000000..7bcd0094 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setcounter.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setcounter.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setcounter.sci new file mode 100755 index 00000000..4b8b932b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setcounter.sci @@ -0,0 +1,13 @@ +// 09.09.10 + +function Setcounter(varargin) + global GCOUNTER; + Nargs=length(varargin); + if Nargs==0 + N=1; + else + N=varargin(1); + end; + GCOUNTER=N; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setmark.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setmark.bin Binary files differnew file mode 100644 index 00000000..b8a538c3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setmark.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setmark.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setmark.sci new file mode 100755 index 00000000..ae713f4e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setmark.sci @@ -0,0 +1,43 @@ +// 09.11.26 +// 09.12.06 + +function Setmark(); + Xminnow=Xmin(); Xmaxnow=Xmax(); + Yminnow=Ymin(); Ymaxnow=Ymax(); + Setwindow([-1.5,1.5],[-2.3,2.3]); + F1=Framedata(); + F2=Paramplot('[1.5*cos(t),2.3*sin(t)]','t=[0,2*%pi]','N=25'); + Texcom('\def\recmark{'); + Texcom('\begin{minipage}[c]{3mm}'); + Beginpicture('1mm'); + Shade(F1); + Drwline(F1); + Endpicture(0); + Texcom(''); + Texcom('\end{minipage}'); + Texcom('}'); + + Texcom('\def\cirmark{'); + Texcom('\begin{minipage}[c]{3mm}'); + Beginpicture('1mm'); + Shade(F2); + Drwline(F2); + Endpicture(0); + Texcom(''); + Texcom('\end{minipage}'); + Texcom('}'); + + Texcom('\def\dashmark#1{'); + Texcom('\begin{minipage}[c]{3mm}'); + Beginpicture('1mm'); + Setpen(0.5); + Dashline(F2,0.5,0.5); + Fontsize('ss'); + Letter([0,0],'c','#1'); + Endpicture(0); + Texcom(''); + Texcom('\end{minipage}'); + Texcom('}'); + Setwindow([Xminnow,Xmaxnow],[Yminnow,Ymaxnow]); +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setmarklen.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setmarklen.bin Binary files differnew file mode 100644 index 00000000..6822b346 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setmarklen.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setmarklen.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setmarklen.sci new file mode 100755 index 00000000..a17c9e95 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setmarklen.sci @@ -0,0 +1,17 @@ +// +// 09.02.27 +// 14.03.05 MARKLEN + +function Setmarklen(varargin) + global MARKLEN MARKLENInit MARKLENNow; + Nargs=length(varargin); + if Nargs==0 + Tmp=MARKLEN/MARKLENInit; + Tmp=round(Tmp*100)/100; + disp(Tmp); + return; + end; + Size=varargin(1); + MARKLEN=MARKLENInit*Size; + MARKLENNow=MARKLEN; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setobjdecimals.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setobjdecimals.bin Binary files differnew file mode 100644 index 00000000..a8591c05 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setobjdecimals.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setobjdecimals.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setobjdecimals.sci new file mode 100644 index 00000000..2ee06cbb --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setobjdecimals.sci @@ -0,0 +1,8 @@ +// s : 2014.06.22 + +function Setobjdecimals(n) + global OBJFMT; + s1=string(n); + s2=string(n+3); + OBJFMT="%"+s2+"."+s1+"f"; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setobjscale.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setobjscale.bin Binary files differnew file mode 100644 index 00000000..71df5ec2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setobjscale.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setobjscale.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setobjscale.sci new file mode 100644 index 00000000..22f13c4d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setobjscale.sci @@ -0,0 +1,6 @@ +// s : 2014.06.22 + +function Setobjscale(scale) + global OBJSCALE; + OBJSCALE=scale; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setorigin.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setorigin.bin Binary files differnew file mode 100644 index 00000000..91bbc8da --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setorigin.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setorigin.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setorigin.sci new file mode 100755 index 00000000..62a1f624 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setorigin.sci @@ -0,0 +1,14 @@ +// +// 09.02.27 + +function Setorigin(varargin) + global GENTEN; + Nargs=length(varargin); + if Nargs==0 + disp(GENTEN); + return; + end; + Pt=varargin(1); + GENTEN=Pt; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setpen.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setpen.bin Binary files differnew file mode 100644 index 00000000..d5934c6e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setpen.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setpen.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setpen.sci new file mode 100755 index 00000000..500ef7f9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setpen.sci @@ -0,0 +1,11 @@ +function Setpen(Width) + global Wfile FID PenThick PenThickInit; + PenThick=round(PenThickInit*Width); + Str='\special{pn '+string(PenThick)+'}%'; + if Wfile=='default' + mprintf('%s\n',Str); + else + mfprintf(FID,'%s\n',Str); + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setpers.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setpers.bin Binary files differnew file mode 100644 index 00000000..c628c2f0 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setpers.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setpers.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setpers.sci new file mode 100755 index 00000000..455551bb --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setpers.sci @@ -0,0 +1,16 @@ +// 08.08.12 +// 08.08.15 + +function Setpers(varargin) + global FocusPoint EyePoint; + Nargs=length(varargin); + if Nargs==0 + Mixdisp(Mix('FocusPoints=',FocusPoint)); + Mixdisp(Mix('EyePoint=',EyePoint)); + return; + else + FocusPoint=varargin(1); + EyePoint=varargin(2); + end; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setpt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setpt.bin Binary files differnew file mode 100644 index 00000000..b36a2407 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setpt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setpt.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setpt.sci new file mode 100755 index 00000000..a3b86b01 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setpt.sci @@ -0,0 +1,16 @@ +// +// 09.02.27 + +function Setpt(varargin) + global TenSize TenSizeInit; + Nargs=length(varargin); + if Nargs==0 + Tmp=TenSize/TenSizeInit; + Tmp=round(Tmp*100)/100; + disp(Tmp); + return; + end; + Size=varargin(1); + TenSize=TenSizeInit*Size; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setscaling.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setscaling.bin Binary files differnew file mode 100644 index 00000000..d3561ee9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setscaling.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setscaling.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setscaling.sci new file mode 100755 index 00000000..1d4868c9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setscaling.sci @@ -0,0 +1,28 @@ +function Out=Setscaling(varargin) + global LOGX LOGY SCALEX SCALEY; + Nargs= length(varargin) + if Nargs==0 + Out=[SCALEY,LOGX,LOGY]; + return; + end; + for I=1:Nargs + Tmp=varargin(I); + if type(Tmp)==1 + SCALEY=Tmp; + end; + if type(Tmp)==10 + if Tmp=="l" + LOGX=0; + LOGY=1; + elseif Tmp=="ll" + LOGX=1 + LOGY=1 + else + LOGX=0 + LOGY=0 + end; + end; + end; + Out=[SCALEY,LOGX,LOGY]; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/SetstereoL.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/SetstereoL.bin Binary files differnew file mode 100644 index 00000000..cba724b8 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/SetstereoL.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/SetstereoL.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/SetstereoL.sci new file mode 100755 index 00000000..cb6c79ae --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/SetstereoL.sci @@ -0,0 +1,12 @@ +// 08.08.12 +// 08.09.21 +// 09.03.09 + +function SetstereoL(R,T,P,H) + X=R*sin(T*%pi/180)*cos(P*%pi/180); + Y=R*sin(T*%pi/180)*sin(P*%pi/180); + Z=R*cos(T*%pi/180); + Eye=[X+H/2*Y/(X^2+Y^2),Y-H/2*X/(X^2+Y^2),Z]; + Setpers([0,0,0],Eye); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/SetstereoR.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/SetstereoR.bin Binary files differnew file mode 100644 index 00000000..7f82c6ee --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/SetstereoR.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/SetstereoR.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/SetstereoR.sci new file mode 100755 index 00000000..ff9de892 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/SetstereoR.sci @@ -0,0 +1,10 @@ +// 08.08.12 + +function SetstereoR(R,T,P,H) + X=R*sin(T*%pi/180)*cos(P*%pi/180); + Y=R*sin(T*%pi/180)*sin(P*%pi/180); + Z=R*cos(T*%pi/180); + Eye=[X-H/2*Y/(X^2+Y^2),Y+H/2*X/(X^2+Y^2),Z]; + Setpers([0,0,0],Eye); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setunitlen.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setunitlen.bin Binary files differnew file mode 100644 index 00000000..23ded039 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setunitlen.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setunitlen.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setunitlen.sci new file mode 100755 index 00000000..84ea4d60 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setunitlen.sci @@ -0,0 +1,78 @@ +// 08.12.06 +// 08.12.18 +// 09.02.20 +// 09.02.27 +// 14.03.05 MARKLEN +// 17.03.19 VL=[] => VL=""; + +function Out=Setunitlen(varargin) + global FID XMIN XMAX YMIN YMAX ULEN + global MilliIn MARKLEN MARKLENNow PenThickInit; + if length(varargin)==0 + Out=ULEN; + disp(ULEN); + return; + end; + Ul=varargin(1); + Dx=XMAX-XMIN; + Dy=YMAX-YMIN; + Sym='.0123456789 +-*/'; + Tmp=ascii(Sym); + SL=Sym; + OL='+-*/'; + if Ul~='' + ULEN=Ul; + end; + Out=ULEN; + Is=1; + VL=""; // 17.03.19 + Ucode=ascii(ULEN); + for I=1:length(Ucode) + C=char(Ucode(I)); + if mtlb_findstr(SL,C)~=[] + if mtlb_findstr(OL,C) + Str=char(Ucode(Is:(I-1))); + VL=VL+Str+C; + Is=I+1; + end + else + Unit=char(Ucode(I:(I+1))); + Str=char(Ucode(Is:(I-1))); + VL=VL+Str; + break; + end; + end; + Valu=evstr(VL); + Str=string(Valu); + ULEN=Str+Unit; + Out=ULEN; + if Unit=='cm' + MilliIn=1000/2.54*Valu; + end + if Unit=='mm' + MilliIn=1000/2.54*Valu/10; + end + if Unit=='in' + MilliIn=1000*Valu; + end + if Unit=='pt' + MilliIn=1000/72.27*Valu; + end + if Unit=='pc' + MilliIn=1000/6.022*Valu; + end + if Unit=='bp' + MilliIn=1000/72*Valu; + end + if Unit=='dd' + MilliIn=1000/1238/1157/72.27*Valu; + end + if Unit=='cc' + MilliIn=1000/1238/1157/72.27*12*Valu;p + end + if Unit=='sp' + MilliIn=1000/72.27/65536*Valu/10; + end + MARKLEN=MARKLENNow*1000/2.54/MilliIn; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setversion.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setversion.bin Binary files differnew file mode 100644 index 00000000..992a793c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setversion.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setversion.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setversion.sci new file mode 100755 index 00000000..92883d5a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setversion.sci @@ -0,0 +1,182 @@ +// +// 08.11.12 V3.0.2b +// 08.11.26 V3.0.2c +// 08.12.08 V3.0.2d +// 08.12.11 v3.0.2e +// 08.12.17 v3.0.3a +// 08.12.21 v3.0.3b +// 08.12.30 v3.0.3c +// 09.01.15 v3.0.3d +// 09.02.20 v3.0.3e +// 09.02.27 v3.0.4a +// 09.02.27 v3.0.4b +// 09.03.06 v3.0.4c +// 09.03.09 v3.0.4d +// 09.03.10 v3.0.4e +// 09.03.12 v3.0.5a +// 09.05.12 v3.0.5b +// 09.05.18 v3.0.5c +// 09.05.27 v3.0.6a +// 09.06.01 v3.0.6b +// 09.06.05 v3.0.6c +// 09.06.13 v3.0.6d +// 09.06.24 v3.0.6e +// 09.08.12 v3.0.7a +// 09.08.13 v3.0.7b +// 09.08.23 v3.0.8a +// 09.09.10 v3.0.9a +// 09.09.18 v3.1.0a +// 09.09.21 v3.1.0b +// 09.09.25 v3.1.1a +// 09.09.25 v3.1.1b +// 09.10.01 v3.1.1c +// 09.10.03 v3.1.2a +// 09.10.04 v3.1.3a +// 09.10.05 v3.1.3b +// 09.10.08 v3.1.3c +// 09.10.09 v3.1.4a +// 09.10.11 v3.1.5a + +// Structure changed +// 09.10.11 v3.2.0beta +// 09.10.31 v3.2.0beta1031 + +// 09.11.01 v3.2.0a +// 09.11.04 v3.2.1a +// 09.11.12 v3.2.1b +// 09.11.14 v3.2.1c +// 09.11.14 v3.2.1d +// 09.11.21 v3.2.1e +// 09.11.26 v3.2.2a +// 09.12.05 v3.2.2b +// 09.12.06 v3.2.3a +// 09.12.17 v3.2.3b +// 09.12.24 v3.2.3c +// 09.12.25 v3.3.1a +// 09.12.26 v3.3.1b +// 09.12.28 v3.3.1c +// 09.12.31 v3.3.1d ( for v5.2.0) +// 10.01.01 v3.4.0alpha +// 10.01.05 v3.4.0beta +// 10.01.10 v3.4.1a +// 10.01.12 v3.4.1b +// 10.01.16 v3.4.1c +// 10.01.21 v3.4.2a +// 10.02.01 v3.4.2b +// 10.02.07 v3.4.2c +// 10.02.12 v3.4.2d +// 10.02.14 v3.4.2e +// 10.02.16 v3.4.3a +// 10.02.20 v3.4.3b Windisp +// 10.02.24 v3.4.3c Execmd +// 10.03.07 v3.4.3d +// 10.03.28 v3.4.4a +// 10.03.28 v3.4.4b +// 10.04.03 v3.4.5a +// 10.04.10 v3.4.5b +// 10.04.16 v3.4.6a +// 10.04.24 v3.4.6b +// 10.04.24 v3.4.6b1 +// 10.04.27 v3.4.7a +// 10.05.03 v3.4.7b +// 10.05.09 v3.4.7c Makeskeletondata, Makeskeletonpersdata +// 10.05.12 v3.4.7d Texfor +// 10.05.15 v3.4.8a Texctr +// 10.08.15 v3.5.0a Phcutoffdata +// 10.09.02 Dropnumlistcrv +// 10.10.20 Texfor +// 10.11.04 Hatchdata, Roundstr +// 10.11.13 v3.5.0b Flattenlist added. Dashline, Invdashline changed +// 10.12.02 v3.5.0c Lineplot changed +// Makecurves debugged +// Enclosing changed (Output ) +// 11.01.07 v3.5.1a Readtextdata is changed +// Dividegraphiics, Splinedata are changed +// Facesdata is debugged (HiddenL) +// Rmmember added +// 11.04.13 Nohiddenpers2, Htickmark, Vtickmark are debugged +// 11.05.29 v4.0.0a ketpict2e released, too +// Setcolor, Ratiocmyk +// 11.11.02 v4.0.0b Joingraphics changed +// 11.12.12 v4.0.0c Skeletonparadata... changed (for various list ) +// 11.12.18 Framedata (compliant for list ) +// 12.01.07 v4.0.1a Arrowline, Arrowhead ( kirikomi ) +// 12.04.16 v4.0.1b Arrowhead debugged +// 12.08.26 v4.0.1c Arrowline debugged +// 13.05.03 v4.2a Tabledata, Pointdata changed +// Dividetable, Partframe added +// 13.05.17 v4.2_1a Arrowhead debugged +// Openfile, Closefile, Ketinit() changed +// 13.08.13 v4.2_2 Cancoordpara added +// 13.10.06 v4.2_2a Readtextdata debugged and changed (Format) +// 13.11.02 v4.3_0 __ added to local variables +// Openfile, Closefile changed +// 13.11.02 v4.3_0a Closefile debugged +// 13.11.13 v4.3_0b Arrowhead, Arrowheaddata debugged +// 13.12.03 v4.3_1 Bowname changed, Meetpoint debugged +// 14.01.10 v4.3_1a Readtextdata debugged (Big data) +// 14.03.05 v4.3_1b MARKLEN separated from MEMORI +// 14.03.23 Rotate3data debugged +// 14.03.30 v43_1c Facesdata debugged +// 14.06.09 v43_2a Phcutdata debugged (cause unknown ) +// 14.06.22 v5_0_1a Obj macros added +// 14.06.28 v5_0_1b debug cuspsplit (para, pers) +// 14.07.05 v5_0_1c debug (warning ) Makeskeletondata, Makeskeletonpersdata +// debug Makexybdy (by Kitahara) +// 14.07.18 v5_0_1d Objsurf, Objthicksurf changed ( input argument ) +// 14.08.26 V5_1_0a Symbdata, Symb3data, Objsymb added +// Objcurve debugged +// 14.09.07 v5_1_0b Objjoin added +// 14.09,08 v5_1_1a ReadfromCindy added +// 14.09.16 v5_1_1b WritetoCindy added +// 14.09.26 v5_1_1c Derivative changed ( to numderivative) +// 14.09.30 v5_1_1d Assignrep changed +// 14.10.08 v5_1_1e ReadfromCindy debugged +// 14.10.08 v5_1_1f ReadfromCindy supported CF|LF +// 14.10.10 v5_1_2a ReadOutdata, WritOutData added +// 14.10.24 v5_1_2b Derivative changed ( derivative or numderivative used a.t scilab version) +// Plotdata,Paramplot,Circledata changed ( N,D,E,R => N__, ... ) +// 14.12.11 v5_1_3a Assign changed (replaced only variable name ) +// Plotdata changed (and debugged ), Paramplot changed +// 12.14 WriteOutData,ReadOutData changed ( for 3d ) +// 14.12.28 v5_1_3b Assign debugged +// 15.01.01 v5_1_4a Bezierpt,Bezier added +// 15.01.03 v5_1_4b ReadOutData changed ("start","end") +// 15.02.08 v5_1_5a Bezier pt changed (available for 3d) +// 15.02.18 v5_1_5b Assign debugged +// 15.02.19 v5_1_5c Assign again debugged +// 15.04.10 v5_1_5d EnclosingS debugged +// Translatedata, Rotatedata, Reflectdata, Scaledate changed (Flattenlist) +// 15.04.18 v5_1_5e Assign debugged +// 15.05.03 v5_1_6a Setcolor,Ratiocmyk changed ( for cmyk, rgb, mycolor ) +// 15.05.04 Definecolor added +// 15.06.11 v5_1_6b Arrowline, Arrowhead debugged +// 15.06.14 v5_1_6c Skeletonpara3data debugged +// Arrowhead changed (0.2 -> 0.1 ) +// 15.10.19 v5_1_6d Skeletonpara3data debugged +// 15.10.23 v5_1_6e ReadOutData changed ( for the lenth of PD is 1 ) +// 15.10.23 Meetwindow changed ( horner non used ) +// 15.10.24 Arrowline debugged +// 15.10.23 v5_1_6f WriteOutData changed ( endmark //// ) +// 15.11.05 v5_1_6g WriteOutData changed +// 15.11.16 v5_2_1 Ovaldata changed ( Rc ) +// Plotdata, Paramplot, Deqplot +// number of points changed to number of intervals +// 15.12.08 v5_2_2 Deqplot debugged ( option __) +// 16.08.20 v5_2_3 Spacecurve debugged ( N ) +// 16.10.09 v5_2_3a Objcurve changed ( N of Sapcecurve) +// 16.10.09 v5_2_3b Kyoukai changed ( Eps =>10^(-4)) +// 16.10.09 v5_2_3c Enclosing, Kyoukai changed ( to make it a closed curve)) +// 16.12.13 v5_2_3d Plotdata,Paramplot,Spacecurve changed ( for only one point) +// 16.12.24 v5_2_3e Makeskeletondata debugged ( for nul interval) +// 16.12.29 v5_2_3f Anglemark, MeetWindow debugged ( for nul interval) +// 16.12.29 v5_2_3g Shade changed (for colorname or colorcode) +// 17.03.19 v5_2_3h Openpicture,Setunitlen debugged ( for 6 ) +// 17.05.21 v5_2_3i Evlptablepara changed (division number) + + +function Setversion() + global THISVERSION; + THISVERSION='v5_2_3i'; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setwindow.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setwindow.bin Binary files differnew file mode 100644 index 00000000..5ab2b0d2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setwindow.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setwindow.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setwindow.sci new file mode 100755 index 00000000..fb72097b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Setwindow.sci @@ -0,0 +1,44 @@ +// +// 09.02.27 +// 10.04.25 + +function Out=Setwindow(varargin) + global XMIN XMAX YMIN YMAX + Nargs=length(varargin); + if Nargs==0 + Out=[XMIN,XMAX,YMIN,YMAX]; + disp(Out); + return; + end; + if Nargs==1 + Dt=varargin(1); + if type(Dt)==1 + Dt=list(Dt); + end; + Xm=%inf; XM=-%inf; + Ym=%inf; YM=-%inf; + for I=1:length(Dt) + GL=Dividegraphics(Dt(I)); + for J=1:length(GL) + G=GL(J); + Tmp=min(G(:,1)); Xm=min(Xm,Tmp); + Tmp=max(G(:,1)); XM=max(XM,Tmp); + Tmp=min(G(:,2)); Ym=min(Ym,Tmp); + Tmp=max(G(:,2)); YM=max(YM,Tmp); + end; + end; + XMIN=Xm; XMAX=XM; + YMIN=Ym; YMAX=YM; + end; + if Nargs==2 + RgX=varargin(1); + RgY=varargin(2); + XMIN=RgX(1); XMAX=RgX(2); + YMIN=RgY(1); YMAX=RgY(2); + end + if Nargs==4 + XMIN=varargin(1); XMAX=varargin(2); + YMIN=varargin(3); YMAX=varargin(4); + end; + Out=[XMIN,XMAX,YMIN,YMAX]; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sf3data.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sf3data.bin Binary files differnew file mode 100644 index 00000000..623920c5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sf3data.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sf3data.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sf3data.sci new file mode 100755 index 00000000..9c20a13b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sf3data.sci @@ -0,0 +1,62 @@ +// 08.08.16 +// 08.10.10 +// 13.10.21 ( __ added to varibles ) + +function PL__=Sf3data(varargin) + Nargs__=length(varargin); + FdL__=Fullformfunc(varargin(1)); + F__=Mixop(1,FdL__); + Xf__=Mixop(2,FdL__); + Yf__=Mixop(3,FdL__); + Zf__=Mixop(4,FdL__); + Urg__=Mixop(5,FdL__); + Vrg__=Mixop(6,FdL__); + K__=mtlb_findstr(Urg__,'='); + U__=part(Urg__,1:K__-1); + Tmp__=part(Urg__,K__+1:length(Urg__)); + Tmp__=evstr(Tmp__); + Umin__=Tmp__(1); Umax__=Tmp__(2); + K__=mtlb_findstr(Vrg__,'='); + V__=part(Vrg__,1:K__-1); + Tmp__=part(Vrg__,K__+1:length(Vrg__)); + Tmp__=evstr(Tmp__); + Vmin__=Tmp__(1); Vmax__=Tmp__(2); + Ndu__=25 ; Ndv__=25; Np__=[50,50]; + if Nargs__>=3 + Ndu__=varargin(2); + Ndv__=varargin(3); + end; + if Nargs__>=4 + Np__=varargin(4); + if type(Np__)==1 & length(Np__)==1 + Np__=[Np__,Np__]; + end; + end; + Du__=(Umax__-Umin__)/Ndu__; + Dv__=(Vmax__-Vmin__)/Ndv__; + PL__ = []; + for I__=0:Ndu__ + U0__ ='('+string(Umin__+I__*Du__)+')'; + Tmp__=strsubst(Xf__,U__,U0__); + Tmp1__=strsubst(Tmp__,V__,'t'); + Tmp__=strsubst(Yf__,U__,U0__); + Tmp2__=strsubst(Tmp__,V__,'t'); + Tmp__=strsubst(Zf__,U__,U0__); + Tmp3__=strsubst(Tmp__,V__,'t'); + Tmp__='['+Tmp1__+','+Tmp2__+','+Tmp3__+']'; + PD__=Spacecurve(Tmp__,'t=[Vmin__,Vmax__]','N='+string(Np__(2))); + PL__=Mixadd(PL__,PD__); + end; + for J__=0:Ndv__ + V0__='('+string(Vmin__+J__*Dv__)+')'; + Tmp__=strsubst(Xf__,V__,V0__); + Tmp1__=strsubst(Tmp__,U__,'t'); + Tmp__=strsubst(Yf__,V__,V0__); + Tmp2__=strsubst(Tmp__,U__,'t'); + Tmp__=strsubst(Zf__,V__,V0__); + Tmp3__=strsubst(Tmp__,U__,'t'); + Tmp__='['+Tmp1__+','+Tmp2__+','+Tmp3__+']'; + PD__=Spacecurve(Tmp__,'t=[Umin__,Umax__]','N='+string(Np__(1))); + PL__=Mixadd(PL__,PD__); + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfbdparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfbdparadata.bin Binary files differnew file mode 100644 index 00000000..183f7fda --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfbdparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfbdparadata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfbdparadata.sci new file mode 100755 index 00000000..7a759f69 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfbdparadata.sci @@ -0,0 +1,39 @@ +// 08.09.13 +// 10.02.16 Eps => [Eps, Epsmag] + +function Out5=Sfbdparadata(varargin) + global IMPLICITDATA CUSPDATA CUSPPT CUSPSPLITPT; + Nargs=length(varargin); + Fd=varargin(1); + FdL=Fullformfunc(Fd); + Np=[50,50]; + if Nargs>=2 + Np=varargin(2); + if type(Np)==1 & length(Np)==1 + Np=[Np,Np]; + end; + end; + Eps=[0.05,1]; // + if Nargs>=3 + Eps=varargin(3); + end; + if length(Eps)==1 // + Eps=[Eps,1]; // + end; // + Eps2=0.2; + if Nargs>=4 + Eps2=varargin(4); + end; + Ts=timer(); + [Zval,Xval,Yval]=Evlptablepara(Mix(Fd,Np)); + Out3=Implicitplot(Zval,Xval,Yval); + IMPLICITDATA=Out3; + Mixdisp(Mix('ImplicitData obtained ',timer())); + Out4=Cuspsplitpara(Out3,Fd,Eps(1)); // + CUSPDATA=Out4; + CUSPPT=CUSPSPLITPT; + Mixdisp(Mix('CuspData obtained ',timer())); + Out5=Borderparadata(Out4,Fd,Np,Eps,Eps2); + Mixdisp(Mix('BorderData obtained ',timer())); +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfbdpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfbdpersdata.bin Binary files differnew file mode 100644 index 00000000..5f77179e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfbdpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfbdpersdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfbdpersdata.sci new file mode 100755 index 00000000..9833a7f4 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfbdpersdata.sci @@ -0,0 +1,42 @@ + +// 08.09.21 +// 10.02.16 Eps => [Eps, Epsmag] +// 13.11.02 bug + +function Out5=Sfbdpersdata(varargin) + global IMPLICITDATA CUSPDATA CUSPPT CUSPSPLITPT; + Nargs=length(varargin); + Fd=varargin(1); + FdL=Fullformfunc(Fd); + Np=[50,50]; + if Nargs>=2 + Np=varargin(2); + if type(Np)==1 & length(Np)==1 + Np=[Np,Np]; + end; + end; + Eps=[0.05,1]; // + if Nargs>=3 + Eps=varargin(3); + end; + if length(Eps)==1 // + Eps=[Eps,1]; // + end; // + Eps2=0.2; + if Nargs>=4 + Eps2=varargin(4); + end; + Ts=timer(); + [Zval,Xval,Yval]=Evlptablepers(Mix(Fd,Np)); + Out3=Implicitplot(Zval,Xval,Yval); + IMPLICITDATA=Out3; + Mixdisp(Mix('ImplicitData obtained ',timer())); + Out4=Cuspsplitpers(Out3,Fd,Eps(1)); // 13.11.02 + CUSPDATA=Out4; + CUSPPT=CUSPSPLITPT; + Mixdisp(Mix('CuspData obtained ',timer())); + Out5=Borderpersdata(Out4,Fd,Np,Eps,Eps2); + Mixdisp(Mix('BorderData obtained ',timer())); +endfunction; + + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfbdrawparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfbdrawparadata.bin Binary files differnew file mode 100644 index 00000000..66da5cea --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfbdrawparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfbdrawparadata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfbdrawparadata.sci new file mode 100755 index 00000000..082ccec3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfbdrawparadata.sci @@ -0,0 +1,33 @@ +// 08.09.10 +// 08.09.13 + +function Out5=Sfbdrawparadata(varargin) + global IMPLICITDATA CUSPDATA CUSPPT CUSPSPLITPT; + Nargs=length(varargin); + Fd=varargin(1); + FdL=Fullformfunc(Fd); + Np=[50,50]; + if Nargs>=2 + Np=varargin(2); + if type(Np)==1 & length(Np)==1 + Np=[Np,Np]; + end; + end; + Eps=0.05; + if Nargs>=3 + Eps=varargin(3); + end; + Ts=timer(); + [Zval,Xval,Yval]=Evlptablepara(Mix(Fd,Np)); + Out3=Implicitplot(Zval,Xval,Yval); + BdyL=Mixop(8,FdL); + if BdyL~=[] + Out3=Clipindomain(Out3,BdyL) + end; + IMPLICITDATA=Out3; + Out4=Cuspsplitpara(Out3,Fd,Eps); + CUSPDATA=Out4; + CCUSPPT=CUSPSPLITPT; + Out5=Borderrawdata(Out4,Fd,Np,Eps); +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfbdrawpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfbdrawpersdata.bin Binary files differnew file mode 100644 index 00000000..cd42fdf6 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfbdrawpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfbdrawpersdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfbdrawpersdata.sci new file mode 100755 index 00000000..cde6870f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfbdrawpersdata.sci @@ -0,0 +1,31 @@ +// 08.09.21 + +function Out5=Sfbdrawpersdata(varargin) + global IMPLICITDATA CUSPDATA CUSPPT CUSPSPLITPT; + Nargs=length(varargin); + Fd=varargin(1); + FdL=Fullformfunc(Fd); + Np=[50,50]; + if Nargs>=2 + Np=varargin(2); + if type(Np)==1 & length(Np)==1 + Np=[Np,Np]; + end; + end; + Eps=0.05; + if Nargs>=3 + Eps=varargin(3); + end; + Ts=timer(); + [Zval,Xval,Yval]=Evlptablepers(Mix(Fd,Np)); + Out3=Implicitplot(Zval,Xval,Yval); + BdyL=Mixop(8,FdL); + if BdyL~=[] + Out3=Clipindomain(Out3,BdyL) + end; + IMPLICITDATA=Out3; + Out4=Cuspsplitpers(Out3,Fd,Eps); + CUSPDATA=Out4; + CCUSPPT=CUSPSPLITPT; + Out5=Borderrawdata(Out4,Fd,Np,Eps); +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfcutdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfcutdata.bin Binary files differnew file mode 100644 index 00000000..c7f1f6f1 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfcutdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfcutdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfcutdata.sci new file mode 100755 index 00000000..5a15d61c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfcutdata.sci @@ -0,0 +1,105 @@ +// 08.09.09 +// 08.09.19 +// 08.09.20 +// 08.09.24 +// 08.10.09 +// 08.10.10 +// 13.10.21 ( __ added to varibles ) + +function EkL__=Sfcutdata(varargin) + Nargs__=length(varargin); + Fd__=varargin(1); + CutD__=varargin(2); + Np__=[50,50]; + if Nargs__>=3 + Tmp__=varargin(3); + if type(Tmp__)==1 & length(Tmp__)==1 + Np__=[Tmp__,Tmp__]; + end; + end; + Tmp__=Mixop(2,Fd__); + K__=mtlb_findstr(Tmp__,'='); + Xname__=part(Tmp__,1:K__-1); + Tmp__=Mixop(3,Fd__); + K__=mtlb_findstr(Tmp__,'='); + Yname__=part(Tmp__,1:K__-1); + Tmp__=Mixop(1,Fd__); + K__=mtlb_findstr(Tmp__,'='); + if K__~=[] + Zname__=part(Tmp__,1:K__-1); + else + Tmp__=Mixop(4,Fd__); + K__=mtlb_findstr(Tmp__,'='); + Zname__=part(Tmp__,1:K__-1); + end; + Fd__L=Fullformfunc(Fd__); + Xf__=Mixop(2,Fd__L); + Yf__=Mixop(3,Fd__L); + Zf__=Mixop(4,Fd__L); + Tmp__=Mixop(5,Fd__L); + K__=mtlb_findstr(Tmp__,'='); + Uname__=part(Tmp__,1:K__-1); + Urg__=evstr(part(Tmp__,K__+1:length(Tmp__))); + Tmp__=Mixop(6,Fd__L); + K__=mtlb_findstr(Tmp__,'='); + Vname__=part(Tmp__,1:K__-1); + Vrg__=evstr(part(Tmp__,K__+1:length(Tmp__))); + Umin__=Urg__(1); Umax=Urg__(2); + Vmin__=Vrg__(1); Vmax=Vrg__(2); + if Mixtype(CutD__)~=1 + V1__=Mixop(1,CutD__); + Tmp__=Mixop(2,CutD__); + if length(Tmp__)>1 + D__=V1__(1)*Tmp__(1)+V1__(2)*Tmp__(2)+V1__(3)*Tmp__(3); + else + D__=Tmp__; + end; + Tmp__=string(V1__(1))+'*'+Xname__+'+'; + Tmp__=Tmp__+string(V1__(2))+'*'+Yname__+'+'; + Tmp__=Tmp__+string(V1__(3))+'*'+Zname__+'-'; + Eq__=Tmp__+string(D__); + elseif type(CutD__)==1 + V1__=CutD__(1:3); + D__=CutD__(4); + Tmp__=string(V1__(1))+'*'+Xname__+'+'; + Tmp__=Tmp__+string(V1__(2))+'*'+Yname__+'+'; + Tmp__=Tmp__+string(V1__(3))+'*'+Zname__+'+'; + Eq__=Tmp__+string(D__); + else + K__=mtlb_findstr(CutD__,'='); + if K__>0 + Tmp__1=part(CutD__,1:K__-1); + Tmp__2=part(CutD__,K__+1:length(CutD__)); + Eq__=Tmp__1+'-('+Tmp__2+')'; + else + Eq__=CutD__; + end; + end; + Tmp__=strsubst(Eq__,Xname__,'('+Xf__+')'); + Tmp__=strsubst(Tmp__,Yname__,'('+Yf__+')'); + Uveq__=strsubst(Tmp__,Zname__,'('+Zf__+')'); + Tmp__1=Mixop(5,Fd__L); + Tmp__2=Mixop(6,Fd__L); + CutuvL__=Implicitplot(Uveq__,Tmp__1,Tmp__2,Np__); + EkL__=[]; + for I__=1:Mixlength(CutuvL__) + Out__1=Mixop(I__,CutuvL__); + Out__2=[]; + for J__=1:size(Out__1,1) + Tmp__1=Out__1(J__,1); + Tmp__2=Out__1(J__,2); + Tmp__=strsubst(Xf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Xv__=evstr(Tmp__); + Tmp__=strsubst(Yf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Yv__=evstr(Tmp__); + Tmp__=strsubst(Zf__,Uname__,'('+string(Tmp__1)+')'); + Tmp__=strsubst(Tmp__,Vname__,'('+string(Tmp__2)+')'); + Zv__=evstr(Tmp__); + Out__2=[Out__2,[Xv__,Yv__,Zv__]]; + end; + Tmp__=Spaceline(Out__2); + EkL__=Mixadd(EkL__,Tmp__); + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfcutoffparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfcutoffparadata.bin Binary files differnew file mode 100644 index 00000000..b6341637 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfcutoffparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfcutoffparadata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfcutoffparadata.sci new file mode 100755 index 00000000..0e4c6a5b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfcutoffparadata.sci @@ -0,0 +1,12 @@ +// 08.09.1 +// 10.02.17 + +function Out=Sfcutoffparadata(varargin) + Ms=list('hidden','para'); + for I=1:length(varargin) + Tmp=varargin(I); + Ms=Mixjoin(Ms,list(Tmp)); + end; + Out=Makesfcutoffdata(Ms); +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfcutoffpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfcutoffpersdata.bin Binary files differnew file mode 100644 index 00000000..636f24b3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfcutoffpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfcutoffpersdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfcutoffpersdata.sci new file mode 100755 index 00000000..c10cdb8d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfcutoffpersdata.sci @@ -0,0 +1,12 @@ +// 08.09.21 +// 10.02.17 + +function Out=Sfcutoffpersdata(varargin) + Ms=list('hidden','pers'); + for I=1:length(varargin) + Tmp=varargin(I); + Ms=Mixjoin(Ms,list(Tmp)); + end; + Out=Makesfcutoffdata(Ms); +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfcutoffrawparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfcutoffrawparadata.bin Binary files differnew file mode 100644 index 00000000..2b4fd676 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfcutoffrawparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfcutoffrawparadata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfcutoffrawparadata.sci new file mode 100755 index 00000000..546f66d8 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfcutoffrawparadata.sci @@ -0,0 +1,12 @@ +// 08.09.19 +// 10.02.17 + +function Out=Sfcutoffrawparadata(varargin) + Ms=list('raw','para'); + for I=1:length(varargin) + Tmp=varargin(I); + Ms=Mixjoin(Ms,list(Tmp)); + end; + Out=Makesfcutoffdata(Ms); +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfcutoffrawpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfcutoffrawpersdata.bin Binary files differnew file mode 100644 index 00000000..08ac4249 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfcutoffrawpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfcutoffrawpersdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfcutoffrawpersdata.sci new file mode 100755 index 00000000..e5a387f5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfcutoffrawpersdata.sci @@ -0,0 +1,12 @@ +// 08.09.21 +// 10.02.17 + +function Out=Sfcutoffrawpersdata(varargin) + Ms=list('raw','pers'); + for I=1:length(varargin) + Tmp=varargin(I); + Ms=Mixjoin(Ms,list(Tmp)); + end; + Out=Makesfcutoffdata(Ms); +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfparadata.bin Binary files differnew file mode 100644 index 00000000..f1b9d960 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfparadata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfparadata.sci new file mode 100755 index 00000000..5aa4e5e5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfparadata.sci @@ -0,0 +1,17 @@ +// 08.08.16 + +function Out=Sfparadata(varargin) + Nargs=length(varargin); + Fd=varargin(1); + Ndu=25 ; Ndv=25; Np=[50,50]; + if Nargs>=3 + Ndu=varargin(2); + Ndv=varargin(3); + end; + if Nargs>=4 + Np=varargin(4); + end; + Tmp=Sf3data(Fd,Ndu,Ndv,Np); + Out=Projpara(Tmp); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfpersdata.bin Binary files differnew file mode 100644 index 00000000..bea54bf3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfpersdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfpersdata.sci new file mode 100755 index 00000000..ecc63e41 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sfpersdata.sci @@ -0,0 +1,17 @@ +// 08.08.15 + +function Out=Sfpersdata(varargin) + Nargs=length(varargin); + Fd=varargin(1); + Ndu=25 ; Ndv=25; Np=[50,50]; + if Nargs>=3 + Ndu=varargin(2); + Ndv=varargin(3); + end; + if Nargs>=4 + Np=varargin(4); + end; + Tmp=Sf3data(Fd,Ndu,Ndv,Np); + Out=Projpers(Tmp); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Shade.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Shade.bin Binary files differnew file mode 100644 index 00000000..48ba5b55 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Shade.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Shade.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Shade.sci new file mode 100755 index 00000000..ec4fa716 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Shade.sci @@ -0,0 +1,93 @@ +// +// 08.05.22 +// 09.12.25 +// 17.01.09 (available colorname or colorcode as 2nd arg) + +function Shade(varargin) + global Wfile FID MilliIn; + Nargs=length(varargin); + Iroflg=0; + Kosa=1; + if Nargs>1 + Iro=varargin(Nargs); + if type(Iro)==10 + Iroflg=1; + if length(strchr(Iro,"{"))>0 + Str="{\color"+Iro; + else + Str="{\color{"+Iro+"}"; + end; + else + if length(Iro)==1 + Kosa=Iro; + else + Iroflg=1; + if length(Iro)==4 + Str='{\color[cmyk]{'; + else + if length(Iro)==3 + Str='{\color[rgb]{'; + end; + end; + for J=1:length(Iro) + Str=Str+string(Iro(J)); + if J<length(Iro) + Str=Str+','; + end + end + Str=Str+'}'; + end; + end; + if Iroflg==1 + if Wfile=='default' + mprintf('%s\n',Str+'%'); + else + mfprintf(FID,'%s\n',Str+'%'); + end; + end; + end; + Tmp=varargin(1); + Data=Kyoukai(Tmp); + for I=1:length(Data) + PL=Op(I,Data); + Mojisu=0; + for J=1:size(PL,1) + P=Doscaling(PL(J,:)); + X=string(round(MilliIn*P(1))); + Y=string(-round(MilliIn*P(2))); + Str='\special{pa '+X+' '+Y+'}'; + if Wfile=='default' + mprintf('%s',Str); + else + mfprintf(FID,'%s',Str); + end + Mojisu=Mojisu+length(Str); + if Mojisu>80 + if Wfile=='default' + mprintf('%s\n','%'); + else + mfprintf(FID,'%s\n','%'); + end + Mojisu=0; + end + end + Str1='\special{sh '+string(Kosa)+'}'; + Str2='\special{ip}%'; + if Wfile=='default' + mprintf('%s',Str1); + mprintf('%s\n',Str2); + else + mfprintf(FID,'%s',Str1); + mfprintf(FID,'%s\n',Str2); + end + end + if Iroflg==1 + Str='}%'; + Fmt='%s\n'; + if Wfile=='default' + mprintf(Fmt,Str); + else + mfprintf(FID,Fmt,Str); + end; + end; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Skeleton2data.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Skeleton2data.bin Binary files differnew file mode 100644 index 00000000..e93fdf6e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Skeleton2data.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Skeleton2data.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Skeleton2data.sci new file mode 100755 index 00000000..4eec31cf --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Skeleton2data.sci @@ -0,0 +1,71 @@ +// 08.08.14 +// 08.10.16 +// 09.06.13 + +function Out=Skeleton2data(varargin) + global MilliIn; + Nargs=length(varargin); + Out=[]; + Tmp=varargin(1); + if Mixtype(Tmp)==1 + ObjL=MixS(Tmp); + elseif Mixtype(Tmp)==2 + ObjL=Tmp; + else + ObjL=[]; + for I=1:Mixlength(Tmp) + Tmp1=Mixop(I,Tmp); + if Mixtype(Tmp1)==1 + ObjL=Mixadd(ObjL,Tmp1); + else + ObjL=Mixjoin(ObjL,Tmp1); + end; + end; + end; + Tmp=varargin(2); + if Mixtype(Tmp)==1 + PltL=MixS(Tmp); + elseif Mixtype(Tmp)==2 + PltL=Tmp + else + PltL=[]; + for I=1:Mixlength(Tmp) + Tmp1=Mixop(I,Tmp); + if Mixtype(Tmp1)==1 + PltL=Mixadd(PltL,Tmp1); + else + PltL=Mixjoin(PltL,Tmp1); + end; + end; + end; + R=0.075*1000/2.54/MilliIn; + if Nargs>2 + R=R*varargin(3); + end; + Eps2=0.01; + if Nargs>3 + Eps2=varargin(4); + end; + Obj2L=[]; + for I=1:Mixlength(ObjL) + Curve=Mixop(I,ObjL); + Obj2=[]; + for J=1:size(Curve,1) + P=Curve(J,:); + Obj2=[Obj2;P,-1]; + end; + Obj2L=Mixadd(Obj2L,Obj2); + end; + Plt2L=[] + for I=1:Mixlength(PltL) + Curve=Mixop(I,PltL); + Plt2=[]; + for J=1:size(Curve,1) + P=Curve(J,:); + Plt2=[Plt2;P,0]; + end; + Plt2L=Mixadd(Plt2L,Plt2); + end; + Out=Makeskeletondata(Obj2L,Plt2L,R,Eps2); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Skeletonpara3data.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Skeletonpara3data.bin Binary files differnew file mode 100644 index 00000000..1d3bd14f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Skeletonpara3data.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Skeletonpara3data.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Skeletonpara3data.sci new file mode 100755 index 00000000..5914d47a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Skeletonpara3data.sci @@ -0,0 +1,48 @@ +// 09.09.25 +// 11.12.12 +// 15.06.14 +// 15.10.19 + +function Out=Skeletonpara3data(varargin) + global MilliIn; + Eps=10^(-4); // 15.06.14 + Nargs=length(varargin); + Out=[]; + ObjL=Flattenlist(varargin(1)); + Plt3L=Flattenlist(varargin(2)); + R=0.075*1000/2.54/MilliIn; + if Nargs>2 + R=R*varargin(3); + end; + Eps2=0.05; // changed at 08.10.16 + if Nargs>3 + Eps2=varargin(4); + end; + Plt2L=list(); + for I=1:Mixlength(Plt3L) + Plt2L($+1)=ProjcoordCurve(Plt3L(I)); + end; + Out=list(); + for I=1:length(ObjL) + Obj3=ObjL(I); + Tmp=ProjcoordCurve(Obj3); + Data=Makeskeletondata(Mix(Tmp),Plt2L,R,Eps2); + for J=1:length(Data) + Gd=Data(J); + if size(Gd,1)==1 // 15.10.19 + continue; + end; + if norm(Ptcrv(1,Gd)-Ptcrv(2,Gd))<Eps // 15.06.14 + continue + end; + PtD=[]; + for J=1:size(Gd,1) + Tmp=Gd(J,:); + Tmp1=Invparapt(Tmp,Obj3); + Tmp1=Mixop(1,Tmp1); + PtD=[PtD;Tmp1]; + end; + Out($+1)=PtD; + end; + end; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Skeletonparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Skeletonparadata.bin Binary files differnew file mode 100644 index 00000000..f0879401 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Skeletonparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Skeletonparadata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Skeletonparadata.sci new file mode 100755 index 00000000..1270f789 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Skeletonparadata.sci @@ -0,0 +1,29 @@ +// 08.07.13 +// 08.08.08 +// 08.10.16 +// 11.12.12 (Flattenlist) + +function Out=Skeletonparadata(varargin) + global MilliIn; + Nargs=length(varargin); + Out=[]; + ObjL=Flattenlist(varargin(1)); + Plt3L=Flattenlist(varargin(2)); + R=0.075*1000/2.54/MilliIn; + if Nargs>2 + R=R*varargin(3); + end; + Eps2=0.05; // changed at 08.10.16 + if Nargs>3 + Eps2=varargin(4); + end; + Obj2L=list(); + for I=1:length(ObjL) + Obj2L($+1)=ProjcoordCurve(ObjL(I)); + end; + Plt2L=list(); + for I=1:length(Plt3L) + Plt2L($+1)=ProjcoordCurve(Plt3L(I)); + end; + Out=Makeskeletondata(Obj2L,Plt2L,R,Eps2); +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Skeletonpers3data.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Skeletonpers3data.bin Binary files differnew file mode 100644 index 00000000..d382a6b0 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Skeletonpers3data.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Skeletonpers3data.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Skeletonpers3data.sci new file mode 100755 index 00000000..57dde938 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Skeletonpers3data.sci @@ -0,0 +1,41 @@ +// 09.09.25 +// 11.12.12 + +function Out=Skeletonpers3data(varargin) + global MilliIn; + Nargs=length(varargin); + Out=[]; + ObjL=Flattenlist(varargin(1)); + Plt3L=Flattenlist(varargin(2)); + R=0.075*1000/2.54/MilliIn; + if Nargs>2 + R=R*varargin(3); + end; + Eps2=0.05; // changed at 08.10.16 + if Nargs>3 + Eps2=varargin(4); + end; + Plt2L=[]; + for I=1:Mixlength(Plt3L) + Tmp=CameracoordCurve(Mixop(I,Plt3L)); + Plt2L=Mixadd(Plt2L,Tmp); + end; + Out=list(); + for I=1:length(ObjL) + Obj3=ObjL(I); + Tmp=CameracoordCurve(Obj3); + Data=Makeskeletonpersdata(Mix(Tmp),Plt2L,R,Eps2); + for J=1:length(Data) + Gd=Data(J); + PtD=[]; + for J=1:size(Gd,1) + Tmp=Gd(J,:); + Tmp1=Invperspt(Tmp,Obj3); + Tmp1=Mixop(1,Tmp1); + PtD=[PtD;Tmp1]; + end; + Out($+1)=PtD; + end; + end; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Skeletonpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Skeletonpersdata.bin Binary files differnew file mode 100644 index 00000000..03417429 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Skeletonpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Skeletonpersdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Skeletonpersdata.sci new file mode 100755 index 00000000..c91e73cf --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Skeletonpersdata.sci @@ -0,0 +1,29 @@ +// 08.08.14 +// 08.10.16 +// 11.12.12 + +function Out=Skeletonpersdata(varargin) + global MilliIn; + Nargs=length(varargin); + Out=[]; + ObjL=Flattenlist(varargin(1)); + Plt3L=Flattenlist(varargin(2)); + R=0.075*1000/2.54/MilliIn; + if Nargs>2 + R=R*varargin(3); + end; + Eps2=0.05; // changed at 08.10.16 + if Nargs>3 + Eps2=varargin(4); + end; + Obj2L=list(); + for I=1:length(ObjL) + Obj2L($+1)=CameracoordCurve(ObjL(I)); + end; + Plt2L=list(); + for I=1:length(Plt3L) + Plt2L($+1)=CameracoordCurve(Plt3L(I)); + end; + Out=Makeskeletonpersdata(Obj2L,Plt2L,R,Eps2); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Spacecurve.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Spacecurve.bin Binary files differnew file mode 100644 index 00000000..bacaa702 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Spacecurve.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Spacecurve.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Spacecurve.sci new file mode 100755 index 00000000..077a88cb --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Spacecurve.sci @@ -0,0 +1,83 @@ +// 08.07.11 +// 09.05.27 +// 09.06.02 +// 09.12.31 (gsort) +// 13.10.21 ( __ added to varibles ) +// 16.08.20 (N changed to devided number ) +// 16.12.13 ( in case of T1=T2) + +function P__=Spacecurve(varargin) + Eps__=10^(-5); + Nargs__=length(varargin); + Fnstr__=varargin(1); + Rgstr__=varargin(2); + Range__=[0,2*%pi]; + N=50; // Numpoints + E=[]; // Exclusions + D=%inf; // Discont (Changed) + for I__=3:Nargs__ + Tmp__=varargin(I__); + K__=mtlb_findstr(Tmp__,'='); + Tmp1__=strsplit(Tmp__,[K__-1,K__]); + Tmp2__=ascii(Tmp1__(1,1)); + Lhs__=char(Tmp2__(1)); + Str__=Lhs__+'='+Tmp1__(3,1); + execstr(Str__); + end; + K__=mtlb_findstr(Rgstr__,'='); + if K__~=[] + Tmp__=strsplit(Rgstr__,[K__-1,K__]); + Vname__=Tmp__(1,1); + Rng__=evstr(Tmp__(3,1)); + else + Vname__=Rgstr__; + Rng__=[XMIN,XMAX]; + end + T1__=Rng__(1); T2__=Rng__(2); + Dt__=(T2__-T1__)/N; // 16.08.20 + Str__=mtlb_strrep(Fnstr__,Vname__,'t__'); + if abs(Dt__)<Eps__ then // 16.12.13 + t__=T1__; + P__=evstr(Str__); + return; + end; + P__=[]; + E=gsort(E); + E=E(length(E):-1:1); + E=[E,%inf]; + Tmp__=gsort(E); + E=Tmp__(length(Tmp__):-1:1); + Ke__=1; + for t__=T1__:Dt__:T2__ + Pa__=[]; + if t__-E(Ke__)<-Eps__ + Pa__=evstr(Str__); + end + if abs(t__-E(Ke__))<=Eps__ + if P__~=[] & P__(size(P__,1),:)~=[%inf,%inf,%inf] + Pa__=[%inf,%inf,%inf]; + end + end + if t__-E(Ke__)>Eps__ + Pa__=evstr(Str__); + Ke__=Ke__+1; + end + if Pa__~=[] + if Pa__(1)==%inf + P__=[P__;Pa__] + elseif P__==[] + P__=[Pa__]; + else + Tmp__=P__(size(P__,1),:); + if Tmp__(1)==%inf + P__=[P__;Pa__]; + elseif norm(Tmp__-Pa__)<D + P__=[P__;Pa__]; + else + P__=[P__;%inf,%inf,%inf;Pa__]; + end + end + end + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Spaceline.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Spaceline.bin Binary files differnew file mode 100644 index 00000000..b5252573 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Spaceline.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Spaceline.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Spaceline.sci new file mode 100755 index 00000000..9fe33c06 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Spaceline.sci @@ -0,0 +1,27 @@ +// 08.07.11 + +function Z=Spaceline(varargin) + Z=[]; + for I=1:length(varargin) + Data=varargin(I); + if Mixtype(Data)==1 + for J=1:3:size(Data,2) + Tmp=Data(J:J+2); + Z=[Z;Tmp]; + end; + continue; + end; + if Mixtype(Data)==3 + Tmp=[]; + for I=1:Mixlength(Data); + Tmp=Mixjoin(Tmp,Mixop(I,Data)); + end; + Data=Tmp; + end; + for J=1:Mixlength(Data) + Tmp=Mixop(J,Data); + Z=[Z;Tmp]; + end; + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Splinedata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Splinedata.bin Binary files differnew file mode 100644 index 00000000..c9477a3a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Splinedata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Splinedata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Splinedata.sci new file mode 100755 index 00000000..a4de85ea --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Splinedata.sci @@ -0,0 +1,108 @@ +// 08.05.28 +// 08.05.29 +// 09.06.13 +// 10.04.24 +// 10.04.25 +// 11.01.07 ( major changed ) + +function OutL=Splinedata(varargin) + global SplinePt; + Nargs=length(varargin); + Eps=10^(-3); + PL=varargin(1); + if type(PL)==10 // 100425 + Fname=PL; + PL=Readtextdata(Fname); + else + if size(PL,1)==1 + PL=matrix(PL,2,length(PL)/2); + PL=PL'; + end; + end; + if size(PL,2)==3 + Flg3=1; + else + Flg3=0; + end; + PLL=Dividegraphics(PL); + N=50; + C=[]; + for I=2:Nargs + Tmp=varargin(I); + if type(Tmp)~=10 continue; end + if mtlb_findstr(Tmp,'=')~=[] + execstr(Tmp); + else + Tmp1=Strop(1,Tmp); + if Tmp1=='C' | Tmp1=='c' + C=1:length(PLL); + end; + end; + end; + Cflg=zeros(1,length(PLL)); + for J=1:length(C) + K=C(J); + Cflg(K)=1; + end; + if length(N)>1 + if type(Nj)==1 + Nj=N; + else + Nj=[]; + for J=1:length(N) + Nj(J)=N(J); + end; + end; + else + Tmp1=[]; + for J=1:length(PLL) + Tmp1(J)=size(PLL(J),1); + end; + MxP=max(Tmp1); + Nj=[]; + for J=1:length(PLL) + Tmp=size(PLL(J),1); + Tmp1=round(N/MxP*(Tmp-1)); + Nj(J)=Tmp1; + end; + end; + OutL=list(); + for J=1:length(PLL) // + PL=PLL(J); + if Cflg(J)==1 + if norm(PL(1,:)-PL(size(PL,1),:))>Eps + PL=[PL;PL(1,:)]; + Nj(J)=round(N/MxP*size(PL,1)); + else + PL(size(PL,1),:)=PL(1,:); + end + end; + SplinePt=PL; + Tn=1:size(PL,1); + Xn=PL(:,1)'; + Yn=PL(:,2)'; + if Flg3==1 Zn=PL(:,3)';end; + if Cflg(J)==0 + Dxn=splin(Tn,Xn); + Dyn=splin(Tn,Yn); + if Flg3==1 Dzn=splin(Tn,Zn); end; + else + Dxn=splin(Tn,Xn,'periodic'); + Dyn=splin(Tn,Yn,'periodic'); + if Flg3==1 Dzn=splin(Tn,Zn,'periodic'); end; + end + T=linspace(1,size(PL,1),Nj(J)); + X=interp(T,Tn,Xn,Dxn); + Y=interp(T,Tn,Yn,Dyn); + if Flg3==1 Z=interp(T,Tn,Zn,Dzn); end; + if Flg3==1 + Out=[X',Y',Z']; + else + Out=[X',Y']; + end; + OutL($+1)=Out; + end; + if length(OutL)==1 + OutL=OutL(1); + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Strop.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Strop.bin Binary files differnew file mode 100644 index 00000000..e8876298 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Strop.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Strop.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Strop.sci new file mode 100755 index 00000000..8f4da94d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Strop.sci @@ -0,0 +1,11 @@ +function C=Strop(Num,Str) + N=length(Num); + L=ascii(Str); + C=''; + for I=1:N + K=Num(I); + Tmp=char(L(K)); + C=C+Tmp; + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Subs.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Subs.bin Binary files differnew file mode 100644 index 00000000..5f1b02bc --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Subs.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Subs.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Subs.sci new file mode 100755 index 00000000..785b605c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Subs.sci @@ -0,0 +1,21 @@ +// +// 08.06.04 + +function V=Subs(SbstrL,StrF) + Str=StrF; + if type(StrF)==2 + Str=pol2str(StrF); + end + V=StrF; + for N=1:size(SbstrL,2) + Sbstr=SbstrL(1,N); + I=mtlb_findstr(Sbstr,'='); + Tmp=strsplit(Sbstr,I); + SbA=Tmp(1); + SbA=Op(1:length(SbA)-1,SbA); + SbB=Tmp(2); + V=strsubst(V,SbA,SbB); + end + V=evstr(V); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sumfun.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sumfun.bin Binary files differnew file mode 100644 index 00000000..cd35f9cc --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sumfun.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sumfun.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sumfun.sci new file mode 100755 index 00000000..55fdfd0f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Sumfun.sci @@ -0,0 +1,65 @@ +// 08.05.30 +// 08.05.31 +// 08.06.03 +// 13.10.21 (__ added to variables ) + +function PL__=Sumfun(varargin) + global XMIN XMAX YMIN YMAX + Nargs__=length(varargin); + Const__=0; + Addstr__='A__=0'; + J__=1; + Tmp__=varargin(1); + if type(Tmp__)==1 + Const__=Tmp__; + J__=J__+1; + end + if type(Tmp__)==10 + Tmp1__=Strop(length(Tmp__),Tmp__); + if Tmp1__=='+' + Addstr__='A__='+Strop(1:length(Tmp__)-1,Tmp__); + J__=J__+1 + end + end + Fnstr__=varargin(J__); + Krange__=varargin(J__+1); + Xrange__=varargin(J__+2); + N=50; + for I__=J__+3:Nargs__ + Tmp__=varargin(I__); + execstr(Tmp__); + end + Tmp__=mtlb_findstr(Krange__,'='); + Kname__=Strop(1:Tmp__-1,Krange__); + Tmp1__=Strop(Tmp__+1:length(Krange__),Krange__); + Tmp1__='Krg__='+Tmp1__; + execstr(Tmp1__); + Tmp__=mtlb_findstr(Xrange__,'='); + if Tmp__==[] + Xname__=Xrange__; + Xrg__=[XMIN,XMAX]; + else + Xname__=Strop(1:Tmp__-1,Xrange__); + Tmp1__=Strop(Tmp__+1:length(Xrange__),Xrange__); + Tmp1__='Xrg__='+Tmp1__; + execstr(Tmp1__); + end + Dx__=(Xrg__(2)-Xrg__(1))/N; + PL__=[]; + I__=0; + while I__<=N + Tmp__=Xname__+'=Xrg__(1)+I__*Dx__'; + execstr(Tmp__); + J__=Krg__(1); + execstr(Addstr__); + Y__=Const__+A__; + while J__<=Krg__(length(Krg__)) + Tmp__=Kname__+'=J__'; + execstr(Tmp__); + execstr('Y__=Y__+'+Fnstr__); + J__=J__+1; + end + PL__=[PL__;Xrg__(1)+I__*Dx__,Y__]; + I__=I__+1; + end +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Symb3data.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Symb3data.bin Binary files differnew file mode 100644 index 00000000..7abbf37d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Symb3data.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Symb3data.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Symb3data.sci new file mode 100644 index 00000000..0d649872 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Symb3data.sci @@ -0,0 +1,30 @@ +// s : 2014.08.25 + +function Out=Symb3data(Moji,Size,Kaiten,NV,Pos) + if type(Moji)==10 then + Tmp=Symbdata(Moji); + GY1=Tmp(2) + else + GY1=Moji + end + GY1=Scaledata(GY1,Size,Size); + GY1=Rotatedata(GY1,Kaiten*%pi/180); + A=NV(1); B=NV(2); C=NV(3); + if A^2+B^2==0 then + E1=[1,0,0]; + E2=[0,1,0]; + else + E1=[B,-A,0]; + E2=[-A*C,-B*C,A^2+B^2]; + D=det([E1;E2;NV]); + if D<0 then + E1=-E1 + end + E1=E1/norm(E1); + E2=E2/norm(E2); + end + deff("Out=Em(X,Y)","Out=[E1(1)*X+E2(1)*Y,E1(2)*X+E2(2)*Y,E1(3)*X+E2(3)*Y]"); + GY1=Embed(GY1,Em); + GY1=Translate3data(GY1,Pos); + Out=Flattenlist(GY1); +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Symbdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Symbdata.bin Binary files differnew file mode 100644 index 00000000..ebda20ac --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Symbdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Symbdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Symbdata.sci new file mode 100644 index 00000000..d63a3470 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Symbdata.sci @@ -0,0 +1,67 @@ +// s : 2014.08.25 +// 14.09.07 + +function Out=Symbdata(Moji) + ML=list(); Sp=[]; CC=[]; + if Moji=="x" then + M1=[-0.042,0.035;-0.027,0.045;-0.01,0.045;0.004,0.03;0.00,0.00;... + -0.004,-0.03;0.01,-0.045;0.027,-0.045;0.042,-0.035]; + M2=[0.055,0.035;0.043,0.045;0.027,0.045;0.01,0.03;0.00,0.00;... + -0.01,-0.03;-0.027,-0.045;-0.043,-0.045;-0.055,-0.035]; + ML=list(M1,M2); + Sp=[100,100]; + CC=[0,0]; + end; + if Moji=="y" then + M1=[-0.06,0.06;... + -0.045,0.080;... + -0.03,0.080;... + -0.022,0.065;... + -0.032,0.035;... + -0.035,-0.01;... + 0.007,-0.008;... + 0.037,0.04;... + 0.05,0.09]; + M2=[0.05,0.09;... + 0.037,0.04;... + 0.025,-0.00;... + 0.015,-0.035;... + -0.000,-0.055;... + -0.025,-0.062;... + -0.05,-0.045]; + ML=list(M1,M2); + Sp=[100,100]; + CC=[0,0]; + end + if Moji=="z" then + M1=[-0.035,0.035;-0.023,0.045;-0.01,0.045;... + 0.01,0.04;0.035,0.04;0.042,0.045]; + M2=[0.042,0.045;0.00,0.00;-0.042,-0.045]; + M3=[-0.042,-0.045;-0.035,-0.04;-0.01,-0.04;... + 0.01,-0.045;0.023,-0.045;0.035,-0.035]; + ML=list(M1,M2,M3); + Sp=[100,0,100]; + CC=[0,0,0]; + end + Out1=list() + Out2=list() + for J=1:length(ML) + M=ML(J); + N=Sp(J); + for K=1:size(M,1) + P=M(K,:) + Out1($+1)=P + end + if N>0 then + if CC(J)==0 then + S=Splinedata(M,"N="+string(N)) + else + S=Splinedata(M,"N="+string(N),"C") + end + else + S=M + end; + Out2($+1)=S + end + Out=list(Out1,Out2) +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Tabledata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Tabledata.bin Binary files differnew file mode 100644 index 00000000..57730f7f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Tabledata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Tabledata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Tabledata.sci new file mode 100755 index 00000000..621f6256 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Tabledata.sci @@ -0,0 +1,130 @@ +// 09.11.26 +// 09.12.06 +// 09.12.25 +// 10.01.12 +// 10.01.13 +// 10.03.28 +// 10.03.30 +// 13.05.03 Domain can be omitted + +function Out=Tabledata(varargin) +// 2013.05.01 Domain is optional. + Eps=0.001; + Tmp=varargin(1); // 130502 from + if type(Tmp)==1 + Domain=varargin(1); + VL=varargin(2); + HL=varargin(3); + else + Domain=[-1,-1]; + VL=varargin(1); + HL=varargin(2); + end; // 130502 upto + Hsize=Domain(1); + SvL=list(0); + S=0; + for I=1:length(VL) + Tmp=VL(I); + S=S+Tmp(1); + Tmp(1)=S; + SvL($+1)=Tmp; + end; + if Hsize>S + SvL($+1)=Hsize; + end; + Hsize=Op(1,SvL(length(SvL))); + Vsize=Domain(2); + ShL=list(0); + S=0; + for I=1:length(HL) + Tmp=HL(I); + S=S+Tmp(1); + Tmp(1)=S; + ShL($+1)=Tmp; + end; + if Vsize>S + ShL($+1)=Vsize; + end; + Vsize=Op(1,ShL(length(ShL))); + Marw=0; Mare=0; Mars=0; Marn=0; + if length(Domain)>2 + Marw=Domain(3); + Mare=Domain(4); + end; + if length(Domain)>4 + Marn=Domain(5); + Mars=Domain(6); + end; + Setwindow([-Marw,Hsize+Mare],[-Mars,Vsize+Marn]); + Tmp=Framedata([Eps,Hsize-Eps],[Eps,Vsize-Eps]); + Gdata=list(Tmp); + Tmp=-Marw; + Hdata=list(Listplot([[Tmp,-Mars],[Tmp,Vsize+Marn]])); + for I=1:length(SvL) // 10.03.30 + Data=SvL(I); + X=Data(1); + if length(Data)==1 + Y1=0; + Y2=Vsize; + G=Listplot([X,Y1],[X,Y2]); + else + G=[]; + for J=2:2:length(Data) + Y1=Vsize-Op(1,ShL(Data(J))); // 10.03.30 + Y2=Vsize-Op(1,ShL(Data(J+1))); + Tmp=Listplot([[X,Y1],[X,Y2]]); + G=[G;%inf,%inf;Tmp]; + end; + G=G(2:size(G,1),:); + end; + Hdata($+1)=G; + end; + Tmp=Hsize+Mare; + Tmp1=Listplot([[Tmp,-Mars],[Tmp,Vsize+Marn]]); + Hdata($+1)=Tmp1; + Tmp=Vsize+Marn; + Vdata=list(Listplot([[-Marw,Tmp],[Hsize+Mare,Tmp]])); + for I=1:length(ShL) + Data=ShL(I); + Y=Vsize-Data(1); + if length(Data)==1 + X1=0; + X2=Hsize; + G=Listplot([X1,Y],[X2,Y]); + else + G=[]; + for J=2:2:length(Data) + X1=Op(1,SvL(Data(J))); // 10.03.30 + X2=Op(1,SvL(Data(J+1))); + Tmp=Listplot([X1,Y],[X2,Y]); + G=[G;%inf,%inf;Tmp]; + end; + G=G(2:size(G,1),:); + end; + Vdata($+1)=G; + end; + Tmp=Listplot([[-Marw,-Mars],[Hsize+Mare,-Mars]]); + Vdata($+1)=Tmp; + Tmp1=Mixsub(3:(length(Hdata)-2),Hdata); + Tmp2=Mixsub(3:(length(Vdata)-2),Vdata); + Gdata=Mixjoin(Gdata,Tmp1,Tmp2); + Hind=2:(1+length(Tmp1)); + Vind=(2+length(Tmp1)):(1+length(Tmp1)+length(Tmp2)); + G=Gdata(1); + P1=Ptsw(G); P2=Ptnw(G); + Q1=Ptse(G); Q2=Ptne(G); + Tmp1=list(Listplot([P1,P2]),Listplot([Q1,Q2])); + P1=Ptnw(G); P2=Ptne(G); + Q1=Ptsw(G); Q2=Ptse(G); + Tmp2=list(Listplot([P1,P2]),Listplot([Q1,Q2])); + Tmp3=Framedata(); + Out=list(Gdata,Hind,Vind,Tmp1,Tmp2,Tmp3); +endfunction; + +function Out=Dividetable(Tb) + G=Tb(1); + Gw=G(1); + Gt=Mixsub(Tb(2),G); + Gy=Mixsub(Tb(3),G); + Out=list(Gw,Gt,Gy) +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texcom.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texcom.bin Binary files differnew file mode 100644 index 00000000..c702d4e8 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texcom.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texcom.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texcom.sci new file mode 100755 index 00000000..9b848315 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texcom.sci @@ -0,0 +1,41 @@ +// +// 09,12.05 +// 09.12.06 +// 09.12.07 +// 09.12.20 + +function Texcom(Meirei) + global Wfile FID; + if Meirei=='\thinlines' + Setpen(1); + return + end + if Meirei=='\thicklines' + Setpen(2); + return + end + if Meirei=='\Thicklines' + Setpen(3); + return + end; + + if Meirei=='' // 09.12.07 + Tmp=[]; + else + Tmp=mtlb_findstr(Meirei,'newline'); + end; + if length(Tmp)>0 + if Wfile=='default' + mprintf('%s\n',''); + else + mfprintf(FID,'%s\n',''); + end; + return; + end; + if Wfile=='default' + mprintf('%s%s\n',Meirei,'%'); + else + mfprintf(FID,'%s%s\n',Meirei,'%'); + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texctr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texctr.bin Binary files differnew file mode 100644 index 00000000..3f2db49a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texctr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texctr.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texctr.sci new file mode 100644 index 00000000..2a8b08ca --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texctr.sci @@ -0,0 +1,15 @@ +// +// 2010.05.15 + +function Out=Texctr(N) + if type(N)==1 + Alpha='abcdefghijklmnopqrstuvwxyz'; + Out='ketpicctr'+part(Alpha,N); + else + if part(N,1)=='\' + Out=part(N,2:length(N)); + else + Out=N; + end; + end; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texelse.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texelse.bin Binary files differnew file mode 100644 index 00000000..4bd0517d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texelse.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texelse.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texelse.sci new file mode 100644 index 00000000..8ef93556 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texelse.sci @@ -0,0 +1,7 @@ +// 10.04.16 +// 10.04.18 + +function Texelse() + Texcom(''); + Texcom('\else'); +endfunction;
\ No newline at end of file diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texend.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texend.bin Binary files differnew file mode 100644 index 00000000..322cde18 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texend.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texend.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texend.sci new file mode 100644 index 00000000..a3139873 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texend.sci @@ -0,0 +1,5 @@ +// 01.10.21 + +function Texend() + Closephr(); +endfunction
\ No newline at end of file diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texendfor.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texendfor.bin Binary files differnew file mode 100644 index 00000000..ea787159 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texendfor.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texendfor.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texendfor.sci new file mode 100644 index 00000000..ecb7b788 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texendfor.sci @@ -0,0 +1,12 @@ +// 10.04.16 + +function Texendfor(I) + global TEXFORLEVEL TEXFORLAST + Last=TEXFORLAST(TEXFORLEVEL); + Texcom(''); + Texcom('\ifnum'+Texthectr(I)+'<'+Last); + Texcom('\repeat'); + Texcom('}'); + TEXFORLEVEL=TEXFORLEVEL-1; + TEXFORLAST=Mixsub(1:(length(TEXFORLAST)-1),TEXFORLAST); +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texendif.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texendif.bin Binary files differnew file mode 100644 index 00000000..43440fc9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texendif.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texendif.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texendif.sci new file mode 100644 index 00000000..97d32d85 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texendif.sci @@ -0,0 +1,8 @@ +// 10.04.16 +// 10.04.18 + +function Texendif() + Texcom(''); // + Texcom('\fi'); + Texcom('}'); +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texfor.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texfor.bin Binary files differnew file mode 100644 index 00000000..69956280 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texfor.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texfor.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texfor.sci new file mode 100644 index 00000000..0c239842 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texfor.sci @@ -0,0 +1,15 @@ +// 10.04.16 +// 10.05.12 +// 10.10.20 ( available for numeric ) + +function Texfor(I,First,Last) + global TEXFORLEVEL TEXFORLAST + TEXFORLEVEL=TEXFORLEVEL+1; + Texsetctr(I,'0'); + Texsetctr(I,string(First)+'-1'); + Texcom(''); + Texcom('{'); + Texcom('\loop'); + Texsetctr(I,'+1'); + TEXFORLAST($+1)=string(Last); +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texforinit.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texforinit.bin Binary files differnew file mode 100644 index 00000000..66fe8e3c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texforinit.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texforinit.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texforinit.sci new file mode 100644 index 00000000..f661c649 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texforinit.sci @@ -0,0 +1,7 @@ +// 10.04.18 + +function Texforinit() + global TEXFORLEVEL TEXFORLAST + TEXFORLEVEL=0; + TEXFORLAST=list(); +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texif.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texif.bin Binary files differnew file mode 100644 index 00000000..52222c34 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texif.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texif.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texif.sci new file mode 100644 index 00000000..8cbae5dc --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texif.sci @@ -0,0 +1,19 @@ +// 10.04.16 +// 10.04.18 +// 10.05.03 + +function Texif(varargin) + Condstr=varargin(1); + Tp=0; + if length(varargin)>1 + Tp=varargin(2); + end; + Texcom(''); + Texcom('{'); + if Tp==0 + Texcom('\ifnum '); + else + Texcom('\ifdim '); + end; + Texcom(Condstr+' '); +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texletter.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texletter.bin Binary files differnew file mode 100644 index 00000000..d95b41da --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texletter.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texletter.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texletter.sci new file mode 100755 index 00000000..f83cc8c8 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texletter.sci @@ -0,0 +1,44 @@ +// 10.01.07 + +function Texletter(varargin) + global Wfile FID MEMORI; + Nargs=length(varargin); + for I=1:3:Nargs + P=varargin(I); + X=P(1); + if type(X)==1 + X=string(X); + end; + Y=P(2); + if type(Y)==1 + Y=string(Y); + end; + Houkou=varargin(I+1); + Mojiretu=varargin(I+2); + Hset=Houkou; + Vhoko='c'; + if mtlb_findstr(Hset,'n')~=[] + Vhoko='n'; + end + if mtlb_findstr(Hset,'s')~=[] + Vhoko='s'; + end + Hhoko='c'; + if mtlb_findstr(Hset,'e')~=[] + Hhoko='e'; + end + if mtlb_findstr(Hset,'w')~=[] + Hhoko='w'; + end + Hoko=Vhoko+Hhoko; + CalcWidth(Hoko,Mojiretu); + CalcHeight(Hoko,Mojiretu); + Tmp='\put('+X+','+Y+'){\hspace*{\Width}'; + Str=Tmp+'\raisebox{\Height}{'+Mojiretu+'}}%'; + if Wfile=='default' + mprintf('%s\n',Str); + else + mfprintf(FID,'%s\n',Str); + end + end +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texnewcmd.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texnewcmd.bin Binary files differnew file mode 100644 index 00000000..eec32b1e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texnewcmd.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texnewcmd.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texnewcmd.sci new file mode 100644 index 00000000..b3b9a417 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texnewcmd.sci @@ -0,0 +1,20 @@ +// 10.01.21 + +function Texnewcmd(varargin) + Nargs=length(varargin); + Str=varargin(1); + S='\newcommand{'+Str+'}'; + if Nargs>1 + Tmp=string(varargin(2)); + S=S+'['+Tmp+']'; + end; + if Nargs>2 + Tmp=varargin(3); + if type(Tmp)==1 + Tmp=string(Tmp); + end; + S=S+'['+Tmp+']'; + end; + S=S+'{'; + Texcom(S); +endfunction
\ No newline at end of file diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texnewctr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texnewctr.bin Binary files differnew file mode 100644 index 00000000..c724a1fa --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texnewctr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texnewctr.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texnewctr.sci new file mode 100644 index 00000000..03cabf81 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texnewctr.sci @@ -0,0 +1,13 @@ +// 10.01.21 + +function Texnewctr(N) + if type(N)==10 + Str='\newcounter{'+N+'}'; + Texcom(Str); + else + for I=N + Str='\newcounter{'+Texctr(I)+'}'; + Texcom(Str); + end; + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texrenewcmd.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texrenewcmd.bin Binary files differnew file mode 100644 index 00000000..a19894a9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texrenewcmd.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texrenewcmd.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texrenewcmd.sci new file mode 100644 index 00000000..b8926589 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texrenewcmd.sci @@ -0,0 +1,20 @@ +// 10.01.21 + +function Texrenewcmd(varargin) + Nargs=length(varargin); + Str=varargin(1); + S='\renewcommand{'+Str+'}'; + if Nargs>1 + Tmp=string(varargin(2)); + S=S+'['+Tmp+']'; + end; + if Nargs>2 + Tmp=varargin(3); + if type(Tmp)==1 + Tmp=string(Tmp); + end; + S=S+'['+Tmp+']'; + end; + S=S+'{'; + Texcom(S); +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texsetctr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texsetctr.bin Binary files differnew file mode 100644 index 00000000..6b59198a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texsetctr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texsetctr.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texsetctr.sci new file mode 100644 index 00000000..166af676 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texsetctr.sci @@ -0,0 +1,70 @@ +// 10.01.21 + +function Texsetctr(Nctr,Opstr) + Ctr=Texctr(Nctr); + Opstr=Opstr+'%'; + OperL='+-*/%'; + Oper=''; + Va=''; + Evflg=0; + Paflg=0; + for I=1:length(Opstr) + Tmp=part(Opstr,I); + if Tmp=='(' + Paflg=1; + if length(Va)>0 + Evflg=1; + Va=Va+Tmp; + end; + continue; + end; + if Tmp==')' + Paflg=0; + if Evflg>0 + Va=Va+Tmp; + end; + continue; + end; + if Paflg>0 + Va=Va+Tmp; + continue; + end; + if length(mtlb_findstr(Tmp,OperL))==0 + Va=Va+Tmp; + else + if Evflg>0 + Tmp1=evstr(Va); + Va='\value{'+Tmp1+'}'; + Evflg=0; + end; + if Oper=='' + if length(Va)>0 + Str='\setcounter{'+Ctr+'}{'+Va+'}'; + Texcom(Str); + end; + Oper=Tmp; + Va=''; + elseif Oper=='+' + Str='\addtocounter{'+Ctr+'}{'+Va+'}'; + Texcom(Str); + Oper=Tmp; + Va=''; + elseif Oper=='-' + Str='\addtocounter{'+Ctr+'}{-'+Va+'}'; + Texcom(Str); + Oper=Tmp; + Va=''; + elseif Oper=='*' + Str='\multiply\value{'+Ctr+'} by '+Va; + Texcom(Str); + Oper=Tmp; + Va=''; + elseif Oper=='/' + Str='\divide\value{'+Ctr+'} by '+Va; + Texcom(Str); + Oper=Tmp; + Va='' + end; + end; + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texthectr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texthectr.bin Binary files differnew file mode 100644 index 00000000..7a1b6b04 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texthectr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texthectr.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texthectr.sci new file mode 100644 index 00000000..469da91a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texthectr.sci @@ -0,0 +1,5 @@ +// 2010.02.12 + +function Out=Texthectr(N) + Out='\the'+Texctr(N); +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texvalctr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texvalctr.bin Binary files differnew file mode 100644 index 00000000..71c3785e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texvalctr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texvalctr.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texvalctr.sci new file mode 100644 index 00000000..96d1c734 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texvalctr.sci @@ -0,0 +1,5 @@ +// 2010.02.12 + +function Out=Texvalctr(N) + Out='\value{'+Texctr(N)+'}'; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texvctr.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texvctr.bin Binary files differnew file mode 100644 index 00000000..0da12c0f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texvctr.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texvctr.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texvctr.sci new file mode 100644 index 00000000..fc443411 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Texvctr.sci @@ -0,0 +1,6 @@ +// 10.01.21 + +function Out=Texvctr(N) + Out='\value{'+Texctr(N)+'}'; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Thetadegree.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Thetadegree.bin Binary files differnew file mode 100644 index 00000000..8f036e77 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Thetadegree.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Thetadegree.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Thetadegree.sci new file mode 100755 index 00000000..c6ceff89 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Thetadegree.sci @@ -0,0 +1,7 @@ +// 08.07.11 + +function Ang=Thetadegree() + global THETA; + Ang=THETA*180/%pi; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/ThisVersion.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/ThisVersion.bin Binary files differnew file mode 100644 index 00000000..43d2d234 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/ThisVersion.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/ThisVersion.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/ThisVersion.sci new file mode 100755 index 00000000..a7a3fc2d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/ThisVersion.sci @@ -0,0 +1,5 @@ +function Y=ThisVersion() + global THISVERSION + Y=THISVERSION +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Tolist.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Tolist.bin Binary files differnew file mode 100644 index 00000000..5e7b9411 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Tolist.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Tolist.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Tolist.sci new file mode 100755 index 00000000..8ef53bd5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Tolist.sci @@ -0,0 +1,8 @@ +// 10.01.02 + +function Out=Tolist(LG) + Out=list(); + for I=1:length(LG) + Out($+1)=LG(I); + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Translate3data.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Translate3data.bin Binary files differnew file mode 100644 index 00000000..43315b47 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Translate3data.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Translate3data.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Translate3data.sci new file mode 100755 index 00000000..98d69544 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Translate3data.sci @@ -0,0 +1,36 @@ +// 08.08.15 +// 15.04.12 + +function Out=Translate3data(varargin) + Nargs=length(varargin); + Pd3=varargin(1); + Pd3=Flattenlist(Pd3); // 15.04.12 + Mv=varargin(2); + if type(Mv)==1 & length(Mv)==1 + Mv=[varargin(2),varargin(3),varargin(4)]; + end; +// if Mixtype(Pd3)==1 // 15.04.12 from +// Pd3=MixS(Pd3); +// elseif Mixtype(Pd3)==3 +// Tmp=[]; +// for I=1:Mixlength(Pd3) +// Tmp=Mixjoin(Tmp,Mixop(I,Pd3)); +// end; +// Pd3=Tmp; +// end; + Out=[]; + for I=1:length(Pd3) + PD=Op(I,Pd3); + Ans=[]; + for J=1:size(PD,1) + P=PD(J,:); + Tmp=P+Mv;; + Ans=[Ans;Tmp]; + end; + Out=Mixadd(Out,Ans); + end; + if length(Out)==1 + Out=Op(1,Out); + end; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Translatedata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Translatedata.bin Binary files differnew file mode 100644 index 00000000..9b27594a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Translatedata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Translatedata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Translatedata.sci new file mode 100755 index 00000000..a2e31085 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Translatedata.sci @@ -0,0 +1,42 @@ +// 08.05.25 Koshikawa +// 08.09.20 +// 15.04.12 + +function OutL=Translatedata(varargin) + Nargs=length(varargin); + ML=varargin(1); + ML=Flattenlist(ML); + Tmp=varargin(2); + if type(Tmp)==1 & length(Tmp)>1 + A=Tmp(1); B=Tmp(2); + else + A=Tmp; + if Nargs>=3 + B=varargin(3); + else + B=0; + end; + end; + OutL=[]; + for N=1:length(ML) + GL=Op(N,ML); + Out=[]; + for I=1:size(GL,1) + Tmp=GL(I,:); + X1=Tmp(1); + Y1=Tmp(2); + if Tmp==[%inf,%inf] + X2=X1; + Y2=Y1; + else + X2=X1+A; + Y2=Y1+B; + end + Out=[Out;X2,Y2]; + end; + OutL=Mixadd(OutL,Out); + end; + if length(OutL)==1 + OutL=Op(1,OutL); + end; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Trunc.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Trunc.bin Binary files differnew file mode 100644 index 00000000..838fdc91 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Trunc.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Trunc.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Trunc.sci new file mode 100755 index 00000000..b4705593 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Trunc.sci @@ -0,0 +1,10 @@ +// 08.05.20 + +function N=Trunc(X) + if X>=0 + N=floor(X) + else + N=ceil(X) + end +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Unscaling.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Unscaling.bin Binary files differnew file mode 100644 index 00000000..60e56331 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Unscaling.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Unscaling.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Unscaling.sci new file mode 100755 index 00000000..74910ceb --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Unscaling.sci @@ -0,0 +1,12 @@ +function Out=Unscaling(G) + global LOGX LOGY SCALEX SCALEY; + GLg=[G(:,1)/SCALEX,G(:,2)/SCALEY]; + Out=GLg; + if LOGX==1 + Out=[10^(GLg(:,1)),GLg(:,2)]; + end; + if LOGY==1 + Out=[GLg(:,1),10^(GLg(:,2))]; + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Vecnagasa.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Vecnagasa.bin Binary files differnew file mode 100644 index 00000000..b6a902cc --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Vecnagasa.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Vecnagasa.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Vecnagasa.sci new file mode 100755 index 00000000..4bc7684c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Vecnagasa.sci @@ -0,0 +1,11 @@ +function L=Vecnagasa(varargin) + PA=varargin(1); + if length(varargin)>1 + PB=varargin(2); + else + PB=zeros(1,length(PA)); + end + Tmp=PB-PA; + L=sqrt(Tmp*Tmp'); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Vecnagasa2.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Vecnagasa2.bin Binary files differnew file mode 100644 index 00000000..3118062d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Vecnagasa2.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Vecnagasa2.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Vecnagasa2.sci new file mode 100755 index 00000000..527d3834 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Vecnagasa2.sci @@ -0,0 +1,11 @@ +function L=Vecnagasa2(varargin) + PA=varargin(1); + if length(varargin)>1 + PB=varargin(2); + else + PB=[0,0]; + end + Tmp=PB-PA; + L=Tmp*Tmp'; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Viewfrom.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Viewfrom.bin Binary files differnew file mode 100644 index 00000000..1692f2d7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Viewfrom.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Viewfrom.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Viewfrom.sci new file mode 100755 index 00000000..44bde517 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Viewfrom.sci @@ -0,0 +1,21 @@ +// 08.10.26 + +function Out=Viewfrom(varargin) + global THETA PHI + Nargs=length(varargin); + Nvec=varargin(1); + GL=varargin(2); + Flg=1; + if Nargs>=3 + Flg=varargin(3); + end; + Theta=THETA; Phi=PHI; + Tmp=Rotate3data(GL,Nvec,[-1,0,0]); + THETA=%pi/2; PHI=0; + Out=Projpara(Tmp); + if Flg==1 + Windisp(Out); + end; + THETA=Theta; PHI=Phi; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Vtickmark.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Vtickmark.bin Binary files differnew file mode 100644 index 00000000..8410cc5f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Vtickmark.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Vtickmark.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Vtickmark.sci new file mode 100644 index 00000000..de320918 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Vtickmark.sci @@ -0,0 +1,144 @@ +// 08.05.26 Debugged +// 09.12.25 +// 11.04.13 debugged ( [a,b] ) +// 14.03.05 MARKLEN + +function Vtickmark(varargin) + global Wfile FID MARKLEN GENTEN YMIN YMAX; + Nargs=length(varargin); + ArgsL=list(varargin(1:Nargs)); + if type(Op(1,ArgsL))==10 + Str=Op(1,ArgsL); + Tmp=mtlb_findstr(Str,'m'); + if Tmp~=[] + I=Tmp(1); + else + I=0; + end + Tmp=mtlb_findstr(Str,'n'); + if Tmp~=[] + J=Tmp(1); + else + J=0; + end + Tmp=mtlb_findstr(Str,'r'); + if Tmp~=[] + K=Tmp(1); + else + K=0; + end; + if K>0 + Tmp=ascii(Str); + S=char(Tmp(K+1:length(Tmp))); + R=msscanf(S,'%f'); + if length(R)==0 + R=1; + end + else + R=1; + K=length(Str)+1; + end + if J>0 then + Tmp=ascii(Str); + S=char(Tmp(J+1:K-1)); + if S==[] + S=''; + end; + Dn=msscanf(S,'%d'); + if length(Dn)==0 + Dn=1; + end + else + Dn=1000; + J=length(Str)+1; + end + Tmp=ascii(Str); + S=char(Tmp(I+1:J-1)); + if S==[] + S=''; + end + Dm=msscanf(S,'%f'); + if length(Dm)==0 + Dm=1; + end + ArgsL=list(); + for I=1:floor((YMAX-GENTEN(2))/Dm) + ArgsL($+1)=I*Dm; + if I-floor(I/Dn)*Dn==0 + Str=string(I*Dm*R); + K=length(Str); + Tmp=ascii(Str); + if char(Tmp(K))=='.' + Str=char(Tmp(1:k-1)); + end + ArgsL($+1)=Str; + end + end + for I=-1:-1:ceil((YMIN-GENTEN(2))/Dm) + ArgsL($+1)=I*Dm; + if I-floor(I/Dn)*Dn==0 + Str=string(I*Dm*R); + K=length(Str); + Tmp=ascii(Str); + if char(Tmp(K))=='.' + Str=char(1:K-1); + end + ArgsL($+1)=Str; + end + end + end + MemoriList=list(); + Memori=list(); + for N=1:length(ArgsL) + Dt=Op(N,ArgsL); + if type(Dt)==1 & length(Dt)>1 + if length(Memori)>0 + MemoriList($+1)=Memori; + end + Memori=list(Dt(1),Dt(2)); + continue + end + if type(Dt)==10 + Memori($+1)=Dt; + else + if length(Memori)>0 + MemoriList($+1)=Memori; + end + Memori=list(GENTEN(1),Dt); + end + end + MemoriList($+1)=Memori; + for N=1:length(MemoriList) + Dt=MemoriList(N); + Ndt=length(Dt); + X=Op(1,Dt); + Y=Op(2,Dt); + Tmp=Doscaling([X,Y]); + X=Tmp(1); + Y=Tmp(2); + Moji=Op(Ndt,Dt); + Tmp1=Unscaling([X+MARKLEN,Y]); + Tmp2=Unscaling([X-MARKLEN,Y]); + Fd=Listplot([Tmp1,Tmp2]); + Drwline(Fd); + if Ndt==3 + Tmp=Unscaling([X-MARKLEN,Y]); + Expr(Tmp,'w',Moji); + end + if Ndt==4 + Houkou=Op(3,Dt); + if mtlb_findstr(Houkou,'w')~=[] + Tmp=Unscaling([X-MARKLEN,Y]); + Expr(Tmp,Houkou,Moji); + else + Tmp=Unscaling([X+MARKLEN,Y]); + Expr(Tmp,Houkou,Moji); + end + end + if Wfile=='default' + mprintf('%s\n','%'); + else + mfprintf(FID,'%s\n','%'); + end + end +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Windisp.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Windisp.bin Binary files differnew file mode 100644 index 00000000..cfd85f0b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Windisp.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Windisp.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Windisp.sci new file mode 100755 index 00000000..baa03e73 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Windisp.sci @@ -0,0 +1,110 @@ +// 08.05.16 Point style +// 08.05.17 MixL +// 08.05.19 Changed +// 08.05.21 Eps=0.1 +// 08.08.16 square +// 09.11.04 window option +// 09.11.07 gcf used +// 09.12.25 +// 10.01.01 +// 10.01.09 ' ' +// 10.01.10 drw one by one +// 10.02.08 revised for the case "a" +// 10.02.13 square debugged +// 10.02.21 square debugged (2) +// 10.02.23 case of mixlength=3 +// 10.04.10 Origin bug +// 11.05.29 Flattenlist used + +function Windisp(varargin) + global XMIN XMAX YMIN YMAX GENTEN + Nargs=length(varargin); + Tp=varargin(Nargs); + Ch=''; + if type(Tp)~=10 + scf(); + else + Ch=part(Tp,1); + Nargs=Nargs-1; + select Ch; + case 'N' then scf(); + case 'n' then scf(); + case 'C' then Tmp=gcf();clf('clear'); + case 'c' then Tmp=gcf();clf('clear'); + case 'A' then Tmp=gcf(); + case 'a' then Tmp=gcf(); + else + Tmp1=part(Tp,length(Tp)); + Tmp2=part(Tp,1:length(Tp)-1); + Tmp3=evstr(Tmp2); + scf(Tmp3); + if Tmp1=='C'|Tmp1=='c' + clf('clear'); + end; + end; + end; + Eps=0.1; + Tmp=Doscaling([XMIN,YMIN]); + Xm=Tmp(1); Ym=Tmp(2); + Tmp=Doscaling([XMAX,YMAX]); + XM=Tmp(1); YM=Tmp(2); + C=[(Xm+XM)/2,(Ym+YM)/2]; + H=max(XM-Xm,YM-Ym)/2; + R1=C-H; R2=C+H; + R1=Unscaling(R1); + R2=Unscaling(R2); + if (Ch~='A')&(Ch~='a') + Tmp1=R1(1); + Tmp2=R2(1); + Tmp3=R1(2); + Tmp4=R2(2); + square(Tmp1,Tmp3,Tmp2,Tmp4);// + P=Framedata([XMIN,XMAX],[YMIN,YMAX]); + Tmp1=P(:,1)'; + Tmp2=P(:,2)'; + plot2d(Tmp1,Tmp2); + PtO=GENTEN; // 10.04.10 + if (PtO(2)>=YMIN) & (PtO(2)<=YMAX) // + P=Listplot([XMIN,PtO(2)],[XMAX,PtO(2)]); + Tmp1=P(:,1)'; + Tmp2=P(:,2)'; + plot2d(Tmp1,Tmp2,style=[3]); + end; + if (PtO(1)>=XMIN) & (PtO(1)<=XMAX) + P=Listplot([PtO(1),YMIN],[PtO(1),YMAX]); + Tmp1=P(:,1)'; + Tmp2=P(:,2)'; + plot2d(Tmp1,Tmp2,style=[3]); + end; + end; + for I=1:Nargs + Tmp=varargin(I); + Pdata=Flattenlist(Tmp); // + for II=1:length(Pdata) + Tmp=Op(II,Pdata); + P=MakeCurves(Tmp,0); + P=Unscaling(P); + Ndm=Dataindex(P); + for J=1:size(Ndm,1) + Q=P(Ndm(J,1):Ndm(J,2),:) + if size(Q,1)==1 + for K=1:2:length(Q) + plot2d(Q(K),Q(K+1),style=[-3]); + end + else + Tmp1=Q(:,1)'; + Tmp2=Q(:,2)'; + plot2d(Tmp1,Tmp2); + end + end + end +// for II=2:length(Pdata) +// Tmp=Op(II,Pdata); +// Windisp(Tmp,'a'); +// end; + end + for I=2:Nargs + Pdata=varargin(I); + Windisp(Pdata,'a'); + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/WireHiddenData.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/WireHiddenData.bin Binary files differnew file mode 100644 index 00000000..329b7bae --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/WireHiddenData.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/WireHiddenData.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/WireHiddenData.sci new file mode 100755 index 00000000..24920661 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/WireHiddenData.sci @@ -0,0 +1,7 @@ +// 08.12.11 + +function Out=WireHiddenData() + global HIDDENWIREDATA + Out=HIDDENWIREDATA; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/WirePt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/WirePt.bin Binary files differnew file mode 100644 index 00000000..cd12acae --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/WirePt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/WirePt.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/WirePt.sci new file mode 100755 index 00000000..d62acaf3 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/WirePt.sci @@ -0,0 +1,8 @@ +// 08.09.15 +// 09.09.10 registered + +function Out=WirePt() + global WIREPT + Out=WIREPT; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Wireparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Wireparadata.bin Binary files differnew file mode 100644 index 00000000..74ac71e0 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Wireparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Wireparadata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Wireparadata.sci new file mode 100755 index 00000000..b46e359c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Wireparadata.sci @@ -0,0 +1,120 @@ +// 08.09.15 +// 08.10.10 +// 08.10.11 +// 08.10.15 +// 08.10.21 +// 08.10.25 +// 09.09.10 +// 10.02.16 Eps +// 17.05.07 Eps changed + +function FsL=Wireparadata(varargin) + global WIREPT PARTITIONPT HIDDENDATA HIDDENWIREDATA + timer(); + Nargs=length(varargin); + Fbdy=Projpara(varargin(1)); + Fd=varargin(2); N=3; + FdL=Fullformfunc(Fd); + Fxy=Mixop(1,FdL); + Tmp=Mixop(5,FdL); + K=mtlb_findstr(Tmp,'='); + Uname=part(Tmp,1:K-1); + Urg=evstr(part(Tmp,K+1:length(Tmp))); + Tmp=Mixop(6,FdL); + K=mtlb_findstr(Tmp,'='); + Vname=part(Tmp,1:K-1); + Vrg=evstr(part(Tmp,K+1:length(Tmp))); + DuL=varargin(N); + DvL=varargin(N+1); + N=N+2; + Np=[50,50]; + if Nargs>=N + Np=varargin(N); + if type(Np)==1 & length(Np)==1 + Np=[Np,Np]; + end; + end + Eps=[0.05,1]; // + if Nargs>=N+1 + Eps=varargin(N+1); + end; + Eps2=0.2; + if Nargs>=N+2 + Eps2=varargin(N+2); + end; + Tmp=Mixop(2,Fd); + K=mtlb_findstr(Tmp,'='); + Xname=part(Tmp,1:K-1); + Tmp=Mixop(3,Fd); + K=mtlb_findstr(Tmp,'='); + Yname=part(Tmp,1:K-1); + Umin=Urg(1); Umax=Urg(2); + Vmin=Vrg(1); Vmax=Vrg(2); + if type(DuL)==10 + DuL=evstr(DuL); + elseif length(DuL)==1 + Tmp=(Umax-Umin)/(DuL+1); + Tmp1=Umin+Tmp; + Tmp2=Umin+DuL*Tmp + DuL=[Tmp1:Tmp:Tmp2]; + end; + if type(DvL)==10 + DvL=evstr(DvL); + elseif length(DvL)==1 + Tmp=(Vmax-Vmin)/(DvL+1); + Tmp1=Vmin+Tmp; + Tmp2=Vmin+DvL*Tmp + DvL=[Tmp1:Tmp:Tmp2]; + end; + Fbdxy=Makexybdy(Fd,Np); + WIREPT=[]; + HIDDENWIREDATA=[]; + FsL=[]; + for I=1:length(DuL) + U=DuL(I); + Tmp=Paramplot('[U,V]','V=[Vmin,Vmax]','N=Np(2)');//17.05.07 + FkL=Cuspsplitpara(Tmp,Fd,Eps(1)); // + for J=1:Mixlength(FkL) + Fk=Mixop(J,FkL); + Tmp=Projpara(Fk); + Par=Partitionseg(Tmp,Fbdy,Eps(1),Eps2); // + if Mixlength(PARTITIONPT)>2 + for K=2:Mixlength(PARTITIONPT) + Tmp1=Mixop(K,PARTITIONPT); + WIREPT=Mixadd(WIREPT,Tmp1); + end; + end; + Fs=Nohiddenpara2(Par,Fk,Fd,1,Np,Eps); + HIDDENWIREDATA=Mixjoin(HIDDENWIREDATA,HIDDENDATA); + FsL=Mixjoin(FsL,Fs); + end; + end; + Nx=Mixlength(FsL); + if Nx>0 + Mixdisp(Mix(Uname,'-data=',1,':',Nx,' Time=',timer())); + end; + for I=1:length(DvL) + V=DvL(I); + Tmp=Paramplot('[U,V]','U=[Umin,Umax]','N=Np(1)');//17.05.07 + FkL=Cuspsplitpara(Tmp,Fd,Eps(1)); // + for J=1:Mixlength(FkL) + Fk=Mixop(J,FkL); + Tmp=Projpara(Fk); + Par=Partitionseg(Tmp,Fbdy,Eps(1),Eps2); // + if Mixlength(PARTITIONPT)>2 + for K=2:Mixlength(PARTITIONPT) + Tmp1=Mixop(K,PARTITIONPT); + WIREPT=Mixadd(WIREPT,Tmp1); + end; + end; + Fs=Nohiddenpara2(Par,Fk,Fd,1,Np,Eps); + HIDDENWIREDATA=Mixjoin(HIDDENWIREDATA,HIDDENDATA); + FsL=Mixjoin(FsL,Fs); + end; + end; + Ny=Mixlength(FsL)-Nx; + if Ny>0 + Mixdisp(Mix(Vname,'-data=',Nx+1,':',Nx+Ny,' Time=',timer())); + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Wirepersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Wirepersdata.bin Binary files differnew file mode 100644 index 00000000..7ac1f185 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Wirepersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Wirepersdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Wirepersdata.sci new file mode 100755 index 00000000..11def80c --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Wirepersdata.sci @@ -0,0 +1,120 @@ +// 08.09.21 +// 08.10.10 +// 08.10.11 +// 08.10.15 +// 08.10.21 +// 08.10.25 +// 09.09.10 +// 10.02.16 Eps +// 17.05.07 Eps changed + +function FsL=Wirepersdata(varargin) + global WIREPT PARTITIONPT HIDDENDATA HIDDENWIREDATA + timer(); + Nargs=length(varargin); + Fbdy=Projpers(varargin(1)); + Fd=varargin(2); N=3; + FdL=Fullformfunc(Fd); + Fxy=Mixop(1,FdL); + Tmp=Mixop(5,FdL); + K=mtlb_findstr(Tmp,'='); + Uname=part(Tmp,1:K-1); + Urg=evstr(part(Tmp,K+1:length(Tmp))); + Tmp=Mixop(6,FdL); + K=mtlb_findstr(Tmp,'='); + Vname=part(Tmp,1:K-1); + Vrg=evstr(part(Tmp,K+1:length(Tmp))); + DuL=varargin(N); + DvL=varargin(N+1); + N=N+2; + Np=[50,50]; + if Nargs>=N + Np=varargin(N); + if type(Np)==1 & length(Np)==1 + Np=[Np,Np]; + end; + end + Eps=[0.05,1]; // + if Nargs>=N+1 + Eps=varargin(N+1); + end; + Eps2=0.2; + if Nargs>=N+2 + Eps2=varargin(N+2); + end; + Tmp=Mixop(2,Fd); + K=mtlb_findstr(Tmp,'='); + Xname=part(Tmp,1:K-1); + Tmp=Mixop(3,Fd); + K=mtlb_findstr(Tmp,'='); + Yname=part(Tmp,1:K-1); + Umin=Urg(1); Umax=Urg(2); + Vmin=Vrg(1); Vmax=Vrg(2); + if type(DuL)==10 + DuL=evstr(DuL); + elseif length(DuL)==1 + Tmp=(Umax-Umin)/(DuL+1); + Tmp1=Umin+Tmp; + Tmp2=Umin+DuL*Tmp + DuL=[Tmp1:Tmp:Tmp2]; + end; + if type(DvL)==10 + DvL=evstr(DvL); + elseif length(DvL)==1 + Tmp=(Vmax-Vmin)/(DvL+1); + Tmp1=Vmin+Tmp; + Tmp2=Vmin+DvL*Tmp + DvL=[Tmp1:Tmp:Tmp2]; + end; + Fbdxy=Makexybdy(Fd,Np); + WIREPT=[]; + HIDDENWIREDATA=[]; + FsL=[]; + for I=1:length(DuL) + U=DuL(I); + Tmp=Paramplot('[U,V]','V=[Vmin,Vmax]','N=Np(2)');//17.05.07 + FkL=Cuspsplitpers(Tmp,Fd,Eps(1)); // + for J=1:Mixlength(FkL) + Fk=Mixop(J,FkL); + Tmp=Projpers(Fk); + Par=Partitionseg(Tmp,Fbdy,Eps(1),Eps2); // + if Mixlength(PARTITIONPT)>2 + for K=2:Mixlength(PARTITIONPT) + Tmp1=Mixop(K,PARTITIONPT); + WIREPT=Mixadd(WIREPT,Tmp1); + end; + end; + Fs=Nohiddenpers2(Par,Fk,Fd,1,Np,Eps); + HIDDENWIREDATA=Mixjoin(HIDDENWIREDATA,HIDDENDATA); + FsL=Mixjoin(FsL,Fs); + end; + end; + Nx=Mixlength(FsL); + if Nx>0 + Mixdisp(Mix(Uname,'-data=',1,':',Nx,' Time=',timer())); + end; + for I=1:length(DvL) + V=DvL(I); + Tmp=Paramplot('[U,V]','U=[Umin,Umax]','N=Np(1)'); + FkL=Cuspsplitpers(Tmp,Fd,Eps(1)); // + for J=1:Mixlength(FkL) + Fk=Mixop(J,FkL); + Tmp=Projpers(Fk); + Par=Partitionseg(Tmp,Fbdy,Eps(1),Eps2); //17.05.07 + if Mixlength(PARTITIONPT)>2 + for K=2:Mixlength(PARTITIONPT) + Tmp1=Mixop(K,PARTITIONPT); + WIREPT=Mixadd(WIREPT,Tmp1); + end; + end; + Fs=Nohiddenpers2(Par,Fk,Fd,1,Np,Eps); + HIDDENWIREDATA=Mixjoin(HIDDENWIREDATA,HIDDENDATA); + FsL=Mixjoin(FsL,Fs); + end; + end; + Ny=Mixlength(FsL)-Nx; + if Ny>0 + Mixdisp(Mix(Vname,'-data=',Nx+1,':',Nx+Ny,' Time=',timer())); + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Wirerawparadata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Wirerawparadata.bin Binary files differnew file mode 100644 index 00000000..646215a8 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Wirerawparadata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Wirerawparadata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Wirerawparadata.sci new file mode 100755 index 00000000..59c5ba54 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Wirerawparadata.sci @@ -0,0 +1,86 @@ +// 08.09.15 +// 08.10.10 +// 08.10.21 +// 09.09.10 + +function FsL=Wirerawparadata(varargin) + timer(); + Nargs=length(varargin); + Fbdy=Projpara(varargin(1)); + Fd=varargin(2); N=3; + FdL=Fullformfunc(Fd); + Fxy=Mixop(1,FdL); + Tmp=Mixop(5,FdL); + K=mtlb_findstr(Tmp,'='); + Uname=part(Tmp,1:K-1); + Urg=evstr(part(Tmp,K+1:length(Tmp))); + Tmp=Mixop(6,FdL); + K=mtlb_findstr(Tmp,'='); + Vname=part(Tmp,1:K-1); + Vrg=evstr(part(Tmp,K+1:length(Tmp))); + DuL=varargin(N); + DvL=varargin(N+1); + N=N+2; + Np=[50,50]; + if Nargs>=N + Np=varargin(N); + if type(Np)==1 & length(Np)==1 + Np=[Np,Np]; + end; + end + Eps=0.05; + if Nargs>=N+1 + Eps=varargin(N+1); + end; + Eps2=0.2; + if Nargs>=N+2 + Eps2=varargin(N+2); + end; + Umin=Urg(1); Umax=Urg(2); + Vmin=Vrg(1); Vmax=Vrg(2); + if type(DuL)==10 + DuL=evstr(DuL); + elseif length(DuL)==1 + Tmp=(Umax-Umin)/(DuL+1); + Tmp1=Umin+Tmp; + Tmp2=Umin+DuL*Tmp + DuL=[Tmp1:Tmp:Tmp2]; + end; + if type(DvL)==10 + DvL=evstr(DvL); + elseif length(DvL)==1 + Tmp=(Vmax-Vmin)/(DvL+1); + Tmp1=Vmin+Tmp; + Tmp2=Vmin+DvL*Tmp + DvL=[Tmp1:Tmp:Tmp2]; + end; + Fbdxy=Makexybdy(Fd,Np); + FsL=[]; + for I=1:length(DuL) + U=DuL(I); + Tmp=Paramplot('[U,V]','V=[Vmin,Vmax]','N=Np(1)'); + FkL=Cuspsplitpara(Tmp,Fd,Eps); + for J=1:Mixlength(FkL) + Fk=Mixop(J,FkL); + FsL=Mixadd(FsL,Fk); + end; + end; + Nx=Mixlength(FsL); + if Nx>0 + Mixdisp(Mix(Uname,'-data=',1,':',Nx,' Time=',timer())); + end; + for I=1:length(DvL) + V=DvL(I); + Tmp=Paramplot('[U,V]','U=[Umin,Umax]','N=Np(2)'); + FkL=Cuspsplitpara(Tmp,Fd,Eps); + for J=1:Mixlength(FkL) + Fk=Mixop(J,FkL); + FsL=Mixadd(FsL,Fk); + end; + end; + Ny=Mixlength(FsL)-Nx; + if Ny>0 + Mixdisp(Mix(Vname,'-data=',Nx+1,':',Nx+Ny,' Time=',timer())); + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Wirerawpersdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Wirerawpersdata.bin Binary files differnew file mode 100644 index 00000000..28eecf7a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Wirerawpersdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Wirerawpersdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Wirerawpersdata.sci new file mode 100755 index 00000000..d168b4f7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Wirerawpersdata.sci @@ -0,0 +1,86 @@ +// 08.09.21 +// 08.10.10 +// 08.10.21 +// 09.09.10 + +function FsL=Wirerawpersdata(varargin) + timer(); + Nargs=length(varargin); + Fbdy=Projpers(varargin(1)); + Fd=varargin(2); N=3; + FdL=Fullformfunc(Fd); + Fxy=Mixop(1,FdL); + Tmp=Mixop(5,FdL); + K=mtlb_findstr(Tmp,'='); + Uname=part(Tmp,1:K-1); + Urg=evstr(part(Tmp,K+1:length(Tmp))); + Tmp=Mixop(6,FdL); + K=mtlb_findstr(Tmp,'='); + Vname=part(Tmp,1:K-1); + Vrg=evstr(part(Tmp,K+1:length(Tmp))); + DuL=varargin(N); + DvL=varargin(N+1); + N=N+2; + Np=[50,50]; + if Nargs>=N + Np=varargin(N); + if type(Np)==1 & length(Np)==1 + Np=[Np,Np]; + end; + end + Eps=0.05; + if Nargs>=N+1 + Eps=varargin(N+1); + end; + Eps2=0.2; + if Nargs>=N+2 + Eps2=varargin(N+2); + end; + Umin=Urg(1); Umax=Urg(2); + Vmin=Vrg(1); Vmax=Vrg(2); + if type(DuL)==10 + DuL=evstr(DuL); + elseif length(DvL)==1 + Tmp=(Umax-Umin)/(DuL+1); + Tmp1=Umin+Tmp; + Tmp2=Umin+DuL*Tmp + DuL=[Tmp1:Tmp:Tmp2]; + end; + if type(DvL)==10 + DvL=evstr(DvL); + elseif length(DvL)==1 + Tmp=(Vmax-Vmin)/(DvL+1); + Tmp1=Vmin+Tmp; + Tmp2=Vmin+DvL*Tmp + DvL=[Tmp1:Tmp:Tmp2]; + end; + Fbdxy=Makexybdy(Fd,Np); + FsL=[]; + for I=1:length(DuL) + U=DuL(I); + Tmp=Paramplot('[U,V]','V=[Vmin,Vmax]','N=Np(1)'); + FkL=Cuspsplitpers(Tmp,Fd,Eps); + for J=1:Mixlength(FkL) + Fk=Mixop(J,FkL); + FsL=Mixadd(FsL,Fk); + end; + end; + Nx=Mixlength(FsL); + if Nx>0 + Mixdisp(Mix(Uname,'-data=',1,':',Nx,' Time=',timer())); + end; + for I=1:length(DvL) + V=DvL(I); + Tmp=Paramplot('[U,V]','U=[Umin,Umax]','N=Np(2)'); + FkL=Cuspsplitpers(Tmp,Fd,Eps); + for J=1:Mixlength(FkL) + Fk=Mixop(J,FkL); + FsL=Mixadd(FsL,Fk); + end; + end; + Ny=Mixlength(FsL)-Nx; + if Ny>0 + Mixdisp(Mix(Vname,'-data=',Nx+1,':',Nx+Ny,' Time=',timer())); + end; +endfunction; + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/WriteOutData.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/WriteOutData.bin Binary files differnew file mode 100644 index 00000000..baa9001a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/WriteOutData.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/WriteOutData.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/WriteOutData.sci new file mode 100644 index 00000000..059ac6d5 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/WriteOutData.sci @@ -0,0 +1,55 @@ +// s:2014.10.10 +// e:2014.12.14 ( for 3d ) +// e:2015.10.29 ( endmark //// ) + +function WriteOutData(varargin) + global Fnameout + Nargs=length(varargin); + if modulo(Nargs,2)==0 then + Fname=Fnameout; + Nst=1; + else + Fname=varargin(1); + Nst=2; + end; + Fid=mopen(Fname,'w'); + for N=Nst:2:Nargs + Gname=varargin(N); + mfprintf(Fid,'%s\n',Gname+"//"); + Gdata=varargin(N+1); + Gdata=Flattenlist(Gdata); + for K=1:length(Gdata) + GL=Dividegraphics(Gdata(K)); + for J=1:length(GL) + mfprintf(Fid,'%s\n',"start//"); + Str=""; + for I=1:Numptcrv(GL(J)) + Pt=Ptcrv(I,GL(J)); + if length(Str)>0 then + Str=Str+"," + end; + if length(Pt)<3 // 2014.12.14 + Str=Str+msprintf("[%5.4f,%5.4f]",Pt(1),Pt(2)); + else + Str=Str+msprintf("[%5.4f,%5.4f,%5.4f]",Pt(1),Pt(2),Pt(3)); + end; + if length(Str)>80 then + mfprintf(Fid,'%s\n',"["+Str+"]//"); + Str=""; + end + end + if length(Str)>0 then + mfprintf(Fid,'%s\n',"["+Str+"]//"); + end + if N==Nargs-1 & K==length(Gdata) & J==length(GL) then // 15.10.29 +// mfprintf(Fid,'%s\n',"end////"); + mfprintf(Fid,'%s\n',"end//"); + else + mfprintf(Fid,'%s\n',"end//"); + end; + end + end + end + mfprintf(Fid,'%s\n',"//"); + mclose(Fid); +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Writeobjpoint.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Writeobjpoint.bin Binary files differnew file mode 100644 index 00000000..734a3c14 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Writeobjpoint.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Writeobjpoint.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Writeobjpoint.sci new file mode 100644 index 00000000..ae51bf8b --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Writeobjpoint.sci @@ -0,0 +1,12 @@ +// s : 2014.06.22 + +function Out=Writeobjpoint(P) + global OBJFMT OBJSCALE NPOINT; + X=sprintf(OBJFMT,P(1)*OBJSCALE); + Y=sprintf(OBJFMT,P(2)*OBJSCALE); + Z=sprintf(OBJFMT,P(3)*OBJSCALE); + Str="v "+X+" "+Y+" "+Z; + Printobjstr(Str) + NPOINT=NPOINT+1 + Out=NPOINT; +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Writetextdata.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Writetextdata.bin Binary files differnew file mode 100644 index 00000000..5e4a47e2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Writetextdata.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Writetextdata.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Writetextdata.sci new file mode 100644 index 00000000..51a13884 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Writetextdata.sci @@ -0,0 +1,47 @@ +// 2010.04.27 + +function Writetextdata(varargin) + Fname=varargin(1); + Mt=varargin(2); + D=-1; + for I=3:length(varargin) + Tmp=varargin(I); + if mtlb_findstr(Tmp,'=')~=[] + execstr(Tmp); + end; + end; + Str=''; + for J=1:size(Mt,2) + Str=Str+'x'+string(J); + if J<size(Mt,2) + Str=Str+','; + end; + end; + if Fname~='' + Fid=mopen(Fname,'w'); + mfprintf(Fid,'%s\n',Str); + else + mprintf('%s\n',Str); + end; + for I=1:size(Mt,1) + Str=''; + for J=1:size(Mt,2) + Dt=Mt(I,J); + if Dt==%inf + Dt=D; + end; + Str=Str+string(Dt); + if J<size(Mt,2) + Str=Str+','; + end; + end; + if Fname~='' + mfprintf(Fid,'%s\n',Str); + else + mprintf('%s\n',Str); + end; + end; + if Fname~='' + mclose(Fid); + end; +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/WritetoCindy.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/WritetoCindy.bin Binary files differnew file mode 100644 index 00000000..4b55a62a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/WritetoCindy.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/WritetoCindy.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/WritetoCindy.sci new file mode 100644 index 00000000..60d73ef7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/WritetoCindy.sci @@ -0,0 +1,42 @@ +// s:2014.09.16 + +function WritetoCindy(varargin) + global Fnametxt + GnameV=list(); + for J=1:length(varargin) + Tmp=varargin(J); + for K=1:size(Tmp,2) + GnameV($+1)=Tmp(1,K); + end + end; + Fid=mopen(Fnametxt,'w'); + for Nv=1:length(GnameV) + Gname=GnameV(Nv); + Tmp=evstr(Gname); + GL=Dividegraphics(Tmp); + Lnst=""; + for J=1:length(GL) + G=GL(J); + Gn=Gname+"No"+string(J); + mfprintf(Fid,'%s\n',Gn+"=[];//"); + for K=1:Numptcrv(G) + Pt=Ptcrv(K,G); + if length(Lnst)==0 + Lnst=Gn+"=concat("+Gn+",["; + end; + Tmp=msprintf("[%6.4f,%6.4f]",Pt(1),Pt(2)); + Lnst=Lnst+Tmp; + if length(Lnst)>80 | K==Numptcrv(G) + Lnst=Lnst+"]);//"; + mfprintf(Fid,'%s\n',Lnst); + Lnst=""; + else + Lnst=Lnst+","; + end; + end; + Str="Goutdatalist=Append(Goutdatalist,"+Gn+");//"; + mfprintf(Fid,'%s\n',Str); + end; + end; + mclose(Fid); +endfunction; diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Xmax.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Xmax.bin Binary files differnew file mode 100644 index 00000000..42261931 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Xmax.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Xmax.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Xmax.sci new file mode 100755 index 00000000..28ab28ce --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Xmax.sci @@ -0,0 +1,5 @@ +function Y=Xmax() + global XMAX + Y=XMAX; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Xmin.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Xmin.bin Binary files differnew file mode 100644 index 00000000..aff6ce0e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Xmin.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Xmin.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Xmin.sci new file mode 100755 index 00000000..e18e83d7 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Xmin.sci @@ -0,0 +1,5 @@ +function Y=Xmin() + global XMIN + Y=XMIN; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Xyzax3data.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Xyzax3data.bin Binary files differnew file mode 100644 index 00000000..c10e835a --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Xyzax3data.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Xyzax3data.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Xyzax3data.sci new file mode 100755 index 00000000..b2118c90 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Xyzax3data.sci @@ -0,0 +1,14 @@ +// 08.07.11 + +function Out=Xyzax3data(Xrange,Yrange,Zrange) + J=mtlb_findstr(Xrange,'='); + Tmp=evstr(part(Xrange,J+1:length(Xrange))); + Px=[Tmp(1),0,0]; Qx=[Tmp(2),0,0]; + J=mtlb_findstr(Yrange,'='); + Tmp=evstr(part(Yrange,J+1:length(Yrange))); + Py=[0,Tmp(1),0]; Qy=[0,Tmp(2),0]; + J=mtlb_findstr(Zrange,'='); + Tmp=evstr(part(Zrange,J+1:length(Zrange))); + Pz=[0,0,Tmp(1)]; Qz=[0,0,Tmp(2)]; + Out=MixS(Spaceline([Px,Qx]),Spaceline([Py,Qy]),Spaceline([Pz,Qz])); +endfunction diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Xyzaxparaname.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Xyzaxparaname.bin Binary files differnew file mode 100644 index 00000000..58069271 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Xyzaxparaname.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Xyzaxparaname.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Xyzaxparaname.sci new file mode 100755 index 00000000..b833802d --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Xyzaxparaname.sci @@ -0,0 +1,71 @@ +// 08.07.11 +// 09.09.18 + +function Kekka=Xyzaxparaname(varargin) + global MilliIn; + Nargs=length(varargin); + Eps=10.0^(-6); + Dr=0.19*1000/2.54/MilliIn; + Tmp=varargin(Nargs); + if Nargs>1 & type(Tmp)==1 + Dr=Dr*Tmp; + Nargs=Nargs-1; + end; + if type(varargin(1))==10 + Xrange=varargin(1); Yrange=varargin(2); Zrange=varargin(3); + J=mtlb_findstr(Xrange,'='); + Xname=part(Xrange,1:J-1); + Tmp=evstr(part(Xrange,J+1:length(Xrange))); + Px=[Tmp(1),0,0]; Qx=[Tmp(2),0,0]; + J=mtlb_findstr(Yrange,'='); + Yname=part(Yrange,1:J-1); + Tmp=evstr(part(Yrange,J+1:length(Yrange))); + Py=[0,Tmp(1),0]; Qy=[0,Tmp(2),0]; + J=mtlb_findstr(Zrange,'='); + Zname=part(Zrange,1:J-1); + Tmp=evstr(part(Zrange,J+1:length(Zrange))); + Pz=[0,0,Tmp(1)]; Qz=[0,0,Tmp(2)]; + else + Data=varargin(1); + Xname='x'; Yname='y'; Zname='z'; + if Nargs>1 + if varargin(2)~='' + Xname=varargin(2); + end; + if varargin(3)~='' + Yname=varargin(3); + end; + if varargin(4)~='' + Zname=varargin(4); + end; + end; + Tmp=Mixop(1,Data); + Px=Tmp(1,:); Qx=Tmp(2,:); + Tmp=Mixop(2,Data); + Py=Tmp(1,:) ; + Qy=Tmp(2,:); + Tmp=Mixop(3,Data); + Pz=Tmp(1,:); + Qz=Tmp(2,:); + end; + Ph=Parapt(Px); Qh=Parapt(Qx); R=Vecnagasa(Ph,Qh); + Kekka=[]; + if R>Eps + Ch=Qh+Dr/R*(Qh-Ph); + Kekka=Mixadd(Kekka,Pointdata(Ch)); + Expr(Ch,'c',Xname); + end + Ph=Parapt(Py); Qh=Parapt(Qy); R=Vecnagasa(Ph,Qh); + if R>Eps + Ch=Qh+Dr/R*(Qh-Ph); + Kekka=Mixadd(Kekka,Pointdata(Ch)); + Expr(Ch,'c',Yname); + end; + Ph=Parapt(Pz); Qh=Parapt(Qz); R=Vecnagasa(Ph,Qh); + if R>Eps + Ch=Qh+Dr/R*(Qh-Ph); + Kekka=Mixadd(Kekka,Pointdata(Ch)); + Expr(Ch,'c',Zname); + end; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Xyzaxpersname.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Xyzaxpersname.bin Binary files differnew file mode 100644 index 00000000..9bafd8a9 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Xyzaxpersname.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Xyzaxpersname.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Xyzaxpersname.sci new file mode 100755 index 00000000..d9c1c7df --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Xyzaxpersname.sci @@ -0,0 +1,72 @@ +// 08.08.14 +// 08.08.15 +// 09.09.18 + +function Kekka=Xyzaxpersname(varargin) + global MilliIn; + Eps=10.0^(-6); + Nargs=length(varargin); + Dr=0.19*1000/2.54/MilliIn; + Tmp=varargin(Nargs); + if Nargs>1 & type(Tmp)==1 + Dr=Dr*Tmp; + Nargs=Nargs-1; + end; + if type(varargin(1))==10 + Xrange=varargin(1); Yrange=varargin(2); Zrange=varargin(3); + J=mtlb_findstr(Xrange,'='); + Xname=part(Xrange,1:J-1); + Tmp=evstr(part(Xrange,J+1:length(Xrange))); + Px=[Tmp(1),0,0]; Qx=[Tmp(2),0,0]; + J=mtlb_findstr(Yrange,'='); + Yname=part(Yrange,1:J-1); + Tmp=evstr(part(Yrange,J+1:length(Yrange))); + Py=[0,Tmp(1),0]; Qy=[0,Tmp(2),0]; + J=mtlb_findstr(Zrange,'='); + Zname=part(Zrange,1:J-1); + Tmp=evstr(part(Zrange,J+1:length(Zrange))); + Pz=[0,0,Tmp(1)]; Qz=[0,0,Tmp(2)]; + else + Data=varargin(1); + Xname='x'; Yname='y'; Zname='z'; + if Nargs>1 + if varargin(2)~='' + Xname=varargin(2); + end; + if varargin(3)~='' + Yname=varargin(3); + end; + if varargin(4)~='' + Zname=varargin(4); + end; + end; + Tmp=Mixop(1,Data); + Px=Tmp(1,:); Qx=Tmp(2,:); + Tmp=Mixop(2,Data); + Py=Tmp(1,:) ; + Qy=Tmp(2,:); + Tmp=Mixop(3,Data); + Pz=Tmp(1,:); + Qz=Tmp(2,:); + end; + Ph=Perspt(Px); Qh=Perspt(Qx); R=Vecnagasa(Ph,Qh); + Kekka=[]; + if R>Eps + Ch=Qh+Dr/R*(Qh-Ph); + Kekka=Mixadd(Kekka,Pointdata(Ch)); + Expr(Ch,'c',Xname); + end + Ph=Perspt(Py); Qh=Perspt(Qy); R=Vecnagasa(Ph,Qh); + if R>Eps + Ch=Qh+Dr/R*(Qh-Ph); + Kekka=Mixadd(Kekka,Pointdata(Ch)); + Expr(Ch,'c',Yname); + end; + Ph=Perspt(Pz); Qh=Perspt(Qz); R=Vecnagasa(Ph,Qh); + if R>Eps + Ch=Qh+Dr/R*(Qh-Ph); + Kekka=Mixadd(Kekka,Pointdata(Ch)); + Expr(Ch,'c',Zname); + end; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ymax.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ymax.bin Binary files differnew file mode 100644 index 00000000..dd606856 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ymax.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ymax.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ymax.sci new file mode 100755 index 00000000..0a835534 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ymax.sci @@ -0,0 +1,5 @@ +function Y=Ymax() + global YMAX + Y=YMAX; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ymin.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ymin.bin Binary files differnew file mode 100644 index 00000000..e990681f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ymin.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ymin.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ymin.sci new file mode 100755 index 00000000..73d0d261 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Ymin.sci @@ -0,0 +1,5 @@ +function Y=Ymin() + global YMIN + Y=YMIN; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Zparapt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Zparapt.bin Binary files differnew file mode 100644 index 00000000..acd2edd0 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Zparapt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Zparapt.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Zparapt.sci new file mode 100755 index 00000000..5c237179 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Zparapt.sci @@ -0,0 +1,8 @@ +// 08.07.11 + +function Out=Zparapt(P) + global PHI THETA; + x=P(1); y=P(2); z=P(3); + Out=x*cos(PHI)*sin(THETA)+y*sin(PHI)*sin(THETA)+z*cos(THETA); +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Zperspt.bin b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Zperspt.bin Binary files differnew file mode 100644 index 00000000..76e4408e --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Zperspt.bin diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Zperspt.sci b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Zperspt.sci new file mode 100755 index 00000000..13601556 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Zperspt.sci @@ -0,0 +1,20 @@ +// 08.08.12 +// 10.01.02 + +function X3=Zperspt(P) + + global FocusPoint EyePoint + + Tmp=P-FocusPoint; + X1=Tmp(1); Y1=Tmp(2); Z1=Tmp(3); + Tmp=EyePoint-FocusPoint; + E1=Tmp(1); F1=Tmp(2); G1=Tmp(3); + Ca=E1/sqrt(E1^2+F1^2); + Sa=F1/sqrt(E1^2+F1^2); + X2=X1*Ca+Y1*Sa; Y2=-X1*Sa+Y1*Ca; Z2=Z1; + E2=E1*Ca+F1*Sa; F2=-E1*Sa+F1*Ca; G2=G1; + Cb=E2/sqrt(E2^2+G2^2); + Sb=G2/sqrt(E2^2+G2^2); + X3=X2*Cb+Z2*Sb; +endfunction + diff --git a/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/lib b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/lib new file mode 100644 index 00000000..3083cb73 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/lib @@ -0,0 +1,344 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<scilablib name="ketpicsciL6"> + <macro name="Addcounter" file="Addcounter.bin" md5="f7a17da511ba9fdd3cf4cdaf83f3d78c"/> + <macro name="Anglemark" file="Anglemark.bin" md5="0e984414d47cb604faef41ae93390dcb"/> + <macro name="Arrowdata" file="Arrowdata.bin" md5="b39db1a6340e09c9dfaa3fbb4c3777f1"/> + <macro name="Arrowhead" file="Arrowhead.bin" md5="0b0bc5478ce8afeb47770d9add192560"/> + <macro name="Arrowheaddata" file="Arrowheaddata.bin" md5="3c06f276e57945b3d54e11e39a9e9435"/> + <macro name="Arrowline" file="Arrowline.bin" md5="e15854f9c5c640cee8667f6128023620"/> + <macro name="Assign" file="Assign.bin" md5="c8d1390433c0a317d199f5491669e988"/> + <macro name="Assignadd" file="Assignadd.bin" md5="d24d31a4cfd1dc707c51c51ff9cdf364"/> + <macro name="Assignrep" file="Assignrep.bin" md5="e81413f3bc64c05ae0821b56fd63e5ef"/> + <macro name="Assignset" file="Assignset.bin" md5="6a6dad9e5a35cdddb0ac069ec601c061"/> + <macro name="Beginpicture" file="Beginpicture.bin" md5="9fd24a768a0d6548b1f458d51e1bb202"/> + <macro name="Bezier" file="Bezier.bin" md5="f23aa1069913d825c6f8040b3de17e7d"/> + <macro name="Bezierpt" file="Bezierpt.bin" md5="f09183e61d71f55243937a28ef90fb06"/> + <macro name="BorderHiddenData" file="BorderHiddenData.bin" md5="67622b4dca726e7aff9b4e92d411edcd"/> + <macro name="BorderPt" file="BorderPt.bin" md5="e482d76b67ceb360021f9cef448abc73"/> + <macro name="Borderparadata" file="Borderparadata.bin" md5="1bf108993d36707c45e3a25770ca2869"/> + <macro name="Borderpersdata" file="Borderpersdata.bin" md5="d46e7fdcf42a61c354a540359dcd9f5f"/> + <macro name="Borderrawdata" file="Borderrawdata.bin" md5="0228890cf35b6929fc3bb083b1211da6"/> + <macro name="Bowdata" file="Bowdata.bin" md5="1f5f1c65d0448af83143e14f53565393"/> + <macro name="Bowmiddle" file="Bowmiddle.bin" md5="0a765efd6dae8c6fbd0d075ef0ff8b3c"/> + <macro name="Bowname" file="Bowname.bin" md5="e8ab45879c83d386dcf5e086fe71e1a4"/> + <macro name="Bownamerot" file="Bownamerot.bin" md5="ce9e45bf14fca7b62fa56b6d0b3baaef"/> + <macro name="CalcHeight" file="CalcHeight.bin" md5="f535ff3dcd86bc6552b54894e5865673"/> + <macro name="CalcWidth" file="CalcWidth.bin" md5="cf0f3d22a9dd2ffdb077a4be5bf1219f"/> + <macro name="Calcfun" file="Calcfun.bin" md5="618d36dbe48f68b4a3e2664b5df8cad2"/> + <macro name="CameraCurve" file="CameraCurve.bin" md5="b8acf2da07c09553106c10b4cc29d9e7"/> + <macro name="CameracoordCurve" file="CameracoordCurve.bin" md5="91ad20f64500117414f16a1cce2c344f"/> + <macro name="Cancoordpara" file="Cancoordpara.bin" md5="61afc19fb49f4b16d48a3cc54c6c6650"/> + <macro name="Cancoordpers" file="Cancoordpers.bin" md5="3a82d9864deed9b050795decae25d8bb"/> + <macro name="Circledata" file="Circledata.bin" md5="a5a1cf644e81417a9065d80f71b24d8d"/> + <macro name="Clipindomain" file="Clipindomain.bin" md5="773133bed55b7003b0248ffb670e3685"/> + <macro name="Closefile" file="Closefile.bin" md5="d29119f97c49373729d10b0cfba746e4"/> + <macro name="Closeobj" file="Closeobj.bin" md5="18df14cfd19b6a7911f9a3748572c02c"/> + <macro name="Closepar" file="Closepar.bin" md5="b8f58e851efa7f12560401c5b0760ecf"/> + <macro name="Closephr" file="Closephr.bin" md5="f53a01c653931c16bd3c493950798acf"/> + <macro name="Closepicture" file="Closepicture.bin" md5="32f401713757a349111cfaf0adcf199d"/> + <macro name="Connectseg" file="Connectseg.bin" md5="439d9f55197c09cd7b54e98cc7151208"/> + <macro name="Crossprod" file="Crossprod.bin" md5="536992b625b66d009e88e73a21a354d6"/> + <macro name="Crv3onsfHiddenData" file="Crv3onsfHiddenData.bin" md5="716dedc06dea644e6aadecf58ab050f4"/> + <macro name="Crv3onsfparadata" file="Crv3onsfparadata.bin" md5="e0d51c785077d687bfc222837fd8593b"/> + <macro name="Crv3onsfpersdata" file="Crv3onsfpersdata.bin" md5="63bcd579f64f40cc04e50094782e09e0"/> + <macro name="CrvonsfHiddenData" file="CrvonsfHiddenData.bin" md5="009a9889bf1f2a3a05f38918b579b7cb"/> + <macro name="Crvonsfparadata" file="Crvonsfparadata.bin" md5="6d5468227fd75007c1dfe4572c1c189c"/> + <macro name="Crvonsfpersdata" file="Crvonsfpersdata.bin" md5="de082902912599535a629ed08e56fb6c"/> + <macro name="CrvsfHiddenData" file="CrvsfHiddenData.bin" md5="f8d158838c95df89a67bf8233e541a09"/> + <macro name="Crvsfparadata" file="Crvsfparadata.bin" md5="885de6d7639a403dd01a2761e39a6ad1"/> + <macro name="Crvsfpersdata" file="Crvsfpersdata.bin" md5="3a660a01512f537e270f611d45512032"/> + <macro name="CuspData" file="CuspData.bin" md5="0958a008a4c59305d62522f9b80028da"/> + <macro name="CuspPt" file="CuspPt.bin" md5="08b55dc8b3e2d0ee1fea47b71825af92"/> + <macro name="CuspSplitPt" file="CuspSplitPt.bin" md5="0ff09f7f3d56080bbad1a1a26260f254"/> + <macro name="Cuspsplitpara" file="Cuspsplitpara.bin" md5="e54d63f2224cff696951a50800d0c4d4"/> + <macro name="Cuspsplitpers" file="Cuspsplitpers.bin" md5="ebf6aef58ed839a05d27771eeb0fc60c"/> + <macro name="Cutsf2d" file="Cutsf2d.bin" md5="adc0dd43b75ee65d181c56c5eeef3b0a"/> + <macro name="Dashline" file="Dashline.bin" md5="4d0497d9013039e15ff2b287b2c0988b"/> + <macro name="Dataindex" file="Dataindex.bin" md5="f0b3b146c9ee16cde54ecd4937acb0b9"/> + <macro name="Definecolor" file="Definecolor.bin" md5="337b7001704f8c604b555e35721973d6"/> + <macro name="Deqplot" file="Deqplot.bin" md5="43a868bfe9d41dc2389116b15d18df80"/> + <macro name="Derivative" file="Derivative.bin" md5="f0b451a2b43c69168ac088e8443f6961"/> + <macro name="Diagcelldata" file="Diagcelldata.bin" md5="efc679b9d0239e2669c6a0929a4e242b"/> + <macro name="Dividegraphics" file="Dividegraphics.bin" md5="b2c065a1249613d3cf7f6ba80ec816a4"/> + <macro name="Dividetable" file="Dividetable.bin" md5="af1d4f7f854da91ce2b4cec13ff44bc5"/> + <macro name="Doscaling" file="Doscaling.bin" md5="86184ec15f528517d5e37e8b5baa3754"/> + <macro name="Dotfilldata" file="Dotfilldata.bin" md5="80a560945fc679f1f036778833dd59a7"/> + <macro name="Dotprod" file="Dotprod.bin" md5="e1a7afad315e324245ec76499b5dfb6c"/> + <macro name="Dottedline" file="Dottedline.bin" md5="fc23c9d6f73b41f120a39590dd4eeeb0"/> + <macro name="Dropnumlistcrv" file="Dropnumlistcrv.bin" md5="1875178bc5c363af0d15f8276503be4a"/> + <macro name="Droppoint" file="Droppoint.bin" md5="c25e16076a319350b8763f48476b4ec6"/> + <macro name="Drwline" file="Drwline.bin" md5="8b3116566aee206aa64fe0f162963ae3"/> + <macro name="Drwpt" file="Drwpt.bin" md5="2da954a103d3d925b661e23b34c3e2f4"/> + <macro name="Drwxy" file="Drwxy.bin" md5="c17d9f6608390f019c87d6e1e181e8a3"/> + <macro name="Embed" file="Embed.bin" md5="7cc5c0ccfeb87763b205b3fcf0dc67b4"/> + <macro name="Enclosing" file="Enclosing.bin" md5="457c453795c3b3224be70e1721385cb1"/> + <macro name="EnclosingS" file="EnclosingS.bin" md5="13de130f31f7932194fd173f977ff896"/> + <macro name="Endpicture" file="Endpicture.bin" md5="9b3ce661a450d798d55889be6ffd31ac"/> + <macro name="Evlptablepara" file="Evlptablepara.bin" md5="06e669cba02eb0218f852fdf46b1cae5"/> + <macro name="Evlptablepers" file="Evlptablepers.bin" md5="6cc6897a677911ce2629157f932f32c5"/> + <macro name="Execmd" file="Execmd.bin" md5="c3a30b0fae6f2a8ce6593607ed0d2ed8"/> + <macro name="Expr" file="Expr.bin" md5="c3e260bc0fd7af5a7231431ef9033f5c"/> + <macro name="Exprrot" file="Exprrot.bin" md5="6fc71ff18629fc512e5fed1218433619"/> + <macro name="Faceremovaldata" file="Faceremovaldata.bin" md5="90e9f3a860839349b2486df6fff7adb4"/> + <macro name="Facesdata" file="Facesdata.bin" md5="0c43ae73a08dcfce906c075f17eec59a"/> + <macro name="Findcell" file="Findcell.bin" md5="9b9cc86ef6f67a8d539d30ec58ad9005"/> + <macro name="Flattenlist" file="Flattenlist.bin" md5="d4b4a78c9e9760a4cbeda97f54592acb"/> + <macro name="Fontsize" file="Fontsize.bin" md5="3620d8e64b61ab17778776195acec82a"/> + <macro name="Fouriercoeff" file="Fouriercoeff.bin" md5="83dfcd5c4a1d0f7ccb711d89b0a8003c"/> + <macro name="FouriercoeffL" file="FouriercoeffL.bin" md5="29b8c2c57c53796531cb8316630e87ee"/> + <macro name="Fouriersum" file="Fouriersum.bin" md5="3cf167292e587148fe7d3a9d2e34eab0"/> + <macro name="Fracform" file="Fracform.bin" md5="6dfc4e723a0a2d55ef9e2e9028e5a0b1"/> + <macro name="Framedata" file="Framedata.bin" md5="712be5ee4fdd60fe132b951022f7f5e1"/> + <macro name="Fullformfunc" file="Fullformfunc.bin" md5="ebc5473763f9884c091aa9863062702b"/> + <macro name="Gaiseki" file="Gaiseki.bin" md5="36a6b9567ed081b46107ed3374562196"/> + <macro name="Getcounter" file="Getcounter.bin" md5="45f7aec5f0936f4abe6e65296634a847"/> + <macro name="Gettrace" file="Gettrace.bin" md5="bb84c353b0e3af593e903273160d9bd9"/> + <macro name="Hatchdata" file="Hatchdata.bin" md5="e05c42f885a108c41a75bf1b607b509b"/> + <macro name="Hexahedrondata" file="Hexahedrondata.bin" md5="86efcd2c370b4e76adfeea3b75639d31"/> + <macro name="HiddenWireData" file="HiddenWireData.bin" md5="a080bcb1dcc97c1205fff04562d694fd"/> + <macro name="Htickmark" file="Htickmark.bin" md5="bdafbfedbc2441fe5cd989910852c79e"/> + <macro name="ImplicitData" file="ImplicitData.bin" md5="24a9ea9eb043677084250a30d6c6db00"/> + <macro name="Implicitplot" file="Implicitplot.bin" md5="7d1075882d5446646c2304e00e70ad6d"/> + <macro name="InWindow" file="InWindow.bin" md5="cf3f449e5189b8d40a3d3a4c219a92ea"/> + <macro name="Initangle" file="Initangle.bin" md5="c6902d32536d434af7f28c28b45290ab"/> + <macro name="Integrate" file="Integrate.bin" md5="6f255339baf16af41b20d9b2d86adb50"/> + <macro name="Intersectcrvs" file="Intersectcrvs.bin" md5="68b875e1418a8a231095155ca2482cbc"/> + <macro name="IntersectcrvsPp" file="IntersectcrvsPp.bin" md5="5c05582df9fa8f9a05fa42ef1cf799ae"/> + <macro name="Intersectcrvsf" file="Intersectcrvsf.bin" md5="89b1b7d500237aebbd41f1094560609b"/> + <macro name="Intersectlines" file="Intersectlines.bin" md5="5a4837581398e0f6299d83805b325fd6"/> + <macro name="IntersectselfPp" file="IntersectselfPp.bin" md5="d10bc970ff6540655fedece748a0f1d7"/> + <macro name="Invdashline" file="Invdashline.bin" md5="d72a1842fe88eb719dd85ce45caafc96"/> + <macro name="Invert" file="Invert.bin" md5="7018f80081bca2cb147e81ea435ba287"/> + <macro name="Invparapt" file="Invparapt.bin" md5="b58cfbc854e7b14d076b1f1676c3f54b"/> + <macro name="Invperspt" file="Invperspt.bin" md5="c8500cf469fd4a4c8399e5e093f49126"/> + <macro name="Joincrvs" file="Joincrvs.bin" md5="41981f483c2cfacab95b25356ee5a7d1"/> + <macro name="Joingraphics" file="Joingraphics.bin" md5="e525e21001a3408e5bb3587d24ca4916"/> + <macro name="Ketinit" file="Ketinit.bin" md5="bd9d49f1927a921db621d419da386e1d"/> + <macro name="Kouten" file="Kouten.bin" md5="b0fbbe27e4961ef9a8d0652b1d9edfaf"/> + <macro name="KoutenList" file="KoutenList.bin" md5="ca822b6e42d545a627a7129d02b91cb2"/> + <macro name="Koutenseg" file="Koutenseg.bin" md5="2424557c72db63186699b8ab8fb4ef64"/> + <macro name="Kukannozoku" file="Kukannozoku.bin" md5="40cef25e80745039eb34c5066dfe2d14"/> + <macro name="Kukeiwake" file="Kukeiwake.bin" md5="2e42c3fdef9ac1f7aaca550ff11307c3"/> + <macro name="Kyorihensuu" file="Kyorihensuu.bin" md5="3f313b70f962d573d0db9a548ed4ebc4"/> + <macro name="Kyoukai" file="Kyoukai.bin" md5="630a8517e9e9ae8ecb2a5372c87193fd"/> + <macro name="Letter" file="Letter.bin" md5="a587d241a5c2f1c69b0904632af16a26"/> + <macro name="Letterrot" file="Letterrot.bin" md5="1ce92bf2c945ee12d0746ae7f2fe6b5d"/> + <macro name="Lineplot" file="Lineplot.bin" md5="d2b8a90dd16c873622ffc291b7c9ed64"/> + <macro name="Listplot" file="Listplot.bin" md5="1575fd89b2e6c3c96b90b6889006370f"/> + <macro name="MakeBowdata" file="MakeBowdata.bin" md5="ab5ea1d8c5cc092ea13021c3fb255613"/> + <macro name="MakeCurves" file="MakeCurves.bin" md5="a1d7968df6f80673bab58af5762640a4"/> + <macro name="MakecutbycrvL" file="MakecutbycrvL.bin" md5="8ddeb50d60ce53392a6d6ec76fad7bee"/> + <macro name="Makehasen" file="Makehasen.bin" md5="198b502dc227e2fb5fb9d945fa3b6a27"/> + <macro name="Makeliststr" file="Makeliststr.bin" md5="bf4e86417206108a51e2b0210b990557"/> + <macro name="Makesfcutoffdata" file="Makesfcutoffdata.bin" md5="7b61d0f517b18505225edbac83729b6f"/> + <macro name="Makeshasen" file="Makeshasen.bin" md5="878e44c4780cdac427a7d55f551373a2"/> + <macro name="Makeskeletondata" file="Makeskeletondata.bin" md5="6c918f7f13736227cc0ac351c6fd7a54"/> + <macro name="Makeskeletonpersdata" file="Makeskeletonpersdata.bin" md5="72dd47219b4e6689c54c69eed62f06dc"/> + <macro name="Makevaltable" file="Makevaltable.bin" md5="c279f90b73efc06d235c983bd08ce47b"/> + <macro name="MakeveLfaceL" file="MakeveLfaceL.bin" md5="1afea9c44a3dbe277e601b02d38be3cc"/> + <macro name="Makexybdy" file="Makexybdy.bin" md5="6eca03d530a515cdfe0b98d33fee2b67"/> + <macro name="Mawarikomi" file="Mawarikomi.bin" md5="61b967de5ef56e29016932c9f77c561a"/> + <macro name="MeetWindow" file="MeetWindow.bin" md5="ae7f015eebc2250c20ad876d1d3ec9e4"/> + <macro name="Meetpoints" file="Meetpoints.bin" md5="ffeccee8bfbebd44a45abdfe91c3cca1"/> + <macro name="Member" file="Member.bin" md5="6c29ab2fdbbc61889c95b45d820d317d"/> + <macro name="Menkakusi" file="Menkakusi.bin" md5="53d3fee4c99b28d7aac10f8114fe2524"/> + <macro name="Menkakusi2" file="Menkakusi2.bin" md5="eedabe7e3dd93f6af4fe225a6aa4b2ed"/> + <macro name="Mix" file="Mix.bin" md5="f9f822bf34f04f9dc5401f492b8dc76b"/> + <macro name="MixL" file="MixL.bin" md5="e80cd4b09be7c0a9b88cfaea7bcf802a"/> + <macro name="MixS" file="MixS.bin" md5="d60abae70f94ff28b184306e971d1102"/> + <macro name="Mixadd" file="Mixadd.bin" md5="51da5be70ce2e556dd75d812715faad4"/> + <macro name="Mixdisp" file="Mixdisp.bin" md5="b2b5187462a54615cca28f272232b61f"/> + <macro name="Mixjoin" file="Mixjoin.bin" md5="f9df8699f8cb95ca2b657403a94a9d8f"/> + <macro name="Mixlength" file="Mixlength.bin" md5="ee9cee8e9c916ea42ed8e1e8ad70e321"/> + <macro name="Mixmake" file="Mixmake.bin" md5="b84d74ef8def9658fa2d8f34cc8424f5"/> + <macro name="Mixop" file="Mixop.bin" md5="8c5f9a72e8838aa4b9c9f45013000670"/> + <macro name="Mixsub" file="Mixsub.bin" md5="f2a14687cf8a0c6daaede12d0b730dd5"/> + <macro name="Mixtype" file="Mixtype.bin" md5="0a0931265b0666b53416685a35897f82"/> + <macro name="Naigai" file="Naigai.bin" md5="6e97fdbd9f1feabfb09b2247518c4399"/> + <macro name="Naiseki" file="Naiseki.bin" md5="8f33757e011f07a03a144414296c3190"/> + <macro name="Nearestpt" file="Nearestpt.bin" md5="7b392fdb66cdafb6ccf4e3f083967ba2"/> + <macro name="Newlength" file="Newlength.bin" md5="ea7efdb86cdb3345f0b3e43427cb2c48"/> + <macro name="Nohiddenpara" file="Nohiddenpara.bin" md5="b46886584a10d67fbdb7816c5c739fb8"/> + <macro name="Nohiddenpara2" file="Nohiddenpara2.bin" md5="be95c5d2791c7b05e25c1def88f2bdc6"/> + <macro name="Nohiddenpers" file="Nohiddenpers.bin" md5="1e867c6479823f428d90911b099cdbcf"/> + <macro name="Nohiddenpers2" file="Nohiddenpers2.bin" md5="f96bfe5e316b4b771ab3d26b27b73615"/> + <macro name="Numptcrv" file="Numptcrv.bin" md5="5bf4461504105054dd993bff3b35f370"/> + <macro name="Objcurve" file="Objcurve.bin" md5="3f7684be52bce1b1458d378be0849229"/> + <macro name="Objjoin" file="Objjoin.bin" md5="74a96fb8ed5d88ff1008156f27738f5a"/> + <macro name="Objname" file="Objname.bin" md5="74d2732da725b97cb3c0eb443a6f5ed9"/> + <macro name="Objpolygon" file="Objpolygon.bin" md5="56d22a5ae20dcfc9a0cd4b8a440385e6"/> + <macro name="Objpolyhedron" file="Objpolyhedron.bin" md5="ff92bd278e558ead5df19970d6d01546"/> + <macro name="Objrecs" file="Objrecs.bin" md5="e8ca7cd5993fb7ce8e5b509dce42e46b"/> + <macro name="Objsurf" file="Objsurf.bin" md5="f3017f49c709447a7024d16edb01580d"/> + <macro name="Objsymb" file="Objsymb.bin" md5="ef3fbae27f502a20ff4df575638d4e52"/> + <macro name="Objthicksurf" file="Objthicksurf.bin" md5="07f9c70cedf719587412c848812c7704"/> + <macro name="Op" file="Op.bin" md5="cb2e0935be6b77b1c0bc4f2c7071a1cb"/> + <macro name="Openfile" file="Openfile.bin" md5="bfccc88e9e9abcd83236dd4dd5da2cb4"/> + <macro name="Openobj" file="Openobj.bin" md5="c60578368dceeb4ab79f74e6de774ffd"/> + <macro name="Openpar" file="Openpar.bin" md5="39554dc8c76d98179e21e6878af691c5"/> + <macro name="Openphr" file="Openphr.bin" md5="a086531ca6cf4e112742d5aef90943cf"/> + <macro name="Openpicture" file="Openpicture.bin" md5="e7b76f0bb2132c86350d0f1293a31069"/> + <macro name="Ovalbox" file="Ovalbox.bin" md5="d22bdac24b70c1d6b1625dcf3a8ce007"/> + <macro name="Ovaldata" file="Ovaldata.bin" md5="0facfbd0760cec3d8fa762f7dea098f2"/> + <macro name="Paramark" file="Paramark.bin" md5="644e9aa93430fd35f3639875d6759584"/> + <macro name="ParamonCurve" file="ParamonCurve.bin" md5="910c0b77eb025faf243e2d2cb7ebd043"/> + <macro name="Paramoncrv" file="Paramoncrv.bin" md5="48c6dc127d039740c0a11def8a18fe8a"/> + <macro name="Paramplot" file="Paramplot.bin" md5="09b2750fc9950bbc258a881a2c12a97b"/> + <macro name="Parapt" file="Parapt.bin" md5="e130c84b03164202cf8e25ea27558859"/> + <macro name="Partcrv" file="Partcrv.bin" md5="819797d94d68bf7df7c29b01717525a6"/> + <macro name="Partcrv3" file="Partcrv3.bin" md5="c87d37f9f00aff9ce05a3a3879c6ea5a"/> + <macro name="Partframe" file="Partframe.bin" md5="8df2a78e61362e18cf3b71779ffffbd4"/> + <macro name="PartitionPt" file="PartitionPt.bin" md5="a4afd33aca16e70df0984f7cf05371ce"/> + <macro name="Partitionseg" file="Partitionseg.bin" md5="c0ce6ccd18ea9794f55a9e6926328ea1"/> + <macro name="Perspt" file="Perspt.bin" md5="5415e8696ae175005b59936b2e164bac"/> + <macro name="PhFaceL" file="PhFaceL.bin" md5="b8748ee001a1357e2820b304083ce09e"/> + <macro name="PhHiddenData" file="PhHiddenData.bin" md5="6a0ab5d6aeb7d4c66b31ab86ac5afdae"/> + <macro name="PhVertexL" file="PhVertexL.bin" md5="9d7e1d653e88fc9b98f783ec57ebe8ca"/> + <macro name="Phcutdata" file="Phcutdata.bin" md5="bed83bc88efc277012bab8ba47b9d810"/> + <macro name="Phcutoffdata" file="Phcutoffdata.bin" md5="2ca3881c7cdfe2fee62aa3e64af34157"/> + <macro name="Phidegree" file="Phidegree.bin" md5="5d1ac461a2fee60c6c2dda978a262428"/> + <macro name="Phparadata" file="Phparadata.bin" md5="cbc40d5c2c508a72e51adac3ffecdd4c"/> + <macro name="Phpersdata" file="Phpersdata.bin" md5="51601f80ae1578cf4aa0d6f244ba5027"/> + <macro name="Phrawparadata" file="Phrawparadata.bin" md5="371b244204a19e6a12e70773cb118f21"/> + <macro name="Phrawpersdata" file="Phrawpersdata.bin" md5="f2371fdb24326f6c7a209f9b70d07ce1"/> + <macro name="Phsparadata" file="Phsparadata.bin" md5="762751108de07b4e5a1e6264e16d487c"/> + <macro name="Phspersdata" file="Phspersdata.bin" md5="acf5af0f78c134ae893fd057e408dd3e"/> + <macro name="Phsrawparadata" file="Phsrawparadata.bin" md5="2aebf882e1d6cd11e44cb2815fd186fd"/> + <macro name="Phsrawpersdata" file="Phsrawpersdata.bin" md5="b90465806262e6016d26450f6654194d"/> + <macro name="Plotdata" file="Plotdata.bin" md5="676695f9f9b9a91cfea1ee426d7185ce"/> + <macro name="Pointdata" file="Pointdata.bin" md5="eb131a9f0a6687722dc491cedb732ade"/> + <macro name="PointonCurve" file="PointonCurve.bin" md5="168183930f3fce712571ad5b737f7004"/> + <macro name="Pointoncrv" file="Pointoncrv.bin" md5="a0a2cd4d7f51bec560eb26fef054d835"/> + <macro name="Powersum" file="Powersum.bin" md5="29a72b2125d2f95cfd9bdd742a4e106b"/> + <macro name="Prime" file="Prime.bin" md5="35045b439a59fabbe9a4127d12706fb6"/> + <macro name="Printobjstr" file="Printobjstr.bin" md5="2b4d610c4a39dcab5cfb5c93f7dff5ea"/> + <macro name="ProjCurve" file="ProjCurve.bin" md5="7d548512c30e79cd098aa7b2f96a4ebf"/> + <macro name="ProjcoordCurve" file="ProjcoordCurve.bin" md5="ddf1fa0e05421feaa482038b26925ab5"/> + <macro name="Projpara" file="Projpara.bin" md5="98da96de9ea67f2db4111877d7ff785e"/> + <macro name="Projpers" file="Projpers.bin" md5="7820810b8c0861b22e8dcdc23f1c0864"/> + <macro name="Ptcrv" file="Ptcrv.bin" md5="d353fd7e1af4fac1533c7e0ddebf996e"/> + <macro name="Ptend" file="Ptend.bin" md5="5b30f64ef0920f13b540db8eb5f93e5a"/> + <macro name="PthiddenQ" file="PthiddenQ.bin" md5="c1e31cee1140bf7942b7e1c83514d790"/> + <macro name="Ptne" file="Ptne.bin" md5="833e0e4b3ced75d740eaaab4c1fc88bd"/> + <macro name="Ptnw" file="Ptnw.bin" md5="8415bd27db46c35cec56e67d2ca9734f"/> + <macro name="Ptse" file="Ptse.bin" md5="f5180a6df918355d3a588786e7be8cf4"/> + <macro name="Ptstart" file="Ptstart.bin" md5="f0e4baaf1f46e6b379571e9414a83812"/> + <macro name="Ptsw" file="Ptsw.bin" md5="c30adf43aa5f3c9a0961402ab3b8ddc9"/> + <macro name="Putcell" file="Putcell.bin" md5="da158190a8848db850d3d34a16d36dc8"/> + <macro name="Putcirmark" file="Putcirmark.bin" md5="9f1b9f829d10c8d29f3c2ea6d316383b"/> + <macro name="PutcoL" file="PutcoL.bin" md5="d8f49a7b534060301063804207669228"/> + <macro name="PutcoLexpr" file="PutcoLexpr.bin" md5="d35417b4b818f80c7b96f99118795d48"/> + <macro name="PutcoLstr" file="PutcoLstr.bin" md5="32c9d7d6751b5c85adca1c384ec98c10"/> + <macro name="Putdashmark" file="Putdashmark.bin" md5="03b76cd3bbc9e52df76c2be30c42570b"/> + <macro name="Putrecmark" file="Putrecmark.bin" md5="a5c20a30353d0c79c0dcea3cf39c54e3"/> + <macro name="Putrow" file="Putrow.bin" md5="0a9adbebc80444ab1495a302265920e6"/> + <macro name="Putrowexpr" file="Putrowexpr.bin" md5="4a32c3441cd9ad7c23656ab97e65d352"/> + <macro name="Putrowstr" file="Putrowstr.bin" md5="92ee0311a5e4bb7995a9d44bfbc1460d"/> + <macro name="Puttrace" file="Puttrace.bin" md5="08b64f48285a49c1cb6138fe1491c8fe"/> + <macro name="Ratiocmyk" file="Ratiocmyk.bin" md5="54098c052d304f2b329cc4fd2bd23bc1"/> + <macro name="ReadOutData" file="ReadOutData.bin" md5="0198ca044595d75779d267e425e5380a"/> + <macro name="ReadfromCindy" file="ReadfromCindy.bin" md5="1fed87229911382502d7e7cfd359f4c1"/> + <macro name="Readtextdata" file="Readtextdata.bin" md5="4acbbc591808404b6814db3175c2ffed"/> + <macro name="Reflectdata" file="Reflectdata.bin" md5="51d5020a418590fe64cbf4883da76562"/> + <macro name="Rmmember" file="Rmmember.bin" md5="31ade9c8802d46438ace1e53bb769b86"/> + <macro name="Rotate3data" file="Rotate3data.bin" md5="5aaab016d1fed7a61f270e3b4ad84316"/> + <macro name="Rotate3pt" file="Rotate3pt.bin" md5="7feea2dd66e7a02b96c384011d818a0e"/> + <macro name="Rotatedata" file="Rotatedata.bin" md5="f7c7aa1bd5b2d2d99b66bb3bd711de19"/> + <macro name="Roundstr" file="Roundstr.bin" md5="dd261bcd78d1110bfd9fd775efcf5a4e"/> + <macro name="Scaledata" file="Scaledata.bin" md5="fac166fc1de490a64dd7f7a8f46164a9"/> + <macro name="Sectionview" file="Sectionview.bin" md5="db370ec400c90c7865f7c626572e39f7"/> + <macro name="Setangle" file="Setangle.bin" md5="57190782b3c5c0ace7f2adecb18e4aed"/> + <macro name="Setarrow" file="Setarrow.bin" md5="e7baa60ca4f593de15c7cb8b56be800a"/> + <macro name="Setax" file="Setax.bin" md5="ef281e109b01e3b65d1842e0d2a03873"/> + <macro name="Setcolor" file="Setcolor.bin" md5="b0adb12d43ae4da2815331389b85f944"/> + <macro name="Setcounter" file="Setcounter.bin" md5="e38d212ffa114288c73ccdb613c9cb9d"/> + <macro name="Setmark" file="Setmark.bin" md5="d4cb68ac16edcd28a86ba2a0563b9597"/> + <macro name="Setmarklen" file="Setmarklen.bin" md5="ec3870c326393f15a29d77cf476618cf"/> + <macro name="Setobjdecimals" file="Setobjdecimals.bin" md5="823bc64fbdda67813d1e3c3bf592a0e3"/> + <macro name="Setobjscale" file="Setobjscale.bin" md5="a2cdb49a13b0dc89328a7194f34eeeab"/> + <macro name="Setorigin" file="Setorigin.bin" md5="fe236fa677bab1dd24e53cfc28022826"/> + <macro name="Setpen" file="Setpen.bin" md5="31370146f7f7aac59de13ffbc2c0172d"/> + <macro name="Setpers" file="Setpers.bin" md5="830fe8254a07765e703077b456353070"/> + <macro name="Setpt" file="Setpt.bin" md5="cbfbda69ce4184fc0ad59bfbe01943a6"/> + <macro name="Setscaling" file="Setscaling.bin" md5="263333f56ad33907534fdb460e54da9b"/> + <macro name="SetstereoL" file="SetstereoL.bin" md5="2711aa6a1541336aec852ac1437155ac"/> + <macro name="SetstereoR" file="SetstereoR.bin" md5="bd74d871d1bc79ed8c01a13a569eb7bb"/> + <macro name="Setunitlen" file="Setunitlen.bin" md5="1e245724b987e84c413bf37a30bb5dd3"/> + <macro name="Setversion" file="Setversion.bin" md5="d6dbab1ce7bb18b2c773bae647e4ac5d"/> + <macro name="Setwindow" file="Setwindow.bin" md5="e781a89da1ce77fbc46f713553523c51"/> + <macro name="Sf3data" file="Sf3data.bin" md5="095b6c0f2bf25f7b9ed5f5d8d3a8915d"/> + <macro name="Sfbdparadata" file="Sfbdparadata.bin" md5="f9c0c54671a68458f4bcb1936fa402ec"/> + <macro name="Sfbdpersdata" file="Sfbdpersdata.bin" md5="aa08f921566b64c11e888ee34429eca5"/> + <macro name="Sfbdrawparadata" file="Sfbdrawparadata.bin" md5="fae8431fd5fe5ead8ff2f85d45e144c1"/> + <macro name="Sfbdrawpersdata" file="Sfbdrawpersdata.bin" md5="1cafbda088573fad0d85f2bb2a165178"/> + <macro name="Sfcutdata" file="Sfcutdata.bin" md5="4dff7dff641c5e51588e8f27c2068396"/> + <macro name="Sfcutoffparadata" file="Sfcutoffparadata.bin" md5="d5089ce276ce8329a5e25772eda825ad"/> + <macro name="Sfcutoffpersdata" file="Sfcutoffpersdata.bin" md5="8f232600533c8c553d279fb7999a9aef"/> + <macro name="Sfcutoffrawparadata" file="Sfcutoffrawparadata.bin" md5="b530fdec88ecac05548dcbc183fac672"/> + <macro name="Sfcutoffrawpersdata" file="Sfcutoffrawpersdata.bin" md5="c7dc8aec4aedc1a9e3b88a423b4e4091"/> + <macro name="Sfparadata" file="Sfparadata.bin" md5="636205ff5e7fa28c188beb8a788ec30f"/> + <macro name="Sfpersdata" file="Sfpersdata.bin" md5="2c198aaa68180b41eb0dd81812668a52"/> + <macro name="Shade" file="Shade.bin" md5="09675938f324e2c22fe2b6e5dd0db554"/> + <macro name="Skeleton2data" file="Skeleton2data.bin" md5="046308bb7c2d18186a5db1abf5724ace"/> + <macro name="Skeletonpara3data" file="Skeletonpara3data.bin" md5="8b00d1898174de20f097983ad72f96d9"/> + <macro name="Skeletonparadata" file="Skeletonparadata.bin" md5="6368394d29bd3e34c9dadbc54dd49755"/> + <macro name="Skeletonpers3data" file="Skeletonpers3data.bin" md5="62a627cd77291d934150cbe175d9ec06"/> + <macro name="Skeletonpersdata" file="Skeletonpersdata.bin" md5="63663e9c381325970209a62a00877361"/> + <macro name="Spacecurve" file="Spacecurve.bin" md5="e06c5eb2ae8623cee4fe135d6ed8d2a5"/> + <macro name="Spaceline" file="Spaceline.bin" md5="bcdf09d58fde1a3071968c7600cbcadc"/> + <macro name="Splinedata" file="Splinedata.bin" md5="c8cac41f49166b548f6bb20eb765f513"/> + <macro name="Strop" file="Strop.bin" md5="b3e20bfeaaf10aa827ec9be26865547b"/> + <macro name="Subs" file="Subs.bin" md5="daa0438a2d34af2d043c50b3d2a00a01"/> + <macro name="Sumfun" file="Sumfun.bin" md5="0a785d3c30c763778e1f92d3b8fb785e"/> + <macro name="Symb3data" file="Symb3data.bin" md5="ba72252ea118f44b847927d0de9b9892"/> + <macro name="Symbdata" file="Symbdata.bin" md5="53c196c0ca5f9026e4cd441e0d6586ed"/> + <macro name="Tabledata" file="Tabledata.bin" md5="b79bdcd7c171ab768e763d26d9b4f6a1"/> + <macro name="Texcom" file="Texcom.bin" md5="dc0139e9541acb939d1c3839a0fc11f6"/> + <macro name="Texctr" file="Texctr.bin" md5="5f23e09b23191bec07cb10b070d5c66b"/> + <macro name="Texelse" file="Texelse.bin" md5="f8b67c8497e8dd9ac1dbcc5a90fc930c"/> + <macro name="Texend" file="Texend.bin" md5="351105e6dd3c5c171f0944030fba69c4"/> + <macro name="Texendfor" file="Texendfor.bin" md5="7d1005515ed98a776c7c9a00a2a970d8"/> + <macro name="Texendif" file="Texendif.bin" md5="6323c9cf98ac4c1d6e01bef2dadc6614"/> + <macro name="Texfor" file="Texfor.bin" md5="0ade87f95e63dadbdbfe35efbca00e86"/> + <macro name="Texforinit" file="Texforinit.bin" md5="6e96556a978535b632dba9e33b9551b3"/> + <macro name="Texif" file="Texif.bin" md5="db3af265fced379c5bc2a35dcd661aef"/> + <macro name="Texletter" file="Texletter.bin" md5="7a7ebe58bae97a3a17d646d1c7a9e1da"/> + <macro name="Texnewcmd" file="Texnewcmd.bin" md5="b4f314f440314e77d8c93385172eb5e1"/> + <macro name="Texnewctr" file="Texnewctr.bin" md5="86756d50c10bcf8359c1a924e6e1004d"/> + <macro name="Texrenewcmd" file="Texrenewcmd.bin" md5="90e63f10dd735a7263da2cb8661692c7"/> + <macro name="Texsetctr" file="Texsetctr.bin" md5="8d9cd50bcb9304e25e27ac7818c9b047"/> + <macro name="Texthectr" file="Texthectr.bin" md5="b74d5106ff432a8c84dfd3e8baf9402f"/> + <macro name="Texvalctr" file="Texvalctr.bin" md5="6a789e4941c736527f57d75d1ba26123"/> + <macro name="Texvctr" file="Texvctr.bin" md5="05e1f689e4002ca0b53c1b7674d814e0"/> + <macro name="Thetadegree" file="Thetadegree.bin" md5="0ff4846aaeb83b20683ec4d4b60ed98f"/> + <macro name="ThisVersion" file="ThisVersion.bin" md5="5d9fc94c56eb694d62a16b1f7a6a9d04"/> + <macro name="Tolist" file="Tolist.bin" md5="65c83ab06c83674c70f46e0f402d3580"/> + <macro name="Translate3data" file="Translate3data.bin" md5="38c5bcaf8d3659c75cd7cf335d26196b"/> + <macro name="Translatedata" file="Translatedata.bin" md5="17b85cc7ed17d1f260cf758ead8dc0ab"/> + <macro name="Trunc" file="Trunc.bin" md5="7a6a605bcba822854e4c917fe41db659"/> + <macro name="Unscaling" file="Unscaling.bin" md5="08ee317471c47d086c9404e47955b17b"/> + <macro name="Vecnagasa" file="Vecnagasa.bin" md5="aaeae5f1a186bba7b2c357a2c77ce2a1"/> + <macro name="Vecnagasa2" file="Vecnagasa2.bin" md5="41c4c41904d6b87a9844d20fd860a6cb"/> + <macro name="Viewfrom" file="Viewfrom.bin" md5="fe4685d5db0abf45a31b2b643b20c23f"/> + <macro name="Vtickmark" file="Vtickmark.bin" md5="375b4bc294d26ab3b7d30f8fbd4bfad7"/> + <macro name="Windisp" file="Windisp.bin" md5="1e48a32bf2ea244b701fb5bb63ea18f4"/> + <macro name="WireHiddenData" file="WireHiddenData.bin" md5="7fb2be220f2c6dfefea57e5a9acf9145"/> + <macro name="WirePt" file="WirePt.bin" md5="0936e8dd2f3ca890efaf0b274aa64d96"/> + <macro name="Wireparadata" file="Wireparadata.bin" md5="60a5c112230c8cb7ebd803304b1b17b7"/> + <macro name="Wirepersdata" file="Wirepersdata.bin" md5="b2696b1685c9456c6857fbdd1424256a"/> + <macro name="Wirerawparadata" file="Wirerawparadata.bin" md5="e770b9a2bce4c8804fc62a5191be1545"/> + <macro name="Wirerawpersdata" file="Wirerawpersdata.bin" md5="f254f9cad0b02b01e7388fbbb433bcc4"/> + <macro name="WriteOutData" file="WriteOutData.bin" md5="55682f0605917544dd41d2c25f24786c"/> + <macro name="Writeobjpoint" file="Writeobjpoint.bin" md5="24c598f95cc38899d5cf5d3048a9e263"/> + <macro name="Writetextdata" file="Writetextdata.bin" md5="b1da333518052fedb658e0827833a54f"/> + <macro name="WritetoCindy" file="WritetoCindy.bin" md5="c8a05614d69d73bd4aa3c562cf479872"/> + <macro name="Xmax" file="Xmax.bin" md5="87038803908d553ab8de412b410887dd"/> + <macro name="Xmin" file="Xmin.bin" md5="eae15ed2438d2805a6ad488cf22b75e8"/> + <macro name="Xyzax3data" file="Xyzax3data.bin" md5="633e040e19b435e55bb66dbc4f231117"/> + <macro name="Xyzaxparaname" file="Xyzaxparaname.bin" md5="8fa701d6b92b478a97ed8b4e263c9a18"/> + <macro name="Xyzaxpersname" file="Xyzaxpersname.bin" md5="1e9573e9452267842a7907f30661e902"/> + <macro name="Ymax" file="Ymax.bin" md5="4ab8eccdba393b4c41a45d38f97faf88"/> + <macro name="Ymin" file="Ymin.bin" md5="5dedfdfc18e01299ea069b578be8b697"/> + <macro name="Zparapt" file="Zparapt.bin" md5="e16dd6e761c2e8ec7eb31da49d7a3b96"/> + <macro name="Zperspt" file="Zperspt.bin" md5="b04d5677e9ee74a1cbff3ad73c9d2a20"/> +</scilablib> diff --git a/texmf-dist/scripts/ketpic/ketlib/maximaL/fourier_sec.max b/texmf-dist/scripts/ketpic/ketlib/maximaL/fourier_sec.max new file mode 100644 index 00000000..c70f7f46 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/maximaL/fourier_sec.max @@ -0,0 +1,260 @@ +/* +Package fourier_sec, to study piecewise defined functions +(sectionally defined, hence the name). + +Author: Jose A. Vallejo + Faculty of Sciences + Universidad Autonoma de San Luis Potosi (Mexico) + http://galia.fc.uaslp.mx/~jvallejo + +It is assumed that the functions are defined using the format + if ... then ... else ... +as, for example, +(%i1) absolute(x):=if (x<=0) then -x elseif (x>0) then x$ +(it will not work with 'abs'). +It provides three functions: +1. 'paritycheck', to check if a given piecewise defined + function is even or odd (or none). For instance, + (%i2) paritycheck(absolute(x),x); + (%o2) 0 + A '0' means 'even', '1' is 'odd', and '-1' is 'none' +2. 'fourier_sec_coeff', to compute the Fourier sine and cosine + coefficients. The function must have compact support.For + instance, for the unit step we have: + (%i3) h(x):=if (-%pi<=x and x<0) then 0 elseif (0<=x and x<=%pi) then 1$ + (%i4) fourier_sec_coeff(h(x),x); + (%o4) [1/2,0,-((-1)^n-1)/(%pi*n)] +3. 'fourier_sec_series', to compute the Fourier series, truncated + or not. The series for the unit step to the 10th order: + (%i5) fourier_sec_series(h(x),x,10); + (%o5) (2*sin(9*x))/(9*%pi)+(2*sin(7*x))/(7*%pi)+(2*sin(5*x))/(5*%pi)+(2*sin(3*x))/(3*%pi)+(2*sin(x))/%pi+1/2 + and the whole Fourier series + (%i6) fourier_sec_series(h(x),x,inf); + (%o6) (sum(((1/n-(-1)^n/n)*sin(n*x))/%pi,n,1,inf))+1/2 +*/ + + +load(fourie)$ + +load(simplify_sum)$ + +paritycheck(funvar,x):=block([subintervals,subvalues,tmp1,tmp2,token1,token0,tmp3, + subvalues_list,subintervals_list,icentral:0,middle,minusmiddle,token2, + side_subintervals_list,L,side_subvalues_list, + zero_subintervals,tmp4,tmp5,non_zero_side_subvalues_list, + non_zero_side_subintervals_list,LL,token3,expr1,expr2], + local(M,N,P,Q,count1,count2,count3,count4), + subintervals:makelist(part(funvar,i),i,makelist(2*k-1,k,1,(length(funvar)-2)/2)), + subvalues:makelist(part(funvar,i),i,makelist(2*k,k,1,(length(funvar)-2)/2)), + for j:1 thru length(subintervals) do (if operatorp(subintervals[j],["<",">","<=",">="]) then tmp1[j]:1 else tmp1[j]:0), + tmp1:makelist(tmp1[j],j,1,length(subintervals)), + tmp2:sublist_indices(tmp1,lambda([x],x=1)), + + /* if length(tmp2)=0 all the subintervals in the domain of funvar are bounded! */ + + if is(equal(length(tmp2),0)) then + ( + subvalues_list:copylist(subvalues), + tmp3:copylist(subintervals), + for j:1 thru length(tmp3) do + ( + M[j]:makelist(part(tmp3[j],k),k,1,length(tmp3[j])), + for m:1 thru 2 do N[j,m]:makelist(part(M[j],m,n),n,1,length(M[j])), + P[j]:append(N[j,1],N[j,2]),Q[j]:sort(delete(x,P[j]),"<") + ), + subintervals_list:makelist(Q[j],j,1,length(tmp3)), + for i:1 thru length(subintervals_list) do (if is(lmin(subintervals_list[i])*lmax(subintervals_list[i])<0) then icentral:i), + if is(icentral>0) then middle:subvalues_list[icentral], + if is(icentral>0) then + (if evenfunp(middle,x) then token2:0 elseif oddfunp(middle,x) then token2:1 else return(-1)) + else + + /* now we analyze what happens if icentral=0, so there are only side intervals */ + + ( + /* as before, there must be an even number of symmetric intervals, otherwise -1 */ + side_subintervals_list:copylist(subintervals_list), + if not(evenp(length(side_subintervals_list))) then return(-1), + L:length(side_subintervals_list)/2, + for k:1 thru L do count1[k]:charfun(is(equal(side_subintervals_list[k],reverse(map("-",side_subintervals_list[2*L+1-k]))))), + if sum(count1[j],j,1,L)#L then return(-1), + side_subvalues_list:copylist(subvalues_list), + for k:1 thru L do count2[k]:charfun(is(equalp(side_subvalues_list[k],ratsubst(-x,x,side_subvalues_list[2*L+1-k])))), + if is(equal(sum(count2[j],j,1,L),L)) then token3:0, + for k:1 thru L do count3[k]:charfun(is(equalp(side_subvalues_list[k],-ratsubst(-x,x,side_subvalues_list[2*L+1-k])))), + if is(equal(sum(count3[j],j,1,L),L)) then token3:1, + if is(not(equalp(token3,0)) and not(equalp(token3,1))) then return(-1) , + return(token3) + ), + + /* and what happens if icentral#0 */ + + side_subintervals_list:delete(subintervals_list[icentral],subintervals_list), + if is(equal(length(side_subintervals_list),0)) then (if is(equal(token1,token2)) then return(token1*token2) else return(-1)), + if not(evenp(length(side_subintervals_list))) then return(-1), + L:length(side_subintervals_list)/2, + for k:1 thru L do count1[k]:charfun(is(equal(side_subintervals_list[k],reverse(map("-",side_subintervals_list[2*L+1-k]))))), + if sum(count1[j],j,1,L)#L then return(-1), + side_subvalues_list:delete(subvalues_list[icentral],subvalues_list), + + /* remove those subintervals in which funvar vanishes */ + + zero_subintervals:sublist_indices(side_subvalues_list,lambda([x],x=0)), + tmp4:copylist(side_subintervals_list), + for j:1 thru length(zero_subintervals) do + (tmp4:delete(side_subintervals_list[zero_subintervals[j]],tmp4)), + non_zero_side_subintervals_list:tmp4, + tmp5:copylist(side_subvalues_list), + for j:1 thru length(zero_subintervals) do + (tmp5:delete(side_subvalues_list[zero_subintervals[j]],tmp5)), + non_zero_side_subvalues_list:tmp5, + + /* if length(non_zero_side_subintervals_list)=0 then we are done just with token2 */ + + if is(equal(length(non_zero_side_subintervals_list),0)) then return(token2), + + /* otherwise, we must also take into account token3 */ + LL:length(non_zero_side_subintervals_list)/2, + for k:1 thru LL do count2[k]:charfun(is(equalp(non_zero_side_subvalues_list[k],ratsubst(-x,x,non_zero_side_subvalues_list[2*LL+1-k])))), + if is(equal(sum(count2[j],j,1,LL),LL)) then token3:0, + for k:1 thru LL do count3[k]:charfun(is(equalp(non_zero_side_subvalues_list[k],-ratsubst(-x,x,non_zero_side_subvalues_list[2*LL+1-k])))), + if is(equal(sum(count3[j],j,1,LL),LL)) then token3:1, + if is(not(equal(token3,0) or equal(token3,1))) then return(-1) elseif + is(token2#token3) then return(-1) + elseif is(equal(token2,0)) then return(0) + elseif is(equal(token2,1)) then return(1) + + ), + + /* we continue here with unbounded intervals */ + + expr1:subvalues[tmp2[1]], + expr2:ratsubst(-x,x,subvalues[tmp2[2]]), + if is(equalp(expr1,expr2)) then token1:0 + elseif is(equalp(expr1,-expr2)) then token1:1 + else return(-1), + + /* the problem when defining token1 is that if the asymptotic value is 0, then it is always token1:0 */ + /* although the function could be odd. To cope with this, we define token0 below */ + + tmp3:makelist(subintervals[i],i,sublist_indices(tmp1,lambda([x],x=0))), + if is(equal(length(tmp3),0)) then return(token1), + subvalues_list:makelist(subvalues[i],i,sublist_indices(tmp1,lambda([x],x=0))), + token0:if member(0,makelist(subvalues[i],i,tmp2)) then 0 else 7, + for j:1 thru length(tmp3) do + ( + M[j]:makelist(part(tmp3[j],k),k,1,length(tmp3[j])), + for m:1 thru 2 do N[j,m]:makelist(part(M[j],m,n),n,1,length(M[j])), + P[j]:append(N[j,1],N[j,2]),Q[j]:sort(delete(x,P[j]),"<") + ), + subintervals_list:makelist(Q[j],j,1,length(tmp3)), + for i:1 thru length(subintervals_list) do (if is(lmin(subintervals_list[i])*lmax(subintervals_list[i])<0) then icentral:i), + if is(icentral>0) then middle:subvalues_list[icentral], + if is(icentral>0) then + (if evenfunp(middle,x) then token2:0 elseif oddfunp(middle,x) then token2:1 else return(-1)) + else + + /* now we analyze what happens if icentral=0, so there are only non-bounded intervals and side intervals */ + + ( + /* as before, there must be an even number of symmetric intervals, otherwise -1 */ + side_subintervals_list:copylist(subintervals_list), + if not(evenp(length(side_subintervals_list))) then return(-1), + L:length(side_subintervals_list)/2, + for k:1 thru L do count1[k]:charfun(is(equal(side_subintervals_list[k],reverse(map("-",side_subintervals_list[2*L+1-k]))))), + if sum(count1[j],j,1,L)#L then return(-1), + side_subvalues_list:copylist(subvalues_list), + for k:1 thru L do count2[k]:charfun(is(equalp(side_subvalues_list[k],ratsubst(-x,x,side_subvalues_list[2*L+1-k])))), + if is(equal(sum(count2[j],j,1,L),L)) then token3:0, + for k:1 thru L do count3[k]:charfun(is(equalp(side_subvalues_list[k],-ratsubst(-x,x,side_subvalues_list[2*L+1-k])))), + if is(equal(sum(count3[j],j,1,L),L)) then token3:1, + if is(not(equal(token3,0)) and not(equal(token3,1))) then return(-1) elseif + is(not(equal(token1,token3)) and not(equal(token0,0))) then return(-1) + elseif is( equal(token0,0) and equal(token3,0)) then return(0) + elseif is( equal(token0,0) and equal(token3,1)) then return(1) + elseif is(not(equal(token0,0)) and equal(token1,token3)) then return(token3) + elseif is(not(equal(token0,0)) and not(equal(token1,token3))) then return(-1) + ), + + /* and what happens if icentral#0 */ + + side_subintervals_list:delete(subintervals_list[icentral],subintervals_list), + if is(equal(length(side_subintervals_list),0)) then (if is(equal(token1,token2)) then return(token1*token2) else return(-1)), + if not(evenp(length(side_subintervals_list))) then return(-1), + L:length(side_subintervals_list)/2, + for k:1 thru L do count1[k]:charfun(is(equal(side_subintervals_list[k],reverse(map("-",side_subintervals_list[2*L+1-k]))))), + if sum(count1[j],j,1,L)#L then return(-1), + side_subvalues_list:delete(subvalues_list[icentral],subvalues_list), + + /* remove those subintervals in which funvar vanishes */ + + zero_subintervals:sublist_indices(side_subvalues_list,lambda([x],x=0)), + tmp4:copylist(side_subintervals_list), + for j:1 thru length(zero_subintervals) do + (tmp4:delete(side_subintervals_list[zero_subintervals[j]],tmp4)), + non_zero_side_subintervals_list:tmp4, + tmp5:copylist(side_subvalues_list), + for j:1 thru length(zero_subintervals) do + (tmp5:delete(side_subvalues_list[zero_subintervals[j]],tmp5)), + non_zero_side_subvalues_list:tmp5, + + /* if length(non_zero_side_subintervals_list)=0 then we are done just with token1 and token2 */ + + if is(equal(length(non_zero_side_subintervals_list),0)) then (if is(equal(token1,token2)) then return(token1*token2) else return(-1)), + + /* otherwise, we must also take into account token3 */ + LL:length(non_zero_side_subintervals_list)/2, + for k:1 thru LL do count2[k]:charfun(is(equalp(non_zero_side_subvalues_list[k],ratsubst(-x,x,non_zero_side_subvalues_list[2*LL+1-k])))), + if is(equal(sum(count2[j],j,1,LL),LL)) then token3:0, + for k:1 thru LL do count3[k]:charfun(is(equalp(non_zero_side_subvalues_list[k],-ratsubst(-x,x,non_zero_side_subvalues_list[2*LL+1-k])))), + if is(equal(sum(count3[j],j,1,LL),LL)) then token3:1, + if is(not(equal(token0,0)) and is(not(equal(token1,token2)) or not(equal(token1,token3)) or not(equal(token2,token3))) ) then return(-1) + elseif is(not(equal(token0,0)) and is(equal(token1,0)) ) then return(0) + elseif is(not(equal(token0,0)) and is(equal(token1,1)) ) then return(1) + elseif is( equal(token0,0) and equal(token3,0) and equal(token2,0)) then return(0) + elseif is( equal(token0,0) and equal(token3,1) and equal(token2,1)) then return(1) + else return(-1) + +)$ + +fourier_sec_coeff(fuvar,x):= +block([pp,LL,lm,a0,coeff], + local(a,b,n,MM,NN,PP,QQ), + declare(n,integer), + pp:((length(fuvar)/2)-1), + LL:makelist(part(fuvar,i),i,makelist(2*s-1,s,1,pp)), + for j:1 thru length(LL) step 1 do + ( + MM[j]:makelist(part(LL[j],r),r,1,length(LL[j])), + for r:1 thru 2 do NN(j,r):=makelist(part(MM[j],r,k),k,1,length(MM[j])), + PP[j]:append(NN(j,1),NN(j,2)),QQ[j]:delete(x,PP[j]) + ), + for i:1 thru pp step 1 do partsums[i]:sort(QQ[i],"<"), + for i:1 thru pp step 1 do partfunc[i]:part(fuvar,2*i), + lm:lmax(unique(flatten(makelist(QQ[q],q,1,length(LL))))), + a0:(1/(2*lm))*sum(integrate(partfunc[i],x,partsums[i][1],partsums[i][2]),i,1,pp), + if is(equal(paritycheck(fuvar,x),1)) then a(n):=0 else a(n):=(1/lm)*sum(adefint(partfunc[i]*cos(%pi*n*x/lm),x,partsums[i][1],partsums[i][2]),i,1,pp), + if is(equal(paritycheck(fuvar,x),0)) then b(n):=0 else b(n):=(1/lm)*sum(adefint(partfunc[i]*sin(%pi*n*x/lm),x,partsums[i][1],partsums[i][2]),i,1,pp), + coeff:[a0,simplify_sum(a(n)),simplify_sum(b(n))], + factor(ratsimp(coeff)) +)$ + +fourier_sec_series(fuvar,x,u):= +block([pp,LL,lm,a0,coeff], + local(a,b,n,MM,NN,PP,QQ), + declare(n,integer), + pp:((length(fuvar)/2)-1), + LL:makelist(part(fuvar,i),i,makelist(2*s-1,s,1,pp)), + for j:1 thru length(LL) step 1 do + ( + MM[j]:makelist(part(LL[j],r),r,1,length(LL[j])), + for r:1 thru 2 do NN(j,r):=makelist(part(MM[j],r,k),k,1,length(MM[j])), + PP[j]:append(NN(j,1),NN(j,2)),QQ[j]:delete(x,PP[j]) + ), + for i:1 thru pp step 1 do partsums[i]:sort(QQ[i],"<"), + for i:1 thru pp step 1 do partfunc[i]:part(fuvar,2*i), + lm:lmax(unique(flatten(makelist(QQ[q],q,1,length(LL))))), + a0:(1/(2*lm))*sum(integrate(partfunc[i],x,partsums[i][1],partsums[i][2]),i,1,pp), + if is(equal(paritycheck(fuvar,x),1)) then a(n):=0 else a(n):=(1/lm)*sum(adefint(partfunc[i]*cos(%pi*n*x/lm),x,partsums[i][1],partsums[i][2]),i,1,pp), + if is(equal(paritycheck(fuvar,x),0)) then b(n):=0 else b(n):=(1/lm)*sum(adefint(partfunc[i]*sin(%pi*n*x/lm),x,partsums[i][1],partsums[i][2]),i,1,pp), + a0+intosum(sum(a(n)*cos(%pi*n*x/lm),n,1,u))+intosum(sum(b(n)*sin(%pi*n*x/lm),n,1,u)))$
\ No newline at end of file diff --git a/texmf-dist/scripts/ketpic/ketlib/maximaL/matoperation.max b/texmf-dist/scripts/ketpic/ketlib/maximaL/matoperation.max new file mode 100644 index 00000000..512a9ffb --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/maximaL/matoperation.max @@ -0,0 +1,47 @@ +/* Maxima tips http://www.cymric.jp/maxima/tips.html */ + +rowmult(X, n, c) := block([M], + M:matrix(), + for i:1 thru length(X) do + if i=n then M:addrow(M, c*row(X, i)) + else M:addrow(M, row(X, i)), + M +); +rowadd(X, n, m, c) := block([M], + M:matrix(), + for i:1 thru length(X) do + if i=n then M:addrow(M, c * row(X, m) + row(X, i)) + else M:addrow(M, row(X, i)), + M +); +rowch(X, m, n) := block([M], + M:matrix(), + for i:1 thru length(X) do + if i=m then M:addrow(M, row(X, n)) + else if i=n then M:addrow(M, row(X, m)) + else M:addrow(M, row(X, i)), + M +); + +colmult(X, n, c) := block([M], + M:matrix(), + for i:1 thru length(transpose(X)) do + if i=n then M:addcol(M, c*col(X, i)) + else M:addcol(M, col(X, i)), + M +); +coladd(X, n, m, c) := block([M], + M:matrix(), + for i:1 thru length(transpose(X)) do + if i=n then M:addcol(M, c * col(X, m) + col(X, i)) + else M:addcol(M, col(X, i)), + M +); +colch(X, m, n) := block([M], + M:matrix(), + for i:1 thru length(transpose(X)) do + if i=m then M:addcol(M, col(X, n)) + else if i=n then M:addcol(M, col(X, m)) + else M:addcol(M, col(X, i)), + M +); diff --git a/texmf-dist/scripts/ketpic/ketlib/maximaL/poincare.mac b/texmf-dist/scripts/ketpic/ketlib/maximaL/poincare.mac new file mode 100644 index 00000000..aefab3a2 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/maximaL/poincare.mac @@ -0,0 +1,71 @@ +/* Poincare.mac is a set of routines for the computation +of Poincare surfaces of sections of Hamiltonian systems */ + +/* Author: Jose A Vallejo +Universidad Autonoma de San Luis Potosi (Mexico) +josanv@gmail.com */ + +/* To avoid messages when loading draw, execute +with_stdout("/dev/null",load(draw))$ (in Linux) +with_stdout("NUL",load(draw))$ (in Windows) */ + +/* Poincare.mac requires a compiled version of +rkfun.lisp, a LISP implementation of the RK4 +algorithm due to Richard Fateman. The original +code can be downloaded from +https://people.eecs.berkeley.edu/~fateman/lisp/rkfun.lisp */ + +/*load("rkfun.fasl");*/ +/*load("rkfun.lisp");*/ + + +hameqs(H,name):=block( +[vv,t,tvv,n,Q,P,eqq,eqp,eqs], +vv:args(lhs(apply(fundef,[H]))), +tvv:cons(t,vv), +n:length(vv)/2, +Q:makelist(vv[2*j-1],j,1,n), +P:makelist(vv[2*k],k,1,n), +eqq:makelist(float(diff(apply(H,vv),P[j])),j,1,n), +eqp:makelist(float(-diff(apply(H,vv),Q[j])),j,1,n), +eqs:join(eqq,eqp), +for j:1 thru 2*n do define(funmake(concat(name,j),tvv),block([],mode_identity(float,vv),eqs[j])), +apply(compile,makelist(concat(name,j),j,1,2*n)), +[makelist(apply(concat(name,j),tvv),j,1,2*n),vv,makelist(concat(name,j),j,1,2*n)] +)$ + +lextract(ll,n):=block([l,a,b], +l:length(ll), +a:rest(ll,n), +b:rest(ll,n-l-1), +append(b,a) +)$ + +poincare3d(H,name,inicond,timestep,coord):=block( +[heq,vars,tvars,hfuns,c,sol], +heq:hameqs(H,name), +vars:heq[2], +tvars:cons(t,vars), +hfuns:heq[3], +c:first(sublist_indices(vars,lambda([x],x=coord))), +sol:rkfun(hfuns,tvars,float(inicond),timestep), +map(lambda([x],lextract(x,c)),map(lambda([x],rest(x)),sol)) +)$ + +poincare2d(H,name,inicond,timestep,scene):=block( +[heq,vars,tvars,hfuns,solu,c,soluc,sola,solb,subind,sol,e,f], +heq:hameqs(H,name), +vars:heq[2], +tvars:cons(t,vars), +hfuns:heq[3], +solu:rkfun(hfuns,tvars,float(inicond),timestep), +c:first(sublist_indices(vars,lambda([x],x=first(scene)))), +soluc:map(lambda([x],x[c+1]),solu), +sola:rest(soluc,-1)-second(scene), +solb:rest(soluc)-second(scene), +subind:sublist_indices(sola*solb,lambda([x],is(x < 0))), +sol:makelist(solu[k],k,subind), +e:first(sublist_indices(vars,lambda([x],x=third(scene))))+1, +f:first(sublist_indices(vars,lambda([x],x=fourth(scene))))+1, +makelist([j[e],j[f]],j,sol) +)$
\ No newline at end of file diff --git a/texmf-dist/scripts/ketpic/ketlib/maximaL/rkfun.lisp b/texmf-dist/scripts/ketpic/ketlib/maximaL/rkfun.lisp new file mode 100644 index 00000000..70aafc7f --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/maximaL/rkfun.lisp @@ -0,0 +1,99 @@ +;; variation on runge-kutta (rk) routine in complex_dynamics.lisp by villate@fe.up.pt +;; this one with changed by fateman@berkeley.edu + +#| rkfun may be much faster than rk because it calls compiled programs. + rkfun (this file) should also be compiled to speed it up. + how to use: + + + first, read and understand the documentation for rk(). + next, define the ODE right hand sides as functions as shown below + +fun1(y,x,x0):= x0$ +fun2(y,x,x0):= block([], mode_declare([y, x0,x],float),(1-x^2)*x0-x); +compile(fun1)$ +compile(fun2)$ +showtime:all$ + +last(rkfun([fun1,fun2],[x,xdot],[0.0,0.6],[t,0,50,0.01])); + +/* which is, in one test, 18 times faster than */ + +last(rk([xdot,(1-x^2)*xdot -x],[x,xdot],[0.0,0.6],[t,0,50,0.01])); + +|# + +(defun $rkfun (funs vars initial domain ;; taken from complex_dynamics.lisp + &aux d u funlist k1 k2 k3 k4 r1 r2 r3 traj r + (it (mapcar #'coerce-float (cddr domain)))) + (unless ($listp funs) (setq funs `((mlist) ,funs))) + (unless ($listp initial) (setq initial `((mlist) ,initial))) + (unless ($listp vars) (setq vars `((mlist) ,vars))) + (dolist (var (cdr vars)) + (unless (symbolp var) + (merror (intl:gettext "rk: variable name expected; found: ~M") var))) + (unless (symbolp (cadr domain)) + (merror (intl:gettext "rk: variable name expected; found: ~M") + (cadr domain))) + (setq vars (append '((mlist)) (list (cadr domain)) (cdr vars))) + (setq r (append `(,(car it)) (mapcar #'coerce-float (cdr initial)))) + (setq funlist (cdr funs)) + + (setq d (/ (- (cadr it) (car it)) (caddr it))) + (setq traj (list (cons '(mlist) r))) + (do ((m 1 (1+ m))) ((> m d)) + (progn ;;; was ignore-errors + (setq k1 (mapcar #'(lambda (x) (apply x r)) funlist)) + (setq r1 (map 'list #'+ (cdr r) (mapcar #'(lambda (x) (* 0.5d0 (caddr it) x)) k1))) + (push (+ (car r) (/ (caddr it) 2)) r1) + (setq k2 (mapcar #'(lambda (x) (apply x r1)) funlist)) + (setq r2 (map 'list #'+ (cdr r) (mapcar #'(lambda (x) (* 0.5d0(caddr it) x)) k2))) + (push (+ (car r) (/ (caddr it) 2)) r2) + (setq k3 (mapcar #'(lambda (x) (apply x r2)) funlist)) + (setq r3 (map 'list #'+ (cdr r) (mapcar #'(lambda (x) (* (caddr it) x)) k3))) + (push (+ (car r) (caddr it)) r3) + (setq k4 (mapcar #'(lambda (x) (apply x r3)) funlist)) + (setq u (map 'list #'+ + (mapcar #'(lambda (x) (* #.(/ 1.0 6.0d0) x)) k1) + (mapcar #'(lambda (x) (* #.(/ 1.0 3.0d0) x)) k2) + (mapcar #'(lambda (x) (* #.(/ 1.0 3.0d0) x)) k3) + (mapcar #'(lambda (x) (* #.(/ 1.0 6.0d0) x)) k4))) + (setq r + (append + `(,(+ (car it) (* m (caddr it)))) + (map 'list #'+ (cdr r) (mapcar #'(lambda (x) (* (caddr it) x)) u)))) + (push (cons '(mlist) r) traj))) + (when (< (car r) (cadr it)) + (let ((s (- (cadr it) (car r))) ) + (declare(double-float s)(special s)(optimize (speed 3)(safety 0))) + (progn ;; was ignore-errors + (setq k1 (mapcar #'(lambda (x) (mapply x r nil)) funlist)) + (setq r1 (map 'list #'+ (cdr r) (mapcar #'(lambda (x) + (declare(double-float x)) + (* s 0.5d0 x)) k1))) + (push (+ (car r) (* 0.5d0 s)) r1) + (setq k2 (mapcar #'(lambda (x) (mapply x r1 nil)) funlist)) + (setq r2 (map 'list #'+ (cdr r) (mapcar #'(lambda (x)(declare(double-float x)) + (* s 0.5d0 x)) k2))) + (push (+ (car r) (* 0.5d0 s)) r2) + (setq k3 (mapcar #'(lambda (x) (mapply x r2 nil)) funlist)) + (setq r3 (map 'list #'+ (cdr r) (mapcar #'(lambda (x)(declare(double-float x)) + (* s x)) k3))) + (push (+ (car r) s) r3) + (setq k4 (mapcar #'(lambda (x) (mapply x r3 nil)) funlist)) + (setq u (map 'list #'+ + (mapcar #'(lambda (x)(declare(double-float x)) + (* #.(/ 1.0d0 6.0d0) x)) k1) + (mapcar #'(lambda (x)(declare(double-float x)) + (* #.(/ 1.0d0 3.0d0) x)) k2) + (mapcar #'(lambda (x) (declare(double-float x)) + (* #.(/ 1.0d0 3.0d0) x)) k3) + (mapcar #'(lambda (x)(declare(double-float x)) + (* #.(/ 1.0d0 6.0d0) x)) k4))) + (setq r + (append + `(,(cadr it)) + (map 'list #'+ (cdr r) (mapcar #'(lambda (x)(declare(double-float x)) + (* s x)) u)))) + (push (cons '(mlist) r) traj)))) + (cons '(mlist) (nreverse traj)))
\ No newline at end of file diff --git a/texmf-dist/scripts/ketpic/ketlib/oshima/os_muldif.pdf b/texmf-dist/scripts/ketpic/ketlib/oshima/os_muldif.pdf Binary files differnew file mode 100644 index 00000000..d3d06401 --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/oshima/os_muldif.pdf diff --git a/texmf-dist/scripts/ketpic/ketlib/oshima/os_muldif.rr b/texmf-dist/scripts/ketpic/ketlib/oshima/os_muldif.rr new file mode 100644 index 00000000..badddccb --- /dev/null +++ b/texmf-dist/scripts/ketpic/ketlib/oshima/os_muldif.rr @@ -0,0 +1,18855 @@ +/* The latest version will be at ftp://akagi.ms.u-tokyo.ac.jp/pub/math/muldif + scp os_muldif.[dp]* ${USER}@lemon.math.kobe-u.ac.jp:/home/web/OpenXM/Current/doc/other-docs +*/ +#define USEMODULE 1 +/* #undef USEMODULE */ + +/* os_muldif.rr (Library for Risa/Asir) + * Toshio Oshima (Nov. 2007 - June 2017) + * + * For polynomials and differential operators with coefficients + * in rational funtions (See os_muldif.pdf) + * + * "Tab = 4 column" is best + */ + +ord([zz,dz,dy,dx])$ + +#ifdef USEMODULE +module os_md; +static Muldif.rr$ +static TeXEq$ +static TeXLim$ +static DIROUT$ +static DIROUTD$ +static DVIOUTL$ +static DVIOUTA$ +static DVIOUTB$ +static DVIOUTH$ +static DVIOUTF$ +static LCOPT$ +static COLOPT$ +static LPOPT$ +static LFOPT$ +static ErMsg$ +static FLIST$ +static IsYes$ +static XYPrec$ +static XYcm$ +static TikZ$ +static XYLim$ +static Canvas$ +static ID_PLOT$ +static Rand$ +static LQS$ +localf spType2$ +localf erno$ +localf chkfun$ +localf makev$ +localf shortv$ +localf makenewv$ +localf vweyl$ +localf mycat$ +localf mycat0$ +localf fcat$ +localf findin$ +localf countin$ +localf mycoef$ +localf mydiff$ +localf myediff$ +localf m2l$ +localf m2ll$ +localf mydeg$ +localf pfctr$ +localf mymindeg$ +localf m1div$ +localf mulsubst$ +localf cmpsimple$ +localf simplify$ +localf monotos$ +localf minustos$ +localf monototex$ +localf vnext$ +localf ldict$ +localf ndict$ +localf nextsub$ +localf nextpart$ +localf transpart$ +localf trpos$ +localf sprod$ +localf sinv$ +localf slen$ +localf sord$ +localf vprod$ +localf dvangle$ +localf dvprod$ +localf dnorm$ +localf mulseries$ +localf pluspower$ +localf vtozv$ +localf dupmat$ +localf matrtop$ +localf mytrace$ +localf mydet$ +localf mperm$ +localf mtranspose$ +localf mtoupper$ +localf mydet2$ +localf myrank$ +localf meigen$ +localf transm$ +localf vgen$ +localf mmc$ +localf lpgcd$ +localf mdivisor$ +localf mdsimplify$ +localf m2mc$ +localf easierpol$ +localf paracmpl$ +localf mykernel$ +localf myimage$ +localf mymod$ +localf mmod$ +localf ladd$ +localf lchange$ +localf llsize$ +localf llbase$ +localf lsort$ +localf lmax$ +localf lmin$ +localf lgcd$ +localf llcm$ +localf ldev$ +localf lsol$ +localf lnsol$ +localf l2p$ +localf m2v$ +localf lv2m$ +localf m2lv$ +localf s2m$ +localf c2m$ +localf m2diag$ +localf myinv$ +localf madjust$ +localf mpower$ +localf mrot$ +localf texlen$ +localf isdif$ +localf fctrtos$ +localf texlim$ +localf fmult$ +localf radd$ +localf getel$ +localf ptol$ +localf rmul$ +localf mtransbys$ +localf drawopt$ +localf execdraw$ +localf execproc$ +localf myswap$ +localf mysubst$ +localf evals$ +localf myval$ +localf myeval$ +localf mydeval$ +localf myfeval$ +localf myf2eval$ +localf myf3eval$ +localf myfdeval$ +localf myf2deval$ +localf myf3deval$ +localf myexp$ +localf mycos$ +localf mysin$ +localf mytan$ +localf myarg$ +localf myasin$ +localf myacos$ +localf myatan$ +localf mylog$ +localf mypow$ +localf scale$ +localf arg$ +localf sqrt$ +localf gamma$ +localf lngamma$ +localf digamma$ +localf dilog$ +localf zeta$ +localf eta$ +localf jell$ +localf frac$ +localf erfc$ +localf fouriers$ +localf todf$ +localf f2df$ +localf df2big$ +localf compdf$ +localf fzero$ +localf fmmx$ +localf flim$ +localf fcont$ +localf fresidue$ +localf mmulbys$ +localf appldo$ +localf appledo$ +localf muldo$ +localf jacobian$ +localf hessian$ +localf wronskian$ +localf adj$ +localf laplace1$ +localf laplace$ +localf mce$ +localf mc$ +localf rede$ +localf ad$ +localf add$ +localf vadd$ +localf addl$ +localf cotr$ +localf rcotr$ +localf muledo$ +localf mulpdo$ +localf transpdosub$ +localf transpdo$ +localf translpdo$ +localf rpdiv$ +localf mygcd$ +localf mylcm$ +localf sftpexp$ +localf applpdo$ +localf tranlpdo$ +localf divdo$ +localf qdo$ +localf sqrtdo$ +localf ghg$ +localf ev4s$ +localf b2e$ +localf sftpow$ +localf sftpowext$ +localf polinsft$ +localf pol2sft$ +localf polroots$ +localf fctri$ +localf binom$ +localf expower$ +localf seriesHG$ +localf seriesMc$ +localf seriesTaylor$ +localf evalred$ +localf toeul$ +localf fromeul$ +localf sftexp$ +localf fractrans$ +localf soldif$ +localf chkexp$ +localf sqrtrat$ +localf getroot$ +localf expat$ +localf polbyroot$ +localf polbyvalue$ +localf pcoef$ +localf prehombf$ +localf prehombfold$ +localf sub3e$ +localf fuchs3e$ +localf okubo3e$ +localf eosub$ +localf even4e$ +localf odd5e$ +localf extra6e$ +localf rigid211$ +localf solpokuboe$ +localf stoe$ +localf dform$ +localf polinvsym$ +localf polinsym$ +localf tohomog$ +localf substblock$ +localf okuboetos$ +localf heun$ +localf fspt$ +localf abs$ +localf calc$ +localf isint$ +localf israt$ +localf iscrat$ +localf isalpha$ +localf isnum$ +localf isalphanum$ +localf isdecimal$ +localf isvar$ +localf isyes$ +localf isall$ +localf iscoef$ +localf iscombox$ +localf sproot$ +localf spgen$ +localf chkspt$ +localf cterm$ +localf terms$ +localf polcut$ +localf redgrs$ +localf cutgrs$ +localf mcgrs$ +localf mc2grs$ +localf mcmgrs$ +localf anal2sp$ +localf delopt$ +localf str_char$ +localf str_pair$ +localf str_cut$ +localf str_str$ +localf str_subst$ +localf str_times$ +localf str_tb$ +localf strip$ +localf i2hex$ +localf sjis2jis$ +localf jis2sjis$ +localf s2os$ +localf l2os$ +localf r2os$ +localf s2euc$ +localf s2sjis$ +localf r2ma$ +localf evalma$ +localf ssubgrs$ +localf verb_tex_form$ +localf tex_cuteq$ +localf my_tex_form$ +localf texket$ +localf smallmattex$ +localf divmattex$ +localf dviout0$ +localf myhelp$ +localf isMs$ +localf showbyshell$ +localf readcsv$ +localf tocsv$ +localf getbyshell$ +localf show$ +localf dviout$ +localf rtotex$ +localf mtotex$ +localf ltotex$ +localf texbegin$ +localf texcr$ +localf texsp$ +localf getbygrs$ +localf mcop$ +localf shiftop$ +localf conf1sp$ +localf pgen$ +localf diagm$ +localf mgen$ +localf madj$ +localf newbmat$ +localf unim$ +localf pfrac$ +localf cfrac$ +localf cfrac2n$ +localf sqrt2rat$ +localf s2sp$ +localf sp2grs$ +localf fimag$ +localf trig2exp$ +localf intpoly$ +localf integrate$ +localf simplog$ +localf fshorter$ +localf isshortneg$ +localf intrat$ +localf powsum$ +localf bernoulli$ +localf lft01$ +localf linfrac01$ +localf nthmodp$ +localf issquaremodp$ +localf rootmodp$ +localf rabin$ +localf primroot$ +localf varargs$ +localf ptype$ +localf pfargs$ +localf average$ +localf sint$ +localf frac2n$ +localf xyproc$ +localf xypos$ +localf xyput$ +localf xybox$ +localf xyline$ +localf xylines$ +localf xycirc$ +localf xybezier$ +localf lbezier$ +localf draw_bezier$ +localf tobezier$ +localf velbezier$ +localf ptbezier$ +localf cutf$ +localf fsum$ +localf fint$ +localf periodicf$ +localf cmpf$ +localf areabezier$ +localf saveproc$ +localf xygraph$ +localf xy2graph$ +localf xyarrow$ +localf xyarrows$ +localf xyang$ +localf xyoval$ +localf ptcommon$ +localf ptcopy$ +localf ptaffine$ +localf ptlattice$ +localf ptpolygon$ +localf ptwindow$ +localf ptbbox$ +localf lninbox$ +localf ptcombezier$ +localf ptcombz$ +localf lchange$ +localf init$ +localf powprimroot$ +localf distpoint$ +localf ntable$ +localf keyin$ +localf mqsub$ +localf msort$ +#else +extern Muldif.rr$ +extern TeXEq$ +extern TeXLim$ +extern DIROUT$ +extern DIROUTD$ +extern DVIOUTL$ +extern DVIOUTA$ +extern DVIOUTB$ +extern DVIOUTH$ +extern DVIOUTF$ +static LCOPT$ +static COLOPT$ +static LPOPT$ +static LFOPT$ +extern TikZ$ +extern ErMsg$ +extern FLIST$ +extern IsYes$ +extern XYPrec$ +extern XYcm$ +extern TikZ$ +extern XYLim$ +extern Canvas$ +extern ID_PLOT$ +extern Rand$ +extern LQS$ +#endif +static S_Fc,S_Dc,S_Ic,S_Ec,S_EC,S_Lc$ +static S_FDot$ +extern AMSTeX$ +Muldif.rr="00170612"$ +AMSTeX=1$ +TeXEq=5$ +TeXLim=80$ +TikZ=0$ +XYcm=0$ +XYPrec=3$ +XYLim=4$ +Rand=0$ +DIROUT="%HOME%\\tex"$ +DVIOUTL="%ASIRROOT%\\bin\\risatex0.bat"$ +DVIOUTA="%ASIRROOT%\\bin\\risatex.bat"$ +DVIOUTB="%ASIRROOT%\\bin\\risatex1%TikZ%.bat"$ +DVIOUTH="start dviout -2 -hyper=0x90 \"%ASIRROOT%\\help\\os_muldif.dvi\" #%LABEL%"$ +DVIOUTF=0$ +LCOPT=["red","green","blue","yellow","cyan","magenta","black","white","gray"]$ +COLOPT=[0xff,0xff00,0xff0000,0xffff,0xffff00,0xff00ff,0,0xffffff,0xc0c0c0]$ +LPOPT=["above","below","left","right"]$ +LFOPT=["very thin","thin","dotted","dashed"]$ +Canvas=[400,400]$ +LQS=[[1,0]]$ + +ErMsg = newvect(3,[ + "irregal argument", /* 0 */ + "too big size", /* 1 */ + "irregal option" /* 2 */ +])$ +FLIST=0$ +IsYes=[]$ +ID_PLOT=-1$ + +def erno(N) +{ + /* extern ErMsg; */ + print(ErMsg[N]); +} + +def chkfun(Fu, Fi) +{ + /* extern FLIST; */ + /* extern Muldif.rr; */ + + if(type(Fu) <= 1){ + if(Fu==1) + mycat(["Loaded os_muldif Ver.", Muldif.rr, "(Toshio Oshima)"]); + else + mycat(["Risa/Asir Ver.", version()]); + return 1; + } + if(type(FLIST) < 4) + FLIST = flist(); + if(type(Fu) == 4){ + for(; Fu != [] ;Fu = cdr(Fu)) + if(chkfun(car(Fu),Fi) == 0) return 0; + return 1; + } + if(findin(Fu, FLIST) >= 0) + return 1; + FLIST = flist(); + if(findin(Fu, FLIST) >= 0) + return 1; + if(type(Fi)==7){ + mycat0(["load(\"", Fi,"\") -> try again!\n"],1); + load(Fi); + } + return 0; +/* + if(type(Fi) == 7) + Fi = [Fi]; + for( ; Fi != []; Fi = cdr(Fi)) + load(car(Fi)); + FLIST = flist(); + return (findin(Fu,FLIST)>=0)?1:0; +*/ +} + +def makev(L) +{ + S = ""; + Num=getopt(num); + while(length(L) > 0){ + VL = car(L); L = cdr(L); + if(type(VL) == 7) + S = S+VL; + else if(type(VL) == 2 || VL < 10) + S = S+rtostr(VL); + else if(VL<46 && Num!=1) + S = S+asciitostr([VL+87]); + else + S = S+rtostr(VL); + } + return strtov(S); +} + +def makenewv(L) +{ + if((V=getopt(var))<2) V="z_"; + else if(isvar(V)) V=rtostr(V); + if(type(N=getopt(num))!=1) N=0; + Var=vars(L); + for(Va=Var;Va!=[];Va=cdr(Va)) + if(vtype(car(Va))==2) Var=append(vars(args(car(Va))),Var); + for(XX=[],I=J=0;;I++){ + X=strtov(V+rtostr(I)); + if(findin(X,Var)<0){ + XX=cons(X,XX); + if(++J>N) return X; + else if(J==N) return reverse(XX); + } + } +} + +def shortv(P,L) +{ + V=vars(P); + if(type(T=getopt(top))==2) T=strtoascii(rtostr(T))[0]-87; + else T=10; + for(;L!=[];L=cdr(L)){ + for(J=0;J<36;J++){ + if(findin(X=makev([car(L),J]|num=1),V)>=0){ + while(findin(Y=makev([T]),V)>=0) T++; + if(T>35) return P; + P=subst(P,X,Y); + T++; + }else if(J>0) break; + } + } + return P; +} + +def vweyl(L) +{ + if(type(L) == 4){ + if(length(L) == 2) + return L; + else + return [L[0],makev(["d",L[0]])]; + } + /* else if(type(L)<2) return L; */ + return [L,makev(["d", L])]; +} + +def mycat(L) +{ + if(type(L) != 4){ + print(L); + return; + } + Opt = getopt(delim); + Del = (type(Opt) >= 0)?Opt:" "; + Opt = getopt(cr); + CR = (type(Opt) >= 0)?0:1; + while(L != []){ + if(Do==1) + print(Del,0); + print(car(L),0); + L=cdr(L); + Do = 1; + } + if(CR) print(""); +} + +def fcat(S,X) +{ + if(type(S)!=7){ + T="fcat"; + if(S>=2&&S<=9) T+=rtostr(S); + T=DIROUTD+T+".txt"; + if(S==-1) return T; + if(S!=0&&access(T)) remove_file(T); + S=T; + } + output(S); + print(X); + output(); + if(getopt(exe)==1) shell("\""+S+"\""); +} + +def mycat0(L,T) +{ + Opt = getopt(delim); + Del = (type(Opt) >= 0)?Opt:""; + while(L != []){ + if(Do==1) + print(Del,0); + print(car(L),0); + L=cdr(L); + Do = 1; + } + if(T) print(""); +} + +def findin(M,L) +{ + if(type(L)==4){ + for(I = 0; L != []; L = cdr(L), I++) + if(car(L) == M) return I; + }else if(type(L)==5){ + K=length(L); + for(I = 0; I < K; I++) + if(L[I] == M) return I; + }else return -2; + return -1; +} + +def countin(S,M,L) +{ + Step=getopt(step); + if(type(Step)==1){ + N=(Step>0)?Step:-Step; + if(type(L)==5) L=vtol(L); + L=qsort(L); + while(car(L)<S&&L!=[]) L=cdr(L); + S+=M; + for(R=[],C=I=0;L!=[];){ + if(car(L)<S||(Step>0&&car(L)==S)){ + C++; + L=cdr(L); + }else{ + R=cons(C,R);C=0;S+=M; + if(N>1&&++I>=N) break; + } + } + if(C>0) R=cons(C,R); + if(N>1&&(N-=length(R))>0) while(N-->0) R=cons(0,R); + return reverse(R); + } + if(type(L)==4){ + for(N=0; L!=[]; L=cdr(L)) + if(car(L)>=S && car(L)<=M) N++; + }else if(type(L)==5){ + K=length(L); + for(I = 0; I < K; I++) + if(L[I]>=S && L[I]<=M) N++; + }else return -2; + return N; +} + +def mycoef(P,N,X) +{ + if(type(P)<3 && type(N)<3) + return coef(P,N,X); + if(type(P) >= 4) +#ifdef USEMODULE + return map(os_md.mycoef,P,N,X); +#else + return map(mycoef,P,N,X); +#endif + if(type(N)==4){ + for(;N!=[];N=cdr(N),X=cdr(X)) + P=mycoef(P,car(N),car(X)); + return P; + } + if(deg(dn(P), X) > 0){ + P = red(P); + if(deg(dn(P), X) > 0) + return 0; + } + return red(coef(nm(P),N,X)/dn(P)); +} + +def mydiff(P,X) +{ + if(X == 0) + return 0; + if(type(P)<3 && type(X)<3) + return diff(P,X); + if(type(P) >= 4) +#ifdef USEMODULE + return map(os_md.mydiff,P,X); +#else + return map(mydiff,P,X); +#endif + if(type(X)==4){ + for(;X!=[];X=cdr(X)) P=mydiff(P,car(X)); + return P; + } + if(deg(dn(P),X) == 0) + return red(diff(nm(P),X)/dn(P)); + return red(diff(P,X)); +} + +def myediff(P,X) +{ + if(X == 0) + return 0; + if(type(P) < 3) + return ediff(P,X); + if(type(P) >= 4) +#ifdef USEMODULE + return map(os_md.myediff,P,X); +#else + return map(myediff,P,X); +#endif + if(deg(dn(P),X) == 0) + return red(ediff(nm(P),X)/dn(P)); + return red(X*diff(P,X)); +} + +def m2l(M) +{ + if(type(M) < 4) + return [M]; + if(type(M) == 4){ + if(type(car(M))==4 && getopt(flat)==1){ + for(MM = []; M!=[]; M=cdr(M)) + MM = append(MM,car(M)); + return MM; + } + return M; + } + if(type(M) == 5) + return vtol(M); + S = size(M); + for(MM = [], I = S[0]-1; I >= 0; I--) + MM = append(vtol(M[I]), MM); + return MM; +} + +def mydeg(P,X) +{ + if(type(P) < 3) + return deg(P,X); + II = -1; + Opt = getopt(opt); + if(type(P) >= 4){ + S=(type(P) == 6)?size(P)[0]:0; + P = m2l(P); + for(I = 0, Deg = -3; P != []; P = cdr(P), I++){ + if( (DT = mydeg(car(P),X)) == -2) + return -2; + if(DT > Deg){ + Deg = DT; + II = I; + } + } + return (Opt==1)?([Deg,(S==0)?II:[idiv(II,S),irem(II,S)]]):Deg; + } + P = red(P); + if(deg(dn(P),X) == 0) + return deg(nm(P),X); + return -2; +} + +def pfctr(P,X) +{ + P=red(P); + if((T=ptype(P,X))>3) return []; + if(T==3){ + G=pfctr(dn(P),X); + F=pfctr(nm(P),X); + R=[[car(F)[0]/car(G)[0],1]]; + for(F=cdr(F);F!=[];F=cdr(F)) R=cons(car(F),R); + for(G=cdr(G);G!=[];G=cdr(G)) R=cons([car(G)[0],-car(G)[1]],R); + return reverse(R); + } + F=fctr(nm(P)); + for(R=[],C=1/dn(P);F!=[];F=cdr(F)) + if(mydeg(car(F)[0],X)>0) R=cons(car(F),R); + else C*=car(F)[0]^car(F)[1]; + return cons([C,1],reverse(R)); +} + +def mymindeg(P,X) +{ + if(type(P) < 3) + return mindeg(P,X); + II = -1;T=60; + Opt = getopt(opt); + if(type(P) >= 4){ + S=(type(P) == 6)?size(P)[0]:0; + P = m2l(P); + for(I = 0, Deg = -3; P != []; P = cdr(P), I++){ + if(car(P) == 0) + continue; + if( (DT = mydeg(car(P),X)) == -2) + return -2; + if(DT < Deg || Deg == -3){ + if(DT==0){ + if(type(car(P))>=T) continue; + T=type(car(P)); + } + Deg = DT; + II = I; + } + } + return (Opt==1)?([Deg,(S==0)?II:[idiv(II,S),irem(II,S)]]):Deg; + } + P = red(P); + if(deg(dn(P),X) == 0) + return mindeg(nm(P),X); + return -2; +} + +def m1div(M,N,L) +{ + L = (type(L) <= 3)?[0,L]:vweyl[L]; + DX = L[1]; X = L[0]; + if(mydeg(N,DX) != 0) + return 0; + DD = mydeg(M,DX); + MM = M; + while( (Deg=mydeg(MM,DX)) > 0){ + MC = mycoef(MM,Deg,DX)*DX^(Deg-1); + MS = radd(MC, MS); + MM = radd(MM, muldo(MC,radd(-DX,N),L)); + } + return [MM, MS]; +} + + +def mulsubst(F,L) +{ + N = length(L); + if(N == 0) + return F; + if(type(L[0])!=4) L=[L]; + if(getopt(inv)==1){ + for(R=[];L!=[];L=cdr(L)) R=cons([car(L)[1],car(L)[0]],R); + L=reverse(R); + } + if(length(L)==1) return mysubst(F,L); + L1 = newvect(N); + for(J = 0; J < N ; J++) + L1[J] = uc(); + L2 = newvect(N); + for(J = 0; J < N; J++){ + S = L[J][1]; + for(I = 0; I < N; I++) + S = mysubst(S,[L[I][0],L1[I]]); + L2[J] = S; + } + for(J = 0; J < N; J++) + F = mysubst(F, [L[J][0],L2[J]]); + for(J = 0; J < N; J++) + F = mysubst(F, [L1[J],L[J][0]]); + return F; +} + +def cmpsimple(P,Q) +{ + T = getopt(comp); + if(P == Q) + return 0; + D = 0; + if(type(T) < 0) + T = 7; + if(iand(T,1)) + D = length(vars(P)) - length(vars(Q)); + if(!D && iand(T,2)) + D = nmono(P) - nmono(Q); + if(!D && iand(T,4)) + D = str_len(rtostr(P)) - str_len(rtostr(Q)); + if(!D){ + if(P > Q) D++; + else D--; + } + return D; +} + +def simplify(P,L,T) +{ + if(type(P) > 3) +#ifdef USEMODULE + return map(os_md.simplify,P,L,T); +#else + return map(simplify,P,L,T); +#endif + if(type(L[0]) == 4){ + if(length(L[0]) > 1) +#if USEMODULE + return fmult(os_md.simplify,P,L,[T]); +#else + return fmult(simplify,P,L,[T]); +#endif + L = L[0]; + } + if(type(Var=getopt(var)) == 4 && Var!=[]){ + if(type(P) == 3) + return simplify(nm(P),P,L,T|var=Var)/simplify(dn(P),P,L,T|var=Var); + V = car(Var); + if((I = mydeg(P,V)) > 0){ + Var = cdr(Var); + for(Q=0; I>=0 ; I--) + Q += simplify(mycoef(P,I,V), L, T|var=Var)*V^I; + return Q; + } + } + if(length(L) == 1){ + L = car(L); + for(V = vars(L); V != []; V = cdr(V)){ + VT = car(V); + if(deg(L,VT) != 1) continue; + P = simplify(P, [VT, -red(coef(L,0,VT)/coef(L,1,VT))], T); + } + return P; + } + Q = mysubst(P,[L[0],L[1]]); + return (cmpsimple(P,Q|comp=T) <= 0)?P:Q; +} + +def monotos(P) +{ + if(nmono(P) <= 1) + return rtostr(P); + return "("+rtostr(P)+")"; +} + + +def monototex(P) +{ + Q=my_tex_form(P); + if(nmono(P)<2 && (getopt(minus)!=1 || str_str(Q,"-"|top=0,end=0)<0)) + return Q; + return "("+Q+")"; +} + +def minustos(S) +{ + if(str_str(S,"-"|top=0,end=0)<0) return S; + return "("+S+")"; +} + +def vnext(V) +{ + S = length(V); + for(I = S-1; I > 0; I--){ + if(V[I-1] < V[I]){ + V0 = V[I-1]; + for(J = I+1; J < S; J++) + if(V0 >= V[J]) break; + V[I-1] = V[--J]; + V[J] = V0; + for(J = S-1; I < J; I++, J--){ + V0 = V[I]; + V[I] = V[J]; + V[J] = V0; + } + return 1; + } + } + return 0; +} + +def ldict(N, M) +{ + Opt = getopt(opt); + R = S = []; + for(I = 2; N > 0; I++){ + R = cons(irem(N,I), R); + N = idiv(N,I); + } + L = LL = length(R); + T=newvect(LL+1); + while(L-- > 0){ + V = car(R); R = cdr(R); + for(I = J = 0; J <= V ; I++){ + if(T[I] == 0) + J++; + } + T[I-1] = 1; + S = cons(LL-I+1, S); + } + for(I = 0; I <= LL; I++){ + if(T[I] == 0){ + S = cons(LL-I, S); + break; + } + } + if(M == 0) + return S; + if(M <= LL){ + print("too small size"); + return 0; + } + T = []; + for(I = --M; I > LL; I--) + T = cons(I,T); + S = append(S,T); + if(Opt == 2 || Opt == 3) + S = reverse(S); + if(Opt != 1 && Opt != 3) + return S; + for(T = []; S != []; S = cdr(S)) + T = cons(M-car(S),T); + return T; +} + +def ndict(L) +{ + Opt = getopt(opt); + R = []; + if(Opt != 1 && Opt != 2) + L = reverse(L); + T = (Opt == 1 || Opt == 3)?1:0; + for( ; L != []; L = cdr(L)){ + for(I = 0, V = car(L), LT = cdr(L); LT != []; LT = cdr(LT)) + if(T == 0){ + if(V < car(LT)) I++; + }else if (V > car(LT)) I++; + R = cons(I, R); + } + R = reverse(R); + for(V = 0, I = length(R); I > 0; R = cdr(R), I--) + V = V*I + car(R); + return V; +} + +def nextsub(L,N) +{ + if(type(L) == 1){ + for(LL = [], I = L-1; I >= 0; I--) + LL = cons(I,LL); + return LL; + } + M = length(L = ltov(L)); + K = N-M; + for(I = M-1; I >= 0; I--) + if(L[I] < I+K) break; + if(I < 0) + return 0; + for(J = L[I]+1; I < M; I++, J++) + L[I] = J; + return vtol(L); +} + +def nextpart(L) +{ + if(car(L) <= 1) + return 0; + for(I = 0, L = reverse(L); car(L) == 1; L=cdr(L)) + I++; + I += (K = car(L)); + R = irem(I,--K); + R = (R==0)?[]:[R]; + for(J = idiv(I,K); J > 0; J--) + R = cons(K,R); + L = cdr(L); + while(L!=[]){ + R = cons(car(L), R); + L = cdr(L); + } + return R; +} + +def transpart(L) +{ + L = reverse(L); + for(I=1, R=[]; L!= []; I++){ + R = cons(length(L), R); + while(L != [] && car(L) <= I) + L = cdr(L); + } + return reverse(R); +} + +def trpos(A,B,N) +{ + S = newvect(N); + for(I = 0; I < N; I++) + S[I]=(I==A)?B:((I==B)?A:I); + return S; +} + +def sprod(S,T) +{ + L = length(S); + V = newvect(L); + while(--L >= 0) + V[L] = S[T[L]]; + return V; +} + +def sinv(S) +{ + L = length(S); + V = newvect(L); + while(--L >= 0) + V[S[L]] = L; + return V; +} + +def slen(S) +{ + L = length(S); + for(V = 0, J = 2; J < L; i++){ + for(I = 0; I < J; I++) + if(S[I] > S[J]) V++; + } + return V; +} + +def sord(W,V) +{ + L = length(W); + W0 = nevect(L); + V0 = newvect(L); + for(I = F = C = 0; I < L; I++){ + C = 0; + if( (W1 = W[I]) > (V1 = V[I]) ){ + if(F < 0) C = 1; + else if(F==0) F = 1; + }else if(W1 < V1){ + if(F > 0) C = 1; + else if(F==0) F = -1; + } + for(J = I;--J >= 0 && W0[J] > W1; ) W0[J+1] = W0[J]; + W0[J+1] = W1; + for(J = I;--J >= 0 && V0[J] > V1; ) V0[J+1] = V0[J]; + V0[J+1] = V1; + if(C){ + for(J = I; J >= 0; J--){ + if((W1=W0[J]) == (V1=V0[J])) continue; + if(W1 > V1){ + if(F < 0) return 2; + } + else if(F > 0) return 2; + } + } + } + return F; +} + +def vprod(V1,V2) +{ + for(R = 0, I = length(V1)-1; I >= 0; I--) + R = radd(R, rmul(V1[I], V2[I])); + return R; +} + +def dnorm(V) +{ + if(type(V)<2) return dabs(V); + R=0; + if(type(V)!=4) + for (I = length(V)-1; I >= 0; I--) R+= V[I]^2; + else{ + if(type(V[0])>3){ + V=ltov(V[0])-ltov(V[1]); + return dnorm(V); + } + for(;V!=[]; V=cdr(V)) R+=car(V)^2; + } + return dsqrt(R); +} + +def dvprod(V1,V2) +{ + if(type(V1)<2) return V1*V2; + R=0; + if(type(V1)!=4) + for(I = length(V1)-1; I >= 0; I--) + R += V1[I]*V2[I]; + else{ + for(; V1!=[]; V1=cdr(V1),V2=cdr(V2)) + R+=car(V1)*car(V2); + } + return R; +} + +def dvangle(V1,V2) +{ + if(V2==0 && type(V1)==4 && length(V1)==3 && + (type(V1[0])==4 || type(V1[0])==5 || type(V1[1])==4 || type(V1[1])==5 || + type(V1[2])==4 || type(V1[2])==5) ){ + if(V1[0]==0 || V1[1]==0 || V1[2]==0) return 1; + PV2=V1[1]; + if(type(PV2)==4){ + PV2=ltov(PV2); + return dvangle(PV2-ltov(V1[0]),ltov(V1[2])-PV2); + }else + return dvangle(PV2-V1[0],V1[2]-PV2); + } + if((L1=dnorm(V1))==0 || (L2=dnorm(V2))==0) return 1; + return dvprod(V1,V2)/(L1*L2); +} + +def mulseries(V1,V2) +{ + L = length(V1); + if(size(V2) < L) + L = size(V2); + VV = newvect(L); + for(J = 0; J < L; J++){ + for(K = R = 0; K <= J; K++) + R = radd(R,rmul(V1[K],V2[J-K])); + VV[J] = R; + } + return VV; +} + +def scale(L) +{ + T=0;LS=1; + if(type(L)!=4){ + if(L==2){ + L=[[[1,2,1/20],[2,5,1/10],[5,10,1/5], [10,20,1/2],[20,50,1],[50,100,2]], + [[1,2,1/10],[2,5,1/2], [10,20,1],[20,50,5]], + [[1,2,1/2],[2,10,1], [10,20,5],[20,100,10]]]; + LS=2; + }else if(L==3){ + L=[[[1,2,1/20],[2,5,1/10],[5,10,1/5], [10,20,1/2],[20,50,1],[50,100,2], + [100,200,5],[200,500,10],[500,1000,20]], + [[1,2,1/10],[2,5,1/2], [10,20,1],[20,50,5], [100,200,10],[200,500,50]], + [[1,2,1/2],[2,10,1], [10,20,5],[20,100,10], [100,200,50],[200,1000,100]]]; + LS=3; + }else{ + L=[[[1,2,1/50],[5,10,1/2],[5,10,1/10]],[[1,5,1/10],[5,10,1/2]], + [[1,5,1/2],[5,10,1]]]; + } + }else if(type(L[0])!=4){ + L=[L]; + if(length(L)!=3||L[0]+L[2]>L[1]) T=L; + } + if(T==0){ + if(type(L[0][0])!=4) L=[L]; + for(R=[];L!=[];L=cdr(L)){ + for(RR=[],LT=car(L);LT!=[];LT=cdr(LT)) + for(I=car(LT)[0];I<=car(LT)[1];I+=car(LT)[2]) RR=cons(I,RR); + RR=lsort(RR,[],1); + R=cons(RR,R); + } + R=reverse(R); + for(T=[];R!=[];R=cdr(R)){ + if(length(R)>1) T=cons(lsort(R[0],R[1],"setminus"),T); + else T=cons(R[0],T); + } + } + V0=dlog(10); + S0=S1=1;D0=D1=0; + SC=getopt(scale); + if(type(SC)==4){ + S0=SC[0];S1=SC[1]; + }else if(type(S)==1){ + S0=S;S1=0; + }else return T; + if(type(D=getopt(shift))==4){ + D0=D[0];D1=D[1]; + } + if(type(F=getopt(f))>1) F=f2df(F); + else F=0; + for(M=[],I=length(T);T!=[];T=cdr(T),I--){ + for(S=car(T);S!=[];S=cdr(S)){ + V=((!F)?dlog(car(S))/dlog(10)/LS:myfdeval(F,car(S)))*S0; + if(S1!=0){ + M=cons([V+D0,D1],M); + M=cons([V+D0,I*((length(SC)>2)?SC[I]:S1)+D1],M); + M=cons(0,M); + }else M=cons(V+D0,M); + } + } + if(S1!=0) M=cdr(M); + M=reverse(M); + if(getopt(TeX)==1){ + if(type(U=getopt(line))==4) + M=cons([U[0]+D0,D1],cons([U[1]+D0,D1],cons(0,M))); + S=xylines(M); + if(type(Mes=getopt(mes))==4){ + S3=car(Mes); + V=car(scale(cdr(Mes))); + if(!F) Mes=scale(cdr(Mes)|scale=[S0/LS,0],shift=[D0,D1]); + else Mes=scale(cdr(Mes)|f=F,scale=[S0,0],shift=[D0,D1]); + for(M=Mes;M!=[];M=cdr(M),V=cdr(V)) + S+=xyput([car(M),S3,deval(car(V))]); + } + return S; + } + return M; +} + +def pluspower(P,V,N,M) +{ + RR = 1; + for(K = R = 1; K < M-1; I++){ + R = R*(N-K+1)*P/K; + RR = radd(RR,R); + } + VV = newvect(M); + for(K = 0; K < M-1; K++) + VV[K] = red(mycoef(RR,K,V)); +} + +def vtozv(V) +{ + if(type(V)<4) V=newvect(1,[V]); + S = length(V); + VV = newvect(S); + Lcm = 1; + for(K = 0; K < S; K++){ + VV[K] = red(V[K]); + Lcm = lcm(Lcm,dn(VV[K])); + C = ptozp(nm(VV[K])|factor=0); + if(K == 0){ + Dn = dn(C[1]); + Nm = nm(C[1]); + PNm = nm(C[0]); + }else{ + Dn = ilcm(Dn,dn(C[1])); + Nm = igcd(Nm,nm(C[1])); + PNm = gcd(PNm,nm(C[0])); + } + } + if(!(M=Nm*PNm)) return [VV,0]; + Mul = (Lcm*Dn)/M; + for(K = 0; K < S; K++) + VV[K] = rmul(VV[K],Mul); + return [VV,Mul]; +} + +def dupmat(M) +{ + if(type(M) == 6){ + Size = size(M); + MM = newmat(Size[0],Size[1]); + for(I = 0; I < Size[0]; I++){ + for(J = 0; J < Size[1]; J++) + MM[I][J] = M[I][J]; + } + return MM; + } + if(type(M) == 5) + return ltov(vtol(M)); + return M; +} + +def matrtop(M) +{ + S = size(M); + MM = dupmat(M); + Lcm = newvect(S[0]); + for(J = 0; J < S[0]; J++){ + U = vtozv(M[J]); + for(K = -1, I = 0; I < S[1]; I++) + MM[J][I] = U[0][I]; + Lcm[J] = U[1]; + } + return [MM,Lcm]; +} + +def mytrace(M) +{ + S=size(M); + if(S[0]!=S[1]) return 0; + for(I=V=0; I<S[0]; I++){ + V+=M[I][I]; + } + return V; +} + +def mydet(M) +{ + MM = matrtop(M); + if(type(MM[0]) == 6){ + S = size(M); + for(Dn = 1, I = 0; I < S[0]; I++) + Dn *= MM[1][I]; + return (!Dn)?0:red(det(MM[0])/Dn); + } +} + +def mperm(M,P,Q) +{ + if(type(M) == 6){ + S = size(M); + if(type(P) <= 1) + P=(P==1)?Q:trpos(0,0,S[0]); + if(type(P) > 3 && type(P[0]) >= 4) + P = trpos(P[0][0],P[0][1],S[0]); + else if(type(P) == 4){ + if(length(P)==2 && type(P[1])==4){ + P0=P[0];P1=car(P[1]);P=newvect(P1); + for(I=0;I<P1;I++) P[I]=P0+I; + }else P = ltov(P); + } + if(type(Q) <= 1) + Q=(Q==1)?P:trpos(0,0,S[1]); + if(type(Q) > 3 && type(Q[0]) >= 4) + Q = trpos(Q[0][0],Q[0][1],S[1]); + if(type(Q) == 4){ + if(length(Q)==2 && type(Q[1])==4){ + P0=Q[0];P1=car(Q[1]);Q=newvect(P1); + for(I=0;I<P1;I++) Q[I]=P0+I; + }else Q = ltov(Q); + } + MM = newmat(S0=length(P),S1=length(Q)); + for(I = 0; I < S0; I++){ + MMI = MM[I]; MPI = M[P[I]]; + for(J = 0; J < S1; J++) + MMI[J] = MPI[Q[J]]; + } + return MM; + } + if((type(M) == 5 || type(M) == 4) && type(P) >= 4){ + if(length(P) == 1 && type(car(P)) == 4) + P = trpos(car(P)[0],car(P)[1],length(M)); + MM = newvect(S = length(P)); + for(I = 0; I < S; I++) + MM[I] = M[P[I]]; + if(type(M) == 4) + MM = vtol(MM); + return MM; + } + return M; +} + +def mtranspose(M) +{ + if(type(M)==4){ + MV=ltov(M); + II=length(MV); + for(I=L=0; I<II; I++){ + if(type(MV[I])!=4) return M; + MV[I]=ltov(MV[I]); + } + for(R=[],J=0; ;J++){ + for(T=[],I=F=0; I<II; I++){ + if(length(MV[I])>J){ + F=1; + T=cons(MV[I][J],T); + } + } + if(F==0) return reverse(R); + if(F==1) R=cons(reverse(T),R); + } + } + if(type(M) != 6) + return M; + S = size(M); + MM = newmat(S[1],S[0]); + for(I = 0; I < S[0]; I++){ + for(J = 0; J < S[1]; J++) + MM[J][I] = M[I][J]; + } + return MM; +} + +def mtoupper(MM, F) +{ + TeXs=["\\ -=\\ ","\\ +=\\ "]; + Lins=[" -= line"," += line"]; + Assume=["If","Assume"]; + if(type(St = getopt(step))!=1) St=0; + Opt = getopt(opt); + if(type(Opt)!=1) Opt=0; + TeX=getopt(dviout); + if(type(Tab=getopt(tab))!=1 && Tab!=0) Tab=2; + Line="\\text{line}"; + if(type(TeX)!=1 || !St) TeX=0; + Size = size(MM); + if(F==-1){ + M = newmat(Size[0], Size[1]+1); + for(I = 0; I < Size[0]; I++){ + for(J = 0; J < Size[1]; J++) + M[I][J] = MM[I][J]; + M[I][Size[1]] = zz^I; + } + Size = size(M); + F = 1; + }else if(F<0){ + F=Size[0]; + M = newbmat(1,2,[[MM,mgen(F,0,[1],0)]]); + Size=[Size[0],F+Size[1]]; + }else + M = dupmat(MM); + if(St){ + if(TeX) Lout=[[dupmat(M)]]; + else mycat0([M,"\n\n"],0); + } + Top=""; + if(Opt>3){ + for(I=Opt; I>4; I--) + Top+=(TeX)?"\\ ":" "; + } + PC=IF=1; + for(K = JJ = 0; K < Size[1] - F; K++){ + for(J = JJ; J < Size[0]; J++){ + if(M[J][K] != 0){ /* search simpler element */ + if(Opt>2 && (Mul=M[J][K])!=1){ + for(FF=0,JT=J; JT<Size[0]; JT++){ + if((Val=M[JT][K])==1){ /* 1 */ + Mul=1;J=JT; break; + } + if(Val==0 || type(Val)>type(Mul)) continue; + if(type(Val)<type(Mul) || (Val==-1 && Mul!=-1)){ + Mul=Val; J=JT; /* smaller type */ + } + else if(Opt>3){ + if(isint(Val)==1){ /* integer elememt */ + if(isint(Mul)!=1){ + Mul=Val; J=JT; /* integer */ + } + if(FF<3||(FF==3&&Val>0)){ + for(JK=K+1;;){ + if(JK>=Size[1]-F){ + J=JT; + FF=((Mul=Val)>0)?4:3; + break; /* divisible int => 4: pos_int 3: neg_int */ + } + if(isint(M[JT][JK++]/Val)!=1) break; + } + } + }else if(!FF){ + for(JK=K+1; JK<Size[1]-F; JK++){ + if(isint(M[JT][JK]/Val)!=1) break; + J=JT; FF=1; /* divisible => 1: non integer */ + } + } + } + } + if(FF==0 && Opt>3 && Mul!=1 && Mul!=-1){ /* FF > 0 => divisible */ + for(FF=0,J0=J; J0<Size[0]-1 && FF!=9; J0++){ + VV0=M[J0][K]; + if(VV0==0 || isint(VV0)==0) continue; + for(J1=J0+1;J1<Size[0] && FF!=9; J1++){ + VV1=M[J1][K]; + if(VV1==0 || isint(VV1)==0) continue; + for(C=FT=0,V0=VV0,V1=VV1; C<2 && FF!=10; C++,V1=V0,V0=VV1){ + for(CC=0,RC=ceil(V0/V1);CC<2;CC++,RC--){ + if((CD=V0-RC*V1)==0 && (RC==1 || RC==-1)){ + FT=1; FF=10; /* 10: vanish by +- */ + }else if(CD==1){ + FV=(vars(M[J0])==[]&&vars(M[J1])==[])?1:0; + if((RC==1 || RC==-1) && FF<8+FV){ + FT=1; FF=8+FV; /* 8/9: 1 by +- */ + }else if(FF<6+VF){ + FT=1; FF=6+FV; /* 6/7: 1 by times */ + } + }else if(CD==-1){ + FV=(vars(M[J0])==[]&&vars(M[J1])==[])?1:0; + if((RC==1 || RC==-1) && FF<4+FV){ + FT=1; FF=4+FV; /* 4/5: 1 by +- */ + }else if(FF<2+VF){ + FT=1; FF=2+FV; /* 2/3: 1 by times */ + } + } + if(FT==1){ + FT=0; KRC=RC; + if(C==0){ + KJ0=J0; KJ1=J1; + }else{ + KJ0=J1; KJ1=J0; + } + } + } + } + } + } + if(FF>0){ + for(I=K;I<Size[1];I++) + M[KJ0][I]=radd(M[KJ0][I],rmul(M[KJ1][I],-KRC)); + if(KRC<0){ + KRC=-KRC;Sgn=1; + }else + Sgn=0; + if(St){ + if(TeX){ + if(KRC==1) + Lout=cons([Top+"\\xrightarrow{", Line,KJ0+1,TeXs[Sgn], + Line,KJ1+1,"}",dupmat(M)],Lout); + else + Lout=cons([Top+"\\xrightarrow{", Line,KJ0+1,TeXs[Sgn], + Line,KJ1+1,"\\times\\left(",KRC,"\\right)}", + dupmat(M)],Lout); + + }else{ + if(KRC==1) + mycat([Top+"line",KJ0+1,Lins[Sgn],KJ1+1,"\n",M,"\n"]); else + mycat([Top+"line",KJ0+1,Lins[Sgn],KJ1+1," * (",KRC,")\n",M,"\n"]); + } + } + Mul=M[KJ0][K]; J=KJ0; + if(FF==10){ + J--; continue; + } + } + } + } + /* a parameter Var */ + Var=0; + if(St && Opt>4 && length(Var=vars(nm(M[J][K])))==1){ + J0=J;Jv=mydeg(nm(M[J0][K]),car(Var)); + for(I=JJ;I<Size[0]; I++){ + if((MIK=M[I][K])==0) continue; + if((T=vars(MIK=nm(MIK)))==[]){ /* 1/poly */ + J=I;Var=[]; break; + } + if(length(T)>1) continue; + if(mydeg(MIK,T[0])<Jv){ + J0=I;Jv=mydeg(MIK);Var=T; /* search minimal degree */ + } + } + if(length(Var)==1){ + Var=car(Var); + Q=nm(M[J0][K]); + for(I=JJ; I<Size[0]; I++){ + if(I==J0 || mydeg(nm(M[I][K]),Var)<0) continue; + T=rpdiv(nm(M[I][K]),Q,Var); + if(T[0]!=0 && (vars(T)==[] || vars(T)==[Var])) break; /* dec. deg */ + } + } + } + if(type(Var)==2){ /* 1 variable */ + if(I==Size[0]){ + for(QF=0,Q0=1,QR=getroot(Q,Var|mult=1);QR!=[];QR=cdr(QR)){ + if(deg(T=QR[0][1],Var)>0){ + QF=1;Q0*=T; continue; + } + if(subst(PC,Var,T)==0) continue; + Q0*=(Var-(T=QR[0][1])); + if(type(T)<2){ + M0=subst(M,Var,T); + if(TeX){ + Lout=cons(["\\hspace{",Tab*(St-3)-1,"mm}\\text{If }", + Var,"=",T,","] ,Lout); + Lout=append(mtoupper(M0,F|step=St+1,opt=Opt,dviout=-2,tab=Tab),Lout); + }else{ + mycat([str_times(" ",St-1)+"If",Var,"=",T,","]); + mtoupper(M0,F|step=St+1,opt=Opt); + } + } + } + if(Q0!=1){ + if(TeX) + Lout=cons(["\\hspace{",Tab*(St-3)-1,"mm}\\text{"+Assume[QF]+" }", + Q0/=fctr(Q0)[0][0],"\\ne0,"],Lout); + else + mycat([str_times(" ",St-1)+Assume[QF],Q0,"!=0,"]); + PC*=Q0; + } + IF=0;St++; + }else{ + KRC=-red((T[2]*dn(M[J0][K]))/(T[1]*dn(M[I][K]))); + for(II=K;II<Size[1];II++) + M[I][II]=radd(M[I][II],rmul(M[J0][II],KRC)); + if(TeX) + Lout=cons([Top+"\\xrightarrow{", Line,I+1,"\\ +=\\ ",Line, + J0+1,"\\times\\left(",KRC,"\\right)}",dupmat(M)],Lout); + else + mycat([Top+"line",I+1,"+=",Line,J0+1," * (",KRC,")\n",M,"\n"]); + J=JJ-1; + continue; + } + } + if(J != JJ){ + for(I = K; I < Size[1]; I++){ + Temp = M[JJ][I]; + M[JJ][I] = M[J][I]; + M[J][I] = (Opt>=2)?Temp:-Temp; + } + if(St){ + if(TeX) + Lout=cons([Top+"\\xrightarrow{",Line,JJ+1,"\\ \\leftrightarrow\\ ", + Line,J+1,"}",dupmat(M)],Lout); + else + mycat0([Top+"line",JJ+1," <-> line",J+1,"\n",M,"\n\n"],0); + } + } + /* Assume PC != 0 */ + if(Opt>1){ + Mul = M[JJ][K]; + if(Opt > 5 && St && IF && (Var=vars(MIK=nm(Mul)))!=[]){ + TF=fctr(MIK); + for(FF=0,Q0=1,TP=cdr(TF);TP!=[];TP=cdr(TP)){ + if(type(dn(red(PC/(TP0=car(car(TP))))))<2) continue; /* divisible */ + Q0*=TP0; + for(Var=vars(TP0);Var!=[];Var=cdr(Var)){ + if(mydeg(TP0,X=car(Var))==1 && type(dn(red(PC/mycoef(TP0,1,X))))<2){ + /* TP0=A*X+B with non-vanishing A */ + T=red(-mycoef(TP0,0,X)/mycoef(TP0,1,X)); + M0=mysubst(M,[X,T]); + if(TeX){ + Lout=cons(["\\hspace{",Tab*(St-3)-1,"mm}\\text{If }", + X,"=",T,","] ,Lout); + Lout=append(mtoupper(M0,F|step=St+1,opt=Opt,dviout=-2,tab=Tab), + Lout); + }else{ + mycat([str_times(" ",St-1)+"If",X,"=",T,","]); + mtoupper(M0,F|step=St+1,opt=Opt); + } + break; + } + } + if(Var==[] && Opt>6){ + for(Var=vars(TP0);Var!=[];Var=cdr(Var)){ + if(mydeg(TP0,X=car(Var))==1){ + /* TP0=A*X+B, A is a poly of X0 with rational funct */ + T=nm(mycoef(TP0,1,X)); + for(Var0=vars(T);Var0!=[]; Var0=cdr(Var0)){ + X0=car(Var0); + if(type(dn(red(PC/type(mycoef(T,mydeg(T,X0),X0)))))>1) continue; + TR=getroot(T,X0|mult=1); + if(findin(X0,vars(TR))<0) break; + } + if(Var0==[]) continue; + for(;TR!=[0];TR=cdr(TR)){ + if(TR==[]){ + TR=[0,0]; + T0=-mycoef(TP0,0,X)/mycoef(TP0,1,X); + X0=X; + }else T0=car(TR)[1]; + M0=mysubst(M,[X0,T0]); + if(TeX){ + Lout=cons(["\\hspace{",Tab*(St-3)-1,"mm}\\text{If }", + X0,"=",T0,","] ,Lout); + Lout=append(mtoupper(M0,F|step=St+1,opt=Opt,dviout=-2,tab=Tab), + Lout); + }else{ + mycat([str_times(" ",St-1)+"If",X0,"=",T0,","]); + mtoupper(M0,F|step=St+1,opt=Opt); + } + } + + } + break; + } + } + if(Var==[]){ + FF=1; + } + } + if(Q0!=1){ + if(FF) FF=1; + if(TeX) Lout=cons(["\\hspace{",Tab*(St-3)-1,"mm}\\text{"+Assume[FF]+" }",Q0/=fctr(Q0)[0][0],"\\ne0,"], + Lout); + else mycat([str_times(" ",St-1)+Assume[FF],Q0,"!=0,"]); + PC*=Q0;St++; + } + } + IF=M[JJ][K]=1; + if(Mul!=1){ + for(L=K+1; L<Size[1]; L++) + M[JJ][L]=red(M[JJ][L]/Mul); + if(St){ + if(TeX) + Lout=cons([Top+"\\xrightarrow{",Line,JJ+1, + "\\ \\times=\\ \\left(",red(1/Mul),"\\right)}", + dupmat(M)],Lout); + else + mycat0([Top+"line",JJ+1, " *= (",red(1/Mul), ")\n",M,"\n\n"],0); + } + } + + } + for(J = (Opt>0)?0:(JJ+1); J < Size[0]; J++){ + if(J == JJ) + continue; + Mul = -M[J][K]; + if(Mul!=0){ + if(Opt!=2) Mul=rmul(Mul,1/M[JJ][K]); + for(I = K+1; I < Size[1]; I++) + M[J][I] = radd(M[J][I],rmul(M[JJ][I],Mul)); + M[J][K] = 0; + if(St){ + if(Mul<0){ + Mul=-Mul;Sgn=0; + }else Sgn=1; + if(TeX){ + if(Mul==1) + Lout=cons([Top+"\\xrightarrow{", Line,J+1,TeXs[Sgn],Line,JJ+1, + "}",dupmat(M)],Lout); + else Lout=cons([Top+"\\xrightarrow{", Line,J+1,TeXs[Sgn],Line,JJ+1, + "\\times\\left(",Mul,"\\right)}",dupmat(M)],Lout); + }else{ + if(Mul==1) + mycat0([Top+"line",J+1, Lins[Sgn],JJ+1,"\n",M,"\n\n"],0); + else + mycat0([Top+"line",J+1, Lins[Sgn],JJ+1," * (",Mul,")\n",M,"\n\n"],0); + } + } + } + } + JJ++; + } + } + } + if(TeX){ + if(TeX==-2) return Lout; + Lout=reverse(Lout); + Br="\\allowdisplaybreaks"; + Cr="\\\\\n &"; + if(getopt(pages)==1) Cr=Br+Cr; + if(type(S=getopt(cr))==7) Cr=S; + if(type(Lim=getopt(lim))==1){ + if(Lim>0){ + if(Lim<30) Lim=TeXLim; + Lim*=2; + } + }else Lim=0; + Out = ltotex(Lout|opt=["cr","spts0"],str=1,cr=Cr,lim=Lim); + if(TeX<0) return Out; + dviout(Out|eq=(str_str(Cr,Br)>=0)?6:5,keep=(TeX==1)?0:1); + } + return M; +} + +def mydet2(M) +{ + S = size(M); + Det = 1; + MM = mtoupper(M,0); + for(I = 0; I < S[0]; I++) + Det = rmul(Det,MM[I][I]); + return Det; +} + +def myrank(MM) +{ + S = size(MM); + M = dupmat(MM); + M = mtoupper(M,0); + C = 0; + for(I = K = 0; I < S[0]; I++){ + for(J = K; J < S[1]; J++){ + if(M[I][J] != 0){ + C++; K++; + break; + } + } + } + return C; +} + +def meigen(M) +{ + F = getopt(mult); + if(type(M)==4 || type(M)==5){ + II=length(M); + for(R=[],I=II-1; I>=0; I--){ + if(F==1) + R=cons(meigen(M[I]|mult=1),R); + else + R=cons(meigen(M[I]),R); + } + return R; + } + S = size(M)[0]; + P = mydet2(mgen(S,0,[zz],0)-M); + return (F==1)?getroot(P,zz|mult=1):getroot(P,zz); +} + +def transm(M) +{ + if(type(M)!=6) M=s2m(M); + if(type(M)!=6){ + errno(0); + return 0; + } + L=[M];TeX=""; + Line=["\\text{line}","\\text{col}"]; + if((DVI=getopt(dviout)) !=1) DVI=0; + else dviout(M); + for(;;){ + print(L0=dupmat(car(L))); + Sz=size(L0); + S=keyin("? "); + N=0; + if(str_len(S)<=1){ + if(S=="q") return L; + if(S=="t"){ + N=mtranspose(L0); + TeX=["\\text{transpose}"]; + } + else if(S=="f"){ + if(length(L)>1){ + if(LF!=0) TeX=""; + L=cdr(L);LF=L0; + if(DVI){ + dviout0(-1); + dviout(" "); + } + } + }else if(S=="g"){ + if(LF!=0) N=LF; + }else if(S=="0"){ + N=M;L=[];TeX=[]; + }else if(S=="a"||S=="A"){ + if(DVI&&S=="A") mtoupper(L0,0|step=1,opt=10,dviout=1); + else mtoupper(L0,0|step=1,opt=10); + }else{ + mycat0([ + "2,5 : line2 <-> line5", + "2,5,-2 ; line2 += (-2)*line5", + "2,2,-2 : line2 *= -2", + "2,5,0 : line2 += (?)*line5 for reduction", + "r,2,5 : raw2 <-> raw5 (r,2,5,-2 etc.)", + "s,x,2 : subst(*,x,2)", + "t : transpose", + "0 : first matrix", + "f : previous matrix", + "g : next matrix (only after f)", + "A : auto (a : without TeX)", + "q : quit" + ],1|delim="\n"); + } + }else{ + FR=0; + S=evals(S|del=","); + if(S[0]==r){ + FR=1; S=cdr(S); + } + if((LL=length(S))>=2){ + S0=S[0]-1;S1=S[1]-1; + if(S[0]==s){ + if(length(S)==3) N=subst(L0,S[1],S[2]); + if(DVI) TeX=[S[1],"\\mapsto",S[2]]; + }else if(FR==0){ + if(S0<0 || S0>=Sz[0] || S1<0 || S1>=Sz[0]) continue; + if(LL==2){ + N=rowx(L0,S0,S1); + if(DVI) TeX=[Line[0],S[0],"\\ \\leftrightarrow\\ ",Line[0],S[1]]; + }else{ + S2=S[2]; + if(S0==S1){ + N=rowm(L0,S0,S2); + if(DVI) TeX=[Line[0],S[0],"\\ \\times=\\ ",S2]; + }else{ + if(S2==0){ + for(J=0;J<Sz[1] && L0[S1][J]==0;J++); + if(J<Sz[1]) S2=-L0[S0][J]/L0[S1][J]; + } + if(S2!=0){ + N=rowa(L0,S0,S1,S2); + if(DVI) TeX=[Line[0],S[0],"\\ +=\\ ",Line[0], + S[1],"\\ \\times\\ (",S2,")"]; + } + } + } + }else{ + if(S0<0 || S0>=Sz[1] || S1<0 && S1>=Sz[1]) continue; + if(LL==2){ + N=colx(L0,S0,S1); + if(DVI) TeX=[Line[1],S[0],"\\ \\leftrightarrow\\ ",Line[1],S[1]]; + }else{ + S2=S[2]; + if(S0==S1){ + N=colm(L0,S0,S2); + if(DVI) TeX=[Line[1],S[0],"\\ \\times=\\ ",S[2]]; + }else{ + if(S2!=0){ + for(J=0; I1<Sz[0] && L0[I1][J]==0; J++); + if(J<Sz[0]) S2=-L0[J][S0]/L0[J][S1]; + }if(S2!=0){ + N=cola(L0,S0,S1,S2); + if(DVI) TeX=[Line[1],S[0],"\\ +=\\ ",Line[1], + S[1],"\\ \\times\\ (",S2,")"]; + } + } + } + } + } + } + if(N!=0){ + LF=0;L=cons(N,L); + if(DVI) dviout("\\xrightarrow{"+ltotex(TeX|opt="spts0",str=1)+"}"+mtotex(N)|eq=8); + } + } +} + +def vgen(V,W,S) +{ + IM=length(V); + I=(getopt(opt)==0)?IM:0; + for(SS=0; I<IM && (SS==0 || V[I]<=W[I]); I++) + SS += W[I]; + if(I<IM){ + W[I]++; + SS--; + }else + SS=S; + for(J=0;J<I;J++){ + W[J] = (SS<=V[J])?SS:V[J]; + SS -= W[J]; + } + if(SS>0) + return -1; + return(I==IM)?0:I; +} + +def mmc(M,X) +{ + Mt=getopt(mult); + if(type(M)==7) M=os_md.s2sp(M); + if(type(M)!=4||type(M[0])!=6) return 0; + if(type(M[0])!=6){ /* spectre type -> GRS */ + G=s2sp(M|std=1); + L=length(G); + for(V=[],I=L-2;I>=0;I--) V=cons(makev([I+10]),V); + V=cons(makev([L+9]),V); + G=sp2grs(G,V,[1,length(G[0]),-1]|mat=1); + if(getopt(short)!=0){ + V=append(cdr(V),[V[0]]); + G=shortv(G,V); + } + R=chkspt(G|mat=1); + if(Mt!=1) Mt=0; + if(R[2]!=2 || R[3]!=0 || !(R=getbygrs(G,1|mat=1))) return 0; + MZ=newmat(1,1); + SS=length(G); + if(Mt==1) SS=SS*(SS-1)/2; + for(M=[],I=0;I<SS;I++) M=cons(MZ,M); + for(RR=R; RR!=[]; RR=cdr(RR)){ + RT=car(RR)[0]; + if(type(RT)==4){ + if(RT[0]!=0) M=mmc(M,[RT[0]]|simplify=Simp); + M=mmc(M,[cdr(RT)]); + } + } +/* for(R=cdr(R);R!=[];R=cdr(R)) M=mmc(M,[car(R)[0]]|mult=Mt); */ + } + if(X==0) return M; + L=length(M); + if((L>=6 && Mt!=0)||(L==3&&Mt==1)){ + for(SS=2,I=3; I<L; I+=(++SS)); + if(I!=L) return -1; + Mt=1; + }else{ + SS=L;Mt=0; + } + if(length(X)==SS+1){ + if(car(X)!=0&&(M=mmc(M,[car(X)]|mult=Mt))==0) return M; + return mmc(M,cdr(X)|mult=Mt); + } + for(I=X;I!=[];I=cdr(I)) if(I[0]!=0) break; + if(I==[]) return M; + Simp=getopt(simplify); + if(Simp!=0 && type(Simp)!=1) Simp=2; + N=newvect(L); + for(I=0;I<L;I++) N[I]=dupmat(M[I]); + S=size(N[0])[0]; + if(type(X)==4&&length(X)>SS){ /* addition */ + for(I=0;I<SS;I++,X=cdr(X)) if(X[I] != 0) N[I] = radd(N[I],car(X)); + } + if(length(X)!=1) return 0; + X=X[0]; + MZ = newmat(S,S); + MM = newvect(L); + for(M1=J=0; J<SS; J++){ + for(R=[],I=SS-1; I>=0; I--){ + if(I==J){ + for(RR=[],K=SS-1; K>=0; K--) + RR=cons((K==I)?N[K]+diagm(S,[X]):N[K],RR); + R=cons(RR,R); + }else R=cons([MZ],R); + } + MM[J]=newbmat(SS,SS,R); + if(J==0) M1=MM[0]; + else M1=radd(M1,MM[J]); + } + /* middle convolution */ + for(P=0,Q=1;J<L;J++){ /* A_{P,Q} */ + for(R=[],I=SS-1; I>=0; I--){ + for(RR=[],K=SS-1;K>=0;K--){ + MT=MZ; + if(I==K){ + MT=N[J]; + if(I==P) MT-=N[Q]; + else if(I==Q) MT-=N[P]; + }else if(I==P && K==Q) MT=N[Q]; + else if(I==Q && K==P) MT=N[P]; + RR=cons(MT,RR); + } + R=cons(RR,R); + } + MM[J]=newbmat(SS,SS,R); + if(++Q==SS){ + P++;Q=P+1; + } + } + for(R=[],I=SS-1; I>=0; I--){ + for(RR=[N[I]],J=0; J<I; J++) RR=cons(MZ,RR); + R=cons(RR,R); + } + M0 = newbmat(SS,SS,R); + KE = append(mykernel(M0|opt=1),mykernel(M1|opt=1)); + if(length(KE) == 0) return MM; + KK = mtoupper(lv2m(KE),0); + for(I=0;I<L;I++) MM[I] = mmod(MM[I],KK); + if(Simp!=0) MM = mdsimplify(MM|type=Simp); + return MM; +} + +def lpgcd(L) +{ + for(F=[]; L!=[]; L=cdr(L)){ + if((P=car(L))==0) continue; + if(F==[]){ + F=fctr(P); + S=length(F); + S--; + V=newvect(S); + M=newvect(S); + for(I=0; I<S; I++){ + M[I] = F[I+1][1]; + V[I] = F[I+1][0]; + } + N=nm(ptozp(P|factor=1)[1]); + continue; + } + N=igcd(ptozp(P|factor=1)[1],N); + for(I=0; I<S; I++){ + for(Q=P,CT=0; CT<M[I]; CT++) + if((Q=tdiv(Q,V[I])) == 0) break; + if(CT<M[I]) M[I]=CT; + } + } + if(F==[]) return 0; + for(Q=N,I=0;I<S; I++){ + while(M[I]>0){ + Q *= V[I]; + M[I]--; + } + } + return Q; +} + +def mdivisor(M,X) +{ + S=size(M=dupmat(M)); + XX=(type(X)==4||X==0)?X:[0,X]; + S0=S[0]; S1=S[1]; + if((Tr=getopt(trans))==1||Tr==2){ + Tr0=1; + GR=mgen(S0,0,1,0); GC=mgen(S1,0,1,0); + }else Tr=Tr0=0; + /* 0,a,b : (a,b)->(1,1) + 1 : (1,1) invertible + 2,i,M : line 0,i by M + 3,j,M : col 0,j by M + 4,j : col 1 += col j + 5,j,T : line j by T + 6,j,T : col 1 += col j by T (non-com) + 7,j : line 2<->j (non-com) + */ + if(type(V=getopt(dviout))==1){ + if(type(XX)==4 && type(XX[0])>1) Var=[XX[1],"\\partial"]; + else Var=0; + Tr=(abs(V)==3)?0:1; + MM=dupmat(M); + II=((S[0]>S[1])?S[1]:S[0])+1; + if(abs(V)>1){ + Is1=Js1=S[0]+S[1]; + Is=Js=[0,[Is1]]; + }else{ + Is=[0,[Is1=S[0]]];Js=[0,[Js1=S[1]]]; + } + VV=V; + V=newvect(II); + for(I=0;I<II;I++) V[I]=[]; + N=newbmat(2,2,[[M,mgen(S[0],0,[1],0)],[mgen(S[1],0,[1],0)]]); + mdivisor(M,X|step=1,dviout=V); + L=S[0]+S[1]; + if(Tr){ + NN=mperm(N,Is1,Js1); + for(K=S[0];K<Is1;K++){ + for(L=S[1];L<Js1;L++) + NN[K][L]=" "; + } + Out=[[mperm(NN,Is,Js)]]; + } + for(I=1;I<II;I++){ + I0=I-1; + if(V[I]==[]) continue; + for(T=reverse(V[I]);T!=[];T=cdr(T)){ + St=[]; + C=car(R=car(T)); + if(C==0){ + N=mperm(N,(R[1]==0)?0:[[R[1]+I0,I0]],(R[2]==0)?0:[[R[2]+I0,I0]]); + + if(Tr){ + if(R[2]!=0) St=append(["C",I,"\\leftrightarrow C",R[2]+I],St); + if(R[1]!=0){ + if(R[2]!=0) St=cons(",\\ ",St); + St=append(["L",I,"\\leftrightarrow L",R[1]+I],St); + } + Out=cons(St,Out); + } + }else if(C==1){ + P=1/N[I0][I0];N[I0][I0]=1; + if(P!=1){ + for(J=I;J<L;J++) + N[I0][J]=muldo(P,N[I0][J],XX); + + if(Tr){ + St=append(["L",I,"\\leftarrow(",P,")","\\times L",I],St); + Out=cons(St,Out); + NN=mperm(N,Is1,Js1); + for(K=S[0];K<Is1;K++){ + for(L=S[1];L<Js1;L++) + NN[K][L]=" "; + } + Out=cons(["\\to",mperm(NN,Is,Js)],Out); + } + } + for(F=0,J=I;J<S[0];J++){ + if((P=N[J][I0])==0) continue; + F++; + N[J][I0]=0; + for(K=I;K<L;K++) + N[J][K]=red(N[J][K]-muldo(P,N[I0][K],XX)); + + } + if(F){ + if(Tr){ + Out=cons(["Li\\ -\\!=\\ \\circ\\times L",I,"\\quad(i>",I,")"],Out); + NN=mperm(N,Is1,Js1); + for(K=S[0];K<Is1;K++){ + for(L=S[1];L<Js1;L++) + NN[K][L]=" "; + } + Out=cons(["\\to",mperm(NN,Is,Js)],Out); + } + } + for(F=0,J=I;J<S[1];J++){ + if((P=N[I0][J])==0) continue; + F++; + N[I0][J]=0; + for(K=I;K<L;K++) + N[K][J]=red(N[K][J]-muldo(N[K][I0],P,XX)); + } + if(F&&Tr) Out=cons(["Cj\\ -\\!=\\ C",I,"\\times\\circ\\quad(j>",I,")"],Out); + else continue; + }else if(C==2){ + C=mat(N[I0],N[R[1]+I0]);C=muldo(R[2],C,XX); + for(J=0;J<L;J++){ + N[I0][J]=C[0][J];N[R[1]+I0][J]=C[1][J]; + } + if(Tr) Out=cons([dupmat(R[2]),"\\begin{pmatrix}L",I,"\\\\L",R[1]+I, + "\\end{pmatrix}"],Out); + }else if(C==3){ + C=newmat(L,2); + for(J=0;J<L;J++){ + C[J][0]=N[J][I0];C[J][1]=N[J][R[1]+I0]; + } + C=muldo(C,R[2],XX); + for(J=0;J<L;J++){ + N[J][I0]=C[J][0];N[J][R[1]+I0]=C[J][1]; + } + if(Tr) Out=cons(["\\begin{pmatrix}C",I,"&C",R[1]+I,"\\end{pmatrix}", + dupmat(R[2])],Out); + }else if(C==4){ + for(J=0;J<L;J++) + N[J][I0]=red(N[J][I0]+N[J][R[1]+I0]); + if(Tr) Out=cons(["C",I,"\\ +\\!=\\ C",R[1]+I],Out); + }else if(C==5){ + for(J=0;J<L;J++) + N[I0+R[1]][J]=red(R[2]*N[I0+R[1]][J]); + if(Tr) Out=cons(["L",I+R[1],"\\leftarrow(", R[2],")\\times L",I+R[1]], + Out); + }else if(C==6){ + for(J=0;J<L;J++) + N[J][I0]=N[J][I0]+muldo(N[J][I0+R[1]],R[2],XX); + if(Tr) Out=cons(["C",I,"\\ +\\!=\\ C",I+R[1],"\\times(", R[2],")"], + Out); + }else if(C==7){ + mycat(["line",I+1,"\\leftrightarrow",R[1]+I]); + for(J=0;J<L;J++){ + C=N[I][J];N[I][J]=N[R[1]+I0][J];N[R[1]+I0][J]=C; + } + if(Tr) Out=cons(["L",I+1,"\\leftrightarrow L",R[1]+I],Out); + } + if(Tr){ + NN=mperm(N,Is,Js); + for(K=S[0];K<Is1;K++){ + for(L=S[1];L<Js1;L++) + NN[K][L]=" "; + } + Out=cons(["\\to",NN],Out); + } + } + } + if(!Tr){ + NN=mperm(N,Is,Js); + Out=[]; + } + if(S[0]+S[1]==Is1){ + N1=mperm(NN,[0,[S[0]]],[S[1],[S[0]]]); + N2=mperm(NN,[S[0],[S[1]]],[0,[S[1]]]); + N3=mperm(NN,[0,[S[0]]],[0,[S[1]]]); + R1=mdivisor(N1,X|trans=1)[1]; + R2=mdivisor(N2,X|trans=1)[1]; + if(Tr){ + Out=cons(["\\text{As a result,}"],Out); + Out=cons([N3,"=",N1,MM,N2],Out); + if(S[0]==S[1] && N3==mgen(S[0],0,1,0)){ + Out=cons(["=",muldo(N2,N1,XX),MM,"."],Out); + }else{ + Out=cons([N1,"^{-1}=",R1,","],Out); + Out=cons([N2,"^{-1}=",R2,"."],Out); + } + }else{ + Out=cons([N3,"=P",MM,"Q,"],Out); + Out=cons(["P=",N1,"=",R1,"^{-1},"],Out); + Out=cons(["Q=",N2,"=",R2,"^{-1}."],Out); + } + } + Out = ltotex(reverse(Out)|opt=["cr","spts0"],str=1,cr=15,var=Var); + if(S[0]+S[1]==Is1) + Out=str_subst(Out,"\\texttt{ }",""); + if(VV>0){ + dviout(Out|eq=6); + return NN; + } + return Out; + }else if(type(V)!=5) V=0; + + if(type(St=getopt(step))!=1) St=0; + for(FF=": start";;){ + if(St && V==0){ + if(Tr){ + mycat0([St,FF,"\n"],0); + mycat([GR,"\n"]);mycat([M,"\n"]);mycat([GC,"\n"]); + } + else mycat0([St,FF,"\n",M,"\n"],0); + } + if(X==0||X==[0,0]){ /* search minimal non-zero element */ + for(K=F=I=0; I<S0; I++){ + for(J=0; J<S1; J++){ + if((P=abs(M[I][J]))!=0 && (K>P || K==0)){ + K=P; R=[I,J]; + } + } + } + R=cons(K-1,[R]); + } + else R=mymindeg(M,XX[1]|opt=1); + if(R[0]<0){ /*zero matrix */ + if(Tr) return [[],mgen(S0,0,1,0),mgen(S1,0,1,0)]; + return []; + } + R0=R[1][0];R1=R[1][1]; + if(R0!=0){ + M=rowx(M,0,R0); + if(Tr) GR=rowx(GR,0,R0); + } + if(R1!=0){ + M=colx(M,0,R1); + if(Tr) GC=colx(GC,0,R1); + } + if(St>0 && (R0!=0 || R1!=0)) + if(type(V)==5) V[St]=cons([0,R0,R1],V[St]); + else if(Tr){ + mycat0([St,": (",R0+1,",",R1+1,") -> (1,1)\n"],0); + mycat([GR,"\n"]);mycat([M,"\n"]);mycat([GC,"\n"]); + }else mycat0([St,": (",R0+1,",",R1+1,") -> (1,1)\n",M,"\n"],0); + if(R[0]==0){ /* (1,1) : invertible */ + if(type(V)==5) V[St]=cons([1],V[St]); + P=M[0][0]; M[0][0]=1; + for(J=0;J<S1;J++){ /* (1,1) -> 1 */ + if(J>0) M[0][J]= red(M[0][J]/P); + if(Tr) GR[0][J]=red(GR[0][J]/P); + } + if(S0>1 && S1>1) N=newmat(S0-1,S1-1); + else N=0; + for(I=1;I<S0;I++){ + P=M[I][0]; M[I][0]=0; + for(J=1;J<S1;J++) + N[I-1][J-1]=M[I][J]=red(M[I][J] - muldo(P,M[0][J],XX)); + if(Tr){ + for(J=0;J<S0;J++) + GR[I][J] = red(GR[I][J] -muldo(P,GR[0][J],XX)); + } + } + if(Tr){ + for(J=1;J<S1; J++){ + for(I=0;I<S1;I++) GC[I][J]=red(GC[I][J]-muldo(GC[I][0],M[0][J],XX)); + M[0][J]=0; + } + } + if(St>0 && V==0){ + if(Tr){ + mycat0([St,": unit\n"],0); + mycat([GR,"\n"]);mycat([M,"\n"]);mycat([GC,"\n"]); + } + else mycat0([St,": unit\n",M,"\n"],0); + } + if(N==0){ + if(!Tr) return [1]; + if(Tr==2){ + GR0=mdivisor(GR,X|trans=1)[1]; + GC0=mdivisor(GC,X|trans=1)[1]; + return [[1],GR,GC,GR0,GC0]; + } + return [[1],GR,GC]; + } + R=mdivisor(N,XX|dviout=V,trans=Tr0,step=(St>0)?St+1:St); + if(!Tr) return cons(1,R); + GR=muldo(newbmat(2,2,[[1],[0,R[1]]]),GR,XX); + GC=muldo(GC,newbmat(2,2,[[1],[0,R[2]]]),XX); + if(S0==S1 && countin(1,1,R[0])==S0-1){ + GR=muldo(GC,GR,XX); GC=mgen(S0,0,1,0); + } + if(Tr==2){ + GR0=mdivisor(GR,X|trans=1)[1]; + GC0=mdivisor(GC,X|trans=1)[1]; + return [cons(1,R[0]),GR,GC,GR0,GC0]; + } + return [cons(1,R[0]),GR,GC]; + } + for(I=1;I<S0;I++){ + if(M[I][0]!=0){ +/* Error! when mygcd(A,B,0) with A<=0 or B<=0 */ + R=mygcd(M[I][0],M[0][0],XX); /* R[0]=R[1]*M[I][0]+R[2]*M[0][0] */ + M[0][0]=R[0]; M[I][0]=0; /* 0=R[3]*M[I][0]+R[4]*M[0][0] */ + for(J=1;J<S1;J++){ + T=red(muldo(R[1],M[I][J],XX)+muldo(R[2],M[0][J],XX)); + M[I][J]=red(muldo(R[3],M[I][J],XX)+muldo(R[4],M[0][J],XX)); + M[0][J]=T; + } + if(Tr){ + for(J=0;J<S0;J++){ + T=red(muldo(R[1],GR[I][J],XX)+muldo(R[2],GR[0][J],XX)); + GR[I][J]=red(muldo(R[3],GR[I][J],XX)+muldo(R[4],GR[0][J],XX)); + GR[0][J]=T; + } + } + if(St && V==0){ + mycat([" [",R[2],R[1],"]*"]); + mycat([" [",R[4],R[3],"]"]); + } + if(type(V)==5) V[St]=cons([2,I,mat([R[2],R[1]],[R[4],R[3]])],V[St]); + FF=": line 1 & "+rtostr(I+1); I=S0; + } + } + if(I>S0) continue; + for(J=1;J<S1;J++){ + if(M[0][J]!=0){ + R=mygcd(M[0][J],M[0][0],XX|rev=1); /* R[0]=M[0][J]*R[1]+M[0][0]*R[2] */ + M[0][0]=R[0]; M[0][J]=0; /* 0=M[0][J]*R[3]+M[0][0]*R[4] */ + for(I=1;I<S0;I++){ + T=red(muldo(M[I][J],R[1],XX)+muldo(M[I][0],R[2],XX)); + M[I][J]=red(muldo(M[I][J],R[3],XX)+muldo(M[I][0],R[4],XX)); + M[I][0]=T; + } + if(Tr){ + for(I=0;I<S1;I++){ + T=red(muldo(GC[I][J],R[1],XX)+muldo(GC[I][0],R[2],XX)); + GC[I][J]=red(muldo(GC[I][J],R[3],XX)+muldo(GC[I][0],R[4],XX)); + GC[I][0]=T; + } + } + if(type(V)==5) V[St]=cons([3,J,mat([R[2],R[4]],[R[1],R[3]])],V[St]); + FF=": column 1 & "+rtostr(J+1);J=S1; + if(St && V==0){ + mycat([" *[",R[2],R[4],"]"]); + mycat([" [",R[1],R[3],"]"]); + } + } + } + if(J>S1) continue; + if(S0==1 || S1==1){ + P=M[0][0]; + if(X==0){ + if(P<0){ + P=-P; + if(Tr) for(J=0;J<S0;J++) GR[0][J]=-GR[0][J]; + if(type(V)==5) V[St]=cons([5,0,-1],V[St]); + } + }else{ + P=nm(P); + if((R=fctr(P)[0][0])!=1){ + P/=R; + if(Tr) for(J=0;J<S0;J++) GR[0][J]/=R; + if(type(V)==5) V[St]=cons([5,0,1/R],V[St]); + } + } + if(!Tr) return [P]; + if(Tr==2){ + GR0=mdivisor(GR,X|trans=1)[1]; + GC0=mdivisor(GC,X|trans=1)[1]; + return [[P],GR,GC,GR0,GC0]; + } + return [[P],GR,GC]; + } + if(XX==0 || (type(XX)==4 && XX[0]==0)){ /* commutative case */ + P=M[0][0]; + for(I=1; I<S0; I++){ + for(J=1; J<S1; J++) + if(divdo(M[I][J],P,XX)[1]!=0) break; + if(J<S1){ + if(type(V)==5) V[St]=cons([4,J],V[St]); + FF=": column 1 += col"+rtostr(J+1); + for(I=1;I<S0;I++) M[I][0]=M[I][J]; + if(Tr) for(I=0;I<S1;I++) GC[I][0]=red(GC[I][0]+GC[I][J]); + break; + } + } + if(J<S1) continue; + N=newmat(S0-1,S1-1); + for(I=1;I<S0;I++) + for(J=1;J<S1;J++) N[I-1][J-1]=red(M[I][J]/P); + if(X==0){ + if(P<0) P=-P; + if(Tr) for(J=0;J<S0;J++) GR[0][J]=-GR[0][J]; + }else{ + P=M[0][0]; + P=nm(P); + P/=fctr(P)[0][0]; + if(Tr) for(J=0;J<S0;J++) GR[0][J]/=fctr(P)[0][0]; + } + R=mdivisor(N,XX|dviout=V,trans=Tr0,step=(St>0)?St+1:St); + RT=(Tr)?R[0]:R; + for(RR=[],L=reverse(RT);L!=[];L=cdr(L)) + RR=cons(red(P*car(L)),RR); + RR=cons(P,RR); + if(!Tr) return RR; + GR=muldo(newbmat(2,2,[[1],[0,R[1]]]),GR,XX); + GC=muldo(GC,newbmat(2,2,[[1],[0,R[2]]]),XX); + if(S0==S1 && countin(1,1,RR)==S0){ + GR=muldo(GC,GR,XX); GC=mgen(S0,0,1,0); + } + if(Tr==2){ + GR0=mdivisor(GR,X|trans=1)[1]; + GC0=mdivisor(GC,X|trans=1)[1]; + return [RR,GR,GC,GR0,GC0]; + } + return [RR,GR,GC]; + } /* End of commutative case */ + for(I=1; I<S0; I++){ + for(J=1; J<S1; J++){ + if(M[I][J] != 0){ + for(T=1;I<S0;T*=XX[0]){ + R=divdo(muldo(M[I][J],T,XX),M[0][0],XX); + if(R[1]!=0){ + if(type(V)==5) V[St]=cons([6,J,T],V[St]); + FF=": column 1 += col"+rtostr((J+1)*T); + if(I>1){ + M=rowx(M,1,I); + if(Tr) GR=rowx(GR,1,I); + if(type(V)==5) V[St]=cons([7,I],V[St]); + FF+=", line 2<->"+rtostr(I+1); + } + for(I=1;I<S0;I++) M[I][0]=muldo(M[I][J],T,XX); + if(Tr) + for(I=1;I<S1;I++) GC[I][0]=red(GC[I][0]+muldo(GC[I][J],T,XX)); + I=S0+1; J=S1; + break; + } + } + } + } + if(I>S0) break; + } + if(I==S0) return []; /* zero matrix : never happen */ + } +} + +def mdsimplify(L) +{ + T=getopt(type); + SS=0; + if(type(L)==6){ + L=[L]; SS=1; + } + if(type(L)==5){ + SS=2; + L = vtol(L); + } + M=car(L); + S=size(M)[0]; +#if 0 + MN=newmat(S,S); + MD=newmat(S,S); + for(I=0;I<S;I++){ + for(J=0;J<S;J++){ + TN=0;TD=1; + for(PL=L;PL!=[];PL=cdr(PL)){ + TM=red(car(PL)[I][J]); + TN=lgcd([TN,nm(TM)]|pol=1); + TD=llcm([TD,dn(TM)]|pol=1); + } + MN[I][J]=TM; + MD[I][J]=TN; + } + } + for(I=0;I<S;I++){ + for(J=0;J<S;J++){ + if(I==J||type(TD[I][J])<2||type(TN[J][I])<2) continue; + for(FC=cdr(fctr(TD[I][J]));FC!=[];){ + TFC=car(FC); + if(type(red(TN[J][I]/TFC[0]))>2) continue; + } + } + } +#endif + DD=newvect(S); + for(I=0; I<S; I++){ + LN=RN=[]; + LD=RD=1; + for(LL=L; LL!=[]; LL=cdr(LL)){ + M = car(LL); + for(J=0; J<S; J++){ + if(J==I) continue; + if((MM=M[I][J]) != 0){ + LN = cons(nm(MM),LN); + if(type(MM)==3 && tdiv(LD,P=dn(MM))==0) + LD=tdiv(LD*P,gcd(LD,P)); + } + if((MM=M[J][I]) != 0){ + RN = cons(nm(MM),RN); + if(type(MM)==3 && tdiv(RD,P=dn(MM))==0) + RD=tdiv(RD*P,gcd(RD,P)); + } + } + } + if(T==1 || T==3) LQ=RD; + else{ + P=lpgcd(LN); + LQ=gcd(P,RD); + if(P!=0) LQ *= nm(fctr(P)[0][0]); + } + if(T==1 || T==2) RQ=LD; + else{ + P=lpgcd(RN); + RQ=gcd(P,LD); + if(P!=0) RQ *= nm(fctr(P)[0][0]); + } + if((P=gcdz(LQ,RQ))!=1){ + LQ = red(LQ/P); RQ=red(RQ/P); + } + DD[I]=red(LQ/RQ); + if(LQ!=1 || RQ!=1){ + for(LA=[],LL=L; LL!=[]; LL=cdr(LL)){ + M = car(LL); + for(J=0; J<S; J++){ + if(I!=J){ + if(LQ!=1){ + M[I][J] = red(M[I][J]/LQ); + M[J][I] = red(M[J][I]*LQ); + } + if(RQ!=1){ + M[J][I] = red(M[J][I]/RQ); + M[I][J] = red(M[I][J]*RQ); + } + } + } + } + } + } + if(SS==2) L=ltov(L); + if(SS==1) L=L[0]; + if(getopt(show)==1) L=[L,DD]; + return L; +} + +def m2mc(M,X) +{ + if(type(M)<2){ + mycat([ +"m2mc(m,t) or m2mc(m,[t,s])\t Calculation of Pfaff system of two variables\n", +" m : list of 5 residue mat. or GRS/spc for rigid 4 singular points\n", +" t : [a0,ay,a1,c], swap, GRS, GRSC, sp, irreducible, pair, pairs, Pfaff, All\n", +" s : TeX, dviout, GRSC\n", +" option : swap, small, simplify, operator, int\n", +" Ex: m2mc(\"21,21,21,21\",\"All\")\n" +]); + return 0; + } + if(type(M)==7) M=s2sp(M); + if(type(X)==7) X=[X]; + Simp=getopt(simplify); + if(Simp!=0 && type(Simp)!=1) Simp=2; + Small=(getopt(small)==1)?1:0; + if(type(M[0])==4){ + if(type(M[0][0])==1){ /* spectral type */ + XX=getopt(dep); + if(type(XX)!=4 || type(XX[0])>1) XX=[1,length(M[0])]; + M=sp2grs(M,[d,a,b,c],[XX[0],XX[1],-2]|mat=1); + if(XX[0]>1 && XX[1]<2) XX=[XX[0],2]; + if(getopt(int)!=0){ + T=M[XX[0]-1][XX[1]-1][1]; + for(V=vars(T);V!=[];V=cdr(V)){ + F=coef(T,1,car(V)); + if(type(F)==1 && dn(F)>1) + M = subst(M,car(V),dn(F)*car(V)); + } + } + V=vars(M); + if(findin(d1,V)>=0 && findin(d2,V)<0 && findin(d3,V)<0) + M=subst(M,d1,d); + } + RC=chkspt(M|mat=1); + if(RC[2] != 2 || RC[3] != 0){ /* rigidity idx and Fuchs cond */ + erno(0);return 0; + } + R=getbygrs(M,1|mat=1); + if(getopt(anal)==1) return R; /* called by mc2grs() */ + Z=newmat(1,1,[[0]]); + N=[Z,Z,Z,Z,Z]; + for(RR=R; RR!=[]; RR=cdr(RR)){ + RT=car(RR)[0]; + if(type(RT)==4){ + if(RT[0]!=0) N=m2mc(N,RT[0]|simplify=Simp); + N=m2mc(N,[RT[1],RT[2],RT[3]]|simplify=Simp); + } + } + if(type(X)==4 && type(X[0])==7) + return m2mc(N,X|keep=Keep,small=Small); + return N; + } + if(type(X)==4 && type(X[0])==7){ + Keep=(getopt(keep)==1)?1:0; + if(X[0]=="All"){ + dviout("Riemann scheme"|keep=1); + m2mc(M,[(findin("GRSC",X)>=0)?"GRSC":"GRS","dviout"]|keep=1); + dviout("Spectral types : "|keep=1); + m2mc(M,["sp","dviout"]|keep=1); + dviout("\\\\\nBy the decompositions"|keep=1); + R=m2mc(M,["pairs","dviout"]|keep=1); + for(R0=R1=[],I=1; R!=[]; I++, R=cdr(R)){ + for(S=0,RR=car(R)[1][0];RR!=[]; RR=cdr(RR)) S+=RR[0]; + if(S==0) R0=cons(I,R0); + else if(S<0) R1=cons(I,R1); + } + S="irreducibility\\ $"+((length(R0)==0)?"\\Leftrightarrow":"\\Leftarrow") + +"\\ \\emptyset=\\mathbb Z\\cap$"; + dviout(S|keep=1); + m2mc(M,["irreducible","dviout"]|keep=1); + if(R0!=[]) + dviout(ltotex(reverse(R0))|eq=0,keep=1, + title="The following conditions may not be necessary for the irreducibility."); + if(R1!=[]) + dviout(ltotex(reverse(R1))|eq=0,keep=1,title="The following conditions can be omitted."); + if(getopt(operator)!=0){ + dviout("The equation in a Pfaff form is"|keep=1); + m2mc(M,["Pfaff","dviout"]|keep=Keep,small=Small); + } + else if(Keep!=1) dviout(" "); + return M; + } + Show=0; + if(length(X)>1){ + if(X[1]=="dviout") Show=2; + if(X[1]=="TeX") Show=1; + } + if(X[0]=="GRS"||X[0]=="GRSC"||X[0]=="sp"){ + Y=radd(-M[0],-M[1]-M[2]); + if(X[0]!="GRSC"){ + L=meigen([M[0],M[1],M[2],M[3],M[4],Y,radd(-M[1],-M[3]-M[4]),radd(Y,-M[3]-M[4])]|mult=1); + if(X[0]=="sp"){ + L=chkspt(L|opt="sp"); + V=[L[1],L[0],L[2],L[5]]; W=[L[1],L[3],L[4],L[6]]; + if(Show==2) dviout(s2sp(V)+" : "+s2sp(W)|keep=Keep); + return [V,W]; + } + S="x=0&x=y&x=1&y=0&y=1&x=\\infty&y=\\infty&x=y=\\infty\\\\\n"; + }else{ + L=meigen([M[0],M[1],M[2],M[3],M[4],Y,radd(-M[1],-M[3]-M[4]),radd(Y,-M[3]-M[4]), + radd(M[0],M[1]+M[3]),radd(M[1],M[2]+M[4])]|mult=1); + S="x=0&x=y&x=1&y=0&y=1&x=\\infty&y=\\infty&x=y=\\infty&x=y=0&x=y=1\\\\\n"; + } + T=ltotex(L|opt="GRS",pre=S,small=Small); + if(Show==2) dviout(T|eq=0,keep=Keep); + if(Show==1) L=T; + return L; + } + if(X[0]=="Pfaff"){ + S=ltotex(M|opt=["Pfaff",u,x,x-y,x-1,y,y-1],small=Small); + if(Show==2) dviout(S|eq=0,keep=Keep); + return S; + } + if(X[0]=="irreducible"){ + L=meigen([M[0],M[1],M[2],radd(-M[0],-M[1]-M[2])]|mult=1); + S=getbygrs(L,10|mat=1); + if(Show==2) dviout(ltotex(S)|eq=0,keep=Keep); + return S; + } + if(X[0]=="pairs"||X[0]=="pair"){ + L=meigen([M[0],M[1],M[2],radd(-M[0],-M[1]-M[2])]|mult=1); + S=chkspt(L|opt=0); + V=(Show==2)?1:0; + S=sproot(L,X[0]|dviout=V,keep=Keep); + return S; + } + if(X[0]=="swap"){ + Swap=getopt(swap); + if(type(Swap)<1 || Swap==1) + return newvect(5,[M[3],M[1],M[4],M[0],M[2]]); + if(Swap==2) + return newvect(5,[radd(M[0],M[1]+M[3]),M[4],M[2],radd(-M[1],-M[3]-M[4]),M[1]]); + if(type(Swap)==4 && length(Swap)==3){ + MX=radd(-M[0],-M[1]-M[2]); MY=radd(-M[3],-M[1]-M[4]); + if(Swap[0]==1){ + MX0=M[2];MY0=M[4]; + } + else if(Swap[0]==2){ + MX0=MX;MY0=MY; + }else{ + MX0=M[0];MY0=M[3]; + } + if(Swap[1]==1){ + MX1=M[2];MY1=M[4]; + } + else if(Swap[1]==2){ + MX1=MX;MY1=MY; + }else{ + MX1=M[0];MY1=M[3]; + } + return newvect(5,MX0,M[1],MX1,MY0,MY1); + } + } + return 0; + } + if(getopt(swap)==1) + return m2mc(m2mc(m2mc(M,"swap"),X),"swap"); + N=newvect(5); + for(I=0;I<5;I++) + N[I]=M[I]; + S=size(N[0])[0]; + if(type(X)==4){ + for(I=0;I<3;I++){ + if(X[I] != 0) + N[I] = radd(N[I],X[I]); + } + if(length(X)==3) return N; + X=X[3]; + } + MZ = newmat(S,S); + ME = mgen(S,0,[X],0); + MM = newvect(5); + MM[0] = newbmat(3,3, [[N[0]+ME,N[1],N[2]], [MZ], [MZ]]); + MM[1] = newbmat(3,3, [[MZ], [N[0],N[1]+ME,N[2]], [MZ]]); + MM[2] = newbmat(3,3, [[MZ], [MZ], [N[0],N[1],N[2]+ME]]); + MM[3] = newbmat(3,3, [[N[3]+N[1],-N[1]], [-N[0],radd(N[0],N[3])], [MZ,MZ,N[3]]]); + MM[4] = newbmat(3,3, [[N[4]], [MZ,N[4]+N[2],-N[2]], [MZ,-N[1],radd(N[4],N[1])]]); + M0 = newbmat(3,3, [[N[0]], [MZ,N[1]], [MZ,MZ,N[2]]]); + M1 = radd(MM[0],MM[1]+MM[2]); + KE = append(mykernel(M0|opt=1),mykernel(M1|opt=1)); + if(length(KE) == 0) return MM; + KK = mtoupper(lv2m(KE),0); + for(I=0;I<5;I++) + MM[I] = mmod(MM[I],KK); + if(Simp!=0) MM = mdsimplify(MM|type=Simp); + return MM; +} + +def easierpol(P,X) +{ + if(type(X) == 4){ + for( Y = [] ; X != []; X = cdr(X) ) + Y = cons([0,car(X)], Y); + }else + Y = [0,X]; + return rede(P,Y); +} + +def l2p(L,V) +{ + if(type(L)==4){ + for(S=I=0;L!=[];L=cdr(L),I++) + S+=car(L)*V^I; + return S; + }else if(type(L)==5){ + for(S=0,I=size(L)-1;I>=0;I--) + S+=L[I]*V^I; + return S; + }else{ + if(type(D=getopt(size))==1) D--; + else D=mydeg(L,V); + for(S=[];D>=0;D--) + S=cons(mycoef(L,D,V),S); + return S; + } +} + +def paracmpl(L,V) +{ + if(type(L)==4) L=ltov(L); + S=length(L); + Lim=getopt(lim);Low=getopt(low); + if((F=type(L[0]))>3){ + SV=length(L[0]); + V0=makenewv(L); + for(LL=[];S>0;S--) + LL=cons(l2p(L[S-1],V0),LL); + G=paracmpl(LL,V|option_list=getopt()); + H=(Lim==1)?G:G[0]; + for(HH=[];H!=[];H=cdr(H)){ + HT=l2p(car(H),V0|size=SV); + if(F==5) HT=ltov(HT); + HH=cons(HT,HH); + } + H=reverse(HH); + return (Lim==1)?H:[H,G[1]]; + } + H=newvect(S);D=newvect(S); + for(Dn=1,I=0;I<S;I++){ + P=dn(L[I]=red(L[I])); + Dn=red(Dn*P/gcd(Dn,P)); + } + if(Dn!=1){ + for(I=0;I<S;I++) L[I]=red(Dn*L[I]); + } + G=diagm(S,[1]); + if(type(V)<4) V=[V]; + VV=lsort(vars(L),V,1); + V=car(V); + for(I=0;I<S;I++){ + P=L[I]; + for(J=0,C=P;J<I;J++){ + if(D[J]!=[]){ + C=mycoef(C,DT,VV); + P-=C*H[J]; + G=cola(G,I,J,-C); + } + } + if(P==0){ + D[I]=[];continue; + } + P0=nm(red(P)); + K=mymindeg(P0,V); + C=mycoef(P0,K,V); + if(K>0){ + P=red(P/V^K); + G=colm(G,I,1/V^K); + } + for(DT=[],VT=VV;VT!=[];VT=cdr(VT)){ + K=(Low==1)?mymindeg(C,car(VT)):mydeg(C,car(VT)); + C=mycoef(C,K,car(VT)); + DT=cons(K,DT); + } + D[I]=DT=reverse(DT); + for(C=P,VT=VV;VT!=[];VT=cdr(VT),DT=cdr(DT)) + C=mycoef(C,car(DT),car(VT)); + H[I]=P=red(P/C); + G=colm(G,I,1/C); + } + if(Dn!=1){ + for(I=0;I<S;I++){ + TH=red(H[I]/Dn); + F=fctr(dn(TH));F=cdr(F); + if(Lim!=1||subst(Dn,V,0)==0){ + for(;F!=[];F=cdr(F)){ + if(lsort(vars(car(F)[0]),VV,2)==[]){ + C=car(F)[0]^car(F)[1]; + TH=red(TH*C); + G=colm(G,I,C); + } + } + } + H[I]=TH; + } + } + H=vtol(H); + if(Lim==1){ + H=subst(H,V,0); + return map(red,H); + } + return [H,map(red,G)]; +} + +def mykernel(M) +{ + if(getopt(opt) == 1) + M = mtranspose(M); + S = size(M); + R = []; + MM = mtoupper(M,-1); + for(I = S[0]-1; I >= 0; I--){ + for(J = S[1]-1; J >= 0; J--){ + if(MM[I][J] != 0) + return R; + } + P = easierpol(MM[I][S[1]],zz); + RR = newvect(S[0]); + for(J = 0; J < S[0]; J++) + RR[J] = mycoef(P,J,zz); + R = cons(RR,R); + } + return R; +} + +def myimage(M) +{ + if(getopt(opt) == 1) + M = mtranspose(M); + S = size(M); + V = []; + M0 = newvect(S[1]); + M = mtoupper(M,0|opt=1); + for(I = S[0]-1; I >= 0; I--) + if(M0 != M[I]) + V = cons(vtozv(M[I])[0], V); + return V; +} + +def mymod(V,L) +{ + Opt = getopt(opt); + S = length(V); + VP = newvect(S); + if(type(L)==6) + L=m2lv(L); + CT = length(L); + for(LT = L; LT != []; LT = cdr(LT)){ + for(VT = car(LT), I = 0; I < S; I++) + if(VT[I] != 0) break; + if(I >= S){ + CT--; + continue; + } + VP[I] = 1; + MI = -red(V[I]/VT[I]); + if(MI != 0) + V = radd(V,rmul(MI,VT)); + } + if(Opt==1){ + for(I = 0; I < S; I++) + if(V[I] != 0) + return 1; + return 0; + } + if(Opt==2){ + W=newvect(S-CT); + for(CC = I = 0; I < S; I++){ + if(VP[I]==0) W[CC++] =V[I]; + } + return W; + } + return V; +} + +def mmod(M,L) +{ + S=size(M)[1]; + MM=mtranspose(M); + VP = newvect(S); + if(type(L)==6) + L=m2lv(L); + for(CT = 0, LT = L; LT != []; LT = cdr(LT)){ + for(VT = car(LT), I = 0; I < S; I++){ + if(VT[I] != 0){ + VP[I] = 1; + break; + } + } + } + if(getopt(opt)==1) + NE=1; + for(D=I=0; I<S; I++){ + if(NE != 1 && VP[I] == 1) continue; + T = mymod(MM[I],L|opt=2); + if(D==0){ + K=length(T); + MN=newmat((NE==1)?S:K,K); + } + for(J=0;J<K;J++) + MN[J][D]=T[J]; + D++; + } + return MN; +} + +def llsize(V) +{ + for(I=J=0;V!=[];V=cdr(V),I++) + if(length(car(V))>J) J=length(car(V)); + return [I,J]; +} + +def llbase(VV,L) +{ + S = length(VV); + V = dupmat(VV); + if(type(V) == 4) + V = ltov(V); + T = length(L); + for(I = 0; I < S; I++) + V[I] = nm(red(V[I])); + LV = 0; + for(J = 0; J < T; J++){ + X = var(L[J]); N = deg(L[J],X); + for(I = LV; I < S; I++){ + if((C2=coef(V[I],N,X)) != 0){ + if(I > LV){ + Temp = V[I]; + V[I] = V[LV]; + V[LV] = Temp; + } + for(I = 0; I < S; I++){ + if(I == LV || (C1 = coef(V[I],N,X)) == 0) + continue; + Gcd = gcd(C1,C2); + V[I] = V[I]*tdiv(C2,Gcd)-V[LV]*tdiv(C1,Gcd); + } + LV++; + } + } + } + return V; +} + +def lsort(L1,L2,T) +{ + C1=getopt(c1);C2=getopt(c2); + if(type(T)==4){ + K=T; + if(length(T)>0){ + T=K[0]; + K=cdr(K); + }else T=0; + }else K=0; + if(type(TT=T)==7) + T = findin(T,["cup","setminus","cap","reduce","sum","subst"]); + if(type(L2)==7&&T<0) + T=findin(TT,["put","get","sub"]); + if(K){ /* [[..],..] */ + if(K!=[]) KN=K[0]; + if(L2==[]||L2=="sort"){ /* sort or deduce duplication */ + if((T!=0&&T!=3)||length(K)!=1) return L1; + if(KN<0){ + KN=-KN-1; + F=-1; + }else F=1; + L1=msort(L1,[F,0,KN]); + if(T==3){ + R=[car(L1)];L1=cdr(L1); + for(;L1!=[];L1=cdr(L1)){ + if(car(L1)[KN]!=car(R)[KN]) R=cons(car(L1),R); + } + L1=reverse(R); + } + return L1; + }else if((L2==0||L2=="col")&&type(C1)==4){ + if(T==0||T==1){ /* extract or delete columns */ + for(R=[];L1!=[];L1=cdr(L1)){ + if(T==1&&C1==[0]){ /* delete top column */ + R=cons(cdr(car(L1)),R); + continue; + } + LT=car(L1);RT=[]; + if(T==0){ + for(CT=C1;CT!=[];CT=cdr(CT)) RT=cons(LT[car(CT)],RT); + }else{ + for(I=0;LT!=[];I++,LT=cdr(LT)) + if(findin(I,C1)<0) RT=cons(car(LT),RT); + RT=reverse(RT); + } + R=cons(RT,R); + } + return reverse(R); + } + }else if(type(L2)==1||type(L2)==7){ + if(L2==1||L2=="num"){ + if(T==4) T=3; + I=(length(K)<2)?(-1):K[1]; + if(T==0||T==1||T==2||T==3){ + S=F=CT=0;R=[]; + if(K==[] || type((S=K[0]))==1 || S==0){ + if(T==0||T==1||T==2){ + for(J;L1!=[];L1=cdr(L1),J++){ + if(T==0) R=cons(cons(J+S,car(L1)),R); + else if(T==1){ + for( ;C1!=[]; C1=cdr(C1)) + R=cons(L1[car(C1)],R); + }else{ + if(findin(J,C1)<0) R=cons(car(L1),R); + } + } + return reverse(R); + }else if(T==3) return length(L1); + }else{ + if(type(S)==2&&vtype(S)>2) F=1; + else if(type(S)==4) F=2; + else if(S=="+") F=3; + else return L1; + } + for(R=[];L1!=[];L1=cdr(L1)){ + L1T=car(L1); + if(F==1) V=call(S,(I<0)?L1T:L1T[I]); + else if(F==2) V=calc((I<0)?L1T:L1T[I],S); + else if(F==3){ + for(C=C1,V=0;C!=[];C=cdr(C)) + if(type(X=L1T[car(C)])==1) V+=X; + } + if(T==0) R=cons(cons(V,L1T),R); + else if(T==1){ + if(V) R=cons(L1T,R); + }else if(T==2){ + if(!V) R=cons(L1T,R); + }else if(T==3){ + if(F==3) CT+=V; + else if(V) CT++; + } + } + return (T==3)?CT:reverse(R); + }else if(TT=="col"){ + J=(length(K)>0)?car(K):0; + I=length(car(L1))+J; + for(V=[];I>J;) + V=cons(--I,V); + return cons(V,L1); + } + }else if(L2=="transpose") return mtranspose(L1); + else if(L2=="subst"||L2=="adjust"){ + Null=(!K)?"":car(K); + if(L2=="adjust") C1=[]; + R=lv2m(L1|null=""); + for(;C1!=[];C1=cdr(C1)) R[car(C1)[0]][car(C1)[1]]=car(C1)[2]; + return m2ll(R); + } + return L1; + }else{ /* [[..],..], [[..],..] */ + if(type(L2[0])<4){ + for(R=[];L2!=[];L2=cdr(L2)) R=cons([car(L2)],R); + L2=reverse(R); + } + if(TT=="sum") T=3; + if(TT=="over") T=4; + if(findin(T,[0,1,2,3,4,5])<0) return L1; + if(T==4||T==5){ + if(type(C1)<2) C1=[C1]; + if(type(C2)<2) C2=[C2]; + } + if(type(car(L2))!=4){ + for(R=[];L2!=[];L2=cdr(L2)) R=cons([car(L2)],R); + R=reverse(R); + if(length(K)==1) K=[K[0],0]; + C2=0; + } + L1=lsort(L1,"num",["put",0]); /* insert number */ + K0=(length(K)>0)?K[0]+1:1; + K1=(length(K)>1)?K1=K[1]:0; + L1=lsort(L1,"sort",[0,K0]); + if(T<4&&type(C2)==4&&length(L2[0])>1){ + L2=lsort(L2,"col",["put"]|c1=cons(K1,C2)); /* add key and extract columns */ + C2=0;K1=0; + } + L2=lsort(L2,"sort",[0,K1]); + for(R0=[],S=S1=length(L1[0]);S>0;S--) R0=cons("",R0); + for(R1=[],S=length(L2[0]);S>0;S--) R1=cons("",R1); + if(!K1&&T!=3) R1=cdr(R1); + for(R=[];L1!=[];L1=cdr(L1)){ + while(L2!=[]&&car(L1)[K0]>car(L2)[K1]){ + if(T==3) R=cons(append(R0,car(L2)),R); + L2=cdr(L2); + } + if(L2==[]||car(L1)[K0]<car(L2)[K1]){ + if(T!=2) R=cons((T==1||T>3||R1==[])?car(L1):append(car(L1),R1),R); + }else if(T==0||T==2||T==3){ + if(R0==[]) R=append(car(L1),R); + else R=cons(append(car(L1),(!K1&&T!=3)?cdr(car(L2)):car(L2)),R); + L2=cdr(L2); + }else if(T==4||T==5){ + V1=ltov(car(L1));V2=ltov(car(L2)); + for(D1=C1,D2=C2;D1!=[];D1=cdr(D1),D2=cdr(D2)) + if((I=V2[car(D2)])!=""||T==4) V1[car(D1)+1]=I; + R=cons(vtol(V1),R); + } + } + if(T==3){ + while(L2!=[]){ + R=cons(append(R0,car(L2)),R); + L2=cdr(L2); + } + } + R=lsort(R,"sort",["put",0]); /* original order */ + D=(((T==0||T==2)&&!K1)||T==3)?[0]:[0,S1+K1]; + R=lsort(R,0,[1]|c1=D); /* delete */ + if(type(C1)!=4||T==1||T==4||T==5) return R; + C=[];S0=size(L1[0]); + for(;C1!=[];C1=cdr(C1)) C=cons(car(C1),C); + for(I=0;I<S0-S1;I++) C=cons(I+S1,C); + C=reverse(C); + return lsort(R,"col",[1]|c1=C); + } + } + if(L2 == []){ /* [...] */ + if(T==8||TT=="count") return [length(L1),length(lsort(L1,[],1))]; + if(T==7||TT=="cut"){ + K=length(L1); + if(C1<0) C1=K+C1; + for(R=[],I=0;I<C1&&L1!=[];I++,L1=cdr(L1)) + R=cons(car(L1),R); + for(S=[];L1!=[];L1=cdr(L1)) + S=cons(car(L1),S); + return [reverse(R),reverse(S)]; + } + if(T==2) return L2; + if(T==3) return [L1,L2]; + L1 = ltov(L1); qsort(L1); + if(T != 1) + return vtol(L1); + L3 = []; + for(I = length(L1)-1; I >= 0; I--){ + if(I > 0 && L1[I] == L1[I-1]) + continue; + L3 = cons(L1[I], L3); + } + return L3; + } + if(T==8||TT=="count"){ + K=length(lsort(L1,L2,3)[0]); + R=[length(L2),length(L1)]; + L1 = lsort(L1,[],1); + L2 = lsort(L2,[],1); + R=append([length(L2),length(L1)],R); + R=cons(length(lsort(L1,L2,2)),R); + return reverse(cons(K,R)); + } + if((T==9||TT=="cons")&&type(car(L1))==4){ + if(type(L2)!=4) L2=[L2]; + for(R=[];L1!=[];L1=cdr(L1)){ + R=cons(cons(car(L2),car(L1)),R); + if(length(L2)>1) L2=cdr(L2); + } + return reverse(R); + } + if(T==10||TT=="cmp"){ + if(length(L1)!=length(L2)){ + mycat("Different length!"); + return 1; + } + R=[]; + if(type(car(L1))==4){ + for(U=[],I=0;L1!=[];I++,L1=cdr(L1),L2=cdr(L2)){ + if(length(S=car(L1))!=length(T=car(L2))){ + mycat(["Different size : line ",I]); + return 0; + } + for(J=0;S!=[];S=cdr(S),T=cdr(T),J++) + if(car(S)!=car(T)) U=cons([[I,J],car(S),car(T)],U); + } + if(U!=[]) R=cons(reverse(U),R); + }else{ + for(I=0;L1!=[];L1=cdr(L1),L2=cdr(L2),I++) + if(car(L1)!=car(L2)) R=cons([I,car(L1),car(L2)],R); + } + return reverse(R); + } + if(T==11||TT=="append"){ + if(type(car(L1))!=4) return append(L1,L2); + for(R=[];L1!=[];L1=cdr(L1),L2=cdr(L2)) + R=cons(append(car(L1),car(L2)),R); + return reverse(R); + } + if(T == 1 || T == 2){ + L1 = lsort(L1,[],1); + L2 = lsort(L2,[],1); + L3 = []; + if(T == 1){ + while(L1 != []){ + if(L2 == [] || car(L1) < car(L2)){ + L3 = cons(car(L1), L3); + L1 = cdr(L1); + continue; + } + if(car(L1) > car(L2)){ + L2 = cdr(L2); + continue; + } + L1 = cdr(L1); L2 = cdr(L2); + } + return reverse(L3); + } + if(T==2){ + while(L1 != [] && L2 != []){ + if(car(L1) != car(L2)){ + if(car(L1) <= car(L2)) + L1 = cdr(L1); + else L2 = cdr(L2); + continue; + } + while(car(L1) == car(L2)) + L1 = cdr(L1); + L3 = cons(car(L2), L3); + } + return reverse(L3); + } + } + if(T==3){ + L1 = qsort(L1); L2 = qsort(L2); + L3 = L4 = []; + while(L1 != [] && L2 != []){ + if(car(L1) == car(L2)){ + L1 = cdr(L1); L2 = cdr(L2); + }else if(car(L1) < car(L2)){ + L3 = cons(car(L1),L3); + L1 = cdr(L1); + }else{ + L4 = cons(car(L2), L4); + L2 = cdr(L2); + } + } + L4 = append(reverse(L4),L2); + L3 = append(reverse(L3),L1); + return [L3,L4]; + } + L1 = append(L1,L2); + return lsort(L1,[],1); +} + +def mqsub(X,Y) +{ + for(L=LQS;L!=[];L=cdr(L)){ + F=(T=car(L))[0];M=(T=cdr(T))[0]; + X0=X;Y0=Y; + for(T=cdr(T);T!=[];T=cdr(T)){ + X0=X0[car(T)];Y0=Y0[car(T)]; + } + if(type(M)==1){ + if(M==3){ + X0=type(X0);Y0=type(Y0); + }else if(M==4&&type(X0)<2&&type(Y0)<2){ + X0=abs(X0);Y0=abs(Y0); + }else if(M==5){ + X0=str_len(rtostr(X0));Y0=str_len(rtostr(Y0)); + }else if(type(X0)==type(Y0)&&type(X0)>3&&type(X0)<7){ + if(M==1){ + X0=length(X0);Y0=length(Y0); + }else if(M==2){ + LX=length(X0);LY=length(Y0); + L0=(LX<LY)?LX:LY; + for(I=0;;I++){ + if(I==L0){ + X0=LX;Y0=LY;break; + } + if(X0[I]==Y0[I]) continue; + X0=X0[I];Y0=Y0[I];break; + } + } + } + }else if(type(M)==2){ + X0=(*M)(X0,Y0);Y0=0; + }else if(type(M)==4&&length(M)==1){ + X0=(*car(M))(X0);Y0=(*car(M))(Y0); + } + if(X0==Y0) continue; + return (X0<Y0)?-F:F; + } + return 0; +} + +def msort(L,S) +{ + if(type(S)!=4) return qsort(L); + if(type(S[0])!=4) S=[S]; + LQS=S; + return qsort(L,os_md.mqsub); +} + +def lmax(L) +{ + if(type(L)==4){ + V=car(L); + while((L=cdr(L))!=[]) + if(V < car(L)) V=car(L); + return V; + }else if(type(L)==5||type(L)==6) + return lmax(m2l(L)); + return []; +} + +def lmin(L) +{ + if(type(L)==4){ + V=car(L); + while((L=cdr(L))!=[]) + if(V > car(L)) V=car(L); + return V; + }else if(type(L)==5||type(L)==6) + return lmin(m2l(L)); + return []; +} + +def lgcd(L) +{ + if(type(L)==4){ + F=getopt(poly); + V=car(L); + while((L=cdr(L))!=[]&&V!=1){ + if(V!=0) + V=(F==1)?gcd(V,car(L)):igcd(V,car(L)); + } + return V; + }else if(type(L)==5||type(L)==6) + return lgcd(m2l(L)|option_list=getopt()); + return []; +} + +def llcm(L) +{ + if(type(L)==4){ + F=getopt(poly); + V=car(L); + while((L=cdr(L))!=[]){ + if(V!=0){ + if((V0=car(L))!=0) + V=(F==1)?red(V*V0/gcd(V,V0)):ilcm(V,V0); + } + else V=car(L); + } + if(F!=1&&V<0) V=-V; + return V; + } + else if(type(L)==5||type(L)==6) + return llcm(m2l(L)|option_list=getopt()); + return []; +} + +def ldev(L,S) +{ + M=abs(lmax(L));N=abs(lmin(L)); + if(M<N) M=N; + for(C=0,LT=L;;C++){ + LT=ladd(LT,S,1); + MT=abs(lmax(LT));NT=abs(lmin(LT)); + if(MT<NT) MT=NT; + if(MT>=M) break; + M=MT; + } + if(!C){ + for(C=0,LT=L;;C--){ + LT=ladd(LT,S,-1); + MT=abs(lmax(LT));NT=abs(lmin(LT)); + if(MT<NT) MT=NT; + if(MT>=M) break; + M=MT; + } + } + return [C,ladd(L,S,C)]; +} + +def lchange(L,P,V) +{ + if(getopt(flat)==1&&type(P)==4){ + for(L=ltov(L);P!=[];P=cdr(P),V=cdr(V)) + L[car(P)]=car(V); + return vtol(L); + } + if(type(P)==4){ + IP=car(P); P=cdr(P); + }else{ + IP=P; P=[]; + } + for(I=0, LL=[], LT=L; LT!=[]; I++,LT=cdr(LT)){ + if(I==IP){ + LL=cons((P==[])?V:lchange(car(LT),P,V),LL); + }else + LL=cons(car(LT),LL); + } + return reverse(LL); +} + +def lsol(VV,L) +{ + if(type(VV)<4 && type(L)==2) + return red(L-VV/mycoef(VV,1,L)); + S = length(VV); + T = length(L); + V = llbase(VV,L); + for(J = K = 0; J < T; J++){ + X = var(L[J]); N = deg(L[J],X); + for(I = K; I < S; I++){ + if((C=mycoef(V[I], N, X)) != 0){ + V[I] = [L[J],red(X^N-V[I]/C)]; + K++; + break; + } + } + } + return V; +} + +def lnsol(VV,L) +{ + LL=lsort(vars(VV),L,1); + VV=ptol(VV,LL|opt=0); + return lsol(VV,L); +} + + +def ladd(X,Y,M) +{ + if(type(X)==4) X=ltov(X); + if(type(Y)==4) Y=ltov(Y); + return vtol(X+M*Y); +} + +def mrot(X) +{ + if(getopt(deg)==1) X=@pi*X/180; + X=deval(X); + return mat([dcos(X),dsin(X)],[-dsin(X),dcos(X)]); +} + +def m2v(M) +{ + S = size(M); + V = newvect(S[0]*S[1]); + for(I = C = 0; I < S[0]; I++){ + MI = M[I]; + for(J = 0; J < S[1]; J++) + V[C++] = MI[J]; + } + return V; +} + +def lv2m(L) +{ + if(type(L)==5) L=vtol(L); + II=length(L); + for(J=1,T=L; T!=[]; T=cdr(T)) + if(length(car(T))>JJ) JJ=length(car(T)); + M = newmat(II,JJ); + N = getopt(null); + if(type(N)<0) N=0; + for(I=0; I<II; I++){ + V=car(L); L=cdr(L); + for(J=length(V);--J>=0;) + M[I][J] = V[J]; + if(N!=0){ + for(J=length(V); J<JJ; J++) + M[I][J]=N; + } + } + return M; +} + +def m2lv(M) +{ + I=size(M)[0]; + for(N=[],I=size(M)[0];I-->0;) + N=cons(M[I],N); + return N; +} + +def s2m(S) +{ + if(type(S)==6) return S; + if(type(S)==7){ + if(str_chr(S,0,"[")!=0) S=s2sp(S); + else if(str_chr(S,0,",")>=0) return eval_str(S); + else{ + for(L=LL=[],I=0; ; ){ + II=str_chr(S,I+2,"]"); + if(II<0) return 0; + J=str_chr(S,I+2," "); + while(str_chr(S,J+1," ")==J+1) J++; + if(J>II-2 || J<0) J=II; + V=eval_str(sub_str(S,I+1,J-1)); + L=cons(V,L); + I=J; + if(J==II){ + LL=cons(ltov(reverse(L)),LL); + L=[]; + if((I=str_chr(S,II+1,"["))<0) + return lv2m(reverse(LL)); + } + } + } + } + if(type(S)==5) S=vtol(S); + if(type(S[0])==5) return lv2m(S); + I=length(S); + for(J=1,T=S; T!=[]; T=cdr(T)) + if(length(car(T))>J) J=length(car(T)); + return newmat(I,J,S); +} + +def c2m(L,V) +{ + if(type(Pow=getopt(pow))!=1){ + if(isvar(V)==1){ + for(Pow=0,LT=L;LT!=[];LT=cdr(LT)){ + if(mydeg(car(LT),V)>JJ) Pow=mydeg(car(LT),V); + } + JJ=Pow+1; + }else{ + Pow=-1; + JJ=length(V); + } + }else JJ=Pow+1; + M=newmat(length(L),JJ); + for(I=0;L!=[];L=cdr(L),I++){ + for(J=0;J<JJ;J++){ + LT=car(L); + M[I][J]=(Pow>=0)?mycoef(LT,J,V):mycoef(LT,1,V[J]); + } + } + return M; +} + +#if 0 +def m2diag(M,N) +{ + S = size(M); + MM = mtoupper(M,N); + for(I = S[0]-1; I >= 0; I--){ + for(J = 0; I < S[1]-N; I++){ + if(MM[I][J] != 0){ + P = MM[I][J]; + for(K = 0; K < I; K++){ + Q = -rmul(MM[K][J],1/P); + MM[K][J] = 0; + if(Q != 0){ + for(L = J+1; L < S[1]; L++){ + if(MM[I][L] != 0) + MM[K][L] = radd(MM[K][L], rmul(MM[I][L],Q)); + } + } + } + } + } + } + return MM; +} +#endif + +def myinv(M) +{ + S = size(M); + if((T=S[0]) != S[1]) + return 0; + MM = mtoupper(M,-T|opt=2); + if(MM[T-1][T-1] != 1) return 0; + return mperm(MM,0,[T,[T]]); +} + +def madj(G,M) +{ + H=myinv(G); + if(type(M)==6) + return rmul(rmul(G,M),H); + if(type(M)==4||type(M)==5){ + L=length(M); + N=newvect(L); + for(I=0;I<L;I++){ + N[I]=rmul(rmul(G,M[I]),H); + } + if(type(N)==4) N=vtol(N); + return N; + } + return -1; +} + +def mpower(M,N) +{ + if(type(M)<=3) return (red(M))^N; + S = size(M); + if(S[0] != S[1]) + return 0; + if(N == 0) return mgen(S[0],0,[1],0); + if(N < 0) + return(mpower(myinv(M), -N)); + R = dupmat(M); + V=1; + for(V=1;;){ + if(iand(N,1)){ + V=map(red,R*V); + N--; + } + if((N/=2)==0) break; + R=map(red,R*R); + } + return V; +} + +def texlen(S) +{ + if(type(S)!=7) return 0; + LF=I=J=0; + LM=str_len(S); + while((I=str_str(S,"\\frac{"|top=J))>=0){ + if(I>J) LF+=texlen(str_cut(S,J,I-1)); + I+=6; + for(F=L=0,J=I;F<2 && J<LM-1;F++){ + for(C=1;C>0 && J<LM;){ + if((K0=str_char(S,J,"}"))<0) K0=LM; + if((K1=str_char(S,J,"{"))<0) K1=LM; + if(K0<0 && K1<0){ + J = str_len(S)-1; + break; + } + if(K0<K1){ + J=K0+1; C--; + }else{ + J=K1+1; C++; + } + } + T=str_cut(S,I,J-1); + if(F==0){ + I=J=K1+1;C=1; + }else J=K0+1; + if(type(T)==7 && (LL=texlen(T))>L) L=LL; + } + LF+=L; + } + if(J>0) S=str_cut(S,J,str_len(S)-1); + if(S==0) return LF; + S=ltov(strtoascii(S)); + L=LL=length(S); + for(I=F=0; I<L; I++){ + if(S[I]==92) F=1; + else if(F==1){ + if((S[I]>96 && S[I]<123)||(S[I]>64 && S[I]<91)) LL--; + else F=0; + } + if(S[I]<=32||S[I]==123||S[I]==125||S[I]==94||S[I]==38) LL--; /* {}^& */ + else if(S[I]==95){ + LL--; + if(I+2<L && S[I+2]==94) LL--; /* x_2^3 */ + else if(I+6<L && S[I+1]==123 && S[I+4]==125){ /* x_{11}^2 */ + if(S[I+5]==94 || (S[I+5]==125 && S[I+6]==94)) LL-- ; /* x_{11}}^2 */ + } + } + } + return LL+LF; +} + +def isdif(P) +{ + if(type(P)<1 || type(P)>3) return 0; + for(Var=[],R=vars(P);R!=[];R=cdr(R)){ + V0=rtostr(car(R)); + if(V0>"d" && V0<"e"){ + V=sub_str(V0,1,str_len(V0)-1); + if(V>="a" && V<"{") Var=cons([strtov(V),strtov(V0)],Var); + } + } + if(Var==[]) return 0; + for(V=Var; V!=[]; V=cdr(V)) + if(ptype(P,car(V)[1])==3) return 0; + return Var; +} + +def texsp(P) +{ + Q=strtoascii(P); + if((J=str_char(Q,0,92))<0 || (C=Q[L=str_len(P)-1])==32||C==41||C==125) + return P; + for(;;){ + if((I=str_char(Q,J+1,92))<0) break; + J=I; + }; + for(I=J+1;I<L&&isalpha(Q[I]);I++); + return(I==L)?P+" ":P; +} + +def fctrtos(P) +{ + /* extern TeXLim; */ + + if(!chkfun("write_to_tb", "names.rr")) + return 0; + + TeX = getopt(TeX); + if(TeX != 1 && TeX != 2 && TeX != 3) + TeX = 0; + if((Dvi=getopt(dviout)==1) && TeX<2) TeX=3; + if(TeX>0){ + Lim=getopt(lim); + if(Lim!=0 && TeX>1 && (type(Lim)!=1||Lim<30)) Lim=TeXLim; + else if(type(Lim)!=1) Lim=0; + CR=(TeX==2)?"\\\\\n":"\\\\\n&"; + if(TeX==1 || Lim==0) CR=""; + else if((Pages=getopt(pages))==1) CR="\\allowdisplaybreaks"+CR; + if(!chkfun("print_tex_form", "names.rr")) + return 0; + Small=getopt(small); + } + Dif=getopt(dif); + Var=getopt(var); + if(Lim>0 && type(Var)<2 && TeX!=1) Var=[strtov("0"),""]; + Dif=0; + if(Var=="dif"){ + Dif=DV=1; + }else if (Var=="dif0") Dif=1; + else if(Var=="dif1") Dif=2; + else if(Var=="dif2") Dif=3; + if(Dif>0){ + for(Var=[],R=vars(P);R!=[];R=cdr(R)){ + V=rtostr(car(R)); + if(V>"d" && V<"e"){ + V=sub_str(V,1,str_len(V)-1); + if(V>="a" && V<"{"){ + if(TeX>0){ + V=my_tex_form(strtov(V)); + if(Dif>=1){ + if(Dif==1){ + if(str_len(V)==1) V="\\partial_"+V; + else V="\\partial_{"+V+"}"; + } + Var=cons([car(R),V],Var); + } + else Var=cons([car(R)],Var); + }else Var=cons([car(R)],Var); + } + } + } + if(TeX>0){ + if(length(Var)==1){ + if(DV==1 && str_len(Var[0][1])==10) Var=[[Var[0][0],"\\partial"]]; + }else if(DV==1){ + for(V=Var;V!=[];V=cdr(V)){ + VV=rtostr(car(V)[0]); + if(VV<"dx0" || VV>= "dx:" || str_len(VV)>4) break; + } + if(V==[]){ + for(VT=[],V=Var;V!=[];V=cdr(V)){ + VV=str_cut(rtostr(car(V)[0]),2,3); + if(str_len(VV)==1) VT=cons([car(V)[0],"\\partial_"+VV],VT); + else VT=cons([car(V)[0],"\\partial_{"+VV+"}"],VT); + } + Var=reverse(VT); + } + }else + if(Dif==2 && length(Var)>1) Dif=3; + } + if(Dif>0) Dif--; + } + if(type(Var)>1 && Var!=[]){ /* as a polynomial of Var */ + Add=getopt(add); + if(type(Add)>0){ + if(type(Add)!=7){ + Add=my_tex_form(Add); + if(str_char(Add,0,"-")>=0 || str_char(Add,0,"+")>=0) Add="("+Add+")"; + } + if(str_char(Add,0,"(")!=0) Add = " "+Add; + }else Add=0; + if(type(Var)!=4) Var=[Var]; + if(length(Var)==2 && type(Var[1]) == 7) + Var = [Var]; + for(VV=VD=[]; Var!=[];Var=cdr(Var)){ + VT=(type(car(Var))==4)?car(Var):[car(Var)]; + VT0=var(car(VT)); + VV=cons(VT0,VV); + if(length(VT)==1){ + VD=cons((TeX>=1)?my_tex_form(VT0):rtostr(VT0),VD); + }else VD=cons(VT[1],VD); + } + VV=reverse(VV);VD=reverse(VD); + Rev=(getopt(rev)==1)?1:0; + Dic=(getopt(dic)==1)?1:0; + TT=terms(P,VV|rev=Rev,dic=Dic); + if(TeX==0){ + Pre="("; Post=")"; + }else{ + Pre="{"; Post="}"; + } + Out = string_to_tb(""); + for(L=C=0,Tm=TT;Tm!=[];C++,Tm=cdr(Tm)){ + for(I=0,PC=P,T=cdr(car(Tm)),PW="";T!=[];T=cdr(T),I++){ + PC=mycoef(PC,D=car(T),VV[I]); + if(PC==0) continue; + PT=""; + if(D!=0 && VD[I]!=""){ + if(TeX==0 && PW!="") PW+="*"; + if(D>1){ + if(D>9) PT="^"+Pre+rtostr(D)+Post; + else PT="^"+rtostr(D); + } + if(Dif>0) PW+=(Dif==1)?"d":"\\partial "; + PW+=VD[I]+PT; + } + } + D=car(Tm)[0]; + if(Dif>0 && D>0){ + Op=(Dif==1)?"\\frac{d":"\\frac{\\partial"; + if(D>1) Op+="^"+((D>9)?(Pre+rtostr(D)+Post):rtostr(D)); + PW=Op+Add+"}{"+PW+"}"; + }else if(Add!=0) PW=PW+Add; + if(TeX>=1){ + if(type(PC)==1 && ntype(PC)==0 && PC<0) + OC="-"+my_tex_form(-PC); + else OC=fctrtos(PC|TeX=1,br=1); + }else OC=fctrtos(PC|br=1); + if(PW!=""){ + if(OC == "1") OC = ""; + else if(OC == "-1") OC = "-"; + } + if(TeX==0 && D!=0 && OC!="" && OC!="-") PW= "*"+PW; + if((TOC=type(OC)) == 4){ /* rational coef. */ + if(Lim>0 && (texlen(OC[0])>Lim || texlen(OC[0])>Lim)){ + OC = (Small==1)?"("+OC[0]+")/("+OC[1]+")" + :"\\Bigl("+OC[0]+"\\Bigr)\\Bigm/\\Bigl("+OC[1]+"\\Bigr)"; + TOC = 7; + }else{ + if(str_char(OC[0],0,"-")==0){ + OC = fctrtos(-PC|TeX=1,br=1); + OC = "-\\frac{"+OC[0]+"}{"+OC[1]+"}"; + } + else + OC = "\\frac{"+OC[0]+"}{"+OC[1]+"}"; + } + } + if(Lim>0){ + LL=texlen(OC)+texlen(PW); + if(LL+L>=Lim){ + if(L>0) str_tb(CR,Out); + if(LL>Lim){ + if(TOC==7) OC=texlim(OC,Lim|cut=CR); + PW+=CR; L=0; + }else L=LL; + }else L+=LL; + }else if(length(Tm)!=1) PW += CR; /* not final term */ + if(TeX) OC=texsp(OC); + if(str_chr(OC,0,"-") == 0 || C==0) str_tb([OC,PW], Out); + else{ + str_tb(["+",OC,PW],Out); + if(LL<=Lim) L++; + } + } + S=str_tb(0,Out); + if(S=="") S="0"; + }else{ /* Var is not specified */ + if((TP=type(P)) == 3){ /* rational function */ + P = red(P); Nm=nm(P); Dn=dn(P); + Q=dn(ptozp(Nm|factor=1)[1]); + if(Q>1){ + Nm*=Q;Dn*=Q; + } + if(TeX>0){ + return (TeX==2)? + "\\frac\{"+fctrtos(Nm|TeX=1)+"\}\{"+fctrtos(Dn|TeX=1)+"\}" + :[fctrtos(Nm|TeX=1),fctrtos(Dn|TeX=1)]; + } + else{ + S=fctrtos(Nm); + if(nmono(Nm)>1) S="("+S+")"; + return S+"/("+fctrtos(Dn)+")"; + } + } + if(imag(P)==0) P = fctr(P); /* usual polynomial */ + else P=[[P,1]]; + S = str_tb(0,0); + for(J = N = 0; J < length(P); J++){ + if(type(P[J][0]) <= 1){ + if(P[J][0] == -1){ + write_to_tb("-",S); + if(length(P) == 1) + str_tb("1", S); + }else if(P[J][0] != 1){ + str_tb((TeX>=1)?my_tex_form(P[J][0]):rtostr(P[J][0]), S); + N++; + }else if(length(P) == 1) + str_tb("1", S); + else if(getopt(br)!=1 && length(P) == 2 && P[1][1] == 1){ + str_tb((TeX>=1)?my_tex_form(P[1][0]):rtostr(P[1][0]), S); + J++; + } + continue; + } + if(N > 0 && TeX != 1 && TeX != 2 && TeX != 3) + write_to_tb("*", S); + SS=(TeX>=1)?my_tex_form(P[J][0]):rtostr(P[J][0]); + N++; + if(P[J][1] != 1){ /* (log(x))^2 */ + if(nmono(P[J][0])>1|| + (!isvar(P[J][0])||vtype(P[J][0]))&&str_len(SS)>1) SS="("+SS+")"; + write_to_tb(SS,S); + str_tb(["^", (TeX>1)?rtotex(P[J][1]):monotos(P[J][1])],S); + }else{ + if(nmono(P[J][0])>1) SS="("+SS+")"; + write_to_tb(SS,S); + } + } + S = str_tb(0,S); + if((Lim>0 || TP!=2) && CR!="") S=texlim(S,Lim|cut=CR); + } + if(TeX>0){ + if(Small==1) S=str_subst(S,"\\frac{","\\tfrac{"); + if(Dvi==1){ + dviout(strip(S,"(",")")|eq=(Pages==1)?6:0); S=1; + } + } + return S; +} + +def strip(S,S0,S1) +{ + SS=strtoascii(S); + if(length(SS)>1){ + if(SS[0]==40&&SS[length(SS)-1]==41&&str_pair(SS,1,S0,S1)==length(SS)-1) + S=str_cut(SS,1,length(SS)-2); + } + return S; +} + +def texlim(S,Lim) +{ + /* extern TeXLim; */ + if(S==1 && Lim>10){ + TeXLim=Lim; + mycat(["Set TeXLim =",Lim]); + return 1; + } + if(type(Out=getopt(cut))!=7) Out="\\\\\n&"; + if(type(Del=getopt(del))!=7) Del=Out; + if(Lim<30) Lim=TeXLim; + S=ltov(strtoascii(S)); + for(L=[0],I=F=0;F==0; ){ + II=str_str(S,Del|top=I)+2; + if(II<2){ + F++;II=/* str_len(S) */ length(S)-1; + } + for(J=JJ=I+1;;JJ=K+1){ + K=str_char(S,JJ,43); /* + */ + if((K1=str_char(S,JJ,45))>2 && K1<K){ /* - */ + if(S[K1-1]!=123 && S[K1-1]!=40) K=K1; /* {, ( */ + } + if((K1=str_char(S,JJ,40))>0 && K1-JJ>6 && K1<K && S[K1-1]!=43 && S[K1-1]!=45){ /* ( */ + T=str_char(S,K1-6,"\\"); /* \Big*(, \big*( */ + if((T==K1-6 || T==K1-5) + && (str_str(S,"big"|top=T+1,end=T+1)>0 || str_str(S,"Big"|top=T+1,end=T+1)>0)) + K=T; + else if(K1>0 && K1<K) K=K1; + } + if(K<0 || K>II) break; + if(K-J>Lim && texlen(str_cut(S,J,K-1))>=Lim){ + J=K+1; L=cons(JJ-1,L); SL=0; + } + } + I=II; + } + SS=str_tb(0,0); + L=cons(length(S),L); + L=reverse(L); + for(I=0; L!=[]; I=J,L=cdr(L)){ + str_tb((I==0)?"":Out,SS); + J=car(L); + str_tb(str_cut(S,I,J-1),SS); + } + return str_tb(0,SS); +} + +def fmult(FN,M,L,N) +{ + Opt=getopt(); + for(I = 0; I < length(M); I++) + M = call(FN, cons(M,cons(L[I],N))|option_list=Opt); + return M; +} + +def radd(P,Q) +{ + if(type(P) <= 3 || type(Q) <= 3){ + if(type(P) >= 5) + return radd(Q,P); + if(type(Q) >= 5){ + R = dupmat(Q); + if(P == 0) + return R; + if(type(Q) == 6){ + S = size(Q); + if(S[0] != S[1]) + return 0; + for(I = 0; I < S[0]; I++) + R[I][I] = radd(R[I][I], P); + }else{ + for(I = length(R)-1; I >= 0; I--) + R[I] = radd(R[I],P); + } + return R; + } + /* P=red(P);Q=red(Q); */ + if((P1=dn(P)) == (Q1=dn(Q))){ + if(P1==1) return P+Q; + return red((nm(P)+nm(Q))/P1); + } + R=gcd(P1,Q1);S=tdiv(P1,R); + return red((nm(P)*tdiv(Q1,R)+nm(Q)*S)/(S*Q1)); + } + if(type(P) == 5){ + S = length(P); + R = newvect(S); + for(I = 0; I < S; I++) + R[I] = radd(P[I],Q[I]); + return R; + } + if(type(P) == 6){ + S = size(P); + R = newmat(S[0],S[1]); + for(I = 0; I < S[0]; I++){ + for(J = 0; J < S[1]; J++) + R[I][J] = radd(P[I][J],Q[I][J]); + } + return R; + } + erno(0); +} + +def getel(M,I) +{ + if(type(M) >= 4 && type(M) <= 6 && type(I) <= 1) + return M[I]; + if(type(M) == 6 && type(I) == 5) + return M[I][J]; + return M; +} + +def ptol(P,X) +{ + F=(getopt(opt)==0)?0:1; + if(type(P) <= 3) + P = [P]; + if(type(X) == 4){ + for( ; X != []; X = cdr(X)) + P=ptol(P,car(X)|opt=F); + return P; + } + P = reverse(P); + for(R=[]; P != []; P = cdr(P)){ + Q = car(P); + for(I = mydeg(Q,X); I >= 0; I--){ + S=mycoef(Q,I,X); + if(F==1 || S!=0) R = cons(S,R); + } + } + return R; +} + +def rmul(P,Q) +{ + if(type(P) <= 3 && type(Q) <= 3){ + P=red(P);Q=red(Q); + P1=dn(P);P2=nm(P);Q1=dn(Q);Q2=nm(Q); + if(P1==1 && Q1==1) + return P*Q; + if((R=gcd(P1,Q2)) != 1){ + P1=tdiv(P1,R);Q2=tdiv(Q2,R); + } + if((R=gcd(Q1,P2)) != 1){ + Q1=tdiv(Q1,R);P2=tdiv(P2,R); + } + return P2*Q2/(P1*Q1); + } +#ifdef USEMODULE + return mmulbys(os_md.rmul,P,Q,[]); +#else + return mmulbys(rmul,P,Q,[]); +#endif +} + +def mtransbys(FN,F,LL) +{ + Opt=getopt(); + if(type(F) == 4){ + F = ltov(F); + S = length(F); + R = newvect(S); + for(I = 0; I < S; I++) + R[I] = mtransbys(FN,F[I],LL|option_list=Opt); + return vtol(R); + } + if(type(F) == 5){ + S = length(F); + R = newvect(S); + for(I = 0; I < S; I++) + R[I] = mtransbys(FN,F[I],LL|option_list=Opt); + return R; + } + if(type(F) == 6){ + S = size(F); + R = newmat(S[0],S[1]); + for(I = 0; I < S[0]; I++){ + for(J = 0; J < S[1]; J++) + R[I][J] = mtransbys(FN,F[I][J],LL|option_list=Opt); + } + return R; + } + if(type(F) == 7) return F; + return call(FN, cons(F,LL)|option_list=Opt); +} + +def drawopt(S,T) +{ + if(type(S)!=7) return -1; + if(T==0||T==1){ + for(I=0,R=LCOPT;I<7;I++,R=cdr(R)) + if(str_str(S,car(R))>=0) return(T==0)?COLOPT[I]:car(R); + return -1; + } + if(T==2){ + V0=V1=0; + for(I=0,R=LPOPT;R!=[];I++,R=cdr(R)){ + if(str_str(S,car(R))>=0){ + if(I==0) V1++; + else if(I==1) V1--; + else if(I==2) V0--; + else V0++; + } + } + if(V0==0&&V1==0) return -1; + return [V0,V1]; + } + if(T==3){ + V=0; + for(I=1,R=LFOPT;R!=[];R=cdr(R),I*=2){ + if(str_str(S,car(R))>=0) V+=I; + } + return (V==0)?-1:V; + } + return -1; +} + +def execdraw(L,P) +{ + if((Proc=getopt(proc))!=1) Proc=0; + if(type(P)<2) P=[P]; + if(L!=[]&&type(L[0])!=4) L=[L]; + /* special command */ + if(P[0]<0){ + if(length(P)==1&&(P[0]==-1||P[0]==-2||P[0]==-3)){ /* Bounding Box */ + W=WS=N=LS=0; + for(LL=L;LL!=[];LL=cdr(LL)){ + T=car(LL); + if(P[0]!=-3 && T[0]==0){ + if(length(T)>3) S=" by "+rtostr(T[3])+" cm"; + else S=""; + if(P[0]==-1){ + mycat(["Windows : ",T[1][0],"< x <",T[1][1],", ", + T[2][0],"< y <",T[2][1],S]); + if(length(T)>4 && type(T[4])==4) mycat(["ext :",T[4]]); + if(length(T)>5) mycat(["shift :",T[5]]); + } + return cdr(T); + } + if(type(T[0])==1){ + if(T[0]==1){ + for(TT=cdr(cdr(T));TT!=[];TT=cdr(TT)){ + D=car(TT); + if(type(D[0][0])==4){ + for(DT=D;DT!=[];DT=cdr(DT)){ + if(N++==0) W=ptbbox(car(DT)); + else W=ptbbox(car(DT)|box=W); + } + }else{ + if(N++==0) W=ptbbox(D); + else W=ptbbox(D|box=W); + } + } + }else if(T[0]==2){ + V=T[2]; + if(type(V[0])>1||type(V[1])>1) continue; /* not supported */ + if((Sc=delopt(T[1],"scale"|inv=1))!=[]){ + Sc=car(Sc)[1]; + if(type(Sc)==1) V=[Sc*V[0],Sc*V[1]]; + else V=[Sc[0]*V[0],Sc[1]*V[1]]; + } + if(LS==0) WS=ptbbox([V]); + else WS=ptbbox([V]|box=WS); + if(length(T)>4) S=T[4]; + else if(type(S=T[3])==4){ + S=S[0]; + if(type(S)==4) S=S[length(S)-1]; + S=rtostr(S); + } + if(str_len(S)>LS) LS=str_len(S); + }else if(T[0]==3||T[0]==4){ + if(N++==0) W=ptbbox(cdr(cdr(T))); + else W=ptbbox(cdr(cdr(T))|box=W); + } + } + } + if(W!=0&&WS!=0) W=ptbbox([W,WS]|box=1); + return (P[0]==-3)?[W,LS,WS]:W; + }else if(length(P)>1&&P[0]==-1){ /* set Bounding Box */ + P=cons(0,cdr(P)); + Ex=Sft=[0,0]; + if(type(X=getopt(ext))==4) Ex=X; + if(type(X=getopt(shift))==4) Sft=X; + if(Ex!=Sft||Ex!=[0,0]){ + if(Sft==[0,0]) Sft=[Ex]; + else Sft=[Ex,Sft]; + if(length(P)==3) Sft=cons(1,Sft); + if(length(P)==3||length(P)==4) P=append(P,Sft); + } + return cons(P,delopt(L,0)); + } + if(P[0]==-4){ + for(N=0,LT=L;LT!=[];LT=cdr(LT)){ /* count coord. */ + T=car(LT); + if(T[0]==1){ + for(T=cdr(cdr(T));T!=[];T=cdr(T)){ + if(type((S=car(T))[0][0])==4) N+=length(S); + else for(;S!=[];S=cdr(S)) if(type(car(S))==4) N++; + } + }else if(T[0]==2) N++; + else if(T[0]==3||T[0]==4) N+=2; + } + return N; + } + if(P[0]==-5){ /* functions */ + for(N=0,R=[],LT=L;LT!=[];LT=cdr(LT)){ + T=car(LT); + if(T[0]==0) N=ior(N,1); + else if(type(T[0])==1){ + if(T[0]>0) N=ior(N,2^T[0]); + } + else if(Type(T[0])==2){ + if(findin(T[0],R)<0) R=cons(T[0],R); + } + } + for(I=5;I>=0;I--) if(iand(N,2^I)) R=cons(I,R); + return R; + } + return 0; + } + + if(length(P)>1){ + if(type(P[1])==6||(type(P[1])<2&&P[1]>0)) M=P[1]; + else if(type(P[1])==4&&length(P[1])==2) M=diagm(2,P[1]); + } + if(length(P)>2&&type(P[2])==4){ + Org=[["shift",P[2]]]; + if(M==0) M=1; + }else Org=[]; + if(P[0]==0||(type(P[0])==4&&P[0][0]==0)){ /* Risa/Asir */ + PP=car(P);PPP=0; + if(type(PP)!=4) PP=[PP]; + if(length(PP)<3){ + if(length(PP)==1 || type(PP[1])==4){ + if(ID_PLOT<0) ID_PLOT=ox_launch_nox(0,"ox_plot"); + Id=ID_PLOT; + if(length(PP)==1&&type(Canvas)==4&&length(Canvas)==2) + PP=cons(PP[0],[Canvas]); + if(length(PP)>1){ + PPP=PP[1][0]; + PPQ=(length(PP[1])==2)?PP[1][1]:PPP; + open_canvas(Id,[PPP,PPQ]); + }else open_canvas(Id); + Ind=ox_pop_cmo(Id); + }else{ + Ind=PP[1]; + if(getopt(cl)==1) clear_canvas(Id,Ind); + } + }else{ + Id=PP[1];Ind=PP[2]; + if(length(PP)>3 && type(PP[3])==1) PPP=PP[3]; + if(length(PP)>4 && type(PP[4])==1) PPQ=PP[4]; + if(getopt(cl)==1) clear_canvas(Id,Ind); + } + if(L==[]) return (PPP>0)? [0,Id,Ind,PPP,PPQ]:[0,Id,Ind]; + Ex0=Ex0;Sft=[0,0]; + if(length(P)>1&&P[1]==0&&length(P)<4){ + R=execdraw(L,-3); + Ex0=Ex1=Ex2=10; + if((U=R[1])>0){ /* string */ + if(U>20) U=16; /* adj 16,8,2,7,15 */ + if(R[0][0][0]>R[2][0][0]-(R[0][0][1]-R[0][0][0])/256) Ex0+=8*U; /* adj 256 */ + else Ex0+=2*U; + if(R[0][0][1]<R[2][0][1]+(R[0][0][1]-R[0][0][0])/256) Ex1+=7*U; + else Ex1+=2*U; + if(R[0][1][1]<R[2][1][1]+(R[0][1][1]-R[0][1][0])/256) Ex2+=15; + } + R=[R[0][0],R[0][1],0,[Ex0,Ex1],[0,-Ex2]]; + if(length(P)>2 && P[2]==1) + mycat0(["Box:",[R[0],R[1]], ", ext=",R[3],", shift=",R[4]],1); + }else R=execdraw((length(P)>3)?P[3]:L,-2); /* Windows */ + XW=R[0];YW=R[1]; + if(length(R)>3){ + if(R[3]!=0 && R[3]!=[0,0]) Ex=R[3]; + if(length(R)>4) Sft=R[4]; + } + if(type(X=getopt(ext))==4) + Ex=(Ex0)?[X[0]+Ex[0],X[1]+Ex[1]]:X; + if(type(M)<2){ + if(length(P)>1&&type(P[1])==1) M=P[1]; + else if((length(P)==1||P[1]==0||P[1]==1)&& PPP>0) M=PPP; + if(M<2) M=400; + if(Ex!=0 && type(Ex)==4){ + M-=Ex[0]+Ex[1]; + } + M=(M/(XW[1]-XW[0]))*diagm(2,[1,-1]); + } + if(type(X=getopt(shift))==4) Sft=(Ex0)?[Sft[0]+X[0],Sft[1]+X[1]]:X; + if(type(Sft)==4) Sft=[Sft[0],-Sft[1]]; + if(Ex!=0) Sft=[Sft[0]+Ex[0],Sft[1]]; + Org=[["shift",ptaffine(M,[-XW[0],-YW[1]]|shift=Sft)]]; + for(CT=0;CT<2;CT++){ + for(LT=L;LT!=[];LT=cdr(LT)){ + T=car(LT); + if(!CT && T[0]!=2) continue; + if(CT && T[0]==2) continue; + if(T[0]==1){ + for(TT=cdr(cdr(T));TT!=[];TT=cdr(TT)){ + D=car(TT); + if(type(D[0][0])==4){ + for(DT=D;DT!=[];DT=cdr(DT)){ + V=car(DT); + if(M) V=ptaffine(M,V|option_list=Org); + draw_bezier(Id,Ind,V|option_list=T[1]); + } + }else{ + if(M) D=ptaffine(M,D|option_list=Org); + draw_bezier(Id,Ind,D|option_list=T[1]); + } + } + }else if(T[0]==2){ /* put */ + if(length(T)<4) continue; + V=T[2]; + if(type(VLB)==4&&V[0]=="_") V=VLB; + else if(type(V[0])>1||type(V[1])>1) continue; /* not supported */ + if(length(T)>3&&type(T[3])==4&&length(T[3])>1&&T[3][1]==1) VLB=V; + F++;MM=M; + if((Sc=delopt(T[1],"scale"|inv=1))!=[]){ + if(!MM) MM=1; + Sc=car(Sc)[1]; + if(type(Sc)==1) MM=MM*Sc; + else if(type(Sc)==6) MM=MM*diagm(2,Sc); + } + if(MM) V=ptaffine(MM,V|option_list=Org); + if(type(S=S0=T[3])==4) S=S0[0]; + if(length(T)>4) S=T[4]; /* subst. string */ + if(type(S0)==4&&type(S0[0])==4){ + if((Col=drawopt(S0[0][0],0))<0) Col=0; /* attrib. */ + if(type(S)!=7) S=rtostr(S0[0][1]); + S=str_subst(S,[["$\\bullet$","*"],["$\\times$","x"],["$",""]],0); + if(type(Pos=drawopt(S0[0][0],2))==4) + V=[V[0]+4*str_len(S)*Pos[0],V[1]-10*Pos[1]]; /* adjustable */ + }else S=str_subst(rtostr(S),[["$\\bullet$","*"],["$\\times$","x"],["$",""]],0); + V=[V[0]-str_len(S)*4,V[1]-8]; /* adjustable */ + draw_string(Id,Ind,V,S,Col); + }else if(T[0]==3){ /* arrow */ + F++; + T1=T[2];T2=T[3]; + if(M){ + T1=ptaffine(M,T1|option_list=Org); + T2=ptaffine(M,T2|option_list=Org); + } + draw_bezier(Id,Ind,[T1,T2]|option_list=T[1]); + }else if(T[0]==4){ /* line */ + F++; + T1=T[2];T2=T[3]; + if(M){ + T1=ptaffine(M,T1|option_list=Org); + T2=ptaffine(M,T2|option_list=Org); + } + V=delopt(T1=T[1],"opt"|inv=1); + if(V!=[]&&str_str(V[1],".")>=0) + T1=cons(["opt",cons("dotted,",V[1])],delopt(T1,"opt")); + draw_bezier(Id,Ind,[T1,T2]|option_list=T1); + }else if(T[0]==5){ /* TeX */ + mycat(rtostr(T[2])); + if(F){ + S=str_tb(0,Out); + Out=str_tb(0,0); + F=0; + if(S!=""){ + if(P[0]==2) dviout(xyproc(S)|keep=1); + else LOut=cons(xyproc(S),LOut); + } + if(P[0]==2) dviout(T[2]|option_list=T[1]); + else{ + LOut=cons(T[2],Out); + } + } + }else if(Proc==1&&type(T[0])==2){ + if(length(T)<3) call(T[0],T[1]); + else call(T[0],T[1]|option_list=T[2]); + } + } + } + S=(PPP>0)? [0,Id,Ind,PPP,PPQ]:[0,Id,Ind]; + if(Ex==0&&Sft!=[0,0]) Ex=[0,0]; + return (Ex!=0&&length(P)>2&&P[2]==-1)? + [S,0,0,[0,R[0],R[1],0,Ex,[Sft[0]-Ex[0],-Sft[1]]]]:S; + } + if(P[0]==1||P[0]==2){ /* TeX */ + Out=str_tb(0,0);LOut=[];F=0; + if(getopt(cl)==1) dviout0(0); + for(;L!=[];L=cdr(L)){ + T=car(L);Opt=T[1]; + if(type(T[0])>=2) continue; + if(T[0]==0){ + XW=T[1];YW=T[2]; + if(length(P)>1&&type(P[1])==1&&P[1]<0) + M=-P[1]/(XW[0]-XW[1]); + }else if(T[0]==1){ + F++; + for(TT=cdr(cdr(T));TT!=[];TT=cdr(TT)){ + D=car(TT); + if(type(D[0][0])==4){ + for(DT=D;DT!=[];DT=cdr(DT)){ + V=car(DT); + if(M) V=ptaffine(M,V|option_list=Org); + str_tb(xybezier(V|option_list=Opt),Out); + } + }else{ + if(M) D=ptaffine(M,D|option_list=Org); + str_tb(xybezier(D|option_list=Opt),Out); + } + } + }else if(T[0]==2){ + F++;V=T[2]; + Opt=delopt(Opt,"scale"|inv=1); + MM=M; + if(Opt!=[]){ + Opt=car(Opt)[1]; + if(type(Opt)==1) Opt=[Opt,Opt]; + if(Opt!=[1,1]){ + if(!MM) MM=1; + MM=MM*diagm(2,[Opt[0],Opt[1]]); + } + } + if(MM) V=ptaffine(MM,V|option_list=Org); + if(length(T)>3) V=append(V,T[3]); + str_tb(xyput(V),Out); + }else if(T[0]==3){ + F++; + T1=T[2];T2=T[3]; + if(M){ + T1=ptaffine(M,T1|option_list=Org); + T2=ptaffine(M,T2|option_list=Org); + } + str_tb(xyarrow(T1,T2|option_list=Opt),Out); + }else if(T[0]==4){ + F++; + T1=T[2];T2=T[3]; + if(M){ + T1=ptaffine(M,T1|option_list=Org); + T2=ptaffine(M,T2|option_list=Org); + } + str_tb(xyline(T1,T2|option_list=Opt),Out); + }else if(T[0]==5){ + if(F){ + S=str_tb(0,Out); + Out=str_tb(0,0); + F=0; + if(S!=""){ + if(P[0]==2) dviout(xyproc(S)|keep=1); + else LOut=cons(xyproc(S),LOut); + } + if(P[0]==2) dviout(T[2]|option_list=T[1]); + else LOut=cons(T[2],Out); + } + }else if(T[0]==-2) + str_tb(["%",T[1],"\n"],Out); + else if(Proc==1&&type(T[0])==2){ + if(length(T)<3) call(T[0],T[1]); + else call(T[0],T[1]|option_list=T[2]); + } + } + S=str_tb(0,Out); + if(P[0]==1){ + if(F) LOut=cons(xyproc(S),LOut); + Out=str_tb(0,0); + for(L=reverse(LOut);L!=[];L=cdr(L)) + str_tb(car(L),Out); + return str_tb(0,Out); + } + if(F) dviout(xyproc(S)); + else dviout(" "); + } +} + +def execproc(L) +{ + if(type(N=getopt(var))!=1&&N!=0) N=2; + for(R=[];L!=[];L=cdr(L)){ + P=car(L); + if(type(P[0])==2&&vtype(P[0])==3){ + if((VS=vars(cdr(P)))!=[]){ + for(I=0;I<N;I++){ + V=makev(["v",I+1]); + if(findin(V,VS)>=0) P=mysubst(P,[V,R[I]]); + } + } + if(length(P)<3) R=cons(call(P[0],P[1]),R); + else R=cons(call(P[0],P[1]|option_list=P[2]),R); + } + } + return (getopt(all)==1)?R:car(R); +} + +def myswap(P,L) +{ + X=makenewv(P); + for(L=reverse(L);length(L)>1;L=cdr(L)) + P=subst(P,L[0],X,L[1],L[0],X,L[1]); + return P; +} + +def mysubst(P,L) +{ + if(P==0) return 0; + Inv=getopt(inv); + if(type(L[0]) == 4){ + while((L0 = car(L))!=[]){ + P = mysubst(P,(Inv==1)?[L0[1],L0[0]]:L0); + L = cdr(L); + } + return P; + } + if(Inv==1) L=[L[1],L[0]]; + if(type(P) > 3){ + if(type(P)==7) return P; + if(type(P)>7) + return subst(P,L[0],L[1]); +#ifdef USEMODULE + return mtransbys(os_md.mysubst,P,[L]); +#else + return mtransbys(mysubst,P,[L]); +#endif + } + P = red(P); + if(type(P) == 3){ + A=mysubst(nm(P),L);B=mysubst(dn(P),L); + return red(nm(A)/nm(B))*red(dn(B)/dn(A)); + } + L1=(type(L[1])==3)?red(L[1]):L[1];X=L[0]; + if(ptype(L1,X)==3){ + LN=nm(L1);LD=dn(L1); + Deg=mydeg(P,X); + if(Deg <= 0) return P; + V = newvect(Deg+1); + for(V[I=Deg]=1;I >= 1;I--) + V[I-1]=V[I]*LD; + for(R = 0, I = Deg; I >= 0; I--) + R = R*LN + mycoef(P,I,X)*V[I]; + return red(R/V[0]); + } + return subst(P,X,L1); +} + +def mmulbys(FN,P,F,L) +{ + Opt=getopt(); + if(type(F) <= 3){ + if(type(P) <= 3) + return call(FN, cons(P,cons(F,L))|option_list=Opt); + if(type(P) == 5){ + S = length(P); + R = newvect(S); + for(I = 0; I < S; I++) + R[I] = call(FN, cons(P[I],cons(F,L))|option_list=Opt); + return R; + }else if(type(P) == 6){ + S = size(P); + R = newmat(S[0],S[1]); + for(I = 0; I < S[0]; I++){ + for(J = 0; J < S[1]; J++) + R[I][J] = call(FN, cons(P[I][J],cons(F,L))|option_list=Opt); + } + return R; + } + } + if(type(F) == 5){ + S = length(F); + if(type(P) <= 3){ + R = newvect(S); + for(I = 0; I < S; I++) + R[I] = call(FN, cons(P,cons(F[I],L))|option_list=Opt); + return R; + } + if(type(P) == 5){ + for(J=R=0; J<S; J++) + R = radd(R, call(FN, cons(P[J],cons(F[J],L)))|option_list=Opt); + return R; + } + T = size(P); + R = newvect(T[0]); + for(I = 0; I < T[0]; I++){ + for(J = 0; J < S; J++) + R[I] = radd(R[I], call(FN, cons(P[I][J],cons(F[J],L))|option_list=Opt)); + } + return R; + } + if(type(F) == 6){ + S = size(F); + if(type(P) <= 3){ + R = newmat(S[0],S[1]); + for(I = 0; I < S[0]; I++){ + for(J = 0; J < S[1]; J++) + R[I][J] = call(FN, cons(P,cons(F[I][J],L))|option_list=Opt); + } + return R; + } + if(type(P) == 5){ + R = newvect(S[1]); + for(J = 0; J < S[1]; J++){ + for(K = U = 0; K < S[0]; K++) + U = radd(U, call(FN, cons(P[K],cons(F[K][J],L))|option_list=Opt)); + R[J] = U; + } + return R; + } + T = size(P); + R = newmat(T[0],S[1]); + for(I = 0; I < T[0]; I++){ + for(J = 0; J < S[1]; J++){ + for(K = U = 0; K < S[0]; K++) + U = radd(U, call(FN, cons(P[I][K],cons(F[K][J],L)|option_list=Opt))); + R[I][J] = U; + } + } + return R; + } + erno(0); + return 0; +} + +def appldo(P,F,L) +{ + if(type(F) <= 3){ + if(type(L) == 4 && type(L[0]) == 4) + return applpdo(P,F,L); + L = vweyl(L); + X = L[0]; DX = L[1]; + J = mydeg(P,DX); + for(I = R = 0; I <= J; I++){ + if(I > 0) + F = mydiff(F,X); + R = radd(R,mycoef(P,I,DX)*F); + } + return R; + } +#ifdef USEMODULE + return mmulbys(os_md.appldo,P,F,[L]); +#else + return mmulbys(appldo,P,F,[L]); +#endif +} + +def appledo(P,F,L) +{ + if(type(F) <= 3){ + L = vweyl(L); + X = L[0]; DX = L[1]; + J = mydeg(P,DX); + for(I = R = 0; I <= J; I++){ + if(I > 0) + F = myediff(F,X); + R = radd(R,mycoef(P,I,DX)*F); + } + return R; + } +#ifdef USEMODULE + mmulbys(os_md.appledo,P,F,[L]); +#else + mmulbys(appledo,P,F,[L]); +#endif +} + +def muldo(P,Q,L) +{ + if(type(Lim=getopt(lim))!=1) Lim=100; + if(type(Q) <= 3){ + if(type(L) == 4 && type(L[0]) == 4) + return mulpdo(P,Q,L|lim=Lim); /* several variables */ + R = rmul(P,Q); + L = vweyl(L); + X = L[0]; DX = L[1]; + if(X != 0){ + for(I = F = 1; ; I++){ + P = mydiff(P,DX); + if(I>Lim){ + mycat(["Over", Lim,"derivations!"]); + break; + } + if(P == 0) + break; + Q = mydiff(Q,X); + if(Q == 0) + break; + F *= I; + R = radd(R,P*Q/F); + } + } + return R; + } +#ifdef USEMODULE + return mmulbys(os_md.muldo,P,Q,[L]); +#else + return mmulbys(muldo,P,Q,[L]); +#endif +} + +def jacobian(F,X) +{ + F=ltov(F);X=ltov(X); + N=length(F); + M=newmat(N,N); + for(I=0;I<N;I++) + for(J=0;J<N;J++) M[I][J]=red(diff(F[I],X[J])); + if(getopt(mat)==1) return M; + return mydet(M); +} + +def hessian(F,X) +{ + X=ltov(X); + N=length(X); + M=newmat(N,N); + for(I=0;I<N;I++){ + G=red(diff(F,X[I])); + for(J=0;J<N;J++) M[I][J]=red(diff(G,X[J])); + } + if(getopt(mat)==1) return M; + return mydet(M); +} + +def wronskian(F,X) +{ + N=length(F); + M=newmat(N,N); + for(I=0;F!=[];F=cdr(F),I++){ + M[I][0]=car(F); + for(J=1;J<N;J++) M[I][J]=red(diff(M[I][J-1],X)); + } + if(getopt(mat)==1) return M; + return mydet(M); +} + +def adj(P,L) +{ + if(type(P) == 4) +#ifdef USEMODULE + return map(os_md.adj,mtranspose(P),L); +#else + return map(adj,mtranspose(P),L); +#endif + if(type(L) == 4 && type(L[0]) == 4) +#ifdef USEMODULE + return fmult(os_md.adj,P,L,[]); +#else + return fmult(adj,P,L,[]); +#endif + L = vweyl(L); + X = L[0]; DX = L[1]; + P = R = subst(P, DX, -DX); + for(I = 1; (R = mydiff(mydiff(R, X), DX)/I) != 0 && I < 100; I++) + P = radd(P,R); + return P; +} + +def laplace1(P,L) +{ + if(type(L) == 4 && type(L[0]) == 4) +#ifdef USEMODULE + return fmult(os_md.laplace,P,L,[]); +#else + return fmult(laplace,P,L,[]); +#endif + L = vweyl(L); + X = L[0]; DX = L[1]; + P = adj(P, L); + return subst(P,X,o_1,DX,X,o_1,DX); +} + +def laplace(P,L) +{ + if(type(L) == 4 && type(L[0]) == 4) +#ifdef USEMODULE + return fmult(os_md.laplace1,P,L,[]); +#else + return fmult(laplace1,P,L,[]); +#endif + L = vweyl(L); + X = L[0]; DX = L[1]; + P = adj(P, L); + return subst(P,X,o_1,DX,-X,o_1,-DX); +} + +def mce(P,L,V,R) +{ + L = vweyl(L); + X = L[0]; DX = L[1]; + P = sftexp(laplace1(P,L),L,V,R); + return laplace(P,L); +} + +def mc(P,L,R) +{ + return mce(P,L,0,R); +} + +def rede(P,L) +{ + Q = ltov(fctr(nm(red(P)))); + P = 1; + if(type(L) < 4) + L = [L]; + if(type(L[0]) < 4) + L = [L]; + for( ; L != []; L = cdr(L)){ + DX = vweyl(car(L))[1]; + for(I = 1; I < length(Q); I++){ + if(mydeg(Q[I][0],DX) > 0){ + P *= (Q[I][0])^(Q[I][1]); + Q[I]=[1,0]; + } + } + } + return P; +} + +def ad(P,L,R) +{ + L = vweyl(L); + DX = L[1]; + K = mydeg(P,DX); + S = mycoef(P,0,DX); + Q = 1; + for(I=1; I <= K;I++){ + Q = muldo(Q,DX-R,L); + S = radd(S,mycoef(P,I,DX)*Q); + } + return S; +} + +def add(P,L,R) +{ + return rede(ad(P,L,R),L); +} + + +def vadd(P,L,R) +{ + L = vweyl(L); + if(type(R) != 4) + return 0; + N = length(R); + DN = 1; Ad = PW = 0; + for( ; R != []; R = cdr(R), PW++){ + DN *= (T=1-car(R)[0]*L[0]); + Ad = Ad*T-car(R)[1]*x^PW; + } + Ad /= DN; + return add(P,L,Ad); +} + +def addl(P,L,R) +{ + return laplace1(add(laplace(P,L),L,R),L); +} + +def cotr(P,L,R) +{ + L = vweyl(L); + X = L[0]; DX = L[1]; + T = 1/mydiff(P,DX); + K = mydeg(P,DX); + S = mysubst(mycoef(P,0,DX), [X, R]); + Q = 1; + for(I = 1; I <= K; I++){ + Q = muldo(Q, K*DX, L); + S = radd(S,mysubst(mycoef(P,I,DX), [X, R])*Q); + } +} + +def rcotr(P,L,R) +{ + return rede(cotr(P,L,R), L); +} + +def muledo(P,Q,L) +{ + if(type(Q)>3) +#ifdef USEMODULE + return mmulbys(os_md.muledo,P,Q,[L]); +#else + return mmulbys(muledo,P,Q,[L]); +#endif + R = P*Q; + L = vweyl(L); + X = L[0]; DX = L[1]; + for(I = F = 1; I < 100; I++){ + P = mydiff(P,DX); + if(P == 0) + break; + Q = myediff(Q,X); + if(Q == 0) + break; + F = rmul(F,I); + R = radd(R,P*Q/F); + } + return R; +} + + +#if 1 +def mulpdo(P,Q,L) +{ + if(type(Q)>3) +#ifdef USEMODULE + return mmulbys(os_md.mulpdo,P,Q,[L]); +#else + return mmulbys(mulpdo,P,Q,[L]); +#endif + if(type(Lim=getopt(lim))!=1) Lim=100; + M = vweyl(car(L)); X= M[0]; DX = M[1]; + L = cdr(L); + R = 0; + for(I = 0; Q != 0 && I <= Lim; I++){ + if(I>Lim){ + mycat(["Over", Lim,"derivations!"]); + break; + } + if(I > 0) + P /= I; + if(length(L)==0) + R = radd(R,P*Q); + else + R = radd(R,mulpdo(P,Q,L)); + if(X==0) break; + P = mydiff(P,DX); + if(P == 0) + break; + Q = mydiff(Q,X); + } + if(I>Lim) mycat(["Over", Lim,"derivations!"]); + return R; +} + +#else +def mulpdo(P,Q,L); +{ + if(type(Q)>3) +#ifdef USEMODULE + return mmulbys(os_md.mulpdo,P,Q,[L]); +#else + return mmulbys(mulpdo,P,Q,[L]); +#endif + if(type(Lim=getopt(lim))!=1) Lim=100; + N = length(L); + VO = newvect(2*N); + VN = newvect(2*N); + for(I = J = 0; I < N; J += 2, I++){ + M = vweyl(L[I]); + P = subst(P, VO[J]=M[0], VN[J]=strtov("o_"+rtostr(V[J])), + VO[J+1]=M[1], VN[J+1] = strtov("o_"+rtostr(V[J+1]))); + } + for(PQ = P*Q, I = 0; I < 2*N; I += 2){ + for(R = PQ, J = 1; J < Lim; J++){ + R = mydiff(R, VN[I+1])/J; + if(R == 0) + break; + R = mydiff(R, VO[I]); + if(R == 0) + break; + PQ = radd(PQ,R); + } + if(I==Lim) mycat(["Over", Lim,"derivations!"]); + PQ = red(subst(PQ,VN[I],VO[I],VN[I+1],VO[I+1])); + } +} +#endif + +def transpdosub(P,LL,K) +{ + Len = length(K)-1; + if(Len < 0 || P == 0) + return P; + KK=K[Len]; + if(type(KK)==4){ + KK0=KK[0]; KK1=KK[1]; + }else{ + L = vweyl(LL[Len]); + KK0=L[1]; KK1=K[Len]; + } + Deg = mydeg(P,KK0); + K1 = reverse(cdr(reverse(K))); + R = transpdosub(mycoef(P,0,KK0),LL,K1); + for(I = M = 1; I <= Deg ; I++){ + M = mulpdo(M,KK1,LL); + S = mycoef(P,I,KK0); + if(Len > 0) + S = transpdosub(S,LL,K1); + R = radd(R,mulpdo(S,M,LL)); + } + return R; +} + +def transpdo(P,LL,K) +{ + if(type(K[0]) < 4) + K = [K]; + Len = length(K)-1; + K1=K2=[]; + if(type(LL)!=4) LL=[LL]; + if(type(LL[0])!=4) LL=[LL]; + if(getopt(ex)==1){ + for(LT=LL, KT=K; KT!=[]; LT=cdr(LT), KT=cdr(KT)){ + L = vweyl(LL[J]); + K1=cons([L[0],car(KT)[0]],K1); + K2=cons([L[1],car(KT)[1]],K2); + } + K2=append(K1,K2); + }else{ + for(J = length(K)-1; J >= 0; J--){ + L = vweyl(LL[J]); + if(L[0] != K[J][0]) + K1 = cons([L[0],K[J][0]],K1); + K2 = cons(K[J][1],K2); + } + P = mulsubst(P, K1); + } + return transpdosub(P,LL,K2); +} + +def translpdo(P,LL,M) +{ + S=length(LL); + L0=newvect(S);L1=newvect(S); + K=newvect(S); + for(J=0;J<S;J++){ + L = vweyl(LL[J]); + L0[J]=L[0]; + L1[J]=L[1]; + } + K=rmul(M,L0); + for(T=[],J=0;J<S;J++) + T=cons([L0[J],K[J]],T); + P=mulsubst(P,T); + K=rmul(myinv(M),L1); + for(T=[],J=0;J<S;J++) + T=cons([L1[J],K[J]],T); + return mulsubst(P,T); +} + +/* + return [R, M, S] : R = M*P - S*Q + deg(R,X) < deg(Q,X) +*/ +def rpdiv(P,Q,X) +{ + if(P == 0) + return [0,1,0]; + DQ = mydeg(Q,X); + CO = mycoef(Q,DQ,X); + S = 0; + while((DP = mydeg(P,X)) >= DQ){ + R = mycoef(P,DP,X)/CO; + S = radd(S,R*X^(DP-DQ)); + P = radd(P, -R*Q*X^(DP-DQ)); + } + Lcm = lcm(dn(S),dn(P)); + Gcd = gcd(nm(S),nm(P)); + return [red(P*Lcm/Gcd), red(Lcm/Gcd),red(S*Lcm/Gcd)]; +} + +def texbegin(T,S) +{ + if(type(Opt=getopt(opt))==7) Opt="["+Opt+"]\n"; + else Opt="\n"; + return "\\begin{"+T+"}"+Opt+S+"%\n\\end{"+T+"}\n"; +} + +def mygcd(P,Q,L) +{ + if((Dvi=getopt(dviout))==3 || Dvi==-3){ /* dviout=3 */ + if((Rev=getopt(rev))!=1) Rev=0; + R=mygcd(P,Q,L|rev=Rev); + if(type(L)<2) Var=0; + else if(type(L)==2){ + Val=L;L=[0,L]; + }else if(type(L)==4){ + L=vweyl(L); + Var=[[L[1],"\\partial"]]; + } + S=mat([P],[Q]);T=mat([R[0]],[0]); + M=mat([R[1],R[2]],[R[3],R[4]]); + if(type(Val)==4) + N=mdivisor(M,L|trans=1)[1]; + else N=myinv(M); + Tb=str_tb(mtotex(S|var=Var),0); + str_tb("&="+mtotex(N|var=Var)+mtotex(T|var=Var)+",\\\\\n",Tb); + str_tb(mtotex(T|var=Var),Tb); + str_tb("&="+mtotex(M|var=Var)+mtotex(S|var=Var)+".",Tb); + Out=str_tb(0,Tb); + if(Dvi<0) return Out; + dviout(Out|eq="align*"); + return 1; + } + if((type(Dvi)==1||Dvi==0) && getopt(rev)!=1) V=[[P,Q]]; + else V=0; + if(L==0){ /* integer case */ + if(type(P) > 1 || type(Q) > 1 || Q==0 /* P <= 0 || Q <= 0 */ + || dn(P) > 1 || dn(Q) > 1) + return 0; + CPP = CQQ = 1; CQP = CPQ = 0; + P1 = P; Q1 = Q; + /* P1 = CPP*P + CPQ*Q + Q1 = CQP*P + CQQ*Q */ + while(Q1 != 0){ + Div1 = idiv(P1,Q1); Div2 = irem(P1,Q1); + if(type(V)==4) V=cons([Div1,Div2],V); + P1 = Q1 ; Q1 = Div2; + TP = CQP; TQ = CQQ; + CQP = CPP-Div1*CQP; + CQQ = CPQ-Div1*CQQ; + CPP = TP; CPQ = TQ; + } + if(V!=0){ + V=reverse(V); + if((DVI=abs(Dvi))==0) return V; + PT=P;QT=Q; + if(DVI==1 || DVI==2){ + Tb=str_tb(0,0); + for(C=0,V=cdr(V);V!=[];V=cdr(V)){ + T=car(V); + if(C++) str_tb(texcr(11),Tb); + if(DVI==1){ + Qs=rtostr(QT); + if(QT<0) Qs="("+Qs+")"; + if(T[1]>0) Qs=Qs+"+"; + if(T[1]!=0) Qs=Qs+rtostr(T[1]); + str_tb(rtostr(PT)+"&=" + +rtostr(T[0])+"\\times"+Qs,Tb); + }else{ + N=mat([T[0],1],[1,0]); + if(C==1){ + str_tb(S0=mtotex(mat([PT],[QT])),Tb); + M=N; + } + str_tb("&=",Tb); + if(C>1) str_tb(mtotex(M),Tb); + str_tb(mtotex(N),Tb); + str_tb(S=mtotex(mat([QT],[T[1]])),Tb); + if(C>1){ + str_tb("=",Tb); + str_tb(mtotex(M=M*N),Tb); + str_tb(S,Tb); + } + } + PT=QT;QT=T[1]; + } + if(DVI==2){ + str_tb(texcr(43)+S+"&=",Tb); + str_tb(mtotex(myinv(M)),Tb); + str_tb(S0,Tb); + } + Out=str_tb(0,Tb); + if(Dvi>0){ + dviout(Out|eq="align*"); + return 1; + } + return Out; + } + } + if(P1<0) return [-P1,-CPP,-CPQ,CQP,CQQ]; + return [P1, CPP, CPQ, CQP, CQQ]; + } + if(type(L) == 2) /* polynomical case */ + L = [0,L]; + if(getopt(rev)==1 && L[0]!=0){ + R=mygcd(adj(P,L),adj(Q,L),L); + return [adj(R[0],L),adj(R[1],L),adj(R[2],L),adj(R[3],L),adj(R[4],L)]; + } + if(type(P) == 3) + P = red(P); + if(type(Q) == 3) + Q = red(Q); + CP=newvect(2,[1/dn(P),0]); CQ=newvect(2,[0,1/dn(Q)]); + P=PT=nm(P); Q =QT=nm(Q); + L = vweyl(L); + while(Q != 0){ + R = divdo(P,Q,L); + if(type(V)==4) V=cons(R,V); +/* R[1] = R[2]*P - R[0]*Q + = R[2]*(CP[0]*P0+CP[1]*Q0) - R[0]*(CQ[0]*P0+CQ[1]*Q0) */ +/* + P(n) |0 1 | P(n-1) + = | | + R[1] |R[2] -R[0]| P(n) + P(n+1) = R[1], P(n) = P, P(n-1) = Q +*/ + P = Q; + Q = R[1]; + { + CT = dupmat(CQ); + CQ = [R[2]*CP[0]-muldo(R[0],CQ[0],L), + R[2]*CP[1]-muldo(R[0],CQ[1],L)]; + CP = CT; + } + } + if(V!=0){ + V=reverse(V); + if((DVI=abs(Dvi))==0) return V; + if(type(L[0])<1) Var=L[1]; + else Var=[L[1],"\\partial"]; + if(DVI==1 || DVI==2){ + Tb=str_tb(0,0); + PT=car(V)[0];QT=car(V)[1]; + for(C=0,V=cdr(V);V!=[];V=cdr(V)){ + T=car(V); + if(C++) str_tb(texcr(11),Tb); + if(DVI==1){ + if(T[2]!=1){ + str_tb(monototex(T[2]),Tb); + str_tb("(",Tb); + str_tb(fctrtos(PT|var=Var,TeX=2),Tb); + str_tb(")&=",Tb); + }else{ + str_tb(fctrtos(PT|var=Var,TeX=2),Tb); + str_tb("&=",Tb); + } + str_tb("(",Tb); + str_tb(fctrtos(T[0]|var=Var,TeX=2),Tb); + str_tb(")(",Tb); + str_tb(fctrtos(QT|var=Var,TeX=2),Tb); + if(T[1]!=0){ + str_tb(")+(",Tb); + str_tb(fctrtos(T[1]|var=Var,TeX=2),Tb); + } + str_tb(")",Tb); + }else{ + N=mat([red(T[0]/T[2]),1],[1,0]); + if(C==1){ + str_tb(S0=mtotex(mat([PT],[QT])|var=Var),Tb); + M=N; + } + str_tb("&=",Tb); + if(C>1) str_tb(mtotex(M),Tb); + str_tb(mtotex(N|var=Var),Tb); + str_tb(S=mtotex(mat([QT],[T[1]])|var=Var),Tb); + if(C>1){ + str_tb("=",Tb); + str_tb(mtotex(M=muldo(M,N,L)|var=Var),Tb); + str_tb(S,Tb); + } + } + PT=QT;QT=T[1]; + } + if(DVI==2){ + FT=fctr(PT); + for(R=1;FT!=[];FT=cdr(FT)){ + if(mydeg(car(FT)[0],L[1])<1) + for(J=car(FT)[1];J>0;J--) R*=car(FT)[0]; + } + if(R!=1){ + str_tb(texcr(79),Tb); + M=muldo(M,mat([R,0],[0,1]),L); + str_tb(mtotex(M|var=Var),Tb); + str_tb(S=mtotex(mat([PT/R],[QT])|var=Var),Tb); + } + str_tb(texcr(43)+S+"&=",Tb); + if(type(Var)==4){ + N=mdivisor(M,L|trans=1); + N=N[1]; + }else + N=myinv(M); + str_tb(mtotex(N|var=Var),Tb); + str_tb(S0,Tb); + } + Out=str_tb(0,Tb); + if(Dvi>0){ + dviout(Out|eq="align*"); + return 1; + } + return Out; + } + } + Q = rede(P,L); + R = red(P/Q); + return [Q,red(CP[0]/R),red(CP[1]/R),red(CQ[0]/R),red(CQ[1]/R)]; +} + +def mylcm(P,Q,L) +{ + Rev=(getopt(rev)==1)?1:0; + if(Rev==1){ + P=adj(P); Q=adj(Q); + } + R = mygcd(P,Q,L); + S=(type(L)<=2)?R[3]*P:muldo(R[3],P,L); + S = nm(S); + if(type(S) <= 1 && type(L) <= 1){ + if(S<0) S = -S; + return S; + } + if(type(L) == 2) + return easierpol(S,L); + S=rede(easierpol(S,L[1]),L); + return (Rev==1)?adj(S):S; +} + +def sftpexp(P,LL,F,Q) +{ + if(type(LL[0]) < 4) + LL = [LL]; + for(L0=L1=[],LT=LL;LT!=[];LT=cdr(LT)){ + W=vweyl(car(LT)); + L0=cons(W,L0); + D=mydiff(F,W[0]); + if(D!=0) L1=cons(W[1]+Q*D/F,L1); + else L1=cons(W[1],L1); + } + return rede(transpdosub(P,L0,L1),L0); +} + +def applpdo(P,F,LL) +{ + if(type(F)>3) +#ifdef USEMODULE + return mmulbys(os_md.applpdo,P,F,[LL]); +#else + return mmulbys(applpdo,P,F,[LL]); +#endif + L = vweyl(LL[0]); + LL = cdr(LL); + Deg = deg(P,L[1]); + S = F; + for(I = R = 0; I <= Deg ; I++){ + if(I > 0) + S = mydiff(S,L[0]); + if(LL == []) + R = radd(R,mycoef(P,I,L[1])*S); + else + R = radd(R,applpdo(mycoef(P,I,L[1]), S, LL)); + } + return R; +} + +def tranlpdo(P,L,M) +{ + N = length(L); + R = size(M); + if(R[0] != N || R[1] != N){ + print("Strange size"); + return; + } + InvM = M; + if(InvM[1] == 0){ + print("Not invertible"); + return; + } + XL = newvector(N); + DL = newvector(N); + for(I = 0; I < 0; I++){ + R = vweyl(L[I]); + XL[I] = R[0]; + DL[I] = R[1]; + } + for(I = 0; I < N; I++){ + for(J = XX = D0 = 0; J < N; J++){ + XX = radd(XX,M[I][J]*XL[J]); + DD = radd(DD, red(InvM[0][I][J]/InvM[1])*DL[J]); + P = mysubst(P,[[XL[I],XX],[DL[I],DD]]); + } + } + return P; +} + +def divdo(P,Q,L) +{ + if(L==0){ + R=P-idiv(P,Q)*Q; + if(R<0){ + if(Q>0) R+=Q; + else R-=Q; + } + return [(P-R)/Q,R,1]; + } + L = vweyl(L); + if(getopt(rev)==1){ + R=divdo(adj(P,L),adj(Q,L),L); + return [adj(R[0],L),adj(R[1],L),R[2]]; + } + X = L[0]; DX = L[1]; + S = 0; + M = 1; + I = mydeg(Q,DX); + CQ = mycoef(Q,I,DX); + while((J=mydeg(P,DX)) >= I){ + C = mycoef(P,J,DX); + SR = red(C/CQ); + if(dn(SR) != 1){ + M *= dn(SR); + P *= dn(SR); + S *= dn(SR); + SR = nm(SR); + } + P -= muldo(SR*(DX)^(J-I),Q,L); + S += SR*(DX)^(J-I); + } + return [S,P,M]; +} + +def qdo(P,Q,L) +{ + L = vweyl(L); DX = L[1]; OD = deg(P,DX); + V = newvect(OD+1); + for(I = 0; I <= OD; I++){ + if(I) + Q = muldo(DX,Q,L); + S = divdo(Q,P,L); + V[I] = S[1]*DX-S[2]*zz^I; + } + for(K = [], I = OD; I >= 0; I--) + K = cons(DX^(I+1), K); + R = lsol(V,K); + S = length(R); + for(I = P1 = 0; I < S; I++){ + if(type(R[I]) < 4 && mydeg(R[I],DX) == 0 && R[I] != 0 + && (mydeg(R[I],zz) <= mydeg(P,DX))) + P1 = R[I]; + else if(type(R[I]) == 4 && R[I][0] == DX) + P2 = R[I][1]; + } + T=fctr(P1); + for(I=0, S=length(T), P1=1; I<S; I++){ + if(mydeg(T[I][0],zz) > 0) + P1 *= T[I][0]^(T[I][1]); + } + return subst([P1,P2],zz,DX); +} + +def sqrtdo(P,L) +{ + L = vweyl(L); + P = toeul(P,L,0); + V = -1; + for(R = 0, Ord = mydeg(P,L[1]); Ord >= 0; Ord--){ + Q = coef(P,Ord,L[1]); + M = mydeg(Q,L[0]); + N = mymindeg(Q,L[0]); + if(V < 0) + V = M+N; + else if(V != M+N){ + print("Cannot be transformed!"); + return; + } + Q = tohomog(red(Q/L[0]^N), [L[0]], z_z); + if(irem(Ord,2)) + B = x-z_z; + else + B = x+z_z; + Q = substblock(Q,x,B,z_zz); + if(mydeg(Q,x) > 0){ + print("Cannot be transformed!"); + return; + } + R += mysubst(Q,[z_zz,x])*L[1]^Ord; + } + return fromeul(R,L,0); +} + +def ghg(A,B) +{ + R = dx; + while(length(B)>0){ + R = muldo(x*dx+car(B),R,[x,dx]); + B = cdr(B); + } + T = 1; + while(length(A)>0){ + T = muldo(x*dx+car(A),T,[x,dx]); + A = cdr(A); + } + return R-T; +} + +def ev4s(A,B,C,S,T) +{ + R4 = x^2*(x-1)^2; + R3 = x*(x-1)*((2*A-2*B-8)*x-2*A+5); + R2 = (-3/2*(A^2+B^2)+3*A*B+9*A-9*B-29/2+1/4*(S^2+T^2))*x^2 + +(5*A^2/2-13*A-3*A*B+B^2/2+7*B-C^2+C+35/2 - 1/4*(S^2+T^2))*x + - (2*A+2*C-5)*(2*A-2*C-3)/4; + R1 = 1/4*(A-B-2)*(2*A^2-4*A*B-8*A+2*B^2+8*B+10-S^2-T^2)*x + +15/4+3*B^2/4-C^2/2+11*A^2/4 - 11*A/2+3*B+B*C-7*A*B/2+C/2-A*B^2/2 +#if 1 + + A^2*B +#endif + - B*C^2 - A^3/2+(2*A-3)*(S^2+T^2)/8; +/* OK? for the above term added */ + R0 = -(A-B-1-S)*(A-B-1+S)*(A-B-1-T)*(A-B-1+T)/16; + return (R4*dx^4-R3*dx^3-R2*dx^2-R1*dx-R0); +} + +def b2e(A,B,C,S,T) +{ + R4 = x^2*(x-1)^2; + R3 = x*(x-1)*(2*x-1)*(2*c-5); + R2 = (-6*C^2+24*C-25+1/2*S^2+1/2*T^2)*x^2 + +(6*C^2-24*C+25-1/2*S^2-1/2*T^2-A^2+B^2+A-B)*x + +A^2-C^2-A+4*C-15/4; + R1 = (2*C-3)*(2*C^2-6*C+5-1/2*S^2-1/2*T^2)*x + +(2*C-3)*(-C^2+3*C+1/2*A^2-1/2*B^2+1/2*B-1/2*A-5/2+1/4*S^2+1/4*T^2); + R0 = -(2-2*C+S+T)*(2-2*C-S-T)*(2-2*C+S-T)*(2-2*C-S+T)/16; + return (R4*dx^4-R3*dx^3-R2*dx^2-R1*dx-R0); +} + + +/* + T^m = T(T-1)....(T-m+1) + f(t) -> g(t) + + f(t) = a_mt^m + ... + a_1t+a_0 + g(x*dx) = a_m*x^m*dx^m + ... + a_1*x*dx+a_0 + + ret: x(x-1)...(x-i+1) + */ +def sftpow(X,I) +{ + R = 1; + for(J=0;J<I;J++) + R *= X-J; + return(R); +} + +/* + ret: x(x+K)(x+2*k)...(x+(i-1)*k) +*/ +def sftpowext(X,I,K) +{ + R = 1; + for(J=0;J<I;J++) + R *= X+K*J; + return(R); +} + +def polinsft(F,A) +{ + R = 0; + while(F != 0){ + D = mydeg(F,A); + C = mycoef(F,D,A); + R += C*A^D; + F -= C*sftpow(A,D); + } + return R; +} + +def pol2sft(F,A) +{ + S=getopt(sft); + if(type(S)<0 || type(S)>2) S=1; + R = 0; + for(I = mydeg(F,A); I >= 0; I--) + R = R*(A-I*S) + mycoef(F,I,A); + return R; +} + +def binom(P,N) +{ + if(type(N)!=1 || N<0) return 1; + for(S=1;N>0;N--,P-=1) S*=P/N; + return red(S); +} + +def expower(P,R,N) +{ + if(type(N)!=1 || N<0) return 0; + for(S=S0=K=1;K<=N;K++,R-=1){ + S0*=P*R/K;S+=S0; + } + return red(S); +} + +def seriesHG(A,B,X,N) +{ + if(type(N)!=1 || N<0) return 0; + if(type(X)<4){ + for(K=0,S=S0=1;K<N;K++){ + for(T=A; T!=[]; T=cdr(T)) S0*=car(T)+K; + for(T=B; T!=[]; T=cdr(T)) S0/=car(T)+K; + S0=red(S0*X/(K+1)); + DN=dn(S0); + S=red((red(S*DN)+nm(S0))/DN); + } + return S; + } + S=0; + for(K=0;K<=N;K++){ + for(I=0;I<=N-K;I++){ + C=1/sftpowext(1,I,1)/sftpowext(1,J,1); + for(T=A[0];T!=[];T=cdr(T)) C*=sftpowext(car(T),I+K,1); + for(T=A[1];T!=[];T=cdr(T)) C*=sftpowext(car(T),I,1); + for(T=A[2];T!=[];T=cdr(T)) C*=sftpowext(car(T),K,1); + for(T=B[0];T!=[];T=cdr(T)) C/=sftpowext(car(T),I+K,1); + for(T=B[1];T!=[];T=cdr(T)) C/=sftpowext(car(T),I,1); + for(T=B[2];T!=[];T=cdr(T)) C/=sftpowext(car(T),K,1); + S+=red(C*X[0]^I*X[1]^K); + } + } + return S; +} + +def evalred(F) +{ + Opt=getopt(opt); + if(type(Opt)!=4){ + Opt=[]; + }else if(length(Opt)==2 && type(Opt[0])!=4) Opt=[Opt]; + for(;;){ + G=mysubst(F,[[tan(0),0],[asin(0),0],[atan(0),0],[sinh(0),0],[tanh(0),0], + [log(1),0],[cosh(0),1],[exp(0),1]]); + for(Rep=Opt; Rep!=[]; Rep=cdr(Rep)) + G=subst(G,car(Rep)[0],car(Rep)[1]); + Var=vars(G); + for(V=Var; V!=[]; V=cdr(V)){ + if(!(VV=args(CV=car(V)))) continue; + if((functor(CV)==sin||functor(CV)==cos)){ + P=2*red(VV[0]/@pi); + if(functor(CV)==sin) P=1-P; + if(isint(P)){ + if(iand(P,1)) G=subst(G,CV,0); + else if(!iand(P,3)) G=subst(G,CV,1); + else G=subst(G,CV,-1); + continue; + } + if(isint(P*=3/2)){ + if(iand(P,3)==1) G=subst(G,CV,1/2); + else G=subst(G,CV,-1/2); + } + } + for(;VV!=[];VV=cdr(VV)) + if(car(VV)!=(TV=evalred(car(VV)))) G=subst(G,car(VV),TV); + if(functor(CV)!=pow || (args(CV)[0])!=1) continue; + G=subst(G,CV,1); + } + if(G==F) return F; + F=G; + } +} + +def seriesMc(F,N,V) +{ + if(type(V)<4) V=[V]; + V=reverse(V); + L=length(V); + if(type(Opt=getopt(evalopt))!=4) Opt=[]; + P=newvect(L); + G=newvect(L+1); + G[0]=F; + for(I=0;I<L;I++) + G[I+1]=eval(evalred(subst(G[I],V[I],0)|opt=Opt)); + R=G[L]; + for(;;){ + for(M=0,I=0;I<L;I++){ + M+=P[I]; + if(M==N) break; + } + if(M<N){ + P[L-1]++; + G[L-1]=mydiff(G[L-1],V[L-1]); + G[L]=eval(evalred(mysubst(G[L-1],[V[L-1],0])|opt=Opt)); + }else{ + if(I--==0) break; + P[I]++; + G[I]=mydiff(G[I],V[I]); + while(I++<L){ + G[I]=eval(evalred(mysubst(G[I-1],[V[I-1],0])|opt=Opt)); + if(I<L) P[I]=0; + } + } + K=1; + for(I=0;I<L;I++) K*=V[I]^P[I]/fac(P[I]); + R+=G[L]*K; + } + return R; +} + +def seriesTaylor(F,N,V) +{ + G=F; + if(isvar(V)) V=[V]; + if(length(V)==2 && type(car(V))!=4 && !isvar(V[1])) V=[V]; + for(V0=V1=[];V!=[];V=cdr(V)){ + if(type(T=car(V))!=4) T=[T]; + V0=cons(X=car(T),V0); + if(length(T)==1 || T[1]==0){ + V1=cons(X,V1);continue; + } + S=my_tex_form(-T[1]); + if(str_char(S,0,"-")!=0) S="+"+S; + S="("+my_tex_form(X)+S+")"; + V1=cons([X,S],V1); + F=red(subst(F,T[0],T[0]+T[1])); + } + V0=reverse(V0);V1=reverse(V1); + F=seriesMc(F,N,V0|option_list=getopt()); + if(getopt(frac)==0) F=frac2n(F); + T=getopt(dviout); + if(type(T)!=1) T=0; + F=fctrtos(F|var=V1,rev=1,TeX=(T==0||T==2)?2:3); + if(getopt(small)==1) F=str_subst(F,"\\frac{","\\tfrac{"); + if(T<0 || T==1) F="\\begin{align}\\begin{split}\n"+ + my_tex_form(G)+"&="+F+"+\\cdots\n\\end{split}\\end{align}\n"; + if(T==1) dviout(F); + else if(T==1) dviout(F|eq=4); + return F; +} + +def toeul(F,L,V) +{ + L = vweyl(L); + X = L[0]; DX = L[1]; + I = mydeg(F,DX); + if(V == "infty"){ + for(II=I; II>=0; II--){ + J = mydeg(P=mycoef(F,I,DX),X); + if(II==I) S=II-J; + else if(P!=0 && II-J>S) S=II-J; + } + F *= X^S; + R = 0; + for( ; I >= 0; I--) + R += red((mysubst(mycoef(F,I,DX),[X,1/X])*(x*DX)^I)); + return(subst(pol2sft(R,DX),DX,-DX)); + } + F = subst(F,X,X+V); + for(II=I; II>=0; II--){ + J = mymindeg(P=mycoef(F,II,DX),X); + if(II==I) S=II-J; + else if(P!=0 && II-J>S) S=II-J; + } + F *= X^S; + R = 0; + for( ; I >= 0; I--) + R += (red(mycoef(F,I,DX)/X^I))*DX^I; + return pol2sft(R,DX); +} + +/* +def topoldif(P,F,L) +{ + L = vweyl(L); + P = nm(red(P)); + while(deg(P,L[1]) > 0){ + R = coef(P,0,L[0]); + Q = red((P-R)/(F*L[0]); + P = nm(Q)*zz+F*R*dn(Q); + } +} +*/ + +def fromeul(P,L,V) +{ + if(P == 0) + return 0; + L = vweyl(L); + X = L[0]; DX = L[1]; + I = mydeg(P,DX); + if(V == "infty"){ + P = subst(P,DX,-DX); + J = mydeg(P,X); + P = red(mysubst(P,[X,1/X])*X^J); + } + R = mycoef(P,0,DX); + S = 1; + for(S = J = 1; J <= I; J++){ + S = DX*(S*X + mydiff(S,DX)); + R += mycoef(P,J,DX)*S; + } + while(mycoef(R,0,X) == 0) + R = tdiv(R,X); + if(V != "infty" && V != 0) + R = mysubst(R,[X,X-V]); + return R; +} + +def sftexp(P,L,V,N) +{ + L = vweyl(L); DX = L[1]; + P = mysubst(toeul(P,L,V),[DX,DX+N]); + return fromeul(P,L,V); +} + + +def fractrans(P,L,N0,N1,N2) +{ + L = vweyl(L); + if(N2 != "infty"){ + if(N0 == "infty") + N0 = 0; + else + N0 = red(1/(N0-N2)); + if(N1 == "infty") + N1 = 0; + else + N1 = red(1/(N1-N2)); + P = mysubst(P,[L[0],L[0]+N2]); + P = fromeul(toeul(P,L,"infty"),L,0); + } + if(N0 != 0){ + P = mysubst(P,[L[0],L[0]+N0]); + N1 -= N0; + } + if(N1 != 1) + P = mysubst(P,[[L[0],L[0]/N1],[L[1],L[1]*N1]]); + return P; +} + +def soldif(P,L,V,Q,N) +{ + L = vweyl(L); X = L[0]; DX = L[1]; + P = mysubst(toeul(P,L,V),[DX,DX+Q]); + DEG = mydeg(P,X); + P0 = newvect(DEG+1); + for(I = 0; I <= DEG; I++) + P0[I] = coef(P,I,X); + if(P0[0] == 0) + return 0; + if(subst(P0[0],DX,0) != 0){ + mycat([Q,"is not the exponent at", V])$ + return 0; + } + R = newvect(N+1); + R[0] = 1; + for(I = 1; I <= N; I++){ + for(S = 0, K = 1; K <= DEG && K <= I; K++) + S += mysubst(P0[K],[DX,I-K])*R[I-K]; + S = red(S); + M = mysubst(P0[0],[DX,I]); + if(M != 0){ + R[I] = -red(S/M); + if(R1 != 0){ + for(S = 0, K = 1; K <= DEG && K <= I; K++) + S += mysubst(P0[K],[DX,I-K])*R1[I-K] + + mysubst(P1[K],[DX,I-K])*R[I-K]; + R1[I] = -red(S/M); + } + }else{ + if(S == 0){ + if(R1 != 0){ + for(S = 0, K = 1; K <= DEG && K <= I; K++) + S += mysubst(P0[K],[DX,I-K])*R1[I-K] + + mysubst(P1[K],[DX,I-K])*R[I-K]; + } + if(S == 0) + continue; + } + R1 = newvect(N+1); + for(K = 0; K < I; K++){ + R1[K] = R[K]; + R[K] = 0; + } + R1[I] = 0; + P1 = newvect(DEG); + for(K = 0; K <= DEG; K++) + P1[K] = mydiff(P0[K], DX); + M = mysubst(P1[0],[DX,I]); + if(M == 0){ + cat(["multiple log at ", I])$ + return 0; + } + R[I] = -red(S/M); + } + } + if(R1 != 0) + return [R1, R]; + else + return R; +} + +def chkexp(P,L,V,Q,N) +{ + L = vweyl(L); X = L[0]; DX = L[1]; + P = mysubst(toeul(P,L,V),[DX,DX+Q]); + P = fromeul(P,L,0); + D = mydeg(P,DX); + Z = mindeg(mycoef(P,D,DX), X) - (D-N); + R = []; + for(I = 0; I < Z; I++){ + S = mycoef(P,I,X); + if(S != 0){ + for(J = mydeg(S,DX); J >= 0; J--){ + T = mycoef(S,J,DX); + if(T != 0) + R = cons(T,R); + } + } + } + return R; +} + + +def sqrtrat(P) +{ + if(P==0) return 0; + if(type(P)==3||type(P)==2){ + P=red(P); + if(imag(dn(P))!=0||imag(nm(P))!=0){ + if(imag(dn(P))==0&&real(P)!=0){ + F=red(imag(P)/real(P)); + if(F==3^(1/2)||F==-3^(1/2)){ + if(eval(real(P))<0) + return -real(P)+imag(P)*@i; + else{ + if(eval(imag(P))>0) return imag(P)+real(P)*@i; + else return -imag(P)-real(P)*@i; + } + } + } + return []; + } + F=fctr(dn(P)); + R=sqrtrat(car(F)[0]); + for(F=cdr(F);F!=[];F=cdr(F)){ + if(!iand(car(F)[1],1)) R*=car(F)[0]^(car(F)[1]/2); + else return []; + } + F=fctr(nm(P)); + R=sqrtrat(car(F)[0])/R; + for(F=cdr(F);F!=[];F=cdr(F)){ + if(!iand(car(F)[1],1)) R*=car(F)[0]^(car(F)[1]/2); + else return []; + } + return R; + } + if(ntype(P)==4){ + P0=real(P);P1=imag(P)/2; + X=makenewv(P); + for(R=fctr(X^4-P0*X^2-P1^2);R!=[];R=cdr(R)){ + RT=car(R)[0]; + if(deg(RT,X)==1){ + X=-mycoef(RT,0,X)/mycoef(RT,1,X); + return X+P1/X*@i; + } + if(deg(RT,X)==2){ + if((D=mycoef(RT,1,X)^2-4*mycoef(RT,2,X)*mycoef(RT,0,X))<0) continue; + X=(-mycoef(RT,1,X)+sqrtrat(D))/(2*mycoef(RT,2,X)); + return X+P1*sqrt2rat(1/X)*@i; + } + } + D=P0^2+4*P1^2; + if(P1>0) return ((sqrtrat(D)+P0)/2)^(1/2)+((sqrtrat(D)-P0)/2)^(1/2)*@i; + return ((sqrtrat(D)+P0)/2)^(1/2)-((sqrtrat(D)-P0)/2)^(1/2)*@i; + }else if(ntype(P)!=0) return []; + if(P==1) return P; + Dn=dn(P);Nm=nm(P);C=R=1; + N=pari(factor,Dn); + if(N){ + for(II=car(size(N))-1;II>=0;II--){ + if(iand(K=N[II][1],1)){ + R*=N[II][0]; + K++; + } + C/=N[II][0]^(K/2); + } + } + N=pari(factor,Nm); + if(N){ + for(II=car(size(N))-1;II>=0;II--){ + if(N[II][0]==-1){ + C*=@i; + continue; + } + K=N[II][1]; + if(iand(K,1)){ + R*=N[II][0]; + K--; + } + if(K!=0) C*=N[II][0]^(K/2); + } + } + if(R!=1) C*=R^(1/2); + return C; +} + +def fctri(F) +{ + R=(iscoef(F,os_md.israt))?fctr(F):[[1,1],[F,1]]; + if(!iscoef(F,os_md.iscrat)||chkfun("af_noalg",0)==0) return R; + X=makenewv(vars(F)); + for(S=[];R!=[];R=cdr(R)){ + if(length(Var=vars(R0=car(R)[0])) == 1 && (D=mydeg(R0,Var=car(Var))) > 0){ + if(imag(T=mycoef(R0,D,Var))!=0) R0/=T; + T=af_noalg(real(R0)+imag(R0)*X,[[X,X^2+1]]); + if(length(T)>1||T[0][1]>1){ + T=subst(T,X,@i); + for(; T!=[];T=cdr(T)){ + if(vars(T[0])!=[]) + S=cons([car(T)[0],car(T)[1]*car(R)[1]],S); + } + continue; + } + } + S=cons(R[0],S); + } + return reverse(S); +} + +def getroot(F,X) +{ + S=[]; + if(type(Cpx=getopt(cpx))!=1) Cpx=0; + M=getopt(mult); + if(type(F) == 3) + F = nm(red(F)); + for(R=fctri(F); length(R)>0; R = cdr(R)){ + T=car(R); + P=car(T); + I=car(cdr(T)); + if(mydeg(P,X)>0){ + if(mydeg(P,X)==1){ + C = mycoef(P,1,X); + P = X - red(P/C); + }else if(mydeg(P,X)==2 && Cpx>0){ + C2=mycoef(P,2,X);C1=mycoef(P,1,X);C0=mycoef(P,0,X); + C=sqrt2rat(C1^2-4*C0*C2); + C0=[]; + if(type(C)==0&&ntype(C)==0&&pari(issquare,-C)) C0=sqrt(C); + else if(Cpx>1) C0=sqrtrat(C); + if(C0==[]&&Cpx>2) C0=C^(1/2); + if(C0!=[]){ + if(M==1) + S=cons([I,sqrt2rat((-C1+C0)/(2*C2))],S); + else{ + for(II=I; II>0; II--) + S=cons(sqrt2rat((-C1+C0)/(2*C2)),S); + } + P=sqrt2rat((-C1-C0)/(2*C2)); + } + }else if(mydeg(P,X)==3 && Cpx>1){ + Omg=(-1+3^(1/2)*@i)/2; + PP=P/mycoef(P,3,X); + C2=mycoef(PP,2,X)/3; + PP=subst(PP,X,X-C2); + if((C1=mycoef(PP,1,X))==0){ + C0=mycoef(PP,0,X); + if(real(C0)==0||imag(C0)==0){ + if(real(C0)==0){ + PP=getroot(X^3+imag(C0),X); + if(length(PP)==3){ + for(;PP!=[];PP=cdr(PP)){ + if(imag(PP[0])==0){ + C0=PP[0]*@i; + break; + } + } + if(PP==[]) C0=0; + } + }else{ + if(C0>0) C0=C0^(1/3); + else C0=-(-C0)^(1/3); + } + if(C0!=0){ + if(M==1){ + S=cons([I,C0-C2],S); + S=cons([I,C0*Omg-C2],S); + S=cons([I,C0*(-1-Omg)-C2],S); + }else{ + for(II=I; II>0; II--){ + S=cons(C0-C2,S); + S=cons(C0*Omg-C2,S); + S=cons(C0*(-1-Omg)-C2,S); + } + } + continue; + } + } + } + if(Cpx>2){ + Q=X^2+(mycoef(PP,1,X)/3)*X+mycoef(PP,0,X)^3; + SQ=getroot(Q,X|cpx=2); + SQ=SQ[0]^(1/3);SQ2=mycoef(PP,0,X)/SQ; + if(M==1){ + S=cons([I,SQ+SQ2-C2],S); + S=cons([I,SQ*Omg+SQ2*(-1-Omg)-C2],S); + S=cons([I,SQ*(-1-Omg)+SQ2*Omg-C2],S); + }else{ + for(II=I; II>0; II--){ + S=cons(SQ+SQ2-C2,S); + S=cons(SQ*Omg+SQ2*(-1-Omg)-C2,S); + S=cons(SQ*(-1-Omg)+SQ2*Omg-C2,S); + } + } + continue; + } + }else if(mydeg(P,X)==4 && Cpx>0){ + C2=mycoef(P,3,X)/(4*mycoef(P,4,X)); + PP=subst(P,X,X-C2); + if(mycoef(PP,1,X)==0){ + PP=mycoef(PP,4,X)*X^2+mycoef(PP,2,X)*X+(SQ2=mycoef(PP,0,X)); + SQ=getroot(PP,X|cpx=2); + if(length(SQ)==2){ + if((C0=sqrtrat(SQ[0]))==[]){ + if(mycoef(PP,1,X)==0){ + if(SQ2<0) C0=(-SQ2)^(1/4); + else C0=SQ2^(1/4)*(1+@i)/2; + } + else if(Cpx>2) C0=SQ[0]^(1/2); + else C0=0; + } + if((C1=sqrtrat(SQ[1]))==[]){ + if(mycoef(PP,1,X)==0) C1=-C0; + else C1=SQ[1]^(1/2); + } + if(C0!=0){ + if(M==1) + S=append([[I,C0-C2],[I,-C0-C2],[I,C1-C2],[I,-C1-C2]],S); + else{ + for(II=I; II>0; II--) + S=append([C0-C2,-C0-C2,C1-C2,-C1-C2],S); + } + continue; + } + } + }else{ + PP/=mycoef(PP,4,X); + CC=mycoef(PP,2,X);C1=mycoef(PP,1,X);C0=mycoef(PP,0,X); + SQ=getroot(X*(CC+X)^2-4*C0*X-C1^2,X|cpx=Cpx); + if(length(SQ)>1){ + SQ=sqrt2rat(SQ[0]); + SQ2=getroot(X^2-SQ,X|cpx=Cpx); + if(length(SQ2)>1){ + C1=SQ2[0]*X-C1/SQ2[0]/2; + C0=getroot(X^2+CC/2+SQ/2+C1,X|cpx=Cpx); + C1=getroot(X^2+CC/2+SQ/2-C1,X|cpx=Cpx); + if(length(C0)>1&&length(C1)>1){ + C0=[sqrt2rat(C0[0]-C2),sqrt2rat(C0[1]-C2), + sqrt2rat(C1[0]-C2),sqrt2rat(C1[1]-C2)]; + if(M==1) for(II=0;II<4;II++) S=cons([I,C0[II]],S); + else for(II=I; II>0; II--) S=append(C0,S); + continue; + } + } + } + } + } + if(M==1) + S=cons([I,P],S); + else for( ; I>0; I--) S=cons(P,S); + } + } + S=qsort(S); + if(M==1) S=reverse(S); + return S; +} + +def expat(F,L,V) +{ + L = vweyl(L); + if(V == "?"){ + Ans = []; + + F = nm(red(F)); + S = fromeul(toeul(F,L,"infty"),L,0); + S = mycoef(S,mydeg(S,L[1]),L[1]); + if(mydeg(S,L[0]) > 0) + Ans = cons(["infty", expat(F,L,"infty")],Ans); + + S = mycoef(F,mydeg(F,L[1]), L[1]); + R = getroot(S,L[0]); + for(I = 0; I < length(R); I++){ + if(I > 0 && R[I-1] == R[I]) + continue; + if(mydeg(R[I], L[0]) <= 0) + Ans = cons([R[I], expat(F,L,R[I])], Ans); + else + Ans = cons([R[I]], Ans); + } + return Ans; + } + return getroot(subst(toeul(F,L,V),L[0],0),L[1]); +} + +def polbyroot(P,X) +{ + R = 1; + while(length(P)){ + R *= X-car(P); + if(type(R)>2) R = red(R); + P = cdr(P); + } + return R; +} + +def polbyvalue(P,X) +{ + R = 1; S = 0; + while(length(P)){ + T = car(P); + V0 = T[1] - mysubst(S,[X,T[0]]); + if(V0 != 0){ + if(type(R) > 2) R = red(R); + V1 = mysubst(R,[X,T[0]]); + if(V1 == 0){ + erno(0); + return 0; + } + S += (V0/V1)*R; + if(type(S) > 2) S = red(S); + } + R *= X - T[0]; + P = cdr(P); + } + return S; +} + + +def pcoef(P,L,Q) +{ + if(L==0) + return 1; + Coef=TP=0; + if(type(Q)>=4){ + TP=1; + V=Q[0]; + if(type(V)==4) + V=ltov(V); + else V=dupmat(V); + N=length(V); + if(type(Q[1])==5) MR=dupmat(Q[1]); + else{ + MR=newvect(N); + for(K=Q[1], I=0; I< N; I++){ + MR[I] = car(K); + K = cdr(K); + } + } + }else{ + V=ltov(vars(P)); + N=length(V); + MR=newvect(N); + for(I=0;I<N;I++){ + MR[I]=mydeg(Q,V[I]); + Q=mycoef(Q,MR[I],V[I]); + } + if(type(Q)>1) return 0; + } + if(L==1){ + for(I=0;I<N;I++) + P=mycoef(P,MR[I],V[I]); + return P; + } + for(I=1;I<N;I++){ /* sorted by required degrees */ + for(K1=MR[I],K2=V[I],J=I-1; J>=0 && MR[J]<K1; J--); + for(II=I-1;II>J;II--){ + MR[II+1]=MR[II];V[II+1]=V[II]; + } + MR[II+1]=K1;V[II+1]=K2; + } + for(NN=N; N>0 && MR[N-1]==0; N--); + Mon=[];Coe=[];Q=P; + while(Q!=0){ + M=newvect(N); + for(R=Q,F=I=0,MT=1;I<NN;I++){ + K=mydeg(R,V[I]); + R=mycoef(R,K,V[I]); + if(I<N) M[I]=K; + if(K>0) MT*=V[I]^K; + if(K>MR[I]) F=1; + } + Q -= R*MT; + if(F==0){ + Mon=cons(M,Mon); + Coe=cons(R,Coe); + } + } + Mon=ltov(reverse(Mon)); + Coe=ltov(reverse(Coe)); + Len=length(Mon); + S=newvect(Len); + for(JL=0; JL<Len;JL++){ + if(L*Mon[JL][0]<MR[0]) break; + } + S[0]=L; + + K0=Mon[0][0]; + K=L*K0-MR[0]; + for(I=II=0;II<Len && K>=0;II++){ + if((K1=K0-Mon[0][II])>0){ + while(K>K1 && S[I]>0){ + S[I]--;S[II]++; + K-=K1; + I=II; + K0=Mon[0][II]; + } + }else break; + } + + I=0; + while(1){ + for(T=T0=J=JP=0; J<Len; J++){ + if(S[J]!=0){ + if(T0==0 && J>=JL) return Coef; + JP=J;T0=1; + T+=S[J]*Mon[J][I]; + } + } + if(T==MR[I]){ + if(++I<N) continue; + for(TT=1,J=1; J<=L; J++) /* find a solution */ + TT*=J; + for(J=0;J<Len;J++){ + if(S[J]!=0){ + TT*=Coe[J]^S[J]; + for(II=S[J]; II>1; II--) + TT/=II; + } + } + Coef+=TT; + if(TP==1 && type(Coef)==3) Coef=red(Coef); + if(JP<Len-2 && S[JP]>1){ + S[JP]-=2;S[JP+1]++;S[JP+2]++; + }else{ + for(JT=JP-1;JT>=0&&S[JT]==0;JT--); + if(JT<0) break; + if(JT==JP-1){ + S[JT]--; + if(JP<Len-1) + S[JP+1]++; + else + S[JP]++; + }else{ + S[JT]--; + S[JT+1]+=S[JP]+1; + S[JP]=0; + } + } + I=0; + continue; + } + if(JP<Len-1){ + for(JP1=JP+1;JP1<Len-1;JP1++){ + if(Mon[JP1][I]!=Mon[JP][I]) break; + } + + if(I>0 && Mon[JP1][0] < Mon[JP][0]){ + S[JP]--;S[Len-1]++;JP=JP-1; + }else{ + + S[JP]--; + if(JP1<Len){ + S[JP1]++; + }else{ + S[JP1-1]++; + } + } + } + if(JP==Len-1){ + for(JT=JP-1;JT>=0 && S[JT]==0;JT--); + if(JT<0) break; + S[JT]--; + if(JT==JP-1){ + S[JP]++; + }else{ + S[JT+1]+=S[JP]+1; + S[JP]=0; + } + } + I=0; + } + return Coef; +} + +def prehombf(P,Q) +{ + if((Mem=getopt(mem))!=1 && Mem!=-1) + return prehombfold(P,Q); + if(Q==0) Q=P; + V=ltov(vars(P)); + N=length(V); + for(I=1;I<N;I++){ /* sorted by required degrees */ + for(K=mydeg(P,V[I]),K1=V[I],J=I-1; J>=0 && mydeg(P,V[J])<K; J--); + for(II=I-1;II>J;II--) V[II+1]=V[II]; + V[II+1]=K1; + } + S=newvect(N);T=newvect(N);U=newvect(N); + for(R=P,M=1,Deg=I=0;I<N;I++){ /* extreme vector */ + Deg+=(S[I]=mydeg(R,V[I])); + R=mycoef(R,S[I],V[I]); + } + DR=[[-1,0]]; + if((R1=N/Deg)!=1){ + DR=cons([-R1,0],DR); + Sft=1; + }else Sft=0; + if(Deg%2==0) Sg=1; + else Sg=-1; + for(I=0,R=R2=1,QQ=Q; 2*I+Sft < Deg; I++){ + if(Mem==-1){ + print(I+1,0);print("/",0);print(idiv(Deg-Sft+1,2),0);print(" ",2); + } + Coef=0; + Q=QQ; + while(Q!=0){ + for(R=Q,J=0,RR=1;J<N;J++){ + T[J]=mydeg(R,V[J]); + R=mycoef(R,T[J],V[J]); + if(T[J]>0) RR*=V[J]^T[J]; + } + Q-=R*RR; + for(J=0,CC=R;J<N;J++){ + U[J]=I*S[J]+T[J]; + for(II=0; II<T[J]; II++) + CC*=(U[J]-II); + } + CC*=pcoef(P,I+1,[V,U]); + if(Mem==-1) print("*",2); + Coef+=CC; + } + DR=cons([I,Coef],DR); + DR=cons([-R1-1-I,Sg*Coef],DR); + if(Mem==-1) print(""); + } + P = polbyvalue(DR,s); + return fctr(P); +} + +def prehombfold(P,Q) +{ + V = vars(P); + if(Q==0) Q=P; + for(Deg=0, R=P, V1=V, DD=[]; V1!=[]; V1=cdr(V1)){ + VT = car(V1); + D = mydeg(R,VT); + R = mycoef(R,D,VT); + Deg += D; + X = makev(["d",VT]); + Q = subst(Q,VT,X); + DD=cons([VT,X],DD); + } + DR=[[-1,0]]; + NV=length(V); + if((R1=NV/Deg)!=1){ + DR=cons([-R1,0],DR); + Sft=1; + }else + Sft=0; + if(Deg%2==0) + Sg=1; + else Sg=-1; + for(I = 0, R=R2=1; 2*I+Sft < Deg; I++){ + R = R2; + R2 = R*P; + S = appldo(Q,R2,DD); + QQ = sdiv(S,R); + DR=cons([I,QQ],DR); + DR=cons([-R1-1-I,Sg*QQ],DR); + } + P = polbyvalue(DR,s); + return fctr(P); +} + +def sub3e(P0,P1,P2,N0,N1,N) +{ + R = x^N0*(x-1)^N1*dx^N; + for(V = I = 1, J = 1; I <= N; I++){ + S = 0; + M = N-I; + if(I <= N0){ + T = mycoef(P0,N0-I,x); + S += T; + R += T*x^(N0-I)*(x-1)^N1*dx^M; + K1 = N0-I+1; + }else + K1 = 0; + if(I <= N1){ + T = mycoef(P1,N1-I,x); + S += T; + R += T*x^N0*(x-1)^(N1-I)*dx^M; + K2 = N0-1; + }else + K2 = N-I; + for(K = K1; K <= K2; K++){ + if(K == K2){ + R += (mycoef(P2,N-I,x)-S)*x^K*(x-1)^(M-K)*dx^M; + continue; + } + R += strtov("r"+rtostr(V))*x^K*(x-1)^(M-K)*dx^M; + S += strtov("r"+rtostr(V++)); + } + } + if(V > 1) + mycat([V-1, "accessory parameters: r1,r2,..."]); + return R; +} + +def fuchs3e(P,Q,R) +{ + return getbygrs([R,P,Q],3); +} + +def okubo3e(P,Q,R) +{ + if(getopt(opt)==1){ + N=length(R); + M1=N-length(P);M2=N-length(Q); + V=(M1-1)*(M2-1); + if(V>0) mycat([V, "accessory parameters"]); + return getbygrs([R,cons([M1,0],P),cons([M2,0],Q)],3); + } + S = 0; + V = -1; + L = newvect(3,[[],[],[]]); + N = newvect(3,[0,0,0]); + if(type(R) < 4){ + I = -1; + V = 3; + }else{ + I = 2; + V = -1; + } + for( ; I >= 0; I--){ + if(I == 2) + U = R; + else if(I == 1) + U = Q; + else + U = P; + for( ; length(U); U = cdr(U)){ + T = car(U); + if( T == "?"){ + if(V < 0) + V = I; + else + return 0; + }else{ + if(I == 2) + L[I] = cons(-T, L[I]); + else + L[I] = cons(T, L[I]); + S += T; + } + N[I]++; + } + } + if(V == 3){ + N[2] = N[0] + N[1]; + P2 = x^N; + for(I = 1; I <= N; I++) + P2 += makev([R,I])*x^(N-I); + }else{ + if(N[0]+N[1] != N[2]){ + print("Number of exponents are wrong",0); + return -1; + } + S -= N[0]*N[1]; + if(V < 0){ + if(S != 0){ + mycat(["Viorate Fuchs relation ->",S]); + return -2; + } + }else{ + if(V != 2) + S = -S; + L[V] = cons(S, L[V]); + } + P2 = polinsft(polbyroot(L[2],x),x); + } + P0 = polinsft(mysubst(polbyroot(L[0],x),[x,x+N[1]]),x); + P1 = polinsft(mysubst(polbyroot(L[1],x),[x,x+N[0]]),x); + return sub3e(P0,P1,P2,N[0],N[1],N[2]); +} + +/* N = 2*M (N-M = M) or 2*M+1 (N-M = M+1) + 0 : 0 1 ..... M-1 B B+1 ... B+N-M-2 A + 1 : C C+1 ... C+M-1 0 1 .... N-M-2 N-M-1 + */ +def eosub(A,B,C,N) +{ + M = N%2; + P = []; + Q = []; + P = cons(A,P); + for(I = 0; I < N-M-1; I++) + P = cons(B+I,P); + for(I = 0; I < M; I++) + Q = cons(C+I,Q); + P = okubo3e(P,Q,s); + + C = newvect(2); + L = newvect(2); + C[1] = chkexp(P,[x,dx],0,b,N-M-1); + C[0] = chkexp(P,[x,dx],1,c,M); + for(LL = K = 0; K < 2; K++){ + L[K] = length(C[K]); + C[K] = ltov(C[K]); + if(L[K] > LL) + LL = L[K]; + } + JJ = 0; + + for(I = 1; Do; I++){ + Do = 0; + S = makev(["r",I]); + for(J = JJ; J < LL; J++){ + JJ = LL; + for(K = 0; K < 2; K++){ + if(J >= L[K] || C[K][J] == 0) + continue; + if(J < JJ) + JJ = J; + if(Do == 1){ + CC = C[K]; + CC[J] = mysubst(CC[J], [S, Var]); + continue; + } + if(mydeg(C[K][J]) >= 1){ + if(mydeg(C[K][J]) > 1){ + print("Internal error"); + return; + } + Var = getroot(C[K][J],S); + Var = Var[0]; + CC = C[K]; + CC[J] = 0; + P = mysubst(P, [S, Var]); + Do = 1; + J = JJ - 1; + K++; + } + } + } + } + if(JJ != L){ + print("Internal error (non Rigid)"); + return; + } + return P; +} + +def even4e(X,Y){ + if(length(X) != 4 || length(Y) != 2){ + print("Usage: even4e([a,b,c,d],[e,f])"); + print("0: 0 1 e f"); + print("1; 0 1 * *+1"); + print("infty: a b c d"); + return; + } + S = -3; + for(I = 0; I < 4; I++){ + S += X[I]; + if(I < 2) + S += Y[I]; + } + S = -S/2; + P = okubo3e(Y,[S,"?"],X); + T = chkexp(P,x,1,S,2); + T = getroot(T[0],r1); + return mysubst(P,[r1,T[0]]); +} + +def odd5e(X,Y) +{ + if(length(X) != 5 || length(Y) != 2){ + print("Usage: spec6e([a,b,c,d,e],[f,g])"); + print("0: 0 1 f g g+1"); + print("1: 0 1 2 * *+1"); + print("infty: a b c d e"); + return; + } + S = -4; + for(I = 0; I < 5; I++){ + S += X[I]; + if(I < 2) + S += Y[I]; + } + S = -(S + Y[1])/2; + P = okubo3e([Y[0],Y[1],Y[1]+1],[S,"?"],X); + T = chkexp(P,x,1,S,2); + T = getroot(T[0],r1); + P = mysubst(P,[r1,T[0]]); + T = chkexp(P,x,0,Y[1],2); + T = getroot(T[0],r2); + return mysubst(P,[r2,T[0]]); +} + +def extra6e(X,Y) +{ + if(length(X) != 6 || length(Y) != 2){ + print("Usage: extra6e([a,b,c,d,e,f],[g,h])"); + print("0: 0 1 g g+1 h h+1"); + print("1: 0 1 2 3 * *+1"); + print("infty: a b c d e f"); + return; + } + S = -5; + for(I = 0; I < 6; I++){ + S += X[I]; + if(I < 2) + S += 2*Y[I]; + } + S = -S/2; + P = okubo3e([Y[0],Y[0]+1,Y[1],Y[1]+1],[S,"?"],X); + T = chkexp(P,x,1,S,2); + T = getroot(T[0],r1); + P = mysubst(P,[r1,T[0]]); + T = chkexp(P,x,0,Y[0],2); + T = getroot(T[0],r3); + P = mysubst(P,[r3,T[0]]); + T = chkexp(P,x,0,Y[1],2); + T = getroot(T[0],r2); + return mysubst(P,[r2,T[0]]); +} + +def rigid211(X,Y,Z) +{ + if(length(X) != 2 || length(Y) != 2 || length(Z) != 2){ + print("Usage: rigid211([a,b],[c,d],[e,f])"); + print("0: 0 1 a b"); + print("1: 0 1 c d"); + print("infty: e e+1 f *"); + return; + } + P = okubo3e(X,Y,[Z[0],Z[0]+1,Z[1],"?"]); + T = chkexp(P,x,"infty",Z[0],2); + T = getroot(T[0],r1); + return mysubst(P,[r1,T[0]]); +} + +def solpokuboe(P,L,N) +{ + if(type(N) > 1 || ntype(N) != 0 || dn(N) != 1){ + mycat(["Irrigal argument :", N]); + return 0; + } + L = vweyl(L); + DD=N+1; + for(U = S = L[0]^N; U != 0; ){ + D = mydeg(U,L[0]); + if(D>=DD){ + mycat(["Internal Error",D,DD]); + return -1; + } + DD=D; + UU = L[0]^D; + R = appldo(P,UU,L); + if(mydeg(R,L[0]) > D){ + printf("Bad operator\n"); + return 0; + } + CC = mycoef(R,D,L[0]); + if(D == N){ + P -= (E = CC); + U = R-E*U; + continue; + } + if(CC == 0){ + printf("No polynomial\n"); + return 0; + } + CC= mycoef(U,D,L[0])/CC; + S = red(S - UU*CC); + U = red(U - R*CC); + } + return [nm(S),E]; +} + +def stoe(M,L,N) +{ + L = vweyl(L); + Size = size(M); + S = Size[0]; + NN = 0; + if(type(N) == 4){ + NN=N[0]; N=N[1]; + }else if(N < 0){ + NN=-N; N=0; + } + if(S != Size[1] || N >= S || NN >= S) + return; + D = newmat(S+1,S+1); + MN = dupmat(M); + MD = newmat(S,S); + DD = D[0]; + DD[N] = 1; DD[S] = 1; + for(Lcm = I = 1; ; ){ + DD = D[I]; + MM = MN[N]; + for(J = 0; J < S; J++){ + DD[J] = MM[J]; + Lcm = lcm(dn(DD[J]),Lcm); + } + DD[S] = L[1]^I; + for(J = 0; J <= S; J++) + DD[J] = red(DD[J]*Lcm); + if(I++ >= S) + break; + if(I==S && NN>0){ + DD = D[I]; + DD[0]=-z_zz; DD[NN]=1; + break; + } + Mm = dupmat(MN*M); + for(J = 0; J < S; J++){ + for(K = 0; K < S; K++) + MN[J][K] = red(diff(MN[J][K],L[0])+Mm[J][K]); + } + } +#if 0 + P = fctr(mydet2(D)); +#else + P = fctr(det(D)); +#endif + for(I = R = 1; I < length(P); I++){ + if(mydeg(P[I][0],L[1]) > 0) + R *= P[I][0]^P[I][1]; + } + if(NN > 0) + R = -red(coef(R,0,z_zz)/coef(R,1,z_zz)); + return R; +} + +def dform(L,X) +{ + if(type(X)==2) X=[X]; + if(type(L[0])!=4) L=[L]; + if(type(X)==4) X=ltov(X); + M=length(X); + if(length(car(L))==2){ + R=newvect(M); + for(LL=L; LL!=[]; LL=cdr(LL)){ + for(I=0; I<M; I++){ + RT=rmul(car(LL)[0],mydiff(car(LL)[1],X[I])); + R[I] = (R[I]==0)?RT:radd(R[I],RT); + } + } + Dif=getopt(dif); + for(RR=[], I=M-1; I>=0; I--){ + if(Dif==1) RR=cons([1,R[I],X[I]],RR); + else RR=cons([R[I],X[I]],RR); + } + if(Dif==1) RR=dform(RR,X); + return RR; + }else if(length(car(L))!=3) return L; + N=M*(M-1)/2; + R=newvect(N); + S=newvect(N); + for(LL=L; LL!=[]; LL=cdr(LL)){ + for(I=K=0; I<M; I++){ + for(J=I+1; J<M; J++, K++){ + if(LL==L) S[K]=[X[I],X[J]]; + LT=car(LL); + R1=mydiff(LT[2],X[J]); + R2=mydiff(-LT[2],X[I]); + if(R2==0){ + if(R1==0) continue; + R1=rmul(mydiff(LT[1],X[I]),R1); + }else if(R1==0){ + R1=rmul(mydiff(LT[1],X[J]),R2); + }else + R1=rmul(mydiff(LT[1],X[I]),R1)+rmul(mydiff(LT[1],X[J]),R2); + R1=rmul(LT[0],R1); + R[K] = (R[K]==0)?R1:radd(R[K],R1); + } + } + } + for(RR=[],I=N-1; I>=0; I--) + RR=cons([R[I],S[I][0],S[I][1]],RR); + return RR; +} + +def polinvsym(P,Q,Sym) +{ + N = length(Q); + T = polbyroot(Q,zz); + for(I = 1; I <= N; I++){ + P = mysubst(P,[makev([Sym,I]), (-1)^I*coef(T,N-I,zz)]); + } + return P; +} + +def polinsym(P,Q,Sym) +{ + if(type(P) == 3){ + P = red(P); + if(type(P) == 3){ + D = polinsym(dn(P),Q,Sym); + if(D == 0) + return 0; + return polinsym(nm(P),Q,Sym)/D; + } + } + N = length(Q); + V = newvect(N+1); + S = newvect(N+1); + E = newvect(N+1); + E0 = newvect(N+1); + T = polbyroot(Q,zzz); + for(J = 1; J <= N; J++){ + K = coef(T,N-J,zzz); + if(J % 2) + K = -K; + S[J] = K; + V[J] = makev([Sym,J]); + } + K = deg(P,Q[0]); + for(J = 0; J <= N; J++) + E0[J] = K+1; + E[0] = K+1; + while(deg(P,Q[0]) > 0){ + for(P0 = P, J = 1; J <= N; J++){ + E[J] = deg(P0,Q[J-1]); + P0 = coef(P0,E[J],Q[J-1]); + } + /* P0*Q[0]^E[1]*Q[1]^E[2]*... E[1] >= E[2} >= ... */ + for(J = 1; J <= N; J++){ + if(E[J] < E0[J]) + break; + if(E[J-1] < E[J]) + J = N; + } + if(J > N){ + print("Not symmetric"); + return 0; + } + for(J = 1; J <= N; J++) + E0[J] = E[J]; + for(J = N; J > 1; J--){ + if(E[J] != 0) + for(K = 1; K < J; K++) + E[K] -= E[J]; + } + for(R0 = P0, K = 1; K <= N; K++){ + if(E[K] > 0) + P0 *= S[K]^E[K]; + R0 *= V[K]^E[K]; + } + P += R0 - P0; + } + return P; +} + +def tohomog(P,L,V) +{ + while(length(L)>0){ + P = mysubst(P,[car(L),car(L)/V]); + L = cdr(L); + } + P = red(P); + N = mindeg(dn(P),V); + if(N > 0) + P = red(P*V^N); + N = mindeg(dn(P),V); + if(N > 0) + P = red(P/(V^N)); + return P; +} + +def substblock(P,X,Q,Y) +{ + P = red(P); + if(deg(dn(P),X) > 0) + return substblock(nm(P),X,Q,Y)/substblock(dn(P),X,Q,Y); + N = mydeg(Q,X); + if(N < 1) + return P; + R = mycoef(Q,N,X); + while(M = mydeg(P,X), M >= N) + P = red(P - mycoef(P,M,X)*(Q-Y)*X^(M-N)/R); + return P; +} + +def okuboetos(P,L) +{ + L = vweyl(L); X = L[0]; DX = L[1]; + N = mydeg(P,DX); + C = mycoef(P,N,DX); + K = mydeg(C,X); + if(K > N){ + print("Irregular singularity at infinity")$ + return 0; + } + if(N > K) + P *= x^(N-K); + + L = getroot(mycoef(P,N,DX),x); + L = ltov(reverse(L)); + if(length(L) != N || N == 0){ + print("Cannot get exponents")$ + return 0; + } + if( type(LL = getopt(diag)) == 4 ){ + LL = ltov(LL); + if(length(LL) != N){ + mycat(["Length of the option should be", N]); + return 0; + } + Tmp = newvect(N); + for(I = N-1; I >= 0; I--){ + for(LLT = LL[I], J = N-1; J >=0 ; J--){ + if(LLT == L[J] && Tmp[J] == 0){ + Tmp[J] = 1; + break; + } + } + if(J < 0){ + print("option is wrong"); + return 0; + } + } + L = LL; + } + P /= mycoef(C,N,X); + A = newmat(N,N); + AT = newmat(N+1,N+1); + Phi= newvect(N+1); + Phi[0] = 1; + for(J = 0; J < N; J++) + Phi[J+1] = Phi[J]*(X-L[J]); + for(ATT = AT[N], J = 0; J < N; J++) + ATT[J] = mycoef(P,J,DX); + + for(K = 1; K <= N; K++){ + for(J = N; J >= K; J--){ + Aj = A[J-1]; + SIG = AT[J][J-K]; + for(I = 0; I <= K-2; I++) + SIG += Aj[J-I-1]*AT[J-I-1][J-K]; + if(K == 1) + DAT = mydiff(Phi[J-1],X); + else + DAT = mydiff(AT[J-1][J-K],X); + Aj[J-K] = -SIG+(X-L[J-1])*DAT; + Aj[J-K] /= Phi[J-K]; + Aj[J-K] = mysubst(Aj[J-K],[X,L[J-1]]); + if(J < K+1) continue; + ATj = AT[J-1]; + ATj[J-K-1] = SIG+Aj[J-K]*Phi[J-K]; + ATj[J-K-1] /= (X - L[J-1]); + ATj[J-K-1] = red(ATj[J-K-1]-DAT); + } + } + + ATT = newmat(N,N); + for(J = 0; J < N; J++){ + for(K = 0; K < N; K++){ + ATj = ATT[J]; + ATj[K] = AT[J][K]; + } + ATj[J] = Phi[J]; + if(J < N-1){ + ATj = A[J]; + ATj[J+1] = 1; + } + } + return [L,A,ATT]; +} + +def heun(X,P,R) +{ + if(type(X) != 4 || length(X) != 5){ + print("Usage: huen([a,b,c,d,e],p,r)"); + print("0: 0 c"); + print("1: 0 d"); + print("p: 0 e"); + print("infty: a b"); + print("Fuchs relation: a+b+1 = c+d+e"); + return; + } + S = 1; + V = -1; + X = ltov(X); + for(I = 0; I < 5; I++){ + if(X[I] == "?"){ + if(V >= 0) + return; + V = I; + }else if(I < 2){ + S += X[I]; + }else + S -= X[I]; + } + if(V >= 0){ + if(V < 2) + X[V] = -S; + else + X[V] = S; + }else if(S != 0){ + mycat(["Fuch relation:", S,"should be zero!"]); + return; + } + return + x*(x-1)*(x-P)*dx^2 + + (X[2]*(x-1)*(x-P)+X[3]*x*(x-P)+X[4]*x*(x-1))*dx + + X[0]*X[1]*(x-R); +} + +def fspt(M,T) +{ + if(type(M)==7) M=s2sp(M); + if(T == 3) /* 3: cut 0 */ + return cutgrs(M); + if(T == 4 || T== 5){ /* 4: short 5: long */ + for(MN = [] ; M != []; M = cdr(M)){ + MT = car(M); + for(MNT = []; MT != []; MT = cdr(MT)){ + if(type(car(MT)) <= 3){ + if(T == 4) MNT = cons(car(MT),MNT); + else MNT = cons([1,car(MT)],MNT); + }else{ + if(T == 5 || car(MT)[0] > 1) MNT = cons(car(MT),MNT); + else if(car(MT)[0] == 1) MNT = cons(car(MT)[1],MNT); + } + } + MN = cons(reverse(MNT), MN); + } + return reverse(MN); + } + if(type(M[0][0]) == 4){ + for(MN = [] ; M != []; M = cdr(M)){ + MT = car(M); + for(MNT = []; MT != []; MT = cdr(MT)) + MNT = cons(car(MT)[0], MNT); + MN = cons(reverse(MNT), MN); + } + return fspt(reverse(MN),T); + } + if(T == 0) /* 0: sp */ + return M; + for(MN = [] ; M != []; M = cdr(M)){ + MT = qsort(ltov(car(M))); + L = length(MT); + for(MNT = [], I = 0; I < L; I++) + MNT = cons(MT[I], MNT); + MN = cons(MNT, MN); + } + MN = reverse(MN); + if(T==6) return MN; /* 7: sort */ + L = length(MN); + for(M = MN; M != []; M = cdr(M)){ + for(I = 0, MT = car(M); MT != []; MT = cdr(MT)) + I += car(MT); + if(OD == 0) + OD = I; + else if(OD != I || OD == 0) + return 0; + } + ALL = [MN]; + RD=[]; + while(OD > 0){ + for(S = 0, MT = MN; MT != []; MT = cdr(MT)) + S += car(MT)[0]; + S -= (L-2)*OD; + if(S <= 0){ + if(T==7) return [ALL[0],ALL[length(ALL)-1],RD]; + return (T==1)?MN:ALL; + } + RD=cons([S,0,0],RD); + for(NP=0, M = [], MT = MN; MT != []; NP++, MT = cdr(MT)){ + MTT = car(MT); + I = MTT[0] - S; + if(I < 0){ + if(I+OD!=0) return 0; + if(T==7) return [ALL[0],ALL[length(ALL)-1],cdr(RD)]; + return (T==1)?MN:ALL; + } + MTT = cdr(MTT); + NC=1; DO=0; + for(MNT = []; MTT != []; MTT = cdr(MTT)){ + if(MTT[0] > I){ + if(DO==0) RD=cons([MTT[0]-I,NP,NC++],RD); + MNT = cons(MTT[0], MNT); + } + else if(MTT[0] <= I && I != 0){ + DO=1; + MNT = cons(I, MNT); + I = 0; + if(MTT[0] > 0) + MNT = cons(MTT[0], MNT); + } + } + if(I > 0) + MNT = cons(I,MNT); + M = cons(reverse(MNT), M); + } + MN = reverse(M); + ALL = cons(MN,ALL); + OD -= S; + } +} + +def abs(X) +{ + if(vars(X)!=[]) return todf(os_md.abs,[X]); + if(type(X)==4){ + P=X[1];X=X[0]; + }else P=0; + if(type(X)==1){ + if((T=ntype(X))<2 || T==3){ + if(X<0) X=-X; + }else if(T==4) X=P?pari(abs,X,P):pari(abs,X); + } + return X; +} + +def calc(X,L) +{ + if(type(X)<4||type(X)==7){ + if(type(L)==4||type(L)==7){ + V=L[1]; + if(type(X)!=7){ + if((L0=L[0])=="+") X+=V; + else if(L0=="-") X-=V; + else if(L0=="*") X*=V; + else if(L0=="/") X/=V; + else if(L0=="^") X^=V; + } + if((L0=L[0])==">") X=(X>V); + else if(L0=="<") X=(X<V); + else if(L0=="=") X=(X==V); + else if(L0==">=") X=(X>=V); + else if(L0=="<=") X=(X<=V); + else if(L0=="!=") X=(X!=V); + }else if(type(L)==7&&type(X)<4){ + if(L=="neg") X=-X; + else if(L=="abs") X=abs(X); + else if(L=="neg") X=-X; + else if(L=="sqr") X*=X; + else if(L=="inv") X=1/X; + else if(L=="sgn"){ + if(X>0)X=1; + else if(X<0) X=-1; + } + } + } + return X; +} + +def isint(X) +{ + if(X==0||(type(X)==1 && ntype(X)==0 && dn(X)==1)) return 1; + return 0; +} + +def israt(X) +{ + if(X==0||(type(X)==1 && ntype(X)==0)) return 1; + return 0; +} + +def iscrat(X) +{ + if(X==0 || (type(X)==1 && israt(real(X)) && israt(imag(X)))) return 1; + return 0; +} + +def isalpha(X) +{ + return ((X>64&&X<91)||(X>96&&X<123))?1:0; +} + +def isnum(X) +{ + return (X>47&&X<58)?1:0; +} + +def isalphanum(X) +{ + return (isalpha(X)||isnum(X))?1:0; +} + +def isdecimal(X) +{ + if(type(X)!=7) return 0; + F=S=0; + L=strtoascii(X); + while(L!=[]&&car(L)==32) L=cdr(L); + if(L!=[]&&car(L)==45) L=cdr(L); /* - */ + while(L!=[]&&isnum(car(L))){ + F=1; L=cdr(L); + } + while(L!=[]&&car(L)<33){ + S=1;L=cdr(L); + } + if(L==[]) return F; + else if(S||car(L)!=46) return 0; /* . */ + L=cdr(L);F=0; + while(L!=[]&&isnum(car(L))){ + F=1; L=cdr(L); + } + while(L!=[]&&car(L)<33) L=cdr(L); + return (L==[])?F:0; +} + +def isvar(X) +{ + return ([X]==vars(X)&&vtype(X)<3)?1:0; +} + +def isyes(F) +{ + if((CC=getopt(set))==1){ + IsYes=(type(F[0])==4)?F:[F]; + return 1; + }else if(CC==0) return(IsYes); + if(type(CC)!=7) + CC=IsYes; + for(;CC!=[]; CC=cdr(CC)){ + C=car(CC); + V=call(C[0],cons(F,C[1])); + if(type(C[2])!=4){ + if(V!=C[2]) break; + }else{ + if(C[2][0]!="" && V<C[2][0]) break; + if(C[2][1]!="" && V>C[2][1]) break; + } + } + return (CC==[])?1:0; +} + +def isall(FN,M) +{ + if(type(M)<4 || type(M)>6) return ((*FN)(M)==0)?0:1; + if(type(M)==4){ + for(;M!=[];M=cdr(M)) + if((*FN)(car(M))==0) return 0; + }else if(type(M)==5){ + K=length(M); + for(I=0;I<K;I++) + if((*FN)(M[I])==0) return 0; + }else if(type(M)==6){ + K=size(M)[0]; + for(I=0;I<K;I++) + if (isall(FN,M[I])==0) return 0; + } + return 1; +} + +def sproot(MP,T) +{ + if((I=str_chr(T,0,","))>0){ + if(type(MP)==7) M=s2sp(MP); + else M=chkspt(MP|opt=0); + if(I==length(M[0])){ + N=s2sp(T);S=SM=SN=K=0; + for(MM=M,NN=N;MM!=[];MM=cdr(MM),NN=cdr(NN),K++){ + for(MT=car(MM),NT=car(NN);MT!=[];MT=cdr(MT),NT=cdr(NT)){ + S+=car(MT)*car(NT); + if(K==0){ + SM+=car(MT);SN+=car(NT); + } + } + } + return S-(length(M)-2)*SM*SN; + } + } + MM=chkspt(MP|opt=7); + if(T=="base") return MM; + Keep=(getopt(keep)==1)?1:0; + Null=getopt(null); + Only=getopt(only); + if(type(Only)!=1) Only=7; + M0=MM[0]; + M1=MM[1]; + M=MM[2]; + if(T=="length") return length(M); + if(T=="height"){ + for(J=2,S=M1[0][0],M2=M1; M2!=[]; M2=cdr(M2)){ + for(MT=cdr(car(M2)); MT!=[]; J++, MT=cdr(MT)){ + S+= J*car(MT); + } + J=1; + } + return S; + } + for(OD=0, MT=M1[0]; MT!=[]; MT=cdr(MT)) OD+=car(MT); + if(T=="type"){ + R=newvect(OD+1); + for(MT=M; MT!=[]; MT=cdr(MT)) R[MT[0][0]]++; + for(RR=[],I=OD; I>0; I--) + if(R[I]>0) RR=cons([R[I],I],RR); + return RR; + } + if(T=="part"||T=="pair"||T=="pairs"){ + NP=length(M1); + LM=newvect(NP); + R=newvect(length(M)); + for(K=0; K<NP; K++) LM[K]=length(M1[K]); + for(I=0,TM=M; TM!=[]; I++, TM=cdr(TM)){ + V=newvect(NP); + for(K=0; K<NP; K++) V[K]=newvect(LM[K]); + TP=car(TM); + if(TP[2]==0){ + for(K=0;K<NP;K++) V[K][0]=1; + for(J=0; J<I; J++){ + VJ=R[J][1]; + for(S=K=0;K<NP;K++) S+=VJ[K][0]; + for(OD=0,K=0;K<LM[0];K++) OD+=VJ[0][K]; + S-=(NP-2)*OD; + for(K=0;K<NP;K++) VJ[K][0]-=S; + } + }else{ + K=TP[1]; P=TP[2]; + V[K][P-1]=-1; V[K][P]=1; + for(J=0; J<I; J++){ + VJ=R[J][1]; + S=VJ[K][P]; VJ[K][P]=VJ[K][P-1]; VJ[K][P-1]=S; + } + } + R[I]=[TP[0],V]; + } + if(T=="pair"||T=="pairs"){ + MV=ltov(M1); + for(K=0; K<NP; K++) MV[K] = ltov(MV[K]); + for(RR=UU=SS=[],I=0; I<length(M); I++){ + V=newvect(NP); W=newvect(NP); U=newvect(NP); + for(K=0; K<NP; K++){ + U[K]=newvect(LM[K]); V[K]=newvect(LM[K]); W[K]=newvect(LM[K]); + } + S=R[I][0]; + for(K=0; K<NP; K++){ + for(Q=J=0; J<LM[K]; J++){ + V[K][J] = S*(U[K][J] = R[I][1][K][J]); + Q+=(W[K][J] = MV[K][J] - V[K][J]); + } + } + if(Q>0 && iand(Only,1)==0) continue; + if(Q==0 && iand(Only,2)==0) continue; + if(Q<0 && iand(Only,4)==0) continue; + for(K=0; K<NP; K++){ + V[K] = vtol(V[K]); W[K] = vtol(W[K]); U[K]=vtol(U[K]); + } + V=vtol(V); W=vtol(W);U=vtol(U); + if(Q<0) S=-S; + RR = cons([V,W], RR); UU = cons(U,UU); SS=cons(S,SS); + } + RR = reverse(RR); UU=reverse(UU); SS=reverse(SS); + if(getopt(dviout)==1 && (Null!=1 || RR!=[])){ + Out=string_to_tb("\\begin{align}\\begin{split}"+s2sp(M1)+"&="); + for(I=0,R=RR, U=UU; R!=[]; I++, R=cdr(R), U=cdr(U)){ + if(I>0) str_tb("\\\\\n &=",Out); + if(T=="pairs"){ + if((S=SS[I])<0) S=-S; + if(S>1) str_tb([my_tex_form(S),"("],Out); + str_tb(s2sp(car(U)),Out); + if(S>1) str_tb(")",Out); + str_tb(" \\oplus ",Out); + if(SS[I]<0){ +#ifdef USEMODULE + str_tb(["-(",s2sp(mtransbys(os_md.abs,car(R)[1],[])),")"],Out); +#else + str_tb(["-(",s2sp(mtransbys(abs,car(R)[1],[])),")"],Out); +#endif + }else + str_tb(s2sp(car(R)[1]),Out); + }else + str_tb([s2sp(car(R)[0])," \\oplus ",s2sp(car(R)[1])],Out); + } + str_tb("\n\\end{split}\\end{align}",Out); + dviout(str_tb(0,Out)|keep=Keep); + } + return RR; + } + for(I=0; I<length(M); I++){ + for(K=0; K<NP; K++) R[I][1][K] = vtol(R[I][1][K]); + R[I] = [R[I][0],vtol(R[I][1])]; + } + R = vtol(R); + return [M0,M1,R]; + } +} + +def spgen(MO) +{ + Eq=(getopt(eq)==1)?1:0; + Sp=getopt(sp); + if(type(Sp)==7) Sp=s2sp(Sp); + St=getopt(str); + LP=getopt(pt); + F=getopt(std); + if(F!=1&&F!=-1) F=0; + if(type(LP)==4){ + L0=LP[0]; L1=LP[1]; + }else{ + L0=0; L1=MO+1; + } + if(MO<=0){ + MO=-MO; + if(iand(MO,1)==1) return []; + if(MO>1){ + if(isMs()==0) return []; + Cmd="okubo "+rtostr(-MO); + MO/=2; + if(L1>0) Cmd=Cmd+"+"+rtostr(L0)+"-"+rtostr(L1); + else L1=MO+4; + Cmd=Cmd+" B"; + Id=getbyshell(Cmd); + if(Id<0) return []; + B=[]; + while((S=get_line(Id)) !=0){ + P0=str_chr(S,1,":")+1; + if(P0>1){ + P1=str_chr(S,P,"\n"); + if(P1<0) P1=str_len(S); + B=cons(sub_str(S,P0,P1-1),B); + } + } + close_file(Id); + }else{ + MO/=2; + if(L1<=1) L1=MO+4; +BB=[ +["11,11,11,11","111,111,111","1^4,1^4,22","1^6,222,33"], +["11,11,11,11,11","1^4,1^4,211","211,22,22,22","1^6,2211,33", +"2211,222,222","22211,2^4,44","2^511,444,66","1^4,22,22,31", +"2^5,3331,55","1^5,1^5,32","1^8,332,44","111,111,21,21","1^5,221,221"], +["11,11,11,11,11,11","1^4,1^4,1^4","1^4,22,22,22","111,111,111,21", +"1^6,21^4,33","21^4,222,222","221^4,2^4,44","2^41^4,444,66", +"1^5,1^5,311","1^8,3311,44","1^6,222,321","321,33,33,33", +"3321,333,333","33321,3^4,66","3^721,666,99","2^5,3322,55", +"1^6,1^6,42","222,33,33,42","1^a,442,55","1^6,33,33,51", +"222,222,33,51","1^9,333,54","2^7,554,77","1^5,2111,221", +"2^41,333,441","1^7,2221,43","211,211,22,22","2211,2211,222", +"22211,22211,44","1^4,211,22,31","2^411,3331,55","1^4,1^4,31,31", +"22,22,22,31,31","1^7,331,331","2221,2221,331","111,21,21,21,21"], +["11,11,11,11,11,11,11","111,111,111,111","1^6,1^6,33", +"1^6,222,222","222,33,33,33","1^5,1^5,221", +"1^4,211,22,22","1^4,1^4,22,31","22,22,22,22,31", +"111,111,21,21,21","21^6,2^4,44","2221^6,444,66", +"1^6,222,3111","3111,33,33,33","33111,333,333", +"333111,3^4,66","3^5111,666,99","2^5,33211,55", +"1^8,3221,44","3222,333,333","33222,3^4,66", +"3^4222,666,99","1^6,1^6,411","222,33,33,411", +"1^a,4411,55","2^4,2^4,431","431,44,44,44", +"2^6,4431,66","4431,444,444","44431,4^4,88", +"4^531,888,cc","1^a,433,55","1^7,1^7,52", +"1^c,552,66","3^4,444,552","1^8,2^4,53", +"1^8,44,44,71","3^5,555,771","21^4,2211,222", +"221^4,22211,44","2221^4,3331,55","1^6,2211,321", +"2^411,3322,55","1^7,322,331","2211,33,33,42", +"3^42,4442,77","2211,222,33,51","3^51,5551,88", +"2^611,554,77","2221,2221,322","2^41,2^41,54", +"1^5,2111,2111","222111,333,441","1^7,22111,43", +"1^5,1^5,41,41","1^9,441,441","22111,2221,331", +"1^5,221,32,41","221,221,221,41","211,211,211,22", +"2211,2211,2211","1^4,211,211,31","211,22,22,31,31", +"1^4,22,31,31,31","1^5,32,32,32","221,221,32,32","21,21,21,21,21,21"], +["11,11,11,11,11,11,11,11","1^4,1^4,22,22","1^8,2^4,44", +"1^6,2211,222","2211,33,33,33","111,111,111,21,21", +"1^5,1^5,2111","1^4,211,211,22","1^4,1^4,211,31", +"211,22,22,22,31","1^4,22,22,31,31","111,21,21,21,21,21", +"221^8,444,66","2^5,331^4,55","1^8,32111,44", +"32211,333,333","332211,3^4,66","3^42211,666,99", +"2^5,32221,55","1^7,1^7,511","1^c,5511,66", +"3^4,444,5511","541,55,55,55","5541,555,555", +"55541,5^4,aa","5^541,aaa,ff","1^8,1^8,62", +"1^a1^4,662,77","1^a,55,55,91","2^71,555,87", +"21^6,22211,44","221^6,3331,55","1^6,2211,3111", +"2^411,33211,55","1^7,3211,331","2211,33,33,411", +"3^42,44411,77","22211,2^4,431","2^511,4431,66", +"1^8,332,431","3^42,4433,77","1^8,22211,53", +"2221,2221,3211","221^5,333,441","1^7,21^5,43", +"1^b,443,65","21^5,2221,331","2^51,3332,65", +"21^4,21^4,222","221^4,221^4,44","1^6,21^4,321", +"2221^4,3322,55","21^4,33,33,42","21^4,222,33,51", +"2^51^4,554,77","2^4,3311,3311","3^411,4442,77", +"321,321,33,33","3321,3321,333","33321,33321,66", +"222,321,33,42","1^6,321,33,51","222,222,321,51", +"1^9,3321,54","1^7,322,322","3^422,5551,88", +"1^6,33,42,42","1^6,222,42,51","33,33,33,42,51", +"1^6,1^6,51,51","222,33,33,51,51","1^b,551,551", +"1^5,221,311,41","2^41,3321,441","22111,2221,322", +"2^51,443,551","222111,2^41,54","21^4,2211,2211", +"1^5,311,32,32","3331,3331,442","2211,2211,33,51", +"221,221,311,32","22111,22111,331","1^5,2111,32,41", +"2111,221,221,41","2111,221,32,32","211,211,211,211", +"211,211,22,31,31","1^4,211,31,31,31","22,22,31,31,31,31"], +["11,11,11,11,11,11,11,11,11","1^5,1^5,1^5","2^5,2^5,55", +"111,111,111,111,21","2^41,333,333","1^4,1^4,211,22", +"211,22,22,22,22","1^8,22211,44","1^4,1^4,1^4,31", +"1^4,22,22,22,31","1^7,1^7,43","1^7,2221,331", +"2221,2221,2221","1^6,21^4,222","21^4,33,33,33", +"1^6,1^6,321","222,321,33,33","1^6,33,33,42", +"222,222,33,42","1^6,222,33,51","222,222,222,51", +"33,33,33,33,51","1^6,2211,2211","111,111,21,21,21,21", +"1^5,1^5,32,41","1^5,221,221,41","1^5,221,32,32", +"221,221,221,32","1^4,211,211,211","211,211,22,22,31", +"1^4,211,22,31,31","1^4,1^4,31,31,31","22,22,22,31,31,31", +"21,21,21,21,21,21,21","21^a,444,66","1^8,31^5,44", +"321^4,333,333","3321^4,3^4,66","3^421^4,666,99", +"2^5,322111,55","32^41,3^4,66","3332^41,666,99", +"1^8,1^8,611","2^4,44,44,611","1^d,6611,77", +"4^5,66611,aa","2^6,444,651","3^4,3^4,651", +"651,66,66,66","3^6,6651,99","6651,666,666", +"66651,6^4,cc","6^551,ccc,ii","2^8,655,88", +"1^9,1^9,72","1^g,772,88","1^c,444,75", +"2^6,3^4,75","1^c,66,66,b1","3^4,444,66,b1", +"3^7,777,ba","1^7,2221,4111","2^41,333,4311", +"1^9,2^41,63","21^8,3331,55","2^411,331^4,55", +"1^7,31^4,331","2^411,32221,55","22211,2^4,422", +"2^511,4422,66","1^8,332,422","2^5,3331,541", +"22211,44,44,62","2^411,2^5,64","2^711,664,88", +"1^a,3331,64","2221,2221,31^4","21^7,333,441", +"333,333,441,81","2^6111,555,87","21^6,221^4,44", +"221^6,3322,55","2^41^6,554,77","1^6,21^4,3111", +"3111,321,33,33","33111,3321,333","333111,33321,66", +"222,3111,33,42","1^6,3111,33,51","222,222,3111,51", +"1^9,33111,54","2221^4,33211,55","1^7,3211,322", +"3^4211,5551,88","2^4,3221,3311","333221,4442,77", +"3222,3321,333","33222,33321,66","1^9,3222,54", +"21^4,33,33,411","3^411,44411,77","222,321,33,411", +"1^6,33,411,42","1^6,222,411,51","33,33,33,411,51", +"221^4,2^4,431","2^41^4,4431,66","1^8,3311,431", +"3^411,4433,77","33321,444,552","1^8,221^4,53", +"3311,44,44,53","4^42,5553,99","2^4,3311,44,71", +"3^421,555,771","4^52,7771,bb","3^611,776,aa", +"2^41,33111,441","22111,2221,3211","2^41,3222,441", +"2^61,4441,76","3331,3331,4411","22211,22211,431", +"3331,3331,433","3^41,3^41,76","1^7,1^7,61,61", +"1^d,661,661","21^5,2221,322","221^5,2^41,54", +"2^51,33311,65","21^5,22111,331","3^41,4441,661", +"1^7,331,43,61","2221,2221,43,61","2221,331,331,61", +"21^4,21^4,2211","21^4,2211,33,51","22211,3311,3311", +"1^5,311,311,32","2211,321,33,42","2211,222,321,51", +"3322,3331,442","2211,222,42,42","2^411,442,442", +"1^6,2211,42,51","2211,33,33,51,51","221,221,311,311", +"1^5,2111,311,41","222111,3321,441","22111,22111,322", +"222111,222111,54","2111,221,311,32","2111,2111,221,41", +"1^5,221,41,41,41","2221,43,43,43","1^5,32,32,41,41", +"331,331,43,43","221,221,32,41,41","221,32,32,32,41", +"211,211,211,31,31","211,22,31,31,31,31","1^4,31,31,31,31,31"]]; + B=BB[MO]; + } + if(St!=1){ + for(R=[]; B!=[]; B=cdr(B)){ + RT=F?s2sp(car(B)|std=F):s2sp(car(B)); + if(length(RT)<L0 || length(RT)>L1) continue; + R=cons(RT,R); + } + return reverse(R); + }else{ + if(L0<=3 && L1>=MO+4) return B; + for(R=[]; B!=[]; B=cdr(B)){ + RT=s2sp(T=car(B)); + if(length(RT)<L0 || length(RT)>L1) continue; + if(F) T=s2sp(s2sp(T|std=K)); + R=cons(T,R); + } + return reverse(R); + } + } + MP=(L1<MO+1)?L1:MO+1; + LL=newvect(MO+1); + R=newvect(MP+2); + R0=newvect(MP+2); + for(I=1; I<=MO; I++) LL[I]=[]; + if(type(Sp)==4){ + if(getopt(basic)==1) Sp=chkspt(Sp[6]); + R=chkspt(Sp); + if(R[1]>MO) return 0; + LL[R[1]]=R; + K=R[1]; + } + if(K==1||type(Sp)!=4){ + LL[1]=[[[1]]]; + for(I=2; I<=MO && I<MP;I++){ + for(T=[], J=0; J<I+1; J++) + T=cons([I-1,1],T); + LL[I]=cons(T,LL[I]); + } + K=2; + } + for(OD=K; OD<MO; OD++){ + for(LT=LL[OD]; LT!=[]; LT=cdr(LT)){ + for(II=0,L=car(LT); L!=[]; II++, L=cdr(L)){ + R0[II]=R[II]=car(L); + } + for(; ;){ + for(S=-2*OD, I=0; I<II; I++){ + S += OD; + if(R[I]!=[]) S-=car(R[I]); + } + --I; + for(;S+OD<=MO && I<=MP;S+=OD,I++){ + if(S<=0) continue; + for(J=0;J<=I;J++){ + if(J>=II){ + if(S<OD) break; + }else + if(S+((R[J]==[])?0:car(R[J]))<car(R0[J])) break; + } + if(--J>=I){ + V=newvect(I); + RRR=[]; + for(;J>=0;J--){ + if(J>=II) RR=[OD,S]; + else{ + K=length(R[J]); + RR=[S+((K==0)?0:car(R[J]))]; + K=length(R0[J])-K; + for(RT=R0[J]; RT!=[]; K--,RT=cdr(RT)){ + if(K!=0) RR=cons(car(RT),RR); + } + } + RRR=cons(reverse(RR),RRR); + } + RRR=qsort(reverse(RRR)); + if(findin(RRR,LL[S+OD])<0) + LL[S+OD]=cons(RRR,LL[S+OD]); + } + } + for(K=0; K<II; K++){ + if(R[K]!=[]){ + S=car(R[K]); + while((R[K]=cdr(R[K]))!=[] && car(R[K])==S); + break; + }else R[K]=R0[K]; + } + if(K>=II) break; + } + } + } + if(L0>0 || L1<MO+1 || St==1 || F){ + for(J=1; J<=MO; J++){ + for(RT=[],R=LL[J];R!=[];R=cdr(R)){ + L=length(T=car(R)); + if(L<L0 || L>L1) continue; + if(F) T=s2sp(T|std=F); + RT=cons((St==1)?s2sp(T):T,RT); + } + LL[J] = reverse(RT); + } + } + if(Eq==1) return LL[MO]; + return LL; +} + +def spType2(L) +{ + C=0;R=[]; + for(LT=L;LT!=[];LT=cdr(LT)){ + D=-1;LP=car(LT); + for(LPT=LP;LPT!=[];LPT=cdr(LPT)){ + if(D==-1) D=car(LPT); + else D=igcd(D,car(LPT)); + if(D==1){ + C++;break; + } + } + if(C==2) return 0; + R=cons(D,R); + } + if(C==0) return L; + if(C==1){ + for(K=length(R)-1;R[K]!=1;K--); + D=-1; + for(I=length(R)-1;I>=0;I--){ + if(I==K) continue; + if(D==-1) D=R[I]; + else D=igcd(D,R[I]); + if(D==1) return 0; + } + } + return L; +} + + +/* ret [#points, order, idx, Fuchs, reduction order, reduction exponents, fund] */ +def chkspt(M) +{ + Opt= getopt(opt); + Mat= getopt(mat); + if(type(M)==7) M=s2sp(M); + if(type(Opt) >= 0){ + if(type(Opt) == 7) + Opt = findin(Opt, ["sp","basic","construct","strip","short","long","sort","root"]); + if(Opt < 0){ + erno(2); + return 0; + } + return fspt(M,Opt); + } + MR = fspt(M,1); + P = length(M); + OD = -1; + XM = newvect(P); + Fu = 0; + for( I = SM = SSM = 0; I < P; I++ ){ + LJ = length(M[I]); + JM = JMV = 0; + for(J = SM = 0; J < LJ; J++){ + MV = M[I][J]; + if(type(MV) == 4){ + Fu += MV[0]*MV[1]; + MV = MV[0]; + } + if(MV > JMV){ + JM = J; JMV = MV; + } + SM += MV; + SSM += MV^2; + } + if(OD < 0) + OD = SM; + else if(OD != SM){ + print("irregal partitions"); + return 0; + } + XM[I] = JM; + } + SSM -= (P-2)*OD^2; + for(I = SM = JM = 0; I < P; I++){ + MV = M[I][XM[I]]; + if(type(MV) == 4){ + MV = MV[0]; JM = 1; + } + if(I == 0) + SMM = MV; + else if(SMM > MV) + SMM = MV; + SM += MV; + } + SM -= (P-2)*OD; + if(SM > SMM && SM != 2*OD){ + print("not realizable"); + return -1; + } + if(JM==1 && Mat!=1) + Fu -= OD - SSM/2; + return [P, OD, SSM, Fu, SM, XM, MR]; +} + +def cterm(P) +{ + V = getopt(var); + if(type(V) != 4) + V=vars(P); + for(; V !=[]; V = cdr(V)) + P = mycoef(P,0,car(V)); + return P; +} + +def terms(P,L) +{ + Lv=getopt(level); + if(type(Lv)!=1) Lv=0; + V=car(L);L=cdr(L); + for(R=[],D=mydeg(P,V);D>=0; D--){ + if((Q=mycoef(P,D,V))==0) continue; + if(L!=[]){ + R0=terms(Q,L|level=Lv+1); + for(;R0!=[];R0=cdr(R0)) R=cons(cons(D,car(R0)),R); + }else R=cons([D],R); + } + if(Lv>0) return R; + R=qsort(R); + Rev = getopt(rev); Dic=getopt(dic); + if(Dic==1 && Rev==1) R=reverse(R); + for(R0=[];R!=[];R=cdr(R)){ + for(RT=car(R),S=0;RT!=[];RT=cdr(RT)) S+=car(RT); + R0=cons(cons(S,car(R)),R0); + } + if(Dic==1) return R0; + if(Rev==1){ + for(R=[];R0!=[];R0=cdr(R0)){ + T=car(R0); + R=cons(cons(-car(T),cdr(T)),R); + } + R0=R; + } + R0=qsort(R0); + if(Rev==1){ + for(R=[];R0!=[];R0=cdr(R0)){ + T=car(R0); + R=cons(cons(-car(T),cdr(T)),R); + } + R0=R; + } + return (Rev==1)?R0:reverse(R0); +} + +def polcut(P,N,L) +{ + if(type(L)==2) L=[L]; + M=getopt(top); + if(type(M)!=1) M=0; + T=terms(P,L); + for(S=0;T!=[];T=cdr(T)){ + LT=car(T); + if(LT[0]<M || LT[0]>N) continue; + for(PW=1,LT=cdr(LT),V=L,Q=P;LT!=[];LT=cdr(LT),V=cdr(V)){ + Q=mycoef(Q,car(LT),car(V));PW*=car(V)^car(LT); + } + S+=Q*PW; + } + return S; +} + +def redgrs(M) +{ + Mat = getopt(mat); + if(Mat!=1) Mat=0; + R = chkspt(M|mat=Mat); + if(type(R) < 4) + return -1; + if(R[4] <= 0) + return 1-R[4]; + if(R[4] == 2*R[1]) + return 0; + V = newvect(R[0]); + Type = type(M[0][0]); + if(Type > 3){ + Mu = Mat-1; + for(I = 0; I < R[0]; I++) + Mu += M[I][R[5][I]][1]; + } + for(I = 0; I < R[0]; I++){ + IR = R[5][I]; L = []; MI = M[I]; MIE=MI[IR]; + for(J = length(MI)-1; J >= 0; J--){ + if(Type <= 3){ + VM = MI[J]; + if(J == IR){ + VM -= R[4]; + if(VM < 0) return -1; + } + L = cons(VM, L); + }else{ + VM = MI[J][0]; + if(J == IR){ + VM -= R[4]; + if(VM < 0) + return -1; + if(I == 0) + EV = 1-Mat-Mu; + else + EV = 0; + }else{ + if(I == 0) + EV = MI[J][1] - M[0][R[5][0]][1] + 1-Mat; /* + MX - Mu; */ + else + EV = MI[J][1] - MIE[1] + Mu; + } + L = cons([VM,EV], L); +/* + if(R[2] >= 2){ */ /* digid */ +/* P = dx^(R[1]); + } */ + } + } + V[I] = L; + } + return [R[5], vtol(V)]; +} + +def cutgrs(A) +{ + for(AL=[] ; A!=[]; A=cdr(A)){ /* AT: level 2 */ + for(ALT=[], AT=car(A); AT!=[]; AT=cdr(AT)){ + M = (type(car(AT)) < 4)?car(AT):car(AT)[0]; + if(M > 0) + ALT = cons(car(AT), ALT); /* ALT: level 2 */ + } + AL = cons(reverse(ALT), AL); /* AL: level 3 */ + } + return reverse(AL); +} + +def mcgrs(G, R) +{ + NP = length(G); + Mat = (getopt(mat)==1)?0:1; + for(R = reverse(R) ; R != []; R = cdr(R)){ + GN = []; + L = length(G)-1; + RT = car(R); + if(type(RT) == 4){ + RT = reverse(RT); S = 0; + for(G = reverse(G); G != []; G = cdr(G), L--){ + AD = car(RT); RT = cdr(RT); + if(L > 0) + S += AD; + else + AD = -S; + for(GTN = [], GT = reverse(car(G)); GT != []; GT = cdr(GT)) + GTN = cons([car(GT)[0],car(GT)[1]+AD], GTN); + GN = cons(GTN, GN); + } + G = GN; + continue; + } + VP = newvect(L+1); GV = ltov(G); + for(I = S = OD = 0; I <= L; I++){ + RTT = (I==0)?(Mat-RT):0; + VP[I] = -1; + for(J = M = 0, GT = GV[I]; GT != []; GT = cdr(GT), J++){ + if(I == 0) + OD += car(GT)[0]; + if(car(GT)[1] == RTT && car(GT)[0] > M){ + S += car(GT)[0]-M; + VP[I] = J; + } + } + S -= (L-1)*OD; + for(GN = [] ; L >= 0; L--){ + GT = GV[L]; + RTT = (L==0)?(-RT):RT; + FTN = (VP[L] >= 0 || S == 0)?[]:[-S,(L==0)?(Mat-RT):0]; + for(J = 0; GT != []; GT = cdr(GT), J++){ + if(J != VP[L]){ + GTN = cons([car(GT)[0],car(GT)[1]+RTT], GTN); + continue; + } + K = car(GT)[0] - S; + if(K < 0){ + print("Not realizable"); + return; + } + GTN = cons([K,(L==0)?(Mat-RT):0], GTN); + } + GN = cons(reverse(GTN), GN); + } + } + G = cutgrs(GN); + } + return G; +} + +/* + F=0 : unify + F=["add",S] : + F=["sub",S] : + F=["+",A,B] : + F=["*",A,B] : + F=["mul",K]; + F=["get",F,V] : + F=["put",F,V] : + F=["get1",F,V] : + F=["put1",F,V] : + F=["put1"] : + F=["val",F]; + F=["swap"]; + */ +def anal2sp(R,F) +{ + if(type(F)==4&&type(F[0])==4){ /* multiple commands */ + for(;F!=[];F=cdr(F)) R=anal2sp(R,car(F)); + return R; + } + if(type(F)==7) F=[F]; + if(F==0){ /* unify */ + R=ltov(R); + L=length(R); + for(J=1;J<L;J++){ + for(I=0;I<J;I++){ + if(cdr(R[I])==cdr(R[J])){ + R[I]=cons(R[I][0]+R[J][0],cdr(R[I])); + R[J]=cons(0,cdr(R[J])); + break; + } + } + } + for(G=[],I=L-1;I>=0;I--) + if(R[I][0]!=0) G=cons(R[I],G); + if(length(G[0])==2){ /* sort by multiplicity */ + R=ltov(G); + L=length(R); + for(I=1;I<L;I++){ + for(J=I;J>0;J--){ + if(R[J-1][0]>R[J][0]) break; + if(R[J-1][0]==R[J][0]){ + S1=rtostr(R[J-1][1]);S2=rtostr(R[J][1]); + if((K=str_len(S1)-str_len(S2))<0) break; + if(!K&&S1<S2) break; + } + S=R[J-1];R[J-1]=R[J];R[J]=S; + } + } + G=vtol(R); + } + return G; + } + if(F[0]=="add") return append(R,F[1]); + R=reverse(R); + if(F[0]=="sub"){ + for(S=F[1];S!=[];S=cdr(S)) + R=cons(cons(-car(S)[0],cdr(car(S))),R); + return reverse(R); + } + if(F[0]=="swap"){ + for(G=[];R!=[];R=cdr(R)) + G=cons([car(R)[0],car(R)[2],car(R)[1]],G); + return G; + } + if(F[0]=="+"){ + for(G=[];R!=[];R=cdr(R)) + G=cons([car(R)[0],car(R)[1]+F[1],car(R)[2]+F[2]],G); + return G; + } + if(F[0]=="*"){ + for(G=[];R!=[];R=cdr(R)) + G=cons([car(R)[0],car(R)[1]*F[1]+car(R)[2]*F[2]],G); + return G; + } + if(F[0]=="mult"){ + K=F[1]; + for(G=[];R!=[];R=cdr(R)) G=cons(cons(K*car(R)[0],cdr(car(R))),G); + return G; + } + if(F[0]=="get"){ + for(G=[];R!=[];R=cdr(R)) + if(car(R)[F[1]]==F[2]) G=cons(car(R),G); + return G; + } + if(F[0]=="put"){ + if(F[1]==1){ + for(G=[];R!=[];R=cdr(R)) G=cons([car(R)[0],F[2],car(R)[2]],G); + }else{ + for(G=[];R!=[];R=cdr(R)) G=cons([car(R)[0],car(R)[1],F[2]],G); + } + return G; + } + if(F[0]=="get1"){ + if(length(F)==2){ + for(G=[];R!=[];R=cdr(R)) G=cons([R[0][0],car(R)[F[1]]],G); + return G; + } + for(G=[];R!=[];R=cdr(R)) + if(car(R)[F[1]]==F[2]) G=cons([R[0][0],car(R)[3-F[1]]],G); + return G; + } + if(F[0]=="put1"){ + if(length(F)==1) + for(G=[];R!=[];R=cdr(R)) G=cons([car(R)[0],car(R)[1],car(R)[1]],G); + else if(F[1]==1) + for(G=[];R!=[];R=cdr(R)) G=cons([car(R)[0],F[2],car(R)[1]],G); + else{ + for(G=[];R!=[];R=cdr(R)) G=cons([car(R)[0],car(R)[1],F[2]],G); + } + return G; + } + if(F[0]=="val"){ + V=(length(F)==1)?1:F[1]; + for(I=J=0;R!=[];R=cdr(R)){ + I+=car(R)[0]; + J+=car(R)[0]*car(R)[V]; + } + return [I,J]; + } + return 0; +} + +/* + G=0 get trivial common spct + G="..,..," spectre type of 4 singular points + P=["get"] all spct + P=["get",L] + L=n for variable x_n + L=[m,n] for residue [m,n] + L=[[m,n],[m',n']] for common spct + P=["get0",[m,n],[m',n']] for the sum of residues + P=["swap",[m,n]] for symmetry + P=["perm",[...]] for symmetry + P=["deg"] + P=["homog"] + P=["sort"] + P=[[[m,n],c],...] for addition + P=[c] or [[c],...] for middle convolution wrt 0 + P=[m,c] or [[m,c],...] for general middle convolution + P=[[a,b,c]] for special additions + P=[[d,a,b,c]] for middle convotution and additions + P=["multi",...] multiple commands + P=0,1,3 : return sim. spectre of 4 singular points +*/ +def mc2grs(G,P) +{ + if(G==0){ + G=[]; + for(I=4;I>=0;I--){ + V=lsort([0,1,2,3,4],[I],1); + for(J=1;J<4;J++){ + for(T=[],K=3;K>0;K--) + if(K!=J) T=cons(V[K],T); + G=cons([[[V[0],V[J]],T],[1,0,0]],G); + } + } + G=mc2grs(G,"sort"); + }else if(type(G)==7||(type(G)==4&&length(G)==4)){ + if(type(G)==7) G=s2sp(G); + F=(getopt(top)==0)?1:0; + K=[]; + if(type(P)==1&&iand(P,1)&&type(G[0][0])<4){ + G=s2sp(G|std=1); + if(F) G=[G[1],G[2],G[3],G[0]]; + G=sp2grs(G,[d,c,b,a],[1,length(G[0]),-1]|mat=1); + G=reverse(G); + if(iand(P,3)==3){ + V=vars(G); + for(H=L=[a,b,c,d];H!=[];H=cdr(H)) + if(findin(car(H),V)>=0) G=subst(G,car(H),makev([car(H),1])); + G=shortv(G,[a,b,c,d]); + V=vars(G); + for(H=G[3];H!=[];H=cdr(H)){ + T=car(H)[1]; + if(type(T)>1&&!isvar(T)){ + K=[car(H)[0],T]; + break; + } + } + } + F=1; + } + if(F) G=[G[3],G[0],G[1],G[2]]; + S=cons(["anal",1],getopt()); + if(!(R=m2mc(G,0|option_list=S))) return R; + for(G=0,R=cdr(R);R!=[];R=cdr(R)){ + TR=car(R)[0]; + if(TR[0]) G=mc2grs(G,[[TR[0]]]); + G=mc2grs(G,[cdr(TR)]); + } + if(type(P)==1&&K!=[]){ + for(T=10;T<36;T++){ + if(findin(X=makev([T]),V)>=0) continue; + F=K[0]*(X-K[1]); + return [F,simplify(G,[F],4)]; + } + } + } + if(type(P)<2) return G; + F=0; + if(type(P)==7||(type(P)==4&&type(P[0])<4)) P=[P]; + if((Dvi=getopt(dviout))!=1&&Dvi!=2&&Dvi!=-1) Dvi=0; + Keep=(Dvi==2)?1:0; + if(type(P)==4&&type(F=car(P))==7){ + if(F=="mult"){ + for(P=cdr(P);P!=[];P=cdr(P)) G=mc2grs(G,car(P)|option_list=getopt()); + return G; + } + if(F=="show"){ + for(R=str_tb(0,0);G!=[];){ + L=car(G); + I=L[0][0];J=L[0][1]; + str_tb("[A_{"+rtostr(I[0])+rtostr(I[1])+"}:A_{"+rtostr(J[0])+rtostr(J[1]) + +"}]&=\\left\\{",R); + for(L=cdr(L);;){ + S=car(L); + str_tb("["+my_tex_form(S[1])+":"+my_tex_form(S[2])+"]",R); + if(S[0]!=1) str_tb("_{"+rtostr(S[0])+"}",R); + if((L=cdr(L))==[]) break; + str_tb(",\\,",R); + } + str_tb("\\right\\}",R); + if((G=cdr(G))==[]) break; + str_tb(",\\\\\n",R); + } + R=texbegin("align*",str_tb(0,R)); + if(Dvi!=-1) dviout(R|keep=Keep); + return R; + } + if(F=="show0"){ + for(S="",L=[];G!=[];G=cdr(G)){ + for(TL=[],TG=cdr(car(G));TG!=[];TG=cdr(TG)) TL=cons(car(TG)[0],TL); + TL=msort(TL,[-1,0]); + if(Dvi){ + if(S!="") S=S+","; + for(I=J=0,T=append(TL,[[0]]);T!=[];T=cdr(T)){ + if(car(T)==I) J++; + else{ + if(I>0&&J>0){ + if(I>9) S=S+"("+rtostr(I)+")"; + else S=S+rtostr(I); + if(J>1){ + if(J>9) S=S+"^{"+rtostr(J)+"}"; + else S=S+"^"+rtostr(J); + } + } + I=car(T);J=1; + } + } + } + L=cons(TL,L); + } + if(Dvi){ + if(Dvi!=-1) dviout(S|eq=0); + return S; + } + return reverse(L); + } + if(F=="sort"){ + G=ltov(G);L=length(G); + for(I=0;I<L;I++){ + S=G[I][0]; + if(S[0][0]>S[0][1]) S=[[S[0][1],S[0][0]],S[1]]; + if(S[1][0]>S[1][1]) S=[S[0],[S[1][1],S[1][0]]]; + if(S[0]>S[1]){ + F=0;S=[S[1],S[0]]; + } + if(S!=G[I][0]){ + if(F==0) G[I]=cons(S,anal2sp(cdr(G[I]),"swap")); + else G[I]=cons(S,cdr(G[I])); + } + for(J=I;J>0;J--){ + if(G[J-1][0]<G[J][0]) break; + S=G[J-1];G[J-1]=G[J];G[J]=S; + } + } + return vtol(G); + } + if(F=="get"||F=="get0"){ + if(Dvi!=0) F="get"; + if(length(P)==1||type(P[1])<2){ + L=[]; + if(length(P)==1){ + for(I=3;I>=0;I--){ + for(J=4;J>I;J--) L=cons(mc2grs(G,[F,[I,J]]),L); + } + }else{ + for(I=P[1],J=4;J>=0;J--){ + if(I==J) continue; + L=cons(mc2grs(G,[F,(I<J)?[I,J]:[J,I]]),L); + } + } + if(Dvi){ + if(length(L)==10){ + R=ltov(L); + if(R[6][0]==[1,4]){ + S=R[6];R[6]=R[7];R[7]=S; + L=vtol(R); + } + } + for(R=S=[],L=reverse(L);L!=[];L=cdr(L)){ + T=car(L); + R=cons(cdr(T),R); + if(S==[]) S="A_{"+rtostr(T[0][0])+rtostr(T[0][1])+"}\\\\\n"; + else S="A_{"+rtostr(T[0][0])+rtostr(T[0][1])+"}&"+S; + } + L=ltotex(R|opt="GRS",pre=S); + if(Dvi>0) dviout(L|eq=0,keep=Keep); + } + return L; /* get all spct */ + } + if(type(T=P[1])==4){ + if(F=="get0"&&length(P)==3&&type(I=P[1])==4&&type(J=P[2])==4){ + if(I[0]>I[1]) I=[I[1],I[0]]; + if(J[0]>J[1]) J=[J[1],J[0]]; + if(I[0]>I[0]){S=I;I=J;J=S;}; + K=lsort(I,J,0); + if(length(K)==4){ + S=sp2grs(G,["get0",[I,J]]); + return anal2sp(S,[["*",1,1],0]); + } + I=lsort(K,lsort(I,J,2),1); + S=lsort([0,1,2,3,4],K,1); + D=sp2grs(G,"deg"); + if(findin(4,S)<0) D=-D; + J=sp2grs(G,["get0",[I,S]]); + if(I[0]>S[0]) J=sp2grs(J,"swap"); + return anal2sp(J,[["+",0,D],["*",-1,1]]); + } + if(type(car(T))==4){ + if(T[0][0]>T[0][1]) T=[[T[0][1],T[0][0]],T[1]]; + if(T[1][0]>T[1][1]) T=[T[0],[T[1][1],T[1][0]]]; + if(T[0][0]>T[1][0]) T=[T[1],T[0]]; + for(PG=G;PG!=[];PG=cdr(PG)) + if(car(PG)[0]==T) return (F=="get")?car(PG):cdr(car(PG)); + return []; /* get common spct */ + } + if(T[0]>T[1]) T=[T[1],T[0]]; + for(FT=0,PG=G;PG!=[];PG=cdr(PG)){ + if(car(PG)[0][0]==T){ + FT=1;break; + } + if(car(PG)[0][1]==T){ + FT=2;break; + } + } + if(!FT) return []; + L=anal2sp(cdr(car(PG)),[["get1",FT],0]); + return (F=="get")?cons(T,L):L; + } + } + if(F=="deg"){ + for(S=I=0;I<3;I++){ + for(J=I+1;J<4;J++){ + L=mc2grs(G,["get0",[I,J]]); + L=anal2sp(L,"val"); + S+=L[1]; + } + } + return S/L[0]; + } + if(F=="spct"){ + G=mc2grs(G,"get"); + M=newmat(5,5); + for(;G!=[];G=cdr(G)){ + GT=car(G);I=GT[0][0];J=GT[0][1]; + for(S=0,L=[],GT=cdr(GT);GT!=[];GT=cdr(GT)){ + L=cons(car(GT)[0],L); + } + L=reverse(qsort(L)); + M[I][J]=M[J][I]=L; + } + for(D=0,GT=M[0][1];GT!=[];GT=cdr(GT)) D+=car(GT); + for(I=0;I<5;I++){ + S=-2*D^2; + for(J=0;J<5;J++){ + if(I==J) continue; + for(L=M[I][J];L!=[];L=cdr(L)) S+=car(L)^2; + } + M[I][I]=S; + } + if(Dvi){ + S=[]; + for(I=4;I>=0;I--){ + L=[M[I][I]]; + for(J=4;J>=0;J--){ + if(I==J) L=cons("",L); + else L=cons(s2sp([M[I][J]]),L); + } + S=cons(L,S); + } + S=cons([x0,x1,x2,x3,x4,"idx"],S); + M=ltotex(S|opt="tab",hline=[0,1,z],vline=[0,1,z-1,z],left=["","$x_0$","$x_1$","$x_2$","$x_3$","$x_4$"]); + if(Dvi>0) dviout(M|keep=Keep); + } + return M; + } + if(F=="swap"||F=="perm"){ + if(F=="perm") TR=P[1]; + else{ + TR=newvect(5,[0,1,2,3,4]); + K=P[1][0];L=P[1][1]; + TR[K]=L;TR[L]=K; + if(TR[4]!=4) G=mc2grs(G,"deg"); + } + V=newvect(2); + for(L=[],T=G;T!=[];T=cdr(T)){ + TP=car(T)[0]; + for(TQ=[],I=1;I>=0;I--){ + V=[TR[TP[I][0]],TR[TP[I][1]]]; + if(V[0]>V[1]) V=[V[1],V[0]]; + TQ=cons(V,TQ); + } + if(TQ[0][0]<TQ[1][0]){ + L=cons(cons(TQ,cdr(car(T))),L); + continue; + } + TQ=[[TQ[1],TQ[0]]]; + for(TP=cdr(car(T));TP!=[];TP=cdr(TP)) + TQ=cons([car(TP)[0],car(TP)[2],car(TP)[1]],TQ); + L=cons(reverse(TQ),L); + } + return mc2grs(L,"sort"); + } + if(F=="homog"){ + V=mc2grs(G,"deg"); + return mc2grs(G,[[[2,3],-V]]); + }else if(F=="deg"){ + R=mc2grs(G,4); + for(V=0;R!=[];R++){ + for(TR=cdr(R);TR!=[];TR=cdr(TR)) + V+=car(TR)[0]*car(TR)[1]; + } + return -V; + } + } + if(type(F)!=4) return 0; + if(type(P[0])!=4) P=[P]; + for(;P!=[];P=cdr(P)){ + if(type((S=P[0])[0])==4){ /* addition */ + T=P[0][0]; + if(T[0]>T[1]) T=[T[1],T[0]]; + T1=[T[0],4];T2=[T[1],4]; + for(L=[],PG=reverse(G);PG!=[];PG=cdr(PG)){ + R=car(PG);R0=R[0];F=0;K=P[0][1]; + if(R0[0]==T) F=1; + else if(R0[1]==T) F=2; + else if(getopt(unique)!=1){ + K=-K; + if(R0[0]==T1||R0[0]==T2) F=1; + else if(R0[1]==T1||R0[1]==T2) F=2; + } + if(F==0) L=cons(R,L); + else{ + R1=anal2sp(cdr(R),(F==1)?["+",K,0]:["+",0,K]); + L=cons(cons(R0,R1),L); + } + } + G=L; + }else if(type(S[0])<4){ + if(length(S)==1){ /* mc wrt0 4:cases */ + U=mc2grs(G,"deg"); + C=P[0][0]; + L=[]; + /* [[0,1],[2,3]] : [K=[0,k],J=[i,j]], S=[k,4] : 3 cases */ + for(K=1;K<4;K++){ + J=lsort([1,2,3],[K],1); + K4=[K,4];K0=[0,K]; + G0=mc2grs(G,["get0",[K0,J]]); + LT=anal2sp(G0,["+",C,0]); + G0=mc2grs(G,["get0",J]); + L0=anal2sp(G0,["put1",1,0]); + LT=anal2sp(LT,["add",L0]); + G0=mc2grs(G,["get0",K4]); + L0=anal2sp(G0,[["put1",1,0],["+",0,U]]); + LT=anal2sp(LT,["add",L0]); + G0=mc2grs(G,["get0",[[0,J[0]],K4]]); + L0=anal2sp(G0,[["get",1,0],["+",0,U]]); + LT=anal2sp(LT,["sub",L0]); + G0=mc2grs(G,["get0",[[0,J[1]],K4]]); + L0=anal2sp(G0,[["get",1,0],["+",0,U]]); + LT=anal2sp(LT,["sub",L0]); + G0=mc2grs(G,["get0",[K0,J]]); + L0=anal2sp(G0,[["get",1,0],["+",C,0]]); + LT=anal2sp(LT,["sub",L0]); + G0=mc2grs(G,["get0",[[0,4],J]]); + L0=anal2sp(G0,[["+",-C,0],["get",1,0]]); + LT=anal2sp(LT,[["sub",L0],0]); + L=cons(cons([K0,J],LT),L); + } + /* [[0,1],[2,4]] : [K,I]=[[0,k],[i,4]] S=[j,k] : 6 cases */ + for(K=1;K<4;K++){ + for(I=1;I<4;I++){ + if(I==K) continue; + for(J=1;J<4;J++) if(J!=I&&J!=K) break; + I4=[I,4];S=(J<K)?[J,K]:[K,J];K0=[0,K]; + G0=cdr(mc2grs(G,["get",[K0,I4]])); + LT=anal2sp(G0,["+",C,0]); + G0=cdr(mc2grs(G,["get",I4])); + L0=anal2sp(G0,["put1",1,0]); + LT=anal2sp(LT,["add",L0]); + G0=cdr(mc2grs(G,["get",S])); + L0=anal2sp(G0,[["put1",1,0],["+",0,-C-U]]); + LT=anal2sp(LT,["add",L0]); + + G0=cdr(mc2grs(G,["get",[[0,I],S]])); + L0=anal2sp(G0,[["get",1,0],["+",0,-C-U]]); + LT=anal2sp(LT,["sub",L0]); + G0=cdr(mc2grs(G,["get",[[0,J],I4]])); + L0=anal2sp(G0,["get",1,0]); + LT=anal2sp(LT,["sub",L0]); + G0=cdr(mc2grs(G,["get",[K0,I4]])); + L0=anal2sp(G0,[["get",1,0],["+",C,0]]); + LT=anal2sp(LT,["sub",L0]); + G0=cdr(mc2grs(G,["get",[[0,4],S]])); + L0=anal2sp(G0,[["get",1,C],["+",-C,-C-U]]); + LT=anal2sp(LT,[["sub",L0],0]); + L=cons(cons([K0,I4],LT),L); + } + } + /* [[0,4],[2,3]] : [[0,4],J]=[[0,4],[i,j]] 3 cases */ + for(K=3;K>0;K--){ + J=lsort([1,2,3],[K],1); + G0=mc2grs(G,["get0",[[0,4],J]]); + LT=anal2sp(G0,["+",-C,0]); + G0=mc2grs(G,["get0",J]); + L0=anal2sp(G0,["put1",1,-C]); + LT=anal2sp(LT,["add",L0]); + G0=mc2grs(G,["get0",[K,4]]); + L0=anal2sp(G0,[["put1",1,-C],["+",0,U]]); + LT=anal2sp(LT,["add",L0]); + + G0=mc2grs(G,["get0",[[0,J[0]],[K,4]]]); + L0=anal2sp(G0,[["get",1,0],["+",-C,U]]); + LT=anal2sp(LT,["sub",L0]); + G0=mc2grs(G,["get0",[[0,J[1]],[K,4]]]); + L0=anal2sp(G0,[["get",1,0],["+",-C,U]]); + LT=anal2sp(LT,["sub",L0]); + G0=mc2grs(G,["get0",[[0,K],J]]); + L0=anal2sp(G0,[["get",1,0],["+",-C,0]]); + LT=anal2sp(LT,["sub",L0]); + G0=mc2grs(G,["get0",[[0,4],J]]); + L0=anal2sp(G0,[["get",1,C],["put",1,0]]); + LT=anal2sp(LT,[["sub",L0],0]); + L=cons(cons([[0,4],J],LT),L); + } + /* [[1,2],[3,4]] : [J,K]=[[i,j],[k,4]] 3 cases */ + for(K=3;K>0;K--){ + J=lsort([1,2,3],[K],1); + if(K>1) + LT=mc2grs(G,["get0",[J,[K,4]]]); + else{ + LT=mc2grs(G,["get0",[[K,4],J]]); + LT=anal2sp(LT,"swap"); + } + G0=mc2grs(G,["get0",J]); + L0=anal2sp(G0,[["put1"],["+",0,-C-U]]); + LT=anal2sp(LT,["add",L0]); + G0=mc2grs(G,["get0",[K,4]]); + L0=anal2sp(G0,[["put1"],["+",U,0]]); + LT=anal2sp(LT,["add",L0]); + + G0=mc2grs(G,["get0",[[0,J[0]],[K,4]]]); + L0=anal2sp(G0,[["get1",1,0],["put1"],["+",U,0]]); + LT=anal2sp(LT,["sub",L0]); + G0=mc2grs(G,["get0",[[0,J[1]],[K,4]]]); + L0=anal2sp(G0,[["get1",1,0],["put1"],["+",U,0]]); + LT=anal2sp(LT,["sub",L0]); + G0=mc2grs(G,["get0",[[0,K],J]]); + L0=anal2sp(G0,[["get1",1,0],["put1"],["+",0,-C-U]]); + LT=anal2sp(LT,["sub",L0]); + G0=mc2grs(G,["get0",[[0,4],J]]); + L0=anal2sp(G0,[["get1",1,C],["put1"],["+",0,-C-U]]); + LT=anal2sp(LT,[["sub",L0],0]); + if(K==1){ + LT=anal2sp(LT,"swap"); + L=cons(cons([[K,4],J],LT),L); + }else L=cons(cons([J,[K,4]],LT),L); + } + G=L; + }else if(length(S)==2){ /* general mc */ + if(S[1]!=0){ + I=S[0]; + if(I!=0) G=mc2grs(G,["swap",[0,I]]); + G=mc2grs(G,[S[1]]); + if(I!=0) G=mc2grs(G,["swap",[0,I]]); + } + }else if(length(S)==3||length(S)==4){ /* addition */ + for(I=1;I<4;I++,S=cdr(S)) + if(S[0]) G=mc2grs(G,[[[0,I],S[0]]]); + if(length(S)==1 && S[0]) /* mc */ + G=mc2grs(G,[S[0]]); + } + } + } + return mc2grs(G,"sort"); +} + +def mcmgrs(G,P) +{ + if(type(G)<2){ + if(G>1){ + N=G+2;G=[]; + for(I=1;I<=N;I++){ + for(J=1;J<N;J++){ + if(I==J) continue; + for(K=J+1;K<=N;K++){ + if(I==K) continue; + G=cons([[[0,I],[J,K]],[1,0,0]],G); + } + } + } + for(I=1;I<=N;I++){ + for(J=1;J<I;J++) G=cons([[[0,I],[0,J,I]],[1,0,0]],G); + for(J=I+1;J<=N;J++) G=cons([[[0,I],[0,I,J]],[1,0,0]],G); + } + return reverse(G); + } + return 0; + } + if(type(G)==7) G=os_md.s2sp(G); + if(type(G)!=4||type(G[0])!=4) return 0; + if(type(G[0][0])!=4){ /* spectre type -> GRS */ + G=s2sp(G|std=1); + L=length(G); + for(V=[],I=L-2;I>=0;I--) V=cons(makev([I+10]),V); + V=cons(makev([L+9]),V); + G=sp2grs(G,V,[1,length(G[0]),-1]|mat=1); + if(getopt(short)!=0){ + V=append(cdr(V),[V[0]]); + G=shortv(G,V); + } + R=chkspt(G|mat=1); + if(R[2] != 2 || R[3] != 0 || !(R=getbygrs(G,1|mat=1))) return 0; + if(getopt(anal)==1) return R; /* called by mcmgrs() */ + if(!(G=mcmgrs(L-2,0))) return 0; + for(R=cdr(R);R!=[];R=cdr(R)){ + TR=car(R)[0]; + if(TR[0]) G=mcmgrs(G,[[TR[0]]]); + G=mcmgrs(G,[cdr(TR)]); + } + } + L=length(G); + for(N=4;N<25;N++){ + K=N^2*(N-1)/2; + if(K>L) return 0; + if(K==L) break; + } + if(type(P)<2) return G; + F=0; + if(type(P)==7||(type(P)==4&&type(P[0])<4)) P=[P]; + if((Dvi=getopt(dviout))!=1&&Dvi!=2&&Dvi!=-1) Dvi=0; + Keep=(Dvi==2)?1:0; + if(type(P)==4 && type(F=car(P))==7){ + if(F=="mult"){ + for(P=cdr(P);P!=[];P=cdr(P)) G=os_md.mc2grs(G,car(P)|option_list=getopt()); + return G; + } + if(F=="get"||F=="get0"){ + if(Dvi!=0) F="get"; + if(length(P)==2){ + if(type(P[1])==4){ + if(type(P[1][1])==4){ /* [[,],[,]] */ + for(PG=reverse(G);PG!=[];PG=cdr(PG)){ + TP=car(PG); + if(TP[0]==P[1]) return (F=="get")?TP:cdr(TP); + } + return []; + } + if(P[1][0]==0){ + if(length(P[1])==2){ /* [0,] */ + for(J=1;J<=N;J++) if(J!=P[1][1]) break; + for(K=J+1;K<=N;K++) if(K!=P[1][1]) break; + L=mcmgrs(G,["get0",[P[1],[J,K]]]); + L=anal2sp(L,["get1",1]); + }else{ /* [0,*,*] */ + L=mcmgrs(G,["get0",[[P[1][0],P[1][1]],P[1]]]); + L=anal2sp(L,["get1",2]); + } + }else{ /* [,] */ + for(J=1;J<=N;J++) if(J!=P[1][0]&&J!=P[1][1]) break; + L=mcmgrs(G,["get0",[[0,J],P[1]]]); + L=anal2sp(L,["get1",2]); + } + L=anal2sp(L,0); + if(F=="get") L=cons(P[1],L); + return L; + }else{ /* I */ + for(L=[],I=P[1],J=0;J<=N;J++){ + if(I==J) continue; + II=(I<J)?[I,J]:[J,I]; + L=cons(mcmgrs(G,[F,II]),L); + } + } + }else{ + for(L=[],I=0;I<N;I++){ + for(J=I+1;J<=N;J++) L=cons(mcmgrs(G,[F,[I,J]]),L); + } + } + if(Dvi){ + for(R=S=[];L!=[];L=cdr(L)){ + T=car(L); + R=cons(cdr(T),R); + if(S==[]) S="A_{"+rtostr(T[0][0])+rtostr(T[0][1])+"}\\\\\n"; + else S="A_{"+rtostr(T[0][0])+rtostr(T[0][1])+"}&"+S; + } + L=ltotex(R|opt="GRS",pre=S); + if(type(V=getopt(div))!=4) V=[]; + if(V==[]&&(K=length(R))>10) + for(I=9;I<K;I+=9) V=cons(I,V); + V=reverse(V); + if(V!=[]) L=divmattex(L,V); + if(Dvi>0){ + if(V!=[]) dviout(L|keep=Keep); + else dviout(L|eq=0,keep=Keep); + } + }else L=reverse(L); + return L; + } + if(F=="show"){ + for(R=str_tb(0,0);G!=[];){ + L=car(G); + I=L[0][0];J=L[0][1]; + str_tb("[A_{"+rtostr(I[0])+rtostr(I[1])+"}:A_{"+rtostr(J[0])+rtostr(J[1]),R); + if(length(J)==3) str_tb(rtostr(J[2]),R); + str_tb("}]&=\\left\\{",R); + for(L=cdr(L);;){ + S=car(L); + str_tb("["+my_tex_form(S[1])+":"+my_tex_form(S[2])+"]",R); + if(S[0]!=1) str_tb("_{"+rtostr(S[0])+"}",R); + if((L=cdr(L))==[]) break; + str_tb(",\\,",R); + } + str_tb("\\right\\}",R); + if((G=cdr(G))==[]) break; + str_tb(texcr(43),R); + } + R=texbegin("align*",str_tb(0,R)); + if(Dvi!=-1) dviout(R|keep=Keep); + return R; + } + if(F=="show0"){ + for(C=N*(N-1)*(N-2)/2,S="",L=[];G!=[];G=cdr(G)){ + for(TL=[],TG=cdr(car(G));TG!=[];TG=cdr(TG)) TL=cons(car(TG)[0],TL); + TL=msort(TL,[-1,0]); + if(Dvi){ + if(S!=""){ + if(--C==0) S=S+";"; + else S=S+","; + } + for(I=J=0,T=append(TL,[[0]]);T!=[];T=cdr(T)){ + if(car(T)==I) J++; + else{ + if(I>0&&J>0){ + if(I>9) S=S+"("+rtostr(I)+")"; + else S=S+rtostr(I); + if(J>1){ + if(J>9) S=S+"^{"+rtostr(J)+"}"; + else S=S+"^"+rtostr(J); + } + } + I=car(T);J=1; + } + } + } + L=cons(TL,L); + } + if(Dvi){ + if(Dvi!=-1) dviout(S|eq=0); + return S; + } + return reverse(L); + } + if(F=="spct"){ + G=mcmgrs(G,"get"); + M=newmat(N+1,N+1); + for(;G!=[];G=cdr(G)){ + GT=car(G);I=GT[0][0];J=GT[0][1]; + for(S=0,L=[],GT=cdr(GT);GT!=[];GT=cdr(GT)){ + L=cons(car(GT)[0],L); + } + L=reverse(qsort(L)); + M[I][J]=M[J][I]=L; + } + for(D=0,GT=M[0][1];GT!=[];GT=cdr(GT)) D+=car(GT); + for(I=0;I<=N;I++){ + S=-(N-2)*D^2; + for(J=0;J<=N;J++){ + if(I==J) continue; + for(L=M[I][J];L!=[];L=cdr(L)) S+=car(L)^2; + } + M[I][I]=S; + } + if(Dvi){ + S=[]; + for(LS=[],I=N;I>=0;I--){ + L=[M[I][I]]; + for(J=N;J>=0;J--){ + if(I==J) L=cons("",L); + else L=cons(s2sp([M[I][J]]),L); + } + S=cons(L,S); + LS=cons("$x_"+rtostr(I)+"$",LS); + } + S=cons(append(LS,["idx"]),S); + M=ltotex(S|opt="tab",hline=[0,1,z],vline=[0,1,z-1,z],left=cons("",LS)); + if(Dvi>0) dviout(M|keep=Keep); + } + return M; + } + if(F=="deg"){ + for(S=I=0;I<N-1;I++){ + for(J=I+1;J<N;J++){ + L=mcmgrs(G,["get0",[I,J]]); + L=anal2sp(L,"val"); + S+=L[1]; + } + } + return S/L[0]; + } + } + L=[]; + if(type(F)!=4) return 0; + if(type(P[0])!=4||length(P[0])==2) P=[P]; + for(;P!=[];P=cdr(P)){ + if(type(T=(S=car(P))[0])==4){ /* addition */ + if((K=P[0][1])!=0){ + if(T[0]>T[1]) T=[T[1],T[0]]; + T1=[T[0],N];T2=[T[1],N]; + T01=cons(0,T1);T02=cons(0,T2); + for(PG=G;PG!=[];PG=cdr(PG)){ + R=car(PG);R0=R[0];K1=K2=0; + TP=R0[0]; + if(TP==T) K1=K; + else if(TP==T1||TP==T2) K1=-K; + if(length(TP=R0[1])==2){ + if(TP==T) K2=K; + else if(TP==T1||TP==T2) K2=-K; + }else{ + S=0; + if(findin(T[0],TP)>=0) S++; + if(findin(T[1],TP)>=0) S++; + if(S>0&&TP[2]==N) K2=-K; + else if(S==2) K2=K; + } + R1=anal2sp(cdr(R),["+",K1,K2]); + L=cons(cons(R0,R1),L); + } + G=reverse(L); + } + }else if(length(S)==1){ /* middle convolution */ + C=S[0];L=[]; + for(I=1;I<=N;I++){ + for(J=1;J<=N;J++){ + if(I==J) continue; + for(K=J+1;K<=N;K++){ /* [[0,I],[J,K]] */ + if(I==K)continue; + T=[[0,I],JK=[J,K]]; + if(I==N){ + LT=mcmgrs(G,["get0",T]); + G0=mcmgrs(G,["get0",JK]); + L0=anal2sp(G0,[["put1",1,0],["mult",N-3]]); + G0=mcmgrs(G,["get0",[0,J,K]]); + LT=anal2sp(LT,["add",L0]); + L0=anal2sp(G0,["put1",1,0]); + LT=anal2sp(LT,["add",L0]); + for(V=1;V<=N;V++){ + if(V==I){ + G0=mcmgrs(G,["get0",T]); + L0=anal2sp(G0,["get",1,C]); + }else if(V==J||V==K){ + G0=mcmgrs(G,["get0",[[0,V],[0,J,K]]]); + L0=anal2sp(G0,["get",1,0]); + }else{ + G0=mcmgrs(G,["get0",[[0,V],JK]]); + L0=anal2sp(G0,["get",1,0]); + } + LT=anal2sp(LT,["sub",L0]); + } + LT=anal2sp(LT,["+",-C,0]); + }else if(K==N){ + LT=mcmgrs(G,["get0",T]); + LT=anal2sp(LT,["+",C,0]); + G0=mcmgrs(G,["get0",JK]); + L0=anal2sp(G0,[["put1",1,0],["mult",N-3]]); + LT=anal2sp(LT,["add",L0]); + G0=mcmgrs(G,["get0",[0,J,K]]); + L0=anal2sp(G0,[["put1",1,0],["+",0,-C]]); + LT=anal2sp(LT,["add",L0]); + for(V=1;V<=N;V++){ + if(V==I){ + G0=mcmgrs(G,["get0",T]); + L0=anal2sp(G0,[["get",1,0],["+",C,0]]); + }else if(V==J){ + G0=mcmgrs(G,["get0",[[0,V],[0,J,K]]]); + L0=anal2sp(G0,[["get",1,0],["+",0,-C]]); + }else if(V==N){ + G0=mcmgrs(G,["get0",[[0,V],[0,J,K]]]); + L0=anal2sp(G0,[["get",1,C],["+",-C,-C]]); + }else{ + G0=mcmgrs(G,["get0",[[0,V],JK]]); + L0=anal2sp(G0,["get",1,0]); + } + LT=anal2sp(LT,["sub",L0]); + } + }else{ + G0=mcmgrs(G,["get0",T]); + LT=anal2sp(G0,["+",C,0]); + G0=mcmgrs(G,["get0",JK]); + L0=anal2sp(G0,[["put1",1,0],["mult",N-3]]); + LT=anal2sp(LT,["add",L0]); + G0=mcmgrs(G,["get0",[0,J,K]]); + L0=anal2sp(G0,["put1",1,0]); + LT=anal2sp(LT,["add",L0]); + for(V=1;V<=N;V++){ + if(V==I){ + G0=mcmgrs(G,["get0",T]); + L0=anal2sp(G0,[["get",1,0],["+",C,0]]); + }else if(V==J||V==K){ + G0=mcmgrs(G,["get0",[[0,V],[0,J,K]]]); + L0=anal2sp(G0,["get",1,0]); + }else if(V==N){ + G0=mcmgrs(G,["get0",[[0,V],JK]]); + L0=anal2sp(G0,[["get",1,C],["+",-C,0]]); + }else{ + G0=mcmgrs(G,["get0",[[0,V],JK]]); + L0=anal2sp(G0,["get",1,0]); + } + LT=anal2sp(LT,["sub",L0]); + } + } + LT=anal2sp(LT,0); + L=cons(cons(T,LT),L); + } + T=[[0,I],(I<J)?[0,I,J]:[0,J,I]]; /* [0,I], [0,I,J] */ + JK=(I<J)?[I,J]:[J,I]; + if(I==N){ + G0=mcmgrs(G,["get0",T]); + LT=anal2sp(G0,["+",-C,0]); + G0=mcmgrs(G,["get0",JK]); + L0=anal2sp(G0,[["put1",1,-C],["mult",N-3]]); + LT=anal2sp(LT,["add",L0]); + G0=mcmgrs(G,["get0",T[1]]); + L0=anal2sp(G0,["put1",1,-C]); + LT=anal2sp(LT,["add",L0]); + for(V=1;V<=N;V++){ + if(V==J){ + G0=mcmgrs(G,["get0",T]); + L0=anal2sp(G0,[["get",1,0],["+",-C,0]]); + }else if(V==N){ + G0=mcmgrs(G,["get0",[[0,V],T[1]]]); + L0=anal2sp(G0,[["get",1,C],["+",-C,0]]); + }else{ + G0=mcmgrs(G,["get0",[[0,V],JK]]); + L0=anal2sp(G0,[["get",1,0],["+",-C,0]]); + } + LT=anal2sp(LT,["sub",L0]); + } + LT=anal2sp(LT,["+",0,C]); + }else if(J==N){ + G0=mcmgrs(G,["get0",T]); + LT=anal2sp(G0,["+",C,0]); + G0=mcmgrs(G,["get0",T[0]]); + L0=anal2sp(G0,[["put1",1,0],["mult",N-3]]); + LT=anal2sp(LT,["add",L0]); + G0=mcmgrs(G,["get0",T[1]]); + L0=anal2sp(G0,["put1",1,0]); + LT=anal2sp(LT,["add",L0]); + for(V=1;V<=N;V++){ + if(V==I){ + G0=mcmgrs(G,["get0",T]); + L0=anal2sp(G0,[["get",1,0],["+",C,0]]); + }else if(V==N){ + G0=mcmgrs(G,["get0",[[0,V],T[1]]]); + L0=anal2sp(G0,[["get",1,C],["+",-C,0]]); + }else{ + G0=mcmgrs(G,["get0",[[0,V],JK]]); + L0=anal2sp(G0,["get",1,0]); + } + LT=anal2sp(LT,["sub",L0]); + } + LT=anal2sp(LT,["+",0,-C]); + }else{ + G0=mcmgrs(G,["get0",T]); + LT=anal2sp(G0,["+",C,C]); + G0=mcmgrs(G,["get0",JK]); + L0=anal2sp(G0,[["put1",1,0],["mult",N-3]]); + LT=anal2sp(LT,["add",L0]); + G0=mcmgrs(G,["get0",T[1]]); + L0=anal2sp(G0,[["put1",1,0],["+",0,C]]); + LT=anal2sp(LT,["add",L0]); + for(V=1;V<=N;V++){ + if(V==I){ + G0=mcmgrs(G,["get0",T]); + L0=anal2sp(G0,[["get",1,0],["+",C,C]]); + }else if(V==J){ + G0=mcmgrs(G,["get0",[[0,V],T[1]]]); + L0=anal2sp(G0,[["get",1,0],["+",0,C]]); + }else if(V==N){ + G0=mcmgrs(G,["get0",[[0,V],JK]]); L0=anal2sp(G0,[["get",1,C],["+",-C,0]]); + }else{ + G0=mcmgrs(G,["get0",[[0,V],JK]]); + L0=anal2sp(G0,["get",1,0]); + } + LT=anal2sp(LT,["sub",L0]); + } + } + LT=anal2sp(LT,0); + L=cons(cons(T,LT),L); + } + } + for(G0=G=[];L!=[];L=cdr(L)){ + if(length(car(L)[0][1])==2) G0=cons(car(L),G0); + else G=cons(car(L),G); + } + G=append(G0,G); + }else{ + if(length(S)==N-1||length(S)==N){ /* [a_1,...,a_{N-1},c] */ + for(I=1;I<N;S=cdr(S),I++) G=mcmgrs(G,[[0,I],car(S)]); + if(length(S)==1) G=mcmgrs(G,[S[0]]); + }else return 0; + } + } + return G; +} + + +def delopt(L,S) +{ + if((Inv=getopt(inv))!=1) Inv=0; + for(R=[];L!=[];L=cdr(L)){ + if(type(car(L))!=4) F=0; + else if(type(S)==4) F=(findin(car(L)[0],S)<0)?0:1; + else F=(car(L)[0]==S)?1:0; + if(F==Inv) R=cons(car(L),R); + } + return reverse(R); +} + +def str_char(S,N,L) +{ + if(type(S)==7){ + if(type(L)==1) L=asciitostr([L]); + return str_chr(S,N,L); + } + if(type(L)==7) L=strtoascii(L)[0]; + if(type(S)==4){ + M=N; + while(M-->0) S=cdr(S); + M=findin(L,S); + return (M>=0)?findin(L,S)+N:-1; + }else if(type(S)==5){ + K=length(S); + for(I=N;I<K;I++) + if(S[I]==L) return I; + } + return -1; +} + +def str_pair(S,N,I,J) +{ + if(type(I)==7) I=(II=strtoascii(I))[0]; + if(type(J)==7) J=(JJ=strtoascii(J))[0]; + if(type(S)==7) S=strtoascii(S); + if(getopt(inv)==1){ + if(II!=0){ + I=asciitostr(reverse(II)); + IL=length(II); + }else IL=1; + if(JJ!=0) J=asciitostr(reverse(JJ)); + R=str_pair(reverse(S),length(S)-N-1,J,I); + if(R>=0) R=length(S)-IL-R; + return R; + } + if((SJIS=getopt(sjis))!=1) SJIS=0; + if((II!=0&&length(II)>1)||(JJ!=0&&length(JJ)>1)){ + for(;;){ + MJ=str_str(S,N|top=JJ,sjis=SJIS); + if(MJ>=0){ + MI=str_str(S,II|top=N,sjis=SJIS); + if(MI<0 || MI>MJ){ + if(C==0) return MJ; + C--; N=MJ+length(II); + }else if(MI>=0){ + C++; N=MI+length(JJ); + } + } + return -1; + } + } + if(type(S)==4){ + M=N; + while(M-->0) S=cdr(S); + while(S!=[]){ + if(car(S)==I) C++; + else if(car(S)==J){ + if(C==0) return N; + C--; + } + S=cdr(S);N++; + } + }else if(type(S)==5){ + K=length(S); + for(T=N;T<K && C>=0;T++){ + if(S[T]==I) C++; + else if(S[T]==J){ + if(C==0) return T; + C--; + } + } + } + return -1; +} + + +def str_cut(S,I,J) +{ + if(type(S)==7) return sub_str(S,I,J); + if((JJ=length(S))<=J) J=JJ-1; + if(type(S)==5){ + for(L=[],K=J; K>=I; K--) L=cons(S[K],L); + }else if(type(S)==4){ + J-=I; + while(I-->0) S=cdr(S); + for(L=[];J-->=0;S=cdr(S)) L=cons(car(S),L); + L=reverse(L); + } + return asciitostr(L); +} + +def str_str(S,T) +{ + if(S==0) return -1; + if(type(S) == 7) + S = strtoascii(S); + if(type(J=getopt(top))!=1 || J<0) J=0; + LS=length(S); + if(LS-J<1) return -1; + if(type(S)==4){ + LS-=(J0=J); + for( ; J>0 && S!=[]; S=cdr(S),J--); + } + if(type(JJ=getopt(end))!=1 && JJ!=0) JJ=LS; + else JJ-=J0; + if((SJIS=getopt(sjis))!=1) SJIS=0; + if(JJ-J<0) return -1; + /* search from J-th to JJ-th */ + if(type(T)==1) T=[T]; + else if(type(T)==7) T = strtoascii(T); + else if(type(T)==4 && type(T[0])>3){ + for(K=(KF=-1)-J0; T!=[]; F++,T=cdr(T)){ + JK=str_str(S,car(T)|top=J,end=JJ,sjis=SJIS); + if(JK>=0){ + JJ=(K=JK)-1; KF=F; + if(J>JJ) break; + } + } + return [KF,J0+K]; + } + if(type(T)==4) T=ltov(T); + LT = length(T); + if(LT>0){ + LE = LS-LT; + LP = T[0]; + if(JJ==0 ||(type(JJ)==1 && JJ<LE)) LE=JJ; + if(type(S)==5){ + for(; J <= LE; J++){ + if(S[J] != LP){ + if(SJIS && (V=S[J])>128){ + if(V<160 || (V>223 && V<240)) J++; + } + continue; + } + for(I = 1; I < LT && S[I+J] == T[I]; I++); + if(I >= LT) return J; + } + }else if(type(S)==4){ + for(; J<=LE; S=cdr(S),J++){ + if(car(S) != LP){ + if(SJIS && (V=S[J])>128){ + if(V<160 || (V>223 && V<240)) J++; + } + continue; + } + for(ST=cdr(S), I = 1; I < LT && car(ST) == T[I]; I++, ST=cdr(ST)); + if(I >= LT) return J0+J; + } + } + } + return -1; +} + +def str_times(S,N) +{ + if(!isint(N)) return ""; + if(type(S)==7){ + for(Tb=str_tb(0,0);N-->0;) + str_tb(S,Tb); + return str_tb(0,Tb); + } + if(type(S)==4){ + for(LT=[],I=0;I<N;I++){ + if(type(car(S))==7){ + LT=cons(car(S),LT); + S=cdr(S); + if(S==[]) S=[[""]]; + }else if(type(car(S))==4){ + ST=car(S); + for(J=0;I<N;I++){ + if(J==length(ST)) J=0; + LT=cons(ST[J++],LT); + } + } + } + return reverse(LT); + } + return S; +} + +def ssubgrs(M,L) +{ + if(type(L)==7) L=s2sp(L); + for(S=0, L=L, M=M; L!=[]; L=cdr(L), M=cdr(M)){ + for(LT=car(L), MT=car(M); LT!=[]; LT=cdr(LT), MT=cdr(MT)){ + S += car(LT)*car(MT)[1]; + } + } + return S; +} + +def s2os(S) +{ + return str_subst(S,[["\\","\\\\"],["\"","\\\""]],0); +} + +def l2os(S) +{ + if(type(S)==6) + S=m2ll(S); + else if(type(S)==5) + S=vtol(S); + else if(type(S)==7) return "\""+s2os(S)+"\""; + else if(type(S)<4) return rtostr(S); + if(type(S)==4){ + for(F=0,Tb=str_tb("[",0);S!=[];S=cdr(S)){ + if(F++) str_tb(", ",Tb); + str_tb(l2os(car(S)),Tb); + } + str_tb("]",Tb); + return str_tb(0,Tb); + } + return 0; +} + +def r2os(S) +{ + if(type(S)==6){ + for(T="",S=m2ll(S);S!=[];S=cdr(S)){ + if(T!="") T=T+","+r2os(car(S)); + else T=r2os(car(S)); + } + return "mat("+T+")\n"; + }else if(type(S)==5){ + for(T="",S=v2l(S);S!=[];S=cdr(S)){ + if(T!="") T=T+","+r2os(car(S)); + else T=r2os(car(S)); + } + return "vect("+T+")\n"; + }else if(type(S)<4) return rtostr(S); + else if(type(S)==4){ + for(T="";S!=[];S=cdr(S)){ + if(T!="") T=T+","+r2os(car(S)); + else T=r2os(car(S)); + } + return "["+T+"]"; + }else if(type(S)==7) return "\""+s2os(S)+"\""; + return ""; +} + +def s2euc(S) +{ + for(R=[],CR=0,L=strtoascii(S);L!=[];L=cdr(L)){ + if((C=car(L)) == 0x1b && length(L)>1) { + if((C=car(L=cdr(L)))==0x24 && length(L)>1){ /* $ */ + if((C = car(L=cdr(L))) == 0x40 || C == 0x42) { /* @, B */ + Mode = 1; + } else return 0; + }else if(C == 0x28 && length(L)>1) { /* ( */ + if((C = car(L=cdr(L)))== 0x42 || C == 0x4a) { /* B, J */ + Mode = 0; + }else if(C == 0x49) { /* I */ + Mode = 2; + }else{ + R=cons(0x1b,R);R=cons(0x28,R);R=cons(C,R); + } + }else if (C == 0x26 && length(L)>1 && car(cdr(L))==0x1b) { /* & ESC */ + L=cdr(L); + }else{ + R=cons(0x1b,R);R=cons(C,R); + } + }else if(C == 0x0e) { + Mode = 2; + }else if(C == 0x0f) { + Mode = 0; + }else if(Mode == 1 && C>0x20 && C<0x7f && length(L)>1) { /* JIS KANJI */ + D=car(L=cdr(L)); + if(D>0x20 && D<0x7f) { + R=cons(ior(C,0x80),R);R=cons(ior(D,0x80),R); + } else return 0; + }else if(Mode == 2 && C > 0x1f && C < 0x60) { /* JIS KANA */ + R=cons(0x8e,R); R=cons(ior(C,0x80),R); + }else if(((C>0x80 && C<0xa0) || (C>0xdf && C<0xf0)) && length(L)>1) { /* ShiftJIS */ + D=car(L=cdr(L)); + if(D>0x3f && D<0xfd && D!=0x7f) { + T=sjis2jis([C,D]); + R=cons(ior(T[0],0x80),R); R=cons(ior(T[1],0x80),R); + }else return 0; + }else if(C>0x9f && C<0xe0) { /* HanKana */ + R=cons(0x8e,R); R=cons(C,R); + }else if(C == 0x0a){ + CR++; + }else if(C == 0x0d){ + R=cons(0x0d,R); + CR=0; + }else{ + while(CR-->0) R=cons(0x0d,R); + R=cons(C,R); + } + } + while(CR-->0) R=cons(0x0d,R); + return asciitostr(reverse(R)); +} + +def s2sjis(S) +{ + for(R=[],CR=0,L=strtoascii(S);L!=[];L=cdr(L)){ + if((C=car(L)) == 0x1b && length(L)>1) { + if((C=car(L=cdr(L)))==0x24 && length(L)>1){ /* $ */ + if((C = car(L=cdr(L))) == 0x40 || C == 0x42) { /* @, B */ + Mode = 1; + } else return 0; + }else if(C == 0x28 && length(L)>1) { /* ( */ + if((C = car(L=cdr(L)))== 0x42 || C == 0x4a) { /* B, J */ + Mode = 0; + }else if(C == 0x49) { /* I */ + Mode = 2; + }else{ + R=cons(0x1b,R);R=cons(0x28,R);R=cons(C,R); + } + }else if (C == 0x26 && length(L)>1 && car(cdr(L))==0x1b) { /* & ESC */ + L=cdr(L); + }else{ + R=cons(0x1b,R);R=cons(C,R); + } + }else if(C == 0x0e) { + Mode = 2; + }else if(C == 0x0f) { + Mode = 0; + }else if(Mode == 1 && C>0x20 && C<0x7f && length(L)>1) { /* JIS KANJI */ + D=car(L=cdr(L)); + if(D>0x20 && D<0x7f) { + T=jis2sjis([C,D]); + R=cons(T[0],R);R=cons(T[1],R); + } else return 0; + }else if(Mode == 2 && C > 0x1f && C < 0x60) { /* JIS KANA */ + R=cons(ior(C,0x80),R); + }else if(C>0xa0 && C<0xff && length(L)>1) { /* EUC */ + D=car(L=cdr(L)); + if(D>0xa0 && D<0xff) { + T=jis2sjis([iand(C,0x7f),iand(D,0x7f)]); + R=cons(T[0],R);R=cons(T[1],R); + }else return 0; + }else if(C == 0x0a){ + CR++; + }else if(C == 0x0d){ + R=cons(0x0a,R);R=cons(0x0d,R); + CR=0; + }else{ + while(CR-->0){ + R=cons(0x0a,R);R=cons(0x0d,R); + } + R=cons(C,R); + } + } + while(CR-->0){ + R=cons(0x0a,R);R=cons(0x0d,R); + } + return asciitostr(reverse(R)); +} + +def r2ma(S) +{ + return evalma(S|inv=1); +} + +def evalma(S) +{ + L0=["\n","\d","{","}","[","]","Log","Exp","Sinh","Cosh","Tanh","Sin","Cos","Tan", + "ArcSin","ArcCos","ArcTan"]; + L1=["", "" ,"[","]","(",")","log","exp","sinh","cosh","tanh","sin","cos","tan", + "asin", "acos", "atan"]; + if(getopt(inv)==1){ + if(type(S)==6) S=m2ll(S); + else if(type(S)==5) S=vtol(S); + if(type(S)==4){ + for(L=[];S!=[];S=cdr(S)){ + if(type(car(S))==6) L=cons(m2ll(car(S)),L); + else if(type(car(S))==5) L=cons(vtol(car(S)),L); + else L=cons(car(S),L); + } + S=reverse(L); + }else return 0; + return str_subst(rtostr(S),cdr(cdr(L1)),cdr(cdr(L0))); + } + if(S==0){ + print("Mathematica text (terminated by ;) ?"); + purge_stdin(); + Tb=str_tb(0,0); + for(;;){ + S=get_line(); + str_tb(S,Tb); + if(str_char(S,0,";")>=0) break; + } + S=str_tb(0,Tb); + } +/* + while((P=str_chr(S,0,";"))>=0){ + V0=evalma(str_cut(S,0,P+1)); + S=str_cut(S,P+1,length(S)); + } + if((P=str_char(S,0,"="))>=0){ + X=strtoascii(str_cut(S,0,P)); + L=length(X); + for(P0=P1=-1,I=0;I<L;I++){ + if(L(I)<=32) continue; + if(isalphanum(L[I])){ + if(P0<0){ + if(isnum(L[I])) break; + P0=I; + } + else if(P1!=I+1) break; + P1=I; + } + } + if(I==L && P0>=0){ + for(I==P0;I-->0;) X=cdr(X); + if((X0=car(X))>96) X0-=32; + Y=[X0];X=cdr(X); + for(I=P1-P0;I-->0;X=cdr(X)) + Y=cons(car(X),Y); + Y=cons(61,Y); + Var=asciitostr(reverse(Y)); + S=str_cut(S,P,length(S)); + } + } +*/ + S=eval_str(str_subst(S,L0,L1)); + if(type(S)==4){ + for(L=-1,T=S;T!=[];T=cdr(T)){ + if(type(T0=car(T))>4) break; + if(type(T0)<4){ + if(L>=0) break; + L=-2;continue; + } + if(L<-2) break; + if(L==-1) L=length(T0); + else if(L!=length(T0)) break; + } + if(T==[]){ + if(L>0) S=s2m(S); + else S=ltov(S); + } + } +/* + if(S==0 && V0!=0) return V0; + if(type(Var)==7){ + T=rtostr(S); + if(type(S)==7) T="\""+T+"\""; + S=eval_str(Var+T); + mycat(["Define",Var]); + } +*/ + return S; +} + +def i2hex(N) +{ + Opt=getopt(); + if(type(N)==4 && isint(car(N))){ +#ifdef USEMODULE + L=mtransbys(os_md.i2hex,N,[]|option_list=Opt); +#else + L=mtransbys(i2hex,N,[]|option_list=Opt); +#endif + return rtostr(L); + } + if(!isint(N) || N<0) return 0; + if(!N) L=[]; + else{ + Cap=(getopt(cap)==1)?32:0; + for(L=[];N!=0;N=ishift(N,4)){ + J=iand(N,15); + L=cons(((J>9)?(87-Cap):48)+J,L); + } + } + if(!isint(Min=getopt(min))) Min=2; + for(Min-=length(L);Min-->0;) + L=cons(48,L); + if(getopt(num)==1){ + L=cons(120,L);L=cons(48,L); + } + return asciitostr(L); +} + +def sjis2jis(L) +{ + L1=L[1]; + if((L0=L[0])<=0x9f){ + if(L1<0x9f) L0=L0*2-0xe1; + else L0=(L0*2)-0xe0; + }else{ + if(L1<0x9f) L0=L0*2-0x161; + else L0=L0*2-0x160; + } + if(L1<0x7f) return [L0,L1-0x1f]; + else if(L1<0x9f) return [L0,L1-0x20]; + return [L0,L1-0x7e]; +} + +def jis2sjis(L) +{ + L1=L[1]; + if(iand(L0=L[0],1)){ + if(L1<0x60) L=[L1+0x1f]; + else L=[L1+0x20]; + }else L=[L1+0x7e]; + if(L0<0x5f) return cons(ishift(L0+0xe1,1),L); + return cons(ishift(L0+0x161,1),L); +} + +def verb_tex_form(P) +{ + L = reverse(strtoascii(rtostr(P))); + for(SS = []; L != []; L = cdr(L)){ + Ch = car(L); /* ^~\{} */ + if(Ch == 92 || Ch == 94 || Ch == 123 || Ch == 125 || Ch == 126){ + SS = append([92,Ch,123,125],SS); /* \Ch{} */ + if(Ch != 94 && Ch != 126) /* \char` */ + SS = append([92,99,104,97,114,96],SS); + continue; + } + SS = cons(Ch, SS); + if((Ch >= 35 && Ch <= 38) || Ch == 95) /* #$%&_ */ + SS = cons(92, SS); /* \Ch */ + } + return asciitostr(SS); +} + +def tex_cuteq(S,P) +{ + if(P==0) return 0; + if(S[P]==125){ /* } */ + if((Q=str_pair(S,P-1,"{","}"|inv=1))<0) return -1; + if(Q<2||S[Q-1]!=95) return Q; + return tex_cuteq(S,Q-2); + } + if(!isalphanum(S[Q=P--])) return -1; + while(P>0&&isalphanum(S[P])) P--; + if(S[P]==92){ /* \ */ + if(P==0) return P; + else P--; + } + if(S[P]!=95||P==0) return Q; /* _ */ + return tex_cuteq(S,P-1); +} + + +def texket(S) +{ + if(!isint(F=getopt(all))) F=0; + if(type(S)==7){ + L=str_len(S); + SS=strtoascii(S); + }else{ + L=length(S); + SS=S; + } + for(T="",I=I0=0;I<L-1;){ + J=str_char(SS,I,"("); + if(J<0) break; + if(J<L-1 && J>4 && str_str(SS,"\\left"|top=J-5,end=J-1)>=0){ + I=J+1;continue; + } + if((K=str_pair(SS,J+1,"(",")"))>=0){ + KK=str_char(SS,J+2,"("); + if(KK>K||KK<0){ + if(F!=1){ + if(!F){ + for(N=J+1;N<K;N++) /* + - _ { } */ + if(!isalphanum(P=SS[N])&&findin(P,[32,43,45,95,123,125])<0) break; + }else N=K; + if(N==K){ + I=K+1;continue; + } + } + T=T+str_cut(SS,I0,J-1)+"\\left"+str_cut(SS,J,K-1)+"\\right)"; + I0=I=K+1; + }else{ + T=T+str_cut(SS,I0,J-1)+"\\left("+texket(str_cut(SS,J+1,K-1)|all=F) +"\\right)"; + I0=I=K+1; + } + }else break; + } + return T+str_cut(SS,I0,L); +} + + +def my_tex_form(S) +{ + if(getopt(skip) != 1){ + if(type(S)==1 && S<0) return "-"+print_tex_form(-S); + if(type(S)==6) return mtotex(S); + S = print_tex_form(S); + for(F=Top=0;(L=str_str(S,"\\verb`"|top=Top))>=0;Top=LV+1){ + F++; + if(Top==0) Tb = string_to_tb(""); + LV = str_chr(S, L+6, "`"); + if(LV<0) LV=str_len(S); + str_tb([my_tex_form(sub_str(S, Top, L-1)|skip=1), "\\texttt{"], Tb); + str_tb([verb_tex_form(sub_str(S,L+6, LV-1)),"}"], Tb); + Top=LV+1; + } + if(F>0){ + str_tb(my_tex_form(sub_str(S, Top,str_len(S)-1)|skip=1), Tb); + return tb_to_string(Tb); + } + } + if(S==0) return ""; + S = ltov(strtoascii(S)); + L = length(S)-1; + while(L >= 1 && S[L] == 10) + L--; + if((Fr=getopt(frac))!=0 && Fr!=1) Fr=2; + for(I = L+1, T = K = 0, SS = []; --I >= 0; ){ + if(S[I] == 32 && I!=L){ + if(I==L) continue; + if(findin(S[I+1], [32,40,41,43,45,123,125]) >= 0 /* " ()+-{}" */ + || (S[I+1] >= 49 && S[I+1] <= 57)) /* 1 - 9 */ + if(I == 0 || S[I-1] >= 32) continue; + } + if(Fr && S[I]>=48 && S[I]<=57){ /* 2/3 -> \tfrac{2}{3} */ + for(K=0,II=I; II>=0; II--){ + if(S[II]>=48 && S[II]<=57) continue; + if(S[II]==47){ /* / */ + if(K>0) break; + K=II; + }else break; + } + if(K>II+1){ + SS=cons(125,SS); + for(J=I; J>K; J--) SS=cons(S[J],SS); + if(AMSTeX){ + SS=cons(123,SS);SS=cons(125,SS); + }else{ + for(J=[114,101,118,111,92];J!=[];J=cdr(J)) /* \over */ + SS=cons(car(J),SS); + } + for(J=K-1;J>II;J--) SS=cons(S[J],SS); + SS=cons(123,SS); + if(AMSTeX){ + J=(Fr==2)?[99,97,114,102,116,92]:[99,97,114,102,92]; + for(;J!=[];J=cdr(J)) /* \tfrac */ + SS=cons(car(J),SS); + } + I=II+1; + }else{ + for(;I>II;I--) SS = cons(S[I], SS); + I++; + } + continue; + } + SS = cons(S[I], SS); + } + SS=str_subst(SS,"\\\\\n\\end{pmatrix}","\n\\end{pmatrix}"|raw=1); + Subst=getopt(subst); + Sub0=["{asin}","{acos}","{atan}"]; + Sub1=["\\arcsin ","\\arccos","\\arctan "]; + if(type(Subst) == 4){ + Sub0=append(Sub0,Subst[0]);Sub1=append(Sub1,Subst[1]); + } + SS = str_subst(SS,Sub0,Sub1|raw=1); + S = ltov(SS); + L = length(S); + SS = []; + while(--L >= 0){ + if(S[I=L] == 125){ + while(--I >= 0 && S[I] == 125); + J = 2*I - L; + if(J >= 0 && S[I] != 123){ + for(K = J; K < I && S[K] == 123; K++); + if(K == I){ + if(J-- <= 0 || S[J] < 65 || S[J] > 122 || (S[J] > 90 && S[J] < 97)){ + SS = cons(S[I],SS); + L = J+1; + continue; + } + } + } + } + SS = cons(S[L],SS); + } + RT=getopt(root); + for(Top=0;;Top++){ /* ((x+1))^{y} , 1/y=2,3,...,9 */ +#if 1 + P=str_str(SS,["))^","^{\\tfrac{1}"]|top=Top); + if(P[0]<0) break; + Sq=0; + if(P[0]==0){ + P=P[1]; + if((Q=str_pair(SS,P,"(",")"|inv=1))<0||SS[Q+1]!=40) continue; + if((RT==2||(RT!=0 && P-Q<33)) && str_str(SS,"{\\tfrac{1}"|top=P+3,end=P+3)==P+3 + && SS[P+14]==125){ + if((Sq=SS[P+13]-48)<2||Sq>9) Sq=0; + } + F=2; + }else{ + P=P[1]; + if(SS[P+12]!=125||(Sq=(SS[P+11]-48))<2||Sq>9) break; + if(SS[P-1]==125){ + if((Q=str_pair(SS,P-2,"{","}"|inv=1))<0) break; + if(Q>1&&SS[Q-1]==95){ + if((Q=tex_cuteq(SS,Q-2))<0) break; + F=0; + }else F=1; + }else{ + if(!isalphanum(SS[Q=P-1]) || (Q=tex_cuteq(SS,Q))<0) break; + F=0; + } + if(RT!=2&&P-Q>32) break; + } +#else + if((P=str_str(SS,"))^"|top=Top))<0 || (Q=str_pair(SS,P,"(",")"|inv=1))<0) break; + else F=2; + Sq=0; + if((RT==2||(RT!=0 && P-Q<33)) && str_str(SS,"{\\tfrac{1}"|top=P+3,end=P+3)==P+3 + && SS[P+14]==125){ + if((Sq=SS[P+13]-48)<2||Sq>9) Sq=0; + } +#endif + for(I=0,S=[];SS!=[];SS=cdr(SS),I++){ + if(I==Q){ + if(Sq){ + S=append([116,114,113,115,92],S); + if(Sq>2) S=append([93,Sq+48,91],S); + S=cons(123,S); + if(F==2) SS=cdr(SS); + else if(F==0) S=cons(car(SS),S); + }else if(F==2&&P-Q==3){ /* (2)^x -> 2^x*/ + SS=cdr(SS);SS=cdr(SS); + S=cons(123,S);S=cons(car(SS),S);S=cons(125,S); + SS=cdr(SS);SS=cdr(SS); + I+=3; + } + continue; + }else if(I==P){ + if(Sq){ + if(F>0) S=cdr(S); + S=cons(125,S); + if(F==2) SS=cdr(SS); + for(J=0;J<12;J++) SS=cdr(SS); + } + continue; + } + S=cons(car(SS),S); + } + SS=reverse(S); + Top=P; + } + S=asciitostr(SS); + if((K=getopt(ket))==1) S=texket(S); + else if(K==2) S=texket(S|all=1); + return S; +} + +def smallmattex(S) +{ + return str_subst(S,[["\\begin{pmatrix}","\\left(\\begin{smallmatrix}"], + ["\\end{pmatrix}","\\end{smallmatrix}\\right)"], + ["\\begin{Bmatrix}","\\left\\{\\begin{smallmatrix}"], + ["\\end{Bmatrix}","\\end{smallmatrix}\\right\\}"], + ["\\begin{bmatrix}","\\left[{\\begin{smallmatrix}"], + ["\\end{bmatrix}","\\end{smallmatrix}\\right]"], + ["\\begin{vmatrix}","\\left|\\begin{smallmatrix}"], + ["\\end{vmatrix}","\\end{smallmatrix}\\right|"], + ["\\begin{Vmatrix}","\\left\\|\\begin{smallmatrix}"], + ["\\end{Vmatrix}","\\end{smallmatrix}\\right\\|"], + ["\\begin{matrix}","\\begin{smallmatrix}"], + ["\\end{matrix}","\\end{smallmatrix}"]],0); +} + + +def divmattex(S,T) +{ + TF=["matrix","pmatrix","Bmatrix","bmatrix","vmatrix","Vmatrix"]; + TG=[0,"(","\\{","[","|","\\|"]; + TH=[0,")","\\}","]","|","\\|"]; + if(type(S)!=7) S=mtotex(S); + S=strtoascii(S0=S); + if((P0=str_str(S,"\\begin{"))<0 || (P1=str_str(S,"}"|top=P0+7))<0) + return S0; + F=str_cut(S,P0+7,P1-1); + if((K=findin(F,TF))<0) return S0; + Q=str_str(S,"\\end{"+F+"}"); + if(Q<0) return S0; + for(J=P1+1;S[J]<33;J++); + for(L0=L=[],I=J;J<Q;J++){ + if(S[J]==38){ /* & */ + if(I>=J) L0=cons(0,L0); + else L0=cons(str_cut(S,I,J-1),L0); + I=J+1; + } + if(S[J]==92&&S[J+1]==92){ /* \\ */ + if(I>=J) L0=cons(0,L0); + else L0=cons(str_cut(S,I,J-1),L0); + L=cons(reverse(L0),L); + L0=[]; + J++; + for(I=J+1;S[I]<33;I++); + } + } + J--; + if(S[J]<33) J--; + if(I<=J) L0=cons(str_cut(S,I,J),L0); + if(length(L0)>0) L=cons(reverse(L0),L); + L=lv2m(reverse(L)); /* get matrix */ + if(T==0) return L; + Size=size(L);S0=Size[0]; + if(type(T[0])!=4){ + S1=Size[1]; + T=append(T,[S1]); + for(TT=[],I=0;T!=[];T=cdr(T)){ + J=car(T); + if(J>S1) J=S1; + for(T0=[];J>I;J--) T0=cons(J-1,T0); + if(T0!=[]) TT=cons(T0,TT); + I=car(T); + } + T=reverse(TT); + } + SS=length(T); + St=str_tb(0,0); + if(SS==1) St=str_tb("\\begin{"+F+"}\n",St); + else{ + if(K>0) St=str_tb("&\\left"+TG[K],St); + St=str_tb("\\begin{matrix}\n",St); + } + for(;T!=[];T=cdr(T)){ + for(I=0;I<S0;I++){ + for(J=0,TT=car(T);TT!=[];TT=cdr(TT),J++){ + if(J>0) St=str_tb("&",St); + if(L[I][car(TT)]!=0) St=str_tb(L[I][car(TT)],St); + } + if(I<S0-1) St=str_tb("\\\\",St); + St=str_tb("\n",St); + } + if(length(T)>1) + St=str_tb("\\end{matrix}\\right.\\\\\n&\\quad\\left.\\begin{matrix}\n",St); + else{ + if(SS==1) St=str_tb("\\end{"+F+"}\n",St); + else St=str_tb("\\end{matrix}\\right"+TH[K]+"\n",St); + } + } + S=str_tb(0,St); + if(SS==1) return S; + return texbegin("align*",S); +} + +def str_subst(S, L0, L1) +{ + if(type(S) == 7) + S = strtoascii(S); + if(type(S) == 4) + S = ltov(S); + SE = length(S); + if(L1 == 0){ + for(L1 = L = [], L0 = reverse(L0); L0 != []; L0 = cdr(L0)){ + L = cons(car(L0)[0], L); + L1 = cons(car(L0)[1], L1); + } + L0 = L; + } + if(type(L0)==7) L0 = [strtoascii(L0)]; + else{ + for(LT = []; L0 != []; L0 = cdr(L0)) + LT = cons(strtoascii(car(L0)), LT); + L0 = ltov(LT); + } + E0 = length(L0); + if(type(L1)==7) L1 = [strtoascii(L1)]; + else{ + for(LT = []; L1 != []; L1 = cdr(L1)) + LT = cons(strtoascii(car(L1)), LT); + L1 = ltov(LT); + } + if(getopt(inv)==1){ + L2=L0;L0=L1;L0=L2; + } + if((SJIS=getopt(sjis))!=1) SJIS=0; + for(J = JJ = 0, ST = []; J < SE; J++){ + SP = S[J]; + for(I = E0-1; I >= 0; I--){ + if(SP != L0[I][0] || J + (K = length(L0[I])) > SE) + continue; + while(--K >= 1) + if(L0[I][K] != S[J+K]) break; + if(K > 0) continue; + for(KE = length(L1[I]), K = 0 ;K < KE; K++) + ST = cons(L1[I][K],ST); + J += length(L0[I])-1; + break; + } + if(I < 0){ + ST = cons(S[J],ST); + if(SJIS && (V=S[J])>128){ + if(V<160 || (V>223 && V<240)) ST = cons(S[J++],ST); + } + } + } + if(getopt(raw)==1) return reverse(ST); + return asciitostr(reverse(ST)); +} + +def dviout0(L) +{ + Cmd=["TikZ","TeXLim","TeXEq","DVIOUT","XYPrec","XYcm","XYLim","Canvas"]; + if(type(Opt=getopt(opt))==7){ + if((F=findin(Opt,Cmd)) < 0) return -1; + if(L==-1){ + if(F<=3){ + if(F==0) V=TikZ; + else if(F==1) V=TeXLim; + else if(F==2) V=TeXEq; + else V=iand(DVIOUTF,1); + }else{ + if(F==4) V=XYPrec; + else if(F==5) V=XYcm; + else if(F==6) V=XYLim; + else V=Canvas; + } + return V; + } + if(F==0) TikZ=L; + else if(F==2) TeXEq=L; + else if(F==3){ + if(iand(DVIOUTF,1)==L) + mycat0(["DVIOUTA=\"", DVIOUTA,"\""],1); + else dviout0(4); + return 1; + }else if(F==7&&type(L)==4) + Canvas=L; + else if(L>0){ + if(F==1) TeXLim=L; + else if(F==4) XYPrec=L; + else if(F==5) XYcm=L; + else if(F==6) XYLim=L; + } + mycat0([Cmd[F],"=",L],1); + return 1; + } + if(type(L) == 4){ + for( ; L != []; L = cdr(L)) dviout0(car(L)); + return 1; + } + if(type(L) == 7){ + if(L=="") dviout(" \n"|keep=1); + else if(L=="cls") dviout0(0); + else if(L=="show") dviout(" "); + else if(L=="?") dviout0(3); + else dviout("\\"+L+"\n"|keep=1); + return 1; + } + if(L == 0) + dviout(" "|keep=1,clear=1); + else if(L == 1) + dviout(" "); + else if(L == 2) + dviout(" "|clear=1); + else if(L>10) + dviout("\\setcounter{MaxMatrixCols}{"+rtostr(L)+"}%"|keep=1); + else if(L < 0) + dviout(" "|delete=-L,keep=1); + else if(L == 3){ + mycat0(["DIROUT =\"", DIROUT,"\""],1); + mycat0(["DVIOUTH=\"", DVIOUTH,"\""],1); + mycat0(["DVIOUTA=\"", DVIOUTA,"\""],1); + mycat0(["DVIOUTB=\"", DVIOUTB,"\""],1); + mycat0(["DVIOUTL=\"", DVIOUTL,"\""],1); + mycat(["Canvas =", Canvas]); + mycat(["TeXLim =", TeXLim]); + mycat(["TeXEq =", TeXEq]); + mycat(["AMSTeX =", AMSTeX]); + mycat(["TikZ =", TikZ]); + mycat(["XYPrec =", XYPrec]); + mycat(["XYcm =", XYcm]); + mycat(["XYLim =", XYLim]); + }else if(L==4){ + Tmp=DVIOUTA; DVIOUTA=DVIOUTB; DVIOUTB=Tmp; + mycat0(["DVIOUTA=\"", DVIOUTA,"\""],1); + DVIOUTF++; + }else if(L==5){ + if(!iand(DVIOUTF,1)) dviout0(4); + }else if(L==6){ + TikZ=1;mycat("TikZ=1"); + }else if(L==7){ + TikZ=0;mycat("TikZ=0"); + } + return 1; +} + +def myhelp(T) +{ + /* extern DVIOUT; */ + /* extern HDVI; */ + /* extern DVIOUTH; */ + + if(type(T)==2){ + if(T==getbygrs){ + getbygrs(0,0); + return 0; + } + else if(T==m2mc){ + m2mc(0,0); + return 0; + } + else if(T==mgen){ + mgen(0,0,0,0); + return 0; + } + else T=rtostr(T); + } + if(type(T)==4 && typeT[0]==7){ + if(length(T)==2 && type(T[1])==1){ + DVIOUTH="start "+T[0]+" -"+rtostr(T[1])+"-hyper:0x90 \"%ASIRROOT%\\help\\os_muldif.dvi\" #r:%LABEL%"; + }else if(str_len(T[0])>2) DVIOUTH=T[0]; + mycat(["DVIOUTH="+DVIOUTH,"\nmyhelp(fn) is set!"]); + return 0; + } + if(T==0){ + mycat([ + "myhelp(t) : show help\n", +#ifdef USEMODULE + " t : -1 (dvi), 1 (pdf) or os_md.getbygrs, os_md.m2mc, os_md.mgen\n", +#else + " t : -1 (dvi), 1 (pdf) or getbygrs, m2mc, mgen\n", +#endif + " \"fn\" : Help of the function fn\n", + " [path,n] : path of dviout, n = # dviout\n", + " [DVIOUTH] : Way to jump to the help of a function\n", + " default: start dviout -2 \"%ASIRTOOT%\\help\\os_muldif.dvi\" #r:%LABEL%" + ]); + return 0; + } + if(type(T)==7){ + if(str_str(T,"os_md.")==0) T=str_cut(T,6,str_len(T)-1); + Dr=str_subst(DVIOUTH,["%ASIRROOT%","%LABEL%"],[get_rootdir(),"r:"+str_subst(T,"_","")]); + shell(Dr); + return 0; + } + Dr=get_rootdir(); + if(T==-1) Dr+="\\help\\os_muldif.dvi"; + else Dr+="\\help\\os_muldif.pdf"; + if(!isMs()) Dr=str_subst(Dr,"\\","/"); + shell(Dr); + return 0; +} + +def isMs() +{ + if(type(Tmp=getenv("TEMP"))!=7) { + if (type(Tmp=getenv("TMP")) != 7) Tmp=getenv("HOME"); + } + if(type(Tmp)==7 && str_chr(Tmp,0,"\\")==2) return 1; + else return 0; +} + +def tocsv(L) +{ + if(type(L)==6) L=m2ll(L); + else if(type(L)==5) L=vtol(L); + Null=getopt(null); + Tb=str_tb(0,0); + for(LL=L; LL!=[]; LL=cdr(LL)){ + LT=car(LL); + if(type(LT)==5) LT=vtol(LT); + if(type(LT)<4) LT=[LT]; + for(N=0; LT!=[]; LT=cdr(LT),N++){ + if(N) str_tb(", ",Tb); + if((T=car(LT))==Null) continue; + if(type(T)==7){ + K=str_len(T); + T=str_subst(T,["\""],["\"\""]); + if(str_len(T)>K||str_char(T,0,",")>=0) T="\""+T+"\""; + str_tb(T,Tb); + }else str_tb(rtostr(T),Tb); + } + str_tb("\n",Tb); + } + S=str_tb(0,Tb); + if(type(EXE=getopt(exe))!=1&&EXE!=0&&type(EXE)!=7) return S; + if(type(F)!=7){ + F="risaout"; + if(EXE>=2&&EXE<=9) F+=rtostr(EXE); + F=DIROUTD+F+".csv"; + }else F=S; + if(EXE!=0 && access(F)) remove_file(F); + fcat(F,S|exe=1); + return 1; +} + +def readcsv(F) +{ + if((ID=open_file(F))<0) return -1; + SJIS=isMs(); + L=[]; + if(type(V=getopt(eval))!=4){ + if(V=="all") V=1; + else if(type(V)==1) V=[V]; + else V=[]; + } + Eq=getopt(eq); + Sp=getopt(sp); + if(type(T=getopt(col))!=1) T=0; + Null=getopt(null); + if(type(Null)<0) Null=(Eq==1)?0:""; + while((S=get_line(ID))!=0){ + S=strtoascii(S); + N=length(S); + for(I=J=F=0,LL=LT=[];I<N;I++){ + C=S[I]; + if(F==0){ + if(C<=32) continue; + if(C==34){F=2;continue;} + F=1; + } + if(F==2 && C==34){ + if(I<N-1&& S[I+1]==34){ + LT=cons(34,LT);I++;continue; + } + F=-2; + } + if(F==1){ + if((C==44&&Sp!=1)||(C<=32&&Sp==1)) F=-1; + else if(C<32 && C!=9) continue; + } + if(SJIS && I<N-1 && ((C>128 && C<160)||(C>223 && C<240))){ + LT=cons(C,LT);LT=cons(S[++I],LT);continue; + } + if(F>0){ + LT=cons(C,LT);continue; + } + LS=asciitostr(reverse(LT)); + if(V==1||findin(++J,V)>=0){ + if(Eq==1) LS=(LS=="")?Null:eval_str(LS); + else LS=(isdecimal(LS))?eval_str(LS):((LS=="")?Null:LS); + } + if(!T || T==J) LL=cons(LS,LL); + if(F==-2) while(++I<N && Sp!=1 && S[I]!=44); + F=0;LT=[]; + } + if(I<=N && (Sp!=1 || length(LT)>0)){ /* lastline */ + LS=asciitostr(reverse(LT)); + if(V==1||findin(++J,V)>=0){ + if(Eq==1) LS=(LS=="")?Null:eval_str(LS); + else LS=(isdecimal(LS))?eval_str(LS):((LS=="")?Null:LS); + } + if(!T || T==J) LL=cons(LS,LL); + } + L=cons(reverse(LL),L); + } + close_file(ID); + if(T) L=m2l(L|flat=1); + L=reverse(L); + return L; +} + +def showbyshell(S) +{ + Id = getbyshell(S); + if(Id<0) return Id; + while((S=get_line(Id))!=0) print(S,2); + return close_file(Id); +} + + +def getbyshell(S) +{ + /* extern DIROUT; */ + + Home=getenv("HOME"); + if(type(Home)!=7) Home=""; + if(type(Tmp=getenv("TEMP"))!=7 && type(Tmp=getenv("TMP")) != 7) + Tmp=str_subst(DIROUT,["%HOME%","%ASIRROOT%"],[Home,get_rootdir()]); + Sep=isMs()?"\\":"/"; + F=Tmp+Sep+"muldif.tmp"; + if(type(S)<=1 && S>=0) close_file(S); + remove_file(F); + if(type(S)<=1) return -1; + shell(S+" > \""+F+"\""); + return open_file(F); +} + +def show(P) +{ + T=type(P); + S=P; + Var=getopt(opt); + if(Var=="verb"){ + dviout("{\\tt"+verb_tex_form(T)+"}\n\n"); + return; + } + if(type(Var)<0) Var=getopt(var); + if(T==6){ + if((Sp=getopt(sp))==1 || Sp==2) + S=mtotex(P|lim=1,small=2,sp=Sp,null=1,mat="B"); + else if(type(Var)==4 || type(Var)==7) + S=mtotex(P|lim=1,small=2,var=Var); + else + S=mtotex(P|lim=1,small=2); + Size=size(P); + Size=(Size[0]>Size[1])?Size[0]:Size[1]; + if(Size>10) dviout0(Size); + }else if(T<=3){ + X=0; + if(Var=="pfrac") X=var(P); + else X=getopt(pfrac); + if(isvar(X)){ + pfrac(P,X|dviout=1); + return; + } + Opt=cons(["dviout",1],getopt()); + if(type(Var)==2||type(Var)==4||type(Var)==7) fctrtos(P|option_list=Opt); + else{ + if(isdif(P)!=0) Opt=cons(["var","dif"],Opt); + else Opt=cons(["br",1],Opt); + fctrtos(P|option_list=Opt); + } + return; + }else if(T==4){ + if(type(Var)==4 || type(Var)==7){ + S=ltotex(P|option_list=getopt()); + if(Var=="text"){ + dviout(S); + return; + } + }else{ + for(F=0,L=P;L!=[] && F!=-1;L=cdr(L)){ + LL=car(L); + if(type(LL)==4){ + if(F==0){ + T=type(LL[0]); + if(T==4) F=2; /* [[[? */ + else if(T==1 || T==0) F=1; /* [[num,.. */ + } + if(F==1){ + if(length(LL)!=2 || !isint(LL[0]) || LL[0]<0 || type(LL[1])>3) + F=-1; /* [[num,rat],[num,rat],...] */ + }else if(F==2){ + for(LLT=LL; LLT!=[] && F!=-1; LLT=cdr(LLT)){ + LLL=car(LLT); /* [[[num,rat],[num,rat],...],[[..],..]],....] */ + if(length(LLL)!=2 || !isint(LLL[0]) || LLL[0]<0 || type(LLL[1])>3) + F=-1; + } + } + }else if((F==0 || F==7) && type(LL)==7){ + F=7; + }else F=-1; + } + if(F==1) S=ltotex(P|opt="spt"); + else if(F==2){ + M=mtranspose(lv2m(S)); + show(M|sp=1); /* GRS */ + return; + }else if(F==7) S=ltotex(P|opt="spts"); + else{ + for(F=0,L=P;L!=[] && F!=-1;L=cdr(L)){ + LL=car(L); + if(type(LL)!=4){ + F=-1; break; + } + for(LLT=LL; LLT!=[] && F!=-1; LLT=cdr(LLT)){ + T=type(LLL=car(LLT)); + if(T<7 && T!=4) F0++; + else if(T==7){ + if(str_char(LLL,0,"\\")<0) F1++; + else F2++; + }else F=-1; + } + } + } + if(F==0 && F0>0 && (F1+F2)>0){ /* list of list of eq and str */ + if(F2>0) S=ltotex(P|opt=["cr","spts0"],str=1); + else S=ltotex(P|opt=["cr","spts"]); + }else{ + for(S="[";;){ + S+=my_tex_form(car(P)); + if((P=cdr(P))==[]){ + S+="]";break; + } + S+=","; + } + } + } + }else if(T==7){ + if(Var=="raw" || + (Var !="eq" && str_chr(P,0,"\\")<0 && str_char(P,0,"^")<0 && str_char(P,0,"_")<0 + && str_char(P,0,"&")<0)){ + dviout(P+"\n\n"); + return; + } + } + dviout(S|eq=5); +} + + +/* options : eq = 1 - 8, clear=1, keep=1, delete=1, title=s, + fctr=1, begin=s */ +def dviout(L) +{ + /* extern AMSTeX, TeXEq, DIROUT, DVIOUTA, DVIOUTB, DVIOUTL; */ + + MyEq = [ + ["\\[\n ","\\]"], + ["\\begin{align}\n","\\end{align}"], + ["\\begin{gather}\n ","\\end{gather}"], + ["\\begin{multline}\n ","\\\\[-15pt]\\end{multline}"], + ["\\begin{align}\\begin{split}\n &","\\end{split}\\end{align}"], + ["\\begin{align*}\n &","\\end{align*}"], + ["\\begin{gather*}\n ","\\end{gather*}"], + ["\\begin{equation}\n ","\\end{equation}"] + ]; + if(!chkfun("print_tex_form", "names.rr")) + return 0; + Home=getenv("HOME"); + if(type(Home)!=7) Home=""; + Dir=str_subst(DIROUT,["%HOME%","%ASIRROOT%","\\"],[Home,get_rootdir(),"/"]); + Dirout=Dir+(AMSTeX?"/out.tex":"/out0.tex"); + Risaout=(AMSTeX)?"risaout":"risaout0"; + Dirisa=Dir+"/"+Risaout+".tex"; + Viewer="dviout"; + SV=["c:/w32tex/dviout","c:/dviout"]; + Risatex=str_subst(AMSTeX?DVIOUTA:DVIOUTL, + ["%HOME%","%ASIRROOT%","%TikZ%"],[Home,get_rootdir(),rtostr(TikZ)]); + if(isMs() && !access(Risatex)){ + for(TV=SV; TV!=[]; TV=cdr(TV)){ + VV=car(TV)+"/dviout.exe"; + if(access(VV)){ + Viewer=str_subst(VV,"/","\\"); + break; + } + } + output(Risatex); + print("cd \""+str_subst(Dir,"/","\\")+"\""); + print("latex -src=cr,display,hbox,math,par "+Risaout); + print("start "+Viewer+" -1 \""+Dr+"\\tex\\"+Risaout+"\" 1000"); + output(); + } + if(access(Dirisa) == 0){ + D0="\""+(isMs()?str_subst(Dir,"/","\\")+"\"":Dir); + shell("mkdir "+D0); + output(Dirisa); + if(AMSTeX){ + print("\\documentclass[a4paper]{amsart}"); + print("\\usepackage{amsmath,amssymb,amsfonts}"); + }else + print("\\documentclass[a4paper]{article}"); + print("\\pagestyle{empty}\n\\begin{document}\n\\thispagestyle{empty}"); + print(AMSTeX?"\\input{out}\n\\end{document}":"\\input{out0}\n\\end{document}"); + output(); + } + if((K = getopt(delete)) >= 1){ /* delete */ + LC = 0; + if(type(K) == 1 && K > 10) K = 10; + if(type(K) == 4){ + K = qsort(K); + LC = 1; /* specific lines */ + } + Done = 1; + Id = open_file(Dirout); + if(Id >= 0){ + Buf = Buf0 = Buf1 = Key = ""; + PE = 0; + if(type(K) == 1) + BufE = newvect(K--); + Dout = Dirout+"0"; + remove_file(Dout); + output(Dout); + while((S = get_line(Id)) != 0){ + if(LC){ + while(K != [] && car(K) < LC) + K = cdr(K); + if(K == [] || car(K) > LC) + output(S); + } + if(Key == ""){ + if((P0 = str_str(S,"\\begin{")) == 0){ + Key = sub_str(S,7,str_str(S,"}")-1); + if(findin(Key,["align", "gather","multline", "equation","align*"]) < 0) + Key = ""; + else{ + Key = "\\end{"+Key+"}"; + if(!LC){ + if(Buf != ""){ + if(PE < K) + BufE[PE++] = Buf1+Buf; + else{ + if(K > 0){ + print(BufE[0]); + for(I = 1; I < K; I++) + BufE[I-1]=BufE[I]; + BufE[K-1] = Buf1+Buf; + }else + print(Buf1+Buf); + Done = 0; + } + Buf1 = Buf0; + Buf = Buf0 =""; + } + } + } + } + if(Key == "" && !LC) Buf0 += S; + } + if(Key != ""){ + if(!LC) Buf += S; + if(str_str(S,Key) >= 0){ + Key = ""; + if(LC) LC++; + } + } + } + output(); + close_file(Id); + } + if(Done==0){ + Id = open_file(Dout); + if(Id >= 0){ + remove_file(Dirout); + output(Dirout); + while((S = get_line(Id)) != 0) + print(S,0); + output(); + close_file(Id); + } + remove_file(Dout); + }else L=" "; + } + if(getopt(clear) == 1 || Done == 1){ /* clear */ + remove_file(Dirout); + if(L == "" || L == " "){ + output(Dirout); + print("\\centerline{Risa/Asir}"); + output(); + } + } + if(L != " "){ + Eq=1; + Eqo = getopt(eq); + Fc = getopt(fctr); + if(Fc == 1 && (type(L) == 2 || type(L) == 3)){ + L = fctrtos(L|TeX=1); + if(type(L) == 4) + L = "\\fact{"+L[0]+"}{"+L[1]+"}"; + if(type(Eqo) != 0 && type(Eqo) !=7){ + Eqo=0; + } + } + if(type(L) != 4 || getopt(mult) != 1) + L = [L]; + if(type(Eqo)!=7 && (Eqo<1 || Eqo>8)) + Eqo = (AMSTeX==1)?TeXEq:1; + Title = getopt(title); + if(type(Title) == 7){ + output(Dirout); + print(Title); + output(); + } + Sb = getopt(subst); + for( ; L != []; L = cdr(L)){ + Eq = 1; + if(type(LT=car(L)) != 7 && type(LT) != 21) + LT = my_tex_form(LT); + else if(type(getopt(eq)) < 0) + Eq = 0; + if(type(Sb) == 4) + LT = str_subst(LT,Sb[0],Sb[1]); + output(Dirout); + if(Eq == 1){ + if(type(Eqo)==7) + print(texbegin(Eqo,LT)); + else if(Eqo >= 1 && Eqo <= 8){ + mycat0([MyEq[Eqo-1][0],LT,"%"],1); + print(MyEq[Eqo-1][1]); + }else print(LT); + }else print(LT); + output(); + } + } + if(str_char(Risatex,0," ")>=0 && str_char(DVIOUTA,0," ")<0 && str_char(DVIOUTB,0," ")<0 + && str_char(DVIOUTL,0," ")<0) + Risatex="\""+Risatex+"\""; + if(getopt(keep) != 1) shell(Risatex); + return 1; +} + +def rtotex(P) +{ + S = my_tex_form(P); + return (str_len(S) == 1)?S:"{"+S+"}"; +} + +def mtotex(M) +{ + /* extern TexLim; */ + + MB=mat(["(",")","p"],["\\{","\\}","B"],["[","]","b"],["|","|","v"], + ["\\|","\\|","V"], [".",".",""]); + if(type(MT=getopt(mat))==7){ + MT=findin(MT,["p","B","b","v","V",""]); + if(MT<0) MT=0; + } + else MT=0; + MT=MB[MT]; + if((F=getopt(small))!=1 && F!=2) F=0; + Lim=getopt(lim); + if(type(Lim)==1){ + if(Lim<30 && Lim!=0) Lim = TexLim; + }else Lim=0; + FL=getopt(len); + Rw=getopt(raw); + Sp=getopt(sp); + Idx=getopt(idx); + if(type(Idx)==4) Idx=ltov(Idx); + if(type(Idx)==6 && length(Idx)==0) Idx=-1; + Var=getopt(var); + if(Lim>0) FL=1; + Null=getopt(null); + if(Null!=1 && Null!=2) Null=0; + if(type(M)==5) M=lv2m([V]); + else if(type(M)!=6) return monototex(M); + S=size(M); + if(FL==1){ + L=newmat(S[0],S[1]); LL=newvect(S[1]); + } + SS=newmat(S[0],S[1]); + for(I=0; I<S[0]; I++){ + for(J=0; J<S[1]; J++){ + if(type(P=M[I][J])<=3){ + if(P!=0 || Null == 0 || (Null==2 && I==J)){ + SS[I][J]=(type(Var)>1)?fctrtos(P|TeX=2,lim=0,var=Var):fctrtos(P|TeX=2,lim=0); + if(type(P)==1 && str_str(SS[I][J],"\\frac{-"|end=0)==0) + SS[I][J]="-\\frac{"+str_cut(SS[I][J],7,100000); + } + }else if(type(P)==6){ + ST= mtotex(P|small=1,len=1); + SS[I][J]=ST[0]; + L[I][J]=ST[1]; + }else if(type(P)==7){ + if(Rw==1) SS[I][J]=P; + else SS[I][J]="\\text{"+P+"\}"; + }else if(type(P)==4 && length(P)==2 && P[0]>0 && (Sp==1 || Sp==2)){ + if(P[0]==1){ + SS[I][J]=fctrtos(P[1]|TeX=2,lim=0); + }else{ + ST=my_tex_form(P[0]); + if(Sp==2) ST="("+ST+")"; + SS[I][J]="["+fctrtos(P[1]|TeX=2,lim=0)+"]_"; + if(str_len(ST)<2) SS[I][J]+=ST; + else SS[I][J]+="{"+ST+"}"; + } + }else + SS[I][J]=my_tex_form(P); + if(FL==1) L[I][J]=texlen(SS[I][J]); + } + } + if(Lim>0 || FL==1){ + for(LLL=J=0; J<S[1];J++){ + for(I=K=0; I<S[0];I++){ + if(K<L[I][J]) K=L[I][J]; + } + LLL+=(LL[J]=K); + } + } + if(Lim>0){ + if(F==2 && LLL>Lim-2*S[1]-2) F=1; + if(F==1) + Lim=idiv(Lim*6,5); + if(LLL<=Lim-(2-F)*S[I]-2) Lim=0; + } + Mat=(F==1)?"smallmatrix}":"matrix}"; + if(F==1) Out=str_tb("\\left"+MT[0]+"\\begin{",0); + else Out=str_tb((Lim==0)?"\\begin{"+MT[2]:"\\left"+MT[0]+"\\begin{",0); + Out = str_tb(Mat,Out); + for(I=II=LT=0; II<=S[0]; II++){ + if(Lim==0) II=S[0]; + if(II<S[0]){ + K=LL[II]+(2-F); + if(I==II){ + LT+=K; + continue; + } + if(LT+K<Lim-2) continue; + LT=K; + } + for(I0=I; I<II; I++){ + if(I==I0){ + str_tb((I==0)? + "\n ": + "\\right.\\\\\n \\allowdisplaybreaks\\\\\n &\\ \\left.\\begin{"+Mat+"\n ", Out); + if(Idx==1||Idx==0||type(Idx)==5){ + for(J=I; J<II; J++){ + if(type(Idx)!=4) + str_tb("("+rtostr(J+Idx)+")",Out); + else{ + JJ=length(Idx)-1; + if(J<JJ) JJ=J; + str_tb(my_tex_form(Idx[JJ]),Out); + } + if(J<II) str_tb(" & ",Out); + } + str_tb("\\\\\n ",Out); + } + } + else str_tb("\\\\\n ",Out); + for(J=0; J<S[1]; J++){ + if(J!=0) str_tb(" & ",Out); + if(type(SS[I][J])==7) str_tb(SS[I][J],Out); + } + } + Out=str_tb("\n\\end{", Out); + if(II==S[0]) Out=str_tb((Lim==0&&F!=1)?MT[2]+Mat:Mat+"\\right"+MT[1],Out); + else Out=str_tb(Mat+"\\right.",Out); + } + SS = str_tb(0,Out); + if(FL!=1) return SS; + if(F==1) LLL=idiv((LLL+S[1])*5+13,6); + else LLL+=2*(1+S[1]); + return [SS,LLL]; +} + +def sint(N,P) +{ + if( type(N)==1 || N==0 ) { + NT=ntype(N); + if((type(Opt=getopt(str))==1 || Opt==0) && Opt>=0 && P>=0){ + if(Opt==2 || Opt==4 || Opt==0){ + if(N==0) return (Opt>0)?"0":0; + Pw=0; + if(NT==4){ + NN=abs(real(N));N1=abs(imag(N)); + if(NN<N1) NN=N1; + }else NN=abs(N); + while(NN<1 && NN>-1){ + Pw--; + N*=10;NN*=10; + } + while(N>=10 || N<=-10){ + Pw++; + N/=10;NN/=10; + } + if(Opt==0) return sint(N*10^Pw,P-Pw-1); + S=(getopt(sqrt)==1)?sint(N,P|str=(Opt==4)?3:1,sqrt=1):sint(N,P|str=(Opt==4)?3:1); + if(Pw==0) return S; + if(NT==4) + S="("+S+")"; + if(Pw==1){ + if(Opt==2) + return S+"*10"; + else + return S+"\\times10"; + } + if(Opt==2) + return S+"*10^("+rtostr(Pw)+")"; + else + return S+"\\times10^{"+rtostr(Pw)+"}"; + } + if(NT==4){ + NN=real(N); + if(NN!=0){ + S=sint(NN,P|str=1); + if(imag(N)>0) S=S+"+"; + } + else S=""; + S=S+sint(imag(N),P|str=1)+((Opt==3)?((getopt(sqrt)==1)?"\\sqrt{-1}":"i"):"@i"); + return S; + } + if(N<0){ + N=-N; + Neg="-"; + }else Neg=""; + N=rint(N*10^P)/10^P; + NN=floor(N); + NV=(N-NN+1)*10^P; + NS=rtostr(NN); + if(P<=0) return Neg+NS; + if(NN==0 && getopt(zero)==0) NS=""; + return Neg+NS+"."+str_cut(rtostr(NV),1,P); + } + if(NT==4) + return sint(real(N),P)+sint(imag(N),P)*@i; + X = rint( N*10^P ); + return deval(X/10^P); + } + if( (type(N)==2) || (type(N)==3) ){ + NN = eval(N); + if( type(NN)==1 ) + return sint(NN,P|option_list=getopt()); + else return N; + } + if( type(N)>3 && type(N) < 7) +#ifdef USEMODULE + return mtransbys(os_md.sint,N,[P]|option_list=getopt()); +#else + return mtransbys(sint,N,[P]|option_list=getopt())); +#endif + return N; +} + +def frac2n(N) +{ + if((T=type(N))<0) return N; + E=(getopt(big)==1)?eval(@e):0.1; + if(T==1){ + if(ntype(N)==0) return (E*N)/E; + else if(ntype(N)!=4) return N; + else return (E*(1+@i)*N)/(E*(1+@i)); + } + if(T==3||T==2){ + N=red(N); + Nm=nm(N);Var=vars(Nm);V=car(Var);K=length(Var); + for(S=0,I=mydeg(Nm,V);I>=0;I--) S+=frac2n(mycoef(Nm,I,V))*V^I; + return S/dn(N); + } + if(T<4) return (E*N)/E; +#ifdef USEMODULE + return mtransbys(os_md.frac2n,N,[]|option_list=getopt()); +#else + return mtransbys(frac2n,N,[]|option_list=getopt()); +#endif +} + +def xyproc(F) +{ + if(type(Opt=getopt(opt))!=7) Opt=""; + if(type(Env=getopt(env))!=7) + Env=(!TikZ)?"xy":"tikzpicture"; + if(F==1) + return(Opt=="")?"\\begin{"+Env+"}\n":"\\begin{"+Env+"}["+Opt+"]\n"; + if(F==0) return "\\end{"+Env+"}\n"; + if(type(F)==7){ + F=xyproc(1|opt=Opt,env=Env)+F+xyproc(0|env=Env); + if(getopt(dviout)==1) dviout(F); + else return F; + } +} + +def xypos(P) +{ + if(type(P[0])==7){ + if(P[0]=="") S=""; + else S=(!TikZ)?"\""+P[0]+"\"":"("+P[0]+")"; + } + else{ + if(TikZ==0 && XYcm==1){ + X=sint(P[0]*10,XYPrec); Y=sint(P[1]*10,XYPrec); + }else{ + X=sint(P[0],XYPrec); Y=sint(P[1],XYPrec); + } + S="("+rtostr(X)+","+rtostr(Y)+")"; + } + if(!TikZ){ + if(length(P)>2 && (PP=P[2])!=""){ + S=S+" *"; + if(type(PP)==4 && length(PP)==2 && type(PP[0])==7){ + S=S+PP[0]; + PP=PP[1]; + } + if(type(PP)==7){ + L=str_len(PP); + if(str_chr(PP,0,"$")==0 && str_chr(PP,L-1,"$")==L-1){ + PP=str_cut(PP,1,L-2); + }else S+="\\txt"; + } + else PP=my_tex_form(PP); + S=S+"{"+PP+"}"; + } + if(length(P)>3){ + if(type(P[3])==7 && P[3]!="") S=S+"=\""+P[3]+"\""; + if(length(P)>4 && type(P[4])==7) S=S+P[4]; + } + }else{ + T=""; + if(length(P)>2 && (PP=P[2])!=""){ + F=1; + if(type(PP)==4){ + if(length(PP)==2 && type(PP[0])==7){ + T="["+PP[0]+"]"; + PP=PP[1]; + } + } + if(type(PP)!=7) PP="$"+my_tex_form(PP)+"$"; + S=S+"{"+PP+"}"; + }else F=0; + if(length(P)>3){ + if(type(P[3])==7 && P[3]!="") T=T+"("+P[3]+")"; + else if(P[3]==1) T=T+"(_)"; + if(length(P)>4 && type(P[4])==7) S=S+P[4]; + } + if(length(P)>2){ + if(F) S="node"+T+" at"+S; + else S="coordinate"+T+" at"+S; + } + } + return S; +} + +def xyput(P) +{ + if((type(Sc=getopt(scale))==1 && Sc!=1) || type(Sc)==4){ + if(type(Sc)==1) Sc=[Sc,Sc]; + Sx=Sc[0];Sy=Sc[1]; + if(length(P)>2) + P1=cons(Sy*P[1],cdr(cdr(P))); + else P1=[Sy*P[1]]; + P=cons((type(P[0])==7)?P[0]:(Sx*P[0]),P1); + } + if(!TikZ) return "{"+xypos(P)+"};\n"; + return "\\"+xypos(P)+";\n"; +} + +def xyline(P,Q) +{ + if(!TikZ) return "{"+xypos(P)+" \\ar@{-} "+xypos(Q)+"};\n"; + if(type(T=getopt(opt))!=7) T=""; + else T="["+T+"]"; + if(length(P)<3 && length(Q)<3) + return "\\draw"+T+xypos(P)+"--"+xypos(Q)+";\n"; + if(length(P)==2) P=[P[0],P[1],"","_0"]; + else if(length(P)==3 || (length(P)==4 && P[3]=="")) + P=[P[0],P[1],P[2],"_0"]; + else if(length(P)>4 && P[3]=="") + P=[P[0],P[1],P[2],"_0",P[4]]; + if(length(Q)==2) Q=[Q[0],Q[1],"","_1"]; + else if(length(Q)==3 || (length(Q)==4 && Q[3]=="")) + Q=[Q[0],Q[1],Q[2],"_1"]; + else if(length(Q)>4 && Q[3]=="") + Q=[Q[0],Q[1],Q[2],"_1",Q[4]]; + return "\\draw "+T+xypos(P)+" "+xypos(Q)+"("+P[3]+")--("+Q[3]+");\n"; +} + +def xylines(P) +{ +/* mycat([P,getopt()]); */ + Lf=getopt(curve); + if(type(Lf)!=1) Lf=0; + SS=getopt(opt); + SF=(SS==0)?1:0; + if((Proc=getopt(proc))==1||Proc==2||Proc==3){ + OL=cons(["opt",0],delopt(getopt(),["opt","proc"])); + R=xylines(P|option_list=OL); + OP=(type(SS)<0)?[]:((type(SS)==4)?[["opt",SS[0]],["cmd",SS[1]]]:[["opt",SS]]); + return [1,OP,R]; + } + if(type(SS)!=7 && type(SS)!=4){ + if(Lf==0 && !TikZ) SS="@{-}"; + else SS=""; + } + if(type(Sc=getopt(scale))==1 || type(Sc)==4){ + if(type(Sc)==1) Sc=[Sc,Sc]; + Sx=Sc[0];Sy=Sc[1]; + if(Sx!=1 || Sy!=1){ + for(PP=[], P0=P; P0!=[]; P0=cdr(P0)){ + PT=car(P0); + if((type(PT)!=4 && type(PT)!=5) || (type(PT[0])!=1 && PT[0]!=0)) + PP=cons(PT,PP); + else{ + if(length(PT)>2 && type(PT)==4) + P1=cons(Sy*PT[1],cdr(cdr(PT))); + else P1=[Sy*PT[1]]; + PP=cons(cons(Sx*PT[0],P1),PP); + } + } + P=reverse(PP); + } + } + if(type(Cl=CL0=getopt(close))!=1) Cl=0; + if((Vb=getopt(verb))!=1&&type(Vb)!=4) Vb=0; + if(type(Lf)!=1 || Lf==0){ /* lines */ + if(TikZ||SF){ + for(L=[],F=0,PT=P;PT!=[];PT=cdr(PT)){ + if(type(car(PT))<4){ + L=cons(car(PT),L); + F=0; + }else{ + if(F++>1) L=cons(1,L); + L=cons(car(PT),L); + } + } + if(Cl==1){ + L=cons(1,L);L=cons(-1,L); + } + if(L) L=reverse(L); + if(SF) return L; + if(type(SS)!=4) S=xybezier(L|opt=SS); + else S=xybezier(L|opt=SS[0],cmd=SS[1]); + + }else{ + Out = str_tb(0,0); + for(PT=P; PT!=[]; ){ + PS1=car(PT); + PT=cdr(PT); + if(PT==[]){ + if(Cl==1) PS2=car(P); + else PS2=0; + }else PS2=car(PT); + str_tb(xyarrow(PS1,PS2|opt=SS),Out); + } + S=str_tb(0,Out); + } + }else if(Lf==2){ /* B-spline */ + if(SF) return P; + if(!TikZ){ + Out = str_tb("{\\curve{",0); + for(PT=P;PT!=[];PT=cdr(PT)){ + if(car(PT)==0){ + str_tb("}};\n{\\curve{",Out); + continue; + } + if(PT!=P) str_tb("&",Out); + str_tb(xypos([car(PT)[0],car(PT)[1]]),Out); + } + str_tb("}};\n",Out); + S=str_tb(0,Out); + }else Out=str_tb(xybezier(P|opt=SS),0); + for(I=0;I<2;I++){ + Q=car(P); + if(length(Q)>2) + str_tb(xyput(Q),Out); + P=reverse(P); + } + S=str_tb(0,Out); + }else{ /* extended Bezier */ + RTo=getopt(ratio); + if(type(Acc=getopt(Acc))!=1) Acc=0; + if(type(RTo)!=1 || RTo>1.5 || RTo<0.001) RTo=0; + if(Cl==1){ + PR=reverse(P); + PT=car(PR); + PR=cons(P[0],PR); + PR=cons(P[1],PR); + P=cons(PT,reverse(PR)); + }else if(Cl==-1) Cl=1; + for(L=P2=P3=0,PT=P;;){ + P1=P2;P2=P3;P3=P4; + P4=(PT==[])?0:car(PT); + if(PT==[] && (Cl==1 || P3==0)) break; + PT=cdr(PT); + if(P3==0) str_tb("%\n", Out); + if(P2==0 || P3==0 || (Cl==1 && P1==0)) continue; + if(L!=0){ + if(car(L)==P2) + L=cons(1,L); + else{ + L=cons(0,L); L=cons(P2,L); + } + }else L=[P2]; + X=P3[0]-P2[0];Y=P3[1]-P2[1]; + DL1=DL2=0;DL=Acc?sqrt(X^2+Y^2):dsqrt(X^2+Y^2); + if(P4!=0){ + XD1=P4[0]-P2[0];YD1=P4[1]-P2[1];DL1=Acc?sqrt(XD1^2+YD1^2):dsqrt(XD1^2+YD1^2); + } + if(P1!=0){ + XD2=P3[0]-P1[0];YD2=P3[1]-P1[1];DL2=Acc?sqrt(XD2^2+YD2^2):dsqrt(XD2^2+YD2^2); + } + if(RTo!=0) + R=RTo; + else if(DL1>0 && DL2>0){ + Cos=(XD1*XD2+YD1*YD2)/(DL1*DL2); + RT=4/(3*(Acc?sqrt((1+Cos)/2):dsqrt((1+Cos)/2))+3); + R=DL*RT/(DL1+DL2); + }else if(DL1!=0) + R=DL/(2*DL1); + else if(DL2!=0) + R=DL/(2*DL2); + if(DL2!=0) L=cons([P2[0]+R*XD2,P2[1]+R*YD2],L); + if(DL1!=0) L=cons([P3[0]-R*XD1,P3[1]-R*YD1],L); + L=cons([P3[0],P3[1]],L); + } + if(CL0==1) L=cons(-1,cdr(L)); + if(L!=0) L=reverse(L); + if(SF) return L; + if(type(SS)==4) + S=xybezier(L|opt=SS[0],cmd=SS[1],verb=Vb); + else + S=xybezier(L|opt=SS,verb=Vb); + } + if(getopt(dviout)!=1) return S; + xyproc(S|dviout=1); +} + +def saveproc(S,Out) +{ + if(type(Out)==4){ + Out=cons(S,Out); + return Out; + }else{ + str_tb(S,Out); + return Out; + } +} + +def xy2graph(F0,N,Lx,Ly,Lz,A,B) +{ + /* (x,y,z) -> ( -x sin A + y cos A, z cos B - x cos A sin B - y sin A sin B) */ + if((Proc=getopt(proc))==1||Proc==2){ + OPT0=[["proc",3]]; + }else{ + Proc=0;OPT0=[]; + } + if(type(DV=getopt(dviout))==4){ + S=["ext","shift","cl","dviout"]; + OL=delopt(getopt(),S); + OL=cons(["proc",1],OL); + R=xy2graph(F0,N,Lx,Ly,Lz,A,B|option_list=OL); + OL=delopt(getopt(),S|inv=1); + return execdraw(R,DV|optilon_list=OL); + } + if(N==0 || N>100 || N<-100) N=-16; + if(N<0){ + N=-N;N1=-1;N2=NN+1; + }else{ + N1=0;N2=NN=N; + } + + Ratio=Ratio2=1; + if(type(Sc=Sc0=getopt(scale))!=1 && type(Sc)!=4) Sc=1; + if(type(Sc)==4){ + Ratio=Sc[1]/Sc[0]; + if(length(Sc)>2) Ratio2=Sc[2]/Sc[0]; + Sc=Sc[0]; + } + if(type(Vw=getopt(view))!=1) Vw=0; + if(type(Raw=getopt(raw))!=1) Raw=0; + if(type(M1=getopt(dev))==1) M2=M1; + else if(type(M1)==4){ + M2=M1[1];M1=M1[0]; + }else M1=0; + if(type(M3=getopt(acc))!=1 || (M3<0.5 && M3>100)) M3=1; + if(M1<=0) M1=16; + if(M2<=0) M2=16; + OL=[["para",1],["scale",Sc]]; + if(Raw==1) OL=cons(["raw",1],OL); + if(type(Prec=getopt(prec))>=0) OL=cons(["prec",Prec],OL); + L=newvect(4,[[Lx[1],Ly[0]],[Lx[1],Ly[1]],[Lx[0],Ly[1]],[Lx[0],Ly[0]]]); + Lx=[deval(Lx[0]),deval(Lx[1])]; + Ly=[deval(Ly[0]),deval(Ly[1])]; + Lz=[deval(Lz[0]),deval(Lz[1])]; + A=(A0=A)%360; + F00=F0; + if(type(F0)<4){ + FC=f2df(F0); + if(findin(z,Vars=vars(FC))>=0 && findin(x,Vars)<0 && findin(y,Vars)<0) + F0=[w,[z,0,x+y*@i],[w,os_md.abs,FC]]; + } + if(type(Org=getopt(org))==4){ /* shift origin */ + Lx=[Lx[0]-Org[0],Lx[1]-Org[0]]; + Ly=[Ly[0]-Org[1],Ly[1]-Org[1]]; + Lz=[Lz[0]-Org[2],Lz[1]-Org[2]]; + F0=mysubst(F0,[[x,x+Org[0]],[y,y+Org[1]]]); + if(type(F0)==4){ + F0=cons(F0[0]-Org[2],cdr(F0)); + } + else F0-=Org[2]; + }else Org=[0,0,0]; + Cpx=getopt(cpx); + if(type(Cpx)<0){ + if(str_str(rtostr(F0),"@i")>=0) Cpx=1; + else Cpx=0; + } + if(A<0) A+=360; + if(A<90){ + Sh=1;F1=F0;Cx=x-Org[0];Cy=y-Org[1]; + }else if(A<180){ /* x -> y, y -> -x */ + Sh=2;A-=90; F1=mulsubst(F0,[[x,-y],[y,x]]); + LL=Ly;Ly=[-Lx[1],-Lx[0]];Lx=LL;Cx=y-Org[1];Cy=-x+Org[0]; + }else if(A<270){ + Sh=3;A-=180; F1=subst(F0,[[x,-x],[y,-y]]); + Lx=[-Lx[1],-Lx[0]];Ly=[-Ly[1],-Ly[0]];Cx=-x+Org[0];Cy=-y+Org[1]; + }else{ + Sh=4;A-=270;F1=mulsubst(F0,[[x,y],[y,-x]]); + LL=Lx;Lx=[-Ly[1],-Ly[0]];Ly=LL;Cx=-y+Org[1];Cy=x-Org[0]; + } + A=@pi*A/180; B=@pi*B/180; + if(A==0) A=@pi/3; + if(B==0) B=@pi/12; + NN=N*M2; + Ac=dcos(deval(A)); As=dsin(deval(A)); + if(Ac<=0.087 || As<=0.087){ + mycat(["Unsuitable angle",A0,"(6-th argument)!"]); + return -1; + } + Bc=Ratio*dcos(deval(B)); Bs=dsin(deval(B)); + if(Bc<0){ + mycat("Unsuitable angle (7-th argument)!"); + return -1; + } + /* + z = f(x,y) => X=-As*x+Ac*y, Y= Bc*f(x,y)-Bsc*x-Bss*y + Out X-coord is in [X0,X1], dvided by Dev segments + J-th segment of Y-coord : ZF[J]==1 => [Z0[0],Z1[J]] + */ + Bsc=Bs*Ac;Bss=Bs*As; + if(Ratio2!=1){ + if(Sh%2==1){ + Ac*=Ratio2;Bss*=Ratio2; + }else{ + As*=Ratio2;Bsc*=Ratio2; + } + } + CX=-As*Cx+Ac*Cy;CY=Bc*(z-Org[2])-Bsc*Cx-Bss*Cy; + if(type(Dvi=getopt(dviout))!=1 && getopt(trans)==1) return [CX*Sc,CY*Sc]; + if(type(N1=getopt(inf))==1){ + if(Proc) Dvi=N1; + else if(Dvi<=0) Dvi=-N1; + } + X0=-As*Lx[1]+Ac*Ly[0];X1=-As*Lx[0]+Ac*Ly[1]; + F1=mysubst(F1,[@pi,deval(@pi)]); + Tf=type(F1=f2df(F1|opt=0)); + if(Tf!=4) F=Bc*F1-Bsc*x-Bss*y; + else F=append([Bc*F1[0]-Bsc*x-Bss*y],cdr(F1)); + Dx=(Lx[1]-Lx[0])/NN; Dy=(Ly[1]-Ly[0])/NN; + if(type(Err=getopt(err))==1) + F=mysubst(F,[[x,x+Err*Dx/1011.23],[y,y+Err*Dy/1101.34]]); + Out=(Proc)?[]:str_tb(0,0); + Dev=N*M1; + XD=(X1-X0)/Dev; + OLV=newvect(2,[OL,OL]); + if(type(Ura=getopt(opt))==4 || type(Ura)==7){ + if(type(Ura)==7) Ura=[Ura,Ura]; + else{ + OLV[0]=cons(["opt",Ura[0]],OL); + OLV[1]=cons(["opt",Ura[1]],OL); + } + } + for(KC=0; KC<=1; KC++){ /* draw curves */ + Z0=newvect(Dev+1); Z1=newvect(Dev+1); ZF=newvect(Dev+1); + for(I=0; I<=NN; I++){ + FV=I%M2; + if(KC==0){ + X=x; Y=Ly[1]-I*Dy; LX=Lx; DD=Dx; G=mysubst(F,[y,Y]); + if(!FV){ + if(!Proc) str_tb(["%y=",rtostr(Y),"\n"],Out); + else Out=cons([-2,"y="+rtostr(Y)],Out); + } + }else{ + X=Lx[1]-I*Dx; Y=x; LX=Ly; DD=Dy; G=mysubst(F,[[x,X],[y,Y]]); + if(!FV){ + if(!Proc) str_tb(["%x=",rtostr(X),"\n"],Out); + else Out=cons([-2,"x="+rtostr(X)],Out); + } + } + XX=-As*X+Ac*Y; A1=coef(XX,1,x); A0=coef(XX,0,x); /* XX = A1*x + A0, x = (XX-A0)/A1 */ + if(!FV && Vw==1){ + if(Proc) Out=cons(xygraph([XX,G],N,LX,[X0,X1],Lz|scale=Sc,para=1,proc=3),Out); + else str_tb(xygraph([XX,G],N,LX,[X0,X1],Lz|scale=Sc,para=1),Out); + continue; + } + V=VT=LX[1]; + J0=(subst(XX,x,LX[0])-X0)/XD; J1=(subst(XX,x,LX[1])-X0)/XD; + if(J0<J1){ + J0=ceil(J0); J1=floor(J1); JD=1; /* fixed x: y: dec => (x,z):(dec,inc) */ + }else{ + J0=floor(J0); J1=ceil(J1); JD=-1; /* fixed y: x: dec => (x,z):(inc,inc) */ + } + for(FF=1,J=J1;;J-=JD){ + V1=VT; + VT=(X0+J*XD-A0)/A1;GG=mysubst(G,[x,VT]); + if(Cpx>=1) VV=myeval(GG); + else VV=(Tf==4)? mydeval(GG):deval(GG); /* J -> V */ + if(ZF[J]==0 || VV<=Z0[J] || VV>=Z1[J]){ /* visible */ + if(FF==0){ + V0=(VT+V1)/2; + if(!FV && Vw==-1 && Raw!=1){ /* draw doted line */ + K=ceil(M3*(V-V0)/(M2*DD)); + if(N1<0) K=-K; + OPT=append(OPT0,[["opt",(TikZ)?"dotted":"~*=<3pt>{.}"],["scale",Sc],["para",1]]); + Out=saveproc(xygraph([XX,G],K,[V0,V],[X0-1,X1+1],Lz| + option_list=OPT),Out); + } + V=V0; + } + if(ZF[J]==0){ + ZF[J]=1; Z0[J]=Z1[J]=VV; + }else if(VV<=Z0[J]) Z0[J]=VV; + else Z1[J]=VV; + + if(VV>=Z1[J]) FF=1; + else if(VV<=Z0[J]) FF=-1; + }else{ + if(FF!=0){ + V0=(VT+V1)/2; + K=ceil(M3*(V-V0)/(M2*DD)); + if(N1<0) K=-K; + if(!FV){ + OPT=append(OPT0,OLV[(1-FF)/2]); + Out=saveproc(xygraph([XX,G],K,[V0,V],[X0-1,X1+1],Lz|option_list=OPT),Out); + } + V=V0; + } + FF=0; + } + if(J==J0) break; + } + if(FV) continue; + V0=LX[0];K=ceil(M3*(V-V0)/(M2*DD)); + if(N1<0) K=-K; + if(FF!=0){ + if(Raw!=1){ + OPT=append(OPT0,OLV[(1-FF)/2]); + Out=saveproc(xygraph([XX,G],K,[V0,V],[X0-1,X1+1],Lz|option_list=OPT),Out); + }else if(Vw==-1 && Raw!=1){ + OPT=append(OPT0,[["opt",(TikZ)?"dotted":"~*=<3pt>{.}"]]); + Out=saveproc(xygraph([XX,G],K,[V0,V],[X0-1,X1+1],Lz|option_list=OPT),Out); + } + } + } + } + OptSc=(Sc==1)?[]:[["scale",Sc]]; + if(type(LZ=getopt(ax))==4){ /* draw box */ + FC=0; + if(length(LZ)==3) FC=LZ[2]; + P0=newvect(2,[-As*Lx[1]+Ac*Ly[1],Bc*(LZ[0]-Org[0])-Bsc*Lx[1]-Bss*Ly[1]]); + Vx=newvect(2,[As*(Lx[1]-Lx[0]),Bsc*(Lx[1]-Lx[0])]); + Vy=newvect(2,[Ac*(Ly[0]-Ly[1]),Bss*(Ly[1]-Ly[0])]); + Vz=newvect(2,[0,Bc*(LZ[1]-LZ[0])]); + OL=OL0=append(OPT0,OL); + if(TikZ && type(Ura)==4 && length(Ura)>2) OL0=cons(["opt",Ura[2]],OL); + LL=[[P0+Vz,P0+Vx+Vz],[P0,P0+Vx]]; + if(Bs>0){ + LL=cons([P0+Vy+Vz,Pz=P0+Vx+Vy+Vz],LL); + LL=cons([P0+Vx+Vz,Pz],LL); + PP=Pz-Vz; + } + else{ + LL=cons([P0+Vy,Pz=P0+Vx+Vy+Vz],LL); + LL=cons([P0+Vx,Pz],LL); + PP=Pz+Vz; + } + J=ceil((PP[0]-X0)/XD+0.5); + LL=append([[P0+Vy,P0+Vy+Vz],[P0+Vy,P0+Vy+Vz],[P0+Vx,P0+Vx+Vz],[P0,P0+Vz], + [P0+Vz,P0+Vy+Vz],[P0,P0+Vy]],LL); + for(LL=reverse(LL);LL!=[];LL=cdr(LL)) Out=saveproc(xylines(car(LL)|option_list=OL0),Out); + if(Dev>4) Dev2=ceil(Dev/2); + if(FC<0 && Raw!=1){ + if(TikZ){ + if(type(Ura)==4 && length(Ura)>2) + OL1=cons(["opt",Ura[2]+",dotted"],OL); + else OL1=cons(["opt","dotted"],OL); + }else OL1=cons(["opt","@{.}"],OL); + if(FC==-8) FC=0; + } + for(I=0;I<3;I++){ /* box with hidden part */ + if(I==1) Pz=PP-Vx; + else if(I==2) Pz=PP-Vy; + LP=Pz-PP; + for(FV=-1,K=0;K<=Dev2; K++){ + PPx=PP[0]+(K/Dev2)*LP[0]; PPy=PP[1]+(K/Dev2)*LP[1]; + J=ceil((PPx-X0)/XD); + if(K!=Dev2 && (J<0||J>Dev)) continue; + if(K!=Dev2 && (ZF[J]==0 || PPy<Z0[J] || PPy>Z1[J])){ /* visible */ + if(FV!=1){ + FV=1; + PPP=[PPx,PPy]; + } + }else{ + if(FV!=0){ + if(FV==1) Out=saveproc(xylines([PPP,[PPx,PPy]]|option_list=OL1),Out); + FV=0; + } + } + } + } + if(FC!=0 && Raw!=1){ /* show coordinate*/ + if(iand(FC,4)){ + Sub=1; + if(TikZ){ + S0="\\scriptsize";S1=""; + }else{ + S0="{}_{"; S1="}"; + } + }else Sub=0; + if(iand(FC,2)) + LLL=[[1,0,P0+Vx,(TikZ)?"right":"+!L"],[3,0,P0+Vy,(TikZ)?"left":"+!R"]]; + else LL=[]; + if(Bs>0){ + LLL=cons([0,0,P0,(TikZ)?"below":"+!U"],LLL); + LLL=cons([2,1,P0+Vx+Vy+Vz,(TikZ)?"above":"+!D"],LLL); + }else{ + LLL=cons([2,0,P0+Vx+Vy,(TikZ)?"below":"+!U"],LLL); + LLL=cons([0,1,P0+Vz,(TikZ)?"above":"+!D"],LLL); + } + for(TLL=LLL;TLL!=[];TLL=cdr(TLL)){ + TL=car(TLL);LL=L[(Sh+TL[0])%4]; + if(Cpx==0 || Cpx==3){ + S=ltotex([LL[0],LL[1],LZ[TL[1]]]|opt="coord"); + SS="("+rtostr(LL[0]) +","+rtostr(LL[1])+","+rtostr(LZ[TL[1]])+")"; + }else{ + S=ltotex([LL[0]+LL[1]*@i,LZ[TL[1]]]|opt="coord",cpx=Cpx); + SS="("+rtostr(LL[0])+"+"+rtostr(LL[1])+"i,"+ rtostr(LZ[TL[1]])+")"; + } + if(TikZ) S="$"+S+"$"; + if(Sub) S=S0+S+S1; + if(!TikZ) S="$"+S+"$"; + if(Proc) Out=cons([2,OptSc,[TL[2][0],TL[2][1]],[[TL[3],S]],SS],Out); + else str_tb(xyput([TL[2][0],TL[2][1],[TL[3],S]]|option_list=OptSc),Out); + } + } + } + if(type(Pt=getopt(pt))==4){ /* option pt=[] */ + if(type(Pt[0])<4) Pt=[[Pt]]; + if(length(Pt)>1&&type(Pt[1])!=4) Pt=[Pt]; + for(PT=Pt;PT!=[];PT=cdr(PT)){ + PP=car(PT); + if(type(PP)==4 && length(PP)==3 && type(PP[0])<2 && type(PP[2])<2) PP=[PP]; + P=car(PP); + if(type(P)==7) Q=[P,0]; + else if(P==1) Q=["_",0]; + else Q=mysubst([CX,CY],[[x,deval(P[0])],[y,deval(P[1])],[z,deval(P[2])]]); + if(length(PP)>1 && type(PP[1])==4 && length(PP[1])==3){ /* draw line */ + PP=cdr(PP);P=car(PP); + if(type(P)==7) Q1=P; + else if(P==1) Q="_"; + else Q1=mysubst([CX,CY],[[x,deval(P[0])],[y,deval(P[1])],[z,deval(P[2])]]); + if(length(PP)<2 || PP[1]==0 || iand(PP[1],1)) OL2=""; + else OL2=(TikZ)?"dotted":"@{.}"; + if(length(PP)>2 && type(PP[2])==7){ + if(OL2=="") OL2=PP[2]; + else{ + if(TikZ) OL2=OL2+","; + OL2=OL2+PP[2]; + } + } + OL1=OL; + if(OL2!="") OL1=cons(["opt",OL2],OL1); + if(length(PP)<2 || PP[1]>=0) + Out=saveproc(xylines([Q,Q1]|option_list=OL1),Out); + else{ + LP0=Q1[0]-Q[0];LP1=Q1[1]-Q[1]; + for(FV=-1,K=0;K<=Dev2; K++){ + PPx=Q[0]+(K/Dev2)*LP0; PPy=Q[1]+(K/Dev2)*LP1; + J=ceil((PPx-X0)/XD); + if(K!=Dev2 && (J<0 || J>Dev || ZF[J]==0 || PPy<Z0[J] || PPy>Z1[J])){ + /* visible */ + if(FV!=1){ + FV=1; + PPP=[PPx,PPy]; + } + }else{ + if(FV!=0){ + if(FV==1) Out=saveproc(xylines([PPP,[PPx,PPy]]|option_list=OL1),Out); + FV=0; + } + } + } + } + continue; + } + if(length(PP)==1) S="$\\bullet$"; + else if(type(PP[1])==7) S=PP[1]; + else if(type(PP[1])==4){ + if(length(PP[1])>1 && type(PP[1][1])!=7) + S=cons(car(PP),cons("$\\bullet$",cdr(cdr(PP)))); + else S=PP[1]; + }else S="$\\bullet$"; + if(length(PP)<=2){ + if(Proc) Out=cons([2,OptSc,[Q[0],Q[1]],[S]],Out); + else str_tb(xyput([Q[0],Q[1],S]|option_list=OptSc),Out); + }else if(!TikZ){ + if(Proc) Out=cons([2,OptSc,[Q[0],Q[1]],[S,"",PP[2]]],Out); + else str_tb(xyput([Q[0],Q[1],S,"",PP[2]]|option_list=OptSc),Out); + }else{ + if(Proc) Out=cons([2,OptSc,[Q[0],Q[1]],cons(S,cdr(cdr(PP)))],Out); + else str_tb(xyput(append([Q[0],Q[1],S],cdr(cdr(PP)))|option_list=OptSc),Out); + } + } + } + if(Proc){ + S=reverse(Out); + if(Proc==1||Proc==3){ + for(W=[],I=0;I<2;I++) for(J=0;J<2;J++) for(K=0;K<2;K++) + W=cons(mysubst([CX*Sc,CY*Sc],[[x,Lx[I]],[y,Ly[J]],[z,Lz[K]]]),W); + W=ptbbox(W); + S=cons([0,W[0],W[1],(TikZ)?1:1/10],S); + } + }else S=str_tb(0,Out); + if(type(Dvi)!=1||(Proc&&abs(Dvi)<2)) return S; + Lout=[]; + if(abs(Dvi)>=2){ + /* show title */ + L0=[]; + Title=getopt(title); + if(type(Title)!=7) + Title=(type(F00)==4)?("\\texttt{"+verb_tex_form(F00)+"}"):my_tex_form(F00); + if(type(Title)==7){ + T=my_tex_form(L[3][0])+"\\le x\\le "+my_tex_form(L[1][0])+",\\,"+ + my_tex_form(L[3][1])+"\\le y\\le "+my_tex_form(L[1][1])+")"; + if(Proc){ + if(Cpx>=1) L0=[[5,[["eq",1]],"|"+Title+"|\\quad(z=x+yi,\\ "+T]]; + else L0=[[5,[["eq",1]],"z="+Title+"\\ \\ ("+T]]; + }else{ + if(Cpx>=1) dviout("|"+Title+"|\\quad(z=x+yi,\\ "+T|eq=1,keep=1); + else dviout("z="+Title+"\\ \\ ("+T|eq=1,keep=1); + } + } + A=rint(deval(180*A/@pi))+90*(Sh-1); + if(A>=180) A-=180; + B=rint(deval(180*B/@pi)); + if(abs(Dvi)>=3){ + T="\\text{angle } ("+my_tex_form(A)+"^\\circ,"+my_tex_form(B)+"^\\circ)"; + if(Ratio!=1 || Ratio2!=1) T=T+"\\quad\\text{ratio }1:" + +my_tex_form(sint(Ratio2,2))+":"+my_tex_form(sint(Ratio,2)); + if(Proc) L0=cons([5,[["eq",1]],T],L0); + else dviout(T|eq=1,keep=1); + } + SS="% range "+rtostr([L[3][0],L[1][0]])+"x"+rtostr([L[3][1],L[1][1]])+ + " angle ("+ rtostr(A) +","+ rtostr(B)+") dev="; + if(M1==M2) SS=SS+rtostr(M1); + else SS=SS+rtostr([M1,M2]); + if(M3!=1) SS=SS+" acc="+rtostr(M3); + if(type(Sc0)>=0) SS=SS+" scale="+rtostr(Sc0); + if(Proc){ + S=cons([5,[],SS],S); + for(;L0!=[];L0=cdr(L0)) S=cons(car(L0),S); + return S; + } + if(Dvi>0){ + dviout(SS|keep=1); + dviout(xyproc(S)|eq=8); + }else Lout=[SS,S]; + }else{ + if(Dvi>0) dviout(xyproc(S)); + else Lout=[S]; + } + if(getopt(trans)==1) return cons([CX*Sc,CY*Sc],Lout); + if(Dvi<0) return Lout; +} + +def fouriers(A,B,X) +{ + if(A!=[]&&type(car(A))>1){ + for(C=[],I=A[1];I>=0;I--) C=cons(myfeval(car(A),I),C); + A=C; + } + if(B!=[]&&type(car(B))>1){ + for(C=[],I=B[1];I>0;I--) C=cons(myfeval(car(B),I),C); + B=C; + } + R=0; + if(getopt(cpx)==1){ + if(type(X=eval(X))>1) return todf([os_md.fouriers,[["cpx",1]]],[[A],[B],[X]]); + V=dexp(@i*X); + for(C=A,P=1,I=0;C!=[];C=cdr(C),I++){ + R+=car(C)*P; + P*=V; + } + V=dexp(-@i*X); + for(C=B,P=1,I=0;C!=[];C=cdr(C),I++){ + P*=V; + R+=car(C)*P; + } + return R; + } + if(type(X=eval(X))>1) return todf(os_md.fouriers,[[A],[B],[X]]); + for(C=A,I=0;C!=[];C=cdr(C),I++) + R+=car(C)*mycos(I*X); + for(C=B,I=1;C!=[];C=cdr(C),I++) + R+=car(C)*mysin(I*X); + return R; +} + + +def myexp(Z) +{ + if(type(Z=eval(Z))>1) return todf(os_md.myexp,[Z]); + if((Im=imag(Z))==0) return dexp(Z); + return dexp(real(Z))*(dcos(Im)+@i*dsin(Im)); +} + +def mycos(Z) +{ + if(type(Z=eval(Z))>1) return todf(os_md.mycos,[Z]); + if((Im=imag(Z))==0) return dcos(Z); + V=myexp(Z*@i); + return (V+1/V)/2; +} + +def mysin(Z) +{ + if(type(Z=eval(Z))>1) return todf(os_md.mysin,[Z]); + if((Im=imag(Z))==0) return dsin(Z); + V=myexp(Z*@i); + return (1/V-V)*@i/2; +} + +def mytan(Z) +{ + if(type(Z=eval(Z))>1) return todf(os_md.mytan,[Z]); + if((Im=imag(Z))==0) return dtan(Z); + V=myexp(2*Z*@i); + return @i*(1-V)/(1+V); +} + +def mylog(Z) +{ + if(type(Z=eval(Z))>1) return todf(os_md.mylog,[Z]); + if((Im=imag(Z))==0) return dlog(Z); + return dlog(dabs(Z))+@i*myarg(Z); +} + +def mypow(Z,R) +{ + if(type(Z=eval(Z))>1||type(R=eval(R))>1) return todf(os_md.mypow,[Z,R]); + if(Z==0) return 0; + if(isint(2*R)){ + if(R==0) return 1; + if(isint(R)) return Z^R; + V=dsqrt(Z); + if(R==1/2) return V; + return Z^(R-1/2)*V; + } + return myexp(R*mylog(Z)); +} + +def myarg(Z) +{ + if(type(Z=map(eval,Z))==4){ + if(length(Z)!=2) return todf(os_md.myarg,[Z]); + Re=Z[0];Im=Z[1]; + }else if(type(Z)>1){ + return todf(os_md.myarg,[Z]); + }else { + Im=imag(Z);Re=real(Z); + } + if(Re==0) return (Im<0)?-deval(@pi)/2:deval(@pi)/2; + V=datan(Im/Re); + if(Re>0) return V; + return (V>0)?(V-deval(@pi)):(V+deval(@pi)); +} + +def myatan(Z) +{ + if(type(Z=eval(Z))>1) return todf(os_md.myatan,[Z]); + if((Im=imag(Z))==0) return datan(Z); + mylog((1-Z*@i)/(1+Z*@i))*@i/2; +} + +def myasin(Z) +{ + if(type(Z=eval(Z))>1) return todf(os_md.myasin,[Z]); + return deval(@pi/2)-myacos(Z); +} + +def frac(X) +{ + if(type(X=eval(X))>1) return todf(os_md.frac,[X]); + return (ntype(X)==3)? pari(frac,X):(X-floor(X)); +} + +def myacos(Z) +{ + if(type(Z=eval(Z))>1) return todf(os_md.myacos,[Z]); + if(imag(Z)==0 && Z<=1 && Z>=-1) return dacos(Z); + return mylog(Z-dsqrt(Z^2-1))*@i; +} + +def arg(Z) +{ + if(vars(Z=map(eval,Z))!=[]) return todf(os_md.arg,[Z]); + return (type(Z)==4)?pari(arg,Z[0],Z[1]):arg(sqrt,Z); +} + +def sqrt(Z){ + if(vars(Z=map(eval,Z))!=[]) return todf(os_md.sqrt,[Z]); + R=(type(Z)==4)?Z[1]:Z; + if(ntype(R)==0){ + if(R==0) return 0; + if(R>0){ + if(pari(issquare,R)) return pari(isqrt,nm(R))/pari(isqrt,dn(R)); + }else{ + R=-R; + if(pari(issquare,R)) return pari(isqrt,nm(R))/pari(isqrt,dn(R))*@i; + } + } + return (type(Z)==4)?pari(sqrt,Z[0],Z[1]):pari(sqrt,Z); +} + +def gamma(Z) +{ + if(vars(Z=map(eval,Z))!=[]) return todf(os_md.gamma,[Z]); + return (type(Z)==4)?pari(gamma,Z[0],Z[1]):pari(gamma,Z); +} + +def lngamma(Z) +{ + if(vars(Z=map(eval,Z))!=[]) return todf(os_md.lngamma,[Z]); + return (type(Z)==4)?pari(lngamma,Z[0],Z[1]):pari(lngamma,Z); +} + +def digamma(Z) +{ + if(vars(Z=map(eval,Z))!=[]) return todf(os_md.digamma,[Z]); + return (type(Z)==4)?pari(digamma,Z[0],Z[1]):pari(digamma,Z); +} + +def dilog(Z) +{ + if(vars(Z=map(eval,Z))!=[]) return todf(os_md.dilog,[Z]); + return (type(Z)==4)?pari(dilog,Z[0],Z[1]):pari(dilog,Z); +} + +def erfc(Z) +{ + if(vars(Z=map(eval,Z))!=[]) return todf(os_md.erfc,[Z]); + return (type(Z)==4)?pari(erfc,Z[0],Z[1]):pari(erfc,Z); +} + +def zeta(Z) +{ + if(vars(Z=map(eval,Z))!=[]) return todf(os_md.zeta,[Z]); + return (type(Z)==4)?pari(zeta,Z[0],Z[1]):pari(zeta,Z); +} + +def eta(Z) +{ + if(vars(Z=map(eval,Z))!=[]) return todf(os_md.eta,[Z]); + return (type(Z)==4)?pari(eta,Z[0],Z[1]):pari(eta,Z); +} + +def jell(Z) +{ + if(vars(Z=map(eval,V))>1) return todf(os_md.jell,[Z]); + return (type(Z)==4)?pari(jell,Z[0],Z[1]):jell(jell,Z); +} + +def evals(F) +{ + if(type(F)==7){ + if(type(Del=getopt(del))!= 7) return eval_str(F); + S=strtoascii(Del);K=length(S); + if(K==0) return [eval_str(F)]; + Raw=getopt(raw); + F=strtoascii(F);L=[];T1=0; + do{ + T2=str_str(F,S|top=T1); + if(T2<0) T2=10000; + FT=str_cut(F,T1,T2-1); + L=cons((Raw==1)?FT:evals(FT),L); + T1=T2+K; + }while(T2!=10000); + return reverse(L); + } + if(type(F)==4){ + if(type(S=car(F))==7){ + S+="("; + for(I=0,FT=cdr(F); FT!=[]; I++,FT=cdr(FT)){ + if(type(ST=car(FT))!=7) ST=rtostr(ST); + if(I>0) S=S+","+ST; + else S=S+ST; + } + S=S+")"; + return eval_str(S); + }else return call(S,cdr(F)); + } + return F; +} + +def myval(F) +{ + if(type(F)!=4){ + F=f2df(sqrt2rat(F)); + if(type(F)!=4) return F; + }; + if(length(F)==1) V=car(F); + else for(V=car(F),F=cdr(F); F!=[];){ + FT=car(F); + if(type(G=FT[1])==2){ + if(length(FT)>2){ + FT2=myval(FT[2]); + if(length(FT)>3) FT3=myval(FT[3]); + }; + X=red(FT2/@pi);Vi=-red(FT2*@i/@pi);W=red(FT2/@e); + if(G==os_md.mypow && FT3==1/2){ + G=os_md.sqrt; + FT=[FT[0],G,FT[2]]; + } + if((T=findin(G, + [sin,os_md.mysin,cos,os_md.mycos,tan,os_md.mytan]))>=0 + &&(isint(6*X)||isint(4*X))){ + if(T==2||T==3){ + T=0;X=1/2-X; + } + X=X-floor(X/2)*2; + if(T==0||T==1){ + if(X>1){ + S=-1;X-=1; + }else S=1; + if(X>1/2) X=1-X; + if(X==0) R=0; + else if(X==1/6) R=1/2; + else if(X==1/4) R=2^(1/2)/2; + else if(X==1/3) R=3^(1/2)/2; + else R=1; + R*=S; + }else{ + if(X>1) X-=1; + if(X>1/2){ + S=-1;V=1-X; + }else S=1; + if(X==0) R=0; + else if(X==1/6) R=3^(1/2)/3; + else if(X==1/4) R=1; + else if(X==1/3) R=3^(1/2); + else R=2^512; + R*=S; + } + }else if((G==exp||G==os_md.myexp)&&(isint(FT2)||isint(6*Vi)||isint(4*Vi))){ + if(isint(FT2)) R=@e^FT2; + else R=myval([z+w*@i,[z,cos,Vi*@pi],[w,sin,Vi*@pi]]); + }else if((G==pow||G==os_md.mypow) && (isint(FT3)||FT2==1||FT2==0)){ + if(FT2==0) R=0; + else if(FT2==1) R=1; + else R=FT2^FT3; + }else if(G==os_md.abs&&ntype(P=eval(FT2))<4){ + R=FT2; + if(P<0) R=-R; + }else if((G==os_md.sqrt||G==dsqrt)&&type(FT2)<2&&ntype(FT2)==0) + R=sqrtrat(FT2); + else if((G==os_md.mylog||G==dlog)&&(FT2==@e||FT2==1)) + R=(FT2==1)?0:1; + else if(length(FT)==3) R=eval((*G)(myeval(FT2))); +#ifdef USEMODULE + else R=call(G,map(os_md.myeval,cdr(cdr(FT)))); +#else + else R=call(G,map(myeval,cdr(cdr(FT)))); +#endif + } + else if(G==0) R=FT[2]; +#ifdef USEMODULE + else R=eval(call(G[0],map(os_md.myeval,cdr(cdr(FT)))|option_list=G[1])); +#else + else R=eval(call(G[0],map(myeval,cdr(cdr(FT)))|option_list=G[1])); +#endif + V=mysubst(V,[FT[0],R]); + F=mysubst(cdr(F),[FT[0],R]); + } + if(type(V)<4 && !iscoef(V,os_md.iscrat)) V=eval(V); +#if 0 + return (type(V)<4)?myeval(V):mtransbys(os_md.myeval,V,[]); +#else + return V; +#endif +} + +/* -1:空 0:整数 1:有理数 2:Gauss整数 3:Gauss有理数 4:それ以外の複素数 */ +/* def vntype(F) +{ + if((T=type(F))<2){ + if(T<0) return -1; + if((Tn=ntype(F))==0){ + return (isint(F))?0:1; + } + if(Tn==4){ + if(ntype(real(F))==0&&ntype(real(F))==0) + return (isint(F)&&isint(F))?2:3; + return 4; + } + } + if(T==2){ + V=vars(F); + if((VV=lsort(V,[@e,@pi],1))==[]){ + FT=mycoef( + }else{ + if(length(VV)==1){ + }else + } + }else if(T==3){ + + } +} +*/ + + +def myeval(F) +{ + if(type(F)!=4) V=F; + else if(length(F)==1) V=car(F); + else for(V=car(F),F=cdr(F); F!=[];){ + FT=car(F); + if(type(G=FT[1])==2){ + if(length(FT)==3) R=(*G)(myeval(FT[2])); +#ifdef USEMODULE + else R=call(G,map(os_md.myeval,cdr(cdr(FT)))); +#else + else R=call(G,map(myeval,cdr(cdr(FT)))); +#endif + } + else if(G==0) R=myeval(FT[2]); +#ifdef USEMODULE + else R=call(G[0],map(os_md.myeval,cdr(cdr(FT)))|option_list=G[1]); +#else + else R=call(G[0],map(myeval,cdr(cdr(FT)))|option_list=G[1]); +#endif + V=mysubst(V,[FT[0],R]); + F=mysubst(cdr(F),[FT[0],R]); + } + return (type(V)<4)?eval(V):mtransbys(eval,V,[]); +} + +def mydeval(F) +{ + if(type(F)!=4) V=F; + else if(length(F)==1) V=car(F); + else for(V=car(F),F=cdr(F); F!=[]; ){ + FT=car(F); + if(type(G=FT[1])==2){ + if(length(FT)==3) R=(*G)(myeval(FT[2])); +#ifdef USEMODULE + else R=call(G,map(os_md.mydeval,cdr(cdr(FT)))); +#else + else R=call(G,map(mydeval,cdr(cdr(FT)))); +#endif + } + else if(G==0) R=mydeval(FT[2]); +#ifdef USEMODULE + else R=call(G[0],map(os_md.mydeval,cdr(cdr(FT)))|option_list=G[1]); +#else + else R=call(G[0],map(mydeval,cdr(cdr(FT)))|option_list=G[1]); +#endif + V=mysubst(V,[FT[0],R]); + F=mysubst(cdr(F),[FT[0],R]); + } + return (type(V)<4)?deval(V):mtransbys(deval,V,[]); +} + +def myfeval(F,X) +{ + if(type(X)==4){ + if(isvar(X[0])&&length(X)==2) + return mydeval(mysubst(F,[X[0],X[1]])); + if(type(X[0])==4&&isvar(X[0][0])&&length(X[0])==2){ + for(Y=X;Y!=[];Y=cdr(Y)) + F=mysubst(F,[car(Y)[0],car(Y)[1]]); + return myeval(F); + } + } + return myeval(mysubst(F,[x,X])); +} + +def myf2eval(F,X,Y) +{ + return myeval(mysubst(F,[[x,X],[y,Y]])); +} + +def myf3eval(F,X,Y,Z) +{ + return myeval(mysubst(F,[[x,X],[y,Y],[z,Z]])); +} + +def myfdeval(F,X) +{ + if(type(X)==4){ + if(isvar(X[0])&&length(X)==2) + return mydeval(mysubst(F,[X[0],X[1]])); + if(type(X[0])==4&&isvar(X[0][0])&&length(X[0])==2){ + for(Y=X;Y!=[];Y=cdr(Y)) + F=mysubst(F,[car(Y)[0],car(Y)[1]]); + return mydeval(F); + } + } + return mydeval(mysubst(F,[x,X])); +} + +def myf2deval(F,X,Y) +{ + return mydeval(mysubst(F,[[x,X],[y,Y]])); +} + +def myf3deval(F,X,Y,Z) +{ + return mydeval(mysubst(F,[[x,X],[y,Y],[z,Z]])); +} + +def df2big(F) +{ + AG=[[os_md.mysin,sin],[os_md.mycos,cos],[os_md.mytan,tan],[os_md.myasin,asin], + [os_md.acos,acos],[os_md,atan,atan],[os_md.myexp,exp],[os_md.mylog,log],[os_md.mypow,pow]]; + if(getopt(inv)!=1) return mysubst(F,AG); + else return mysubst(F,AG|inv=1); + +} + +def f2df(F) +{ + if(type(Opt=getopt(opt))!=1) Opt=0; + if(iand(Opt,1)){ + if(Opt>0) F=map(eval,F); + else F=map(deval,F); + } + Cpx=getopt(cpx); + if(type(F)==4 && iand(Opt,2)==0) return F; + K=getopt(level); + if(type(K)!=1) K=0; + AG=[sin,cos,tan,asin,acos,atan,exp,sinh,cosh,tanh,log,pow]; + AGd=[os_md.mysin,os_md.mycos,os_md.mytan,os_md.myasin,os_md.myacos, + os_md.myatan,os_md.myexp,os_md.myexp,os_md.myexp,os_md.myexp, + os_md.mylog,os_md.sqrt,os_md.myexp]; + for(R=[],I=0,Arg=vars(F);Arg!=[];Arg=cdr(Arg)){ + Fn=functor(car(Arg)); + if(vtype(Fn)!=3) continue; + V=args(car(Arg)); + for(PAG=AG,PAGd=AGd;PAG!=[];PAG=cdr(PAG),PAGd=cdr(PAGd)){ + if(Fn==car(PAG)){ + if(K==0) L="z__"; + else L="z"+rtostr(K)+"__"; + if(I==0) VC=makev([L]); + else VC=makev([L,I]); + I++; + VC0=VC; + if(Fn==sinh || Fn==cosh || Fn==tanh){ + VC=makev([L,I++]); + if(Fn==sinh) + R=cons([VC0,0,(VC^2-1)/(2*VC)],R); + else if(Fn==cosh) + R=cons([VC0,0,(VC^2+1)/(2*VC)],R); + else + R=cons([VC0,0,(VC^2-1)/(VC^2+1)],R); + } + if(Fn==pow && (V[1]!=1/2||Cpx==1)){ +#if 0 + R0=f2df(V[1]*((type(V[0])==1)?dlog(V[0]):log(V[0]))|level=K+1); + PAGd=cdr(PAGd); +#else + R=cons([VC,os_md.mypow,V[0],V[1]],R); + F=mysubst(F,[car(Arg),VC0]); + Arg=cons(0,vars(F)); + break; +#endif + }else R0=f2df(V[0]|level=K+1); + R=cons([VC,car(PAGd),R0],R); + F=mysubst(F,[car(Arg),VC0]); + Arg=cons(0,vars(F)); + break; + } + } + } + if(R==[]) return F; + if(Cpx==1){ + for(PAG=P,PAGd=AGd;PAG!=[];PAG=cdr(PAG),PAGd=cdr(PAGd)) + R=mysubst(R,[car(PADd),car(PAG)]); + } + return cons(F,reverse(R)); +} + +def todf(F,V) +{ + if(type(V)!=4) V=[V]; + for(R=[];V!=[];V=cdr(V)){ + R=cons(f2df(car(V)),R); + } + V=reverse(R); + Z=makenewv([F,V]); + return [Z,cons(Z,cons(F,V))]; +} + +def compdf(F,V,G) +{ + FL=["abs","floor","rint","zeta","gamma","arg","real","imag","conj"]; + FS=[os_md.abs,floor,rint,os_md.zeta,os_md.gamma,os_md.myarg,real,imag,conj]; + if(type(V)==4){ + for(;V!=[];V=cdr(V),G=cdr(G)) F=compdf(F,car(V),car(G)); + return F; + } + if(type(F)==7){ + if(str_str(F,"|")==0){ + F="abs("+str_cut(F,1,str_len(F)-2)+")"; + }else if(str_str(F,"[")==0){ + F="floor("+str_cut(F,1,str_len(F)-2)+")"; + } + I=str_str(F,"("); + Var=x; + if(I>0){ + J=str_pair(F,I+1,"(",")"); + if(J<0) return 0; + Var=eval_str(str_cut(F,I+1,J-1)); + Var=f2df(Var); + F0=str_cut(F,0,I-1); + } + if((I=findin(F0,FL))<0&&(I=findin(F,FL))<0) F=f2df(eval_str(F)); + else F=[z__,[z__,FS[I],Var]]; + } + if(type(F)!=4) F=f2df(F); + if(type(G)!=4) G=f2df(G); + VF=vars(F);VG=vars(G); + for(E=I=0;I<30;I++){ + for(J=0;J<30;J++){ + X=makev(["z__",I,J]); + if(findin(X,VF)<0 && findin(X,VG)<0){ + E=1;break; + } + } + if(E) break; + } + if(!E) return 0; + if(V==G) return F; /* subst(F(V),V,G) */ + if(type(G)<4) return mysubst(F,[V,G]); + if(type(F)<4) F=[F]; /* return compdf([X,[X,0,F]],V,G); */ + F=mysubst(F,[V,X]); + if(isvar(G[0])){ + G=mysubst(G,[G[0],X]); + if(length(G)==2&&type(G[1])==4&&G[1][0]==X) G=G[1]; + G=cons(G,cdr(F)); + } + else G=cons([X,0,G],cdr(F)); + return cons(car(F),G); +} + +def fzero(F,LX) +{ + if(length(LX)==3){ + V=LX[0];LX=cdr(LX); + }else V=x; + LX1=eval(LX[0]);LX2=eval(LX[1]); + if(getopt(zero)==1){ + if(getopt(cont)==1) CT=1; + else CT=0; + if(getopt(trans)!=1 && type(F)<4) F=f2df(F); + F=mysubst(F,[[@pi,deval(@pi)],[@e,deval(@e)]]); + if(type(Dev=getopt(dev))!=1 || Dev<2) Dev=16; + V1=myeval(mysubst(F,[V,X1=LX1])); + V2=myeval(mysubst(F,[V,X2=LX2])); + if(V1>0){ + V0=V1;V1=V2;V2=V0; + X0=X1;X1=X2;X2=X0; + } + if(V1<0 && V2>0){ + D=(V2-V1)*1024; + for(I=0; I<Dev; I++){ +/* mycat([D,X1,V1,X2,V2]) ; */ + if(iand(I,1)) X0=(X1+X2)/2; + else X0=(V2*X1-V1*X2)/(V2-V1); + V0=myeval(mysubst(F,[V,X0])); + if(V0==0||V0==V1||V0==V2) return [X0,V0]; + if(V0<0){ + if(!CT && V0+D<0) return []; + V1=V0;X1=X0; + }else{ + if(!CT && V0>D) return []; + V2=V0;X2=X0; + } + } + X0=(V2*X1-V1*X2)/(V2-V1); + return [X0,myeval(mysubst(F,[V,X0]))]; + } + if(V0==0) return [X0,V0]; + if(V1==0) return [X1,V1]; + return []; + } + if(type(F)<4) F=f2df(F); + F=mysubst(F,[[@pi,deval(@pi)],[@e,deval(@e)]]); + L=[]; + if(type(F)<4){ + if(type(F)==3) F=nm(red(F)); + if((Deg=deg(F,V))<=2){ + if(Deg==2){ + D=(C1=coef(F,1,V))^2-4*(C2=coef(F,2,V))*coef(F,0,V); + if(D>=0){ + R=dsqrt(D); + if((S=(-C1+R)/(2*C2))>=LX1&&S<=LX2) L=[[S,mysubst(F,[V,S])]]; + if(D!=0 && (S=(-C1-R)/(2*C2))>=LX1&&S<=LX2) L=cons([S,mysubst(F,[V,S])],L); + } + L=qsort(L); + }else if(Deg==1&&(S=-coef(F,0,V)/coef(F,1,V))>=LX1&&S<=LX2) + L=[[S,mysubst(F,[V,S])]]; + return L; + } + for(L=[];S!=[];S=cdr(S)) + if(car(S)>=LX1&&car(S)<=LX2) L=cons([car(S),mysubst(F,[V,car(S)])],L); + return qsort(L); + } + if(type(Div=getopt(mesh))!=1 || Div<=0) + Div = 2^(10); + W=(LX2-LX1)/Div; + for(I=V2=0;I<=Div;I++){ + X1=X2;X2=LX1+I*W;V1=V2; + if((V2=myeval(mysubst(F,[V,X2])))==0) + L=cons([X2,V2],L); + if(V1*V2<0){ + L0=fzero(F,[V,X1,X2]|zero=1,trans=1); + if(L0!=[]) L=cons(L0,L); + } + } + return reverse(L); +} + +def fmmx(F,LX) +{ + if(length(LX)==3){ + V=LX[0];LX=cdr(LX); + }else V=x; + LX1=eval(LX[0]);LX2=eval(LX[1]); + FT=F; + if(getopt(trans)!=1 && type(F)<4) FT=f2df(FT); + FT=mysubst(FT,[[@pi,eval(@pi)],[@e,eval(@e)]]); + if(type(G=getopt(dif))>=1){ + if(G==1) G=os_md.mydiff(F,V); + L=fzero(G,[V,LX1,LX2]|option_list=getopt()); + R=[[LX1,myeval(mysubst(FT,[V,LX1]))]]; + for(I=0;L!=[];L=cdr(L),I++){ + X=car(L)[0]; + if(X==LX1) continue; + R=cons([X,myeval(mysubst(FT,[V,X]))],R); + } + if(X!=LX2) R=cons([LX2,myeval(mysubst(FT,[V,LX2]))],R); + if(getopt(mmx)!=1) return reverse(R); + for(Mi=Ma=car(R);R!=[];R=cdr(R)){ + if(car(R)[1]>Ma[1]) Ma=car(R); + else if(car(R)[1]<Mi[1]) Mi=car(R); + } + return [Mi,Ma]; + } + if(type(Div=getopt(mesh))!=1 || Div<=0) + Div = 2^(10); + if(type(Dev=getopt(dev))!=1 || Dev<2) Dev=16; + W=(LX2-LX1)/Div; + for(I=V2=V3=0;I<=Div;I++){ + X1=X2;X2=X3;X3=LX1+I*W;V1=V2;V2=V3; + V3=myeval(mysubst(FT,[V,X3])); + if(I==0) L=[[X3,V3]]; + if(I<2) continue; + if((V1-V2)*(V2-V3)<0){ + X02=X2;V02=V2;X03=X3;V03=V3; + for(J=0; J<Dev && X1!=X3; J++){ + X12=(X1+X2)/2;V12=myeval(mysubst(FT,[V,X12])); + if((V1-V12)*(V12-V2)<=0){ + X3=X2;V3=V2;X2=X12;V2=V12;continue; + } + X23=(X2+X3)/2;V23=myeval(mysubst(FT,[V,X23])); + if((V12-V2)*(V2-V23)<=0){ + X1=X12;V1=V12;X3=X23;V3=V23;continue; + } + if((V2-V23)*(V23-V3)<=0){ + X1=X2;V1=V2;X2=X23;V2=V23;continue; + } + } + L=cons([X2,V2],L); + X2=X02;V2=V02;X3=X03;V3=V03; + } + } + L=cons([LX2,myeval(mysubst(FT,[V,LX2]))],L); + if(getopt(mmx)!=1) return L; + for(Mi=Ma=car(L);L!=[];L=cdr(L)){ + if(car(L)[1]>Ma[1]) Ma=car(L); + else if(car(L)[1]<Mi[1]) Mi=car(L); + } + return [Mi,Ma]; +} + +def flim(F,L) +{ + FD=f2df(F); + Lim0=4;Lim=12;FS=1; + if(type(Pc=getopt(prec))==1){ + if((Pc>1&&Pc<31)||Pc>-5) Lim+=Pc; + } + if(type(Pc=getopt(init))==1 && Pc>0) FS*=Pc; + if(type(L)==7) L=[L]; + else if(type(L)<2){ + K=flim(F,["+",L]|option_list=getopt()); + if(K=="") return K; + K1=flim(F,["-",L]|option_list=getopt()); + if(K1=="") return K1; + if(type(K)==7||type(K1)==7){ + if(K!=K1) return ""; + return K; + } + if(abs(K)<10^(-5)){ + if(abs(K1)<10^(-5)) return (K1+K)/2; + else return ""; + } + if(abs((K1-K)/K)<10^(-4)) return (K1+K)/2; + return ""; + } + if(type(L)!=4||type(L[0])!=7) return ""; + if(L[0]=="-"||L[0]=="-infty"){ + FS=-FS; + }else if(L[0]!="+"&&L[0]!="infty") return ""; + FI=(length(L)==1)?1:0; + for(Inf=0,I=Lim0;I<Lim;I++){ + D1=FS*8^I;D2=8*D1; + if(FI==0){ + D1=1/D1;D2=1/D2; + } + if(D1>D2){ + D=D1;D1=D2;D1=D; + X1=D1;X2=D2; + } + if(FI==0){ + D1+=L[1];D2+=L[1]; + } + K=fmmx(FD,[D1,D2]|mmx=1,mesh=16,dev=4); + if(I>Lim0){ + if(DF<K[1][1]-K[0][1]&&DF>10^(-8)&&DF<10^7){ + if(I>Lim0+1){ + if(Inf==0) return ""; + }else Inf=1; + }else if(Inf==1) return ""; + } + DF=K[1][1]-K[0][1]; + } + if(Inf==1){ + if(K[0][1]>10^8) return "+"; + else if(K[1][1]<-10^8) return "-"; + return ""; + } + V=(myfeval(FD,D1)+1.0)-1.0; + if(V!=0 && abs(V)<10^(-9)) return 0; + return V; +} + +def fcont(F,LX) +{ + if(length(LX)==3){ + V=LX[0];LX=cdr(LX); + }else V=x; + LX1=eval(LX[0]);LX2=eval(LX[1]); + if(getopt(trans)!=1 && type(F)<4) FT=f2df(F); + if(type(Div=getopt(mesh))!=1 || Div<=0) + Div = 2^(10); + if(type(Dev=getopt(dev))!=1 || Dev<2) Dev=16; + W=(LX2-LX1)/Div; + if((Df=getopt(dif))!=1){ + Df=0; + }else{ + if(Dev==16) Dev=6; + WD=W/2^(Dev+1); + } + F=FT; + C=2; + for(I=V2=V3=0;I<=Div;I++){ + X1=X2;X2=X3;X3=LX1+I*W;V1=V2;V2=V3; + V3=myeval(mysubst(F,[V,X3])); + if(Df){ + if(I==Div) break; + V3=(myeval(mysubst(F,[V,X3+WD]))-V3)/WD; + } + if(I==0) L=[[X3,V3]]; + if(I<2) continue; + if(C*dabs(2*V2-V1-V3) > dabs(V1-V3)){ + X01=X1;V01=V1;X02=X2;V02=V2;X03=X3;V03=V3; + for(J=0; X01!=X03; J++){ + if(dabs(V01-V02)>dabs(V02-V03)){ + X03=X02;V03=V02; + }else{ + X01=X02;V01=V02; + } + if(J==Dev) break; + X02=(X01+X02)/2; + V02=myeval(mysubst(F,[V,X02])); + if(Df) V02=(myeval(mysubst(F,[V,WD]))-V02)/WD; + if(C*dabs(2*V02-V01-V03) < dabs(V01-V03)) break; + } + if(J==Dev||X01==X03) L=cons([X01,X03,V03-V01],L); + } + } + return reverse(L); +} + +def xygraph(F,N,LT,LX,LY) +{ + if((Proc=getopt(proc))!=1&&Proc!=2&&Proc!=3) Proc=0; + if(type(DV=getopt(dviout))==4){ + OL=delopt(getopt(),["dviout","shift","ext","cl"]); + OL=cons(["proc",1],OL); + R=xygraph(F,N,LT,LX,LY|option_list=OL); + OL=delopt(getopt(),["shift","ext","cl"]|inv=1); + return execdraw(R,DV|optilon_list=OL); + } + if(N==0) N=32; + if(N<0){ + N=-N; + N1=-1; N2=N+1; + }else{ + N1=0; N2=N; + } + if(length(LT)==3 && isvar(LT[0])==1){ + TT=LT[0]; LT=cdr(LT); + F=mysubst(F,[TT,x]); + } + if(LX==0) LX=LT; + if((Acc=getopt(Acc))!=1) Acc=0; + if(Acc){ + LX=[eval(LX[0]),eval(LX[1])]; + LY=[eval(LY[0]),eval(LY[1])]; + LT=[eval(LT[0]),eval(LT[1])]; + }else{ + LX=[deval(LX[0]),deval(LX[1])]; + LY=[deval(LY[0]),deval(LY[1])]; + LT=[deval(LT[0]),deval(LT[1])]; + } + TD=(LT[1]-LT[0])/N; + if(type(Mul=getopt(scale))!=1){ + if(type(Mul)==4){ + MulX=Mul[0]; MulY=Mul[1]; + }else MulX=MulY=1; + }else MulX=MulY=Mul; + if(type(Org=getopt(org))==4){ + Orgx=Org[0];Orgy=Org[1]; + }else Orgx=Orgy=0; + if(type(F)!=4 || (getopt(para)!=1 && length(F)>1 && type(F[0])<4 && type(F[1])==4)) { + if(getopt(rev)!=1){ + F1=x; /* LX[0]+(LX[1]-LX[0])*(x-LT[0])/(TD*N); */ + F2=F; + }else{ + F1=F; + F2=x; /* LY[0]+(LY[1]-LY[0])*(x-LT[0])/(TD*N); */ + } + }else{ + F1=F[0]; F2=F[1]; + } + if(F1==0 || F2==0) LT=[]; + if(length(LT)==2){ + if(Acc){ + for(LTT=[],I=N2;I>=N1;I--) + LTT=cons(eval(LT[0]+I*(LT[1]-LT[0])/N),LTT); + }else{ + for(LTT=[],I=N2;I>=N1;I--) + LTT=cons(deval(LT[0]+I*(LT[1]-LT[0])/N),LTT); + } + LT=LTT; + } + Cpx=getopt(cpx); + if(Cpx!=1 && (str_str(rtostr(F1),"@i")>=0 || str_str(rtostr(F2),"@i")>=0)) + Cpx=1; + if(type(Cpx)<0) Cpx=0; + if(!Acc){ + if(type(F1)<4) F1=f2df(F1); + if(type(F2)<4) F2=f2df(F2); + } + if(type(Err=getopt(err))==1){ + F1=mysubst(F1,[x,x+Err*TD/1001.23]); + F2=mysubst(F2,[x,x+Err*TD/1001.23]); + } + if(type(F1)==4 || type(F2)==4){ + Dn=1; + }else Dn=dn(F1)*dn(F2); + for(V=[],PT=LT;PT!=[]; PT=cdr(PT)){ + T=car(PT); + if(myfeval(Dn,T)==0){ + V=cons(0,V); continue; + } + if(Cpx>0||Acc){ + X=myfeval(F1,T);Y=myfeval(F2,T); + }else{ + X=myfdeval(F1,T);Y=myfdeval(F2,T); + } + if((N1==0||(PT!=LT&&length(PT)!=1)) && (X<LX[0]||X>LX[1]||Y<LY[0]||Y>LY[1])) + V=cons(0,V); + else + V=cons([MulX*(X-Orgx),MulY*(Y-Orgy)],V); + } + V=reverse(V); + Gap0=Gap=Arg=0; + if(type(Prec=getopt(prec))<0) + Level=0; + else if(Prec==0) Level=4; + else if(type(Prec)==1){ + Level=Prec; + if(Level<0){ + Level=-Level; + Gap0=1; + } + }else if(type(Prec)==4){ + Level=Prec[0]; + if(length(Prec)>1) Arg=Prec[1]; + if(length(Prec)>2) Gap0=Prec[2]; + } + if(Level>0){ + if(Level>16) Level=16; + if(Arg<=0) Arg=30; + else if(Arg>120) Arg=120; + Arg=Acc?eval(@pi*Arg/180):deval(@pi*Arg/180); + SL=dcos(Arg); + } + if(Gap0>0){ + if(Gap0<2) Gap0=16; + else if(Gap0>512) Gap0=512; + Gap=((MulX*(LX[1]-LX[0]))^2+(MulY*(LY[1]-LY[0]))^2)/(Gap0^2); + } + for(I=0;I<Level;I++){ + for(F=K=G=0,NV=NLT=[],PLT=LT,PV=V;PLT!=[];K++,PLT=cdr(PLT),PV=cdr(PV)){ + TG=0;D0=D1;CLT0=CLT;CV0=CV;CV=car(PV);CLT=car(PLT); + if(length(PV)>1){ + if((CV1=car(cdr(PV)))!=0 && CV!=0) + D1=[CV[0]-CV1[0],CV[1]-CV1[1]]; + else D1=0; + }else K=-1; /* ? */ + if(K>0 &&(((D1==0||D0==0)&&(CV0!=0||CV!=0||CV1!=0)) || dvangle(D0,D1)<SL || + (Gap>0 && type(D0)==4 && (TG=(D0[0]^2+D0[1]^2-Gap)>0)))){ + G++;T1=(CLT0+CLT)/2; + if(F==0 && (CV0!=0 || CV!=0)){ + if(myfdeval(Dn,T1)==0){ + NV=cons(0,NV); NLT=cons(T1,NLT); + } + if(Cpx>0||Acc){ + X=myfeval(F1,T1);Y=myfeval(F2,T1); + }else{ + X=myfdeval(F1,T1);Y=myfdeval(F2,T1); + } + if(K==1 && N1<0){ + NV=[];NLT=[]; + } + if((K>1||N1==0)&&(X<LX[0]||X>LX[1]||Y<LY[0]||Y>LY[1])){ + NV=cons(0,NV);NLT=cons(T1,NLT);F=0; + }else{ + NV=cons([MulX*(X-Orgx),MulY*(Y-Orgy)],NV);NLT=cons(T1,NLT); + } + } + NV=cons(CV,NV);NLT=cons(CLT,NLT); + if(!TG&&(CV0!=0||CV1!=0)){ + T2=(car(cdr(PLT))+CLT)/2; + if(myfdeval(Dn,T2)==0){ + NV=cons(0,NV); NLT=cons(CLT,NLT); + } + if(Cpx>0||Acc){ + X=myfeval(F1,T2);Y=myfeval(F2,T2); + }else{ + X=myfdeval(F1,T2);Y=myfdeval(F2,T2); + } + if((N1==0||length(PV)!=2)&&(X<LX[0]||X>LX[1]||Y<LY[0]||Y>LY[1])){ + NV=cons(0,NV);NLT=cons(T1,NLT); + }else{ + NV=cons([MulX*(X-Orgx),MulY*(Y-Orgy)],NV);NLT=cons(T2,NLT); + } + } + if(length(PV)==2 && N1==-1) break; + F=1; + }else{ + F=0;NV=cons(CV,NV);NLT=cons(CLT,NLT); + } + } + V=reverse(NV);LT=reverse(NLT); + if(G==0) break; + } + if(Gap>0){ + for(NV=[],PV=V;PV!=[];PV=cdr(PV)){ + NV=cons(P0=car(PV),NV); + if(length(PV)>1 && P0!=0 && PV[1]!=0 + && (P0[0]-PV[1][0])^2+(P0[1]-PV[1][1])^2>Gap) NV=cons(0,NV); + } + V=reverse(NV); + } + if(getopt(raw)==1) return V; + OL=[["curve",1]];OLP=[]; + if(type(C=getopt(ratio))==1){ + OL=cons(["ratio",C],OL);OLP=cons(["ratio",C],OLP); + } + if(Acc==1) OL=cons(["Acc",1],OL); + if(N1<0) OL=cons(["close",-1],OL); + if(type(Opt=getopt(opt))!=7 && type(Opt)!=4){ + if(Opt==0) return xylines(V|option_list=cons(["opt",0],OL)); + } + OL=cons(["opt",(Proc)?0:Opt],OL); + if(type(Opt)>=0) OLP=cons(["opt",Opt],OLP); + if(type(Vb=getopt(verb))==1||type(Vb)==4){ + OL=cons(["verb",Vb],OL);OLP=cons(["verb",Vb],OL); + } + if(Proc){ + S=(Proc==1)? + [[0,[MulX*(LX[0]-Orgx),MulX*(LX[1]-Orgx)],[MulY*(LY[0]-Orgy),MulY*(LY[1]-Orgy)], + (TikZ)?1:1/10]]:[]; + S=cons([1,OLP,xylines(V|option_list=OL)],S); + if(Proc==3) return car(S); + }else S=xylines(V|option_list=OL); + if(type(Pt=getopt(pt))==4){ + if(type(Pt[0])!=4) Pt=[Pt]; + if(length(Pt)>1 && type(Pt[1])!=4) Pt=[Pt]; + for(PT=Pt;PT!=[];PT=cdr(PT)){ + PP=car(PT); + if(type(PP[0])!=4) PP=[PP]; + P=car(PP);PP=cdr(PP); + Qx=MulX*(P[0]-Orgx);Qy=MulY*(P[1]-Orgy); + if(length(PP)>0 && type(PP[0])==4){ /* draw line */ + P=car(PP); + Q1x=MulX*(P[0]-Orgx);Q1y=MulY*(P[1]-Orgy); + if(length(PP)<1 || car(PP)==0 || iand(car(PP),1)) + OL=["opt",(TikZ)?"-":"@{-}"]; + else OL=["opt",(TikZ)?".":"@{.}"]; + if(Proc) S=cons([1,OL,[[Qx,Qy],[Q1x,Q1y]]],S); + else S=S+xylines([[Qx,Qy],[Q1x,Q1y]]|optilon_list=OL); + continue; + } + if(length(PP)==0 || type(car(PP))!=7) SS="$\\bullet$"; + else SS=car(PP); + if(length(PP)<=1){ + if(Proc) S=cons([2,[],[Qx,Qy],[SS]],S); + else S=S+xyput([Qx,Qy,SS]); + }else{ + if(Proc) S=cons([2,[],[Qx,Qy],[[SS],"",PP[1]]],S); + S=S+xyput([Qx,Qy,SS,"",PP[1]]); + } + } + } + if(type(Ax=getopt(ax))==4){ /* draw axis */ + Adx0=Ady0=0; Adx1=Ady1=0.1; + if(!TikZ){ + if(!XYcm) Adx1=Ady1=1; + LOp="@{-}"; LxOp="+!U"; LyOp="+!R"; + }else{ + LOp="-"; LxOp="below"; LyOp="left"; + } + LOp0=LOp1=LOp; + LxOO=(Ax[1]==LY[0])?LxOp:(TikZ)?"below left":"+!UR"; + if(type(AxOp=getopt(axopt))>0){ + if(type(AxOp)==1){ + if(AxOp>0) Adx1=Ady1=AxOp; + else if(AxOp<0){ + Adx1=Ady1=0; Adx0=Ady0=AxOp; + } + }else if(type(AxOp)==4){ + if(type(T=car(AxOp))==4 && length(AxOp)>1){ + if(type(T)==7){ + LxOp=T; LyOp=AxOp[1]; + }else if(type(T)==4){ + Ay0=T[0]; Ay1=T[1]; Ax0=AxOp[1][0]; Ax1=AxOp[1][1]; + if(length(T)>2) LxOp=T[2]; + if(length(AxOp[1])>2) LyOp=AxOp[1][2]; + } + } + if(length(AxOp)>2 && type(AxOp[2])==7) LxOO=AxOp[2]; + if(length(AxOp)>3 && type(AxOp[3])==7) LOp0=AxOp[3]; + if(length(AxOp)>4 && type(AxOp[4])==7) LOp1=AxOp[4]; + } + if(type(AxOp)==7) LOp0=AxOp; + } + if(Ax[0]>=LX[0] && Ax[0]<=LX[1]){ /* draw marks on x-axis */ + if(Proc) S=cons([3,(type(LOp0)>=0)?[["opt",LOp0]]:[], + [MulX*(Ax[0]-Orgx),MulY*(LY[0]-Orgy)],[MulX*(Ax[0]-Orgx),MulY*(LY[1]-Orgy)]],S); + else S=S+xyarrow([MulX*(Ax[0]-Orgx),MulY*(LY[0]-Orgy)], + [MulX*(Ax[0]-Orgx),MulY*(LY[1]-Orgy)]|opt=LOp0); + if(length(Ax)>2){ + D=Ax[2]; + if(type(D)==1 && D>0){ + I0=ceil((LX[0]-Ax[0])/D); I1=floor((LX[1]-Ax[0])/D); + for(DD=[],I=I0; I<=I1; I++){ + if(length(Ax)<5) DD=cons(I*D,DD); + else if(Ax[4]==0) DD=cons([I*D,I*D+Ax[0]],DD); + else if(Ax[4]==1) DD=cons([I*D,I*D],DD); + else if(Ax[4]==2) DD=cons([I*D,I],DD); + } + D=DD; + } + if(type(D)==4){ + for(;D!=[]; D=cdr(D)){ + T=car(D); + if(type(T)==4) T=car(T); + X=MulX*(T+Ax[0]-Orgx); Y=MulY*(Ax[1]-Orgy); + if(T!=0){ + if(Proc) S=cons([3,(type(LOp1)>=0)?[["opt",LOp1]]:[],[X,Y+Ady0],[X,Y+Ady1]],S); + else S=S+xyarrow([X,Y+Ady0],[X,Y+Ady1]|opt=LOp1); + } + if(type(car(D))==4){ + Arg=[(T==0)?LxOO:LxOp,D[0][1]]; + if(Proc) S=cons([2,[],[X,Y+Ady0],[Arg]],S); + else S=S+xyput([X,Y+Ady0,Arg]); + } + } + } + } + } + if(Ax[1]>=LY[0] && Ax[1]<=LY[1]){ /* draw marks on y-axis */ + if(Proc) S=cons([3,[["opt",LOp0]], + [MulX*(LX[0]-Orgx),MulY*(Ax[1]-Orgy)], + [MulX*(LX[1]-Orgx),MulY*(Ax[1]-Orgy)]],S); + else S=S+xyarrow([MulX*(LX[0]-Orgx),MulY*(Ax[1]-Orgy)], + [MulX*(LX[1]-Orgx),MulY*(Ax[1]-Orgy)]|opt=LOp0); + if(length(Ax)>3){ + D=Ax[3]; + if(type(D)==1 && D>0){ + I0=ceil((LY[0]-Ax[1])/D); I1=floor((LY[1]-Ax[0])/D); + for(DD=[],I=I0; I<=I1; I++){ + if(length(Ax)<5) DD=cons(I*D,DD); + else if(I!=0){ + if(Ax[4]==0) DD=cons([I*D,I*D+Ax[1]],DD); + if(Ax[4]==1) DD=cons([I*D,I*D],DD); + if(Ax[4]==2) DD=cons([I*D,I],DD); + } + } + D=DD; + } + if(type(D)==4){ + for(;type(D)==4&&D!=[]; D=cdr(D)){ + T=car(D); + if(type(T)==4) T=car(T); + X=MulX*(Ax[0]-Orgx); Y=MulY*(T+Ax[1]-Orgy); + if(T!=0){ + if(Proc) S=cons([3,(type(LOp0)>=0)?[["opt",LOp1]]:[], + [X+Adx0,Y],[X+Adx1,Y]],S); + else S=S+xyarrow([X+Adx0,Y],[X+Adx1,Y]|opt=LOp1); + } + if(type(car(D))==4){ + if(Proc) S=cons([2,[],[X,Y+Ady0],[[LyOp,D[0][1]]]],S); + else S=S+xyput([X,Y+Ady0,[LyOp,D[0][1]]]); + } + } + } + } + } + } + if(Proc) return reverse(S); + if(getopt(dviout)!=1) return S; + xyproc(S|dviout=1); +} + +def xyarrow(P,Q) +{ + Cmd = ["fill","filldaw","shade","shadedraw","clip ","pattern","path ","node","coordinate"]; + if(type(P)<4) return "%\n"; + SS=getopt(opt); + if(!TikZ){ + if(type(Q)<4) return ""; + S="{"+xypos(P)+" \\ar"; + if(type(SS)==7) S=S+SS; + return S+" "+xypos(Q)+"};\n"; + } + if(type(SS)==4 && length(SS)>1){ + if(length(SS)>2) SU=SS[2]; + ST=SS[1]; + SS=SS[0]; + } + if(type(SS)!=7) SS="->"; + if(type(ST)!=7) ST=" -- "; + if(type(SU)!=7) SU=""; + if(type(S=getopt(cmd))==7) S="\\"+S; + else S="\\draw"; + if(type(Q)!=4){ + if(Q>0 && Q<=length(Cmd)) S="\\"+Cmd[Q-1]+""; + if(SS!="-") S=S+"["+SS+"]"; + if(SU!="") SU="["+SU+"]"; + return S+xypos(P)+ST+SU+";\n"; + } + if(SS!="-"&&SS!="") S=S+"["+SS+"]"; + if(length(P)<3 && length(Q)<3) + return S+xypos(P)+ST+xypos(Q)+SU+";\n"; + if(length(P)==2) P=[P[0],P[1],"","_0"]; + else if(length(P)==3 || (length(P)==4 && P[3]=="")) + P=[P[0],P[1],P[2],"_0"]; + else if(P[3]=="") + P=[P[0],P[1],P[2],"_0",P[4]]; + if(length(Q)==2) Q=[Q[0],Q[1],"","_1"]; + else if(length(Q)==3 || (length(Q)==4 && Q[3]=="")) + Q=[Q[0],Q[1],Q[2],"_1"]; + else if(Q[3]=="") + Q=[Q[0],Q[1],Q[2],"_1",Q[4]]; + return S+xypos(P)+" "+xypos(Q)+"("+P[3]+")"+ST+"("+Q[3]+")"+SU+";\n"; +} + +def xyarrows(P,Q,R) +{ + PQ=newvect(4); + PQ[0]=(type(P[0])!=4)?f2df(P[0]):P[0]; + PQ[1]=(type(P[1])!=4)?f2df(P[1]):P[1]; + PQ[2]=(type(Q[0])!=4)?f2df(Q[0]):Q[0]; + PQ[3]=(type(Q[1])!=4)?f2df(Q[1]):Q[1]; + if(type(R[0])!=4) R=[R]; + TR=R[0];NX=TR[2];X=X0=TR[0];DX=(TR[1]-TR[0])/NX; + if(length(R)==2){ + TR=R[1];NY=TR[2];Y=TR[0];DY=(TR[1]-TR[0])/NY; + }else{ + NY=1;Y=DY=0; + } + if(type(L=getopt(abs))!=1) L=0; + if(type(Sc=getopt(scale))!=1) Sc=0; + OL=[]; + if(type(Opt=getopt(opt))==7) OL=cons(["opt",Opt],OL); + Tb=str_tb(0,0); + for(J=0;J<NY;Y+=DY,J++){ + for(I=0,X=X0;I<NX;I++,X+=DX){ + PX=myf2eval(PQ[0],X,Y);PY=myf2eval(PQ[1],X,Y); + VX=myf2eval(PQ[2],X,Y);VY=myf2eval(PQ[3],X,Y); + if(L>0){ + C=dnorm([VX,VY]); + if(C!=0){ + VX*=L/C;VY*=L/C; + } + } + if(Sc){ + VX*=Sc;VY*=Sc; + } + if(VX||VY) str_tb(xyarrow([PX,PY],[PX+VX,PY+VY]|optilon_list=OL),Tb); + } + } + return str_tb(0,Tb); +} + +def polroots(L,V) +{ + INIT=1; + if(type(CF=getopt(comp))!=1) CF=0; + OL=getopt(); + if(CF>32){ + CF-=64; + INIT=0; + }else OL=cons(["comp",CF+64],delopt(OL,"comp")); + if(type(V)==4&&length(V)==1){ + L=L[0];V=V[0]; + } + Lim=Lim2=[]; + if(type(L)<4){ + if(type(Lim=getopt(lim))==4){ + if(type(Lim[0])!=4){ + if(!isvar(Lim[0])) Lim=cons(V,[Lim]); + Lim=[Lim]; + } + if(!isvar(Lim[0][0])) Lim=[cons(V,Lim)]; + Lim=delopt(Lim,V|inv=1); + if(Lim!=[]){ + Lim=Lim[0]; + if(length(Lim)==3) Lim2=Lim[2]; + Lim=Lim[1]; + } + }else{ + Lim=Lim2=[]; + } + if((CF==-2||CF==-1||CF==2)&&iscoef(L,os_md.israt)){ /* Rat+Comp, Rat+Real or Rat */ + S=(CF==-1)?getroot(L,V|cpx=1):getroot(L,V); + for(RR=[],F=x;S!=[];S=cdr(S)){ + if(findin(V,vars(C=car(S)))<0){ /* Rational solution */ + if(type(C)<2){ + if(Lim!=[]&&(real(C)<Lim[0]||real(C)>Lim[1])) continue; + if(Lim2!=[]&&(imag(C)<Lim2[0]||imag(C)>Lim2[1])) continue; + } + if(F!=C) RR=cons(F=C,RR); + }else if(CF<0){ /* Irrational solution */ + if((R=pari(roots,mysubst(C,[V,x])))!=0){ + for(R=vtol(R);R!=[];R=cdr(R)) + if((C=car(R))!=F && ntype(C)<CF+6){ + if(Lim!=[]&&(real(C)<Lim[0]||real(C)>Lim[1])) continue; + if(Lim2!=[]&&(imag(C)<Lim2[0]||imag(C)>Lim2[1])) continue; + RR=cons(F=C,RR); + } + } + } + } + return qsort(RR); + } + R=pari(roots,subst(L,V,x)); + if(R==0){ + R=[0]; + if(CF==1){ + for(R=[0],I=mydeg(L,V);I>1; I--) + R=cons(0,R); + } + return R; + } + if(CF==1){ /* Complex */ + if(Lim==[]&&Lim2==[]) return vtol(R); + for(L=[],I=length(R)-1;I>=0;I--){ + C=R[I]; + if(Lim!=[]&&(real(C)<Lim[0]||real(C)>Lim[1])) continue; + if(Lim2!=[]&&(imag(C)<Lim2[0]||imag(C)>Lim2[1])) continue; + L=cons(C,L); + } + return L; + } + for(L=[],F=x,I=length(R)-1;I>=0;I--){ /* Real */ + if(ntype(R[I])<4 && F!=R[I]){ + if(Lim!=[] && (R[I]<Lim[0]||R[I]>Lim[1])) continue; + L=cons(F=R[I],L); + } + } + return qsort(L); + } + if(SS==0&&INIT==1){ + SS=polroots(L,V|option_list=OL); + if(SS!=0) return SS; + for(C=0;SS==0&&C<4;C++){ + I=(C==0)?1:(iand(random(),0xff)-0x80); + for(LL=[],K=length(L)-1;K>=0;K--){ + for(Q=0,J=length(L)-1;J>=0;J--) + Q+=L[J]*(I+K)^J; + LL=cons(Q,LL); + } + SS=polroots(LL,V|option_list=OL); + if(SS!=0) return SS; + } + return SS; + } + C=2^(-32); + if(type(getopt(err))==1) C=err; + if((N=length(V))!=length(L)) return []; + if(N==1) return polroots(L[0],V[0]|option_list=OL); + for(L1=[],I=1;I<N;I++){ + Res=res(V[0],L[I-1],L[I]); + if(type(Res)<2) return Res; + L1=cons(res(V[0],L[I-1],L[I]),L1); + } + R=polroots(L1,V1=cdr(V)|option_list=OL); + if(type(R)<2) return R; + for(SS=[];R!=[];R=cdr(R)){ + RS=(N==2)?[car(R)]:car(R); + for(I=0,L0=L[0];I<N-1;I++) L0=mysubst(L0,[V1[I],RS[I]]); + if(L0==0) return 0; + S0=polroots(L0,V[0]|option_list=OL); + if(type(S0)<2) return S0; + for(S=S0;S!=[];S=cdr(S)){ + S0=cons(car(S),RS); + for(LT=cdr(L);LT!=[];LT=cdr(LT)){ + for(I=0,TV=car(LT);I<N;I++) TV=mysubst(TV,[V[I],S0[I]]); + if(abs(TV)>C) break; + } + if(LT==[]) SS=cons(S0,SS); + } + } + return reverse(SS); +} + +def ptcommon(X,Y) +{ + if(length(X)!=2 || length(Y)!=2) return 0; + if(type(X[1])==4){ /* X is a line */ + if((In=getopt(in))==-1||In==-2||In==-3){ + X0=(X[0][0]+X[1][0])/2;X1=(X[0][1]+X[1][1])/2; + X=[[X0,X1],[X0+X[1][1]-X[0][1],X1-X[1][0]+X[0][0]]]; + if(In==-1&&type(Y[1])==4) return ptcommon(Y,X|in=-2); + /* for the second line */ + if(In==-3) In=1; + else In=0; + }else if(In==2||In==3){ + X=(X[1][0]-X[0][0])+(X[1][1]-X[0][1])*@i; + if(X==0) return 0; + Y=(Y[1][0]-Y[0][0])+(Y[1][1]-Y[0][1])*@i; + X=myarg(Y/X); + return (In==2)?X:(X*180/deval(@pi)); + }else if(In!=1) In=0; + if(type(Y[0])<=3){ + if(In==1){ + return [(Y[1]*X[0][0]+Y[0]*X[1][0])/(Y[0]+Y[1]), + (Y[1]*X[0][1]+Y[0]*X[1][1])/(Y[0]+Y[1])]; + } + XX=X[1][0]-X[0][0];YY=X[1][1]-X[0][1]; + Arg=(length(Y)<2)?0:Y[1]; + Arg=deval(Arg); + if(Arg!=0){ + S=dcos(Arg)*XX-dsin(Arg)*YY; + YY=dsin(Arg)*XX+dcos(Arg)*YY; + XX=S; + } + S=dnorm([XX,YY]); + if(S!=0){ + XX*=Y[0]/S;YY*=Y[0]/S; + } + return [X[1][0]+XX,X[1][1]+YY]; + } + S=[X[0][0]+(X[1][0]-X[0][0])*x_,X[0][1]+(X[1][1]-X[0][1])*x_]; + if(type(Y[1])==4){ /* Y is a line */ + T=[Y[0][0]+(Y[1][0]-Y[0][0])*y_-S[0], + Y[0][1]+(Y[1][1]-Y[0][1])*y_-S[1]]; + R=lsol(T,[x_,y_]); + if(type(R[0])==4&&type(R[1])==4&&R[0][0]==x_&&R[1][0]==y_){ + if(!In || (R[0][1]>=0&&R[0][1]<=1&&R[1][1]>=0&&R[1][1]<=1) ) + return subst(S,x_,R[0][1],y_,R[1][1]); + } + if((type(R[0])>0&&type(R[0])<4)||(type(R[1])>0&&type(R[1])<4)) return 0; + if(!In) return 1; + I=(X[0][0]==X[1][0]&&Y[0][0]==Y[1][0]&&X[0][0]==Y[0][0])?1:0; + if(X[0][I]<=X[1][I]){ + X0=X[0][I];X1=X[1][I]; + }else{ + X1=X[0][I];X0=X[1][I]; + } + return ((Y[0][I]<X0 && Y[1][I]<X0)||(Y[0][I]>X1&&Y[1][I]>X1))?0:1; + }else if(Y[1]==0){ /* orth */ + T=[Y[0][0]+(X[1][1]-X[0][1])*y_-S[0], + Y[0][1]-(X[1][0]-X[0][0])*y_-S[1]]; + R=lsol(T,[x_,y_]); + if(type(R[0])==4&&type(R[1])==4&&R[0][0]==x_&&R[1][0]==y_){ + if(!In||(R[0][1]>=0&&R[0][1]<=1)) + return subst(S,x_,R[0][1],y_,R[1][1]); + } + return (X[0]==X[1])?0:1; + }else if(type(Y[1])==1 && Y[1]>0){ /* circle */ + T=(S[0]-Y[0][0])^2+(S[1]-Y[0][1])^2-Y[1]^2; + D=mycoef(T,1,x_)^2-4*mycoef(T,0,x_)*mycoef(T,2,x_); + if(D==0){ + V=mycoef(T,1,x_)/(2*mycoef(T,2,x_)); + if(!in||(V>=0&&V<=1)) return [subst(S,x_,V)]; + } + else if((type(D)==1&&D>0)){ + D=dsqrt(D); + V=-(mycoef(T,1,x_)+D)/(2*mycoef(T,2,x_)); + if(!In||(V>=0&&V<=1)) L=[subst(S,x_,V)]; + else L=[]; + V=(D-mycoef(T,1,x_))/(2*mycoef(T,2,x_)); + if(!In||(V>=0&&V<=1)) L=cons(subst(S,x_,V),L); + if(length(L)>0) return L; + } + } + return 0; + } + if(type(Y[1])==4 || X[1]==0) return ptcommon(Y,X); + /* X is a circle */ + if(Y[1]==0){ /* tangent line */ + if(Y[0][0]==X[0][0]+X[1] || Y[0][0]==X[0][0]-X[1]) L=[[Y[0][0],X[0][1]]]; + else L=[]; + P=(Y[0][0]+x_-X[0][0])^2+(Y[0][1]+x_*y_-X[0][1])^2-X[1]^2; + Q=mycoef(P,1,x_)^2-4*mycoef(P,2,x_)*mycoef(P,0,x_); + for(R=polroots(Q,y_);R!=[];R=cdr(R)){ + X0=-subst(mycoef(P,1,x_)/(2*mycoef(P,2,x_)),y_,car(R)); + L=cons([Y[0][0]+X0,Y[0][1]+car(R)*X0],L); + } + }else{ /* Y is a circle */ + P=(x_-X[0][0])^2+(y_-X[0][1])^2-X[1]^2; + Q=(x_-Y[0][0])^2+(y_-Y[0][1])^2-Y[1]^2; + V=(X[0][0]!=Y[0][0])?[x_,y_]:[y_,x_]; + R=subst(P,V[0],T=lsol(P-Q,V[0])); + if(type(T[0])<4) return (T[0]==0)?1:0; + S=polroots(R,V[1]); + for(L=[];S!=[];S=cdr(S)){ + R=subst(T,V[1],car(S)); + if(V[0]==x_) L=cons([R,car(S)],L); + else L=cons([S,R],L); + } + } + if(length(L)!=0) return L; + return 0; +} + +def tobezier(L) +{ + if((Div=getopt(div))==1||Div==2){ + if(length(L)!=4) return [tobezier(L|inv=[0,1/2]),tobezier(L|inv=[1/2,1])]; + if(type(L)==4) L=ltov(L); + if(type(L[0])==4) + L=[ltov(L[0]),ltov(L[1]),ltov(L[2]),ltov(L[3])]; + S=[(L[0]+3*L[1]+3*L[2]+L[3])/8]; + T=[L[3]]; + S=cons((L[0]+2*L[1]+L[2])/4,S); + T=cons((L[2]+L[3])/2,T); + S=cons((L[0]+L[1])/2,S); + T=cons((L[1]+2*L[2]+L[3])/4,T); + S=cons(L[0],S); + T=cons((L[0]+3*L[1]+3*L[2]+L[3])/8,T); + return [S,T]; + } + if(Div>2&&Div<257){ + L=tobezier(L); + for(R=[],I=Div-1;I>=0;I--) + R=cons(tobezier(L|inv=[I/Div,(I+1)/Div]),R); + return R; + } + if((V=getopt(inv))==1 || type(V)>3){ + if(type(L[0])>3 && type(V)>3) L=tobezier(L); + if(type(V)>3 && length(V)>2) V2=V[2]; + if(type(V2)!=2) V2=t; + if(type(V)>3) L=subst(L,V2,(V[1]-V[0])*V2+V[0]); + N=mydeg(L,V2); + for(R=[],I=0;I<=N;I++){ + RT=mycoef(L,I,V2); + R=cons(RT/binom(N,I),R); + L-=RT*V2^I*(1-V2)^(N-I); + } + return reverse(R); + }; + N=length(L)-1; + V=newvect(2); + for(I=0;I<=N;I++,L=cdr(L)){ + if(type(X=car(L))==4) X=ltov(X); + V+=X*binom(N,I)*t^I*(1-t)^(N-I); + } + return V; +} + +def cutf(F,X,VV) +{ + if(type(car(V=VV))==2){ + Y=[car(V),X]; + V=cdr(V); + }else Y=X; + if(type(X)>1){ + Y=(type(Y)==4)?Y[0]:x; + V1=makenewv(F); + if(X==Y||Y==x){ + V2=makenewv([F,V1]); + F=mysubst(F,[Y,V2]); + V=cons(V2,V); + } + return [V1,[V1,os_md.cutf,[F],X,[V]]]; + } + if(car(V)!=[] && X<car(V)[0]) return myfeval(car(V)[1],Y); + for(V=cdr(V); ;V=R){ + if((R=cdr(V))==[]){ + if(car(V)!=[] && car(V)[0]<X) return myfeval(car(V)[1],Y); + return myfeval(F,Y); + } + if(X>car(V)[0]) continue; + if(X==car(V)[0]) return car(V)[1]; + return myfeval(F,Y); + } +} + +def fsum(F,L) +{ + if(getopt(df)==1){ + F=f2df(F); + }else Sub=getopt(subst); + if(type(L[0])==2){ + X=L[0]; + L=cdr(L); + }else X=0; + V=(length(L)>2)?L[2]:1; + for(R=0,I=L[0];;I+=V){ + if(V==0||(I-L[1])*V>0) return R; + R+=(Sub==1)?subst(F,X?X:x,I):os_md.myfeval(F,X?[X,I]:I); + } +} + +def periodicf(F,L,X) +{ + if(type(L)==4) L=[eval(L[0]),eval(L[1])]; + else L=eval(L); + if(isvar(X)){ + Y=makenewv([X,V]); + Z=makenewv([X,Y,V]); + return [Z,[Z,os_md.periodicf,[mysubst(F,[x,Y])],(type(L)==4)?[L]:L,[[Y,X]]]]; + } + if(type(X)==4){ + V=X[0]; + X=X[1]; + }else V=x; + if(type(F)==5){ + X=eval(X); + return myfeval(F[floor(X/L)%length(F)],[V,X-floor(X/L)*L]); + } + if(type(L)==4){ + X-=floor((X-L[0])/(L[1]-L[0]))*(L[1]-L[0]); + return myfeval(F,[V,X]); + } +} + +def cmpf(X) +{ + if(type(X)>3){ + if(type(L)==7) return [S_Fc,Dx,S_Ic,S_Ec,S_EC,S_Lc]; + S_Lc=0; + if(type(S_Fc=X[0])!=4) S_Fc=f2df(S_Fc); + S_Ic=X[1]; + if(length(S_Ic)>2){ + S_Fc=mysubst(S_Fc,[S_Ic[0],x]); + S_Ic=cdr(S_Ic); + } + S_Dc=(type(S_Ic[0])==7)?1:0; + if(type(S_Ic[1])==7) S_Dc=ior(S_Dc,2); + if(type(S_Ec=getopt(exp))!=1) S_Ec=0; + if(S_Ec<=0){ + S_EC=-S_Ec; + if(S_EC==0) S_EC=1; + if(S_Dc==3) S_EC*=2; + else S_EC/=4; + if(type(F=X[0])==3&&vars(F)==[x]&&(D=deg(nm(F),x))==deg(dn(F),x)-2){ + S_Lc=S_EC*coef(nm(F),D,x)/coef(dn(F),D+2,x); + } + }else{ + S_EC=S_Ec; + if(S_Dc==3) S_EC*=12; + else S_EC/=6; + } + if(type(S_Fc)==3) S_Fc=red(S_Fc); + S_EC=1/S_EC; + return [z_,[z_,os_md.cmpf,x]]; + } + if(X<=0 && iand(S_Dc,1)) return S_Lc; + if(X>=1 && iand(S_Dc,2)) return S_Lc; + if(S_Dc==3){ + if(S_Ec>0){ + Y0=dexp(1/X)*S_EC; + Y1=dexp(1/(1-X))*S_EC; + return myfeval(S_Fc,Y1-Y0)*(Y0/X^2+Y1/(1-X)^2); + } + return myfeval(S_Fc,S_EC/(1-X)-S_EC/X)*(S_EC/(1-X)^2+S_EC/X^2); + } + if(S_Dc==1){ + if(S_Ec>0){ + Y=dexp(1-1/X); + R=myfeval(S_Fc,S_EC*(Y-1)+I[1])*Y; + } + else R=myfeval(S_Fc,I[1]+(1-1/X)*S_EC); + return R*S_EC/X^2; + } + if(S_Dc==2){ + if(S_Ec>0){ + Y=dexp(X/(1-X)); + R=myfeval(S_Fc,S_EC*(Y-1)+S_Ic[0])*Y; + }else R=myfeval(S_Fc,S_EC*X/(1-X)+S_Ic[0]); + return R*S_EC/(1-X)^2; + } + X=S_Ic[0]+(S_Ic[1]-S_Ic[0])*X; + return myfeval(S_Fc,X)/(S_Ic[1]-Ic[0]); +} + +def fresidue(P,Q) +{ + if(iscoef(Q,os_md.israt)) S=fctr(Q); + else S=[[Q,1]]; + for(R=[];S!=[];S=cdr(S)){ + T=car(S); + if((D=mydeg(T[0],z))==0) continue; + L=[]; + if(iscoef(T[0],os_md.iscrat)) L=getroot(T[0],z|cpx=2); + if(findin(z,vars(L))>=0) L=[]; + if(L==[]) L=polroots(T[0],z|comp=-1); + for(;L!=[];L=cdr(L)){ + QQ=Q; + for(I=T[1]; I>1;I--) QQ=mydiff(QQ,z); + for(U=0,W=I=T[1];I>0;I--,W++){ + QQ=diff(QQ,z); + U+=subst(QQ,z,L[0])*(z-L[0])^(W-T[1])/fac(W); + } + UD=mydiff(U,z); + for(I=T[1],K=1,PP=P; I>1;I--,K++) + PP=diff(PP,z)*U-K*PP*UD; + QQ=subst(PP,z,L[0])/subst(U,z,L[0])^K; +/* if(D==2) QQ=sqrt2rat(QQ); */ + R=cons([L[0],sqrt2rat(QQ)],R); + } + } + if(type(L=getopt(cond))==4){ + for(S=[];R!=[];R=cdr(R)){ + Z=car(R); + for(LL=L;LL!=[];LL=cdr(LL)){ + X=real(car(Z));Y=imag(car(Z)); + if(myf3eval(car(LL),X,Y,car(Z))<=0) break; + } + if(LL==[]) S=cons(Z,S); + } + R=reverse(S); + } + if((Sum=getopt(sum))==1||Sum==2){ + for(S=0;R!=[];R=cdr(R)) S+=car(R)[1]; + if(Sum==2) S*=2*@pi*@i; + return sqrt2rat(S); + } + return R; +} + +def fint(F,D,V) +{ + if(((L=length(V))==2 || (L==3&&isvar(V[0])<3)) + && (type(V[L-1])==7||(type(V[L-1])<3&&type(eval(V[L-1]))<2))) + /* real integral */ + return areabezier([F,D,V]|option_list=getopt()); + /* complex integral */ + if(L>1&&type(V[1])==4&&type(V[1][1])<4){ + if(type(V[0])==4&&type(V[0][0])<2){ + for(R=[],VT=car(V),VV=cdr(V);VV!=[];VV=cdr(VV),VT=VU){ + if((VU=car(VV))==-1) VU=car(V); + R=cons([ptcommon([VT,VU],[t,1-t]|in=1),[0,1]],R); + } + V=reverse(R); + } + else if(L==2) V=[V]; + } + Opt=cons(["cpx",1],getopt()); + for(R=0;V!=[];V=cdr(V)){ + VT=car(V); + X=car(VT)[0];XD=red(diff(X,t)); + Y=car(VT)[1];YD=red(diff(Y,t)); + F=mysubst(F,[[x,X],[y,Y],[z,X+@i*Y]]); + if(type(F)==4) + FF=cons(F[0]*(XD+@i*YD),cdr(F)); + else FF=red(F*(XD+@i*YD)); + R+=areabezier([FF,D,cons(t,VT[1])]|option_list=Opt); + } + return R; +} + +def areabezier(V) +{ + if(getopt(cpx)==1){ + Opt=delopt(getopt(),"cpx"); + F=V[0]; + if(!isvar(Var=V[2][0])) Var=x; + if(type(F)==3 && vars(F)==[Var] && imag(dn(F))!=0){ + F=(nm(F)*conj(dn(F)))/(dn(F)*conj(dn(F))); + V0=red(real(nm(F))/dn(F)); + R=areabezier([V0,V[1],V[2]]|option_list=Opt); + V0=red(imag(nm(F))/dn(F)); + return R+@i*areabezier([V0,V[1],V[2]]|option_list=Opt); + } + if(getopt(Acc)!=1) F=f2df(F); + V0=compdf([o,[o,real,o_]],o_,F); + R=areabezier([V0,V[1],V[2]]|option_list=Opt); + V0=compdf([o,[o,imag,o_]],o_,F); + return R+@i*areabezier([V0,V[1],V[2]]|option_list=Opt); + } + if(type(V[0])!=4 || vars(V[0][0])!=0){ + Mx=[-2.0^(512),2.0^(512)]; + I=length(V[2]); + if(type(V[2][I-1])==7||type(V[2][I-2])==7){ /* infinite interval */ + if(type(Ec=getopt(exp))==1) R=cmpf([V[0],V[2]]|exp=Ec); + else R=cmpf([V[0],V[2]]); + V=[R,V[1],[0,1]]; + } + if(type((Int=getopt(int)))==1 && type(V[0])<4 && (V1=V[1])>=0){ + if(Int==2&&iand(V1,1)) V1++; + if(!V1) V1=32; + Opt=cons(["raw",1],getopt()); + W=xygraph(V[0],V[1],V[2],Mx,Mx|option_list=Opt); + SS=W[0][1]; + for(S0=S1=0,I=0,L=W;L!=[] && I<=V1;I++, L=cdr(L)){ + if(iand(I,1)) S1+=car(L)[1]; + else S0+=car(L)[1]; + if (I==V1) SS+=car(L)[1]; + } + VV=deval(V[2][1]-V[2][0]); + if(Int==2) + return (2*S0+4*S1-SS)*VV/(3*V1); + else + return (2*S0+2*S1-SS)*VV/(2*V1); + } + Opt=cons(["opt",0],getopt()); + V=xygraph(V[0],V[1],V[2],Mx,Mx|option_list=Opt); + } + if(type(V[0][0])!=4) V=os_md.lbezier(V); + for(S=0; V!=[]; V=cdr(V)){ + B=tobezier(car(V)); + P=intpoly(B[1]*diff(B[0],t),t); + S+=mysubst(P,[t,1]); + } + return S; +} + +def velbezier(V,L) +{ + if(L==0) L=[t,0,1]; + else L=[(length(L)==3)?L[2]:t,L[0],L[1]]; + for(R=[],II=length(V)-1;II>=0;II--){ + S=fmmx(diff(V[II],L[0]|dif=1),L|dif=1); + for(U=0;S!=[];S=cdr(S)) if((T=abs(car(S)[1]))>U) U=T; + R=cons(U,R); + } + return R; +} + +def ptbezier(V,L) +{ + if(type(V[0])==4&&type(V[0][0])!=4) V=lbezier(V); + K=length(V); + if(type(L)<2){ + if(L<0) return K; + if(L>=K-1) L=[K-1,1]; + else{ + L0=floor(L); + if(L0>=K-1) L0=K-1; + L=[L0,L-L0]; + } + } + if(L[0]>=0) B=V[L[0]]; + else B=V[K+L[0]]; + B=tobezier(B); + BB=[diff(B[0],t),diff(B[1],t)]; + return [subst(B,t,L[1]),subst(BB,t,L[1])]; +} + +def ptcombezier(P,Q,T) +{ + if(type(T)<2){ + if(T<2) T=20; /* default */ + return ptcombezier(P,Q,[0,0,1,T]); + } + V=T[2]/2;; + PB=tobezier(P|div=1); + PP=[ptbbox(PB[0]),ptbbox(PB[1])]; + QB=tobezier(Q|div=1); + QQ=[ptbbox(QB[0]),ptbbox(QB[1])]; + for(L=[],I=0;I<2;I++){ + for(J=0;J<2;J++){ + if(!iscombox(PP[I],QQ[J])) continue; + if(T[3]<=1) return + [[T[0]+(I+0.5)*V,T[1]+(J+0.5)*V, + [(PP[I][0][0]+PP[I][0][1])/2,(PP[I][1][0]+PP[I][1][1])/2]]]; + else{ +#if 0 + U=PB[I][0];V=PB[I][length(PB[I])-1]; + if(abs(A=(U[0]-V[0]))>abs(B=(U[1]-V[I]))) + M=mat([1,0],[-B/A,1]); + else if(U!=V) + M=mat([1,-A/B],[0,1]); + else continue; + if(!iscombox(ptbox(ptaffine(M,PB[I])),ptbox(ptaffine(M,QB[J])))) continue; +#endif + + LN=ptcombezier(PB[I],QB[J],[T[0]+I*V,T[1]+J*V,V,T[3]-1]); +#if 0 + L=append(LN,L); +#else + if(LN!=[]){ + if(L==[]) L=LN; + else for(VV=3*V/2^T[3];LN!=[];LN=cdr(LN)){ + for(LT=L;LT!=[];LT=cdr(LT)){ + if(abs(car(LN)[0]-car(LT)[0])<VV&&abs(car(LN)[1]-car(LT)[1])<VV) break; + } + } + } + if(length(L)>32){ /* Too many points */ + I=J=2; + } +#endif + } + } + } + return L; +} + + +def ptcombz(P,Q,T) +{ + if(P==Q) Q=0; + if(type(P[0][0])!=4) P=P0=lbezier(P); + if(Q==0){ + Q=P;F=1; + } + else if(type(Q[0][0])!=4) Q=lbezier(Q); + for(R=[],I=0,Q0=Q;P!=[];P=cdr(P),I++){ + for(J=0,Q=Q0;Q!=[];Q=cdr(Q),J++){ + if(F==1&&I<J+2) break; + if((RT=ptcombezier(car(P),car(Q),T))!=[]){ + RT=cons([I,J],RT); + R=cons(RT,R); + } + } + } + if((Red=getopt(red))==1||Red==2){ + if(type(M=getopt(prec))!=1) M=12; + for(F=0,T=P0;T!=[];T=cdr(T)){ + for(S=car(T);S!=[];S=cdr(S)){ + if(type(ST=car(S))==4 && type(ST[0])<2){ + if(F++==0){ + X0=X1=ST[0];Y0=Y1=ST[1]; + }else{ + if(ST[0]<X0) X0=ST[0]; + if(ST[0]>X1) X1=ST[0]; + if(ST[1]<Y0) Y0=ST[1]; + if(ST[1]>Y1) Y1=ST[1]; + } + } + } + } + V0=(X1-X0)/2^M;V1=(Y1-Y2)/2^M; + for(RR=[],RT=R;RT!=[];RT=cdr(RT)) + for(S=cdr(car(RT));S!=[];S=cdr(S)) RR=cons(car(S)[2],RR); + RR=ltov(RR);L=length(RR); + for(I=0;I<L;I++) + for(K=1,J=I+1;K!=0&&J<L;J++) + if(abs(RR[I][0]-RR[J][0])<V0 && abs(RR[I][1]-RR[J][1])<V1) RR[I]=K=0; + R0=[]; + I=L-1; + if(Red==2){ + for(;I>=0;I--) if(RR[I]!=0) R0=cons(RR[I],R0); + }else{ + for(RT=R;RT!=[];RT=cdr(RT)){ + R00=[car(RT)[0]]; + for(S=cdr(car(RT));S!=[];S=cdr(S),I--) + if(RR[L-I-1]!=0) R00=cons(car(S),R00); + if(length(R00)>1) R0=cons(reverse(R00),R0); + } + } + return R0; + } + return reverse(R); +} + +def draw_bezier(ID,IDX,B) +{ + if(getopt(init)==1){ + S_FDot=0; + return; + } + if(type(Col=getopt(col))!=1&&Col!=0) Col=0; + Dot=0; + if(type(Opt=getopt(opt))==7){ + if(!Col){ + Col=drawopt(Opt,0); + if(Col==-1) Col=0; + } + T=drawopt(Opt,3); + if(iand(T,2)){ + M=iand(T,1)?1/8:1/4; + for(C=Col,Col=I=0;I<20;I+=8) + Col+=ishift(0xff-(floor((0xff-iand(0xff,ishift(C,I)))*M)),-I); + } + if(iand(T,4)) Dot=2; /* 2 or 3 or 4 or 6 */ + else if(iand(T,8)) Dot=4; + } + if(type(B)==4 && (type(B[0])==4||type(B[0])==5) && type(B[0][0])<2) B=lbezier(B); + else if(type(B)==5) B=[vtol(B)]; + for(;B!=[];B=cdr(B)){ + if(vars(F=car(B))==[]){ +#if 1 + if(length(F)<3&&!Dot){ /* line or point */ + if(length(F)>0){ + G=[rint(F[0][0]),rint(F[0][1])]; + if(length(F)==1) draw_obj(ID,IDX,G,Col); + else{ + G=[G[0],G[1],rint(F[1][0]),rint(F[1][1])]; + draw_obj(ID,IDX,G,Col); + } + } + continue; + } +#endif + if(length(F)<2) continue; + F=tobezier(F); + } + N=velbezier(F,0); + N=(N[0]>N[1])?N[0]:N[1]; + if(!N) N=1; + for(I=0;I<=N;I++,S_FDot++){ + if(Dot!=iand(S_FDot,Dot)) continue; + G=subst(F,t,I/N); + G=[rint(G[0]),rint(G[1])]; + if(G!=G0){ + draw_obj(ID,IDX,G,Col); + G0=G; + } + } + } + if(S_FDot-->=2^32) S_FDot=0; + return 0; +} + +def lbezier(L) +{ + if((In=getopt(inv))==1||In==2||In==3){ + for(F=0,R=[];L!=[];L=cdr(L)){ + LT=car(L); + if(F==car(LT)) R=cons(1,R); + else{ + if(R!=[]&&F!=0) R=cons(0,R); + R=cons(G=car(LT),R); + if(In==3) In==2; + } + for(LT=cdr(LT);LT!=[];LT=cdr(LT)) + R=cons(car(LT),R); + if((F=car(R))==G&&In==1){ + R=cons(-1,cdr(R)); + F=0; + } + } + if(In==3 && car(R)==G) R=cons(-1,cdr(R)); + return reverse(R); + } + for(F=0,RT=R=[];L!=[];L=cdr(L)){ + if(type(T=car(L))==4||type(T)==5){ + if(F==0){ + FT=T;F=1; + } + RT=cons(T,RT); + }else if(T==0){ + if(RT==[]) R=cons(reverse(RT),R); + RT=[];F=0; + }else if(T==1){ + if(RT!=[]){ + R=cons(reverse(RT),R); + RT=[car(RT)]; + }else{ + RT=[];F=0; + } + }else if(T==-1){ + RT=cons(FT,RT); + R=cons(reverse(RT),R); + RT=[];F=0; + } + } + if(RT!=[]) R=cons(reverse(RT),R); + return reverse(R); +} + + +def xybezier(L) +{ + if(L==0 || (LS=length(L))==0) return ""; + Out=str_tb(0,0); + if(type(VF=getopt(verb))==4){ + if(type(car(VF))>3){ + VFS=VF;VF=1; + }else{ + VFS=cdr(VF);VF=car(VF); + } + }else VFS=["$\\bullet$","$\\times$"]; + if(VF!=1 && VF!=2) VF=0; + if(!TikZ){ + if(VF) Ob=str_tb(0,0); + T="\n**\\crv{"; + if(type(Opt=getopt(opt))==7 && Opt!="") T=T+Opt; + L00=Q=L[I0=0];S=S1=""; + for(F=0,I=1;I<=LS;I++){ + P=Q;Q=(I==LS)?0:L[I]; + if(type(Q)==4){ + if(F==0){ + S1="";L0=P;F=1; + continue; + }else if(F==1) + F=2; + else if(F==2){ + S1=S1+"&"; + } + S1=S1+xypos(P); + if(VF&&length(VFS)>1) str_tb(xyput([P[0],P[1],VFS[1]]),Ob); + }else{ + if(Q==0){ + if(F>0){ + str_tb("{"+xypos(L0)+";"+xypos(P)+T+S1+"}};\n",Out); + if(VF){ + str_tb(xyput([L[0][0],L[0][1],VFS[0]]),Ob); + if(VF==1) str_tb(xyput([P[0],P[1],VFS[0]]),Ob); + } + F=0; + } + }else if(Q==1){ + str_tb("{"+xypos(L0)+";"+xypos(P)+T+S1+"}};\n",Out); + if(VF){ + str_tb(xyput([L[0][0],L[0][1],VFS[0]]),Ob); + if(VF==1) str_tb(xyput([P[0],P[1],VFS[0]]),Ob); + } + F=1; + }else if(Q==-1){ + if(F==2) + S1=S1+"&"; + str_tb("{"+xypos(L0)+";"+xypos(L00)+T+S1+xypos(P)+"}};\n",Out); + if(VF) str_tb(xyput([L[0][0],L[0][1],VFS[0]]),Ob); + F=0; + } + if(F==1){ + if(I<LS-1 && type(L[I+1])<2){ + if(L[I+1]==-1){ + str_tb("{"+xypos(P)+";"+xypos(L00)+T+"}};\n",Out); + } + if(VF) str_tb(xyput([P[0][0],P[0][1],VFS[0]]),Ob); + F=0; + } + } + while(++I<LS && type(L[I])<2); + if(I>=LS) break; + if(F==1){ + Q=P;I--;F=0; + }else L00=Q=L[I]; + } + } + }else{ + if(type(T=getopt(cmd))==7){ + if(T!="") T="\\"+T; + }else T="\\draw"; + if((Rel=getopt(relative))==1) VF=0; + if(VF) Ob=str_tb(0,0); + if(type(Opt=getopt(opt))==7 && Opt!="") T=T+"["+Opt+"]"; + Out=str_tb(T,0); + Q=L[0]; + for(F=M=0,I=1;I<=LS;I++){ + P=Q; Q=(I==LS)?0:L[I]; + if(++M>XYLim){ + str_tb("\n",Out);M=1; + } + if(type(Q)==4 || type(Q)==5 || type(Q)==7){ + if(F==0){ + str_tb(" ",Out); + F=1; + }else if(F==1){ + str_tb(" .. controls ",Out); + F=2; + }else if(F==2){ + str_tb(" and ",Out); + F=2; + } + PP=xypos(P); + if(Rel==1 && F==2) PP="+"+PP; + str_tb(PP,Out); + if(VF&&((F<2)||length(VFS)>1)) + str_tb(xyput([P[0],P[1],(F<2)?VFS[0]:VFS[1]]),Ob); + }else{ +/* if(I<LS-1) VF=0; */ + if(Q==0||Q==1){ + PP=xypos(P); + if(Rel==1) PP="+"+PP; + str_tb(((F==0)?" ":((F==1)?" -- ":" .. "))+PP,Out); + if(VF) str_tb(xyput([P[0],P[1],VFS[0]]),Ob); + F=Q; + }else if(Q==-1){ + PP=xypos(P); + if(Rel==1) PP="+"+PP; + if(F==1) + str_tb("..controls "+PP+" .. cycle",Out); + else if(F==2) + str_tb(" and "+PP+" .. cycle",Out); + if(VF&&length(VFS)>1) str_tb(xyput([P[0],P[1],VFS[1]]),Ob); + F=0; + } + if(F==1){ + if(I<LS-1){ + if(L[I+1]==-1){ + str_tb(" -- cycle",Out); + I=I+1; + F=0; + } + else if(type(L[I+1])<2) F=0; + } + } + while(++I<LS && type(L[I])<2); + if(I>=LS) break; + Q=L[I]; + } + } + str_tb(";\n",Out); + } + if(VF) str_tb(str_tb(0,Ob),Out); + return str_tb(0,Out); +} + +def xybox(L) +{ + K=length(L); + P=L[0];Q=L[1]; + if(K==2) + LL=[ P, [P[0],Q[1]], Q, [Q[0],P[1]] ]; + else{ + R=L[2]; + LL=[ P, R, Q, [P[0]+Q[0]-R[0],P[1]+Q[1]-R[1]] ]; + } + Opt=getopt(); + SS=getopt(opt); + FL=getopt(color); + if(TikZ&&type(SS)<1&&K==2){ + if(type(FL)==4){ + F=FL[0]; + if(length(FL)>1) CMD=FL[1]; + }else if(type(FL)==7) F=FL; + else F=""; + F=cons(F,["rectangle"]); + if(CMD) return xyarrow(P,Q|opt=F,cmd=CMD); + else return xyarrow(P,Q|opt=F); + } + if(type(SS)!=7&&!TikZ) Opt=cons(["opt","@{-}"],Opt); + Opt=cons(["close",1],Opt); + return xylines(LL|option_list=Opt); +} + +def xyang(S,P,Q,R) +{ + Opt=getopt(); + if(type(Prec=getopt(prec))!=1) Prec=0; + if(type(Q)>2){ + if(R==1||R==-1){ /* 直角 */ + P1=ptcommon([Q,P],[-S,0]); + S*=R; + P2=ptcommon([P,P1],[S,@pi/2]); + P3=ptcommon([P1,P2],[S,@pi/2]); + return xylines([P1,P2,P3]|option_list=Opt); + }else if((AR=abs(R))==0||AR==2||AR==3||AR==4){ /* 矢印 */ + Ang=myarg([Q[0]-P[0],Q[1]-P[1]]); + if(R<0) Ang+=3.14159; + ANG=[0.7854,0.5236,1.0472]; + X=(AR==0)?1.5708:ANG[AR-2]; + U=[P[0]+S*dcos(Ang+X),P[1]+S*dsin(Ang+X)]; + V=[P[0]+S*dcos(Ang-X),P[1]+S*dsin(Ang-X)]; /* 矢先 */ + V=(X==0)?[U,V]:[U,P,V]; + if(getopt(ar)==1) V=append([Q,P,0],V); /* 心棒 */ + return xylines(V|option_list=Opt); + }else if(AR>4&&AR<9){ + Ang=myarg([Q[0]-P[0],Q[1]-P[1]]); + ANG=[0.7854,0.5236,0.3927,0.2618]; + X=ANG[AR-5]; + U=[P[0]+S*dcos(Ang+X),P[1]+S*dsin(Ang+X)]; + V=[P[0]+S*dcos(Ang-X),P[1]+S*dsin(Ang-X)]; + W=ptcommon([P,U],[P,Q]|in=-2); + W1=[(U[0]+P[0]+W[0])/3,(U[1]+P[1]+W[1])/3]; + W2=[(V[0]+P[0]+W[0])/3,(V[1]+P[1]+W[1])/3]; + L=[U,W1,P,1,W2,V]; + if(getopt(ar)==1) L=append([Q,P,0],L); + if(type(Sc=getopt(scale))>0){ + if(type(Sc)==1) Sc=[Sc,Sc]; + L=ptaffine(diagm(2,Sc),L); + } + Opt=getopt(opt); + if(type(Opt)>0) OL=[["opt",Opt]]; + else OL=[]; + if(getopt(proc)==1) return append([2,OL],L); + S=xybezier(L|optilon_list=OL); + if(getopt(dviout)!=1) return S; + dviout(S); + return 1; + } + } + if(type(Q)<3){ + X=deval(Q); Y=deval(R); + }else{ + X=myarg([Q[0]-P[0],Q[1]-P[1]]); + Y=myarg([R[0]-P[0],R[1]-P[1]]); + } + if(Prec>2) N=8; + else if(Prec==2) N=6; + else if(Prec==1) N=4; + else N=3; + U=deval(@pi)*2/N; + if(X==Y||Y-X>6.28318){ + for(L=[],I=N-1;I>=0;I--) L=cons([P[0]+S*dcos(I*U),P[1]+S*dsin(I*U)],L); + return xylines(L|option_list=append([["curve",1],["close",1]],Opt)); + } + for(M=1;(Y-X)/M>U;M++); + for(L=[],I=M+1;I>-2;I--){ + Ang=X+(Y-X)*I/M; + L=cons([P[0]+S*dcos(Ang),P[1]+S*dsin(Ang)],L); + } + if(getopt(ar)!=1) return xylines(L|option_list=append([["curve",1],["close",-1]],Opt)); + OL=delopt(Opt,["dviout","opt","proc"]); + S=xylines(L|option_list=append([["curve",1],["close",-1],["opt",0]],OL)); + T=xylines([P,L[1]]|option_list=cons(["opt",0],OL)); + S=ptaffine("close",[S,T]); /* connect curves */ + if(getopt(opt)==0) return S; + OL=(type(SS=getopt(opt))>1)?[["opt",SS]]:[]; + if(type(T=getopt(proc))==1 && T>=1 && T<=3) return [1,OL,S]; + if(OL==[]) S=xybezier(S); + else S=(type(SS)==7)? xybezier(S|opt=SS):xybezier(S|opt=SS[0],cmd=SS[1]); + if(getopt(dviout)==1) return xyproc(S|dviout=1); + return S; +} + +def xyoval(P,L,R) +{ + if(type(Arg=getopt(arg))!=4 && type(Arg=getopt(deg))==4){ + if(length(Arg)>2) + Arg=[@pi*Arg[0]/180,@pi*Arg[1]/180,@pi*Arg[2]/180]; + else + Arg=[@pi*Arg[0]/180,@pi*Arg[1]/180]; + } + if(type(Arg)==4){ + Arg0=deval(Arg[0]); Arg1=deval(Arg[1]); + if(length(Arg)>2) Arg2=deval(Arg[2]); + if(Arg1<Arg0 || Arg0<-7) return 0; + } + if(type(Prec=getopt(prec))!=0) Prec=0; + if((Ar=getopt(ar))!=1) Ar=0; + L=xyang(L,[0,0],Arg0,Arg1|prec=Prec,opt=0,ar=Ar); + Sc=getopt(scale); + if(type(Sc=getopt(scale))<1) Sc=[1,1]; + else if(type(Sc)==1) Sc=[Sc,Sc]; + M=mat([1,0],[0,R]); + L=ptaffine(M,L|shift=P); + M=mat([Sc[0],0],[0,Sc[1]]); + L=ptaffine(M,L|arg=Arg2); + if((Opt=getopt(opt))==0) return L; + Opt=(type(Opt)>1)? [["opt2",Opt]]:[]; + if(getopt(proc)==1) return [1,Opt,L]; + S=xybezier(L|option_list=getopt()); + if(getopt(dviout)==1){ + xyproc(S|dviout=1); + return 1; + } + return S; +} + +def xycirc(P,R) +{ + ST=getopt(opt); + if(type(ST)<0) ST=""; + if(type(Arg=getopt(arg))!=4 && type(Arg=getopt(deg))==4){ + Arg=[@pi*Arg[0]/180,@pi*Arg[1]/180]; + } +/* Is it OK? + if(TikZ==0 && XYcm==1){ + R*=10; P=[P[0]*10,P[1]*10]; + } +*/ + if(type(Arg)==4){ + Arg0=deval(Arg[0]); Arg1=deval(Arg[1]); + if(Arg1<=Arg0 || Arg0<-7 || Arg1-Arg0>7) return 0; + if(type(ST)==7) + S=xygraph([R*cos(x)+P[0],R*sin(x)+P[1]],-4,[Arg0,Arg1],[P[0]-R-1,P[0]+R+1], + [P[1]-R-1,P[1]+R+1]|opt=ST); + else + S=xygraph([R*cos(x)+P[0],R*sin(x)+P[1]],-4,[Arg0,Arg1],[P[0]-R-1,P[0]+R+1], + [P[1]-R-1,P[1]+R+1]); + if(getopt(close)==1){ + S=S+xyline([0,0], + [deval(subst(R*cos(x)+P[0],x,Arg0)),deval(subst(R*sin(x)+P[0],x,Arg0))]); + S=S+xyline([0,0], + [deval(subst(R*cos(x)+P[0],x,Arg1)),deval(subst(R*sin(x)+P[0],x,Arg1))]); + } + return S; + } + if(TikZ){ + SP=""; + if(length(P)>2) SP=P[2]; + if(type(SP)!=7) SP="$"+my_tex_form(SP)+"$"; + if(R==0){ + if(ST!="") ST=ST+","; + return "\\node ["+ST+"circle,draw]"+xypos([P[0],P[1]])+ "{"+SP+"};\n"; + } + if(type(R)!=7) R=rtostr(deval(R)); + if(ST!="") ST="["+ST+"]"; + S="\\draw "+ST+xypos([P[0],P[1]])+" circle [radius="+R+"]"; + if(SP!="") S=S+" node at"+xypos([P[0],P[1]])+" {"+SP+"}"; + return S+";\n"; + } + S="{"+xypos([P[0],P[1]]); + if(length(P)>2){ + SP=P[2]; + if(type(P)!=7) SP=my_tex_form(SP); + S=S+" *+{"+SP+"}"; + } + S =S+" *\\cir"; + if(R!=0){ + R=deval(R); + S=S+"<"+rtostr(R)+((XYcm)?"cm>":"mm>"); + } + S = S+"{"; + if(type(ST)==7) S=S+ST; + return S+"}};\n"; +} + +def ptaffine(M,L) +{ + if(type(L)!=4&&type(L)!=5){ + erno(0);return L; + } + if(type(M)==7){ /* connect lists */ + if(M=="reverse"){ + for(LO=LR=[],F=0,LT=L; LT!=[]; LT=cdr(LT)){ + if(type(P=car(LT))==4 || type(P)==7){ + LR=cons(P,LR); + continue; + }else{ + if(P==-1){ + LL=reverse(LR); + LO=append(reverse(cons(-1,cdr(LL))),LO); + LO=cons(car(LL),LO); + LR=[]; + }else if(P==1){ + LR=cons(car(LR),cons(1,cdr(LR))); + }else if(P==0 || length(LT)==1){ + if(LO!=[] && car(LO)!=0 && (type(car(LO))==4 || car(LO)==1)) + LO=cons(0,LO); + LO=append(LR,LO); + if(length(LT)>1&&length(LO)>0&&car(LO)!=0) LO=cons(0,LO); + LR=[]; + } + } + } + return append(LR,LO); + } + if(type(L[0][0])!=4) L=[L]; + LO=[]; + if(M=="connect" || M=="close" || M=="loop"){ + Top=car(car(L)); + for(K=1,LL=L; LL!=[]; LL=cdr(LL)){ + for(F=0,LT=car(LL); LT!=[]; LT=cdr(LT),F++){ + if((LTT=car(LT))==0) LTT=1; + if(F==0 && LO!=[]){ + LO0=car(LO); + if(car(LO)!=1&&length(LO)>1) LO=cons(1,LO); + if(LTT==LO0) continue; + else LO=cons(1,cons(LTT, LO)); + }else LO=cons(LTT, LO); + } + } + if(M!="connect"){ + if(Top==car(LO) || car(LO)==1 || M=="loop") + LO=cons(-1,cdr(LO)); + else + LO=cons(-1,cons(1,LO)); + } + return reverse(LO); + } + if(M=="union"){ + for(LL=reverse(L); LL!=[]; LL=cdr(LL)){ + if(LO!=[]) LO=cons(0,LO); + LO=append(car(LL),LO); + } + L=LO; + } + return L; + } + if(type(Arg=getopt(deg))==1) + Arg=@pi*Arg/180; + else Arg=getopt(arg); + if(type(Arg)==2) Arg=deval(Arg); + if(type(Arg)==1) + M=M*mat([dcos(Arg),-dsin(Arg)],[dsin(Arg),dcos(Arg)]); + if(type(Sft=getopt(org))==4){ + Sft=ltov(Sft); + Sft-=M*Sft; + }else Sft=ltov([0,0]); + if(type(V=getopt(shift))==4) + Sft+=ltov(V); + if(getopt(proc)==1){ + if(Sft!=0&<ov(Sft)!=[0,0]) Sft=[["shift",vtol(Sft)]]; + else Sft=[]; + for(LO=[],LT=L;LT!=[];LT=cdr(LT)){ + if(type(car(T=car(LT)))<2){ + if((P=car(T))==0){ /* exedraw 0 */ + V=[[T[1][0],T[2][0]],[T[1][0],T[2][1]],[T[1][1],T[2][0]],[T[1][1],T[2][1]]]; + V=ptbbox(ptaffine(M,V|option_list=Sft)); + L1=cdr(cdr(cdr(T))); + LO=cons(append([0,V[0],V[1]],L1),LO); + continue; + }else if(P==1){ /* exedraw 1 */ + L1=[]; + for(TT=cdr(cdr(T));TT!=[];TT=cdr(TT)){ + D=car(TT); + if(type(D[0][0])==4){ + for(L2=[],DT=D;DT!=[];DT=cdr(DT)) + L2=cons(ptaffine(M,car(DT)|option_list=Sft),L2); + L1=cons(reverse(L2),L1); + }else L1=cons(ptaffine(M,D|option_list=Sft),L1); + } + LO=cons(append([1,T[1]],reverse(L1)),LO); + continue; + }else if(P>=2 && P<=5){ + L1=ptaffine(M,cdr(cdr(T))|optilon_list=Sft); + LO=cons(append([P,T[1]],L1),LO); + continue; + } + } + LO=cons(T,LO); + } + return reverse(LO); + } + F=0; + if(type(L)==4){ + for(LT=L; LT!=[]; LT=cdr(LT)){ + if((T=type(car(LT)))==4||T==5){ + F=1; break; + } + } + } + if(F==0) return (Sft==0)?ptaffine(M,[L])[0]:ptaffine(M,[L]|shift=vtol(Sft))[0]; + for(LO=[],LT=L; LT!=[]; LT=cdr(LT)){ + if(((T=type(P=car(LT)))!=4 && T!=5)||type(P[0])>3) LO=cons(P,LO); + else{ + if(T==4) P=ltov(P); + V=M*P; + if(Sft!=0) V+=Sft; + if(T==4) V=vtol(V); + LO=cons(V,LO); + } + } + return reverse(LO); +} + +def ptlattice(M,N,X,Y) +{ + if(type(S=getopt(scale))!=1) S=1; + if(type(Cond=getopt(cond))!=4) Cond=[]; + Line=getopt(line); + if(Line==1 || Line==2) F=newmat(M,N); + else Line=0; + if(type(Org=getopt(org))==4) Org=ltov(Org); + else Org=newvect(length(X)); + X=ltov(X); Y=ltov(Y); + for(L=[],I=M-1;I>=0;I--){ + for(P0=P1=0,J=N-1;J>=0;J--){ + P=Org+I*X+J*Y; + for(C=Cond; C!=[]; C=cdr(C)) + if(subst(car(C),x,P[0],y,P[1])<0) break; + if(C!=[]) continue; + if(Line) F[I][J]=1; + else L=cons(vtol(S*P),L); + } + } + if(Line==0) return L; + for(I=M-1;I>=0;I--){ + for(T0=0,T1=J=N-1;J>=0;J--){ + if((K=F[I][J])!=0){ + if(T0==0) T0=J; + else T1=J; + } + if(K==0 || T1==0){ + if(T1<T0){ + L=cons(vtol(S*(Org+I*X+T0*Y)), L); + L=cons(vtol(S*(Org+I*X+T1*Y)), L); + L=cons(0,L); + } + T0=0; T1=N-1; + } + } + } + for(J=N-1;J>=0;J--){ + for(T0=0,T1=I=M-1;I>=0;I--){ + if((K=F[I][J])!=0){ + if(T0==0) T0=I; + else T1=I; + } + if(K==0 || T1==0){ + if(T1<T0){ + L=cons(vtol(S*(Org+T0*X+J*Y)), L); + L=cons(vtol(S*(Org+T1*X+J*Y)), L); + L=cons(0,L); + } + T0=0; T1=M-1; + } + } + } + return cdr(L); +} + +def ptpolygon(N,R) +{ + if(type(S=getopt(scale))!=1) S=1; + if(type(Org=getopt(org))!=4) Org=[0,0]; + Pi=deval(@pi); + if(type(Arg=getopt(deg))==1) + Arg=Pi*Arg/180; + else Arg=getopt(arg); + if(type(Arg)==2) Arg=deval(Arg); + if(type(Arg)!=1) Arg=0; + Arg -= Pi*(1/2+1/N); + D=Pi*2/N; + for(L=[],I=N-1; I>=0; I--) + L=cons([S*(Org[0]+R*dcos(Arg+I*D)),S*(Org[1]+R*dsin(Arg+I*D))],L); + return L; +} + +def ptwindow(L,X,Y) +{ + if(type(S=getopt(scale))==1){ + X=[S*X[0],S*X[1]]; Y=[S*Y[0],S*Y[1]]; + } + for(R=[],LT=L;LT!=[];LT=cdr(LT)){ + P=car(LT); + if(P[0]<X[0] || P[0]>X[1] || P[1]<Y[0] || P[1]>Y[1]) + R=cons(0,R); + else R=cons(P,R); + } + return reverse(R); +} + +def lninbox(L,W) +{ + if(L[0]==L[1]) return 0; + R=newvect(2);C=newvect(2); + for(J=0;J<2;J++){ + C[J]=L[1][J]-L[0][J]; + if(C[J]!=0){ + R[J]=[(W[J][0]-L[0][J])/C[J],(W[J][1]-L[0][J])/C[J]]; + if(R[J][0]>R[J][1]) R[J]=[R[J][1],R[J][0]]; + } + } + if(R[0]==0) R[0]=R[1]; + if(R[1]==0) R[1]=R[0]; + S0=(R[0][0]<R[1][0])?R[1][0]:R[0][0]; + S1=(R[0][1]<R[1][1])?R[0][1]:R[1][1]; + if(getopt(in)==1){ + if(S0<0) S0=0; + if(S1>1) S1=1; + } + if(S0>S1) return 0; + return [[L[0][0]+C[0]*S0,L[0][1]+C[1]*S0],[L[0][0]+C[0]*S1,L[0][1]+C[1]*S1]]; +} + +def ptbbox(L) +{ + J=length(L[0]); + if((Box=getopt(box))==1){ + for(R=[],I=0;I<J;I++){ + P=car(LT=L)[I][0];Q=car(LT)[I][1]; + for(;LT!=[];LT=cdr(LT)){ + if((type(T=car(LT))==4 || type(T)==5) && length(T)==J){ + if(T[I][0]<P) P=T[I][0]; + if(T[I][1]>Q) Q=T[I][1]; + } + } + R=cons([P,Q],R); + } + }else if(type(Box)==4) return ptbbox([ptbbox(L),Box]|box=1); + else{ + for(R=[],I=0;I<J;I++){ + P=Q=car(LT=L)[I];LT=cdr(LT); + for(;LT!=[];LT=cdr(LT)){ + if((type(T=car(LT))==4||type(T)==5) && type(T[0])<2 && length(T)==J){ + if((V=T[I])<P) P=V; + else if(V>Q) Q=V; + } + } + R=cons([P,Q],R); + } + } + return reverse(R); +} + +def iscombox(S,T) +{ + for(;S!=[];S=cdr(S),T=cdr(T)) + if(car(S)[0]>car(T)[1] || car(S)[1]<car(T)[0]) return 0; + return 1; +} + +def ptcopy(L,V) +{ + if(type(V[0])!=4) V=[V]; + for(F=0,LL=[]; V!=[]; V=cdr(V)){ + if(F) LL=append(LL,[0]); + F++; + LL=append(LL,ptaffine(1,L|shift=car(V))); + } +} + +def average(L) +{ + L=os_md.m2l(L|flat=1); + M0=M1=car(L); + for(I=SS=0, LT=L; LT!=[]; LT=cdr(LT), I++){ + S+=(V=car(LT)); + SS+=V^2; + if(V<M0) M0=V; + else if(V>M1) M1=V; + } + SS=dsqrt(SS/I-S^2/I^2); + S=[deval(S/I),SS,I,M0,M1]; + if(isint(N=getopt(sint))) S=sint(S,N); + return S; +} + +def m2ll(M) +{ + for(R=[],I=size(M)[0]-1; I>=0; I--) + R=cons(vtol(M[I]),R); + return R; +} + +def madjust(M,W) +{ + if(type(Null=getopt(null))<0) Null=0; + if(type(M)==4 && type(M[0])==4){ + M=lv2m(M|null=Null); + return m2ll(madjust(M,W|null=Null)); + } + S=size(M); + if(W<0){ + W=-W; + T0=ceil(S[0]/W); + T1=S[1]*W; + N=newmat(T0,T1); + for(I=0; I<T0; I++){ + for(K=0; K<W; K++){ + II=K*T0+I; + for(J=0; J<S[1]; J++) + N[I][S[1]*K+J]=(II<S[0])?M[II][J]:Null; + } + } + }else{ + T1=W; + T0=S[0]*(D=ceil(S[1]/T1)); + N=newmat(T0,T1); + for(K=0; K<D; K++){ + for(J=0; J<W;J++){ + JJ=W*K+J; + for(I=0; I<S[0]; I++) + N[S[0]*K+I][J]=(JJ<S[1])?M[I][JJ]:Null; + } + } + } + return N; +} + +def texcr(N) +{ + if(!isint(N) || N<0 || N>127) return N; + S=(iand(N,8))? "\\allowdisplaybreaks":""; + if(iand(N,2)) S=S+"\\\\"; + if(iand(N,16)) S=S+"\\pause"; + if(iand(N,1)) S=S+"\n"; + if(iand(N,4)) S=S+"& "; + else if(!iand(N,1)) S=S+" "; + if(iand(N,64)) S=S+"="; + if(iand(N,32)) S=","+S; + return S; +} + +def ltotex(L) +{ + /* extern TeXLim; */ + + if(type(L)==5) + L = vtol(L); + if(type(L) != 4) + return my_tex_form(L); + Opt=getopt(opt); + Pre=getopt(pre); + if(type(Var=getopt(var))<1) Var=0; + Cr2="\n"; + if(type(Cr=getopt(cr))==4){ + Cr2=Cr[1];Cr=Cr[0]; + } + if(isint(Cr)) Cr=texcr(Cr); + if(type(Cr)!=7) Cr="\\\\\n & "; /* Cr=7 */ + if(type(Opt)==7) Opt=[Opt]; + if(type(Opt)!=4) + Op = -1; + else{ + Op=findin(Opt[0],["spt","GRS","Pfaff","Fuchs","vect","cr","text","spts","spts0", + "dform","tab", "graph","coord"]); + Opt=cdr(Opt); + } + if(Op==0){ /* spt */ + Out = str_tb("\\left\\{\n ",0); + for(CC=0; L!=[]; L=cdr(L), CC++){ + if(CC>0) str_tb(",\\, ",Out); + TP=car(L); + if(Op!=0) + str_tb(my_tex_form(TP),Out); + else if(TP[0]==1) + str_tb(my_tex_form(TP[1]),Out); + else + str_tb(["[", my_tex_form(TP[1]), "]_", rtotex(TP[0])],Out); + } + str_tb("%\n\\right\\}\n",Out); + }else if(Op==1){ /* GRS */ + Out = string_to_tb("\\begin{Bmatrix}\n"); + if(type(Pre)==7) str_tb(Pre,Out); + MC=length(M=ltov(L)); + for(ML=0, I=length(M); --I>=0; ){ + if(length(M[I]) > ML) ML=length(M[I]); + } + for(I=0; I<ML; I++){ + for(CC=J=0; J<MC; J++, CC++){ + if(length(M[J]) <= I){ + if(CC > 0) str_tb(" & ",Out); + }else if(M[J][I][0] <= 1){ + if(M[J][I][0] == 0) str_tb(" & ",Out); + else + str_tb([(!CC)?" ":" & ", my_tex_form(M[J][I][1])], Out); + }else + str_tb([((!CC)?" [":" & ["), my_tex_form(M[J][I][1]), "]_", + rtotex(M[J][I][0])], Out); + } + str_tb((I<ML-1)?"\\\\\n":"\n", Out); + } + str_tb("\\end{Bmatrix}",Out); + }else if(Op==2){ /* Pfaff */ + V=monototex(Opt[0]); + Out = string_to_tb("d"+V+"= \\Biggl("); + Opt=cdr(Opt); + II=length(Opt); + for(I=0; I<II; I++){ + str_tb([(I>0)?" + ":" ",mtotex(L[I]),"\\frac{d",monototex(Opt[I]),"}{", + my_tex_form(Opt[I]),(I==II-1)?"}\n":"}\n\\\\&\n"],Out); + } + str_tb(["\\Biggr)",V,"\n"],Out); + }else if(Op==3){ /* Fuchs */ + Out = string_to_tb("\\frac{d"); + V=my_tex_form(Opt[0]); + str_tb([V,"}{d",my_tex_form(Opt[1]),"}="] ,Out); + Opt=cdr(Opt); Opt=cdr(Opt); + II=length(Opt); + for(I=0; I<II; I++){ + str_tb([(I>0)?" +":"\\Biggl(", " \\frac{", + my_tex_form(L[I]),"}{", my_tex_form(Opt[I]),"}\n"],Out); + } + str_tb(["\\Biggr)",V,"\n"],Out); + }else if(Op==4){ /* vect */ + Out=str_tb(mtotex(matc(L)|lim=0,var=Var),0); + }else if(Op==5 || Op==6){ /* cr or text */ + Out = str_tb(0,0); + if(type(Lim=getopt(lim))!=1) Lim=0; + else if(Lim<30&&Lim>0) Lim=TeXLim; + Str=getopt(str); + if(length(Opt)==1 && (car(Opt)=="spts" || car(Opt)=="spts0") && type(Str)!=1) + Str=2; + for(K=I=0; L!=[]; I++, L=cdr(L)){ + LT=car(L); + if((!Lim||Op==6)&&I>0) str_tb((Op==5)?Cr:"\n",Out); + if(Op==6){ + if(type(LT)==7){ + str_tb([LT," "],Out); + I=-1; + continue; + } + str_tb("$",Out); + } + KK=0; + if(Str>0 && type(LT)==4 && Opt!=[]) + S=ltotex(LT|opt=car(Opt),lim=0,str=Str,cr=Cr2,var=Var); + else if(type(LT)==6){ + if(Lim>0){ + S=mtotex(LT|var=Var,lim=0,len=1); + KK=S[1]; + S=S[0]; + }else S=mtotex(LT|var=Var,lim=0); + }else if(type(LT)==3 || type(LT)==2) + S=fctrtos(LT|TeX=2,lim=0,var=Var); + else S=my_tex_form(LT); + if(Op!=6&&I>0&&Lim){ + if(Lim<0){ + if(I%(-Lim)==0) + str_tb((Op==5)?Cr:"\n",Out); + }else if((K+=(KK=(KK)?KK:texlen(S)))>Lim){ + str_tb((Op==5)?Cr:"\n",Out); + K=KK; + } + } + str_tb(S,Out); + if(Op==6) str_tb("$",Out); + } + }else if(Op==7||Op==8){ /* spts, spts0 */ + if(type(Lim=getopt(lim))!=1 || (Lim<30 && Lim!=0)) + Lim=TeXLim; + Str=getopt(str); + Out = str_tb(0,0); + for(K=0; L!=[]; L=cdr(L)){ + LT=car(L); + KK=0; + if(type(LT)==7 && Str==1) S=LT; + else if(type(LT)==3 || type(LT)==2) + S=fctrtos(LT|TeX=2,lim=0,var=Var); + else if(type(LT)==6){ + if(Lim){ + S=mtotex(LT|var=Var,lim=0,len=1); + KK=S[1]; + S=S[0]; + }else S=mtotex(LT|var=Var,lim=0); + }else + S=my_tex_form(LT); + if(Lim!=0){ + if(!KK) KK=texlen(S); + if(K>0 && K+KK>Lim){ + str_tb(Cr,Out); + K=0; + } + } + if(K>0){ + str_tb((Op==7)?"\\ ":" ",Out); + if(type(LT)>3 && type(LT)<7) str_tb("%\n",Out); + } + str_tb(S,Out); + K+=KK; + if(OP==7) K++; + } + }else if(Op==9){ /* dform */ + Out=str_tb(0,0); + for(I=0;L!=[];L=cdr(L),I++){ + for(J=0,LT=car(L); LT!=[]; LT=cdr(LT),J++){ + if(J==0){ + if((V=car(LT))==0) continue; + if(I>0){ + if(type(V)==1){ + if(V<0){ + str_tb("-",Out); + V=-V; + } + else str_tb("+",Out); + if(V==1 && length(LT)>1) continue; + str_tb(monototex(V),Out); + continue; + } + else str_tb("+",Out); + } + }else if(J>0) str_tb((J>1)?"\\wedge d":"\\,d",Out); + V=monototex(car(LT)); + if(V<"-" || V>=".") str_tb(V,Out); + else str_tb(["(",V,")"],Out); + } + } + }else if(Op==10 && type(L)==4 && type(car(L))==4){ /* tab */ + if(type(Null=getopt(null))<0) Null=""; + if(getopt(vert)==1){ + M=lv2m(L|null=Null); + L=m2ll(mtranspose(M)); + } + if(type(W=getopt(width))==1) + L=madjust(L,W|null=Null); + LV=ltov(L); + S=length(LV); +#if 1 + if(type(T=getopt(left))==4){ + T=str_times(T,S); + for(L=[],I=0;I<S;I++){ + L=cons(cons(car(T),LV[I]),L); + T=cdr(T); + } + LV=reverse(L); + } + if(type(T=getopt(right))==4){ + T=str_times(T,S); + for(L=[],I=0;I<S;I++){ + L=cons(append(LV[I],[car(T)]),L); + T=cdr(T); + } + LV=reverse(L); + } + for(I=CS=0; I<S; I++) + if(length(LV[I])>CS) CS=length(LV[I]); + if(type(T=getopt(top))==4){ + LV=cons(str_times(T,CS),vtol(LV)); + S++; + } + if(type(T=getopt(last))==4){ + LV=append(vtol(LV),[str_times(T,CS)]); + S++; + } +#else + for(I=CS=0; I<S; I++) + if(length(LV[I])>CS) CS=length(LV[I]); +#endif + if(type(Title=getopt(title))!=7) Title=""; + if(type(Vline=getopt(vline))!=4) Vline=[0,CS]; + else Vline=subst(Vline,z,CS); + for(VV=[],VT=Vline;VT!=[];VT=cdr(VT)){ + if(type(T=car(VT))==4 && T[1]>0){ + for(I=T[0];I<=CS;I+=T[1]) VV=cons(I,VV); + }else VV=cons(T,VV); + } + Vline=qsort(VV); + Out=str_tb("\\begin{tabular}{",0); + if(type(Al=getopt(align))==7 && str_len(Al)>1){ + str_tb(Al,Out); + }else{ + if(type(Al)!=7 || str_len(Al)<1) Al="r"; + for(I=0;I<=CS;I++){ + if(I!=0) str_tb(Al,Out); + while(Vline!=[] && car(Vline)==I){ + str_tb("|",Out); + Vline=cdr(Vline); + } + } + } + str_tb("}",Out); + if(Title!="") + str_tb("\n\\multicolumn{"+rtostr(CS)+"}{c}{"+Title+"}\\\\",Out); + if(type(Hline=getopt(hline))!=4) Hline=[0,S]; + else Hline=subst(Hline,z,S); + for(VV=[],VT=Hline;VT!=[];VT=cdr(VT)){ + if(type(T=car(VT))==4 && T[1]>0){ + for(I=T[0];I<=S;I+=T[1]) VV=cons(I,VV); + }else VV=cons(T,VV); + } + Hline=qsort(VV); + while(Hline!=[] && car(Hline)==0){ + str_tb(" \\hline\n",Out); + Hline=cdr(Hline); + } +/* + if(type(getopt(left))==4) CS++; + if(type(getopt(right))==4) CS++; + if(type(T=getopt(top))==4){ + LV=cons(str_times(T,CS),vtol(LV)); + S++; + } + if(type(T=getopt(last))==4){ + LV=append(vtol(LV),[str_times(T,CS)]); + S++; + } + if(type(T=getopt(left))==4){ + T=str_times(T,S); + for(L=[],I=0;I<S;I++){ + L=cons(cons(car(T),LV[I]),L); + T=cdr(T); + } + LV=reverse(L); + } + if(type(T=getopt(right))==4){ + T=str_times(T,S); + for(L=[],I=0;I<S;I++){ + L=cons(append(LV[I],[car(T)]),L); + T=cdr(T); + } + LV=reverse(L); + } +*/ + for(I=0; I<S; I++){ + for(C=0,LT=LV[I];C<CS; C++){ + if(LT!=[]){ + P=car(LT); + if(type(P)!=7) P="$"+my_tex_form(P)+"$"; + if(P!="") str_tb(P,Out); + LT=cdr(LT); + } + if(C<CS-1) str_tb("& ",Out); + } + str_tb("\\\\",Out); + while(Hline!=[] && car(Hline)==I+1){ + str_tb(" \\hline",Out); + Hline=cdr(Hline); + } + str_tb("\n",Out); + } + str_tb("\\end{tabular}\n",Out); + }else if(Op==11){ /* graph */ + if(type(Strip=getopt(strip))!=1) Strip=0; + if(type(MX=getopt(max))!=1) MX=0; + if(type(ML=getopt(mult))!=1) ML=0; + if((REL=getopt(relative))!=1) REL=0; + CL=getopt(color); + OL=delopt(getopt(),["color","strip","mult"]); + if(ML==1&&type(CL)==4){ + LL=L[1];L=L[0];K=length(L);S=T=""; + if(!MX){ + MX=vector(length(L[0])); + for(LT=L;LT!=[];LT=cdr(LT)){ + for(I=0,LTT=car(LT);LTT!=[];I++,LTT=cdr(LTT)){ + if(REL==1) MX[I]+=car(LTT); + else if(MX[I]<car(LTT)) MX[I]=car(LTT); + } + } + MX=lmax(MX); + OL=cons(["max",MX],OL); + } + if(REL==1) MX=newvect(length(L[0])); + for(I=0;I<K;I++){ + for(R=[],J=length(L[I]);--J>=0;){ + if(REL==1){ + R=cons([MX[J],V=MX[J]+L[I][J]],R); + MX[J]=V; + }else R=cons([(!I)?0:L[I-1][J],L[I][J]],R); + } + OP=cons(["color",CL[I]],OL); + S+=ltotex([R,LL]|option_list=cons(["value",0],cons(["strip",(!I)?1:2],OP))); + T+=ltotex([R,LL]|option_list=cons(["strip",3],OP)); + } + return(!Strip)?xyproc(S+T):(S+T); + }else if(!TikZ) CL=0; + if(type(Line=getopt(line))!=1){ + if(type(Line)==4){ + if(type(Line[0])==1 && (type(Line[1])==7 || type(Line[1])==1)){ + Opt=Line[1]; Line=Line[0]; + }else if(ML==1){ + OL=delopt(OL,"line"); + LL=L[1];L=L[0];K=length(L);S=""; + if(!MX){ + MX=newvect(length(L[0])); + for(LT=L;LT!=[];LT=cdr(LT)){ + for(I=0,LTT=car(LT);LTT!=[];I++,LTT=cdr(LTT)){ + if(REL==1) MX[I]+=car(LTT); + else if(MX[I]<car(LTT)) MX[I]=car(LTT); + } + } + MX=lmax(MX); + OL=cons(["max",MX],OL); + } + for(I=0;I<K;I++) + S+=ltotex([L[I],LL]|option_list + =cons(["line",Line[I]],cons(["strip",(!I)?1:2],OL))); + return(!Strip)?xyproc(S):S; + } + }else Line=0; + }else Opt="@{-}"; + Width=8; Hight=3; WRet=1/2; HMerg=(getopt(horiz)==1)?0.3:0.2; + if(!TikZ){ + Width*=10; Hight*=10; HMerg*=10; + } + VMerg=HMerg; + if(type(Shift=getopt(shift))!=1) + Shift=0; + if(type(V=getopt(size))==4){ + Width=V[0];Hight=V[1]; + if(length(V)>2) WRet=V[2]; + if(length(V)>3) VMerg=VMerg=V[3]; + if(length(V)>4) HMerg=V[4]; + } + Val=getopt(value); + if(!isint(Val)) Val=-1; + if(type(Line=getopt(line))!=1){ + if(type(Line)==4 && type(Line[0])==1 && (type(Line[1])==7 || type(Line[1])==1)){ + Opt=Line[1]; Line=Line[0]; + }else Line=0; + }else Opt="@{-}"; + if(type(car(L))==4){ + LL=L[1]; L=L[0]; + }else LL=[]; + if(Line==-1){ + for(Sum=0, LT=L; LT!=[]; LT=cdr(LT)){ + if((S=car(LT))<=0) return 0; + Sum+=S; + } + for(R=[],LT=L;LT!=[];LT=cdr(LT)) R=cons(car(LT)/Sum,R); + R=reverse(R); + Opt0=Opt*2/3; + Out=str_tb((Strip>0)?0:xyproc(1),0); + if(type(CL)!=4) str_tb(xylines(ptpolygon(6,Opt)|close=1,curve=1),Out); + for(S=0,RT=R,LT=LL;RT!=[];RT=cdr(RT)){ + SS=S+RT[0]; + if(type(CL)==4){ + str_tb(xyang(Opt,[0,0],(0.25-SS)*6.2832,(0.25-S)*6.2832|ar=1,opt=car(CL)),Out); + if(length(CL)>0) CL=cdr(CL); + }else str_tb(xyline([0,0],[Opt*dsin(S*6.2832),Opt*dcos(S*6.2832)]),Out); + T=(S+SS)/2; + S=SS; + if(LT!=[]){ + str_tb(xyput([Opt0*dsin(T*6.2832),Opt0*dcos(T*6.2832),car(LT)]),Out); + LT=cdr(LT); + } + } + if(!Strip) str_tb(xyproc(0),Out); + return str_tb(0,Out); + } + if(MX==0){ + for(MX=0,LT=L; LT!=[]; LT=cdr(LT)) + if(car(LT)>MX) MX=car(LT); + } + MX-=Shift; + S=length(L); + WStep=Width/S; + WWStep=WStep*WRet; + HStep=(Hight<0)?-Hight:Hight/MX; + if(LL!=[]&&length(LL)==S-1) WS2=WStep/2; + else WS2=0; + Out=str_tb((Strip>0)?0:xyproc(1),0); + Hori=getopt(horiz); + if(Strip<2){ + if(Hori==1) str_tb(xyline([0,0],[0,Width-WStep+WWStep]),Out); + else str_tb(xyline([0,0],[Width-WStep+WWStep,0]),Out); + } + for(I=0,LT=L;LT!=[]; LT=cdr(LT),I++){ + XP=WStep*I; XPM=XP+WWStep/2; + if(type(LTT=car(LT))==4){ + YP0=(car(LTT)-Shift)*HStep;YP=(LTT[1]-Shift)*HStep; + VL=LTT[1]; + if(REL) VL-=LTT[0]; + }else{ + YP0=0;YP=(LTT-Shift)*HStep;VL=LTT; + } + if(Hori==1){ + if(Line!=0){ + if(I>0) + str_tb(xyarrow([XPM,YP],[XPM-WStep,YPP]|opt=Opt),Out); + if(Val!=0) + str_tb(xyput([YP+HMerg, XPM,car(LT)]),Out); + if(Line==2) + str_tb(xyput([YP,XPM,"$\\bullet$"]),Out); + YPP=YP; + }else if(YP!=0 || Val==1){ + if(Strip!=3){ + if(CL) str_tb(xybox([[YP,XP+WWStep], [YP0,XP]]|color=CL),Out); + else str_tb(xybox([[YP,XP+WWStep],[YP0,XP]]),Out); + } + if(Val!=0) str_tb(xyput([(YP<0||REL==1)?(YP-HMerg):(YP+HMerg),XPM,VL]),Out); + } + if(LL!=[]&&I<length(LL)&&Strip<2) str_tb(xyput([-VMerg,XPM+WS2,LL[I]]),Out); + }else{ + if(Line!=0){ + if(I>0) + str_tb(xyarrow([XPM-WStep,YPP],[XPM,YP]|opt=Opt),Out); + if(Val!=0) + str_tb(xyput([XPM,YP+HMerg,car(LT)]),Out); + if(Line==2) + str_tb(xyput([XPM,YP,"$\\bullet$"]),Out); + YPP=YP; + }else if(YP!=0 || Val==1){ + if(Strip!=3){ + if(CL) str_tb(xybox([[XP,YP0],[XP+WWStep,YP]]|color=CL),Out); + else str_tb(xybox([[XP,YP0],[XP+WWStep,YP]]),Out); + } + if(Val!=0) str_tb(xyput([XPM,(YP<0||REL==1)?(YP-HMerg):(YP+HMerg),VL]),Out); + } + if(LL!=[]&&I<length(LL)&&Strip<2) str_tb(xyput([XPM+WS2,-VMerg,LL[I]]),Out); + } + } + if(!Strip)str_tb(xyproc(0),Out); + }else if(Op==12){ /* coord */ + Out=str_tb("(",0); + for(LT=L;;){ + X=car(LT); + if(type(X)>3 || imag(X)==0) str_tb(my_tex_form(X),Out); + else{ + XR=real(X);XI=imag(X); + S=monototex(imag(X)); + if(S=="1") S=""; + else if(S=="- 1") S="-"; + if(getopt(cpx)==2) S=S+"\\sqrt{-1}"; + else S=S+"i"; + if(XR!=0){ + if(str_char(S,0,"-")==0) S=monototex(XR)+S; + else S=monototex(XR)+"+"+S; + } + str_tb(S,Out); + } + if((LT=cdr(LT))==[]) break; + else str_tb(",",Out); + } + str_tb(")",Out); + } + else return my_tex_form(L); + S = str_tb(0,Out); + return (getopt(small)==1)?smallmattex(S):S; +} + + +def str_tb(L,TB) +{ + if(type(TB) == 0) TB = ""; + if(L == 0) + return (type(TB) == 7)?string_to_tb(TB):tb_to_string(TB); + if(type(L) == 7) + L = [L]; + else if(type(L) != 4){ + erno(0); + return 0; + } + if(type(TB) <= 7) + TB = string_to_tb((type(TB)==7)?TB:""); + for(; L != []; L = cdr(L)) + write_to_tb(car(L), TB); + return TB; +} + +/* +def redgrs(M,T) +{ + L = [zzz]; + for(I=S=0,Eq=[],MT=M; MT!=[]; I++, MT=cdr(MT)){ + for(J=LS=0, N=car(MT); N!=[]; N=cdr(N)){ + X = makev([z,I,z,J]); + L=cons(X,L); + LS += X; + S += car(N)[1]*X; + } + Eq = cons(LS-zzz,Eq); + } + Eq = cons(S-T,Eq); + Sol= lnsol(Eq,L); + for(LS=[],S=Sol; S!=[]; S=cdr(S)){ + T=car(S); + if(type(S)!=4) return 0; + LS=cons(car(S)[0],LS); + } +} +*/ + +/* T=0 : all reduction + =1 : construction procedure + =2 : connection coefficient + =3 : operator + =4 : series expansion + =5 : expression by TeX + =6 : Fuchs relation + =7 : All + =8 : basic + =9 : "" + =10: irreducible + =11: recurrence */ +def getbygrs(M, TT) +{ + /* extern TeXEq; */ + + if(type(M)==7) M=s2sp(M); + if(type(M) != 4 || TT =="help"){ + mycat( +["getbygrs(m,t) or getbygrs(m,[t,s_1,s_2,...]|perm=?,var=?,pt=?,mat=?)\n", +" m: generalized Riemann scheme or spectral type\n", +" t: reduction, construct, connection, series, operator, TeX, Fuchs, irreducible, basic, recurrence,\n", +" All\n", +" s: TeX dviout simplify short general operator irreducible top0 x1 x2 sft\n", +"Ex: getbygrs(\"111,21,111\", [\"All\",\"dviout\",\"operator\",\"top0\"])\n"]); + return 0; + } + if(type(TT) == 4){ + T = TT[0]; + T1 = cdr(TT); + }else{ + T = TT; + T1 = []; + } + if(type(T) == 7) + T = findin(T,["reduction","construct","connection", "operator", "series", + "TeX", "Fuchs", "All", "basic", "", "irreducible", "recurrence"]); + TeX = findin("TeX", T1); + Simp = findin("simplify", T1); + Short = findin("short", T1); + Dviout= findin("dviout", T1); + General=findin("general", T1); + Op =findin("operator", T1); + Irr =findin("irreducible", T1); + Top0 =findin("top0",T1); + X1 =findin("x1",T1); + X2 =findin("x2",T1); + Sft =findin("sft",T1); + Title = getopt(title); + Mat = getopt(mat); + if(Mat!=1 || T<0 ||(T!=0&&T!=1&&T!=5&&T!=6&&T!=8&&T!=10&&T!=9)) Mat = 0; + if(findin("keep",T1) >= 0) + Keep = Dviout = 1; + else Keep = 0; + if(Dviout >= 0 || T == 5) TeX = 1; + for(J = 0, MM = M; J == 0 && MM != []; MM = cdr(MM)){ + for(MI = car(MM); MI != []; MI = cdr(MI)){ + if(type(car(MI)) != 1 || car(MI) <= 0){ + J = 1; break; + } + } + } + + /* spectral type -> GRS */ + if(J == 0){ + for(R = [], S = J = 0, MM = M; MM != []; MM = cdr(MM), J++){ + MT = qsort(car(MM)); + R = cons(reverse(MT), R); + if(J == 1){ + S = length(MT)-1; + if(MT[S] > MT[0]) S = 0; + } + } + M = reverse(R); + R = getopt(var); + if(type(R)<1){ + for(R = [], I = J-1; I >= 0; I--) + R = cons(asciitostr([97+I]), R); + } + Sft=(Sft>=0)?1:0; + if(General < 0) + Sft=-Sft-1; + M = sp2grs(M,R,Sft|mat=Mat); + } + for(M0=[],MM=M;MM!=[];MM=cdr(MM)){ /* change "?" -> z_z */ + for(M1=[],Mm=car(MM);Mm!=[];Mm=cdr(Mm)){ + Mt=car(Mm); + if(type(Mt)==4 && Mt[1]=="?"){ + M1=cons([Mt[0],z_z],M1); + continue; + }else if(type(Mt)==7 && Mt=="?"){ + M1=cons(z_z,M1); + continue; + } + M1=cons(Mt,M1); + } + M0=cons(reverse(M1),M0); + } + M = fspt(reverse(M0),5); /* short -> long */ + if(findin(z_z,vars(M))>=0) + M=subst(M,z_z,lsol(chkspt(M|mat=Mat)[3],z_z)); /* Fuchs relation */ + NP = length(M); + Perm = getopt(perm); + if(type(Perm) == 4) + M = mperm(M,Perm,0); + if(T == 9){ /* "" */ + if(Short >= 0) + M = chkspt(M|opt=4,mat=Mat); + return M; + } + R = [0,M]; + ALL = [R]; + + while(type(R = redgrs(R[1]|mat=Mat)) == 4) + ALL = cons(R, ALL); + if(R < 0) + return 0; + + /* TeX */ + if(TeX >= 0 && !chkfun("print_tex_form", "names.rr")) + return 0; + if(Dviout >= 0 && type(Title) == 7) + dviout(Title|keep=1); + if(T == 7 && Dviout >= 0){ + S=["keep","simplify"]; + if(Top0 >= 0) + S = cons("top0",S); + getbygrs(M,cons(5,S)|title="\\noindent Riemann Scheme",mat=Mat); + Same = 0; + if(R > 0){ + MM = getbygrs(M,8|mat=Mat); /* basic GRS */ + MS = chkspt(MM|opt=0,mat=Mat); /* spectral type */ + if(M != MM) + getbygrs(MM,cons(5,S)|title="Basic Riemann Scheme",mat=Mat); + else{ + dviout("This is a basic Riemann Scheme.\n\n\\noindent"|keep=1); + Same = 1; + } + dviout(MS|keep=1); + } + if(chkspt(ALL[0][1]|mat=Mat)[3] != 0) + getbygrs(M,cons(6,S)|title="Fuchs condition",mat=Mat); + if(Same == 0){ + M1 = M[1]; + if(M1[length(M1)-1][0]==1 && Mat!=1){ + M1=M[2]; + if(M1[length(M1)-1][0] == 1){ + getbygrs(M,cons(2,S)|title="Connection formula"); + if(M1[length(M[0][0])-1][0] == 1 && R==0) + getbygrs(M,cons(11,S)|title="Recurrence relation shifting the last exponents at $\\infty$, 0, 1"); + } + getbygrs(M,cons(1,S)|title="Integral representation"); + getbygrs(M,cons(4,S)|title="Series expansion"); + } + if(Irr < 0){ + TI="Irreduciblity $\\Leftrightarrow$ any value of the following linear forms $\\notin\\mathbb Z$"; + if(R > 0) + TI += " + fundamental irreducibility"; + getbygrs(M,cons(10,S)|title=TI,mat=Mat); + dviout("which coorespond to the decompositions"|keep=1); + sproot(chkspt(M|opt=0),"pairs"|dviout=1,keep=1); + } + } + if(Op >= 0 && Mat!=1) getbygrs(M,cons(3,S)|title="Operator"); + dviout(" "); + return 1; + } + if(T == 0 && TeX >= 0){ + T = 1; TeX = 16; + } +/* Fuchs */ + Fuc = chkspt(ALL[0][1]|Mat=mat)[3]; + if(Fuc == 0) Simp = -1; + if(type(Fuc) == 1){ + print("Violate Fuchs condition"); + return 0; + } + if(T == 6){ + if(Dviout >= 0) dviout(Fuc|eq=0,keep=Keep); + return (TeX >= 0)?my_tex_form(Fuc):Fuc; + } + Fuc = [Fuc]; +/* Generelized Riemann scheme */ + if(T == 5){ + M = ltov(M); + for(ML=0, I=0; I<NP; I++){ + L = length(M[I]); + if(L > ML) ML = L; + } + Out = string_to_tb("P\\begin{Bmatrix}\nx="); + if(Top0 < 0) + write_to_tb("\\infty & ",Out); + Pt = getopt(pt); + if(type(Pt) == 4){ + for(J = 3; J < NP; J++){ + str_tb(["& ",rtotex(car(Pt))],Out); + Pt = cdr(Pt); + } + } + else if(X2>=0) + str_tb("0 & x_2",Out); + else + str_tb((X1>=0)?"x_1 & x_2":"0 & 1",Out); + for(J = 3; J < NP; J++) + str_tb(["& x_",rtotex(J)],Out); + if(Top0 >= 0) + write_to_tb("& \\infty",Out); + write_to_tb("\\\\\n",Out); + for(I = 0; I < ML; I++){ + for(CC = 0, J = (Top0 >= 0)?1:0; ; J++, CC++){ + if(J == NP){ + if(Top0 < 0) break; + J = 0; + } + if(length(M[J]) <= I){ + if(CC > 0) write_to_tb(" & ",Out); + }else if(M[J][I][0] <= 1){ + if(M[J][I][0] == 0) str_tb(" & ",Out); + else + str_tb([(!CC)?" ":" & ", my_tex_form(M[J][I][1])], Out); + }else{ + str_tb([((!CC)?"[":" & ["), my_tex_form(M[J][I][1]), + (Mat==1)?"]_{":"]_{("],Out); + str_tb([my_tex_form(M[J][I][0]),(Mat==1)?"}":")}"],Out); + } + if(Top0 >= 0 && J == 0) + break; + } + if(I == 0) + str_tb("&\\!\\!;x",Out); + str_tb("\\\\\n",Out); + } + str_tb("\\end{Bmatrix}",Out); + Out = str_tb(0,Out); + if(Dviout >= 0) + dviout(Out|eq=0,keep=Keep); + return Out; + } + +/* Reduction */ + if(T == 0){ + if(Simp >= 0) + ALL = simplify(ALL,Fuc,4); + return reverse(ALL); + } + LA = length(ALL) - 1; + NP = length(ALL[0][1]); + +/* irreducible */ + if(T == 10){ + for(IR=[], I = 0; I < LA; I++){ + AI = ALL[I]; AIT = AI[1]; + K = AI[0][0]; + P = -AIT[0][K][1]; + P -= cterm(P); + IR = cons(P, IR); + for(J = 0; J < NP; J++){ + K = AI[0][J]; + for(L = length(AIT[J]) - 1; L >= 0 ; L--){ + if(L == K || AIT[J][L][0] <= AIT[J][K][0]) + continue; + P = AIT[J][L][1] - AIT[J][K][1]; + Q = cterm(P); + if(dn(Q)==1) + P -= Q; + IR = cons(P,IR); + } + } + } + P=Fuc[0]; + Q=cterm(P); + if(type(Q)==1 && dn(Q)==1){ + for(F=0,V=vars(P);V!=[];V=cdr(V)){ + R=mycoef(P,1,car(V)); + if(type(R)!=1 || Q%R!=0){ + F=1; break; + } + } + if(F==0){ + P-=Q; + Simp=0; + } + } + if(Simp >= 0){ + IR=simplify(IR,[P],4); + for(R=[]; IR!=[]; IR=cdr(IR)){ + P=car(IR); + Q=cterm(P); + if(dn(Q)==1) P-=Q; + R=cons(P,R); + } + IR=R; + } + for(R=[]; IR!=[]; IR=cdr(IR)){ + P=car(IR); + if(str_len(rtostr(P)) > str_len(rtostr(-P))) + P = -P; + R = cons(P,R); + } + R = ltov(R); +#ifdef USEMODULE + R = qsort(R,os_md.cmpsimple); +#else + R = qsort(R,cmpsimple); +#endif + R = vtol(R); + if(TeX >= 0){ + Out = string_to_tb(""); + for(I=L=K=0; R!=[]; R=cdr(R),I++){ + K1 = K; + RS = my_tex_form(car(R)); + K = nmono(car(R)); + L += K; + if(I){ + if(K1 == K && L < 30) + str_tb("\\quad ",Out); + else{ + L = K; + str_tb((TeXEq==5)?["\\\\%\n &"]:["\\\\%\n "],Out); + } + } + str_tb(RS,Out); + } + R = Out; + if(Dviout>=0){ + dviout(R|eq=0,keep=Keep); + return 1; + } + } + return R; + } + + AL = []; SS = 0; + for(I = 0; I <= LA; I++){ + AI = ALL[I]; AIT = AI[1]; /* AIT: GRS */ + if(I > 0){ + for(S = J = 0; J < NP; J++){ + GE = AIT[J][AI0[J]][1]; + S += GE; + if(J == 0) + SS = []; + else + SS = cons(GE,SS); + } + SS = cons(1-Mat-S, reverse(SS)); + } + AI0 = AI[0]; + AL = cons([SS, cutgrs(AIT)], AL); + } + AL = reverse(AL); + AD = newvect(NP); + ALT = AL[0][1]; + for(J = 1; J < NP; J++){ + /* AD[J] = ALT[J][0][1]; [J][?][1] <- [J][?][0]: max */ + for(MMX=0, K = KM = length(ALT[J])-1; K >= 0; K--){ + if(MMX <= ALT[J][K][0]){ + if(J == 1 && MMX == ALT[J][K][0]) + continue; + KM = K; + MMX = ALT[J][K][0]; + } + } + AD[J] = ALT[J][KM][1]; + } + AL = cdr(AL); + AL = cons([vtol(AD), ALT], AL); + AL = cons([0, mcgrs(ALT, [vtol(-AD)]|mat=Mat)], AL); + if(Simp >= 0 && T != 3) + AL = simplify(AL,Fuc,4); +/* Basic */ + if(T == 8){ + ALT = AL[0][1]; + if(TeX >= 0){ + if(Dviout >= 0){ + return getbygrs(ALT,["TeX","dviout","keep"]); + } + return getbygrs(ALT,"TeX"); + } + if(Short >= 0) + ALT = chkspt(ALT|opt=4); + return ALT; + } + +/* Construct */ + if(T == 1){ + if(TeX >= 0){ + L = length(AL); + I = Done = 0; Out0=Out1=""; NM = DN = []; + if(TeX != 16){ + AL11=AL[L-1][1][1]; + AT = AL11[length(AL11)-1]; + if(type(AT) == 4){ + PW = (AT[0] > 1)?"":AT[1]; + }else PW = AT; + } + Out = string_to_tb(""); + while(--L >= 0){ + if(TeX == 16){ + if(Done) + write_to_tb(":\\ ", Out); + write_to_tb(getbygrs(AL[L][1],(Top0>=0)?["TeX", "top0"]:"TeX"|mat=Mat), Out); + Done = 1; + if(L != 0) write_to_tb((TeXEq==5)? + "\\\\%\n&\\leftarrow ":"\\\\%\n\\leftarrow ", Out); + } + ALT = AL[L][0]; + if(TeX != 16){ + V1 = (I==0)?"x":V2; + V2 = /* (I==0 && L<=2)?"s": */ + "s_"+rtotex(I); + }else V1=V2="x"; + JJ = (type(ALT) == 4)?length(ALT):0; + if(I > 0 && L > 0) + write_to_tb("\n ", Out); + for(Outt = "", J = 1; J < JJ; J++){ + if(ALT[J] == 0) continue; + if(J == 1) Outt += V1; + else if(J == 2) Outt += "(1-"+V1+")"; + else Outt += "(x_"+rtotex(J)+"-"+V1+")"; + Outt += "^"+ rtotex(ALT[J]); + } + if(TeX != 16) write_to_tb(Outt, Out); + else if(Outt != "") + str_tb(["\\mathrm{Ad}\\Bigl(",Outt,"\\Bigr)"], Out); + if(JJ == 0){ + if(I != 0) + Out1 = "ds_"+rtotex(I-1)+Out1; + continue; + } + if(ALT[0] == 0) continue; + Out0 += "\\int_p^{"+V1+"}"; + if(TeX == 16) + str_tb(["mc_",rtotex(ALT[0])], Out); + else{ + str_tb(["(",V1,"-",V2,")^",rtotex(-1+ALT[0])], Out); + AL11=AL[L-1][1][1]; + AT = AL11[length(AL11)-1]; + if(type(AT) == 4) AT = AT[1]; + DN = cons(ALT[0]+AT+1,DN); + NM = cons(AT+1,cons(ALT[0],NM)); + } + if(L != 2) Out1 += "d"+V2; + I++; + } + if(R){ + if(I == 0) Ov = "x"; + else Ov = "s_"+rtotex(I-1); + Out1 = "u_B("+Ov+")"+Out1; + } + if(TeX != 16){ + Out0 = string_to_tb(Out0); + str_tb([Out, Out1], Out0); + Out = Out0; + NM = simplify(NM, Fuc, 4); + DN = simplify(DN, Fuc, 4); + DNT = lsort(NM,DN,"reduce"); + NMT = DNT[0]; DNT = DNT[1]; + if(NMT != [] && PW != ""){ + write_to_tb((TeXEq==5)?"\\\\\n &\\sim\\frac{\n" + :"\\\\\n \\sim\\frac{\n", Out); + for(PT = NMT; PT != []; PT = cdr(PT)) + str_tb([" \\Gamma(",my_tex_form(car(PT)), ")\n"], Out); + write_to_tb(" }{\n", Out); + for(PT = DNT; PT != []; PT = cdr(PT)) + write_to_tb(" \\Gamma("+my_tex_form(car(PT))+")\n", Out); + write_to_tb(" }", Out); + if(R > 0) write_to_tb("C_0", Out); + write_to_tb("x^"+rtotex(PW) +"\\ \\ (p=0,\\ x\\to0)", Out); + } + }else + Out = str_tb(0, Out); + if(Dviout >= 0){ + dviout(Out|eq=0,keep=Keep); + return 1; + } + return O; + } + if(Short >= 0){ + for(ALL = [] ; AL != []; AL = cdr(AL)){ + AT = car(AL); + ALL = cons([AT[0], chkspt(AT[1]|opt=4)], ALL); + } + AL = reverse(ALL); + } + return AL; /* AL[0][1] : reduced GRS, R==0 -> rigid */ + } + + if(T == 2 || T == 4 || T == 11){ + for(I = (T==2)?2:1; I >= (T==11)?0:1; I--){ + ALT = M[I]; + if(ALT[length(ALT)-1][0] != 1){ + mycat(["multiplicity for",I,":",ALT[length(ALT)-1][1], + "should be 1"]); + return; + } + } + } + LA++; + NM = DN = []; + +/* Three term relation */ + if(T == 11){ + if(R > 0){ + print("This is not rigid\n"); + return 0; + } + for(I = 0; I <= LA; I++){ + if(I > 0){ + AI = AL[I][0]; /* operation */ + if(AI[0] != 0){ + DN = cons(simplify(AI1+1,Fuc,4),DN); + NM = cons(simplify(AI1+AI[0]+1,Fuc,4),NM); + } + } + ALT = AL[I][1][1]; AI1 = ALT[length(ALT)-1][1]; + } + DNT = lsort(NM,DN,"reduce"); + if(TeX < 0) return DNT; + NMT = DNT[0]; DNT = DNT[1]; + Out = str_tb("u_{0,0,0}-u_{+1,0,-1}=\\frac{",""); + for(PT = NMT; PT != []; PT = cdr(PT)) + str_tb(["(",my_tex_form(car(PT)),")"], Out); + str_tb(["}\n{"],Out); + for(PT = DNT; PT != []; PT = cdr(PT)) + str_tb(["(",my_tex_form(car(PT)),")"], Out); + write_to_tb("}u_{0,+1,-1}",Out); + if(Dviout >= 0){ + dviout(Out|eq=0,keep=Keep); + return 1; + } + return Out; + } + + AD=newvect(NP); + for(I = 0; I <= LA; I++){ + if(I > 0){ + AI = AL[I][0]; /* operation */ + if(T == 2 && AI[0] != 0){ + DN = cons(simplify(-AI2,Fuc,4), cons(simplify(AI1+1,Fuc,4),DN)); + NM = cons(simplify(-AI2-AI[0],Fuc,4), cons(simplify(AI1+AI[0]+1,Fuc,4), + NM)); + } + for(J = 1; J < NP; J++) + AD[J] += simplify(AI[J],Fuc,4); + } + if(T == 2){ + ALT = AL[I][1][1]; AI1 = ALT[length(ALT)-1][1]; + ALT = AL[I][1][2]; AI2 = ALT[length(ALT)-1][1]; + if(I == 0){ + C3 = AI1; C4 = AI2; + } + } + } + +/* Connection */ + if(T == 2){ + DNT = lsort(NM,DN,"reduce"); + NMT = DNT[0]; DNT = DNT[1]; + if(TeX < 0) return [NMT,DNT,AD]; + C0 = M[1][length(M[1])-1][1]; + C1 = M[2][length(M[2])-1][1]; + M = AL[0][1]; + C3 = M[1][length(M[1])-1][1]; + C4 = M[2][length(M[2])-1][1]; + Out = str_tb(["c(0\\!:\\!", my_tex_form(C0), + " \\rightsquigarrow 1\\!:\\!", my_tex_form(C1),")"], ""); + if(R > 0 && AMSTeX == 1 && (TeXEq == 4 || TeXEq == 5)){ + write_to_tb("\\\\\n", Out); + if(TeXEq == 5) write_to_tb(" &", Out); + } + write_to_tb("=\\frac{\n",Out); + for(PT = NMT; PT != []; PT = cdr(PT)) + write_to_tb(" \\Gamma("+my_tex_form(car(PT))+")\n", Out); + write_to_tb(" }{\n",Out); + for(PT = DNT; PT != []; PT = cdr(PT)) + write_to_tb(" \\Gamma("+my_tex_form(car(PT))+")\n",Out); + write_to_tb(" }", Out); + for(J = 3; J < length(AD); J++){ + if(AD[J] == 0) continue; + str_tb(["\n (1-x_", rtotex(J), "^{-1})^", rtotex(AD[J])], Out); + } + if(R != 0) + str_tb(["\n c_B(0\\!:\\!", my_tex_form(C3), + " \\rightsquigarrow 1\\!:\\!", my_tex_form(C4), ")"], Out); + Out = tb_to_string(Out); + if(Dviout >= 0){ + dviout(Out|eq=0,keep=Keep); + return 1; + } + return Out; + } + +/* Series */ + if(T == 4){ + AL11 = AL[0][1][1]; + V = AL11[length(AL11)-1][1]; + S00 = -V; S01 = (R==0)?[]:[[0,0]]; + S1 = S2 = []; + for(Ix = 1, ALL = cdr(AL); ALL != []; ){ + ALT = ALL[0][0]; + if(ALT[0] != 0){ /* mc */ + for(Sum = [], ST = S01; ST != []; ST = cdr(ST)) + Sum = cons(car(ST)[0], Sum); + S1 = cons(cons(S00+1,Sum), S1); + S2 = cons(cons(S00+1+ALT[0],Sum),S2); + S00 += ALT[0]; + } + ALL = cdr(ALL); + for(I = 1; I < length(ALT); I++){ /* addition */ + if(I == 1){ + S00 += ALT[1]; + if(ALL == []) + S00 = [S00]; + }else{ + if(ALT[I] == 0) + continue; + if(ALL != []){ + S1 = cons([-ALT[I],Ix],S1); + S2 = cons([1,Ix],S2); + S01= cons([Ix,I],S01); + Ix++; + }else + S00 = cons([ALT[I],I],S00); + } + } + } + S00 = reverse(S00); + S01 = qsort(S01); S1 = qsort(S1); S2 = qsort(S2); + if(Simp >= 0){ + S00 = simplify(S00,Fuc,4); + S01 = simplify(S01,Fuc,4); + S1 = simplify(S1,Fuc,4); + S2 = simplify(S2,Fuc,4); + SS = lsort(S1,S2,"reduce"); + S1 = SS[0]; S2 = SS[1]; + } + + if(TeX >= 0){ + /* Top linear power */ + TOP = Ps = Sm = ""; + for(TOP = Ps = Sm = "", ST = cdr(S00); ST != []; ST = cdr(ST)){ + SP = car(ST); + if(SP[0] != 0){ + if(SP[1] == 2) + TOP += "(1-x)^"+rtotex(SP[0]); + else + TOP += "(1-x/x_"+rtotex(SP[1])+")^"+rtotex(SP[0]); + } + } + /* Top power */ + PW = my_tex_form(car(S00)); + if(PW == "0") + PW = ""; + NP = length(AL[0][1]); + PWS = newvect(NP); + for(I = 0; I < NP; I++) + PWS[I] = ""; + for(S = S01, I = 0; S != []; S = cdr(S), I++){ + SI = rtotex(car(S)[0]); + if(I > 0) Sm += ",\\ "; + Sm += "n_"+SI+"\\ge0"; + if(PW != "") + PW += "+"; + PW += "n_"+SI; + if(car(S)[1] > 2) + PWS[car(S)[1]] += "-n_"+rtotex(car(S)[0]); + else if(car(S)[1] == 0) + Ps = "C_{n_0}"+Ps; + } + for(I = 3; I < NP; I++){ + if(PWS[I] != "") + Ps += "x_"+rtotex(I)+"^{"+PWS[I]+"}"; + } + Out = str_tb([TOP, Ps, "x^{", PW, "}"], ""); + /* Gamma factor */ + for(I = 0, SS = S1; I <= 1; I++, SS = S2){ + PW = string_to_tb(""); + for(PW1=""; SS != [] ; SS = cdr(SS)){ + for(J = 0, SST = car(SS); SST != []; SST = cdr(SST), J++){ + if(J == 0){ + JJ = (car(SST) == 1)?((length(SST)==2)?(-1):0):1; + if(JJ > 0) + str_tb(["(", my_tex_form(car(SST)), ")_{"], PW); + else if(JJ == 0) + PW1 = "("; + }else{ + if(JJ > 0){ + if(J > 1) write_to_tb("+", PW); + str_tb(["n_", rtotex(car(SST))], PW); + }else{ + if(J > 1) PW1 += "+"; + PW1 += "n_"+rtotex(car(SST)); + } + } + } + if(JJ > 0) write_to_tb("}", PW); + else PW1 += (JJ == 0)?")!":"!"; + } + if(I == 0) + Out0 = "\\frac"; + Out0 += "{"+tb_to_string(PW)+PW1+"}"; + PW = string_to_tb(""); PW1 = ""; + } + if(Out0 == "\\frac{}{}") + Out0 = ""; + Out = "\\sum_{"+Sm+"}"+Out0 + Top + tb_to_string(Out); + if(length(S01) == 1){ + Out = str_subst(Out, "{n_"+SI+"}", "n"); + Out = str_subst(Out, "n_"+SI, "n"); + } + if(Dviout >= 0) + dviout(Out|eq=0,keep=Keep); + return Out; + } + return [cons(S00, S01), S1, S2]; + } + +/* Operator */ + if(T==3){ + Fuc0 = car(Fuc); + if(Fuc0 != 0){ /* Kill Fuchs relation */ + for(V = vars(Fuc0); V != []; V = cdr(V)){ + VT = car(V); + if(deg(Fuc0,VT) == 1){ + AL = mysubst(AL, [VT, -red(coef(Fuc0,0,VT)/coef(Fuc0,1,VT))]); + break; + } + } + if(V == []){ + print("Fuchs condition has no variable with degree 1"); + return 0; + } + } + L = newvect(NP); + Pt = getopt(pt); + for(I = NP-1; I >= 1; I--){ + if(type(Pt) == 4) + L[I] = Pt[I-1]; + else if(I >= 3 || X1 >= 0 || (X2 >= 0 && I >= 2)) + L[I] = makev(["x_", I]); + else L[I] = I-1; + } + if(R){ /* non-rigid basic */ + MM = AL[0][1]; /* Riemann scheme */ + for(OD = 0, MT = car(MM); MT != []; MT = cdr(MT)) + OD += car(MT)[0]; + for(V = DN = [], M = MM; M != []; M = cdr(M)){ + MT = car(M); /* exponents */ + for(K = KM = 0, NT = []; ; K++){ + for(J = 0, P = 1, MTT = MT; MTT != []; MTT = cdr(MTT)){ + if(J == 0 && car(MTT)[1] == 0) + KM = car(MTT)[0]; + for(KK = car(MTT)[0] - K -1; KK >= 0; KK--) + P *= (dx-car(MTT)[1]-KK); + } + if(P == 1) break; + NT = cons(P,NT); + } + V = cons(reverse(NT), V); + DN = cons(KM, DN); + } + V = ltov(reverse(V)); /* conditions for GRS */ + DN = ltov(reverse(DN)); /* dims of local hol. sol. */ + for(J = OD; J >= 0; J--){ + for(I = Q = 1; I < NP; I++){ + if(J > DN[I]) + Q *= (x-L[I])^(J-DN[I]); + } + K = mydeg(Q,x); + if(J == OD){ + P = Q*dx^J; + DM = K; + }else{ + for(I = DM-OD+J-K; I >= 0; I--){ + X = makev(["r",J,"_",I]); + P += Q*x^I*X*dx^J; + } + } + } + for(R = [], I = 0; I < NP; I++){ + Q = toeul(P, [x,dx], (I==0)?"infty":L[I]); /* Euler at I-th pt */ + for(VT = V[I], J=0; VT != [] ; VT = cdr(VT), J++){ + if(car(VT) != 0) + R = cons(rpdiv(coef(Q,J,x), car(VT), dx)[0], R); /* equations */ + } + } + for(RR = RRR = [], I = OD-1; I>=0; I--){ + RR = []; + for(RT = R; RT != [] ; RT = cdr(RT)){ + if( (VT = mycoef(car(RT), I, dx)) != 0) + RR = cons(VT, RR); /* real linear eqs */ + } + J = mydeg(mycoef(P,I,dx),x); + for(S = 0, VVV = []; J >= 0; J--){ + X = makev(["r",I,"_",J]); + VVV = cons(X, VVV); /* unknowns */ + } + RR = lsol(RR,VVV); + LN = length(RR); + for(K=0; K<LN; K++){ + RRT = RR[K]; + if(type(RRT) != 4) continue; + R = mysubst(R,RRT); + P = mysubst(P,RRT); + } + } + }else /* Rigid case */ + P = dx^(AL[0][1][0][0][0]); + /* additions and middle convolutions */ + for(ALT = AL; ALT != []; ALT = cdr(ALT)){ + AI = car(ALT)[0]; + if(type(AI) != 4) continue; + V = ltov(AI); + if(V[0] != 0) P = mc(P,x,V[0]); + for(I = 1; I < NP; I++){ + if(V[I] != 0) + P = sftexp(P,x,L[I],-V[I]); + } + } + P = (Simp>=0)? simplify(P,Fuc,4|var=[dx]):simplify(P,Fuc,4); + if(TeX >= 0){ + Val = 1; + if(mydeg(P,dx) > 2 && AMSTeX == 1 && TeXEq > 3) + Val = (TeXEq==5)?3:2; + Out = fctrtos(P|var=[dx,"\\partial"],TeX=Val); + if(Dviout < 0) return Out; + dviout(Out|eq=0,keep=Keep); + return 1; + } + return P; + } + return 0; +} + +def mcop(P,M,S) +{ + for(V=[],ST=S;ST!=[];ST=cdr(ST)) + if(isvar(VT=car(ST))) V=cons(vweyl(VT),V); + V=reverse(V); + N=length(V); + for(MT=M;MT!=[];MT=cdr(MT)){ + T=car(MT); + if(T[0]!=0) + P=mc(P,V[0],T[0]); + for(TT=cdr(T),ST=cdr(S);ST!=[];TT=cdr(TT),ST=cdr(ST)) + if(car(TT)!=0) P=sftpexp(P,V,S[0]-ST[0],-car(TT)); + } + return P; +} + +/* option: zero, all, raw */ +def shiftop(M,S) +{ + if(type(M)==7) M=s2sp(M); + if(type(S)==7) S=s2sp(S); + Zero=getopt(zero); + NP=length(M); + for(V=L=[],I=NP-1; I>=0; I--){ + V=cons(strtov(asciitostr([97+I])),V); + if(I>2) L=cons(makev(["y_", I-1]),L); + else L=cons(I-1,L); + } + if(type(M[0][0])==4){ + F=1;RS=M;SS=S; + R=chkspt(M); + if(R[2]!=2 || R[3]!=0){ + mycat("GRS is not valid!");return 0; + } + for(; S!=[]; S=cdr(S)){ + if(nmono(S[0][0])!=1) break; + if(isint(S[0][1]-S[0][0])==0) break; + } + if(S!=[]){ + mycat("Error in shift!"); return 0; + } + }else{ + F=0; + RS=sp2grs(M,V,[1,length(M[0]),1]); + for(SS=S0=[],I=0; I<NP; I++){ + for(J=F=0; J<length(M[I]); J++){ + if(I==0 && J==length(M[0])-1) break; + if((U=S[I][J])!=0){ + if(isint(U)!=1){ + mycat("Error in shift!"); return 0; + } + VT=RS[I][J][1]; + SS=cons([VT,VT+U],SS); + }else if(I>0 && Zero==1 && F==0){ + RS=mysubst(RS,[RS[I][J][1],0]); + F=J+1; + } + } + if((F>0 && J==2) || (I==0 && J==1)){ + J=(I==0)?0:2-F; VT=RS[I][J][1]; + S0=cons([VT,strtov(asciitostr([strtoascii(rtostr(VT))[0]]))],S0); + } + } + } + RS1=mysubst(RS,SS); + if(F==1){ + R=chkspt(RS1); + if(R[2]!=2 || R[3]!=0){ + mycat("Error in shift!"); + return 0; + } + } + R=getbygrs(RS,1); R1=getbygrs(RS1,1); + RT=R[0][1][0]; + if(length(RT)!=1 || RT[0][0]!=1){ + mycat("Not rigid!"); + return 0; + } + P=dx;Q=Q1=1; + for(RT = R, RT1=R1; RT != []; RT = cdr(RT), RT1=cdr(RT1)){ + V=car(RT)[0]; V1=car(RT1)[0]; + if(type(V) != 4) continue; + + if(V[0] != 0){ + P = mc(P,x,V[0]); /* middle convolution */ + QT = mc(Q,x,V[0]); + }else QT=Q; + D0=mydeg(Q,dx);D0T=mydeg(QT,dx); + C0=red(mycoef(Q,D0,dx)/mycoef(QT,D0T,dx)); + if(C0!=1) QT=red(C0*QT); + + if(V1[0] != 0) Q1T = mc(Q1,x,V1[0]); + else Q1T=Q1; + D1=mydeg(Q1,dx);D1T=mydeg(Q1T,dx); + C1=red(mycoef(Q1,D1,dx)/mycoef(Q1T,D1T,dx)); + if(C1!=1) Q1T=red(C1*Q1T); + DD=(V[0]-V1[0])+(D0-D0T)-(D1-D1T); + if(DD>0){ + QT=muldo(dx^DD,QT,[x,dx]); + D0T+=DD; + }else if(DD<0){ + Q1T=muldo(dx^(-DD),Q1T,[x,dx]); + D1T-=DD; + } + C=mylcm(dn(QT),dn(Q1T),x); + if(C!=1){ + QT=red(C*QT); Q1T=red(C*Q1T); + } + Q=QT;Q1=Q1T; + for(I = 1; I < NP; I++){ + if(V[I]!=0){ + P = sftexp(P,x,L[I],-V[I]); /* addition u -> (x-L[I])^V[I]u */ + QT = sftexp(QT,x,L[I],-V[I]); + } + if(V1[I]!=0) + Q1T = sftexp(Q1T,x,L[I],-V1[I]); + } + C=red(mycoef(QT,D0T,dx)*mycoef(Q1,D1T,dx)/(mycoef(Q,D0T,dx)*mycoef(Q1T,D1T,dx))); + Q=red(dn(C)*QT);Q1=red(nm(C)*Q1T); + for(I = 1; I < NP; I++){ + if((J=V[I]-V1[I])!=0){ + if(J>0) Q1*=(x-L[I])^J; + else Q*=(x-L[I])^(-J); + } + while((QT=tdiv(Q,x-L[I]))!=0){ + if((Q1T=tdiv(Q1,x-L[I]))!=0){ + Q=QT;Q1=Q1T; + }else break; + } + } + } + P1=mysubst(P,SS); + if(type(S0)==4 && S0!=[]){ + P=mysubst(P,S0); Q=mysubst(Q,S0); + P1=mysubst(P1,S0); Q1=mysubst(Q1,S0); + RS=mysubst(RS,S0); RS1=mysubst(RS1,S0); + } + R=mygcd(Q1,P1,[x,dx]); + if(findin(dx,vars(R[0]))>=0){ + mycat("Some error!"); + return 0; + } + Q=muldo(R[1]/R[0],Q,[x,dx]); + R=divdo(Q,P,[x,dx]); + Q=red(R[1]/R[2]); + R=fctr(nm(Q)); + QQ=Q/R[0][0]; + R1=fctr(dn(QQ)); + for(RR=cdr(R1); RR!=[]; RR=cdr(RR)){ + VT=vars(car(RR)[0]); + if(findin(x,VT)<0 && findin(dx,VT)<0){ + for(I=car(RR)[1];I>0;I--) QQ=red(QQ*car(RR)[0]); + } + } + Raw=getopt(raw); + Dviout=getopt(dviout); + if(Dviout==1) Raw=4; + if(Raw!=1){ + for(RR=cdr(R); RR!=[]; RR=cdr(RR)){ + VT=vars(car(RR)[0]); + if(findin(x,VT)<0 && findin(dx,VT)<0){ + for(I=car(RR)[1];I>0;I--) QQ=red(QQ/car(RR)[0]); + } + } + } + if(Raw==2||Raw==3||Raw==4){ + R=mygcd(QQ,P,[x,dx]); /* R[0]=R[1]*QQ + R[2]*P */ + Q1=red(R[0]/R[2]); + for(Q=1,RR=cdr(fctr(nm(Q1))); RR!=[]; RR=cdr(RR)){ + VT=vars(car(RR)[0]); + if(findin(x,VT)<0){ + for(I=car(RR)[1];I>0;I--) Q*=car(RR)[0]; + } + } + if(Raw==3) QQ=[QQ,Q]; + else if(Raw==4) /* Q=Q*R[1]/R[0]*QQ+Q/R[0]*P */ + QQ=[QQ,Q,red(R[1]*Q/R[0])]; + else QQ=Q; + } + F=getopt(all); + if(Dviout==1){ + Pre = " x=\\infty & 0 & 1"; + for(I=3; I<NP; I++) Pre = Pre+"& "+rtostr(L[I]); + Pre = Pre+"\\\\\n"; + PW=str_tb(ltotex(RS|opt="GRS",pre=Pre),0); + str_tb( +"=\\{u\\mid Pu=0\\}\\\\\n&\\underset{Q_2}{\\overset{Q_1}{\\rightleftarrows}}\n",PW); + str_tb([ltotex(RS1|opt="GRS",pre=Pre),"\\\\\n"],PW); + R=fctrtos(QQ[0]|TeX=3,var=[dx,"\\partial"]); + if(type(R)==4) R="\\frac1{"+R[1]+"}"+R[0]; + str_tb(["Q_1&=",R,"\\\\\n"],PW); + R=fctrtos(QQ[2]|TeX=3,var=[dx,"\\partial"]); + if(type(R)==4) R="\\frac1{"+R[1]+"}"+R[0]; + str_tb(["Q_2&=",R,"\\\\\n"],PW); + str_tb(["Q_2Q_1&\\equiv ",fctrtos(QQ[1]|TeX=3),"\\mod W(x)P"],PW); + if(F==1) + str_tb(["\\\\\nP&=",fctrtos(P|TeX=3,var=[dx,"\\partial"])],PW); + dviout(str_tb(0,PW)|eq=0,title="Shift Operator"); + } + if(F==1) return [QQ,P,RS,P1,RS1]; + else if(F==0) return QQ; + return [QQ,P,RS]; +} + +def conf1sp(M) +{ + if(type(M)==7) M=s2sp(M); + L0 = length(M); + L1 = length(M[L0-1]); + X2 = getopt(x2); + Conf= getopt(conf); + if(Conf != 0) + Conf = -1; + if((X2==1 || X2==-1) && Conf != 0){ + X1 = 0; + X = x_1; + }else{ + X1 = 1; + X = x_2; + } + G = sp2grs(M,a,[L0,L1]); + for(I = 0; I < L0-1; I++){ + V = makev([a,I-Conf,0]); + G = subst(G,V,0); + } + L2 = length(M[1]); + for(I=J=S0=S1=0; I < L2; I++){ + S1 += G[1][I][0]; + while(S0 < S1){ + S0 += G[0][J][0]; + if((V=G[0][J][1]) != 0) + G = mysubst(G,[V,V-G[1][I][1]]); + J++; + } + if(S0 > S1){ + print("Error in data!"); + return 0; + } + } + if(Conf==0){ + for(L=[], I=L0-2; I>=0; I--) + L=cons(I,L); + L=cons(L0-1,L); + P = getbygrs(G,["operator","x2"]|perm=L); + }else if(X1) + P = getbygrs(mperm(G,[[1,2]],[]), ["operator","x2"]); + else + P = getbygrs(G,["operator","x1"]); + if(Conf==0) + P=nm(mysubst(P,[X,c])); + else{ + P = nm(mysubst(P,[X,1/c])); + if(X2==-1){ + for(I=2; I<L0; I++){ + V=makev(["x_",I]); VC=makev([c,I]); + P = nm(mysubst(P,[V,1/VC])); + } + } + } + for(I = 1; I < L2; I++){ + X = G[1][I][1]; + P = nm(mysubst(P,[X,X/c])); + } + VS = vars(P); + while(VS!=[]){ + V = car(VS); + if(str_chr(rtostr(V),0,"r")==0){ + CV = mycoef(P,1,V); + D = mymindeg(CV,c); + if(D > 0) P = mysubst(P,[V,V/c^D]); + CV = mycoef(P,1,V); + DD = mydeg(CV,dx); + CVV = mycoef(CV,DD,dx); + CD1 = mydeg(CVV,x); + CD = (X==x1)?0:CD1; + while(CD>=0 && CD<=CD1){ + CC = mycoef(CVV,CD,x); + if(type(CC)==1){ + VT = mycoef(mycoef(mycoef(P,DD,dx),CD,x),0,V)/CC; + if(VT != 0) P = mysubst(P,[V,V-VT]); + break; + } + if(X==x1) CD++; + else CD--; + } + while(subst(P,c,0,V,0) == 0) + P = red(mysubst(P,[V,c*V])/c); + } + VS =cdr(VS); + } + return P; +} + +def pgen(L,VV) +{ + if(type(L[0])<4) L=[L]; + if(type(L)==4) L=ltov(L); + K=length(L); + V=newvect(K); + if(type(Sum=getopt(sum))!=1) Sum=0; + if((Num=getopt(num))!=1) Num=0; + if((Sep=getopt(sep))!=1) Sep=0; + if(type(Shift=getopt(shift))!=1) Shift=0; + for(;;){ + for(PP=1,R=[],II=K-1; II>=0; II--){ + R=cons(V[II]+Shift,R); + if(II>0 && Sep==1) R=cons("_",R); + PP*=L[II][0]^V[II]; + } + P+=makev(cons(VV,R)|num=Num)*PP; + for(I=0;I<K;){ + if(++V[I]<=L[I][1]){ + if(Sum>0){ + for(S=II=0;II<K;) S+=V[II++]; + if(S>Sum){ + V[I++]=0; + continue; + } + } + }else{ + V[I++]=0; + continue; + } + break; + } + if(I>=K) return P; + } +} + +def diagm(M,A) +{ + return mgen(M,0,A,1); +} + +def mgen(M,N,A,S) +{ + if(M==0 && N==0){ + mycat([ +"mgen(m,n,a,s|sep=1) : generate a matrix of size m x n\n", +" n : a number or \"diagonal\", \"highdiag\", \"lowdiag\",\"skew\",\"symmetric\",\"perm\" = 0,-1,-2,..\n", +" a : a symbol or list (ex. a, [a], [a,b,c], [1,2,3])\n", +" s : 0 or 1 (shift of suffix)\n" + ]); + return 0; + } + if(type(N)==7) N=-findin(N,["diag","highdiag","lowdiag","skew","symmetric","perm"]); + Sep=(getopt(sep)==1)?1:0; + if(S < 0 || S > 2) + S = 0; + if(M+S > 30 || N+S > 30){ + erno(1); + return; + } + if(N==-5){ + NM=newmat(M,M); + for(I=0;I<M;I++,A=cdr(A)) NM[I][car(A)-S]=1; + return NM; + } + if(type(A) == 4) + L = length(A)-1; + else + L = -1; + if(N <= 0 && N >= -2){ + MM = newmat(M,M); + J = K = 0; + if(N == -1){ + K = 1; M--; + }else if(N == -2){ + J = 1; M--; + } + for(I = 0; I < M; I++){ + if(L >= 0) + MM[I+J][I+K] = A[(I > L)?L:I]; + else if(type(A)==7 || isvar(A)) + MM[I+J][I+K] = makev([A,S+I]|sep=Sep); + else + MM[I+J][I+K] = A; + } + return MM; + } + K = N; + if(K < 0) N = M; + MM = newmat(M,N); + for(I = 0; I < M; I++){ + if(L >= 0) + AA = rtostr(A[(I > L)?L:I]); + else + AA = rtostr(A)+rtostr(I+S); + if(AA>="0" && AA<=":"){ + erno(0); return; + } + for(J = 0; J < N; J++){ + if(K < 0){ + if(I > J) continue; + if(K == -3 && I == J) continue; + } + MM[I][J] = makev([AA,J+S]|sep=Sep); + } + } + if(K < 0){ + for(I = 0; I < M; I++){ + for(J = 0; J < I; J++) + MM[I][J] = (K == -4)?MM[J][I]:-MM[J][I]; + } + } + return MM; +} + +def newbmat(M,N,R) +{ + S = newvect(M); + T = newvect(N); + IM = length(R); + for(I = 0; I < IM; I++){ + RI = R[I]; + JM = length(RI); + for(J = 0; J < JM; J++){ + RIJ = RI[J]; + if(type(RIJ) == 6){ + S[I] = size(RIJ)[0]; + T[J] = size(RIJ)[1]; + } + } + } + for(I = K = 0; I < M; I++){ + if(S[I] == 0) + S[I] = 1; + K += S[I]; + } + for(J = L = 0; J < N; J++){ + if(T[J] == 0) + T[J] = 1; + L += T[J]; + } + M = newmat(K,L); + if(type(Null=getopt(null))>0){ + for(I=0;I<K;I++){ + for(J=0;J<L;J++) M[I][J]=Null; + } + } + for(I0 = II = 0; II < IM; I0 += S[II++]){ + RI = R[II]; + JM = length(RI); + for(J0 = JJ = 0; JJ < JM; J0 += T[JJ++]){ + if((RIJ = RI[JJ]) == 0) + continue; + Type = type(RIJ); + for(I = 0; I < S[II]; I++){ + for(J = 0; J < T[JJ]; J++){ + if(Type == 6) + M[I0+I][J0+J] = RIJ[I][J]; + else if(Type == 4 || Type == 5) + M[I0+I][J0+J] = (I>0)?RIJ[I]:RIJ[J]; + else + M[I0+I][J0+J] = RIJ; + } + } + } + } + return M; +} + +def unim(S) +{ + if(!Rand++) random(currenttime()); + if(!isint(Wt=getopt(wt))||Wt<0||Wt>10) Wt=2; + if(!isint(Xa=getopt(abs)) || Xa<1) + Xa=9; + if((Xaa=Xa)>10) Xaa=10; + if(Xaa%2) Xaa++; + Xh=Xaa/2; + if(type(S0=SS=S)==4){ + Int=(getopt(int)==1)?1:0; + U=[1,1,1,1,1,1,1,1,1,1,1,1,2,2,3,4]; + M=newmat(S[0],S[1]); + SS=cdr(S);SS=cdr(SS); + if(Rk=length(SS)) L=SS; + else{ + L=[0]; + I=(S[0]>S[1])?S[1]:S[0]; + if(I<=2) return 0; + if(!isint(Rk=getopt(rank))||Rk<1||Rk>S[0]||Rk>S[1]) + Rk=random()%(I-1)+2; + for(I=1;I<Rk;){ + P=random()%(S[1]+Wt)-Wt; + if(P<=0) P=1; + if(findin(P,L)!=0){ + L=cons(P,L); + I++; + } + } + } + L=ltov(qsort(L)); + M[0][L[0]]=1; + for(I=1;I<Rk;I++){ + P=Int?1:U[random()%length(U)]; + if(P>Xa) P=Xa; + M[I][L[I]]=(random()%2)?P:(-P); + } + for(I=0;I<Rk;I++){ + if(I!=0&&abs(M[I][L[I]])>1) M[K=random()%I][KK=L[I]]=1; + I0=(I==0)?1:L[I]+1; + I1=(I==Rk-1)?S[1]:L[I+1]; + for(J=I0;J<I1;J++){ + for(K=1;K<=Xa;K++){ + P=random()%(I+1); + if((random()%2)==1) M[P][J]++; + else M[P][J]--; + } + } + } + S=M; + Res=(getopt(res)==1)?dupmat(S):0; + } + Conj=0; + if(type(S)<2){ + if(S<2||S>20) return 0; + if(getopt(conj)==1){ + M=S+Wt; + if(M>15) M=10; + M0=floor((M-1)/2); + for(R=[],I=0;I<S;I++) R=cons(random()%M-M0,R); + R=qsort(R); + M=diagm(S,R); + if(getopt(diag)!=1){ + for(I=1;I<S;I++) + if(M[I-1][I-1]==M[I][I] && random()%2) M[I-1][I]=1; + } + if(M[0][0]==M[S-1][S-1]){ + for(I=1;I<S;I++) if(M[I-1][I]==1) break; + if(I==S){ + if(M[0][0]>0) M[0][0]--; + else M[S-1][S-1]++; + } + } + if(getopt(res)==1) RR=diagm(S,[1]); + S1=S; + Res=dupmat(S=M); + if(isint(I=getopt(int))&&I>1&&random()%I==0){ + K=S[0][0];L=K+1; + for(I=1;I<S1;I++){ + if(S[I][I]>L && S[I-1][I]==0 && (I==S1-1||S[I][I+1]==0)){ + L=S[I][I]; + if(RR){ + RR[I][I]=L-K;RR[0][I]=1; + } + S[0][I]=1; + if(!(random()%3)) break; + } + } + if(random()%3==0){ + for(I=0;I<S1-1;I++){ + if(iand(S[I][I],1)&&S[I][I+1]==1){ + for(J=I+2;J<S1&&S[I][J]==0;J++); + if(J<S1) continue; + for(J=I-1;J>=0&&S[J][I]==0;J--); + if(J>=0) continue; + S[I][I+1]=2; + for(J=0;J<S1;J++) RR[I][J]*=2; + break; + } + } + } + } + }else{ + M=diagm(S,[1]); + S1=S; + } + } + if(type(S)==6){ + M=dupmat(S); + S=size(S); + S1=S[1];S=S[0]; + Nt=1; + if(getopt(conj)==1&&S==S1) Conj=1; + } + if(!isint(Ct=getopt(time))) + Ct=(S>3||S1>3)?100:200; + if(getopt(both)==1){ + OL=delopt(getopt(),"both"); + M=unim(mtranspose(M)|option_list=OL); + M=mtranspose(M); + } + Mx=20; + for(I=K=LL=0;I<Ct+Mx;I++){ + P=random()%S;Q=random()%S; + if(3*K>Ct) T=random()%Xaa-Xh; + else if(5*K<Ct) T=random()%2-1; + else T=random()%4-2; + if(T>=0) T++; + if(P==Q) continue; + for(G=0,J=S1-1;J>=0;J--){ + if((H=abs(M[Q][J]+M[P][J]*T))>Xa&&(!Conj||J!=P)) break; + if(K<Mx&&!Conj) G=igcd(G,H); + } + if(K<Mx && G>1) J=1; + if(J>0) continue; + if(J<0&&Conj==1){ + for(J=S1-1;J>=0;J--) + if(J!=Q&&abs(M[J][P]-M[J][Q]*T)>Xa) break; + if(J<0&&abs(M[Q][P]-M[Q][Q]*T+M[P][P]*T-M[P][Q]*T^2)>Xa) J=1; + if(J<0&&M[P][P]==M[Q][Q]){ + LF=0; + for(L=S1-1;J>=0;J--) if(L!=Q&&M[J][Q]!=0) LF++; + for(L=S1-1;J>=0;J--) if(L!=P&&M[P][J]!=0) LF++; + if(!LF) J=1; + } + } + if(J<0){ + for(J=S1-1;J>=0;J--) + M[Q][J]+=M[P][J]*T; + if(Conj==1) + for(J=S1-1;J>=0;J--) M[J][P]-=M[J][Q]*T; + if(RR) for(J=S1-1;J>=0;J--) RR[Q][J]+=RR[P][J]*T; + K++; + } + if(K%5==0){ + if(!Nt) M=mtranspose(M); + else if(!Conj&&K%2==0){ + for(F=0;F<S;F++){ + if((V=lgcd(M[F]))>1){ + for(L=0;L<S1;L++) M[F][L]/=V; + } + } + } + } + if(I>Ct){ + for(L=S-1;L>=0;L--){ + for(F=0,J=S1-1;J>=0;J--) + if(M[L][J]!=0) F++; + if(F<2){ + F=-1;break; + } + else F=0; + } + if(F<0 && LL++<5){ + I=(CT-CT%2)/2;K=1; + } + if(I>Ct) break; + } + } + if(RR){ + for(I=F=0;I<S1;I++){ + V=Res[I][I]; + for(J=I+1;J<S1;J++){ + if(Res[J][J]!=V) break; + for(LP=0;LP<2;LP++){ + if(J==S1-1||Res[J][J+1]==0){ + if(I==0||Res[I-1][I]==0){ + for(VL=VS=[],K=0;K<S1;K++){ + VL=cons(RR[K][J],VL);VS=cons(RR[K][I],VS); + } + VR=ldev(VL,VS); + if(VR[0]){ + for(K=S1-1,VN=VR[1];K>=0;K--,VN=cdr(VN)) + RR[K][J]=car(VN); + F=1; + } + } + } + K=I;I=J;J=K; + } + } + if(F&&I==S1-1){ + F=0;I=-1; + } + } + if(getopt(int)==1){ + N=mtranspose(M); + for(F=I=0;I<S1;I++) if(lgcd(M[I])>1||lgcd(N[I])>1) F++; + if(F){ + for(F=I=0;I<S1;I++){ + if(Res[I][I]==-1) F=ior(F,1); + else if(Res[I][I]==1) F=ior(F,2); + } + C=0; + if(!iand(F,1)) C=1; + else if(!iand(F,2)) C=-1; + if(C){ + for(I=0;I<S1;I++){ + M[I][I]+=C;Res[I][I]+=C; + } + } + } + } + if(getopt(rep)!=1){ + for(Lp=0;Lp<5;Lp++){ + F=(M==Res||abs(lmax(RR))>Xa*10||abs(lmin(RR))>Xa*10)?1:0; + for(I=0;!F&&I<S1&&Lp<4;I++){ + for(K=L=J=0;J<S1;J++){ + if(M[I][J]) K++; + if(M[J][I]) L++; + } + if(K<2||L<2) F=1; + } + if(!F) break; + R=unim(S0|option_list=cons(["rep",1],getopt())); + M=R[0];Res=R[1];RR=R[3]; + } + } + } + if(Res==0) return M; + if(RR){ + for(I=K=V=0;I<S1;I++){ + for(J=0;J<S1;J++){ + if(RR[J][I]>0) V++; + else if(RR[J][I]<0) V--; + } + if(I<S1-1&&Res[I][I+1]!=0) continue; + if(V<0){ + for(;K<=I;K++) RR=colm(RR,K,-1); + } + K=I+1;V=0; + } + } + if(getopt(rep)!=1){ + if((F=getopt(dviout))==1){ + if(getopt(conj)==1){ + if(RR) show([Res,"=",myinv(RR),M,RR]|opt="spts0",str=1,lim=200); + }else{ + if(type(Lim=getopt(lim))==1) + mtoupper(M,0|step=1,opt=7,dviout=1,pages=1,lim=Lim); + else mtoupper(M,0|step=1,opt=7,dviout=1,pages=1); + } + }else if(F==-1){ + if(getopt(conj)==1){ + if(RR) return ltotex([Res,"=",myinv(RR),M,RR]|opt="spts0",str=1,lim=200); + }else{ + if(type(Lim=getopt(lim))==1) + return mtoupper(M,0|step=1,opt=7,pages=1,lim=Lim,dviout=-1); + else return mtoupper(M,0|step=1,opt=7,pages=1,dviout=-1); + } + } + } + if(RR==0) return[M,Res]; + return [M,Res,myinv(RR),RR]; +} + +def pfrac(F,X) +{ + F = red(F); + FN = nm(F); + FD = dn(F); + if(mydeg(FD,X) == 0) + return [[F,1,1]]; + R = rpdiv(FN,FD,X); + FN = R[0]/R[1]; + R0 = R[2]/R[1]; + FC = fctr(FD); + RT=[]; + if(getopt(root)==2){ + for(FE=[],FT=FC;FT!=[];FT=cdr(FT)){ + if(mydeg(P=car(FT)[0],X)==4 && vars(P)==[X] && pari(issquare,C=mycoef(P,4,X))){ + if((S=mycoef(P,3,X)/4/C)!=0) P=subst(P,X,X-S); + if(mycoef(P,1,X)==0 && pari(issquare,C0=mycoef(P,0,X))){ + C=sqrtrat(C);C0=sqrtrat(C0);C1=2*C*C0-mycoef(P,2,X); + if(C1>0){ + FE=cons([C*(X+S)^2-C1^(1/2)*(X+S)+C0,car(FT)[1]],FE); + FE=cons([C*(X+S)^2+C1^(1/2)*(X+S)+C0,car(FT)[1]],FE); + RT=cons(C1,RT); + continue; + } + } + } + FE=cons(car(FT),FE); + } + FC=reverse(FE); + } + N = Q = 0; + L = []; + for(I = length(FC)-1; I >= 0; I--){ + if((D = mydeg(FC[I][0],X)) == 0) continue; + for(K=1; K<=FC[I][1]; K++){ + for(J=P=0; J < D; J++){ + V = makev(["zz_",++N]); + P = P*X + V; + L = cons(V,L); + } + Q += P/(FC[I][0]^K); + Q = red(Q); + } + } + L=reverse(L); + Q = nm(red(red(Q*FD)-FN)); + Q = ptol(Q,X); + S = lsol(Q,L); + R = (R0==0)?[]:[[R0,1,1]]; + for(N=0,I=length(FC)-1; I >= 0; I--){ + if((D = mydeg(FC[I][0],X)) == 0) continue; + for(K=1; K<=FC[I][1]; K++){ + for(P=J=0; J < D; N++,J++) + P = P*X + S[N][1]; + if(P!=0) R = cons([P,FC[I][0],K],R); + } + } + for(;RT!=[];RT=cdr(RT)){ + RTT=car(RT); + R=mtransbys(os_md.substblock,R,[RTT^(1/2),(RTT^(1/2))^2,RTT]); + } + TeX=getopt(TeX); + if((Dvi=getopt(dviout))==1||TeX==1){ + V=strtov("0"); + for(S=L=0,RR=R;RR!=[];RR=cdr(RR),L++){ + RT=car(RR); + S+=(RT[0]/RT[1]^RT[2])*V^L; + } + if(TeX!=1) fctrtos(S|var=[V,""],dviout=1); + else return fctrtos(S|var=[V,""],TeX=3); + } + return reverse(R); +} + +def cfrac(X,N) +{ + F=[floor(X)]; + if(N<0){ + Max=N=-N; + } + X-=F[0]; + if(Max!=1) + M=mat([F[0],1],[1,0]); + for(;N>0 && X!=0;N--){ + X=1/X; + F=cons(Y=floor(X),F); + X-=Y; + if(Max){ + M0=M[0][0];M1=M[1][0]; + M=M*mat([Y,1],[1,0]); + if(M[0][0]>Max) return M0/M1; + } + } + return (Max==0)?reverse(F):M[0][0]/M[1][0]; +} + +def sqrt2rat(X) +{ + if(type(X)>3) return X; + X=red(X); + if(getopt(mult)==1){ + for(V=vars(X);V!=[];V=cdr(V)){ + T=funargs(F=car(V)); + if(type(T)==4&&length(T)>1){ + Y=T[1]; + Z=sqrt2rat(Y); + if(Y!=Z){ + if(length(T)==2){ + T0=T[0]; + X=subst(X,F,T0(Z)); + }else if(T[0]==pow) + X=subst(X,F,Y^T[2]); + } + } + } + } + for(V=vars(X);V!=[];V=cdr(V)){ /* r(x)^(1/2+n) -> r(x)^n*r(x)^(1/2) */ + T=args(Y=car(V)); + if(functor(Y)==pow&&T[1]!=1/2&&isint(T2=2*T[1])){ + if(iand(T2,1)){ + R=(T[0])^(1/2);T2--; + }else R=1; + R*=T[0]^(T2/2); + X=red(subst(X,Y,R)); + } + } + D=dn(X);N=nm(X); + if(imag(D)!=0){ + N*=conj(D); + D*=conj(D); + return sqrt2rat(N/D); + } + for(V=vars(N);V!=[];V=cdr(V)){ /* (r(x)^(n/m))^k */ + T=args(Y=car(V)); + if(functor(Y)==pow&&(T[1]==0||(type(T[1])==1&&ntype(T[1])==0))){ + Dn=dn(T[1]);Nm=nm(T[1]); + N=substblock(N,Y,Y^Dn,T[0]^Nm); + } + } + for(V=vars(D);V!=[];V=cdr(V)){ + T=args(Y=car(V)); + if(functor(Y)==pow&&(T[1]==0||(type(T[1])==1&&ntype(T[1])==0))){ + Dn=dn(T[1]);Nm=nm(T[1]); + D=substblock(D,Y,Y^Dn,T[0]^Nm); + } + } + for(V=vars(D);V!=[];V=cdr(V)){ + T=args(Y=car(V)); + if(functor(Y)==pow&&T[1]==1/2&&mydeg(D,Y)==1){ + N*=mycoef(D,0,Y)-mycoef(D,1,Y)*Y; + N=mycoef(N,0,Y)+mycoef(N,1,Y)*Y+mycoef(N,2,Y)*T[0]; + D=mycoef(D,0,Y)^2-mycoef(D,1,Y)^2*T[0]; + X=red(N/D); + D=dn(X);N=nm(X); + break; + } + } + X=red(N/D); + D=dn(X);N=nm(X); + for(V=vars(D);V!=[];V=cdr(V)){ + T=args(Y=car(V)); + if(functor(Y)==pow&&T[1]==1/2) + D=substblock(D,T[0]^T[1],(T[0]^T[1])^2,T[0]); + } + for(V=vars(N);V!=[];V=cdr(V)){ + T=args(Y=car(V)); + if(functor(Y)==pow&&T[1]==1/2) + N=substblock(N,T[0]^T[1],(T[0]^T[1])^2,T[0]); + } + for(V=vars(N);V!=[];V=cdr(V)){ + T=args(Y=car(V)); + if(functor(Y)==pow&&T[1]==1/2){ + Ag=T[0]; + R=S=1; + An=fctr(nm(Ag)); + CA=An[0][0]; + if(CA<0){ + CA=-CA;R=-1; + } + if(type(I=sqrtrat(CA))<2) S=I; + else R*=CA; + for(An=cdr(An);An!=[];An=cdr(An)){ + Pw=car(An)[1];I=iand(Pw,1); + if(I) R*=car(An)[0]; + if((Q=(Pw-I)/2)>0) S*=car(An)[0]^Q; + } + for(An=fctr(dn(Ag));An!=[];An=cdr(An)){ + Pw=car(An)[1];I=iand(Pw,1); + if(I) R/=car(An)[0]^I; + if((Q=(Pw-I)/2)>0) S/=car(An)[0]^Q; + } + if(S!=1) N=subst(N,Y,R^(1/2)*S); + } + } + for(V=vars(N);V!=[];V=cdr(V)){ + T=args(Y=car(V)); + if(functor(Y)==pow&&T[1]==1/2){ + C=mycoef(N,1,Y); + for(VC=vars(C);VC!=[];VC=cdr(VC)){ + TC=args(YC=car(VC)); + if(functor(YC)==pow&&TC[1]==1/2){ + Ag=red(T[0]*TC[0]); + R=S=1; + An=fctr(nm(Ag)); + CA=An[0][0]; + if(CA<0){ + CA=-CA;R=-1; + } + if(type(I=sqrtrat(CA))<2) S=I; + else R*=CA; + for(An=cdr(An);An!=[];An=cdr(An)){ + Pw=car(An)[1];I=iand(Pw,1); + if(I) R*=car(An)[0]; + if((Q=(Pw-I)/2)>0) S*=car(An)[0]^Q; + } + for(An=fctr(dn(Ag));An!=[];An=cdr(An)){ + Pw=car(An)[1];I=iand(Pw,1); + if(I) R/=car(An)[0]^I; + if((Q=(Pw-I)/2)>0) S/=car(An)[0]^Q; + } + CC=mycoef(C,1,YC); + N=N-CC*YC*Y+CC*R^(1/2)*S; + } + } + } + } + return red(N/D); +} + +def cfrac2n(X) +{ + if(type(L=getopt(loop))==1&&L>0) + C=x; + else{ + C=0;L=0; + } + if(L>1){ + for(Y=[];L>1;L--){ + Y=cons(car(X),Y); + X=cdr(X); + } + if(X!=[]){ + P=cfrac2n(X|loop=1); + for(V=P,Y=reverse(Y);Y!=[];Y=cdr(Y)) + V=sqrt2rat(car(Y)+1/V); + return V; + }else{ + C=0;X=reverse(Y); + } + } + for(V=C,X=reverse(X);X!=[];X=cdr(X)){ + if(V!=0) V=1/V; + V+=car(X); + } + if(C!=0){ + V=red(V);P=dn(V)*x-nm(V); + S=getroot(P,x|cpx=2); + T=map(eval,S); + V=(T[0]>0)?S[0]:S[1]; + } + return V; +} + +def s2sp(S) +{ + if(getopt(short)==1){ + if(type(F=getopt(std))==1) S=s2sp(S|std=F); + if(type(S)!=7) S=s2sp(S); + L=strtoascii(S); + for(LS=[],F=C=0;L!=[];L=cdr(L)){ + if((G=car(L))!=F){ + LS=cons(G,LS);C=0; + }else if(C<3){ + LS=cons(G,LS); + }else if(C==3){ + LS=cdr(LS);LS=cdr(LS); + LS=cons(94,LS);LS=cons(52,LS); + }else if(C==9){ + LS=cdr(LS);LS=cons(97,LS); + }else{ + K=car(LS);LS=cdr(LS);LS=cons(K+1,LS); + } + C++;F=G; + } + return asciitostr(reverse(LS)); + } + if(type(F=getopt(std))==1){ + F=(F>0)?1:-1; + if(type(S)==7) S=s2sp(S); + for(L=[];S!=[];S=cdr(S)) + L=cons(os_md.msort(car(S),[-1,0]),L); + return os_md.msort(L,[F,2]); + } + if(type(S)==7){ + S = strtoascii(S); + if(type(S) == 5) S = vtol(S); + for(N=0,R=TR=[]; S!=[]; S=cdr(S)){ + if(car(S)==45) /* - */ + N=1; + else if(car(S)==47) /* / */ + N=2; + if(N>0){ + while(car(S)<48&&car(S)!=40) S=cdr(S); + } + if((T=car(S))>=48 && T<=57) TR=cons(T-48,TR); + else if(T>=97) TR=cons(T-87,TR); + else if(T>=65 && T<=90) TR=cons(T-29,TR); /* A-Z */ + else if(T==44){ + R=cons(reverse(TR),R); + TR=[]; + }else if(T==94){ /* ^ */ + S=cdr(S); + if(car(S)==40){ /* ( */ + S=cdr(S); + for(T=0; car(S)!=41 && S!=[]; S=cdr(S)){ + V=car(S)-48; + if(V>=10) V-=39; + T=10*T+V; + } + }else{ + while(car(S)<48) S=cdr(S); + T=car(S)-48; + if(T>=10) T-=39; + } + while(--T>=1) TR=cons(car(TR),TR); + }else if(T==40){ /* ( */ + S=cdr(S); + if(N==1){ + N=0; NN=1; + }else NN=0; + if(car(S)==45){ /* - */ + S=cdr(S); + NN=1-NN; + } + for(I=0; I<2; I++){ + for(V=0; (SS=car(S))!=41 && SS!=47 && S!=[]; S=cdr(S)){ + T=SS-48; + if(T>=10) T-=39; + V=10*V+T; + } + if(NN==1){ + V=-V; NN=0; + } + TR=cons(V,TR); + if(SS!=47) break; + else{ + N=2; S=cdr(S); + } + } + }else if(T==60){ + for(V=[],S=cdr(S);S!=[]&&car(S)!=62;S=cdr(S)) + V=cons(car(S),V); + if(car(S)!=62) continue; + TR=cons(eval_str(asciitostr(reverse(V))),TR); + }else if(T<48) continue; + if(N==1){ + T = car(TR); + TR=cons(-T,cdr(TR)); + N=0; + }else if(N==2){ + T=car(TR); TR=cdr(TR); + TR=cons(car(TR)/T,cdr(TR)); + N=0; + } + } + return reverse(cons(reverse(TR),R)); + }else if(type(S)==4){ + Num=getopt(num); + for(R=[]; ; ){ + if(type(TS=car(S))!=4) return; + for(; TS!=[]; TS=cdr(TS)){ + V=car(TS); + if(type(V)>1||(type(V)==1&&ntype(V)>0)){ + V="<"+rtostr(V)+">"; + R=append(reverse(strtoascii(V)),R); + continue; + } + if(dn(V)>1){ + P=reverse(strtoascii(rtostr(V))); + R=append(P,cons(40,R)); + R=cons(41,R); + continue; + } + if(V<0 && V>-10){ + V=-V; + R=cons(45,R); + } + if(V<0 || V>35 || (V>9 && Num==1)){ + P=reverse(strtoascii(rtostr(V))); + R=append(P,cons(40,R)); + V=41; + }else if(V<10) V+=48; + else V+=87; + R=cons(V,R); + } + if((S=cdr(S))==[]) break; + R=cons(44,R); + } + return asciitostr(reverse(R)); + } + return 0; +} + +def sp2grs(M,A,L) +{ + MM = []; + T0 = 0; + Mat=getopt(mat); + if(Mat!=1) Mat=0; + if(type(M)==7) M=s2sp(M); + if((LM = length(M)) > 10 && type(A) < 4) + CK = 1; + Sft = (type(L)==1)?L:0; + if(type(L)==4 && length(L)>=3) + Sft = L[2]; + if(Sft < 0){ + T0 = 1; + Sft = -Sft-1; + } + for(I = LM-1; I >= 0; I--){ + MI = M[I]; MN = []; + if(CK == 1 && length(MI) > 10){ + erno(1); + return; + } + if(type(A) == 4) + AA = rtostr(A[I]); + else + AA = rtostr(A)+rtostr(I); + for(J = LM = length(MI)-1; J >= 0; J--){ + V = MI[J]; + if(type(V) > 3) + V = V[0]; + if(T0 == 0 || I == 0) + MN = cons([V, makev([AA,J+Sft])], MN); + else{ + if(LM == 1) + MN = cons([V, (J==0)?0:makev([AA])], MN); + else if(I == 1 && Mat == 0) + MN = cons([V, (J==length(MI)-1)?0:makev([AA,J+Sft])], MN); + else + MN = cons([V, (J==0)?0:makev([AA,J])], MN); + } + } + MM = cons(MN, MM); + } + if(type(L) == 4 && length(L) >= 2){ + R = chkspt(MM|mat=Mat); /* R[3]: Fuchs */ + AA = var(MM[L[0]-1][L[1]-1][1]); + if(AA==0) AA=var(R[3]); + if(AA!=0 && (P = mycoef(R[3],1,AA))!=0){ + P = -mycoef(R[3], 0, AA)/P; + MM = mysubst(MM,[AA,P]); + } + } + return MM; +} + +def intpoly(F,X) +{ + if((T=ptype(F,X))<4){ + if(T<3){ /* polynomial */ + if(type(C=getopt(cos))>0){ + V=vars(F); + Z=makenewv(V); + W=makenewv(cons(Z,V)); + Q=intpoly(F,X|exp=Z); + Q=(subst(Q,Z,@i*C)*(Z+@i*W)+subst(Q,Z,-@i*C)*(Z-@i*W))/2; + return [mycoef(Q,1,Z),mycoef(Q,1,W)]; + } + if(type(C=getopt(sin))>0){ + Q=intpoly(F,X|cos=C); + return [-Q[1],Q[0]]; + } + if(type(C=getopt(log))>0){ + Q=intpoly(F,X); + if(C[0]==0) return [Q,0]; + if(length(C)<3) C=[C[0],C[1],1]; + Q-=subst(Q,X,-C[1]/C[0]); + if(iscoef(Q,os_md.israt)) Q=red(Q); + if(C[2]==0) return [Q]; + S=subst(-Q*C[0]*C[2],X,X-C[1]/C[0]); + for(R=0,D=mydeg(S,X);D>0;D--) R+=mycoef(S,D,X)*X^(D-1); + R=subst(R,X,X+C[1]/C[0]); + return cons(Q,intpoly(R,X|log=[C[0],C[1],C[2]-1])); + } + if(type(C=getopt(exp))>0){ + D = mydeg(F,X); + for(P=Q=F/C;D>=0;D--){ + Q=-mydiff(Q,X)/C; + P+=Q; + } + return P; + } + for(P=0,I=mydeg(F,X);I >= 0;I--) + P += mycoef(F,I,X)*X^(I+1)/(I+1); + return P; + } + R=pfrac(F,X|root=2); /* rational */ + for(P=0;R!=[];R=cdr(R)){ + if(type(V=getopt(dumb))==5){ + for(PF=[],RR=R;RR!=[];RR=cdr(RR)) + PF=cons(RR[0][0]/RR[0][1]^RR[0][2],PF); + PF=[cons(X,reverse(PF))]; + if(P) PF=cons([1,P],PF); + V[0]=cons(PF,V[0]); + } + RT=car(R); + if(mydeg(RT[1],X)==0) P+=intpoly(RT[0]*RT[2],X); + else if((Deg=mydeg(RT[1],X))==1){ + if(RT[2]>1) P+=RT[0]*RT[1]^(1-RT[2])/(1-RT[2])/mycoef(RT[1],1,X); + else P+=RT[0]*log(RT[1])/mycoef(RT[1],1,X); + P=red(P); + }else if(Deg==2){ + D1=diff(RT[1],X);C1=mycoef(D1,1,X); + B=2*C1*mycoef(RT[1],0,X)-mycoef(RT[1],1,X)^2; /* ax^2+bx+c => B=4ac-b^2 */ + B=sqrt2rat(B); + N=RT[0]; + for(I=RT[2];I>0&&N!=0;I--){ + C0=mycoef(N,1,X)/C1;N-=C0*D1; + if(C0){ + if(I>1) P-=C0/RT[1]^(I-1)/(I-1); + else P+=C0*log(RT[1]); + } + if(I>1){ + BB=B/C1; + P+=N*X/RT[1]^(I-1)/(I-1)/BB; + N*=(2*I-3)/(I-1)/BB; + }else{ + if(type(BR=sqrtrat(B))>3){ + mycat(["Cannot obtain sqare root of ",B]); + return []; + } + if(real(nm(BR))!=0){ + P+=(2*N/BR)*atan(sqrt2rat(D1/BR|mult=1)); + }else{ + BR*=@i;BRI=sqrt2rat(1/BR); + R1=(-mycoef(RT[1],1,X)+BR)/C1; + R2=(-mycoef(RT[1],1,X)-BR)/C1; + P+=N*BRI*log( /* sqrt2rat */((x-R1)/(x-R2))); + } + } + P=red(P); + } + P=sqrt2rat(P); + }else{ + mycat(["Cannot get an indefinite integral of ",F]); + return []; + } + } + Q=simplog(P,X); + if(type(V)==5&&nmono(P)!=nmono(Q)) V[0]=cons([[1,red(P)]],V[0]); + return red(Q); + } + return []; +} + +def fshorter(P,X) +{ + Q=sqrt2rat(P); + R=trig2exp(Q,X|inv=1); + if(str_len(fctrtos(R))<str_len(fctrtos(Q))) Q=R; + Var=pfargs(Q,X|level=1); + for(C=F=0,R=1,V=Var;V!=[];V=cdr(V)){ + if(findin(car(V)[1],[cos,sin,tan])>=0){ + if(!C){ + F=car(V)[2]; + }else{ + R=red(car(V)[2]/F); + if(type(R)!=1) break; + F/=dn(R); + } + C++; + } + } + if(getopt(period)==1) return F; + if(!isint(Log=getopt(log))) Log=0; + if(V==[]&&F!=0){ + if(iand(Log,1)){ + H=append(cdr(fctr(nm(Q))),cdr(fctr(dn(Q)))); + for(L=0;H!=[];H=cdr(H)) + L+=str_len(rtostr(car(H)[0])); + }else L=str_len(fctrtos(Q)); + S=trig2exp(P,X); + for(T=[sin(F),tan(F),cos(F),sin(F/2),cos(F/2),tan(F/2)];T!=[];T=cdr(T)){ + R=trig2exp(S,X|inv=car(T)); + if(iand(Log,1)){ + H=append(cdr(fctr(nm(R))),cdr(fctr(dn(R)))); + for(K=0;H!=[];H=cdr(H)) + K+=str_len(rtostr(car(H)[0])); + }else K=str_len(fctrtos(R)); + if(K<L){ + Q=R;L=K; + } + } + } + return Q; +} + +def isshortneg(P) +{ + return(str_len(rtostr(P))>str_len(rtostr(-P)))?1:0; +} + +def simplog(R,X) +{ + for(V=[],Var=pfargs(R,X);Var!=[];Var=cdr(Var)){ + VT=car(Var); + if(VT[1]==log && ptype(R,VT[0])==2 && mydeg(R,VT[0])==1) + V=cons([VT[0],VT[2],mycoef(R,1,VT[0])],V); + } + for(;V!=[];V=cdr(V)){ + VT=car(V); + for(V2=cdr(V);V2!=[];V2=cdr(V2)){ + Dn=1; + if((C=red(car(V2)[2]/VT[2]))!=1&&C!=-1){ + if(getopt(mult)==1&&type(C)==1&&ntype(C)==0){ + Dn=dn(C);C*=Dn; + }else continue; + } + Log=red(VT[1]^Dn*car(V2)[1]^(Dn*C)); + L=str_len(rtostr(dn(Log)))-str_len(rtostr(nm(Log))); + if(L>0 || (L==0&&isshortneg(VT[2])) ){ + Dn=-Dn;Log=1/Log; + } + R=mycoef(R,0,VT[0]);R=mycoef(R,0,car(V2)[0]); + return(R+VT[2]*log(Log)/Dn); + } + } + return R; +} + +def integrate(P,X) +{ + Dvi=getopt(dviout); + if(type(I=getopt(I))==4){ + if((R=integrate(P,X))==[]) II="?"; + else if(type(I[0])>3||type(I[1])>3){ + R=subst(R,X,x); + V=flim(R,I[0]);VV=flim(R,I[1]); + if(V==""||VV=="") II="?"; + else if(type(V)==7||type(VV)==7){ + if(V==VV) II="?"; + else II=(VV=="+"||V=="-")?"\\infty":"-\\infty"; + }else{ + II=VV-V; + if(II>10^10) II="\\infty"; + else if(II<-10^10) II="-\\infty"; + } + }else{ + V=subst(R,X,I[1])-subst(R,X,I[0]); + VV=myval(V); + II=(type(VV)>=2||ntype(VV)<1)?VV:evalred(V); + } + if(type(Dvi)!=1) return II; + I=ltov(I); + for(J=0;J<2;J++){ + if(type(I[J])>3){ + if(type(I[J])==4&&length(I[J])>1) I[J]=I[J][1]; + else I[J]=(J==0)?"-\\infty":"\\infty"; + } + if(type(I[J])<4) I[J]=my_tex_form(I[J]); + } + S=(type(II)==7)?II:my_tex_form(II); + S="\\int_{"+I[0]+"}^{"+I[1]+"}"+monototex(P)+"\\,d"+my_tex_form(X)+"&="+S; + if(Dvi==1) dviout(texbegin("align",S)); + return S; + } + if(isint(Dvi)==1){ + if(Dvi==2||getopt(dumb)==-1){ + V=newvect(1);V[0]=[]; + }else V=0; + if((RR=integrate(P,X|dumb=V))==[]) return R; + S=fshorter(RR,X); + VV=[X]; + if(V!=0){ + R=cons([[1,RR]],V[0]); + if(S!=RR) R=cons([[1,RR=S]],R); + for(V=FR=[];R!=[];R=cdr(R)) + if(car(R)!=FR) V=cons(FR=car(R),V); + Var=varargs(V|all=1)[1]; + for(S0=[x0,x1,x2,x3],S=[t,s,u,v,w];S0!=[]&&S!=[];){ + if(findin(car(S0),Var)<0){ + S0=cdr(S0); continue; + } + if(findin(car(S),Var)>=0){ + S=cdr(S); continue; + } + V=subst(V,[car(S0),car(S)]);S0=cdr(S0);S=cdr(S); + } + if(Dvi==-2) return V; + S1="\\,dx&"; + }else{ + V=[[],[[1,RR=S]]]; + S1="\\,dx"; + } + if(type(P)>2){ + if(type(nm(P))<2){ + P=P*dx;S1=V?"&":""; + } + S=fctrtos(P|TeX=2,lim=0);SV0=my_tex_form(P); + if(str_len(SV0)<str_len(S)) S=SV0; + }else S=monototex(P); + if(Dvi!=-2) S="\\int "+S+S1; + else S=""; + for(L=[],V=cdr(V);V!=[];V=cdr(V)){ + CL=car(V);S0=["="]; /* a line */ + for(FL=0;CL!=[];CL=cdr(CL),FL++){ + CT=car(CL); /* a term */ + if((Y=CT[0])==0){ /* a variable */ + CT=cdr(CT); + if(length(CT)>2) CT=cdr(CT); + S0=["\\qquad(",CT[0],"=",CT[1],")"]; + break; + }else{ + for(FT=0,S2=[],CT=cdr(CT);CT!=[];CT=cdr(CT),FT++){ + SV=fctrtos(car(CT)|TeX=2,lim=0);SV0=my_tex_form(car(CT)); + if(str_len(SV0)<str_len(SV)) SV=SV0; + if(FL||FT||(F&&type(Y)<2)) SV=minustos(SV); + S2=append(["+",SV],S2); + } + S2=reverse(cdr(S2)); + if(type(Y)>1){ + if(length(S2)>1){ + S1="\\int\\left(";S3="\\right)\\,d"; + }else{ + S1="\\int";S3="\\,d"; + } + S2=cons(S1,append(S2,[S3,Y])); + if(findin(Y,VV)<0) VV=cons(Y,VV); + } + if(FL) S0=append(S0,cons("+",S2)); + else S0=append(S0,S2); + } + } + L=append([S0],L); + }; + V=pfargs(RR,X|level=1); + for(Var=[];V!=[];V=cdr(V)) Var=cons(car(V)[0],Var); + Var=reverse(Var); + if(!isint(J=getopt(frac))) J=0;; + if(!iand(J,4)&&(!iand(J,2)||length(Var)==1)&&(iand(J,8)==8||ptype(RR,Var)==2)){ + F=1; + if(iand(J,1)){ + K=str_len(fctrtos(RR)); + I=str_len(fctrtos(RR|var=Var)); + if(I>=K) F=0; + } + if(F){ + V=[fctrtos(RR|var=Var,TeX=2)]; + if(Dvi!=-2) V=cons("=",V); + if(length(L)>0) L=cdr(L); + L=append([V],L); + } + }else if(ptype(RR,X)==2){ + L=cdr(L); + V=[fctrtos(RR|var=X,TeX=2)]; + if(Dvi!=-2) V=cons("=",V); + L=append([V],L); + } + S=texket(S+ltotex(reverse(L)|opt=["cr","spts0"],str=1)); + if(getopt(log)!=1){ + for(V=[];VV!=[];VV=cdr(VV)) + V=cons(strtoascii(my_tex_form(car(VV))),V); + S1=strtoascii("\\log"); + for(F=1;F;){ /* log(log(x)) */ + F=FT=0; + S0=strtoascii(S); /* log(x) -> log|x| */ + L=length(S0); + S2=str_tb(0,0); + for(I=0;;){ + if(I>=L||(J=str_str(S0,S1|top=I+FT))<0){ + S=str_tb(0,S2)+str_cut(S0,I,100000); + break; + } + if((K=str_str(S0,40|top=J+4))<0 + ||(K!=J+4&&K!=J+9)||(N=str_pair(S0,K+1,40,41))<0){ + FT=J-I+4;continue; + } + FT=0; + if(str_str(S0,V|top=K+1,end=N-1)[0]<0) S2=str_tb(str_cut(S0,I,N),S2); + else{ + /* log(a) -> log(a) */ + F=1; + if(N<L-1&&S0[N+1]==94){ /* log(x)^2 -> (log|x|)^2 */ + S2=str_tb([str_cut(S0,I,J-1),"\\left(",str_cut(S0,J,K-1), + "|",str_cut(S0,K+1,N-1),"|\\right)"],S2); + } + else S2=str_tb([str_cut(S0,I,K-1),"|",str_cut(S0,K+1,N-1),"|"],S2); + } + I=N+1; + } + } + } + if(Dvi>0){ + dviout(texbegin("align*",S)); + return 1; + } + return S; + } /* end of dviout */ + SM=["Cannot integrate",P,"at present"]; + P=sqrt2rat(P|mult=1); + Dumb2=1;Dumb3=0;W=newvect(1);W[0]=[]; + if(type(Dumb=getopt(dumb))==5){ + Dumb2=Dumb3=Dumb;D2=W; + }else if(!isint(Dumb)) Dumb=0; + if(Dumb==-1){ + Dumb2=Dumb3=-1; + } + if(type(Dumb)!=5) D2=Dumb2; + if(!isint(Mul=getopt(mult))) Mul=0; + else Mul++; + if(type(VAR=getopt(var))!=4) VAR=[]; + if(type(P)>4) return []; + if(iand(T=ptype(P=red(P),X),63)>3||Mul>4){ + if(Dumb!=1) mycat(SM); + return []; + } + if(Dumb==-1) mycat(["integrate", P]); + else if(type(Dumb)==5) Dumb[0]=cons([[X,P]],Dumb[0]); + if(T<4 && (T<3||iscoef(P,os_md.israt))){ + if(Dumb==-1) mycat(["rational function",P]); + else if(type(Dumb)==5) Dumb[0]=cons([[X,P]],Dumb[0]); + return intpoly(P,X|dumb=Dumb); /* rational function */ + } + Var=pfargs(P,X); + for(F=0,VV=Var;VV!=[];VV=cdr(VV)){ + /* p(x)*log(x^2-1), @e^x, a^x, f(x)^(m/n) etc.->simplify */ + V=car(VV); + if(V[1]==log && (T=ptype(V[2],X))>1 && T<4){ + if(mydeg(dn(V[2]),X)>0||mydeg(nm(V[2]),X)>1){ + FC=pfctr(V[2],X);RV=1; + if(length(FC)>2){ + RR=0;RV=1; + if((F0=car(FC)[0])!=1){ + if(type(F0)!=1 && F0<0){ + for(FT=cdr(FT);FT!=[];FT=cdr(FT)){ + if(iand(car(FT)[1],1)){ + RV=-1;F0=-F0;break; + } + } + } + } + if(F0!=1) RR=log(F0); + for(FC=cdr(FC);FC!=[];FC=cdr(FC)){ + if(RV==-1&&iand(car(FC)[1],1)==1){ + RR+=car(FC)[1]*log(-car(FC)[0]); + RV=1; + }else + RR+=car(FC)[1]*log(car(FC)[0]); + } + P=subst(P,V[0],RR); + F=1; + } + } + F=1; + }else if(V[1]==pow){ + if(ptype(V[2],X)==1){ + F=1; + if(V[2]==@e){ /* @e^(f(x)) */ + P=subst(P,V[0],exp(V[3])); + }else P=subst(P,V[0],exp(log(V[2])*V[3])); + }else if(type(V[3])<=1 && ntype(V[3])==0){ /* r(x)^(m/n) */ + if((Pw=floor(V[3]))!=0){ + R=V[2]^Pw; + if((PF=V[3]-Pw)!=0) R*=V[2]^PF; + P=subst(P,V[0],R); + F=1; + V=[V[2]^PF,V[1],V[2],PF]; + } + if(ptype(nm(V[2]),X)<2&&V[3]>0){ /* (1/p(x))^(m/n) */ + P=subst(P,V[0],V[2]*red(1/V[2])^(1-V[3])); + F=0;VV=cons(0,Var=pfargs(P,X));continue; + } + if(ptype(V[2],X)<4&&(K=dn(V[3]))>1){ + V2=red(V[2]); + DN=mydeg(nm(V2),X);DD=mydeg(dn(V2),X); + if(DN+DD>1){ + VF=pfctr(V2,X); + R=car(VF)[0]^(car(VF)[1]);RR=0; + for(VF=cdr(VF);VF!=[];VF=cdr(VF)){ + TV=car(VF);TM=TV[1]; + while(abs(TM)>=K){ + RR=1; + if(TM>0){ + TM-=K; + RR*=TV[0]^nm(V[3]); + }else{ + TM+=K; + RR/=TV[0]^nm(V[3]); + } + } + if(TM!=0) R*=TV[0]^TM; + } + if(RR){ + P=subst(P,V[0],RR*red(R)^(V[3]));F=1; + F=0;VV=cons(0,Var=pfargs(P,X));continue; + } + } + } + } + } + } + if(F){ + P=sqrt2rat(P|mult=1); + Var=pfargs(P=red(P),X);T=ptype(P,X); + if(T<4 && (T<3||iscoef(P,os_md.israt))){ + if(Dumb==-1) mycat(["rational function",P]); + else if(type(Dumb)==5){ + Dumb[0]=cons([[X,P]],Dumb[0]); + return intpoly(P,X|dumb=Dumb3); + } + return intpoly(P,X); /* rational function */ + } + } +#if 1 + for(P0=P,V=pfargs(P,X|level=1);V!=[];V=cdr(V)) /* P:tan(x) -> P0:sin(x)/cos(x) */ + if(car(V)[1]==tan) P0=red(subst(P0,car(V)[0],sin(car(V)[2])/cos(car(V)[2]))); + if(iand(ptype(P0,X),128)){ /* (log f)'=f'/f */ + for(Df=cdr(fctr(dn(P0)));Df!=[];Df=cdr(Df)){ + if(!iand(ptype(car(Df)[0],X),64)) continue; + Q=car(Df)[0]^(car(Df)[1]);QQ=red(dn(P0)/Q); + DQ=red(diff(Q,X)*QQ); + if(type(C=DQ/nm(P0))<2&&C!=0){ + PP=0;DN=[1]; + }else for(DN=cdr(fctr(DQ));DN!=[];DN=cdr(DN)){ + Y=car(DN)[0]; + if(!iand(ptype(Y,X),64)||(I=mydeg(nm(P0),Y))!=mydeg(DQ,Y) + || ptype((C=red(mycoef(nm(P0),I,Y)/mycoef(DQ,I,Y))),X)>1||C==0) continue; + PP=red(P0-C*diff(Q,X)/Q); + if(nmono(P0)>nmono(PP)) break; + } + if(DN!=[]){ + R=C*log(Q); + if(PP==0){ + if(P!=P0&&type(Dumb)==5) Dumb[0]=cons([[X,P0]],Dumb[0]); + return R; + } + W[0]=[]; + S=integrate(PP,X|dumb=D2); + if(S!=[]){ + if(type(Dumb)==5){ + Dumb[0]=cons([[X,red(P0-PP),PP]],Dumb[0]); + TD=W[0]; + for(W0=[],TD=reverse(TD);TD!=[];TD=cdr(TD)){ + if(car(TD)[0][0]){ + WL=cons([1,R],car(TD)); + Dumb[0]=cons(WL,Dumb[0]); + } + else Dumb[0]=cons(car(TD),Dumb[0]); + } + } + return red(R+S); + } + } + } + } +#endif + if((length(Var)==1||getopt(exe)==1) && /* p(x)*atan(q(x))^m+r(x), etc */ + findin((VT=car(Var))[1],[atan,asin,acos,log])>=0 && ptype(P,VT[0])==2 && + (VT[1]!=log||(T!=65&&T!=66)||mydeg(VT[2],X)!=1)){ /* exclude x*log(x+1)^2 */ + for(R=0,D=mydeg(P,VT[0]);D>=0;D--){ + Q=S=mycoef(P,D,VT[0]); + if(S){ + if(D>0){ + if((Q=integrate(S,X|mult=Mul))==[]) return Q; + }else{ + W[0]=[]; + if((Q=integrate(S,X|dumb=D2,var=VAR,mult=Mul))==[]) return Q; + if(type(Dumb)==5){ + TD=W[0]; + for(W0=[],TD=reverse(TD);TD!=[];TD=cdr(TD)){ + if(car(TD)[0][0]){ + WL=cons([1,R],car(TD)); + Dumb[0]=cons(WL,Dumb[0]); + } + else Dumb[0]=cons(car(TD),Dumb[0]); + } + if(car(Dumb[0])!=[[1,R],[1,Q]]) + Dumb[0]=cons([[1,R,Q]],Dumb[0]); + } + return red(R+Q); + } + }else if(D>0) continue; + if(D==0){ + if(Q!=0&&type(Dumb)==5) Dumb[0]=cons([[1,R,Q]],Dumb[0]); + return red(Q+R); + } + R0=Q*VT[0]^D; + P=(P0=P)-S*VT[0]^D-Q*diff(VT[0]^D,X); + if(mydeg(P,VT[0])>=D){ /* (x+1)*log(x)/x^2 */ + if(mydeg(P,VT[0])==D && + ptype(C=red(mycoef(P,D,VT[0])/diff(VT[0],X)),VT[0])<2){ + P=P0-(S*VT[0]^D+Q*diff(VT[0]^D,X)+C*diff(VT[0]^(D+1),X)/(D+1)); + R0+=C*VT[0]^(D+1)/(D+1); + }else{ + P=P0; + if(Dumb!=1) mycat(SM); + return []; + } + } + if(type(Dumb)==5){ + if(P) Dumb[0]=cons([R?[1,R,R0]:[1,R0],[X,P]],Dumb[0]); + else if(R!=0) Dumb[0]=cons([[1,R,R0]],Dumb[0]); + } + R+=R0; + } + } + if(length(Var)==1 && (VT=car(Var))[1]==pow && mydeg(P,VT[0])==1 && (PT=ptype(VT[2],X))<4){ + PR=mycoef(P,0,VT[0]); + if(RR!=0){ + RR=integrate(RR,X|dumb=Dumb3,var=Var); + if(RR==[]) return RR; + } + PW=VT[3]; + if((D=mydeg(nm(V2=VT[2]),X))==2&&PT==2){ /* f(x)*(ax^2+bx+c)^(m/2)+r(x) */ + if(isint(2*PW)){ + C2=mycoef(V20=V2,2,X);F=1; + if((C21=sqrtrat(C2))==[]) return []; + if(imag(C21)!=0){ + if(real(C21)!=0) return []; + C21=C21/@i;F=-1; + } + if(type(C21)>3) return []; + P=subst(P,X,X/C21);VT=mysubst(VT,[X,X/C21]);V2=VT[2]; + C1=mycoef(V2,1,X)/F/2; + if(C1!=0){ + P=subst(P,X,X-C1);VT=mysubst(VT,[X,X-C1]);V2=VT[2]; + } + C0=mycoef(V2,0,X); + if((C01=sqrtrat(C0))==[]) return []; + if(imag(nm(C01))!=0){ + if(real(nm(C01))!=0) return []; + C01=C01/@i;G=-1; + }else G=1; + if(type(C01)>3||(F==-1&&G==-1)) return []; + Y=makenewv([P,VAR]|var=x); + if(F==-1){ /* (c^2-x^2)^(1/2) */ + Q=subst(P,VT[0],(C01*cos(Y))^(2*PW),X,YX=C01*sin(Y)) + *C01*cos(Y)/C21; + SY=(C21*X+C1);CY=V20;YY=asin(sqrt2rat((C21*X+C1)/C01|mult=1)); + }else if(G==-1){ /* (x^2-c^2)^(1/2) */ + Q=subst(P,VT[0],(C01*sin(Y)/cos(Y))^(2*PW),X,YX=C01/cos(Y)) + *C01*sin(Y)/cos(Y)^2/C21; + SY=V20;CY=1/(C21*X+C1);YY=acos(sqrt2rat(C01*(C21*X+C1)|mult=1)); + }else{ /* (x^2+c^2)^(1/2) */ + Q=subst(P,VT[0],(C01/cos(Y))^(2*PW),X,YX=C01*sin(Y)/cos(Y)) + *C01/cos(Y)^2/C21; + CY=V20; YY=atan(sqrt2rat((C21*X+C1)/C01|mult=1)); + } + if(Dumb==-1) mycat([C21*X+C1,"=",YX]); + else if(type(Dumb)==5) Dumb[0]=cons([[0,Y,C21*X+C1,YX]],Dumb[0]); + Q=sqrt2rat(Q); + QQ=red(substblock(nm(Q),sin(Y),sin(Y)^2,1-cos(Y)^2) + /substblock(dn(Q),sin(Y),sin(Y)^2,1-cos(Y)^2)); + if(cmpsimple(QQ,Q|comp=2)<0) Q=QQ; + QQ=red(substblock(nm(Q),cos(Y),cos(Y)^2,1-sin(Y)^2) + /substblock(dn(Q),cos(Y),cos(Y)^2,1-sin(Y)^2)); + if(cmpsimple(QQ,Q|comp=2)<0) Q=QQ; + if((Q=integrate(Q,Y|dumb=Dumb2,var=cons(X,Var)))==[]) return []; + Q=trig2exp(Q,Y|inv=cos(Y)); + for(V=vars(Q);V!=[];V=cdr(V)){ + FA=funargs(car(V)); + if(type(FA)==4&&FA[0]==log){ + QQ=trig2exp(FA[1],Y|inv=cos(Y)); + Q=mycoef(Q,0,car(V))+mycoef(Q,1,car(V))*log(QQ); + } + } + if(type(Dumb)==5) Dumb[0]=cons([[1,Q]],Dumb[0]); + if(F==-1) Q=subst(Q,sin(Y),SY/C01,cos(Y),CY^(1/2)/C01,Y,YY); + else if(G==-1){ + Q=red(subst(Q,sin(Y),SY^(1/2)*cos(Y)/C01)); + Q=red(subst(Q,cos(Y),C01*CY,Y,YY)); + }else{ + Q=red(subst(Q,sin(Y),(C21*X+C1)*cos(Y)/C01)); + Nm=substblock(nm(Q),cos(Y),C01^2/CY,cos(Y)^2); + Nm=subst(Nm,cos(Y),C01/CY^(1/2)); + Dn=substblock(dn(Q),cos(Y),C01^2/CY,cos(Y)^2); + Dn=subst(Dn,cos(Y),C01/CY^(1/2)); + Q=red(subst(Nm/Dn,Y,YY)); + } + if(findin(Y,vars(Q))>=0) return []; + for(R=[],Var=vars(Q);Var!=[];Var=cdr(Var)){ + VT=funargs(V=car(Var)); + if(type(VT)==4&&VT[0]==log&&ptype(VT[1],X)>60&&mydeg(Q,V)==1) + R=cons([mycoef(Q,1,V),V],R); + } + if(length(R)==2 && (R[0][0]==R[1][0]||R[0][0]+R[1][0]==0)){ + R0=args(R[0][1])[0];R1=args(R[1][1])[0]; + if(R[0][0]==R[1][0]) S=R0*R1; + else S=R1/R0; + Q=mycoef(Q,0,R[0][1]);Q=mycoef(Q,0,R[1][1]); + Q+=R[1][0]*log(red(S)); + } + for(Var=vars(Q);Var!=[];Var=cdr(Var)){ + VT=funargs(car(Var)); + if(type(VT)==4&&VT[0]==log&&ptype(VT[1],X)>60){ + S=trig2exp(VT[1],X|inv=cos(X),arc=1); + if(ptype(dn(S),X)<2 && mydeg(Q,car(Var))==1 + && ptype(mycoef(Q,1,car(Var)),X)<2){ + S=nm(S); + SF=fctr(S); + S/=SF[0][0]; + } + if(cmpsimple(S,-S)>0) S=-S; + Q=subst(Q,car(Var),log(S)); + } + } /* x/(1-x^2)^(1/2) */ + if(type(Q=red(Q+RR))==2&&type(Dumb)!=5) Q-=cterm(Q); + if(Dumb==-1) mycat(["->",Q]); + else if(type(Dumb)==5) Dumb[0]=cons([[1,Q]],Dumb[0]); + return Q; + } + }else if(D==1 && mydeg(Dn=dn(V2),X)<2 && type(PW)==1 && ntype(PW)==0 && + (V2!=X||ptype(mycoef(P,1,VT[0]),X)>2)){ /* p(x)((ax+b)/(cx+d))^(m/n) */ + PN=nm(PW);PD=dn(PW); + Y=makenewv([P,VAR]|var=x);Q=Y^PD*Dn-nm(V2);F=-mycoef(Q,0,X)/mycoef(Q,1,X); + Q=red(subst(P,VT[0],Y^PN,X,F)*diff(F,Y)); + if(Dumb==-1) mycat([Y,"=",V2^(1/PD)]); + else if(type(Dumb)==5) Dumb[0]=cons([[0,Y,V2^(1/PD)]],Dumb[0]); + if((Q=integrate(Q,Y|dumb=Dumb3,var=cons(X,Var)))==[]) return []; + Q=red(Q); + QN=subst(substblock(nm(Q),Y,Y^PD,V2),Y,V2^(1/PD)); + QD=subst(substblock(dn(Q),Y,Y^PD,V2),Y,V2^(1/PD)); + Q=red(QN/QD+RR); + if(Dumb==-1) mycat(["->",Q]); + else if(type(Dumb)==5) Dumb[0]=cons([[1,Q]],Dumb[0]); + return Q; + } + }else if(length(Var)==2 && /* r(x,(ax+b)^(1/2),(cx+d)^(1/2)) */ + (VT=car(Var))[1]==pow && ptype(VT[2],X)==1 && mydeg(VT[2],X)==1 && VT[3]==1/2 && + (VS=car(car(Var)))[1]==pow && ptype(VS[2],X)==1 && mydeg(VS[2],X)==1 && VS[3]==1/2){ + Y=makenewv([P,VAR]|var=x);R=(Y^2-myceof(VS[0],0,X))/(C=mycoef(VS[0],1,X)); + if(Dumb==-1) mycat([Y,"=",VS[0]]); + else if(type(Dumb)==5) Dumb[0]=cons([[0,Y,VD[0]]],Dumb[0]); + R=integrate(subst(P,VS[0],Y,X,R)*2*Y/C,Y|dumb=Dumb3,var=cons(X,Var)); + if(R!=[]){ + R=subst(substblock(R,Y,VS[0],Y^2),Y,VS[0]); + if(Dumb==-1) mycat(["->",R]); + else if(type(Dumb)==5) Dumb[0]=cons([[1,R]],Dumb[0]); + } + return R; + } + if(T==65||T==66){ /* polynomial including sin, exp etc */ + for(F=0,VT=Var;VT!=[];VT=cdr(VT)){ + VTT=car(VT); + if(ptype(VTT[2],X)>2||mydeg(VTT[2],X)>1) F=ior(F,256); /* compos. or rat. or nonlin. */ + K=findin(VTT[1],[cos,sin,tan,exp,log,pow]); + F=ior(F,2^(K+1)); /* 1:other,2:cos,4:sin,8:tan,16:exp,32:log,64:pow */ + if((Deg=mydeg(P,VTT[0]))>1&&K!=4) F=ior(F,1024); /* nonlinear */ + if(K==5 && (ptype(VTT[3],X)!=0 || VTT[2]!=x||Deg>1)) F=ior(F,8192); /* pow */ + for(;Deg>0;Deg--){ /* coef */ + if(ptype(mycoef(P,Deg,VTT[0]),X)>2){ + if(K==4||K==5) F=ior(F,2048); /* exp, log */ + else F=ior(F,4096); + } + } + } + if(!iand(F,1+8+64+256+512+2048+8192)){ /* cos,sin,exp,log^n,x^c */ + if(iand(F,1024+4096)&&!iand(F,32+64)){ /* cos,sin,exp */ + if(type(Dumb)==5){ + S=trig2exp(P,X|inv=1); + if(P!=S) Dumb[0]=cons([[X,S]],Dumb[0]); + } + R=integrate(trig2exp(P,X),X); + if(R!=[]) S=trig2exp(R,X|inv=1); + R=fshorter(S,X); + if(type(Dumb)==5&&R!=S){ + Dumb[0]=cons([[1,S]],Dumb[0]); + } + return R; + } + for(R=0,VT=Var;VT!=[];VT=cdr(VT)){ + CV=car(VT); + C0=mycoef(CV[2],0,X);C1=mycoef(CV[2],1,X); + Q=mycoef(P,1,CV[0]); + if(CV[1]==sin||CV[1]==cos){ + TR=(CV[1]==sin)?intpoly(Q,X|sin=C1):intpoly(Q,X|cos=C1); + R+=TR[0]*cos(CV[2])+TR[1]*sin(CV[2]); + }else if(CV[1]==exp){ + QT=exp(CV[2]); + for(V2=vars(C1);V2!=[];V2=cdr(V2)){ /* exp(2*log(a)*x) => a^(2*x) */ + if(vtype(VA=car(V2))==2&&functor(VA)==log){ + if(ptype(C1,VA)!=2||mydeg(C1,VA)==1&&mycoef(C1,0,VA)==0){ + QT=args(VA)[0]^(red(C1/VA)*X); + if(C0!=0) QT*=exp(C0); + break; + } + } + } + R+=intpoly(Q,X|exp=C1)*QT; + }else if(CV[1]==pow) + R+=intpoly(Q,X|pow=CV[2])*x^CV[2]; + else if(CV[1]==log){ + for(Deg=mydeg(P,CV[0]);Deg>0; Deg--){ + Q=mycoef(P,Deg,CV[0]); + TR=intpoly(Q,X|log=[C1,C0,Deg]); + for(I=0;TR!=[];I++,TR=cdr(TR)){ + if(I==Deg) R+=car(TR)-subst(car(TR),X,0); + else R+=car(TR)*CV[0]^(Deg-I); + } + } + } + P=mycoef(P,0,CV[0]); + } + R+=intpoly(P,X); + return R; + } + } + for(K=0,VX=[],VT=Var;VT!=[];VT=cdr(VT)){ /* contain only both pow and trig */ + VTT=car(VT); + if(findin(VTT[1],[cos,sin,tan])>=0){ + if(ptype(VTT[2],X)!=2||mydeg(VTT[2],X)!=1) break; + VX=cons(VTT,VX); + }else if(VTT[1]==pow) K=1; + else break; + } + if(VT==[]&&K==1&&VX!=[]){ + D=VX[0][2]; + if(VX[0][1]==tan) D*=2; + for(VT=cdr(VX);VT!=[];VT=cdr(VT)){ + K=VT[0][2]/D; + if(VT[0][1]==tan) K*=2; + if(type(K)!=1||ntype(K)!=0) break; + D/=dn(K); + } + if(VT==[]){ + Y=makenewv([P,VAR]|var=x); + for(Q=P,VT=VX;VT!=[];VT=cdr(VT)){ + VTT=car(VT); + if(VTT[1]==cos||VTT[1]==sin){ + VV=trig2exp(VTT[0],X|inv=cos(D)); + VV=subst(VV,cos(D),(1-Y^2)/(1+Y^2),sin(D),2*Y/(Y^2+1)); + }else if(VTT[1]==tan){ + VV=trig2exp(VTT[0],X|inv=tan(D/2)); + VV=subst(VV,tan(D),Y); + } + Q=subst(Q,VTT[0],VV); + } + Q*=2/(Y^2+1); + if(diff(Q,X)==0){ + if(Dumb==-1) mycat([Y,"=",tan(D/2)]); + else if(type(Dumb)==5) Dumb[0]=cons([[0,Y,tan(D/2)]],Dumb[0]); + R=integrate(Q,Y|dumb=Dumb2,var=cons(X,Var)); + if(R!=[]){ + if(Dumb==-1) mycat(["->",R]); + else if(type(Dumb)==5) Dumb[0]=cons([[1,R]],Dumb[0]); + return sqrt2rat(subst(R,Y,tan(D/2))|mult=1); + } + } + } + } + if(T>65||iand(F,8)){ /* rational for functions or tan */ + if(findin(X,vars(P))<0){ + for(XV=XE=0,VT=Var;VT!=[];VT=cdr(VT)){ + VTT=car(VT); + if(mydeg(VTT[2],X)!=1) break; + if(VTT[1]==cos||VTT[1]==sin||VTT[1]==tan){ + K=red(VTT[2]/X); + if(type(K)>1||ntype(K)>0) break; + if(XV==0) XV=K; + else XV/=dn(K/XV); + if(VTT[1]==tan) P=red(subst(P,VTT[0],sin(VTT[2])/cos(VTT[2]))); + }else if(VTT[1]==exp){ + K=red(VTT[2]/X); + if(type(K)>1||ntype(K)>0) break; + if(XE==0) XE=K; + else XE/=dn(K/XE); + }else break; + } + if(VT==[]&&XE*XV==0){ + if(XE){ + if(XE<0) XE=-XE; + Y=makenewv([P,VAR]|var=x); + for(F=0,VT=Var;VT!=[];VT=cdr(VT),F++){ + VTT=car(VT);C=red(VTT[2]/X/XE); + P=subst(P,VTT[0],Y^C); + if(!F){ + if(Dumb==-1) mycat([Y^C,"=",VTT[0]]); + else if(type(Dumb)==5) Dumb[0]=cons([[0,Y^C,VTT[0]]],Dumb[0]); + } + } + P/=XE*Y; + Q=integrate(P,Y|dumb=Dumb3,var=cons(X,VAR)); + if(Q==[]) return []; + Q=subst(Q,Y,exp(XE*X)); + Q=trig2exp(Q,X); + if(Dumb==-1) mycat(["->",Q]); + else if(type(Dumb)==5) Dumb[0]=cons([[1,Q]],Dumb[0]); + return Q; + } + P=trig2exp(nm(P),X|inv=cos(XV*X))/trig2exp(dn(P),X|inv=cos(XV*X)); + Y=makenewv([P,VAR]|var=x); + Q=red(subst(P,sin(XV*X),Y*cos(XV*X))); + Q=substblock(nm(Q),cos(XV*X),cos(XV*X)^2,1/(Y^2+1))/ + (substblock(dn(Q),cos(XV*X),cos(XV*X)^2,1/(Y^2+1))*(Y^2+1)); + Q=red(Q); + if(ptype(Q,X)<2){ + XV*=2;P=Q; + }else{ + P=subst(P,cos(XV*X),(1-Y^2)/(1+Y^2),sin(XV*X),2*Y/(1+Y^2))*2/K/(1+Y^2); + P=red(P); + } + if(Dumb==-1){ + mycat([Y,"=",tan(XV*X/2)]); + mycat(["integrate",P]); + }else if(type(Dumb)==5) Dumb[0]=cons([[Y,P]],cons([[0,Y,tan(XV*X/2)]],Dumb[0])); + R=intpoly(P,Y|dumb=Dumb); + if(R==[]) return R; + if(Dumb==-1) mycat(["->",R]); + else if(type(Dumb)==5) Dumb[0]=cons([[1,R]],Dumb[0]); + for(Log=1,K=0,Var=pfargs(RR=R,Y);Var!=[];Var=cdr(Var)){ + VTT=car(Var); + if(VTT[1]==log){ + C=mycoef(R,1,VTT[0]); + VT2=VTT[2]; + if(K==0){ + K=C;Log=VT2; + if(K<0){ + K=-K;Log=1/Log; + } + }else{ + if((V=red(C/K))<0){ + VT2=1/VT2;V=-V; + } + if(type(V)>1||ntype(V)>0){ + Log=1;break; + } + if(isint(V)) Log*=VT2^V; + else{ + D=dn(V);K/=D; + Log=Log^D*VT2^nm(V); + } + } + RR=mycoef(RR,0,VTT[0]); + } + } + if(Log!=1){ + R=RR; + if(type(Dumb)==5){ + if(RR) Dumb[0]=cons([[1,K*log(Log),RR]],Dumb[0]); + else Dumb[0]=cons([[1,K*log(Log)]],Dumb[0]); + } + Log=red(subst(red(Log),Y,sin(XV*X/2)/cos(XV*X/2))); + Log=fshorter(Log,X|log=1); /* log(cos(2*x)+1)=-2*log(cos(x)) */ + Nm=fctr(nm(Log)); + for(T=[];Nm!=[];Nm=cdr(Nm)){ + if(ptype(car(Nm)[0],X)>1) T=cons(car(Nm),T); + } + Nm=fctr(dn(Log)); + for(;Nm!=[];Nm=cdr(Nm)){ + if(ptype(car(Nm)[0],X)>1) T=cons([car(Nm)[0],-car(Nm)[1]],T); + } + for(I=0,Nm=T;T!=[];T=cdr(T)){ + if(I=0) I=abs(car(T)[1]); + else I=igcd(I,car(T)[1]); + } + for(Log=1;Nm!=[];Nm=cdr(Nm)) Log*=car(Nm)[0]^(car(Nm)[1]/I); + K*=I; + if(cmpsimple(nm(Log),dn(Log))<0){ + K=-K;Log=red(1/Log); + } + Log=K*log(Log); + if(type(Dumb)==5){ + if(RR) Dumb[0]=cons([[1,Log,RR]],Dumb[0]); + else Dumb[0]=cons([[1,Log]],Dumb[0]); + } + }else Log=0; + for(Atan=0,Var=pfargs(RR=R,Y);Var!=[];Var=cdr(Var)){ + VTT=car(Var); + if(VTT[1]==atan){ + W=subst(VTT[2],Y,sin(XV*X/2)/cos(XV*X/2)); + W=trig2exp(W,X|inv=1); + V2=funargs(dn(W)); + if(type(V2)==4&&length(V2)==2){ + V3=V2[1]*mycoef(R,1,VTT[0]); + Z=0; + if(V2[0]==cos) + Z=red(W*cos(V2[1])/sin(V2[1])); + else if(V2[0]==sin){ + Z=red(W*sin(V2[1])/cos(V2[1])); + V3=-V3; + } + if(Z==1){ + Atan+=V3;W=0; + }else if(Z==-1){ + Atan-=V3;W=0; + } + } + R0=mycoef(R,0,VTT[0]); + if(W!=0) Atan+=subst(R-R0,VTT[0],atan(W)); /* atan(W); */ + R=R0; + } + } + if(R!=0){ + R=subst(R,Y,sin(XV*X/2)/cos(XV*X/2)); + R=red(R); + R=trig2exp(nm(R),X|inv=1)/trig2exp(dn(R),X|inv=1); + } + if(type(Dumb)==5){ + F=0;WL=[]; + if(R){ + WL=cons(R,WL); + F++; + } + if(Atan){ + WL=cons(Atan,WL); + F++; + } + if(Log){ + WL=cons(Log,WL); + F++; + } + WL=cons(1,WL); + if(F>1) Dumb[0]=cons([WL],Dumb[0]); + } + R=red(R+Log+Atan); + if(Dumb==-1) mycat(["->",R]); + else if(type(Dumb)==5) Dumb[0]=cons([[1,R]],Dumb[0]); + return fshorter(R,X); + } + } + } + VT=pfargs(Q=P,X|level=1); + V=(iand(ptype(P,X),7)<3)?[X]:[]; + for(;VT!=[];VT=cdr(VT)) + if(ptype(P,car(VT)[0])<3) V=cons(car(VT)[0],V); + if(length(V)>0){ /* 1/x+tan(x)+... etc.: sums */ + for(R=0;V!=[];V=cdr(V)){ + T=mycoef(Q,0,car(V)); + W[0]=[]; + S=integrate(TD=red(Q-T),X|dumb=D2,mult=Mul,exe=1); + if(S==[]) continue; + if(type(Dumb)==5){ + WL=0; + if(T!=0) WL=[[X,TD,T]]; + if(R!=0) WL=cons([1,R],WL); + if(WL) Dumb[0]=cons(WL,Dumb[0]); + TD=W[0]; + if(R!=0||T!=0){ + for(W0=[],TD=reverse(TD);TD!=[];TD=cdr(TD)){ + if(car(TD)[0][0]){ + WL=(!T)?[]:[[X,T]]; + WL=append(car(TD),WL); + if(R!=0) WL=cons([1,R],WL); + }else WL=car(TD); + Dumb[0]=cons(WL,Dumb[0]); + } + }else Dumb[0]=append(TD,Dumb[0]); + } + R+=S;Q=T; + if(!Q) return red(R); + } + W[0]=[]; + if(P!=Q&&type(S=integrate(Q,X|dumb=D2,mult=Mul))<4){ + RR=red(R+S); + if(type(Dumb)==5){ + TD=W[0]; + for(W0=[],TD=reverse(TD);TD!=[];TD=cdr(TD)){ + if(car(TD)[0][0]){ + WL=cons([1,R],car(TD)); + Dumb[0]=cons(WL,Dumb[0]); + } + else Dumb[0]=append(TD,Dumb[0]); + } + if(nmono(R)+nmono(S)!=nmono(RR)) Dumb[0]=cons([[1,R,S]],Dumb[0]); + } + return RR; + } + } + if(Dumb!=1) mycat(SM); + return []; +} + +def fimag(P) +{ + for(V=vars(P);V!=[];V=cdr(V)){ + Q=[]; + if(vtype(VF=car(V))==2){ + VAA=args(VF); + if(VAA==[]) continue; + VA=sqrt2rat(VAA[0]); + if(functor(VF)==exp){ + if(imag(VA)!=0){ + R=(real(VA)!=0)?exp(real(VA)):1; + Q=subst(P,VF,R*(cos(imag(VA))+sin(imag(VA))*@i)); + } + }else if(functor(VF)==pow){ + VA=sqrt2rat(VAA[1]); + if(imag(VA)!=0){ + R=(real(VA)!=0)?VAA[0]^(real(VA)):1; + L=(VAA[0]!=@e)?log(VAA[0]):1; + Q=subst(P,VAA[0]^(VAA[1]),R*(cos(L*imag(VA))+sin(L*imag(VA))*@i)); + }else if(VAA[1]!=(V0=fimag(VA))) + Q=subst(P,VAA[0]^(VAA[1]),VAA[0]^(V0)); + } + V0=VA; + if(length(VAA)==1&&(VAA[0]!=V0||VA!=(V0=fimag(VA)))) + Q=subst(P,VF,subst(VF,VAA[0],V0)); + } + if(Q!=[]&&P!=Q){ + P=Q;V=cons(0,vars(P)); + } + } + return P; +} + + +def trig2exp(P,X) +{ + if(iand(ptype(P,X),128)){ + OL=getopt(); + Nm=trig2exp(nm(P),X|option_list=OL); + Dn=trig2exp(dn(P),X|option_list=OL); + R=red(Nm/Dn); + if(getopt(arc)==1) return sqrt2rat(R); + } + if((Inv=getopt(inv))==1||type(Inv)==2){ + for(VT=T=vars(P);T!=[];T=cdr(T)){ + if(findin(functor(car(T)),[cos,sin,tan])>=0){ + P=trig2exp(P,X);VT=vars(P);break; + } + } + for(;VT!=[];VT=cdr(VT)){ + if(functor(CT=car(VT))==exp){ + if((Re=real(args(CT)[0]))!=0){ + if(isint(Re)) S=@e^Re; + else S=exp(Re); + }else S=1; + if((Im=imag(args(CT)[0]))!=0){ + Q=nm(Im);Q=mycoef(Q,mydeg(Q,X),X); + if(-Q>Q) S*=cos(-Im)-@i*sin(-Im); + else S*=cos(Im)+@i*sin(Im); + } + P=subst(P,CT,S); + } + } + P=red(P); + U=vars(Inv); + if(length(U)!=1||((F=functor(car(U)))!=sin&&F!=cos&&F!=tan)) return P; + XX=args(car(U))[0]; + if(mydeg(XX,X)!=1) return P; + if(!isvar(XX)) P=subst(P,X,(X-mycoef(XX,0,X))/mycoef(XX,1,X)); + for(VT=vars(P);VT!=[];VT=cdr(VT)){ + if(vtype(CT=car(VT))<2) continue; + TX=args(CT)[0]; + if(mydeg(TX,X)!=1) continue; + if(!isint(C1=mycoef(TX,1,X))) continue; + if((C0=mycoef(TX,0,X))==0){ + CC=1;CS=0; + }else if(vars(C0)==[@pi]){ + CC=myval(cos(C0)); + if(CC!=0&&type(CC)==1&&ntype(CC)!=0){ + CC=cos(C0);CS=sin(C0); + }else CS=myval(sin(C0)); + }else{ + CC=cos(C0);CS=sin(C0); + } + K=C1; + if(K<0) K=-K; + for(CC1=0,I=K;I>=0;I-=2) CC1+=(-1)^((K-I)/2)*binom(K,I)*cos(X)^I*sin(X)^(K-I); + for(CS1=0,I=K-1;I>=0;I-=2) CS1+=(-1)^((K-I-1)/2)*binom(K,I)*cos(X)^I*sin(X)^(K-I); + if(C1<0) CS1=-CS1; + if((TF=functor(CT))==cos) P=subst(P,cos(TX),CC1*CC-CS1*CS); + else if(TF==sin) P=subst(P,sin(TX),CS1*CC+CC1*CS); + } + if(F==sin) + P=substblock(P,cos(X),cos(X)^2,1-sin(X)^2); + else{ + P=substblock(P,sin(X),sin(X)^2,1-cos(X)^2); + if(F==tan){ + P=subst(P,sin(X),cos(X)*tan(X)); + P=substblock(P,cos(X),cos(X)^2,1/(tan(X)^2+1)); + } + } + if(!isvar(XX)) P=subst(P,X,XX); + + if(getopt(arc)==1){ + for(VT=vars(P);VT!=[];VT=cdr(VT)){ + FA=funargs(car(VT)); + if(type(FA)==4&&(FA[0]==cos||FA[0]==sin)&&ptype(FA[1],X)>60){ + VTT=vars(FA[1]); + if(type(FA[1])!=2||length(VTT)!=1) break; + FB=funargs(VTT[0]); + if(type(FB)!=4||(FF=findin(FB[0],[asin,acos,atan]))<0) break; + if(!isint(2*(C=mycoef(FA[1],1,VTT[0])))||mycoef(FA[1],0,VTT[0])!=0) break; + if(C==1/2){ + if(FF==1){ + U=(FA[0]==cos)?(1+FB[1])/2:(1-FB[1])/2; + P=subst(P,car(VT),red(U)^(1/2)); + }else if(FF==2){ + if(FA[0]==sin){ + FB1=red(FB[1]); + Nm=nm(FB1);CC=fctr(Nm)[0][0];Dn=dn(FB1); + if(CC<0) CC=-CC; + Nm/=CC;Dn/=CC; + NN=Nm^2+Dn^2; + P=subst(P,car(VT),((NN)^(1/2)-Dn)/Nm*cos(FA[1])); + } + } + P=red(P); + }else if(C==1){ + if(FF==1){ + if(FA[0]==cos) P=subst(P,car(VT),FB[1]); + else P=subst(P,car(VT),(1-FB[1])^(1/2)); + }else if(FF==0){ + if(FA[0]==sin) P=subst(P,car(VT),FB[1]); + else P=subst(P,car(VT),(1-FB[1])^(1/2)); + } + P=red(P); + } + } + } + P=sqrt2rat(P); + } + return red(P); + } + Var=pfargs(P,X); + for(VT=Var;VT!=[];VT=cdr(VT)){ + CT=car(VT); + if(CT[1]==cos) + P=subst(P,CT[0],exp(CT[2]*@i)/2+exp(-CT[2]*@i)/2); + else if(CT[1]==sin) + P=subst(P,CT[0],exp(-CT[2]*@i)*@i/2-exp(CT[2]*@i)*@i/2); + else if (CT[1]==tan) + P=subst(P,CT[0],(exp(-CT[2]*@i)*@i-exp(CT[2]*@i)*@i)/(exp(CT[2]*@i)+exp(-CT[2]*@i))); + else if(CT[1]==pow){ + if(ptype(CT[2],X)>1) continue; + if(CT[2]==@e) P=subst(P,CT[0],exp(CT[3])); + else P=subst(P,CT[0],exp(log(CT[2])*exp(CT[3]))); + } + } + P=red(P); + for(PP=1,Lp=(dn(P)==1)?1:0;Lp<2;Lp++){ + PP=1/PP; + U=(Lp==0)?dn(P):nm(P); + if(U==1) continue; + Var=vars(U); + for(R=[],VT=Var;VT!=[];VT=cdr(VT)) + if(functor(car(VT))==exp) R=cons(car(VT),R); + RR=os_md.terms(U,R); + for(Q=0,RRT=RR;RRT!=[];RRT=cdr(RRT)){ + for(S=0,CT=cdr(car(RRT)),CR=R,UT=U;CR!=[];CR=cdr(CR),CT=cdr(CT)){ + UT=mycoef(UT,car(CT),car(CR));S+=car(CT)*args(car(CR))[0]; + } + if(S==0) Q+=UT; + else Q+=UT*exp(S); + } + PP*=Q; + } + return PP; +} + +def powsum(N) +{ + if (N < 0) return 0; + if (N == 0) return x; + P = intpoly(N*powsum(N-1),x); + C = subst(P,x,1); + return P+(1-C)*x; +} + +def bernoulli(N) +{ + return mydiff(powsum(N),x) - N*x^(N-1); +} + +/* linfrac01([x,y]) */ +/* linfrac01(newvect(10,[0,1,2,3,4,5,6,7,8,9]) */ +/* 0:x=0, 1:x=y, 2:x=1, 3:y=0, 4:y=1, 5:x=\infty, 6:y=\infty, 7:x=y=0, 8:x=y=1, 9:x=y=\infty + 10:y_2=0, 11:y_2=x, 12:y_2=y, 13: y_2=1, 14: y_2=\infty + 15:y_3=0, 16:y_3=x, 17:y_3=y, 18: y_3=y_2, 19: y_3=1, 20:y_3=\infty + X[0],X[11],X[2],X[10],X[13],X[5],X[14],X[7],X[8],X[9], + X[3],X[1],X[12],X[4],X[6] + + T=0 (x_2,x_1,x_3,x_4,...) + T=-j (x_1,x_2,..,x_{j-1},x_{j+1},x_j,x_{j+2},...) + T=1 (1-x_1,1-x_2,1-x_3,1-x_4,...) + T=2 (1/x_1,1/x_2,1/x_3,1/x_4,...) + T=3 (x_1,x_1/x_2,x_1/x_3,x_1/x_4,...) +*/ + +def lft01(X,T) +{ + MX=getopt(); + if(type(X)==4){ + K=length(X); + if(K>=1) D=1; + } + if(type(X)==5){ + K=length(X); + for(J=5, F=K-10; F>0; F-=J++); + if(F==0) D=2; + } + if(D==0) return 0; + if(T==0){ /* x <-> y */ + if(D==1){ + R=cdr(X); R=cdr(R); + R=cons(X[0],R); + return cons(X[1],R); + } + R=newvect(K,[X[3],X[1],X[4],X[0],X[2],X[6],X[5]]); + for(I=7;I<K;I++) R[I]=X[I]; + for(I=11,J=5; I<K; I+=J++){ + R[I]=X[I+1]; R[I+1]=X[I]; + } + return R; + } + if(T==1){ + if(D==1){ + for(R=[];X!=[];X=cdr(X)) R=cons(1-car(X),R); + return reverse(R); + } + R=newvect(K,[X[2],X[1],X[0],X[4],X[3],X[5],X[6],X[8],X[7],X[9]]); + for(I=11;I<K;I++) R[I]=X[I]; + for(I=10, J=5; I<K; I+=J++){ + R[I]=X[I+J-2]; R[I+J-2]=X[I]; + } + return R; + } + if(T==2){ + if(D==1){ + for(R=[]; X!=[]; X=cdr(X)) R=cons(red(1/car(X)),R); + return reverse(R); + } + R=newvect(K,[X[5],X[1],X[2],X[6],X[4],X[0],X[3],X[9],X[8],X[7]]); + for(I=11;I<K;I++) R[I]=X[I]; + for(I=10,J=5; I<K; I+=J++){ + R[I]=X[I+J-1]; R[I+J-1]=X[I]; + } + return R; + } + if(T==3){ + if(D==1){ + T=car(X); + for(R=[T],X=cdr(X); X!=[]; X=cdr(X)) + R=cons(red(T/car(X)),R); + return reverse(R); + } + R=newvect(K,[X[7],X[4],X[2],X[6],X[1],X[9],X[3],X[0],X[8],X[5]]); + for(I=10,J=5; I<K; I+=J++){ + R[I]=X[I+J-1]; R[I+1]=X[I+J-2]; R[I+J-2]=X[I+1]; R[I+J-1]=X[I]; + } + return R; + } + if(T==-1){ + if(D==1){ + return append([X[1],X[2],X[0]],cdr(cdr(cdr(X)))); + } + R=newvect(K,[X[0],X[11],X[2],X[10],X[13],X[5],X[14],X[7],X[8],X[9], + X[3],X[1],X[12],X[4],X[6]]); + for(I=11;I<K;I++) R[I]=X[I]; + for(I=17,J=5; I<K; I+=J++){ + R[I]=X[I+1]; R[I+1]=X[I]; + } + return R; + } + if(T<0){ + if(D==1){ + for(R=[],I=0; X!=[]; X=cdr(X),I--){ + if(I==T){ + R=cons(X[1],R); + R=cons(X[0],R); + X=cdr(X); + } + else R=cons(car(X),R); + } + return reverse(R); + } + T=3-T; + R=newvect(K); + for(I=0;I<K;I++) R[I]=X[I]; + for(I=10,J=5;J<T;I+=J++); + for(II=0; II<J-2; II++){ + R[I]=X[I+J]; R[I+J]=R[I]; + } + for( ; II<J; II++){ + R[I]=X[I+J+1]; R[I+J+1]=X[I]; + } + return R; + } + return 0; +} + +def linfrac01(X) +{ + if(type(X)==4) K=length(X)-2; + else if(type(X)==5){ + L=length(X); + for(K=0,I=10,J=5; I<L; K++,I+=J++); + if(I!=L) return 0; + } + if(K>3 && getopt(over)!=1) return(-1); + II=(K==-1)?3:4; + for(CC=C=1,L=[X]; C!=0; CC+=C){ + for(F=C,C=0,R=L; F>0; R=cdr(R), F--){ + P=car(R); + for(I=-K; I<II; I++){ + S=lft01(P,I); + if(findin(S,L) < 0){ + C++; L=cons(S,L); + } + } + } + } + return L; +} + + +def varargs(P) +{ + if((All=getopt(all))!=1) All=0; + V=vars(P); + for(Arg=FC=[];V!=[];V=cdr(V)){ + if(vtype(CV=car(V))==0&&All==1){ + Arg=lsort([CV],Arg,0); + } + if(vtype(CV)!=2) continue; + if(findin(F=functor(CV),FC)<0) FC=cons(F,FC); + for(AT=vars(args(CV));AT!=[];AT=cdr(AT)){ + if(vtype(X=car(AT))<2){ + if(findin(X,Arg)<0) Arg=cons(X,Arg); + }else if(vtype(X)==2){ + R=varargs(X); + if(R[1]!=[]){ + Arg=lsort(R[1],Arg,0); + FC=lsort(R[0],FC,0); + } + } + } + } + return [FC,Arg]; +} + +def pfargs(P,X) +{ + if(type(L=getopt(level))!=1) L=0; + for(Var=[],V=vars(P);V!=[];V=cdr(V)){ + if(vtype(car(V))==2){ + VT=funargs(car(V)); + if(length(VT)>1){ + if(L<2 &&(ptype(VT[1],X)>1 || (length(VT)>2 && ptype(VT[2],X)>1))) + Var=cons(cons(car(V),VT),Var); + if(L!=1 && (R=pfargs(VT[1],X|level=L-1))!=[]) Var=append(R,Var); + } + } + } + return reverse(Var); +} + +def ptype(P,L) +{ + if((T=type(P))<2 || T>3) return T; + if(type(L)!=4) L=[L]; + F=0; + if(lsort(L,varargs(dn(P))[1],2)!=[]) F=128; + if(lsort(L,varargs(nm(P))[1],2)!=[]) F+=64; + if(lsort(L,vars(dn(P)),2)!=[]) return F+3; + return (lsort(L,vars(nm(P)),2)==[])?(F+1):(F+2); +} + +def nthmodp(X,N,P) +{ + X=X%P; + for(Z=1;;){ + if((W=iand(N,1))==1) Z=(Z*X)%P; + if((N=(N-W)/2)<=0) return Z; + X=irem(X*X,P); + } +} + +def issquaremodp(X,P) +{ + N=getopt(power); + if(!isint(N)) N=2; + if(P<=1 || !isint(P) || !pari(ispsp,P) || !isint(X) || !isint(N) || N<1){ + errno(0); + return -2; + } + M=(P-1)/igcd(N,P-1); + if((X%=P) == 0) return 0; + if(X==1 || M==P-1) return 1; + return (nthmodp(X,M,P)==1)?1:-1; +} + +def iscoef(P,F) +{ + if(P==0) return 1; + if(type(P)==1) return F(P); + if(type(P)==2) { + X=var(P); + for(I=deg(P,X); I>=0; I--){ + if(!iscoef(mycoef(P,I,X),F)) return 0; + } + }else if(type(P)==3){ + if(!iscoef(nm(P),F)||!iscoef(dn(P),F)) return 0; + }else if(type(P)==4){ + for(;P!=[];P=cdr(P)) if(!iscoef(P,F)) return 0; + }else if(type(P)>4 && type(P)<7) return iscoef(m2l(PP),F); + else return 0; + return 1; +} + +def rootmodp(X,P) +{ + X%=P; + if(X==0) return [0]; + N=getopt(power); + PP=pari(factor,P); + P0=PP[0][0]; P1=PP[0][1]; + P2=pari(phi,P); + if(!isint(N)) N=2; + N%=P2; + if(P0==2 || size(PP)[0]>1){ + for(I=1,R=[]; I<P2; I++) + if(nthmodp(I,N,P)==X) R=cons(I,R); + return qsort(R); + } + Y=primroot(P); + if(Y==0) return 0; + Z=nthmodp(Y,N,P); + G=igcd(N,P2); + P3=P2/G; + for(I=0, W=1; I<P3;I++){ + if(W==X) break; + W=(W*Z)%P; + } + if(I==P3) return []; + W=nthmodp(Y,I,P); + Z=nthmodp(Y,P3,P); + for(I=0,R=[];;){ + R=cons(W,R); + if(++I>=G) break; + W=(W*Z)%P; + } + return qsort(R); +} + +def primroot(P) +{ + PP=pari(factor,P); + P0=PP[0][0]; P1=PP[0][1]; + S=size(PP); + if(S[0]>1 || !isint(P) || P0<=2){ + print("Not odd prime(power)!"); + return 0; + } + if(isint(Ind=getopt(ind))){ + Ind %= P; + if(Ind<=0 || igcd(Ind,P)!=1 || (Z=primroot(P))==0){ + print("Not exist!"); + return 0; + } + P2=P0^(P1-1)*(P0-1); + for(I=1,S=1; I<P2; I++) + if((S = (S*Z)%P) == Ind) return I; + return 0; + } + if(getopt(all)==1){ + I=primroot(P); + P2=P0^(P1-1)*(P0-1); + for(L=[],J=1; J<P2; J++){ + if(P1>1 && igcd(P0,J)!=1) continue; + if(igcd(P0-1,J)!=1) continue; + L=cons(nthmodp(I,J,P),L); + } + return qsort(L); + } + if(PP[0][1]>1){ + I=primroot(P0); + P2=P0^(P1-2)*(P0-1); + if(nthmodp(I,P2,P)==1) I+=P0; + return I; + } + F=pari(factor,P-1); + SF=size(F)[0]; + for(I=2; I<P; I++){ + for(J=0; J<SF; J++) + if(nthmodp(I,(P-1)/F[J][0],P)==1) break; + if(J==SF) return I; + } +} + +def rabin(P,X) +{ + for(M=0,Q=P-1;iand(Q,1)==0;M++,Q/=2); + Z=nthmodp(X,Q,P); + for(N=M;M>0&&Z!=1&&Z!=P-1;M--,Z=(Z*Z)%P); + return (M<N&&(M==0||Z==1))?0:1; +} + +def powprimroot(P,N) +{ + if(P<3) P=3; + FE=getopt(exp); + if(FE!=1) FE=0; + if((Log=getopt(log))==1||Log==2) FE=-1; + else if(Log==3){ + FE=-2; + for(PP=1, L0=["$r$","$p/a$"];;){ + PP=pari(nextprime,PP+1); + if(PP>=P) break; + L0=cons(PP, L0); + } + L0=reverse(L0); + } + if(FE==0) All=getopt(all); + for(I=0, PP=P, LL=[]; I<N; I++,PP++){ + PP=pari(nextprime,PP); + if(All==1){ + PR=primroot(PP|all=1); + LL=cons(cons(PP,PR),LL); + continue; + } + PR=primroot(PP); + if(FE==-2){ /* log=3 */ + LT=cdr(L0);LT=cdr(L0); + for(L=[PP];LT!=[];LT=cdr(LT)) + L=cons(primroot(PP|ind=car(LT)),L); + LL=cons(reverse(L),LL); + if(I<N-1) L0=append(L0,[PP]); + }else if(FE){ + for(J=1, L=[PP], K=1; J<PP; J++){ + if(FE==-1){ /* log=1,2 */ + K=primroot(PP|ind=J); + if(K==0 && Log==2) K=PP-1; + } + else K=(K*PR)%PP; /* exp=1 */ + L=cons(K,L); + } + LL=cons(reverse(L),LL); + }else + LL=cons([PP,PR],LL); /* default */ + } + LL=reverse(LL); + if(!FE) return LL; + PP--; + if(FE==-2) return append(LL,[L0]); + for(I=1,L=["$p$"];I<PP; I++) L=cons(I,L); + return cons(reverse(L),LL); +} + +def ntable(F,II,D) +{ + F=f2df(F|opt=-1); + Df=getopt(dif); + Str=getopt(str); + if(Df!=1) Df=0; + L=[]; + if(type(D)==4){ + if(type(II[0])==4){ + T1=II[0][1]-II[0][0];T2=II[1][1]-II[1][0]; + for(L0=[],I=0;I<D[0];I++){ + for(R=[],J=0;J<D[1];J++) + R=cons(myf2eval(F,II[0][0]+I*T1/D[0],II[1][0]+J*T2/D[1]),R); + L=cons(reverse(R),L);L0=cons(II[0][0]+I*T1/D[0],L0); + } + }else{ + for(T=II[1]-II[0],L0=[],I=0;I<D[0];I++){ + for(R=[],J=0;J<D[1];J++) + R=cons(myfdeval(F,II[0]+I*T/D[0]+J*T/D[0]/D[1]),R); + L=cons(reverse(R),L);L0=cons(II[0]+I*T/D[0],L0); + } + } + L=reverse(L);L0=reverse(L0); + if(type(Str)==4){ + L0=mtransbys(os_md.sint,L0,[Str[0]]|str=1,zero=0); + L=mtransbys(os_md.sint,L,[Str[1]]|str=1,zero=0); + if(Df==1){ + for(DT=[],RT=L,I=0;RT!=[];){ + for(LT=[],TT=car(RT);TT!=[];TT=cdr(TT)){ + VV=car(TT); + if((J=str_char(VV,0,"."))>=0){ + if(J==0) VV=str_cut(VV,1,10000); + else VV=str_cut(VV,0,J-1)+str_cut(VV,J+1,10000); + } + V1=eval_str(VV); + if(I++) LT=cons(V1-V0,LT); + V0=V1; + } + DT=cons(LT,DT); + if((RT=cdr(RT))==[]){ + VE=rint(myfdeval(F,II[1])*10^Str[1]); + DT=cons([VE-V0],DT); + } + } + for(I=0,D=[],TT=DT;TT!=[];TT=cdr(TT)){ + if(!I++) V=car(TT)[0]; + else{ + T1=reverse(cons(V,car(TT))); + V=car(T1); + if(length(TT)>1) T1=cdr(T1); + D=cons(T1,D); + } + } + for(DD=[],TT=D;TT!=[];TT=cdr(TT)) + DD=cons([os_md.lmin(car(TT)),os_md.lmax(car(TT))],DD); + DD=reverse(DD); + L=lsort(L,DD,"append"); + } + } + L=lsort(L,L0,"cons"); + if(type(Top=getopt(top))==4||getopt(TeX)==1){ + if(type(Top)==4){ + K=length(L[0])-length(Top); + if(K>0&&K<4){ + if(K>1){ + Top=append(Top,["",""]); + K-=2; + } + if(K) Top=cons("",Top); + } + L=cons(Top,L); + } + if(type(H=getopt(hline))!=4) H=[0,1,z]; + if(type(V=getopt(vline))!=4) V=[0,1,(DF)?z-2:z]; + if(type(T=getopt(title))!=7) Out=ltotex(L|opt="tab",hline=H,vline=V); + else Out=ltotex(L|opt="tab",hline=H,vline=V,title=T); + if(Df) Out=str_subst(Out,"\\hline","\\cline{1-"+rtostr(length(L[0])-2)+"}"); + return Out; + } + return L; + } + for(L=[],I=0;I<=D;I++){ + X=II[0]+I*T/D; + L=cons([X,myfdeval(F,X)],L); + } + if(Df==1){ + for(LD=[],LL=L;LL!=[];LL=cdr(LL)){ + if(LD==[]) LD=cons([car(LL)[0],car(LL)[1],0],LD); + else LD=cons([car(LL)[0],car(LL)[1],abs(car(LL)[1]-car(LD)[1])],LD); + } + L=reverse(LD); + } + if(type(Str)==4){ + if(length(Str)==1) Str=[Str[0],Str[0]]; + if(Df==1 && length(Str)==2) Str=[Str[0],Str[1],Str[1]]; + for(S=Str,Str=[];S!=[];S=cdr(S)){ + if(type(car(S))!=4) Str=cons([car(S),3],Str); + else Str=cons(car(S),Str); + } + Str=reverse(Str); + for(LD=[],LL=L;LL!=[];LL=cdr(LL)){ + for(K=[],J=length(Str); --J>=0; ) + K=cons(sint(car(LL)[J],Str[J][0]|str=Str[J][1]),K); + LD=cons(K,LD); + } + L=LD; + }else + L=reverse(L); + if(type(M=getopt(mult))==1){ + Opt=[["opt","tab"],["vline",[[0,2+Df]]],["width",-M]]; + if(type(T=getopt(title))==7) + Opt=cons(["title",T],Opt); + if(type(Tp=getopt(top))==4) + Opt=cons(["top",Tp],Opt); + L=ltotex(L|option_list=Opt); + } + return L; +} + +def distpoint(L) +{ + L=m2l(L|flat=1); + if(getopt(div)==5) Div=5; + else Div=10; + V=newvect(100/Div); + for(LT=L,LL=[],N=0; LT!=[]; LT=cdr(LT)){ + if(type(K=car(LT))>1||K<0){ + N++; continue; + } + LL=cons(K,LL); + T=idiv(K,Div); + if(Div==10 && T>=9) T=9; + else if(Div==5 && T>=19) T=19; + V[T]++; + } + V=vtol(V); + if((Opt=getopt(opt))=="data") return V; + Title=getopt(title); + OpList=[["opt","tab"]]; + if(type(Title=getopt(title)) == 7) + OpList=cons(["title",Title],OpList); + if(Opt=="average"){ + T=isMs()?["平均点","標準偏差","最低点","最高点","受験人数"]: + ["average","deviation","min","max","examinees"]; + L=average(LL); + L=[sint(L[0],1),sint(L[1],1),L[3],L[4],L[2]]; + if(N>0){ + T=append(T,[isMs()?"欠席者":"absentees"]);L=append(L,[N]); + } + OpList=cons(["align","c"],OpList); + return ltotex([T,L]|option_list=OpList); + } + + if(getopt(opt)=="graph"){ + Mul=getopt(size); + if(Div==5){ + V0=["00","05","10","15","20","25","30","35","40","45","50","55", + "60","65","70","75","80","85","90","95"]; + if(type(Mul)!=4){ + Size = (TikZ)?[12,3,1/2,0.2]:[120,30,1/2,2]; + } + }else{ + V0=["00-","10-","20-","30-","40-","50-","60-","70-","80-","90-"]; + if(type(Mul)!=4){ + Size = (TikZ)?[8,3,1/2,0.2]:[80,30,1/2,2]; + } + } + return ltotex([V,V0]|opt="graph",size=Size); + } + if(Div==5) + V0=["00--04","05--09","10--14","15--19", "20--24", "25--29", "30--34", "35-39", + "40--44", "45--49","50--54", "55--59","60--64", "65--69", + "70--74", "75--79","80--84", "85--89","90--94", "95--100"]; + else + V0=["00--09","10--19","20--29","30--39","40--49","50--59","60--69", + "70--79","80--89","90--100"]; + Title=getopt(title); + return ltotex([V0,V]|option_list=OpList); +} + +def keyin(S) +{ + print(S,2); + purge_stdin(); + S=get_line(); + L=length(S=strtoascii(S)); + if(L==0) return ""; + return str_cut(S,0,L-2); +} + +def init() { + LS=["DIROUT","DVIOUTA","DVIOUTB","DVIOUTH","DVIOUTL","TeXLim","TeXEq","TikZ", + "XYPrec","XYcm","Canvas"]; + if(!access(get_rootdir()+"/help/os_muldif.dvi")||!access(get_rootdir()+"/help/os_muldif.pdf")) + mycat(["Put os_muldif.dvi and os_muldif.pdf in", get_rootdir()+(isMs()?"\\help.":"/help.")]); + if(!isMs()){ + DIROUT="%HOME%/asir/tex"; + DVIOUTA=str_subst(DVIOUTA,[["\\","/"],[".bat",".sh"]],0); + DVIOUTB=str_subst(DVIOUTB,[["\\","/"],[".bat",".sh"]],0); + DVIOUTL=str_subst(DVIOUTL,[["\\","/"],[".bat",".sh"]],0); + DVIOUTH="%ASIRROOT%/help/os_muldif.pdf"; + } + Home=getenv("HOME"); + if(type(Home)!=7) Home=""; + for(Id=-7, F=Home; Id<-1;){ + G = F+"/.muldif"; + if(access(G)) Id = open_file(G); + else Id++; + if(Id==-6) F+="/asir"; + else if(Id==-5) F=get_rootdir(); + else if(Id==-4) F+="/bin"; + else if(Id==-3) F=get_rootdir()+"/lib-asir-contrib"; + } + if(Id>=0){ + while((S=get_line(Id))!=0){ + if(type(P=str_str(S,LS))==4 && (P0=str_char(S,P[1]+5,"="))>0){ + if(P[0]<5){ + P0=str_chr(S,P0+1,"\""); + if(P0>0){ + for(P1=P0;(P2=str_char(S,P1+1,"\""))>0; P1=P2); + if(P1>P0+1){ + SS=str_cut(S,P0+1,P1-1); + SS=str_subst(SS,["\\\\","\\\""],["\\","\""]); + if(P[0]==0) DIROUT=SS; + else if(P[0]==1) DVIOUTA=SS; + else if(P[0]==2) DVIOUTB=SS; + else if(P[0]==3) DVIOUTH=SS; + else if(P[0]==4) DVIOUTL=SS; + } + } + if(P0<0 || P1<P0+2) mycat(["Error! Definiton of", LS[P[0]], + "in .muldif"]); + }else{ + SV=eval_str(str_cut(S,P0+1,str_len(S)-1)); + if(P[0]==5) TeXLim=SV; + else if(P[0]==6) TeXEq=SV; + else if(P[0]==7) TikZ=SV; + else if(P[0]==8) XYPrec=SV; + else if(P[0]==9) XYcm=SV; + else if(P[0]==10) XYcm=Canvas; + } + } + } + close_file(Id); + } + chkfun(1,0); +} + +#ifdef USEMODULE +endmodule; +os_md.init()$ +#else +init()$ +#endif + +end$ |