octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: GSL in octave


From: Tatsuro MATSUOKA
Subject: Re: GSL in octave
Date: Sun, 17 Jul 2016 11:55:31 +0900 (JST)

> From: Susi Lehtola 

> To: octave-maintainers> Cc: 
> Date: 2016/7/17, Sun 09:35
> Subject: Re: GSL in octave
> 
> On 07/15/2016 11:06 AM, Susi Lehtola wrote:
>>  On 07/15/2016 04:44 AM, Julien Bect wrote:
>>>  Le 15/07/2016 à 13:22, Carnë Draug a écrit :
>>>  Alternatively, you can make a public clone of the hg repo (e.g., on
>>>  Sourceforge), prepare your changesets there, and then make a pull
>>>  request (on the patch tracker and/or on the maintainers list).
>> 
>>  Oh that's great. I can get to work in it then.
> 
> OK, a new version available at
>   https://sourceforge.net/u/jussilehtola/octave/ci/default/tree/
> 
> and some testing would be welcome. I rewrote part of the wrappers, since they 
> were duplicating code.
> 
> In addition to the Laguerre polynomials, I also added:
> 
> betainc_gsl, choose, conicalP_cyl_reg, conicalP_sph_reg, debye_5,
> debye_6, dilog, doublefact, ellint_D, ellint_E, ellint_F, ellint_P,
> ellint_Pcomp, ellint_RC, ellint_RD, ellint_RF, ellint_RJ, factorial_gsl,
> gegenpoly_n, hydrogenicR, hyperg_1F1_int, hyperg_U_int, lnchoose,
> lnfact, lndoublefact, mathieu_a, mathieu_b, mathieu_ce, mathieu_se,
> mathieu_Mc, mathieu_Ms
> -- Susi Lehtola
> Fedora Project Contributor
> address@hidden


Results on Ubuntu 14.04 LTS amd64
gsl 1.16-1 and its dev from ubuntu repo.


$ hg clone http://hg.code.sf.net/u/jussilehtola/octave u-jussilehtola-octave
$ cd u-jussilehtola-octave/src
$ ./bootstrap

Archived the directory u-jussilehtola-octave as gsl-test.tar.gz

start octave-cli with LANG=C (to get English message).

>> cd (directory where gsl-test.tar.gz exist)
>> pkg install -verbose gsl-test.tar.gz


Output (suggesting errors)
*************************************************************************************
mkdir (/tmp/oct-nzJEBd)

untar (gsl-test.tar.gz, /tmp/oct-nzJEBd)
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for mkoctfile... /opt/octave/4.0.3/bin/mkoctfile-4.0.3 --verbose
g++ -c  -fPIC -I/opt/octave/4.0.3/include/octave-4.0.3/octave/.. 
-I/opt/octave/4.0.3/include/octave-4.0.3/octave -I/opt/octave/4.0.3/include 
-pthread -fopenmp -g -O2    conftest.cc -o conftest.o
g++ -I/opt/octave/4.0.3/include/octave-4.0.3/octave/.. 
-I/opt/octave/4.0.3/include/octave-4.0.3/octave -I/opt/octave/4.0.3/include 
-pthread -fopenmp -g -O2 -shared -Wl,-Bsymbolic  -o conftest.oct  conftest.o   
-L/opt/octave/4.0.3/lib/octave/4.0.3 -L/opt/octave/4.0.3/lib -loctinterp 
-loctave   
retrieving compile and link flags from /opt/octave/4.0.3/bin/mkoctfile-4.0.3 
--verbose
checking for F77_FUNC... g++ -c  -fPIC 
-I/opt/octave/4.0.3/include/octave-4.0.3/octave/.. 
-I/opt/octave/4.0.3/include/octave-4.0.3/octave -I/opt/octave/4.0.3/include 
-pthread -fopenmp -g -O2    conftest.cc -o conftest.o
yes
checking for octave... /opt/octave/4.0.3/bin/octave-4.0.3
checking for OCTAVE_VERSION in Octave... 4.0.3
checking for octave_config_info('canonical_host_type') in Octave... 
x86_64-pc-linux-gnu
checking for octave_config_info('SHLEXT') in Octave... so
checking whether ln -s works... yes
checking for ranlib... ranlib
checking for strip... strip
checking for gsl_message in -lgsl... yes
checking for gsl_sf_hazard in -lgsl... yes
checking for gsl_sf_gamma_inc in -lgsl... yes
configure: creating ./config.status
config.status: creating Makeconf
 
  "$prefix" is /home/tatsuro/octave/gsl-1.2.0
  "$exec_prefix" is ${prefix}

