/[escript]/trunk/escript/py_src/generatediff
ViewVC logotype

Diff of /trunk/escript/py_src/generatediff

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 517 by gross, Tue Feb 14 02:25:02 2006 UTC revision 588 by gross, Fri Mar 10 04:45:04 2006 UTC
# Line 179  def makeArray(shape,rng): Line 179  def makeArray(shape,rng):
179               for i2 in range(shape[2]):               for i2 in range(shape[2]):
180                  for i3 in range(shape[3]):                  for i3 in range(shape[3]):
181                    for i4 in range(shape[4]):                    for i4 in range(shape[4]):
182                     out[i0,i1,i2,i3,i4]=l*random.random()+rng[0]                     out[i0,i1,i2,i3,i4]=l*ranm.random()+rng[0]
183     else:     else:
184         raise SystemError,"rank is restricted to 5"         raise SystemError,"rank is restricted to 5"
185     return out             return out        
# Line 190  def makeNumberedArray(shape,s=1.): Line 190  def makeNumberedArray(shape,s=1.):
190         out=s*1.         out=s*1.
191     elif len(shape)==1:     elif len(shape)==1:
192         for i0 in range(shape[0]):         for i0 in range(shape[0]):
193                     out[i0]=s*i0                     out[i0]=s*int(8*random.random()+1)
194     elif len(shape)==2:     elif len(shape)==2:
195         for i0 in range(shape[0]):         for i0 in range(shape[0]):
196            for i1 in range(shape[1]):            for i1 in range(shape[1]):
197                     out[i0,i1]=s*(i1+shape[1]*i0)                     out[i0,i1]=s*int(8*random.random()+1)
198     elif len(shape)==3:     elif len(shape)==3:
199         for i0 in range(shape[0]):         for i0 in range(shape[0]):
200            for i1 in range(shape[1]):            for i1 in range(shape[1]):
201               for i2 in range(shape[2]):               for i2 in range(shape[2]):
202                     out[i0,i1,i2]=s*(i2+shape[2]*i1+shape[2]*shape[1]*i0)                     out[i0,i1,i2]=s*int(8*random.random()+1)
203     elif len(shape)==4:     elif len(shape)==4:
204         for i0 in range(shape[0]):         for i0 in range(shape[0]):
205            for i1 in range(shape[1]):            for i1 in range(shape[1]):
206               for i2 in range(shape[2]):               for i2 in range(shape[2]):
207                  for i3 in range(shape[3]):                  for i3 in range(shape[3]):
208                     out[i0,i1,i2,i3]=s*(i3+shape[3]*i2+shape[3]*shape[2]*i1+shape[3]*shape[2]*shape[1]*i0)                     out[i0,i1,i2,i3]=s*int(8*random.random()+1)
209     else:     else:
210         raise SystemError,"rank is restricted to 4"         raise SystemError,"rank is restricted to 4"
211     return out             return out        
# Line 505  def mkText(case,name,a,a1=None,use_taggi Line 505  def mkText(case,name,a,a1=None,use_taggi
505                   t_out+="      %s.setTaggedValue(1,numarray.array(%s))\n"%(name,a1.tolist())                   t_out+="      %s.setTaggedValue(1,numarray.array(%s))\n"%(name,a1.tolist())
506                t_out+="      %s.expand()\n"%name                          t_out+="      %s.expand()\n"%name          
507             else:             else:
508                t_out+="      msk_%s=whereNegative(self.functionspace.getX()[0]-0.5)\n"%name                t_out+="      msk_%s=whereZero(self.functionspace.getX()[0],1.e-8)\n"%name
509                if isinstance(a,float):                if isinstance(a,float):
510                     t_out+="      %s=msk_%s*(%s)+(1.-msk_%s)*(%s)\n"%(name,name,a,name,a1)                     t_out+="      %s=(1.-msk_%s)*(%s)+msk_%s*(%s)\n"%(name,name,a,name,a1)
511                elif a.rank==0:                elif a.rank==0:
512                     t_out+="      %s=msk_%s*numarray.array(%s)+(1.-msk_%s)*numarray.array(%s)\n"%(name,name,a,name,a1)                     t_out+="      %s=msk_%s*numarray.array(%s)+(1.-msk_%s)*numarray.array(%s)\n"%(name,name,a,name,a1)
513                else:                else:
# Line 522  def mkText(case,name,a,a1=None,use_taggi Line 522  def mkText(case,name,a,a1=None,use_taggi
522    
523           return t_out           return t_out
524    
525  def mkTypeAndShapeTest(case,sh,argstr):  def mkTypeAndShapeTest(case,sh,argstr,name=""):
526      text=""      text=""
527      if case=="float":      if case=="float":
528           text+="      self.failUnless(isinstance(%s,float),\"wrong type of result.\")\n"%argstr           text+="      self.failUnless(isinstance(%s,float),\"wrong type of result%s.\")\n"%(argstr,name)
529      elif case=="array":      elif case=="array":
530           text+="      self.failUnless(isinstance(%s,numarray.NumArray),\"wrong type of result.\")\n"%argstr           text+="      self.failUnless(isinstance(%s,numarray.NumArray),\"wrong type of result%s.\")\n"%(argstr,name)
531           text+="      self.failUnlessEqual(%s.shape,%s,\"wrong shape of result.\")\n"%(argstr,str(sh))           text+="      self.failUnlessEqual(%s.shape,%s,\"wrong shape of result%s.\")\n"%(argstr,str(sh),name)
532      elif case in ["constData","taggedData","expandedData"]:          elif case in ["constData","taggedData","expandedData"]:    
533           text+="      self.failUnless(isinstance(%s,Data),\"wrong type of result.\")\n"%argstr           text+="      self.failUnless(isinstance(%s,Data),\"wrong type of result%s.\")\n"%(argstr,name)
534           text+="      self.failUnlessEqual(%s.getShape(),%s,\"wrong shape of result.\")\n"%(argstr,str(sh))           text+="      self.failUnlessEqual(%s.getShape(),%s,\"wrong shape of result%s.\")\n"%(argstr,str(sh),name)
535      elif case=="Symbol":      elif case=="Symbol":
536           text+="      self.failUnless(isinstance(%s,Symbol),\"wrong type of result.\")\n"%argstr           text+="      self.failUnless(isinstance(%s,Symbol),\"wrong type of result%s.\")\n"%(argstr,name)
537           text+="      self.failUnlessEqual(%s.getShape(),%s,\"wrong shape of result.\")\n"%(argstr,str(sh))           text+="      self.failUnlessEqual(%s.getShape(),%s,\"wrong shape of result%s.\")\n"%(argstr,str(sh),name)
538      return text      return text
539    
540  def mkCode(txt,args=[],intend=""):  def mkCode(txt,args=[],intend=""):
# Line 550  def mkCode(txt,args=[],intend=""): Line 550  def mkCode(txt,args=[],intend=""):
550        out=out.replace("%%a%s%%"%c,r)        out=out.replace("%%a%s%%"%c,r)
551      return out        return out  
552    
553    
554    #=======================================================================================================
555    # eigenvalues and eigen vectors 2D:
556    #=======================================================================================================
557    alltests= \
558      [ ("case0",[[0.0, 0.0], [0.0, 0.0]],[0.0, 0.0]) \
559       , ("case3",[[-1.0, 0.0], [0.0, -1.0]],[-1.0, -1.0]) \
560       , ("case5",[[-0.99999999999999967, -6.4606252205695602e-16], [-6.4606252205695602e-16, -0.99999999999999967]],[-1.0, -1.0]) \
561       , ("case6",[[0.0, 0.0], [0.0, 0.0001]],[0.0, 0.0001]) \
562       , ("case7",[[0.0001, 0.0], [0.0, 0.0]],[0.0, 0.0001]) \
563       , ("case8",[[6.0598371831785722e-06, 2.3859213977648625e-05], [2.3859213977648629e-05, 9.3940162816821425e-05]],[0.0, 0.0001]) \
564       , ("case9",[[1.0, 0.0], [0.0, 2.0]],[1.0, 2.0]) \
565       , ("case10",[[2.0, 0.0], [0.0, 1.0]],[1.0, 2.0]) \
566       , ("case11",[[1.0605983718317855, 0.23859213977648688], [0.23859213977648688, 1.9394016281682138]],[1.0, 2.0]) \
567       , ("case12",[[1.0, 0.0], [0.0, 1000000.0]],[1.0, 1000000.0]) \
568       , ("case13",[[1000000.0, 0.0], [0.0, 1.0]],[1.0, 1000000.0]) \
569       , ("case14",[[60599.311233413886, 238591.90118434647], [238591.90118434647, 939401.68876658613]],[1.0, 1000000.0]) \
570       ]
571    dim=2
572    
573    
574    alltests= \
575    [ ("case0",[[0.0, 0.0, 0.0], [0.0, 0.0, 0.0], [0.0, 0.0, 0.0]],[0.0, 0.0, 0.0]) \
576    , ("case5",[[10.0, 0.0, 0.0], [0.0, 10.0, 0.0], [0.0, 0.0, 10.0]],[10.0, 10.0, 10.0]) \
577    , ("case10",[[0.9, 0.0, 0.0], [0.0, 0.9, 0.0], [0.0, 0.0, 1.0]],[0.9, 0.9, 1.0]) \
578    , ("case11",[[0.9, 0.0, 0.0], [0.0, 0.97060899725040983, -0.045555123008643325], [0.0, -0.045555123008643339, 0.92939100274959041]],[0.9, 0.9, 1.0]) \
579    , ("case12",[[0.92694799760252555, 0.0, 0.044368966468320177], [0.0, 0.9, 0.0], [0.044368966468320184, 0.0, 0.97305200239747425]],[0.9, 0.9, 1.0]) \
580    , ("case13",[[1.0, 0.0, 0.0], [0.0, 0.9, 0.], [0.0, 0., 0.9]],[0.9, 0.9, 1.0]) \
581    , ("case14",[[0.92379770619813639, 0.041031106298491521, -0.011396846732439278], [0.041031106298491535, 0.97074428392640366, -0.019650012730342326], [-0.011396846732439236, -0.019650012730342337, 0.90545800987545966]],[0.9, 0.9, 1.0]) \
582    , ("case15",[[1.0, 0.0, 0.0], [0.0, 1.1, 0.0], [0.0, 0.0, 1.1]],[1.0, 1.1, 1.1]) \
583    , ("case17",[[1.0269479976025255, 0.0, 0.044368966468320309], [0.0, 1.1, 0.0], [0.044368966468320295, 0.0, 1.0730520023974743]],[1.0, 1.1, 1.1]) \
584    , ("case18",[[1.1, 0.0, 0.0], [0.0, 1.0153410887977139, -0.036038311201720394], [0.0, -0.036038311201720373, 1.084658911202286]],[1.0, 1.1, 1.1]) \
585    , ("case19",[[1.035487967756175, 0.026317079185831614, -0.039960133424212368], [0.026317079185831618, 1.0892641940924184, 0.016301362071911414], [-0.039960133424212355, 0.016301362071911431, 1.0752478381514063]],[1.0, 1.1, 1.1]) \
586    , ("case20",[[1.0, 0.0, 0.0], [0.0, 2.0, 0.0], [0.0, 0.0, 3.0]],[1.0, 2.0, 3.0]) \
587    , ("case21",[[1.0, 0.0, 0.0], [0.0, 2.7060899725040968, -0.45555123008643206], [0.0, -0.45555123008643228, 2.2939100274959037]],[1.0, 2.0, 3.0]) \
588    , ("case22",[[1.5389599520505153, 0.0, 0.88737932936638753], [0.0, 2.0, 0.0], [0.88737932936638753, 0.0, 2.4610400479494858]],[1.0, 2.0, 3.0]) \
589    , ("case23",[[3.0, 0.0, 0.0], [0.0, 1.153410887977139, -0.36038311201720391], [0.0, -0.36038311201720391, 1.8465891120228608]],[1.0, 2.0, 3.0]) \
590    , ("case24",[[1.5928567395431172, 0.67348185484323142, -0.51356980156651744], [0.67348185484323153, 2.6000847801882254, -0.033486506584313548], [-0.51356980156651744, -0.033486506584313541, 1.8070584802686565]],[1.0, 2.0, 3.0]) \
591    , ("case25",[[1.0, 0.0, 0.0], [0.0, 2.0, 0.0], [0.0, 0.0, 30000.0]],[1.0, 2.0, 30000.0]) \
592    , ("case26",[[1.0, 0.0, 0.0], [0.0, 21183.286995177881, -13665.625800132779], [0.0, -13665.625800132779, 8818.7130048221279]],[1.0, 2.0, 30000.0]) \
593    , ("case27",[[8085.1298007817086, 0.0, 13310.246250831115], [0.0, 2.0, 0.0], [13310.246250831115, 0.0, 21915.870199218316]],[1.0, 2.0, 30000.0]) \
594    , ("case28",[[30000.0, 0.0, 0.0], [0.0, 1.153410887977139, -0.36038311201720391], [0.0, -0.36038311201720391, 1.8465891120228608]],[1.0, 2.0, 30000.0]) \
595    , ("case29",[[7140.1907849945546, 12308.774438213351, -3419.2256841313947], [12308.774438213351, 21223.762934183575, -5894.4478052274408], [-3419.2256841313947, -5894.4478052274408, 1639.0462808218595]],[1.0, 2.0, 30000.0]) \
596    ]
597    
598    dim=3
599    
600    alltests= \
601    [ ("case0",[[0.0]],[0.0]) \
602    , ("case1",[[1.0]],[1.0]) \
603    ]
604    dim=1
605    
606    for case in ["constData","taggedData","expandedData"]:
607       n=0
608       while n<len(alltests):
609          text="   #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n"
610          tname="test_eigenvalues_and_eigenvectors_%s_dim%s_%s"%(case,dim,alltests[n][0])
611          text+="   def %s(self):\n"%tname
612          a_0=numarray.array(alltests[n][1],numarray.Float64)
613          ev_0=numarray.array(alltests[n][2],numarray.Float64)
614          if case in ["taggedData", "expandedData"]:
615             if n+1<len(alltests):
616               a1_0=numarray.array(alltests[n+1][1],numarray.Float64)
617               ev1_0=numarray.array(alltests[n+1][2],numarray.Float64)
618             else:
619               a1_0=numarray.array(alltests[0][1],numarray.Float64)
620               ev1_0=numarray.array(alltests[0][2],numarray.Float64)
621             n+=2
622          else:
623             a1_0=a_0                  
624             ev1_0=ev_0
625             n+=1
626          text+=mkText(case,"arg",a_0,a1_0)
627          text+="      res=eigenvalues_and_eigenvectors(arg)\n"
628          text+=mkText(case,"ref_ev",ev_0,ev1_0)
629          text+=mkTypeAndShapeTest(case,(dim,),"res[0]"," for eigenvalues")
630          text+=mkTypeAndShapeTest(case,(dim,dim),"res[1]"," for eigenvectors")
631          text+="      self.failUnless(Lsup(res[0]-ref_ev)<=self.RES_TOL*Lsup(ref_ev),\"wrong eigenvalues\")\n"
632          for i in range(dim):
633              text+="      self.failUnless(Lsup(matrixmult(arg,res[1][:,%s])-res[0][%s]*res[1][:,%s])<=self.RES_TOL*Lsup(res[0]),\"wrong eigenvector %s\")\n"%(i,i,i,i)
634          text+="      self.failUnless(Lsup(matrixmult(transpose(res[1]),res[1])-kronecker(%s))<=self.RES_TOL,\"eigenvectors are not orthonormal\")\n"%dim
635          if case == "taggedData" :
636               t_prog_with_tags+=text
637          else:              
638               t_prog+=text
639    print test_header
640    print t_prog
641    print t_prog_with_tags
642    print test_tail          
643    1/0
644    #=======================================================================================================
645    # get slices
646    #=======================================================================================================
647    from esys.escript import *
648    for case0 in ["constData","taggedData","expandedData"]:
649       for sh0 in [ (3,), (3,4), (3,4,3) ,(4,3,3,3)]:
650        # get perm:
651        if len(sh0)==2:
652            check=[[1,0]]
653        elif len(sh0)==3:
654            check=[[1,0,2],
655                   [1,2,0],
656                   [2,1,0],
657                   [2,0,2],
658                   [0,2,1]]
659        elif len(sh0)==4:
660            check=[[0,1,3,2],
661                   [0,2,1,3],
662                   [0,2,3,1],
663                   [0,3,2,1],
664                   [0,3,1,2] ,          
665                   [1,0,2,3],
666                   [1,0,3,2],
667                   [1,2,0,3],
668                   [1,2,3,0],
669                   [1,3,2,0],
670                   [1,3,0,2],
671                   [2,0,1,3],
672                   [2,0,3,1],
673                   [2,1,0,3],
674                   [2,1,3,0],
675                   [2,3,1,0],
676                   [2,3,0,1],
677                   [3,0,1,2],
678                   [3,0,2,1],
679                   [3,1,0,2],
680                   [3,1,2,0],
681                   [3,2,1,0],
682                   [3,2,0,1]]
683        else:
684             check=[]
685        
686        # create the test cases:
687        processed=[]
688        l=["R","U","L","P","C","N"]
689        c=[""]
690        for i in range(len(sh0)):
691           tmp=[]
692           for ci in c:
693              tmp+=[ci+li for li in l]
694           c=tmp
695        # SHUFFLE
696        c2=[]
697        while len(c)>0:
698            i=int(random.random()*len(c))
699            c2.append(c[i])
700            del c[i]
701        c=c2
702        for ci in c:
703          t=""
704          sh=()
705          sl=()
706          for i in range(len(ci)):
707              if ci[i]=="R":
708                 s="%s:%s"%(1,sh0[i]-1)
709                 sl=sl+(slice(1,sh0[i]-1),)
710                 sh=sh+(sh0[i]-2,)            
711              if ci[i]=="U":
712                  s=":%s"%(sh0[i]-1)
713                  sh=sh+(sh0[i]-1,)
714                  sl=sl+(slice(0,sh0[i]-1),)            
715              if ci[i]=="L":
716                  s="2:"
717                  sh=sh+(sh0[i]-2,)            
718                  sl=sl+(slice(2,sh0[i]),)            
719              if ci[i]=="P":
720                  s="%s"%(int(sh0[i]/2))
721                  sl=sl+(int(sh0[i]/2),)            
722              if ci[i]=="C":
723                  s=":"
724                  sh=sh+(sh0[i],)            
725                  sl=sl+(slice(0,sh0[i]),)            
726              if ci[i]=="N":
727                  s=""
728                  sh=sh+(sh0[i],)
729              if len(s)>0:
730                 if not t=="": t+=","
731                 t+=s
732          if len(sl)==1: sl=sl[0]
733          N_found=False
734          noN_found=False
735          process=len(t)>0
736          for i in ci:
737             if i=="N":
738                if not noN_found and N_found: process=False
739                N_found=True
740             else:
741               if N_found: process=False
742               noNfound=True
743          # is there a similar one processed allready
744          if process and ci.find("N")==-1:
745             for ci2 in processed:
746               for chi in check:
747                   is_perm=True
748                   for i in range(len(chi)):
749                       if not ci[i]==ci2[chi[i]]: is_perm=False
750                   if is_perm: process=False
751          # if not process: print ci," rejected"
752          if process:
753           processed.append(ci)
754           for case1 in ["array","constData","taggedData","expandedData"]:
755              text="   #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n"
756              tname="test_setslice_%s_rank%s_%s_%s"%(case0,len(sh0),case1,ci)
757              text+="   def %s(self):\n"%tname
758              a_0=makeNumberedArray(sh0)
759              if case0 in ["taggedData", "expandedData"]:
760                  a1_0=makeNumberedArray(sh0)
761              else:
762                  a1_0=a_0*1.
763    
764              a_1=makeNumberedArray(sh)
765              if case1 in ["taggedData", "expandedData"]:
766                  a1_1=makeNumberedArray(sh)
767              else:
768                  a1_1=a_1*1.
769    
770              text+=mkText(case0,"arg",a_0,a1_0)                                  
771              text+=mkText(case1,"val",a_1,a1_1)                                  
772              text+="      arg[%s]=val\n"%t
773              a_0.__setitem__(sl,a_1)
774              a1_0.__setitem__(sl,a1_1)
775              if Lsup(a_0-a1_0)==0.:
776                 text+=mkText("constData","ref",a_0,a1_0)
777              else:
778                 text+=mkText("expandedData","ref",a_0,a1_0)
779              text+="      self.failUnless(Lsup(arg-ref)<=self.RES_TOL*Lsup(ref),\"wrong result\")\n"
780                  
781              if case0 == "taggedData" or case1 == "taggedData":
782                t_prog_with_tags+=text
783              else:              
784                t_prog+=text
785    
786    print test_header
787    # print t_prog
788    print t_prog_with_tags
789    print test_tail          
790    1/0
791    
792    #=======================================================================================================
793    # (non)symmetric part
794    #=======================================================================================================
795    from esys.escript import *
796    for name in ["symmetric", "nonsymmetric"]:
797     f=1.
798     if name=="nonsymmetric": f=-1
799     for case0 in ["array","Symbol","constData","taggedData","expandedData"]:
800      for sh0 in [ (3,3), (2,3,2,3)]:
801                  text="   #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n"
802                  tname="test_%s_%s_rank%s"%(name,case0,len(sh0))
803                  text+="   def %s(self):\n"%tname
804                  a_0=makeNumberedArray(sh0,s=1.)
805                  r_0=(a_0+f*transpose(a_0))/2.
806                  if case0 in ["taggedData", "expandedData"]:
807                     a1_0=makeNumberedArray(sh0,s=-1.)
808                     r1_0=(a1_0+f*transpose(a1_0))/2.
809                  else:
810                      a1_0=a_0                  
811                      r1_0=r_0
812                  text+=mkText(case0,"arg",a_0,a1_0)
813                  text+="      res=%s(arg)\n"%name
814                  if case0=="Symbol":
815                     text+=mkText("array","s",a_0,a1_0)
816                     text+="      sub=res.substitute({arg:s})\n"
817                     res="sub"
818                     text+=mkText("array","ref",r_0,r1_0)
819                  else:
820                     res="res"
821                     text+=mkText(case0,"ref",r_0,r1_0)  
822                  text+=mkTypeAndShapeTest(case0,sh0,"res")
823                  text+="      self.failUnless(Lsup(%s-ref)<=self.RES_TOL*Lsup(ref),\"wrong result\")\n"%res
824                  
825                  if case0 == "taggedData" :
826                      t_prog_with_tags+=text
827                  else:              
828                      t_prog+=text
829    print test_header
830    print t_prog
831    # print t_prog_with_tags
832    print test_tail          
833    1/0
834    
835    #=======================================================================================================
836    # eigenvalues
837    #=======================================================================================================
838    import numarray.linear_algebra
839    name="eigenvalues"
840    for case0 in ["array","Symbol","constData","taggedData","expandedData"]:
841      for sh0 in [ (1,1), (2,2), (3,3)]:
842                  text="   #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n"
843                  tname="test_%s_%s_dim%s"%(name,case0,sh0[0])
844                  text+="   def %s(self):\n"%tname
845                  a_0=makeArray(sh0,[-1.,1])
846                  a_0=(a_0+numarray.transpose(a_0))/2.
847                  ev=numarray.linear_algebra.eigenvalues(a_0)
848                  ev.sort()
849                  if case0 in ["taggedData", "expandedData"]:
850                      a1_0=makeArray(sh0,[-1.,1])
851                      a1_0=(a1_0+numarray.transpose(a1_0))/2.
852                      ev1=numarray.linear_algebra.eigenvalues(a1_0)
853                      ev1.sort()
854                  else:
855                      a1_0=a_0                  
856                      ev1=ev
857                  text+=mkText(case0,"arg",a_0,a1_0)
858                  text+="      res=%s(arg)\n"%name
859                  if case0=="Symbol":
860                     text+=mkText("array","s",a_0,a1_0)
861                     text+="      sub=res.substitute({arg:s})\n"
862                     res="sub"
863                     text+=mkText("array","ref",ev,ev1)
864                  else:
865                     res="res"
866                     text+=mkText(case0,"ref",ev,ev1)  
867                  text+=mkTypeAndShapeTest(case0,(sh0[0],),"res")
868                  text+="      self.failUnless(Lsup(%s-ref)<=self.RES_TOL*Lsup(ref),\"wrong result\")\n"%res
869                  
870                  if case0 == "taggedData" :
871                      t_prog_with_tags+=text
872                  else:              
873                      t_prog+=text
874    print test_header
875    # print t_prog
876    print t_prog_with_tags
877    print test_tail          
878    1/0
879    
880  #=======================================================================================================  #=======================================================================================================
881  # slicing  # get slices
882  #=======================================================================================================  #=======================================================================================================
883  for case0 in ["constData","taggedData","expandedData","Symbol"]:  for case0 in ["constData","taggedData","expandedData","Symbol"]:
884    for sh0 in [ (3,), (3,4), (3,4,3) ,(4,3,5,3)]:    for sh0 in [ (3,), (3,4), (3,4,3) ,(4,3,5,3)]:

Legend:
Removed from v.517  
changed lines
  Added in v.588

  ViewVC Help
Powered by ViewVC 1.1.26