c=PyPBLAS.pvtranc(alpha,a,beta,c)
La función "PyPBLAS.pvtranc" implementa la siguiente operación entre
matrices con elementos de tipo complejo:
PyPBLASpvtranc
informará de ello y no podrá finalizar la
operación.
Las características de cada uno de los parámetros son las siguientes:
Parametros de Entrada
Parametros de Salida
A continuación mostramos un ejemplo en la utilización de esta rutina:
from PyACTS import * import PyACTS.PyPBLAS as PyPBLAS from RandomArray import * from Numeric import * m,n=8,6 #Initiliaze the Grid PyACTS.gridinit() if PyACTS.iread==1: print "Example of using PyPBLAS 3: PvTRANC" print "N=",n,";nprow x npcol:",PyACTS.nprow,"x",PyACTS.npcol print "Block's size:",PyACTS.mb,"*",PyACTS.nb a=reshape(range(m*n),[n,m])*(1+1.j) print "a=",a c=ones([m,n])*(1-1.j) print "c=",c alpha,beta=2.,3. print "alpha=",alpha,";","beta=",beta else: alpha,a,beta,c=None,None,None,None #We convert Numeric Array to PyACTS.Scalapack Array ACTS_lib=1 # 1=Scalapack alpha=Scal2PyACTS(alpha,ACTS_lib) beta=Scal2PyACTS(beta,ACTS_lib) a=Num2PyACTS(a,ACTS_lib) c=Num2PyACTS(c,ACTS_lib) #We call PBLAS routine c= PyPBLAS.pvtranc(alpha,a,beta,c) c_num=PyACTS2Num(c) if PyACTS.iread==1: print "PvTRANC=",transpose(c_num) PyACTS.gridexit()
[vgaliano@localhost EXAMPLES]$ mpirun -np 4 mpipython exPypvtranc.py Example of using PyPBLAS 3: PvTRANC N= 6 ;nprow x npcol: 2 x 2 Block's size: 2 * 2 a= [[ 0. +0.j 1. +1.j 2. +2.j 3. +3.j 4. +4.j 5. +5.j 6. +6.j 7. +7.j] [ 8. +8.j 9. +9.j 10.+10.j 11.+11.j 12.+12.j 13.+13.j 14.+14.j 15.+15.j] [ 16.+16.j 17.+17.j 18.+18.j 19.+19.j 20.+20.j 21.+21.j 22.+22.j 23.+23.j] [ 24.+24.j 25.+25.j 26.+26.j 27.+27.j 28.+28.j 29.+29.j 30.+30.j 31.+31.j] [ 32.+32.j 33.+33.j 34.+34.j 35.+35.j 36.+36.j 37.+37.j 38.+38.j 39.+39.j] [ 40.+40.j 41.+41.j 42.+42.j 43.+43.j 44.+44.j 45.+45.j 46.+46.j 47.+47.j]] c= [[ 1.-1.j 1.-1.j 1.-1.j 1.-1.j 1.-1.j 1.-1.j] [ 1.-1.j 1.-1.j 1.-1.j 1.-1.j 1.-1.j 1.-1.j] [ 1.-1.j 1.-1.j 1.-1.j 1.-1.j 1.-1.j 1.-1.j] [ 1.-1.j 1.-1.j 1.-1.j 1.-1.j 1.-1.j 1.-1.j] [ 1.-1.j 1.-1.j 1.-1.j 1.-1.j 1.-1.j 1.-1.j] [ 1.-1.j 1.-1.j 1.-1.j 1.-1.j 1.-1.j 1.-1.j] [ 1.-1.j 1.-1.j 1.-1.j 1.-1.j 1.-1.j 1.-1.j] [ 1.-1.j 1.-1.j 1.-1.j 1.-1.j 1.-1.j 1.-1.j]] alpha= 2.0 ; beta= 3.0 PvTRANU= [[ 3. -3.j 5. -5.j 7. -7.j 9. -9.j 11.-11.j 13.-13.j 15.-15.j 17.-17.j] [ 19.-19.j 21.-21.j 23.-23.j 25.-25.j 27.-27.j 29.-29.j 31.-31.j 33.-33.j] [ 35.-35.j 37.-37.j 39.-39.j 41.-41.j 43.-43.j 45.-45.j 47.-47.j 49.-49.j] [ 51.-51.j 53.-53.j 55.-55.j 57.-57.j 59.-59.j 61.-61.j 63.-63.j 65.-65.j] [ 67.-67.j 69.-69.j 71.-71.j 73.-73.j 75.-75.j 77.-77.j 79.-79.j 81.-81.j] [ 83.-83.j 85.-85.j 87.-87.j 89.-89.j 91.-91.j 93.-93.j 95.-95.j 97.-97.j]]
En el ejemplo mostrado podemos ver como generamos las matrices a
y
c
con las dimensiones adecuadas para poder realizar la operación, por
tanto a
es y b
es resultado una matriz
de tamaño .
See Sobre este documento... para sugerencias en cambios.