Home My Page Projects Code Snippets Project Openings diderot
Summary Activity Tracker Tasks SCM

SCM Repository

[diderot] Diff of /branches/ein16/synth/d2/test_eval.py
ViewVC logotype

Diff of /branches/ein16/synth/d2/test_eval.py

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

revision 4267, Tue Jul 26 13:50:46 2016 UTC revision 4268, Tue Jul 26 14:00:35 2016 UTC
# Line 412  Line 412 
412      ityp1 = field.get_ty(fld1)      ityp1 = field.get_ty(fld1)
413      exp2 = field.get_data(fld2)      exp2 = field.get_data(fld2)
414      ityp2 = field.get_ty(fld2)      ityp2 = field.get_ty(fld2)
415      rtn=[]      ashape = fty.get_shape(ityp1)
416        bshape = fty.get_shape(ityp2)
417        x= "ashape", ashape, "bshape", bshape
418      #print "exp1",exp1,"ityp1",ityp1.name,"-length",len(exp1)      #print "exp1",exp1,"ityp1",ityp1.name,"-length",len(exp1)
419      #print "exp2",exp2,"ityp2",ityp2.name,"-length",len(exp2)      #print "exp2",exp2,"ityp2",ityp2.name,"-length",len(exp2)
420        rtn = []
421      if(fty.is_Vector(ityp1)):      if(fty.is_Vector(ityp1)):
422          n1= fty.get_vecLength(ityp1)          [n1] = fty.get_shape(ityp1)
423          if(fty.is_Vector(ityp2)):          if(fty.is_Vector(ityp2)):
424              #both vectors              #both vectors
425              n2= fty.get_vecLength(ityp2)              [n2] = fty.get_shape(ityp2)
426              for i in  range(n1):              for i in  range(n1):
427                  tmpI = []                  tmpI = []
428                  for j in range(n2):                  for j in range(n2):
# Line 441  Line 443 
443      elif(fty.is_Matrix(ityp1)):      elif(fty.is_Matrix(ityp1)):
444          [n1,n2] = fty.get_shape(ityp1)          [n1,n2] = fty.get_shape(ityp1)
445          if(fty.is_Vector(ityp2)):          if(fty.is_Vector(ityp2)):
446              n3= fty.get_vecLength(ityp2)              [n3] = fty.get_shape(ityp2)
447              for i in  range(n1):              for i in  range(n1):
448                  tmpI = []                  tmpI = []
449                  for j in range(n2):                  for j in range(n2):
# Line 475  Line 477 
477      ityp1 = field.get_ty(fld1)      ityp1 = field.get_ty(fld1)
478      exp2 = field.get_data(fld2)      exp2 = field.get_data(fld2)
479      ityp2 = field.get_ty(fld2)      ityp2 = field.get_ty(fld2)
480      #print " exp1: ",exp1," exp2: ",exp2      ashape = fty.get_shape(ityp1)
481      # vectors      bshape = fty.get_shape(ityp2)
482        x= "ashape", ashape, "bshape", bshape
483      if(fty.is_Vector(ityp1)):      if(fty.is_Vector(ityp1)):
484          n1 = fty.get_vecLength(ityp1) #vector          [a1] = fty.get_shape(ityp1)
485          if(fty.is_Vector(ityp2)):          if(fty.is_Vector(ityp2)):
486              #length of vetors              #length of vetors
487              rtn=0              rtn=0
488              n2 = fty.get_vecLength(ityp2)              if(a1!=b1):
489              for s in  range(n1):                  raise x
490                  curr = exp1[s]*exp2[s]              [b1] = fty.get_shape(ityp2)
491                  #print (" exp1[s]: ",exp1[s]," exp2[s]: ",exp2[s],"cur",curr)              for s in  range(a1):
492                  rtn += curr                  rtn += exp1[s]*exp2[s]
493              return rtn              return rtn
494          elif(fty.is_Matrix(ityp2)):          elif(fty.is_Matrix(ityp2)):
495              [n2] = fty.drop_last(ityp2)  #matrix              [b1,b2] = fty.get_shape(ityp2)
496              rtn=[]              rtn=[]
497              for i in  range(n2):              if(a1!=b1):
498                    raise x
499                for i in  range(b2):
500                  sumrtn=0                  sumrtn=0
501                  for s in  range(n1):                  for s in  range(a1):
502                      curr = exp1[s]*exp2[s][i]                      sumrtn +=  exp1[s]*exp2[s][i]
                     sumrtn += curr  
