Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Las rutinas driver y computational tienen su nombre estructurado de la siguiente forma XYYZZ
o XYYZZZ.
La primera letra X, indica el tipo de dato a utilizar, siendo las opciones siguientes:
Tipo de dato
S Real
D Real doble precisión
C Complejo
Z Complejo doble precisión
Las siguiente dos letras YY, indican el tipo de matriz o la más significativa del cálculo. La
mayoría de códigos de dos letras se aplican tanto a matrices reales como complejas, algunas solo
funcionan un tipo en específico, esto se indica en la siguiente tabla.
Tipo de Matrices
BD bidiagonal
DI diagonal
GB general band
GE general (i.e., unsymmetric, in some cases rectangular)
GG general matrices, generalized problem (i.e., a pair of general matrices)
GT general tridiagonal
HB (complex) Hermitian band
HE (complex) Hermitian
HG upper Hessenberg matrix, generalized problem (i.e a Hessenberg and a
triangular matrix)
HP (complex) Hermitian, packed storage
HS upper Hessenberg
OP (real) orthogonal, packed storage
OR (real) orthogonal
PB symmetric or Hermitian positive definite band
PO symmetric or Hermitian positive definite
PP symmetric or Hermitian positive definite, packed storage
PT symmetric or Hermitian positive definite tridiagonal
SB (real) symmetric band
SP symmetric, packed storage
ST (real) symmetric tridiagonal
SY symmetric
TB triangular band
TG triangular matrices, generalized problem (i.e., a pair of triangular matrices)
TP triangular, packed storage
TR triangular (or in some cases quasi-triangular)
TZ trapezoidal
UN (complex) unitary
UP (complex) unitary, packed storage
Por su parte, las últimas dos o tres letras ZZZ indican el cálculo que se va a realizar.
Algo a destacar es que cuando se refiere a una rutina de forma genérica, donde el tipo de dato a
utilizarse es independiente entonces se remplaza la primera letra del nombre de la rutina por la
letra “x”, por ejemplo, xGESV se refiere a algunas o todas las rutinas SGESV, CGESV, DGESV
y ZGESV. También cuando nos referimos a una clase de rutina que realiza la misma función en
diferentes tipos de matrices, reemplazamos las primeras tres letras por “xyy”, por ejemplo,
xyySVX se refiere a todas las rutinas driver expert para sistemas de ecuaciones lineales (SVX).
Para ejemplificar todo lo anterior, tenemos la rutina SGEBRD que sería una rutina que trabaja
con numero reales de precisión simple (S) que realiza una reducción bidiagonal (BRD) de una
matriz general (GE).
Ambas forman podrían ser de utilidad, todo dependerá de cómo se decida abordar el problema,
dichas formas se muestran a continuación (Chopra).
Standard Eigenvalue and Singular Value Problems.
En esta forma encontramos tres divisiones distintas, las cuales dependen de la simetría de las
matrices utilizadas.
1. Symmetric Eigenproblems (SEP)
Estas rutinas son aplicables a matrices simétricas cuadradas y hermitiana, cuenta con
cuatro tipos de rutinas para resolver el problema de valores y vectores propios. Siempre
sus valores propios serán números reales.
Simple driver (nombre termina en EV): Calcula todos los valores propios y
opcionalmente vectores propios.
Expert driver (nombre termina en EVX): Calcula todos o un subconjunto
seleccionado de valores propios y opcionalmente los vectores propios. Debido a
esto es más rápida a la rutina Simple driver.
Divide-and-conquer driver (nombre termina en EVD): Resuelve el mismo
problema que la rutina Simple driver. Es más rápida que la rutina Simple cuando
se trabaja con matrices grandes, pero requiere más espacio de trabajo.
Relatively Robust Representation driver (nombre termina en EVR): Resuelve el
mismo problema que la rutina Experter dirver, pero es el algoritmo más rápido
de todos y utiliza el menor espacio de trabajo.
Para estas rutinas es necesario que ambas matrices (A y B) sean matrices simétricas
cuadradas o hermitiana, además B tiene ser definida positiva. Se tienen tres tipos de
rutinas para resolver el problema de valores y vectores propios. Siempre sus valores
propios serán números reales. Las rutinas hacen exactamente lo mismo que las descritas
en Symmetric Eigenproblems (SEP), por lo tanto, solamente se mostraran sus nombres.
Estas rutinas son aplicables a cuando las matrices A y B son matrices cuadradas no
simétricas y no hermitiana, cuenta con cuatro tipos de rutinas para resolver el problema
de valores y vectores propios, haciendo uso de la factorización de Schur. El resultado
contará con valores propios complejos, que se producen en pares conjugados. Las rutinas
realizan lo mismo (solo que ahora para las dos matrices) que las descritas en
Nonsymmetric Eigenproblems (NEP), por lo que solo se dejaran los nombres.
xGGES: Es una rutina Simple drive.
xGGESX: Es una rutina Expert drive.
xGGEV: Es una rutina Simple drive.
xGGEVX: Es una rutina Expert drive.
COMENTARIOS
Me gustaría agregar que considero como más óptimo implementar las rutinas pertenecientes al
grupo de Generalized Eigenvalue and Singular Value Problems esto con el objetivo de no tener
que realizar niguna operación entre matrices que son necesarias para obtener el planteamiento
Standard Eigenvalue and Singular Value Problems. Por su parte, dependiendo de las condiciones
y características que presenten las matrices de rigidez y masa del sistema optar por la más
conveniente, que considerando que las matrices obtenidas serán simétricas con números reales
deberíamos si fuera necesario optar por hace pruebas de velocidad para determinado ejemplo con
las tres opciones que tenemos de rutinas.
Como es claro, todas las matrices serán almacenadas de la forma en que soliciten menor cantidad
de memoria, por lo que si se presentan matrices en bandas será necesario almacenar las matrices
de entrada como se describe en este documento. Esta modificación de las matrices se deberá
realizar antes para cuando sean utilizadas en la rutina ya se encuentren de la forma necesaria.