Re: Inquiry for amos routine for expint

Tatsuro MATSUOKA <[email protected]> Thu, 16 Dec 2021 05:29:17 +0900 (JST)
Newsgroups gmane.comp.graphics.gnuplot.devel
Message-ID <[email protected]>
Ethan
Thank you for your reply

> It could be that the zairy function you compiled from source lacks the
> trailing underscore because the gfortran compiler defaulted to the wrong
> underscoring convention.

For this problem I will struggle further.
With help by Bastian, I could build gnuplot with expint on native windows.
https://sourceforge.net/p/gnuplot/bugs/2475/
Comparing the results  on cygwin and native windows , build gnuplot with exint on cygwin was successful.
Wrong results in expint.dem come from my build ACM routine are not succcessful.

> So do people think it would be good to add the Amos source
> to the gnuplot repository and distribution package?

I took a little long time to find imformation about amos and acm and information for *1mach.
Therefore it will be grateful if you add Amos source in gnuplot repository.
However, Bastian tell me that ACM is allowed use for non-commercial.

> Separate from discussion of including the Amos source in the
> gnuplot repository, I can send you Makefiles and C versions of
> the *1mach files if you like.  Just let me know.

It would be grateful for me if send Makefiles and C version of *1mach files.

Tatsuro

> ----- Original Message -----
> On Wednesday, 15 December 2021 00:43:54 PST Tatsuro MATSUOKA wrote:
> > /cygdrive/f/Work/Tatsuro/cygwinwork/gnuplot/gnuplot-main/gnuplot-main/conftest.c:56: undefined reference to `zairy_'
> > collect2: error: ld returned 1 exit status
> > configure:8799: $? = 1
> > 
> > def file of libamos has  zairy_ symbol
> 
> Some fortran compilers historically used a convention that subroutine
> names always ended in an underscore.   
> 
> The gcc compiler package supports either the "always use underscore"
> or "never use underscore" convention, but you have to use the same
> convention when compiling all the source files that will be linked
> together.  That includes libraries.
> 
> For gfortran the two options are
> 	-funderscoring
> 	-fno-underscoring
> 
> This is noted in the gnuplot source for the c/fortran interface routines
> in gnuplot's .../src/amos_airy.c
> 
>  * The zairy_() routine (note Fortran naming and parameter passing conventions)
>  * is found, for example, in libopenspecfun.  We use it to calculate Ai(z).
>  * Similarly zbiry_() is used to calcualte Bi(z).
> 
> It could be that the zairy function you compiled from source lacks the
> trailing underscore because the gfortran compiler defaulted to the wrong
> underscoring convention.
> 
> I would worry a bit about this part also:
> > I tried to use expint on the development brach on Cygwin.
> >
> > amos library, 
> > http://www.netlib.org/amos/
> >
> > i1mach.f, r1mach.f, d1mach (replacement of the above)
> > http://www.netlib.org/blas/i1mach.f
> > http://www.netlib.org/blas/r1mach.f
> > http://www.netlib.org/blas/d1mach.f
> 
> These source files were incorrect for use on my linux machines.
> I replaced them with local definitions in C in order to build a
> working copy of libamos.   I do not know whether that is or is
> not a problem for your Cygwin environment.
> 
> I had considered to add the relevant libamos source files
> in a new subdirectory of the gnuplot source, along with a
> autoconf/Makefile template so that the library can be built
> automatically via ./configure; make gnuplot
> 
> I decided not to add it when I found that at least some 
> linux distributions are already providing either a pre-built
> version of libamos or a version of libopenspecfun, which
> provides all of the needed functions except cexint.
> However your story here shows that it remains a bit tricky
> to find and build all the relevant source if you do not have
> one of the pre-built libraries.
> 
> So do people think it would be good to add the Amos source
> to the gnuplot repository and distribution package?
> 
> I have source files from the original Sandia Laboratories
> work by Donald Amos.  Some, but not all, of these were
> later archived in netlib.  Note that the version of cexint.f
> that I have did _not_ come from the TOMS/ACM publication
> collection.
> 
> Separate from discussion of including the Amos source in the
> gnuplot repository, I can send you Makefiles and C versions of
> the *1mach files if you like.  Just let me know.
> 
> 	Ethan  
> 
> 
> > > ----- Original Message -----
> > 
> > > Hello
> > > 
> > > I tried to use expint on the development brach on Cygwin.
> > > 
> > > amos library, 
> > > http://www.netlib.org/amos/
> > > 
> > > i1mach.f, r1mach.f, d1mach (replacement of the above)
> > > http://www.netlib.org/blas/i1mach.f
> > > http://www.netlib.org/blas/r1mach.f
> > > http://www.netlib.org/blas/d1mach.f
> > > 
> > > cexint, zexint
> > > http://www.netlib.org/toms-2014-06-10/683
> > > 
> > > I have checked cexint, zexint  by cqccex.f and zqccex.f.
> > >  QUICK CHECKS FOR CEXINT ARE OK.
> > >  QUICK CHECKS FOR ZEXINT ARE OK.
> > > 
> > > all.dem runs without problem
> > > 
> > > However, load 'expint.dem' seems to be invaild.
> > > See the below screenshot files
> > > http://tmacchant33.starfree.jp/Files/expint1.png
> > > http://tmacchant33.starfree.jp/Files/expint2.png
> > > 
> > > Any suggestions?
> > > 
> > > Refernce
> > > confiure
> > > LDFLAGS='-L/usr/local/lib -lamos' \
> > > ./configure --prefix=/cygdrive/f/Work/Tatsuro/cygwinwork/gnuplot/gnuplot-main/usr/local \
> > >   --with-qt=no \
> > >   --disable-dependency-tracking \
> > >   --enable-plugins \
> > >   --with-latex \
> > >   --with-kpsexpand \
> > >   --with-x \
> > >   --with-readline=gnu \
> > >   --with-gd \
> > >   --with-lua \
> > >   --with-bitmap-terminals \
> > >   --enable-history-file \
> > >   --enable-stats \
> > >   --without-ggi \
> > >   --without-gpic \
> > >   --without-mif
> > > 
> > > config.log
> > > http://tmacchant33.starfree.jp/Files/config.log
> > > 
> > > Tatsuro
> > 
> > Sorry I did see config.log in details.
> > 
> > gnuplot will be compiled with the following configurable features:
> > 
> >   Mouse support in interactive terminals: yes
> >   Typing <space> in plot window raises console: yes
> >   Readline library: GNU readline library with  -lncurses
> >   Command-line history file: yes
> >   Check current directory for .gnuplot file: no (use --with-cwdrc to enable)
> >   Sort help/subtopic tables by column: no (use --without-row-help to enable)
> >   cerf() and other special functions from libcerf: yes
> >   Airy and Bessel functions from libopenspecfun or libamos: yes
> >   Complex exponential integral cexint from libamos: yes
> >   plugin support for loading external functions: yes
> >   Statistical summary of data ("stats" command): yes
> > 
> > But config.log says 
> > 
> > configure:8714: gcc -o conftest.exe -g -O2  -I/include  -L/usr/local/lib -lamos -L/lib -lcerf  conftest.c -lcerf   >&5
> > configure:8714: $? = 0
> > configure:8734: result: -lcerf
> > configure:8766: checking for amos libraries using LDFLAGS: -L/usr/local/lib -lamos -L/lib -lcerf   
> > configure:8769: checking for library containing zairy_
> > configure:8799: gcc -o conftest.exe -g -O2  -I/include  -L/usr/local/lib -lamos -L/lib -lcerf   conftest.c -lcerf  >&5
> > /usr/lib/gcc/x86_64-pc-cygwin/11/../../../../x86_64-pc-cygwin/bin/ld: /tmp/ccYZXooH.o: in function `main':
> > /cygdrive/f/Work/Tatsuro/cygwinwork/gnuplot/gnuplot-main/gnuplot-main/conftest.c:56: undefined reference to `zairy_'
> > collect2: error: ld returned 1 exit status
> > configure:8799: $? = 1
> > 
> > def file of libamos has  zairy_ symbol
> > 
> > Hmmmm?
> > 
> > Tatsuro
> > 
> > 
> > 
> > _______________________________________________
> > gnuplot-beta mailing list
> > [email protected]
> > Membership management via: https://lists.sourceforge.net/lists/listinfo/gnuplot-beta
> > 
> 
> 
> -- 
> Ethan A Merritt
> Biomolecular Structure Center,  K-428 Health Sciences Bldg
> MS 357742,   University of Washington, Seattle 98195-7742
> 
> 
> 



_______________________________________________
gnuplot-beta mailing list
[email protected]
Membership management via: https://lists.sourceforge.net/lists/listinfo/gnuplot-beta