Menu

#61 created patch for adding f77 interfaces ?larf_ and ?larfg_ to atlas 3.10.1

stable
open
5
2015-08-04
2013-03-14
No

Dear all,

For the use of Prof. Tim Davis' SPQR library for QR-factorization of sparse matrices, i stumbled accross unresolved dependencies when linking with the ATLAS 3.10.1 lapack version.
The dependencies were:

dlarf_
dlarfg_
zlarf_
zlarfg_

Fortunately ATLAS has both functions available as src/lapack/ATL_larf.c and src/lapack/ATL_larfg.c so i went ahead and wrote a patch which added the fortran77 interfaces for these functions as well as the single precision counterparts.
The only catch was the passing of a TYPE scalar to ATL_larf.c from the f77 wrapper. It's a value in single/double precision, but a pointer in complex/zomplex precision.
I used an include macro to fix this. It's not that pretty but it works.
The dlarf_ and dlarfg_ functions work with SPQR, i haven't tested the other interfaces though.

Let me know what you guys think of it. I didn't bother changing the header files for credits/dates since this was a late-night quickie.

Thanks for the good work on ATLAS btw!

1 Attachments

Discussion

  • R. Clint Whaley

    R. Clint Whaley - 2015-07-30
    • assigned_to: R. Clint Whaley
     
  • R. Clint Whaley

    R. Clint Whaley - 2015-07-30

    I just now saw this request, 2+ years after the fact :(

    I certainly like to help other open source folks, and Tim's efforts in particular. If I don't answer such requests within a short time, please e-mail me.

    I hadn't thought of folks needing to call larf/larfg outside QR, but I guess it make sense, and should be added. Do you guys still need it, and is there urgency?

    Sorry,
    Clint

     
  • Frank Everdij

    Frank Everdij - 2015-08-04

    Thanks for the reply. If there is any future pressing need for adding interfaces to atlas for other opensource numerical libraries, i'll drop you a line, though i don't expect this to happen soon.

    There is no urgency whatsoever BTW. I simply added the patch for other folks running the atlas-SPQR combination. Since then i have adapted the patch for the current development branch and am using it in production.

    Since SPQR only has double and complex-double support, i'm missing a test for slarf(g)/clarf(g). Also, about the scalar interface passing i wasn't sure if my method holds water. Finally i should test it with the latest versions of atlas and SPQR to make sure the patch is correct.

    I can provide a patch for the current development branch and will test it with Tim's latest incarnation of SPQR but it will take a couple of weeks because holidays. Let me know how i can help ease the workload.

    Frank

     

Log in to post a comment.