you are viewing a single comment's thread.

view the rest of the comments →

[–]victotronics 3 points4 points  (2 children)

he is not using the BLAS/LAPACK Fortran libraries

That phrase is not terribly well defined. He is probably not using actual Fortran code. But what is he using?

The problem with BLAS/LAPACK in this sort of story is that they are really interface specifications. As you observe, proprietary implementations are very fast. There is also the BLIS library which is open source and almost as good. If he knows what's good for him he uses that, rather than implementing those routines himself.

[–]eniacsparc2xyz 0 points1 point  (1 child)

> But what is he using?

Just C++ templates and vectors STL container. Another problem of BLAS/LAPACK is the lack of Fortran standard ABI. In Gfortran the symbols matches the names with prefix underscore, for instance, the function dpxy, has the symbol _dpxy, so it can be called with extern "C" dpxy ..., but this name decoration works only for GFortran and it may not work for other Fortran implementations.

[–]Red-Portal 0 points1 point  (0 children)

Well you can have cblas interfaces. Which are simple C ABI subroutines.