โปรดตรวจสอบสาขา dev ซึ่งยุ่งน้อยกว่าเล็กน้อย
คอลเลกชันของบทช่วยสอนคณิตศาสตร์ใน C
ในขณะที่เมื่อฉันเริ่มทำพีชคณิตเชิงเส้นใน C มันมาถึงฉันเป็นเรื่องน่าประหลาดใจที่ได้เห็นว่ามีบทเรียนน้อยมากสำหรับ BLAS, LAPACK และ APIs พื้นฐานอื่น ๆ แม้จะมีข้อเท็จจริงที่ว่าพวกเขาเป็นหน่วยการสร้างของห้องสมุดอื่น ๆ อีกมากมาย ด้วยเหตุนี้ฉันจึงเริ่มรวบรวมตัวอย่างทั้งหมดที่ฉันสามารถหาได้ทั่วตาข่ายสำหรับ Blas, Lapack, Clapack, Lapacke, Atlas, OpenBlas ... ใน repo github นี้ ฉันควรเตือนคุณว่าในฐานะวิศวกรเครื่องกลฉันมีประสบการณ์เพียงเล็กน้อยในการจัดการ repo และมันอาจจะเป็นเรื่องยุ่งกับพวกคุณอย่างสมบูรณ์ อย่างไรก็ตามหากคุณจัดการกับความยุ่งเหยิงคุณจะพบตัวอย่างและคำแนะนำทุกประเภทที่อาจช่วยได้ ฉันได้ลองมากที่สุดและสิ่งที่ไม่ได้รวบรวมที่ฉันพูดถึง ฉันได้ปรับเปลี่ยนจำนวนมากให้สามารถรวบรวมได้ด้วยคอมไพเลอร์ GNU (GCC, G ++ และ GFORTRAN) ฉันได้ทำไฟล์ที่คุณสามารถอ่านเพื่อเรียนรู้วิธีที่คุณสามารถเรียกรูทีน Fortran แต่ละตัวในโปรแกรม C หรือ C ++ ฉันยังได้ใส่คำแนะนำการติดตั้งสำหรับ Mac และ Linux (ขออภัย Windows Guys!) ฉันต้องการให้แน่ใจว่าคุณเป็นนักพัฒนา C คุณสามารถใช้ห้องสมุดเหล่านี้ได้โดยไม่มีปัญหาใด ๆ โดยไม่คำนึงถึงแพลตฟอร์มหรือฮาร์ดแวร์ของคุณ
ปัญหา:
- ไม่สามารถรวบรวม Atlas บน Mac OS X. รายงานข้อผิดพลาดใน SourceForce: https://sourceforge.net/p/math-atlas/bugs/261/
- สำหรับตัวอย่าง BLAS และ CBLAS บางตัวอย่างที่ -lgfortran ได้รับการ requred เพื่อรวบรวม ฉันไม่รู้ว่าทำไม! (บน Mac OS X คุณต้องติดตั้ง gfortran แล้วมองหา libgfortran.dylib และเชื่อมโยงกับมันในขณะที่รวบรวม)
สิ่งที่ต้องทำ:
- ทำการรวบรวม/ติดตั้งสำหรับไลบรารีทั้งหมดสำหรับแพลตฟอร์มที่แตกต่างกัน
- ตรวจสอบ makefile s บนแพลตฟอร์มอื่น ๆ (ทดสอบเฉพาะบน Mac OS X)
แหล่งที่จะศึกษา:
- http://physics.oregonstate.edu/~landaur/nacphy/lapack/cprogp.html
- https://people.sc.fsu.edu/~jburkardt/c_src/clapack/clapack.html
- http://stackoverflow.com/questions/22085277/how-to-call-lapack-from-c
- ftp://ftp.icm.edu.pl/packages/netlib/lapack/lapacke.txt
- https://pleiades.ucsc.edu/hyades/lapack
- http://www.ccp4.ac.uk/dist/checkout/lapack-3.5.0/lapacke/example/example_dgels_colmajor.c
- http://www.linuxquestions.org/linux/answers/programming/installation_and_use_common_scientific_libraries_unix_part_2_lapack_and_its_wrappers_lapacke_and_atlas
- http://theoryno3.blogspot.nl/2010/12/compiling-lapack-as-shared-library-in.html
- http://www.dreamincode.net/forums/topic/287490-anyone-familiar-with-lapack-andblas/
- https://software.intel.com/sites/products/documentation/doclib/mkl_sa/11/mkl_lapack_examples/index.htm#zgesv.htm
- https://pleiades.ucsc.edu/hyades/blas
- https://software.intel.com/en-us/node/522288
- http://stackoverflow.com/questions/17858104/ what-is-the-relation-weetweenblas-lapack-and-atlas/17858345#17858345
- http://stackoverflow.com/questions/1303182/how-does-blas-get-such-extreme-performance/11421344#11421344
- http://stackoverflow.com/questions/1380371/what-are-the-most-widely-used-c-vector-matrix-math-linear-algebra-libraries-a/1452950#1452950
- http://stackoverflow.com/questions/8206563/purpose-of-lda-argument-in-blas-dgemm/8209290#8209290
- http://stackoverflow.com/questions/966249/scientific-math-with-functional-languages/966324#9666324
- http://stackoverflow.com/questions/24071622/replicating-blas-matrix-multiplication-performance-can-i-match-it
- cephes -> http://www.netlib.org/cephes/
- crlibm-> http://lipforge.ens-lyon.fr/www/crlibm/index.html