Hello,
I need some help with an installation issue and trying to figure out
an input parameter in one of the LAPACK subroutines. I am bugging you
at this emailid only because my question wasn't approved by the
moderator in the forum ( http://icl.cs.utk.edu/lapackforum/index.php,
my username is avinash ) and the other question was automatically
flagged as spam (I don't know why), so I couldn't post it. I
desperately need help.
I tried to install LAPACK in my computer (Mac OS X Mountain Lion
10.8.5) using BLAS provided in Accelerate Framework in Xcode Version
5.1.1 (5B1008). I used the make.inc example file for gfortran and just
modified these two lines following instructions here (
http://icl.cs.utk.edu/lapackforum/viewtopic.php?f=4&t=3109 ).
FORTRAN = gfortran m64
BLASLIB = framework accelerate
After 'make', I got errors in the testing stage. These errors are at
the bottom of the email. According to this post, these errors are
because of Accelerate Framework (
http://icl.cs.utk.edu/lapackforum/viewtopic.php?f=7&t=3581 ). It
appears that the compilation is successful, as I see a new liblapack.a
created. But if I get errors in Testing, is there another way to check
if my BLAS and LAPACK are working correctly ?
Also, I am trying to solve the overdetermined linear least squares
problem minimize AxB (A = rectangular matrix, with rows >
columns). I am trying to implement Matlab's mldivide in a Fortran code
using LAPACK's DGELSY subroutine.
However, one of the required inputs to subroutine dgelsy.f requires a
condition number input parameter "rcond" which is required to
determine the effective rank of A (
http://www.netlib.org/lapack/lapack3.1.1/html/dgelsy.f.html ). I will
be grateful for any ideas as to what a general value of rcond would
be, something used by Matlab or something that is computed or
something that is generally used. The example in (
http://www.nag.com/lapackex/node48.html ) does not say how "rcond" is
determined. This page ( https://software.intel.com/enus/node/521113 )
suggests default value of rcond to be 100*EPSILON(1.0_WP). I don't
know what 1.0_WP means but I think it has something to do with working
precision, set by statements like interger, parameter :: wp =
kind(1.0). I think I should use double precision here, but I am not
sure.
I will be really grateful for your help !!
Thanks.
Regards,
Avinash
**** TESTING ERROR IN INSTALLATION *****
( cd BLAS/TESTING; make f Makeblat1 )
gfortran m64 O2 frecursive c sblat1.f o sblat1.o
gfortran sblat1.o \
framework accelerate o ../xblat1s
gfortran m64 O2 frecursive c dblat1.f o dblat1.o
gfortran dblat1.o \
framework accelerate o ../xblat1d
gfortran m64 O2 frecursive c cblat1.f o cblat1.o
gfortran cblat1.o \
framework accelerate o ../xblat1c
gfortran m64 O2 frecursive c zblat1.f o zblat1.o
gfortran zblat1.o \
framework accelerate o ../xblat1z
( cd BLAS; ./xblat1s > sblat1.out ; \
./xblat1d > dblat1.out ; \
./xblat1c > cblat1.out ; \
./xblat1z > zblat1.out )
Program received signal SIGSEGV: Segmentation fault  invalid memory reference.
Backtrace for this error:
#0 0x102c0efa2
#1 0x102c0f76e
#2 0x7fff90b16909
#3 0x7fff857123a4
#4 0x102c0714f
#5 0x102c074ab
#6 0x102c0753e
/bin/sh: line 1: 12127 Segmentation fault: 11 ./xblat1c > cblat1.out
Program received signal SIGSEGV: Segmentation fault  invalid memory reference.
Backtrace for this error:
#0 0x10e116fa2
#1 0x10e11776e
#2 0x7fff90b16909
#3 0x7fff85712748
#4 0x10e110d87
#5 0x10e11112b
#6 0x10e1111be
/bin/sh: line 1: 12130 Segmentation fault: 11 ./xblat1z > zblat1.out
make: *** [blas_testing] Error 139

Avinash Nayak,
PhD Candidate,
Berkeley Seismological Laboratory,
Department of Earth and Planetary Science,
University of California, Berkeley
