summaryrefslogtreecommitdiff
path: root/texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Derivative.sci
diff options
context:
space:
mode:
Diffstat (limited to 'texmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Derivative.sci')
-rwxr-xr-xtexmf-dist/scripts/ketpic/ketlib/ketpicscifiles6/Derivative.sci64
1 files changed, 64 insertions, 0 deletions
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;