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

Diff of /trunk/escript/py_src/generateutil

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

revision 443 by gross, Fri Jan 20 06:22:38 2006 UTC revision 493 by gross, Fri Feb 3 02:18:45 2006 UTC
# Line 1020  def unrollLoopsOfL2(b,where,arg,tap=""): Line 1020  def unrollLoopsOfL2(b,where,arg,tap=""):
1020      else:      else:
1021         out+="+(%s))\n"%(zop*0.5**2)         out+="+(%s))\n"%(zop*0.5**2)
1022      return out      return out
1023    #=======================================================================================================
1024    # transpose
1025    #=======================================================================================================
1026    def transposeTest(r,offset):
1027        if isinstance(r,float): return r
1028        s=r.shape
1029        s1=1
1030        for i in s[:offset]: s1*=i
1031        s2=1
1032        for i in s[offset:]: s2*=i
1033        out=numarray.reshape(r,(s1,s2))
1034        out.transpose()
1035        return numarray.resize(out,s[offset:]+s[:offset])
1036    
1037    name,tt="transpose",transposeTest
1038    for case0 in ["array","Symbol","constData","taggedData","expandedData"]:
1039      for sh0 in [ (), (3,), (4,5), (6,2,2),(3,2,3,4)]:
1040        for offset in range(len(sh0)+1):
1041                  text="   #+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n"
1042                  tname="test_%s_%s_rank%s_offset%s"%(name,case0,len(sh0),offset)
1043                  text+="   def %s(self):\n"%tname
1044                  sh_t=sh0[offset:]+sh0[:offset]
1045    
1046    #              sh_t=list(sh0)
1047    #              sh_t[offset+1]=sh_t[offset]
1048    #              sh_t=tuple(sh_t)
1049    #              sh_r=[]
1050    #              for i in range(offset): sh_r.append(sh0[i])
1051    #              for i in range(offset+2,len(sh0)): sh_r.append(sh0[i])              
1052    #              sh_r=tuple(sh_r)
1053    
1054                  a_0=makeArray(sh0,[-1.,1])
1055                  if case0 in ["taggedData", "expandedData"]:
1056                      a1_0=makeArray(sh0,[-1.,1])
1057                  else:
1058                      a1_0=a_0
1059                  r=tt(a_0,offset)
1060                  r1=tt(a1_0,offset)
1061                  text+=mkText(case0,"arg",a_0,a1_0)
1062                  text+="      res=%s(arg,%s)\n"%(name,offset)
1063                  if case0=="Symbol":
1064                     text+=mkText("array","s",a_0,a1_0)
1065                     text+="      sub=res.substitute({arg:s})\n"
1066                     res="sub"
1067                     text+=mkText("array","ref",r,r1)
1068                  else:
1069                     res="res"
1070                     text+=mkText(case0,"ref",r,r1)
1071                  text+=mkTypeAndShapeTest(case0,sh_t,"res")
1072                  text+="      self.failUnless(Lsup(%s-ref)<=self.RES_TOL*Lsup(ref),\"wrong result\")\n"%res
1073                  
1074                  if case0 == "taggedData" :
1075                      t_prog_with_tags+=text
1076                  else:              
1077                      t_prog+=text
1078    
1079    print test_header
1080    # print t_prog
1081    print t_prog_with_tags
1082    print test_tail          
1083    1/0
1084  #=======================================================================================================  #=======================================================================================================
1085  # L2  # L2
1086  #=======================================================================================================  #=======================================================================================================

Legend:
Removed from v.443  
changed lines
  Added in v.493

  ViewVC Help
Powered by ViewVC 1.1.26