From 138f77fe71e43adc24ecb030d73df81cc5c4eb7e Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 4 Sep 2017 09:45:51 +0900 Subject: add ketpic --- .../ketpic/ketlib/ketpicscifiles6/Assign.sci | 202 +++++++++++++++++++++ 1 file changed, 202 insertions(+) create mode 100755 texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Assign.sci (limited to 'texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Assign.sci') 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 J1 // 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 K0 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