यह लेख एक सरल उदाहरण के साथ सी में cblas (और अन्य) का उपयोग करने के दिखाता है: http://www.seehuhn.de/pages/linear
मैं उद्धृत साइट नीचे जाने के मामले में नीचे प्रासंगिक हिस्सा।
BLAS
का उपयोग BLAS दिनचर्या हम एक सरल मैट्रिक्स वेक्टर गुणा करना चाहते हैं परीक्षण करने के लिए। फ़ाइल blas2-paper.ps.gz फ़ाइल को पढ़ना हम पाते हैं कि इसी फोरट्रान फ़ंक्शन का नाम डीजीईएमवी है। पाठ blas2-paper.ps.gz भी इस फ़ंक्शन के तर्कों का अर्थ बताता है। Cblas.ps.gz में हम पाते हैं कि संबंधित सी फ़ंक्शन नाम cblas_dgemv है।
#include <stdio.h>
#include <cblas.h>
double m[] = {
3, 1, 3,
1, 5, 9,
2, 6, 5
};
double x[] = {
-1, -1, 1
};
double y[] = {
0, 0, 0
};
int
main()
{
int i, j;
for (i=0; i<3; ++i) {
for (j=0; j<3; ++j) printf("%5.1f", m[i*3+j]);
putchar('\n');
}
cblas_dgemv(CblasRowMajor, CblasNoTrans, 3, 3, 1.0, m, 3,
x, 1, 0.0, y, 1);
for (i=0; i<3; ++i) printf("%5.1f\n", y[i]);
return 0;
}
इस कार्यक्रम हम निम्न आदेश का उपयोग संकलन करने के लिए: निम्न उदाहरण मैट्रिक्स वेक्टर उत्पाद
/ 3 1 3 \ /-1 \
| 1 5 9 | * | -1 |.
\ 2 6 5/ \ 1/
उदाहरण फ़ाइल testblas.c गणना करने के लिए इस समारोह का उपयोग करता है।
सीसी testblas.c -ओ testblas -lblas -lm
इस परीक्षण कार्यक्रम के उत्पादन
3.0 1.0 3.0
1.0 5.0 9.0
2.0 6.0 5.0
-1.0
3.0
-3.0
जो दिखाता है कि सब कुछ ठीक काम किया है और यह है कि हम है गलती से ट्रांसपोज़ेड मैट्रिक्स का भी उपयोग नहीं किया।
मुझे लगता है कि यह लिंक चला गया है: - \ – Plamen