• Stars
    star
    417
  • Rank 103,829 (Top 3 %)
  • Language
    Fortran
  • License
    GNU General Publi...
  • Created about 8 years ago
  • Updated almost 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

trying to collect all useful tutorials for famous C math and linear algebra libraries such as CBLAS, CLAPACK, GSL...

Please check the dev branch which is slightly less messy.

A collection of math tutorials in C

While ago, when I started doing some linear algebra in C, it came to me as a surprise to see there are so few tutorials for BLAS, LAPACK and other fundamental APIs. Despite the fact that they are somehow the building blocks of many other libraries. For that reason I started collecting all the examples I could find all over the net for BLAS, LAPACK, CLAPACK, LAPACKE, ATLAS, OpenBLAS ... in this Github repo. Well, I should warn you that as a mechanical engineer I have little experience in managing such a repo and it might firstly seems as a complete mess to you guys. However if you manage to get over the mess you will find all kind of examples and instructions which might be help. I have tried the most and the ones does not compile I have mentioned. I have modified many of them to be compilable with GNU compilers (gcc, g++ and gfortran). I have made make files which you can read to learn how you can call individual fortran routines in a C or C++ program. I have also put some installations instructions for mac and linux (sorry windows guys!). I want to make sure if you are a C developer you can use any of these libraries without any problems regardless of your platform or hardware

issues:

  1. not able to compile ATLAS on mac OS X. a bug report was made on sourceforce: https://sourceforge.net/p/math-atlas/bugs/261/
  2. for some of the BLAS and CBLAS examples the -lgfortran is requred to compile. I don't know why! (on mac OS X you need to install gfortran and then look for libgfortran.dylib and link against it while compiling)

to do:

  1. make compiling/installation for all libraries for different platforms
  2. check the Makefile s on other platforms(tested only on mac OS X)

sources to be studied:

  1. http://physics.oregonstate.edu/~landaur/nacphy/lapack/cprogp.html
  2. https://people.sc.fsu.edu/~jburkardt/c_src/clapack/clapack.html
  3. http://stackoverflow.com/questions/22085277/how-to-call-clapack-from-c
  4. ftp://ftp.icm.edu.pl/packages/netlib/lapack/lapacke.txt
  5. https://pleiades.ucsc.edu/hyades/LAPACK
  6. http://www.ccp4.ac.uk/dist/checkout/lapack-3.5.0/lapacke/example/example_DGELS_colmajor.c
  7. http://www.linuxquestions.org/linux/answers/programming/installation_and_use_common_scientific_libraries_unix_part_2_lapack_and_its_wrappers_lapacke_and_atlas
  8. http://theoryno3.blogspot.nl/2010/12/compiling-lapack-as-shared-library-in.html
  9. http://www.dreamincode.net/forums/topic/287490-anyone-familiar-with-lapack-and-blas/
  10. https://software.intel.com/sites/products/documentation/doclib/mkl_sa/11/mkl_lapack_examples/index.htm#zgesv.htm
  11. https://pleiades.ucsc.edu/hyades/BLAS
  12. https://software.intel.com/en-us/node/522288
  13. http://stackoverflow.com/questions/17858104/what-is-the-relation-between-blas-lapack-and-atlas/17858345#17858345
  14. http://stackoverflow.com/questions/1303182/how-does-blas-get-such-extreme-performance/11421344#11421344
  15. http://stackoverflow.com/questions/1380371/what-are-the-most-widely-used-c-vector-matrix-math-linear-algebra-libraries-a/1452950#1452950
  16. http://stackoverflow.com/questions/8206563/purpose-of-lda-argument-in-blas-dgemm/8209290#8209290
  17. http://stackoverflow.com/questions/966249/scientific-math-with-functional-languages/966324#966324
  18. http://stackoverflow.com/questions/24071622/replicating-blas-matrix-multiplication-performance-can-i-match-it
  19. Cephes --> http://www.netlib.org/cephes/
  20. CRlibm --> http://lipforge.ens-lyon.fr/www/crlibm/index.html

More Repositories

1

NXOpen_Python_tutorials

a collection of NXOpen Python tutorials
49
star
2

awsomeEngSci

Curated list of awsome Free and Open Source Software for engineering and science
32
star
3

NXtips

Here I will collect the tips and tricks, keyboard shortcuts, best practices, for SIEMENS NX
25
star
4

ModelicaPDE

a place to collect all materials available for solving PDEs in Modelica language
19
star
5

Awesome-FLOSS-CAS

A curated list of outstanding Free, Libre, and Open Source Software (FLOSS) Computer Algebra Systems (CAS) for mathematicians, educators, and researchers.
13
star
6

OpenHertz

OpenHertz is a cross-platform Free, Libre, and Open Source Software (FLOSS) for Hertzian contact calculations.
HTML
11
star
7

PneuAct_ICRA2018

PneuAct, ICRA 2018, Foad Sojoodi Farimani
TeX
6
star
8

ScilabGUItuts

A collection of Scilab GUI building examples
Scilab
5
star
9

emacs-org-instant-preview

A portable Emacs Org Mode setup with instant HTML preview and auto-refresh functionality.
Emacs Lisp
3
star
10

RMaxima

This is a toolbox dealing with the kinematics and dynamics of rigid multi-bodies, specially for robots, including functions and methods of screw theory
3
star
11

CrossBLAS

an open-source fork of BLAS, designed for seamless compilation across multiple operating systems using CMake
Fortran
2
star
12

Cplus

all the things I wish C already had
C
2
star
13

Chrooter

Chrooter: A Docker-like CLI tool for managing chroot sandbox environments, under GPL3 license.
Shell
1
star
14

teamcenter-nx-guide

A comprehensive guide to using Siemens NX CAD/CAM/CAE and Teamcenter PDM/PLM for efficient product design and development.
1
star
15

Invest

Personal notes and experiences about investments in stock market ...
1
star
16

LangBench

A collection of language benchmarks
Python
1
star
17

OpenFOAM_com

C++
1
star
18

PyCompatManager

A PowerShell script for managing legacy Python version package compatibility, automating PyPI package checks and ensuring version-matched installations
PowerShell
1
star