dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #17046
Re: LAPACK link problem
On Wed, Dec 16, 2009 at 3:20 PM, Anders Logg <logg@xxxxxxxxx> wrote:
> On Wed, Dec 16, 2009 at 01:12:14PM +0100, Johannes Ring wrote:
>> On Wed, Dec 16, 2009 at 1:00 PM, Anders Logg <logg@xxxxxxxxx> wrote:
>> > On Wed, Dec 16, 2009 at 12:51:37PM +0100, Johannes Ring wrote:
>> >> On Wed, Dec 16, 2009 at 12:36 PM, Anders Logg <logg@xxxxxxxxx> wrote:
>> >> > On Wed, Dec 16, 2009 at 12:01:01PM +0100, Johannes Ring wrote:
>> >> >> On Wed, Dec 16, 2009 at 11:50 AM, Johannes Ring <johannr@xxxxxxxxx> wrote:
>> >> >> > On Wed, Dec 16, 2009 at 10:47 AM, Anders Logg <logg@xxxxxxxxx> wrote:
>> >> >> >> Is anyone else able to compile and link the test in
>> >> >> >>
>> >> >> >> sandbox/misc/
>> >> >> >>
>> >> >> >> ?
>> >> >> >
>> >> >> > It compiles fine on my system. I can also run the demo but when I
>> >> >> > press 'q' to exit the plot I get a segmentation fault.
>> >> >>
>> >> >> Also:
>> >> >>
>> >> >> johannr@simula-x61:~$ nm -D /usr/lib/liblapack.so | grep dgels_
>> >> >> 00191a70 T dgels_
>> >> >> johannr@simula-x61:~$ dpkg -S /usr/lib/liblapack.so
>> >> >> liblapack-dev: /usr/lib/liblapack.so
>> >> >> johannr@simula-x61:~$
>> >> >
>> >> > ok, good. I thought that DGLES was missing from the standard Ubuntu
>> >> > LAPACK.
>> >> >
>> >> > Do we have a test for LAPACK or should we add one? The buildbot is
>> >> > failing.
>> >>
>> >> No, we don't have a test for LAPACK but several of the other
>> >> pkg-config generators adds -llapack to their pkg-config files. Maybe
>> >> we should add pkg-config generator for LAPACK and then add 'Requires:
>> >> lapack' in the other pkg-config files instead.
>> >
>> > Thats sounds like a good idea.
>> >
>> > Should I create a simple test program for LAPACK or what do you need
>> > to create the test?
>>
>> Yes, a minimal test program would be good. Also, do you know how to
>> find the LAPACK version?
>>
>> Johannes
>
> Here's a simple test program:
>
> extern "C"
> {
> void dgels_(char* trans, int* m, int* n, int* nrhs,
> double* a, int* lda, double* b, int* ldb,
> double* work, int* lwork, int* info);
> }
>
> int main()
> {
> double A[4] = {1, 0, 0, 1};
> double b[2] = {1, 1};
>
> char trans = 'N';
> int m = 2;
> int n = 2;
> int nrhs = 1;
> int lda = 2;
> int ldb = 2;
> int lwork = 4;
> int status = 0;
> double* work = new double[m*lwork];
>
> dgels_(&trans, &m, &n, &nrhs,
> A, &lda, b, &ldb,
> work, &lwork, &status);
>
> delete [] work;
>
> return status;
> }
>
> On my machine, this compiles with
>
> g++ main.cpp -L/usr/lib/atlas -llapack
Thanks!
> I have no idea how to find the LAPACK version but as far as I know,
> most of the interface of LAPACK has been fixed the last 30 years or so
> so I assume we don't need to worry too much about that.
Yes, thats true. I will assume version 3.0 in the pkg-config file then.
Is LAPACK now a required or optional dependency? If the latter, should
it be enabled by default or only if one of the other optional
dependencies requires it?
Johannes
Follow ups
References