Instalando Las Librerías Lapack++ En Ubuntu

por | 24 noviembre, 2007

Hola, después de mucho buscar he encontrado cómo instalar las librerías matemáticas Lapack++, las cuales están hechas bajo C++ y nos permiten trabajar con nuestros programas para calcular sistemas lineales de tamaño considerable y su propia aplicación a resolución de E.D.P. mediante Fourier. Nos dan un gran apoyo a la hora de trabajar con matrices dispersas por bloques, matrices de Hermite; o cálculo de vectores y valores propios, entre otras cosas. Pueden ser un gran complemento para las librerías GSL.
Su instalación requiere sólo unos sencillos pasos:
Primero instalar las siguientes dependencias:

sudo apt-get install build-essential lapack3-dev refblas3-dev atlas3-base-dev checkinstall

Una vez hecho esto nos descargamos las librerías Lapack++ en nuestro home del siguiente enlace:

DESCARGAR LAPACK++

Ahora descomprimís el paquete .tar.gz con lo típico de botón derecho del ratón y elegir Extraer Aquí. Accedéis via Nautilus a la nueva carpeta lapackpp-X.X.X, abrid terminal y escribid:

./configure
make
sudo checkinstall
sudo cp /usr/local/lib/liblapackpp.so.5 /usr/lib/

Ya lo tenéis instalado, para compilar el programa que hayáis realizado hacer

g++ miprograma.cpp -o miprograma -llapackpp

Os dejo un pequeño programa en el que se calcula los valores y vectores propios de una matriz. Este programa tiene nula utilidad ya que sólo lo calcula para una matriz determinada de pequeño tamaño, pero es bastante útil para introducirse en el funcionamiento de lapack++ y también para ver si hemos instalado bien Lapack++ en nuestro Ubuntu.

  1. #include<iostream>
  2. #include<lapackpp/laslv.h>
  3.  
  4. using namespace std;
  5.  
  6. int main(int argc, char **argv)
  7. {
  8. double a[]={ 1.0, 1/2.0, 1/3.0, 1/4.0,
  9.                   1/2.0, 1/3.0, 1/4.0, 1/5.0,
  10.                   1/3.0, 1/4.0, 1/5.0, 1/6.0,
  11.                   1/4.0, 1/5.0, 1/6.0, 1/7.0 };
  12. LaVectorDouble v(4);
  13. LaVectorDouble c(4);
  14.  
  15. LaGenMatDouble A(a,4,4);
  16. LaEigSolve(A,c,v,A);
  17.  
  18. cout<<A<<"\t";
  19. cout<<"\nLos valores y vectores propios son:"<<endl;
  20. cout<<c<<" + "<<v<<"i"<<endl;
  21. return(0);
  22. }

Podéis encontrar información sobre las clases y funciones en el siguiente enlace:

DOCUMENTACION LAPACK++

Fuente-> Documentación Community Ubuntu

Saludos

10 pensamientos en “Instalando Las Librerías Lapack++ En Ubuntu

  1. Jhov

    En esta línea sudo cp /usr/local/local/liblapackpp.so.5 /usr/lib/ creo que el segundo local está mal y debería ser lib, o por lo menos a mí no se me creó ese segundo local y si dentro de lib.
    Tampoco se me creó un sudo liblapackpp.so.5 si no liblapackpp.so.14. Otra cosa fue que en vez de sudo checkinstall usé sudo make install porque ese primero nunca lo había escuchado y pues no me funciona. Y por último, los primeros paquetes no los encuentro, ¿habrá que agregar algún repositorio? aunque igual creo que es es para usar lapack, blas y atlas y pues esas ya las tenía en el PC, ya he hecho programas usando esas librerías.
    Agradezco cualquier respuesta de su parte e igual gracias por subir estas bien resumidas instrucciones.

  2. Cristobal

    Hola Jhov, cambiada la línea, se me coló al escribirla, gracias.
    Lo de liblapackpp.so.5, el número cambia según la versión que instales.
    Lo de checkinstall es para obetener un paquete debianizado, puedes hacer lo de make install perfectamente.
    Lo de que no encuentras los paquetes en los repositorios seguramente es porque hayan sido actualizados, en vez de libblas3 se llamará libblas4 o lo que sea.
    Hasta luego.

  3. Jhov

    Bien, gracias por responder y pues afortunadamente ya me funcionó, solo tuve un problema al probar el código que está ela entrada, me arrojaba errorres del tipo:
    error: stray ‘\342’ in program
    error: stray ‘\200’ in program
    error: stray ‘\234’ in program
    Y averiguando un poco supe que era por las comillas, al copiar el programa las comillas usadas por el no son las propias del ASCII así que hay que cambiarlas. Luego de esto todo perfecto.
    Gracias de nuevo por la entrada.

  4. esteban

    Hola, antes que nada te doy las gracias ya que el ejemplo me funciono muy bien. pero cuando lo quice ejecutar desde anjuta no lo pude hacer. Si bien lo compila sin problemas, luego no me permite ejecutarlo.

    Error: INVOKINKG LIBTOOL FOR LINKING.
    Pienso que es por que quiza tenga que incluir la libreria lapackpp en el makefile o algo asi. podrias ayudarme. muchas gracias!…

  5. José Guerrero

    Hola, Cristobal

    Lo instalé en Debian, con algunas modificaciones, y corrió bien. Por cierto, en el copy/paste te faltó la { de apertura del main.

    Saludos

  6. José Guerrero

    De nada. Por cierto, ya tu repo también lo probé; pero en Ubuntu y funcionó perfecto. Lo que pasa es que quería hacerlo de las dos maneras.

    Saludos

  7. Pingback: Instalando las librerias Lapack++ en Debian |

  8. Pingback: Instalar Lapackpp (librería estándar para álgebra lineal) en Pardus 2009.2 | Pardus Life

Los comentarios están cerrados.