O mencionado arquivo de cabeçalho gsl/gsl_sf_hermite.h
está disponível nos lançamentos mais recentes do Ubuntu:
Eu instalei o GSL no ubntu 16.04 usando:
sudo apt-get install libgsl2 libgsl-dev gsl-bin
A versão instalada é 2.1 + dfsg-2. Isso funciona em algumas coisas, mas não conseguiu calcular polinômios de hermite. O código de teste é:
// include files
#include <iostream>
#include <iomanip>
#include <fstream>
#include <math.h>
using namespace std;
#include <gsl/gsl_sf_bessel.h> // gsl Bessel special function header
file
//packages I need
#include <gsl/gsl_sf_gamma.h>
#include <gsl/gsl_sf_hermite.h>
int
main (void)
{
double x = 5.0; // just a random test value
double y = gsl_sf_bessel_J0 (x); // see the GSL manual for details
cout << "J0(" << x << ") = "
<< setprecision(18) << setw(20) << y << endl;
y = gsl_sf_hermite_phys(10,x); // see the GSL manual for details
cout << "H10(" << x << ") = "
<< setprecision(18) << setw(20) << y << endl;
return 0;
}
Isso não compila com g++ gsl_test.cpp -lgsl -lgslcblas -lm
. O erro é:
gsl_test.cpp:(.text+0xcd): undefined reference to'gsl_sf_hermite_phys'
collect2: error: ld returned 1 exit status
Eu sei que "gsl_sf_hermite_phys" existe porque eu posso usar isso em um sistema onde eu instalei o gsl manualmente. Se o pior acontecer, posso instalar o gsl manualmente, mas gostaria de poder usar apenas um comando de terminal para instalar e ter uma instalação de GSL totalmente funcional e atualizada.
** Update: ** Acontece que o cabeçalho gsl / gsl_sf_hermite.h não está em 2.1 + dfsg-2. Eu devo ter over-written uma instalação antiga sem perceber.
Acho que minha pergunta é por que os polinômios de hermite não estão lá e como instalar o GSL via terminal para que eles estejam lá.
O mencionado arquivo de cabeçalho gsl/gsl_sf_hermite.h
está disponível nos lançamentos mais recentes do Ubuntu: