Por que estou faltando funções GSL polinomiais do Hermite [libgsl-dev]?

1

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á.

    
por jman 19.02.2018 / 00:37

1 resposta

1

O mencionado arquivo de cabeçalho gsl/gsl_sf_hermite.h está disponível nos lançamentos mais recentes do Ubuntu:

por N0rbert 19.02.2018 / 10:08