[BACK]Return to os_muldif.rr CVS log [TXT][DIR] Up to [local] / OpenXM / src / asir-contrib / packages / src

Diff for /OpenXM/src/asir-contrib/packages/src/os_muldif.rr between version 1.64 and 1.65

version 1.64, 2020/03/12 06:28:46 version 1.65, 2020/03/13 08:19:24
Line 1 
Line 1 
 /* $OpenXM: OpenXM/src/asir-contrib/packages/src/os_muldif.rr,v 1.63 2020/03/11 03:18:22 takayama Exp $ */  /* $OpenXM: OpenXM/src/asir-contrib/packages/src/os_muldif.rr,v 1.64 2020/03/12 06:28:46 takayama Exp $ */
 /* The latest version will be at https://www.ms.u-tokyo.ac.jp/~oshima/index-j.html  /* The latest version will be at https://www.ms.u-tokyo.ac.jp/~oshima/index-j.html
  scp os_muldif.[dp]* ${USER}@lemon.math.kobe-u.ac.jp:/home/web/OpenXM/Current/doc/other-docs   scp os_muldif.[dp]* ${USER}@lemon.math.kobe-u.ac.jp:/home/web/OpenXM/Current/doc/other-docs
 */  */
Line 12878  def pwTaylor(F,N,Lx,Y,Ly,M)
Line 12878  def pwTaylor(F,N,Lx,Y,Ly,M)
   
         RE=R=[cons(T=Lx[0],Ly)];          RE=R=[cons(T=Lx[0],Ly)];
         H=(Lx[1]-Lx[0])/N*One;          H=(Lx[1]-Lx[0])/N*One;
         Ck=N+1;  
         if(type(Inf=getopt(Inf))==4&&length(Inf)>1){    /* explosion */          Ck=N+1;CB=10;Ckm=2;MM=2;C1=1;
           if(Ck<5) Ck=100;
           if(type(Inf=getopt(Inf))==4&&length(Inf)>1&&Inf[0]>4){  /* explosion */
                 Ck=Inf[0];Ckm=Inf[1];                  Ck=Inf[0];Ckm=Inf[1];
                 MM=2;  
                 if(length(Inf)>2) MM=Inf[2];                  if(length(Inf)>2) MM=Inf[2];
                 if(!isint(Mt)||MM<1) MM=2;                  if(!isint(Mt)||MM<1) MM=2;
                 if(length(Inf)>3) C1=Inf[3];                  if(length(Inf)>3) C1=Inf[3];
                 if(type(C1)!=1||C1<0) C1=1;                  if(type(C1)!=1||C1<0) C1=1;
                 if(length(Inf)>4) CM=Inf[4];                  if(length(Inf)>4) CB=Inf[4];
         }else if(Inf==1||Ck<5){          }else if(isint(Inf)&&Inf>0&&Inf<100){
                 Ck=100;Ckm=2;MM=2;C1=1;                  MM=Inf+1;Ck=100;
         }else Inf=0;          }else Inf=0;
         Ckm*=Ck;          Ckm*=Ck;
   
         SS=subst(S,V,H);          SS=subst(S,V,H);
         if(Er>0){          if(Er>0){
                 HE=H/(Er+1);SSE=subst(S,V,HE);LyE=Ly;                  HE=H/(Er+1);SSE=subst(S,V,HE);LyE=Ly;
         }          }
         for(C=CC=0;C<N;C++,CC++){          for(C=CC=CF=0;C<N;C++,CC++){
                 if(CC>=Ck){                                     /* check explosion */                  if(CC>=Ck){                                     /* check explosion */
                         CC=0;                          CC=0;
                         D0=dnorm(Ly|max=1);                          D0=dnorm(Ly|max=1);
                           if(Er&&CF){
                                   DE=dnorm(ladd(LyE,Ly,-1)|max=1);
                                   if(CB*DE>D0) break;
                           }
                         for(Dy=F,TY=Y,TL=Ly;TY!=[];TY=cdr(TY),TL=cdr(TL))                          for(Dy=F,TY=Y,TL=Ly;TY!=[];TY=cdr(TY),TL=cdr(TL))
                                 Dy=subst(Dy,car(TY),One*car(TL));                                  Dy=subst(Dy,car(TY),One*car(TL));
                         D1=dnorm(Dy|max=1);D2=subst(FM,x,2*D0+C1);D3=D1+D2;                          D1=dnorm(Dy|max=1);D2=subst(FM,x,2*D0+C1);D3=D1+D2;
Line 12910  def pwTaylor(F,N,Lx,Y,Ly,M)
Line 12916  def pwTaylor(F,N,Lx,Y,Ly,M)
                                 if(H*6/5<HH) H*=6/5;                                  if(H*6/5<HH) H*=6/5;
                                 SS=subst(S,V,H);                                  SS=subst(S,V,H);
                                 if(Er){                                  if(Er){
                                           CF++;
                                         HE=H/(Er+1);                                          HE=H/(Er+1);
                                         SSE=subst(S,V,HE);                                          SSE=subst(S,V,HE);
                                 }                                  }
Line 14390  def xyplot(L,LX,LY)
Line 14397  def xyplot(L,LX,LY)
                 Opt0=cons(["scale",R],Opt0);                  Opt0=cons(["scale",R],Opt0);
                 S+="scale="+rtostr(R)+", ";                  S+="scale="+rtostr(R)+", ";
         }          }
         S+=rtostr([sint(LX[0],4|str=0),sint(LX[1],4|str=1)])+", "          S+=rtostr(LX)+", "+rtostr(LY)+"\n";
         +rtostr([sint(LY[0],4|str=0),sint(LY[1],4|str=1)])+"\n";  
         for(L0=[],TL=L;TL!=[];TL=cdr(TL)){          for(L0=[],TL=L;TL!=[];TL=cdr(TL)){
                 TTL=map(deval,car(TL));                  TTL=map(deval,car(TL));
                 if(TTL[0]<LX[0]||TTL[0]>LX[1]||TTL[1]<LY[0]||TTL[1]>LY[1]){                  if(TTL[0]<LX[0]||TTL[0]>LX[1]||TTL[1]<LY[0]||TTL[1]>LY[1]){
Line 14403  def xyplot(L,LX,LY)
Line 14409  def xyplot(L,LX,LY)
         }          }
         if(length(L0)>1) S+=xylines(reverse(L0)|option_list=Opt0);          if(length(L0)>1) S+=xylines(reverse(L0)|option_list=Opt0);
         AX=getopt(ax);Opt=delopt(Opt0,"opt");          AX=getopt(ax);Opt=delopt(Opt0,"opt");
         if(type(AX)==4) S+=xygraph([0,0],0,LX,LX,LY|option_list=Opt);          if(type(AX)==4) S+="% axis\n"+xygraph([0,0],0,LX,LX,LY|option_list=Opt);
         else if((LX[0]<=0&&LX[1]>=0)||(LY[0]<=0&&LY[1]>=0))          else if((LX[0]<=0&&LX[1]>=0)||(LY[0]<=0&&LY[1]>=0))
                 S+=xygraph([0,0],0,LX,LX,LY|option_list=cons(["ax",[0,0]],Opt));                  S+="% axis\n"+xygraph([0,0],0,LX,LX,LY|option_list=cons(["ax",[0,0]],Opt));
         if(getopt(dviout)!=1) return S;          if(getopt(dviout)!=1) return S;
         xyproc(S|dviout=1);          xyproc(S|dviout=1);
         return [LX,LY];          return [LX,LY];

Legend:
Removed from v.1.64  
changed lines
  Added in v.1.65

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>