octave commands will install into the following directories:
   m-files:   /opt/octave/4.0.3/share/octave/4.0.3/site/m/octave-forge
   oct-files: 
/opt/octave/4.0.3/lib/octave/4.0.3/site/oct/x86_64-pc-linux-gnu/octave-forge
   binaries:  
/opt/octave/4.0.3/libexec/octave/4.0.3/site/exec/x86_64-pc-linux-gnu
alternatives:
   m-files:   
/opt/octave/4.0.3/share/octave/4.0.3/site/octave-forge-alternatives/m
   oct-files: 
/opt/octave/4.0.3/lib/octave/4.0.3/site/octave-forge-alternatives/oct/x86_64-pc-linux-gnu

shell commands will install into the following directories:
   binaries:  ${exec_prefix}/bin
   man pages: ${datarootdir}/man
   libraries: ${exec_prefix}/lib
   headers:   ${prefix}/include

octave-forge is configured with
   octave:      /opt/octave/4.0.3/bin/octave-4.0.3 (version 4.0.3)
   mkoctfile:   /opt/octave/4.0.3/bin/mkoctfile-4.0.3 --verbose for Octave 3
   GSL toolbox: yes

find . -name NOINSTALL -print    # shows which toolboxes won't be installed

make: Entering directory `/tmp/oct-nzJEBd/u-jussilehtola-octave/src'
/bin/bash buildgsl_sf.sh 
/opt/octave/4.0.3/bin/mkoctfile-4.0.3 --verbose -DHAVE_OCTAVE_40 -v  
coupling_3j.cc -lgsl
g++ -c  -fPIC -I/opt/octave/4.0.3/include/octave-4.0.3/octave/.. 
-I/opt/octave/4.0.3/include/octave-4.0.3/octave -I/opt/octave/4.0.3/include 
-pthread -fopenmp -g -O2    -DHAVE_OCTAVE_40 coupling_3j.cc -o coupling_3j.o
/opt/octave/4.0.3/bin/mkoctfile-4.0.3 --verbose -DHAVE_OCTAVE_40 -v  
coupling_6j.cc -lgsl
g++ -c  -fPIC -I/opt/octave/4.0.3/include/octave-4.0.3/octave/.. 
-I/opt/octave/4.0.3/include/octave-4.0.3/octave -I/opt/octave/4.0.3/include 
-pthread -fopenmp -g -O2    -DHAVE_OCTAVE_40 coupling_6j.cc -o coupling_6j.o
g++ -I/opt/octave/4.0.3/include/octave-4.0.3/octave/.. 
-I/opt/octave/4.0.3/include/octave-4.0.3/octave -I/opt/octave/4.0.3/include 
-pthread -fopenmp -g -O2 -shared -Wl,-Bsymbolic  -o coupling_3j.oct  
coupling_3j.o   -lgsl -L/opt/octave/4.0.3/lib/octave/4.0.3 
-L/opt/octave/4.0.3/lib -loctinterp -loctave   
/opt/octave/4.0.3/bin/mkoctfile-4.0.3 --verbose -DHAVE_OCTAVE_40 -v  
coupling_9j.cc -lgsl
g++ -c  -fPIC -I/opt/octave/4.0.3/include/octave-4.0.3/octave/.. 
-I/opt/octave/4.0.3/include/octave-4.0.3/octave -I/opt/octave/4.0.3/include 
-pthread -fopenmp -g -O2    -DHAVE_OCTAVE_40 coupling_9j.cc -o coupling_9j.o
g++ -I/opt/octave/4.0.3/include/octave-4.0.3/octave/.. 
-I/opt/octave/4.0.3/include/octave-4.0.3/octave -I/opt/octave/4.0.3/include 
-pthread -fopenmp -g -O2 -shared -Wl,-Bsymbolic  -o coupling_6j.oct  
coupling_6j.o   -lgsl -L/opt/octave/4.0.3/lib/octave/4.0.3 
-L/opt/octave/4.0.3/lib -loctinterp -loctave   
/opt/octave/4.0.3/bin/mkoctfile-4.0.3 --verbose -DHAVE_OCTAVE_40 -v  
legendre_sphPlm_array.cc -lgsl
g++ -c  -fPIC -I/opt/octave/4.0.3/include/octave-4.0.3/octave/.. 
-I/opt/octave/4.0.3/include/octave-4.0.3/octave -I/opt/octave/4.0.3/include 
-pthread -fopenmp -g -O2    -DHAVE_OCTAVE_40 legendre_sphPlm_array.cc -o 
legendre_sphPlm_array.o
g++ -I/opt/octave/4.0.3/include/octave-4.0.3/octave/.. 
-I/opt/octave/4.0.3/include/octave-4.0.3/octave -I/opt/octave/4.0.3/include 
-pthread -fopenmp -g -O2 -shared -Wl,-Bsymbolic  -o coupling_9j.oct  
coupling_9j.o   -lgsl -L/opt/octave/4.0.3/lib/octave/4.0.3 
-L/opt/octave/4.0.3/lib -loctinterp -loctave   
/opt/octave/4.0.3/bin/mkoctfile-4.0.3 --verbose -DHAVE_OCTAVE_40 -v  gsl_sf.cc 
-lgsl
g++ -c  -fPIC -I/opt/octave/4.0.3/include/octave-4.0.3/octave/.. 
-I/opt/octave/4.0.3/include/octave-4.0.3/octave -I/opt/octave/4.0.3/include 
-pthread -fopenmp -g -O2    -DHAVE_OCTAVE_40 gsl_sf.cc -o gsl_sf.o
g++ -I/opt/octave/4.0.3/include/octave-4.0.3/octave/.. 
-I/opt/octave/4.0.3/include/octave-4.0.3/octave -I/opt/octave/4.0.3/include 
-pthread -fopenmp -g -O2 -shared -Wl,-Bsymbolic  -o legendre_sphPlm_array.oct  
legendre_sphPlm_array.o   -lgsl -L/opt/octave/4.0.3/lib/octave/4.0.3 
-L/opt/octave/4.0.3/lib -loctinterp -loctave   
gsl_sf.cc: In function 'octave_value_list Fmathieu_a(const octave_value_list&, 
int)':
gsl_sf.cc:4628:74: error: 'gsl_sf_mathieu_a_e' was not declared in this scope
  gsl_sf_mathieu_a_e (static_cast<int>(n.xelem(i)), x.xelem(i), &result[i]);
                                                                          ^
gsl_sf.cc:4632:74: error: 'gsl_sf_mathieu_a_e' was not declared in this scope
  gsl_sf_mathieu_a_e (static_cast<int>(n.xelem(i)), x.xelem(0), &result[i]);
                                                                          ^
gsl_sf.cc:4636:74: error: 'gsl_sf_mathieu_a_e' was not declared in this scope
  gsl_sf_mathieu_a_e (static_cast<int>(n.xelem(0)), x.xelem(i), &result[i]);
                                                                          ^
gsl_sf.cc:4639:79: error: 'gsl_sf_mathieu_a_e' was not declared in this scope
      gsl_sf_mathieu_a_e (static_cast<int>(n.xelem(0)), x.xelem(0), &result[0]);
                                                                              ^
gsl_sf.cc: In function 'octave_value_list Fmathieu_b(const octave_value_list&, 
int)':
gsl_sf.cc:4721:74: error: 'gsl_sf_mathieu_b_e' was not declared in this scope
  gsl_sf_mathieu_b_e (static_cast<int>(n.xelem(i)), x.xelem(i), &result[i]);
                                                                          ^
gsl_sf.cc:4725:74: error: 'gsl_sf_mathieu_b_e' was not declared in this scope
  gsl_sf_mathieu_b_e (static_cast<int>(n.xelem(i)), x.xelem(0), &result[i]);
                                                                          ^
gsl_sf.cc:4729:74: error: 'gsl_sf_mathieu_b_e' was not declared in this scope
  gsl_sf_mathieu_b_e (static_cast<int>(n.xelem(0)), x.xelem(i), &result[i]);
                                                                          ^
gsl_sf.cc:4732:79: error: 'gsl_sf_mathieu_b_e' was not declared in this scope
      gsl_sf_mathieu_b_e (static_cast<int>(n.xelem(0)), x.xelem(0), &result[0]);
                                                                              ^
gsl_sf.cc: In function 'octave_value_list Fellint_D(const octave_value_list&, 
int)':
gsl_sf.cc:8060:66: error: invalid conversion from 'gsl_sf_result* {aka 
gsl_sf_result_struct*}' to 'gsl_mode_t {aka unsigned int}' [-fpermissive]
       gsl_sf_ellint_D_e (n.xelem(i), x.xelem(i), mode, &result[i]);
                                                                  ^
gsl_sf.cc:8060:66: error: too few arguments to function 'int 
gsl_sf_ellint_D_e(double, double, double, gsl_mode_t, gsl_sf_result*)'
In file included from /usr/include/gsl/gsl_sf.h:17:0,
                 from gsl_sf.cc:21:
/usr/include/gsl/gsl_sf_ellint.h:84:5: note: declared here
 int gsl_sf_ellint_D_e(double phi, double k, double n, gsl_mode_t mode, gsl_sf_r
     ^
gsl_sf.cc:8064:66: error: invalid conversion from 'gsl_sf_result* {aka 
gsl_sf_result_struct*}' to 'gsl_mode_t {aka unsigned int}' [-fpermissive]
       gsl_sf_ellint_D_e (n.xelem(i), x.xelem(0), mode, &result[i]);
                                                                  ^
gsl_sf.cc:8064:66: error: too few arguments to function 'int 
gsl_sf_ellint_D_e(double, double, double, gsl_mode_t, gsl_sf_result*)'
In file included from /usr/include/gsl/gsl_sf.h:17:0,
                 from gsl_sf.cc:21:
/usr/include/gsl/gsl_sf_ellint.h:84:5: note: declared here
 int gsl_sf_ellint_D_e(double phi, double k, double n, gsl_mode_t mode, gsl_sf_r
     ^
gsl_sf.cc:8068:66: error: invalid conversion from 'gsl_sf_result* {aka 
gsl_sf_result_struct*}' to 'gsl_mode_t {aka unsigned int}' [-fpermissive]
       gsl_sf_ellint_D_e (n.xelem(0), x.xelem(i), mode, &result[i]);
                                                                  ^
gsl_sf.cc:8068:66: error: too few arguments to function 'int 
gsl_sf_ellint_D_e(double, double, double, gsl_mode_t, gsl_sf_result*)'
In file included from /usr/include/gsl/gsl_sf.h:17:0,
                 from gsl_sf.cc:21:
/usr/include/gsl/gsl_sf_ellint.h:84:5: note: declared here
 int gsl_sf_ellint_D_e(double phi, double k, double n, gsl_mode_t mode, gsl_sf_r
     ^
gsl_sf.cc:8071:64: error: invalid conversion from 'gsl_sf_result* {aka 
gsl_sf_result_struct*}' to 'gsl_mode_t {aka unsigned int}' [-fpermissive]
     gsl_sf_ellint_D_e (n.xelem(0), x.xelem(0), mode, &result[0]);
                                                                ^
gsl_sf.cc:8071:64: error: too few arguments to function 'int 
gsl_sf_ellint_D_e(double, double, double, gsl_mode_t, gsl_sf_result*)'
In file included from /usr/include/gsl/gsl_sf.h:17:0,
                 from gsl_sf.cc:21:
/usr/include/gsl/gsl_sf_ellint.h:84:5: note: declared here
 int gsl_sf_ellint_D_e(double phi, double k, double n, gsl_mode_t mode, gsl_sf_r
     ^
gsl_sf.cc: In function 'octave_value_list Fmathieu_ce(const octave_value_list&, 
int)':
gsl_sf.cc:10376:37: error: 'gsl_sf_mathieu_ce_e' was not declared in this scope
   n.xelem(i), x.xelem(i), &result[i]);
                                     ^
gsl_sf.cc:10387:37: error: 'gsl_sf_mathieu_ce_e' was not declared in this scope
   n.xelem(i), x.xelem(0), &result[i]);
                                     ^
gsl_sf.cc:10398:37: error: 'gsl_sf_mathieu_ce_e' was not declared in this scope
   n.xelem(0), x.xelem(i), &result[i]);
                                     ^
gsl_sf.cc:10409:37: error: 'gsl_sf_mathieu_ce_e' was not declared in this scope
   n.xelem(i), x.xelem(i), &result[i]);
                                     ^
gsl_sf.cc:10416:37: error: 'gsl_sf_mathieu_ce_e' was not declared in this scope
   n.xelem(i), x.xelem(0), &result[i]);
                                     ^
gsl_sf.cc:10423:37: error: 'gsl_sf_mathieu_ce_e' was not declared in this scope
   n.xelem(0), x.xelem(i), &result[i]);
                                     ^
gsl_sf.cc:10429:42: error: 'gsl_sf_mathieu_ce_e' was not declared in this scope
        n.xelem(0), x.xelem(0), &result[0]);
                                          ^
gsl_sf.cc: In function 'octave_value_list Fmathieu_se(const octave_value_list&, 
int)':
gsl_sf.cc:10518:37: error: 'gsl_sf_mathieu_se_e' was not declared in this scope
   n.xelem(i), x.xelem(i), &result[i]);
                                     ^
gsl_sf.cc:10529:37: error: 'gsl_sf_mathieu_se_e' was not declared in this scope
   n.xelem(i), x.xelem(0), &result[i]);
                                     ^
gsl_sf.cc:10540:37: error: 'gsl_sf_mathieu_se_e' was not declared in this scope
   n.xelem(0), x.xelem(i), &result[i]);
                                     ^
gsl_sf.cc:10551:37: error: 'gsl_sf_mathieu_se_e' was not declared in this scope
   n.xelem(i), x.xelem(i), &result[i]);
                                     ^
gsl_sf.cc:10558:37: error: 'gsl_sf_mathieu_se_e' was not declared in this scope
   n.xelem(i), x.xelem(0), &result[i]);
                                     ^
gsl_sf.cc:10565:37: error: 'gsl_sf_mathieu_se_e' was not declared in this scope
   n.xelem(0), x.xelem(i), &result[i]);
                                     ^
gsl_sf.cc:10571:42: error: 'gsl_sf_mathieu_se_e' was not declared in this scope
        n.xelem(0), x.xelem(0), &result[0]);
                                          ^
gsl_sf.cc: In function 'octave_value_list Fmathieu_Mc(const octave_value_list&, 
int)':
gsl_sf.cc:11480:37: error: 'gsl_sf_mathieu_Mc_e' was not declared in this scope
   n.xelem(i), x.xelem(i), &result[i]);
                                     ^
gsl_sf.cc:11492:37: error: 'gsl_sf_mathieu_Mc_e' was not declared in this scope
   n.xelem(i), x.xelem(0), &result[i]);
                                     ^
gsl_sf.cc:11504:37: error: 'gsl_sf_mathieu_Mc_e' was not declared in this scope
   n.xelem(0), x.xelem(i), &result[i]);
                                     ^
gsl_sf.cc:11516:37: error: 'gsl_sf_mathieu_Mc_e' was not declared in this scope
   n.xelem(i), x.xelem(i), &result[i]);
                                     ^
gsl_sf.cc:11528:37: error: 'gsl_sf_mathieu_Mc_e' was not declared in this scope
   n.xelem(i), x.xelem(i), &result[i]);
                                     ^
gsl_sf.cc:11540:37: error: 'gsl_sf_mathieu_Mc_e' was not declared in this scope
   n.xelem(i), x.xelem(0), &result[i]);
                                     ^
gsl_sf.cc:11552:37: error: 'gsl_sf_mathieu_Mc_e' was not declared in this scope
   n.xelem(0), x.xelem(i), &result[i]);
                                     ^
gsl_sf.cc:11564:37: error: 'gsl_sf_mathieu_Mc_e' was not declared in this scope
   n.xelem(i), x.xelem(i), &result[i]);
                                     ^
gsl_sf.cc:11572:37: error: 'gsl_sf_mathieu_Mc_e' was not declared in this scope
   n.xelem(i), x.xelem(0), &result[i]);
                                     ^
gsl_sf.cc:11580:37: error: 'gsl_sf_mathieu_Mc_e' was not declared in this scope
   n.xelem(0), x.xelem(i), &result[i]);
                                     ^
gsl_sf.cc:11587:37: error: 'gsl_sf_mathieu_Mc_e' was not declared in this scope
   n.xelem(0), x.xelem(0), &result[0]);
                                     ^
gsl_sf.cc: In function 'octave_value_list Fmathieu_Ms(const octave_value_list&, 
int)':
gsl_sf.cc:11683:37: error: 'gsl_sf_mathieu_Ms_e' was not declared in this scope
   n.xelem(i), x.xelem(i), &result[i]);
                                     ^
gsl_sf.cc:11695:37: error: 'gsl_sf_mathieu_Ms_e' was not declared in this scope
   n.xelem(i), x.xelem(0), &result[i]);
                                     ^
gsl_sf.cc:11707:37: error: 'gsl_sf_mathieu_Ms_e' was not declared in this scope
   n.xelem(0), x.xelem(i), &result[i]);
                                     ^
gsl_sf.cc:11719:37: error: 'gsl_sf_mathieu_Ms_e' was not declared in this scope
   n.xelem(i), x.xelem(i), &result[i]);
                                     ^
gsl_sf.cc:11731:37: error: 'gsl_sf_mathieu_Ms_e' was not declared in this scope
   n.xelem(i), x.xelem(i), &result[i]);
                                     ^
gsl_sf.cc:11743:37: error: 'gsl_sf_mathieu_Ms_e' was not declared in this scope
   n.xelem(i), x.xelem(0), &result[i]);
                                     ^
gsl_sf.cc:11755:37: error: 'gsl_sf_mathieu_Ms_e' was not declared in this scope
   n.xelem(0), x.xelem(i), &result[i]);
                                     ^
gsl_sf.cc:11767:37: error: 'gsl_sf_mathieu_Ms_e' was not declared in this scope
   n.xelem(i), x.xelem(i), &result[i]);
                                     ^
gsl_sf.cc:11775:37: error: 'gsl_sf_mathieu_Ms_e' was not declared in this scope
   n.xelem(i), x.xelem(0), &result[i]);
                                     ^
gsl_sf.cc:11783:37: error: 'gsl_sf_mathieu_Ms_e' was not declared in this scope
   n.xelem(0), x.xelem(i), &result[i]);
                                     ^
gsl_sf.cc:11790:37: error: 'gsl_sf_mathieu_Ms_e' was not declared in this scope
   n.xelem(0), x.xelem(0), &result[0]);
                                     ^
make: *** [gsl_sf.oct] Error 1
make: Leaving directory `/tmp/oct-nzJEBd/u-jussilehtola-octave/src'

pkg: error running `make' for the gsl package.
error: called from 'configure_make' in file 
/opt/octave/4.0.3/share/octave/4.0.3/m/pkg/private/configure_make.m near line 
96, column 9
*************************************************************************************


Tasuro



reply via email to

[Prev in Thread] Current Thread [Next in Thread]