Version 1 (modified by 16 years ago) (diff) | ,
---|
Virtual Matrix
El tipo VMatrix, presentado en la versión 1.1.7, encapsula el tratamiento de matrices especiales que no pueden tratarse de forma eficiente con el tipo Matrix, permitiendo formatos internos polimórficos especializados para distintos tipos de estructuras matriciales. Es decir, en realidad engloba varios subtipos que se clasificarán en virtud de los siguientes conceptos:
- Engine: Cada motor de cálculo requiere sus propios tipos de datos ad-hoc para sacar el máximo partido de sus algoritmos. Se tratará de incluir los principales sistemas de álgebra matricial para tratar los problemas más usuales de matrices densas, sparse, estructuradas (Toeplitz, Vandermonde, ...) e incluso para poder definir matrices como operadores lineales genéricos. Los motores para los que existe interfaz de matriz virtual son actualmente:
o BLAS&LAPACK o CHOLMOD
- Cell: Los tipos de celda posibles serán
o Real o Complex
aunque por el momento sólo se implementará el primero con doble precisión (64 bits). Se estudiará la posibilidad de ampliar a precisión simple (32 bits) y alta precisión (80 bits) en los paquetes en que estén disponibles.
- Store: Cada motor de cálculo puede ofrecer distintas formas de almacenar los datos que definen una matriz en función de su estructura interna y del tipo de algoritmos que se ejecutarán sobre la misma.
Las operaciones realizables con matrices virtuales dependen de cada subtipo lo cual complica algo su uso, pero como contrapartida se tiene acceso a métodos altamente especializados y eficaces.