9.7.15 pvormrz

c,info= PySLK.pvormrz(a,c,tau,[k=0,l=0,side='L',trans='N'])
La rutina "pvormrq" sobreescribe la matriz distribuida $C$ por :
Si trans='N': $Q C$ (si side='L') o $C Q$ (si side='R')
Si trans='T': $Q^T C$ (si side='R') o $C Q^T$ (si side='L')
donde Q es una matriz de tamaño $m\times n$ con columnas ortonormales, las cuales estan definidas como las primeras $n $ columnas de un producto de $k$ reflectores elementales de orden $m$

\begin{displaymath}Q= H_1, H_2, \ldots H_k \end{displaymath}

Esta rutina se provee para matrices con elementos de tipo real y complejo. Las características de cada uno de los parámetros son las siguientes:

A continuación mostramos un ejemplo en la utilización de esta rutina:

from  PyACTS import *
import PyACTS.PyScaLAPACK as PySLK
from RandomArray import *
from Numeric import *
n,nrhs=8,2
#Initiliaze the Grid
PyACTS.gridinit(nb=2)
if PyACTS.iread==1:
    print "Ejemplo de Utilizacion ScaLAPACK: PvORMRZ"
    print "N=",n,";nprow x npcol:",PyACTS.nprow,"x",PyACTS.npcol
    print "Tam. Bloques:",PyACTS.mb,"*",PyACTS.nb
    a=8*identity(n,Float)+ones([n,n],Float)
    print "a=c=",a
    c=8*identity(n,Float)
else:
    a,c=None,None
#We convert Numeric Array to PyACTS.Scalapack Array
ACTS_lib=1 # 1=Scalapack
a=Num2PyACTS(a,ACTS_lib)
c=Num2PyACTS(c,ACTS_lib)
#We call ScaLAPACK routine
a,tau,info= PySLK.pvtzrzf(a)
c,info= PySLK.pvormrz(a,c,tau,k=1,l=1,side='R',trans='T')
c=PyACTS2Num(c)
if PyACTS.iread==1:
    print "C-->",c
    print "Info:",info
PyACTS.gridexit()
El resultado de este código es el siguiente:
mpirun -np 1 /home/vgaliano/mpipython/mpipython exPyScapvormrz.py 
Ejemplo de Utilizacion ScaLAPACK: PvORMRZ
N= 8 ;nprow x npcol: 1 x 1
Tam. Bloques: 2 * 2
a=c= [[ 9.  1.  1.  1.  1.  1.  1.  1.]
 [ 1.  9.  1.  1.  1.  1.  1.  1.]
 [ 1.  1.  9.  1.  1.  1.  1.  1.]
 [ 1.  1.  1.  9.  1.  1.  1.  1.]
 [ 1.  1.  1.  1.  9.  1.  1.  1.]
 [ 1.  1.  1.  1.  1.  9.  1.  1.]
 [ 1.  1.  1.  1.  1.  1.  9.  1.]
 [ 1.  1.  1.  1.  1.  1.  1.  9.]]
C--> [[ 8.  0.  0.  0.  0.  0.  0.  0.]
 [ 0.  8.  0.  0.  0.  0.  0.  0.]
 [ 0.  0.  8.  0.  0.  0.  0.  0.]
 [ 0.  0.  0.  8.  0.  0.  0.  0.]
 [ 0.  0.  0.  0.  8.  0.  0.  0.]
 [ 0.  0.  0.  0.  0.  8.  0.  0.]
 [ 0.  0.  0.  0.  0.  0.  8.  0.]
 [ 0.  0.  0.  0.  0.  0.  0.  8.]]
Info: 0

See Sobre este documento... para sugerencias en cambios.