c=PyPBLAS.pvtranu(alpha,a,beta,c)
La función "PyPBLAS.pvtranu" implementa la siguiente operación entre
matrices con elementos de tipo complejo:
PyPBLASpvtranu
informará de ello y no podrá finalizar la
operación.
Se ha de tener en cuenta que los vectores,matrices y escalares de entrada han de ser de tipo PyACTS. 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: PvTRANU" 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.pvtranu(alpha,a,beta,c) c_num=PyACTS2Num(c) if PyACTS.iread==1: print "PvTRANU=",transpose(c_num) PyACTS.gridexit()
vgaliano@localhost EXAMPLES]$ mpirun -np 4 mpipython exPypvtranu.py Example of using PyPBLAS 3: PvTRANU 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. -1.j 7. +1.j 9. +3.j 11. +5.j 13. +7.j 15. +9.j 17.+11.j] [ 19.+13.j 21.+15.j 23.+17.j 25.+19.j 27.+21.j 29.+23.j 31.+25.j 33.+27.j] [ 35.+29.j 37.+31.j 39.+33.j 41.+35.j 43.+37.j 45.+39.j 47.+41.j 49.+43.j] [ 51.+45.j 53.+47.j 55.+49.j 57.+51.j 59.+53.j 61.+55.j 63.+57.j 65.+59.j] [ 67.+61.j 69.+63.j 71.+65.j 73.+67.j 75.+69.j 77.+71.j 79.+73.j 81.+75.j] [ 83.+77.j 85.+79.j 87.+81.j 89.+83.j 91.+85.j 93.+87.j 95.+89.j 97.+91.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.