503                  rtn.append(sumrtn)                  rtn.append(sumrtn)
504              return rtn              return rtn
505          elif(fty.is_Ten3(ityp2)):          elif(fty.is_Ten3(ityp2)):
506              [n2,n3] = fty.drop_last(ityp2)              [b1, b2, b3] = fty.get_shape(ityp2)
507              rtn = []              rtn = []
508              for i in  range(n2):              if(a1!=b1):
509                    raise x
510                for i in  range(b2):
511                  tmpJ = []                  tmpJ = []
512                  for j in  range(n3):                  for j in  range(b3):
513                      sumrtn=0                      sumrtn=0
514                      for s in  range(n1):                      for s in  range(a1):
515                          curr = exp1[s]*exp2[s][i][j]                          sumrtn +=  exp1[s]*exp2[s][i][j]
                         sumrtn += curr  
516                      tmpJ.append(sumrtn)                      tmpJ.append(sumrtn)
517                  rtn.append(tmpJ)                  rtn.append(tmpJ)
518              return rtn              return rtn
519          else:          else:
520              raise "inner product is not supported"              raise "inner product is not supported"
521      elif(fty.is_Matrix(ityp1)):      elif(fty.is_Matrix(ityp1)):
522          n2 = fty.get_first_ix(ityp1)  #matrix  
523            [a1,a2] = fty.get_shape(ityp1)
524    
525          if(fty.is_Vector(ityp2)):          if(fty.is_Vector(ityp2)):
526              ns = fty.get_vecLength(ityp2) #vector              [b1] = fty.get_shape(ityp2)
527                if(a2!=b1):
528                    raise x
529              rtn=[]              rtn=[]
530              for i in  range(n2):              for i in  range(a1):
531                  sumrtn=0                  sumrtn=0
532                  for s in  range(ns):                  for s in  range(a2):
533                      curr = exp1[i][s]*exp2[s]                      sumrtn += exp1[i][s]*exp2[s]
                     sumrtn += curr  
534                  rtn.append(sumrtn)                  rtn.append(sumrtn)
535              return rtn              return rtn
536          if(fty.is_Matrix(ityp2)):          if(fty.is_Matrix(ityp2)):
             [a1,a2] = fty.get_shape(ityp1)  
537              [b1,b2] = fty.get_shape(ityp2)              [b1,b2] = fty.get_shape(ityp2)
538              rtn=[]              rtn=[]
539                if(a2!=b1):
540                    raise x
541              for i in  range(a1):              for i in  range(a1):
542                  rtnj = []                  rtnj = []
543                  for j in  range(b2):                  for j in  range(b2):
544                      sumrtn=0                      sumrtn=0
545                      for s in  range(a2):                      for s in  range(a2):
546                          curr = exp1[i][s]*exp2[s][j]                          sumrtn += exp1[i][s]*exp2[s][j]
                     sumrtn += curr  
547                      rtnj.append(sumrtn)                      rtnj.append(sumrtn)
548                  rtn.append(rtnj)                  rtn.append(rtnj)
549              return rtn              return rtn
550          else:          else:
551              raise "inner product is not supported"              raise "inner product is not supported"
552      elif(fty.is_Ten3(ityp1)):      elif(fty.is_Ten3(ityp1)):
553          [n1,n2] = fty.drop_first(ityp1)          [a1,a2, a3] = ashape
554          if(fty.is_Vector(ityp2)):          if(fty.is_Vector(ityp2)):
555              ns = fty.get_vecLength(ityp2)              [b1] = bshape
556                if(a3!=b1):
557                    raise x
558              rtn=[]              rtn=[]
559              for i in  range(n1):              for i in  range(a1):
560                  tmpI=[]                  tmpI=[]
561                  for j in  range(n2):                  for j in  range(a2):
562                      sumrtn=0                      sumrtn=0
563                      for s in  range(ns):                      for s in  range(a3):
564                          curr = exp1[i][j][s]*exp2[s]                          sumrtn += exp1[i][j][s]*exp2[s]
                         sumrtn += curr  
565                      tmpI.append(sumrtn)                      tmpI.append(sumrtn)
566                  rtn.append(tmpI)                  rtn.append(tmpI)
567              return rtn              return rtn
568            if(fty.is_Matrix(ityp2)):
569                [b1,b2] = bshape
570                if(a3!=b1):
571                    raise x
572                rtn=[]
573                for i in  range(a1):
574                    tmpI=[]
575                    for j in  range(a2):
576                        tmpJ = []
577                        for k in range(b2):
578                            sumrtn=0
579                            for s in  range(a3):
580                                sumrtn += exp1[i][j][s]*exp2[s][k]
581                            tmpJ.append(sumrtn)
582                        tmpI.append(tmpJ)
583                    rtn.append(tmpI)
584                return rtn
585          else:          else:
586              raise "inner product is not supported"              raise "inner product is not supported"
587      else:      else:

Legend:
Removed from v.4267  
changed lines
  Added in v.4268

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0