Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f20c0f9819 | ||
|
|
134fa320e6 | ||
|
|
21b5347fbe | ||
|
|
f2eb480738 | ||
|
|
c94762bb56 | ||
|
|
3dd094f17a | ||
|
|
339ab34c4c | ||
|
|
7424e2b609 | ||
|
|
73594cff73 | ||
|
|
880597b301 | ||
|
|
9c835431d0 | ||
|
|
1d4ffddf69 | ||
|
|
b0e7810a6b | ||
|
|
2b92a8c499 | ||
|
|
274b8dc91a | ||
|
|
74b237ca22 | ||
|
|
c353abd38c | ||
|
|
0acce17979 | ||
|
|
2016a685e6 | ||
|
|
1b9a6aac30 | ||
|
|
e27433ab6a | ||
|
|
7961404a40 | ||
|
|
cedc1f4b14 | ||
|
|
0884b73c69 | ||
|
|
9bd9472ae9 | ||
|
|
2e2473f390 | ||
|
|
c4a423a642 | ||
|
|
f9991fd5f6 | ||
|
|
47688e24e9 | ||
|
|
61ef0c3419 | ||
|
|
698e77dba4 | ||
|
|
2081f6e8ff | ||
|
|
dc6b809f15 | ||
|
|
0f08684649 | ||
|
|
552119c484 | ||
|
|
94d3cfaa10 | ||
|
|
13348b2137 | ||
|
|
783a7d2202 | ||
|
|
50e99a52ea | ||
|
|
9964ed2f79 | ||
|
|
d5b976f92d | ||
|
|
f7267d9b0e | ||
|
|
e0c080a28c | ||
|
|
e80b144932 | ||
|
|
02a504c0b8 | ||
|
|
be94db096c | ||
|
|
b079df9ef4 | ||
|
|
aee61456a4 | ||
|
|
01a119abfc | ||
|
|
1fad2b759f | ||
|
|
e1e83a1b71 | ||
|
|
da3d70420a | ||
|
|
1127f5a2d7 | ||
|
|
0ae4cc2803 | ||
|
|
99efbbbad5 | ||
|
|
22e5aee2dd | ||
|
|
249917700d | ||
|
|
7a8949e0ce | ||
|
|
b82108f899 | ||
|
|
8373ad4ec2 | ||
|
|
35d37e124f | ||
|
|
d8ba46efdb | ||
|
|
a15f22a1f6 | ||
|
|
b94ea89f52 | ||
|
|
35f668bb14 | ||
|
|
4ebbf758f5 | ||
|
|
8615d6ec87 | ||
|
|
6c2ead30f0 | ||
|
|
f41f03ab83 | ||
|
|
365e8de346 | ||
|
|
578d1b6219 | ||
|
|
a6ae079b17 | ||
|
|
d10db52edb | ||
|
|
dabab2b5f4 | ||
|
|
aa2709c4e0 | ||
|
|
9d6f2b594e | ||
|
|
a13bcc1716 | ||
|
|
d2c82d7543 | ||
|
|
0517672dd0 | ||
|
|
15d5dfa92c | ||
|
|
d83373db61 | ||
|
|
88b6bf251a | ||
|
|
4a2ab7460b | ||
|
|
86d8c8978b | ||
|
|
316df0e821 | ||
|
|
438002204d | ||
|
|
23203d52c1 | ||
|
|
73545a79cd | ||
|
|
a19d209005 | ||
|
|
8602816536 | ||
|
|
d52863cfd7 | ||
|
|
c6361d63c2 | ||
|
|
53bfa51ee0 | ||
|
|
ff9cfca24c | ||
|
|
a86d349a51 | ||
|
|
7b277f0110 | ||
|
|
faeab93df0 | ||
|
|
f773f492f3 | ||
|
|
21a6b5f79e | ||
|
|
cee257f384 | ||
|
|
7bfb3011e8 | ||
|
|
8c8f596238 | ||
|
|
bff575d0b1 | ||
|
|
faf3ac0aad | ||
|
|
a40116de25 | ||
|
|
b31ec99372 | ||
|
|
0ac073fa94 | ||
|
|
25e899b60b | ||
|
|
219bcb119d | ||
|
|
5664445543 | ||
|
|
89da450800 | ||
|
|
c26bbee489 | ||
|
|
ced13574a0 | ||
|
|
fe858873af | ||
|
|
a8d4d1c4d3 | ||
|
|
c4ccb3fbb2 | ||
|
|
a748d3a75d | ||
|
|
a5ab231ad4 | ||
|
|
dbaeea7b59 | ||
|
|
10a16bd690 | ||
|
|
406f5bd22b | ||
|
|
a0ae53966f | ||
|
|
0d75f3b6a2 | ||
|
|
abad6f66d6 | ||
|
|
2ff66e661d | ||
|
|
5e55034922 | ||
|
|
9a9e810239 | ||
|
|
45be9ac111 | ||
|
|
9f201558c9 | ||
|
|
d4237cb7f3 | ||
|
|
d2a8ff4b04 | ||
|
|
f331cb1a76 | ||
|
|
9ed981c5dc | ||
|
|
aaa9d7fbf8 | ||
|
|
ebc95e6f11 | ||
|
|
61a2c50e8e | ||
|
|
4f98f8c9b3 | ||
|
|
536875d463 | ||
|
|
65f2fba4c3 | ||
|
|
eea6f51df9 | ||
|
|
6fc4646709 | ||
|
|
ac029f81b3 | ||
|
|
c0cf875a82 | ||
|
|
b6d904838e | ||
|
|
5379eff022 | ||
|
|
aaddb05411 | ||
|
|
e52532a9fe | ||
|
|
e826a5a6af | ||
|
|
165d5436b5 | ||
|
|
409b52255c | ||
|
|
5953972a5a | ||
|
|
d751224ea4 | ||
|
|
4a5938b5cc | ||
|
|
d18bc5468f | ||
|
|
8877c6db51 | ||
|
|
c38379c9dd | ||
|
|
a0b07c1440 | ||
|
|
43fbdb7a5a | ||
|
|
777cebc8c7 | ||
|
|
aa5c73e20f | ||
|
|
5e5ef28ca0 | ||
|
|
650ed34336 | ||
|
|
189ca1bcee | ||
|
|
4c1caa7454 | ||
|
|
7bb19cf90e | ||
|
|
2a94aaaf2e | ||
|
|
5e4b4f6712 | ||
|
|
47e8950e77 | ||
|
|
f45f2c8465 | ||
|
|
10780ae650 | ||
|
|
9bae50f700 | ||
|
|
0758c1a374 | ||
|
|
564ff395f6 | ||
|
|
7fb78a5f01 | ||
|
|
8204ab4aa8 | ||
|
|
48d1325784 | ||
|
|
57bbc586ef | ||
|
|
bfef3c5dd1 | ||
|
|
d972f4a60a | ||
|
|
eebce01cf2 | ||
|
|
e2c39a4a8e | ||
|
|
1e8e6faa7e | ||
|
|
c7eb901496 | ||
|
|
2ed03ea0a2 | ||
|
|
de00e2937a | ||
|
|
e187b5e9d0 | ||
|
|
0947fc1c89 | ||
|
|
4d61607c9e | ||
|
|
781bfb6e66 | ||
|
|
79a82ba7f1 | ||
|
|
d63bd7fa5e | ||
|
|
e265c4ec86 | ||
|
|
0732238213 | ||
|
|
5f3b68b4d4 | ||
|
|
2424af62fd | ||
|
|
6b252033ae | ||
|
|
320c805905 | ||
|
|
e673848a9b | ||
|
|
a35a1a9ae7 | ||
|
|
793509a3b5 | ||
|
|
020f36f970 | ||
|
|
9d0cc399ac | ||
|
|
025fc914cc | ||
|
|
43bb633096 | ||
|
|
187237b622 | ||
|
|
66198faab6 | ||
|
|
47b22763f8 | ||
|
|
4d42368214 | ||
|
|
3e068e78e2 | ||
|
|
1140c489c9 | ||
|
|
804a306313 | ||
|
|
9db0fb8b02 | ||
|
|
692b14cecd | ||
|
|
322a178430 | ||
|
|
f80f29e256 | ||
|
|
2c556f093a | ||
|
|
3b027d2528 | ||
|
|
57526cae99 | ||
|
|
5de5ef118c | ||
|
|
b161ac29e3 | ||
|
|
b20ee6924a | ||
|
|
49bd98f410 | ||
|
|
a14f98ca7c | ||
|
|
138a841390 | ||
|
|
046e4013cb | ||
|
|
dd2d3e61ab | ||
|
|
3617c22a56 | ||
|
|
f9daebba0a | ||
|
|
9a557e90da | ||
|
|
2d557eb1e0 | ||
|
|
a789b77b75 | ||
|
|
75acf96d94 | ||
|
|
8c7687b419 | ||
|
|
3e0a7b931c | ||
|
|
306d9f2e35 | ||
|
|
7b8604ea29 | ||
|
|
ab69443bd4 | ||
|
|
b263e096af | ||
|
|
05bb391c3a | ||
|
|
0ab080987d | ||
|
|
d51868190e | ||
|
|
9b5be29886 | ||
|
|
768d2042d4 | ||
|
|
91eaea364b | ||
|
|
a136426624 | ||
|
|
2f0d2ce1ea | ||
|
|
0f6e79f918 | ||
|
|
ea74f331f4 | ||
|
|
53eaf41901 | ||
|
|
9423f980f6 | ||
|
|
c6156b2ef2 | ||
|
|
034a5b2083 | ||
|
|
27d4234d4d | ||
|
|
aae75b2461 | ||
|
|
a74ac84981 | ||
|
|
402d6e91db | ||
|
|
6d2c6b5c74 | ||
|
|
1b5a267cdd | ||
|
|
4a1575e748 | ||
|
|
339fef2649 | ||
|
|
b3254eecaf | ||
|
|
d910404f00 | ||
|
|
1cae4114a8 | ||
|
|
91ca041cc2 | ||
|
|
d2385f0d52 | ||
|
|
ec2dadde9b | ||
|
|
d56292e2e4 | ||
|
|
ffe70b1fdc | ||
|
|
ecbc85b954 | ||
|
|
9e38dbb658 | ||
|
|
d844901062 | ||
|
|
eab79631c3 | ||
|
|
d13aa79d26 | ||
|
|
dfaa489224 | ||
|
|
9fbf437177 | ||
|
|
38ce786754 | ||
|
|
2594728eb7 | ||
|
|
cc7876f660 | ||
|
|
51e5983599 | ||
|
|
65ebab0688 | ||
|
|
7594216412 | ||
|
|
fac07b0687 | ||
|
|
3169f524e4 | ||
|
|
d4833f1801 | ||
|
|
fe8b841c82 | ||
|
|
9b1b01a478 | ||
|
|
2a625447ea | ||
|
|
be18cd47f6 | ||
|
|
8191efc420 | ||
|
|
39dc69db4a | ||
|
|
04d51536a4 | ||
|
|
c947ab85dc | ||
|
|
0b6e13b689 | ||
|
|
e09dc279a2 | ||
|
|
1596ced242 | ||
|
|
4be4db590c | ||
|
|
5c648a8984 | ||
|
|
7581e2e9cb | ||
|
|
c44dc4dd3c | ||
|
|
ac7735e01f | ||
|
|
271ceeba15 | ||
|
|
71eecaaf37 | ||
|
|
9d3fae15a8 | ||
|
|
2d3c884294 | ||
|
|
d54a061713 | ||
|
|
86afb47e83 | ||
|
|
42a4dff056 | ||
|
|
5bc322a66c | ||
|
|
dec7ad0dfd | ||
|
|
274304bd03 | ||
|
|
5007a534c4 | ||
|
|
a537d7d8d7 | ||
|
|
b42145834f | ||
|
|
3d5e792c72 | ||
|
|
a9bd12da2c | ||
|
|
697e198e8a | ||
|
|
36b0f7fe1d | ||
|
|
d2b20c5c51 | ||
|
|
fd1d9fdb22 | ||
|
|
fe5f46c330 | ||
|
|
e25de3d182 | ||
|
|
25c6050593 | ||
|
|
12e02a00e0 | ||
|
|
29a3196f56 | ||
|
|
8776a73773 | ||
|
|
7e84acd3e8 | ||
|
|
33d3ab6e09 | ||
|
|
9a0f978929 | ||
|
|
7f210587f0 | ||
|
|
9f0a3a35b3 | ||
|
|
dbae93110b | ||
|
|
19cd5c64a2 | ||
|
|
9adf87495e | ||
|
|
440db4cdda | ||
|
|
cd93cae5a7 | ||
|
|
8565afb3c2 | ||
|
|
5bf7cf8d67 | ||
|
|
29a005c635 | ||
|
|
f1be3a168a | ||
|
|
410afda9b4 | ||
|
|
bf04544902 | ||
|
|
86283c0be1 | ||
|
|
f27cabfd08 | ||
|
|
23dd474cd0 | ||
|
|
f1b452e160 | ||
|
|
3dabd7e6e6 | ||
|
|
6f4a0ebe38 | ||
|
|
5048a80032 | ||
|
|
6e679266f8 | ||
|
|
f1db386211 | ||
|
|
6da558d2ab | ||
|
|
a2942456ef | ||
|
|
f750103336 | ||
|
|
00f33c0134 | ||
|
|
5b36cc0f47 | ||
|
|
c8f1aeb154 | ||
|
|
8fa93be06e | ||
|
|
1e8128f41c | ||
|
|
6d8095bcb9 | ||
|
|
2f5fdd2000 | ||
|
|
80a2e901b1 | ||
|
|
73770e60b8 | ||
|
|
ac50bccbd2 | ||
|
|
82015beaef | ||
|
|
6216ab8a7e | ||
|
|
370e3834a9 | ||
|
|
95aedfa0ff | ||
|
|
cba97daf3c | ||
|
|
5400a9f4e4 | ||
|
|
e31186efd4 | ||
|
|
2b801a00a5 | ||
|
|
b3eab8fcb7 | ||
|
|
6d9d70c55c | ||
|
|
dfd1064d7b | ||
|
|
02bc36ac79 | ||
|
|
5118a7f4d1 | ||
|
|
e172b70ea2 | ||
|
|
1cf4b974b2 | ||
|
|
7bccff1512 | ||
|
|
afe44b0241 | ||
|
|
a77c71eaf5 | ||
|
|
b2219b3478 | ||
|
|
f5a0038bad | ||
|
|
c937090121 | ||
|
|
fe8c5666f9 | ||
|
|
f6b50057e2 | ||
|
|
2840d56aeb | ||
|
|
2d49db2f5b | ||
|
|
04391e6d9c | ||
|
|
85484a42df | ||
|
|
3983011f0b | ||
|
|
2a1515c9dd | ||
|
|
31f51e78bc | ||
|
|
beffee7d91 | ||
|
|
a35f4343fa | ||
|
|
ce5626a384 | ||
|
|
e0b968c3a7 | ||
|
|
93f1074dd4 | ||
|
|
1c63180bb6 | ||
|
|
22a8fcc4b7 | ||
|
|
9965d48005 | ||
|
|
4a474ea7dc | ||
|
|
69ce737cc5 | ||
|
|
d13788d1b4 | ||
|
|
70411af888 | ||
|
|
16eb780e13 | ||
|
|
a746724e84 | ||
|
|
3f7b0cd994 | ||
|
|
cc6db2ecfe | ||
|
|
3175be4b3d | ||
|
|
a29e6592da | ||
|
|
212463dce9 | ||
|
|
037bd82bef | ||
|
|
eae4cfa3f6 | ||
|
|
6c4a7d0828 | ||
|
|
fe98de2f68 | ||
|
|
db389b5915 | ||
|
|
52f587db7f | ||
|
|
067e8417fd | ||
|
|
a82da3d069 | ||
|
|
1569bf14f8 | ||
|
|
df554aebd2 | ||
|
|
eae6920f2d | ||
|
|
c92ae012a6 | ||
|
|
f51a849d91 | ||
|
|
44ef70420c | ||
|
|
d488b1b1aa | ||
|
|
4070d9a123 | ||
|
|
0b90c0ec64 | ||
|
|
2b8ab8f55b | ||
|
|
1cb9579cd0 | ||
|
|
2638370844 | ||
|
|
89637f87c8 | ||
|
|
c0b1e41bec | ||
|
|
49faee1a51 | ||
|
|
c0159d44a3 | ||
|
|
c17a850c1c | ||
|
|
099853fff6 | ||
|
|
44d23881b5 | ||
|
|
2905042c6a | ||
|
|
32fb6b9bb2 | ||
|
|
673e453b3f | ||
|
|
143cca4dd5 | ||
|
|
aaeb8eaecd | ||
|
|
8aeec32ea0 | ||
|
|
87fc9de572 | ||
|
|
564aa60fec | ||
|
|
f645665dd6 | ||
|
|
e45a347cd2 | ||
|
|
99727ac013 | ||
|
|
6e0a2fbc0c | ||
|
|
0a22f99c58 | ||
|
|
79ba52115d | ||
|
|
835293cc1a | ||
|
|
b736aa8110 | ||
|
|
ae521ecc3e | ||
|
|
36adfe8d64 | ||
|
|
a07cc39571 | ||
|
|
cff70a666d | ||
|
|
b5c2ac4fd6 | ||
|
|
749f45ffc8 | ||
|
|
534c5ec919 | ||
|
|
bd2da90e13 | ||
|
|
84bd0aabaa | ||
|
|
5b504d6c23 | ||
|
|
72b1edaf1b | ||
|
|
a2930664f4 | ||
|
|
6e0db36373 | ||
|
|
1e1250b703 | ||
|
|
23186d9f21 | ||
|
|
e6ebbfd314 | ||
|
|
4471c77905 | ||
|
|
9f0fb6e662 | ||
|
|
6ae2f868fd | ||
|
|
a1ead62f28 | ||
|
|
0133580148 | ||
|
|
274246651d | ||
|
|
299b5a44dc | ||
|
|
d48cff8cf1 |
@@ -21,8 +21,10 @@ lapack-netlib/TESTING/testing_results.txt
|
||||
lib.grd
|
||||
nohup.out
|
||||
config.h
|
||||
config_kernel.h
|
||||
Makefile.conf
|
||||
Makefile.conf_last
|
||||
Makefile_kernel.conf
|
||||
config_last.h
|
||||
getarch
|
||||
getarch_2nd
|
||||
@@ -41,6 +43,8 @@ ctest/xzcblat2
|
||||
ctest/xzcblat3
|
||||
exports/linktest.c
|
||||
exports/linux.def
|
||||
kernel/setparam_*.c
|
||||
kernel/kernel_*.h
|
||||
test/CBLAT2.SUMM
|
||||
test/CBLAT3.SUMM
|
||||
test/DBLAT2.SUMM
|
||||
|
||||
+1
-1
@@ -11,7 +11,7 @@ env:
|
||||
|
||||
before_install:
|
||||
- sudo apt-get update -qq
|
||||
- sudo apt-get install -qq gfortran
|
||||
- sudo apt-get install -qq gfortran
|
||||
- if [[ "$TARGET_BOX" == "WIN64" ]]; then sudo apt-get install -qq binutils-mingw-w64-x86-64 gcc-mingw-w64-x86-64 gfortran-mingw-w64-x86-64; fi
|
||||
- if [[ "$TARGET_BOX" == "LINUX32" ]]; then sudo apt-get install -qq gcc-multilib gfortran-multilib; fi
|
||||
|
||||
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
Thank you for the support.
|
||||
|
||||
### [2013.8] [Testbed for OpenBLAS project](https://www.bountysource.com/fundraisers/443-testbed-for-openblas-project)
|
||||
|
||||
https://www.bountysource.com/fundraisers/443-testbed-for-openblas-project/pledges
|
||||
|
||||
In chronological order:
|
||||
|
||||
* aeberspaecher
|
||||
* fmolina
|
||||
* saullocastro
|
||||
* xianyi
|
||||
* cuda
|
||||
* carter
|
||||
* StefanKarpinski
|
||||
* staticfloat
|
||||
* sebastien-villemot
|
||||
* JeffBezanson
|
||||
* ihnorton
|
||||
* simonp0420
|
||||
* andrioni
|
||||
* Tim Holy
|
||||
* ivarne
|
||||
* johnmyleswhite
|
||||
* traz
|
||||
* Jean-Francis Roy
|
||||
* bkalpert
|
||||
* Anirban
|
||||
* pgermain
|
||||
* alexandre.lacoste.18
|
||||
* foges
|
||||
* ssam
|
||||
* WestleyArgentum
|
||||
* daniebmariani
|
||||
* pjpuglia
|
||||
* albarrentine
|
||||
* Alexander Vogt
|
||||
|
||||
|
||||
+51
-16
@@ -10,15 +10,28 @@
|
||||
* Optimize BLAS3 on ICT Loongson 3A.
|
||||
* Optimize BLAS3 on Intel Sandy Bridge.
|
||||
|
||||
* Werner Saar <wernsaar@googlemail.com>
|
||||
* [2013-03-04] Optimize AVX and FMA4 DGEMM on AMD Bulldozer
|
||||
* [2013-04-27] Optimize AVX and FMA4 TRSM on AMD Bulldozer
|
||||
* [2013-06-09] Optimize AVX and FMA4 SGEMM on AMD Bulldozer
|
||||
* [2013-06-11] Optimize AVX and FMA4 ZGEMM on AMD Bulldozer
|
||||
* [2013-06-12] Optimize AVX and FMA4 CGEMM on AMD Bulldozer
|
||||
* [2013-06-16] Optimize dgemv_n kernel on AMD Bulldozer
|
||||
* [2013-06-20] Optimize ddot, daxpy kernel on AMD Bulldozer
|
||||
* [2013-06-21] Optimize dcopy kernel on AMD Bulldozer
|
||||
* Porting and Optimization on ARM Cortex-A9
|
||||
* Optimization on AMD Piledriver
|
||||
* Optimization on Intel Haswell
|
||||
|
||||
## Previous Developers
|
||||
|
||||
* Zaheer Chothia <zaheer.chothia@gmail.com>
|
||||
* Improve the compatibility about complex number
|
||||
* Build LAPACKE: C interface to LAPACK
|
||||
* Improve the windows build.
|
||||
|
||||
## Previous Developers
|
||||
|
||||
* Chen Shaohu <huhumartinwar@gmail.com>
|
||||
* Optimize GEMV on the Loongson 3A processor.
|
||||
* Optimize GEMV on the Loongson 3A processor.
|
||||
|
||||
* Luo Wen
|
||||
* Intern. Test Level-2 BLAS.
|
||||
@@ -40,11 +53,11 @@ In chronological order:
|
||||
* [2012-05-19] Fix building bug on FreeBSD and NetBSD.
|
||||
|
||||
* Sylvestre Ledru <https://github.com/sylvestre>
|
||||
* [2012-07-01] Improve the detection of sparc. Fix building bug under
|
||||
* [2012-07-01] Improve the detection of sparc. Fix building bug under
|
||||
Hurd and kfreebsd.
|
||||
|
||||
* Jameson Nash <https://github.com/vtjnash>
|
||||
* [2012-08-20] Provide support for passing CFLAGS, FFLAGS, PFLAGS, FPFLAGS to
|
||||
* [2012-08-20] Provide support for passing CFLAGS, FFLAGS, PFLAGS, FPFLAGS to
|
||||
make on the command line.
|
||||
|
||||
* Alexander Nasonov <alnsn@yandex.ru>
|
||||
@@ -52,16 +65,7 @@ In chronological order:
|
||||
|
||||
* Sébastien Villemot <sebastien@debian.org>
|
||||
* [2012-11-14] Fix compilation with TARGET=GENERIC. Patch applied to Debian package.
|
||||
|
||||
* Werner Saar <wernsaar@googlemail.com>
|
||||
* [2013-03-04] Optimize AVX and FMA4 DGEMM on AMD Bulldozer
|
||||
* [2013-04-27] Optimize AVX and FMA4 TRSM on AMD Bulldozer
|
||||
* [2013-06-09] Optimize AVX and FMA4 SGEMM on AMD Bulldozer
|
||||
* [2013-06-11] Optimize AVX and FMA4 ZGEMM on AMD Bulldozer
|
||||
* [2013-06-12] Optimize AVX and FMA4 CGEMM on AMD Bulldozer
|
||||
* [2013-06-16] Optimize dgemv_n kernel on AMD Bulldozer
|
||||
* [2013-06-20] Optimize ddot, daxpy kernel on AMD Bulldozer
|
||||
* [2013-06-21] Optimize dcopy kernel on AMD Bulldozer
|
||||
* [2013-08-28] Avoid failure on qemu guests declaring an Athlon CPU without 3dnow!
|
||||
|
||||
* Kang-Che Sung <Explorer09@gmail.com>
|
||||
* [2013-05-17] Fix typo in the document. Re-order the architecture list in getarch.c.
|
||||
@@ -76,8 +80,39 @@ In chronological order:
|
||||
* [2013-06-30] Add Intel Haswell support (using sandybridge optimizations).
|
||||
|
||||
* grisuthedragon <https://github.com/grisuthedragon>
|
||||
* [2013-07-11] create openblas_get_parallel to retrieve information which parallelization
|
||||
* [2013-07-11] create openblas_get_parallel to retrieve information which parallelization
|
||||
model is used by OpenBLAS.
|
||||
|
||||
* Elliot Saba <staticfloat@gmail.com>
|
||||
* [2013-07-22] Add in return value for `interface/trtri.c`
|
||||
|
||||
* Sébastien Fabbro <bicatali@gentoo.org>
|
||||
* [2013-07-24] Modify makefile to respect user's LDFLAGS
|
||||
* [2013-07-24] Add stack markings for GNU as arch-independent for assembler files
|
||||
|
||||
* Viral B. Shah <viral@mayin.org>
|
||||
* [2013-08-21] Patch LAPACK XLASD4.f as discussed in JuliaLang/julia#2340
|
||||
|
||||
* Lars Buitinck <https://github.com/larsmans>
|
||||
* [2013-08-28] get rid of the generated cblas_noconst.h file
|
||||
* [2013-08-28] Missing threshold in gemm.c
|
||||
* [2013-08-28] fix default prefix handling in makefiles
|
||||
|
||||
* yieldthought <https://github.com/yieldthought>
|
||||
* [2013-10-08] Remove -Wl,--retain-symbols-file from dynamic link line to fix tool support
|
||||
|
||||
* Keno Fischer <https://github.com/loladiro>
|
||||
* [2013-10-23] Use FC instead of CC to link the dynamic library on OS X
|
||||
|
||||
* Christopher Meng <cickumqt@gmail.com>
|
||||
* [2013-12-09] Add DESTDIR support for easier building on RPM based distros.
|
||||
Use install command instead of cp to install files with permissions control.
|
||||
|
||||
* Lucas Beyer <lucasb.eyer.be@gmail.com>
|
||||
* [2013-12-10] Added support for NO_SHARED in make install.
|
||||
|
||||
* carlkl <https://github.com/carlkl>
|
||||
* [2013-12-13] Fixed LAPACKE building bug on Windows
|
||||
|
||||
* [Your name or handle] <[email or website]>
|
||||
* [Date] [Brief summary of your changes]
|
||||
|
||||
+108
-38
@@ -1,29 +1,99 @@
|
||||
OpenBLAS ChangeLog
|
||||
====================================================================
|
||||
Version 0.2.10
|
||||
16-Jul-2014
|
||||
common:
|
||||
* Added BLAS extensions as following.
|
||||
s/d/c/zaxpby, s/d/c/zimatcopy, s/d/c/zomatcopy.
|
||||
* Added OPENBLAS_CORETYPE environment for dynamic_arch. (a86d34)
|
||||
* Added NO_AVX2 flag for old binutils. (#401)
|
||||
* Support outputing the CPU corename on runtime.(#407)
|
||||
* Patched LAPACK to fix bug 114, 117, 118.
|
||||
(http://www.netlib.org/lapack/bug_list.html)
|
||||
* Disabled ?gemm3m for a work-around fix. (#400)
|
||||
x86/x86-64:
|
||||
* Fixed lots of bugs for optimized kernels on sandybridge,Haswell,
|
||||
bulldozer, and piledriver.
|
||||
https://github.com/xianyi/OpenBLAS/wiki/Fixed-optimized-kernels-To-do-List
|
||||
|
||||
ARM:
|
||||
* Improved LAPACK testing.
|
||||
|
||||
====================================================================
|
||||
Version 0.2.9
|
||||
10-Jun-2014
|
||||
common:
|
||||
* Improved the result for LAPACK testing. (#372)
|
||||
* Installed DLL to prefix/bin instead of prefix/lib. (#366)
|
||||
* Build import library on Windows.(#374)
|
||||
x86/x86-64:
|
||||
* To improve LAPACK testing, we fallback some kernels. (#372)
|
||||
https://github.com/xianyi/OpenBLAS/wiki/Fixed-optimized-kernels-To-do-List
|
||||
|
||||
====================================================================
|
||||
Version 0.2.9.rc2
|
||||
06-Mar-2014
|
||||
common:
|
||||
* Added OPENBLAS_VERBOSE environment variable.(#338)
|
||||
* Make OpenBLAS thread-pool resilient to fork via pthread_atfork.
|
||||
(#294, Thank Olivier Grisel)
|
||||
* Rewrote rotmg
|
||||
* Fixed sdsdot bug.
|
||||
x86/x86-64:
|
||||
* Detect Intel Haswell for new Macbook.
|
||||
|
||||
====================================================================
|
||||
Version 0.2.9.rc1
|
||||
13-Jan-2013
|
||||
common:
|
||||
* Update LAPACK to 3.5.0 version
|
||||
* Fixed compatiable issues with Clang and Pathscale compilers.
|
||||
|
||||
x86/x86-64:
|
||||
* Optimization on Intel Haswell.
|
||||
* Enable optimization kernels on AMD Bulldozer and Piledriver.
|
||||
|
||||
ARM:
|
||||
* Support ARMv6 and ARMv7 ISA.
|
||||
* Optimization on ARM Cortex-A9.
|
||||
|
||||
====================================================================
|
||||
Version 0.2.8
|
||||
01-Aug-2013
|
||||
common:
|
||||
* Support Open64 5.0. (#266)
|
||||
* Add executable stack markings. (#262, Thank Sébastien Fabbro)
|
||||
* Respect user's LDFLAGS (Thank Sébastien Fabbro)
|
||||
|
||||
x86/x86-64:
|
||||
* Rollback bulldozer and piledriver kernels to barcelona kernels (#263)
|
||||
We will fix the compuational error bug in bulldozer and piledriver kernels.
|
||||
|
||||
====================================================================
|
||||
Version 0.2.7
|
||||
20-Jul-2013
|
||||
common:
|
||||
* Support LSB (Linux Standard Base) 4.1.
|
||||
e.g. make CC=lsbcc
|
||||
* Include LAPACK 3.4.2 source codes to the repo.
|
||||
* Include LAPACK 3.4.2 source codes to the repo.
|
||||
Avoid downloading at compile time.
|
||||
* Add NO_PARALLEL_MAKE flag to disable parallel make.
|
||||
* Create openblas_get_parallel to retrieve information which
|
||||
* Create openblas_get_parallel to retrieve information which
|
||||
parallelization model is used by OpenBLAS. (Thank grisuthedragon)
|
||||
* Detect LLVM/Clang compiler. The default compiler is Clang on Mac OS X.
|
||||
* Change LIBSUFFIX from .lib to .a on windows.
|
||||
* A walk round for dtrti_U single thread bug. Replace it with LAPACK codes. (#191)
|
||||
* A work-around for dtrti_U single thread bug. Replace it with LAPACK codes. (#191)
|
||||
|
||||
x86/x86-64:
|
||||
* Optimize c/zgemm, trsm, dgemv_n, ddot, daxpy, dcopy on
|
||||
* Optimize c/zgemm, trsm, dgemv_n, ddot, daxpy, dcopy on
|
||||
AMD Bulldozer. (Thank Werner Saar)
|
||||
* Add Intel Haswell support (using Sandybridge optimizations).
|
||||
(Thank Dan Luu)
|
||||
* Add AMD Piledriver support (using Bulldozer optimizations).
|
||||
* Fix the computational error in zgemm avx kernel on
|
||||
* Fix the computational error in zgemm avx kernel on
|
||||
Sandybridge. (#237)
|
||||
* Fix the overflow bug in gemv.
|
||||
* Fix the overflow bug in multi-threaded BLAS3, getrf when NUM_THREADS
|
||||
* Fix the overflow bug in multi-threaded BLAS3, getrf when NUM_THREADS
|
||||
is very large.(#214, #221, #246).
|
||||
MIPS64:
|
||||
* Support loongcc (Open64 based) compiler for ICT Loongson 3A/B.
|
||||
@@ -60,7 +130,7 @@ common:
|
||||
* Fixed NetBSD build. (#155)
|
||||
* Fixed compilation with TARGET=GENERIC. (#160)
|
||||
x86/x86-64:
|
||||
* Restore the original CPU affinity when calling
|
||||
* Restore the original CPU affinity when calling
|
||||
openblas_set_num_threads(1) (#153)
|
||||
* Fixed a SEGFAULT bug in dgemv_t when m is very large.(#154)
|
||||
MIPS64:
|
||||
@@ -70,13 +140,13 @@ Version 0.2.4
|
||||
8-Oct-2012
|
||||
common:
|
||||
* Upgraded LAPACK to 3.4.2 version. (#145)
|
||||
* Provided support for passing CFLAGS, FFLAGS, PFLAGS,
|
||||
* Provided support for passing CFLAGS, FFLAGS, PFLAGS,
|
||||
FPFLAGS to make. (#137)
|
||||
* f77blas.h:compatibility for compilers without C99 complex
|
||||
* f77blas.h:compatibility for compilers without C99 complex
|
||||
number support. (#141)
|
||||
x86/x86-64:
|
||||
* Added NO_AVX flag. Check OS supporting AVX on runtime. (#139)
|
||||
* Fixed zdot incompatibility ABI issue with GCC 4.7 on
|
||||
* Fixed zdot incompatibility ABI issue with GCC 4.7 on
|
||||
Windows 32-bit. (#140)
|
||||
MIPS64:
|
||||
* Fixed the generation of shared library bug.
|
||||
@@ -86,14 +156,14 @@ Version 0.2.3
|
||||
20-Aug-2012
|
||||
common:
|
||||
* Fixed LAPACK unstable bug about ?laswp. (#130)
|
||||
* Fixed the shared library bug about unloading the library on
|
||||
* Fixed the shared library bug about unloading the library on
|
||||
Linux (#132).
|
||||
* Fixed the compilation failure on BlueGene/P (TARGET=PPC440FP2)
|
||||
Please use gcc and IBM xlf. (#134)
|
||||
x86/x86-64:
|
||||
* Supported goto_set_num_threads and openblas_set_num_threads
|
||||
* Supported goto_set_num_threads and openblas_set_num_threads
|
||||
APIs in Windows. They can set the number of threads on runtime.
|
||||
|
||||
|
||||
====================================================================
|
||||
Version 0.2.2
|
||||
6-July-2012
|
||||
@@ -141,14 +211,14 @@ x86/x86_64:
|
||||
* Auto-detect Intel Sandy Bridge Core i7-3xxx & Xeon E7 Westmere-EX.
|
||||
* Test alpha=Nan in dscale.
|
||||
* Fixed a SEGFAULT bug in samax on x86 windows.
|
||||
|
||||
|
||||
====================================================================
|
||||
Version 0.1.0
|
||||
23-Mar-2012
|
||||
common:
|
||||
* Set soname of shared library on Linux.
|
||||
* Added LIBNAMESUFFIX flag in Makefile.rule. The user can use
|
||||
this flag to control the library name, e.g. libopenblas.a,
|
||||
* Added LIBNAMESUFFIX flag in Makefile.rule. The user can use
|
||||
this flag to control the library name, e.g. libopenblas.a,
|
||||
libopenblas_ifort.a or libopenblas_omp.a.
|
||||
* Added GEMM_MULTITHREAD_THRESHOLD flag in Makefile.rule.
|
||||
The lib use single thread in GEMM function with small matrices.
|
||||
@@ -179,7 +249,7 @@ x86/x86_64:
|
||||
Version 0.1 alpha2.4
|
||||
18-Sep-2011
|
||||
common:
|
||||
* Fixed a bug about installation. The header file "fblas77.h"
|
||||
* Fixed a bug about installation. The header file "fblas77.h"
|
||||
works fine now.
|
||||
* Fixed #61 a building bug about setting TARGET and DYNAMIC_ARCH.
|
||||
* Try to handle absolute path of shared library in OSX. (#57)
|
||||
@@ -188,16 +258,16 @@ common:
|
||||
$(PREFIX)/lib
|
||||
|
||||
x86/x86_64:
|
||||
* Fixed #58 zdot/xdot SEGFAULT bug with GCC-4.6 on x86. According
|
||||
to i386 calling convention, The callee should remove the first
|
||||
hidden parameter.Thank Mr. John for this patch.
|
||||
* Fixed #58 zdot/xdot SEGFAULT bug with GCC-4.6 on x86. According
|
||||
to i386 calling convention, The callee should remove the first
|
||||
hidden parameter.Thank Mr. John for this patch.
|
||||
|
||||
====================================================================
|
||||
Version 0.1 alpha2.3
|
||||
5-Sep-2011
|
||||
|
||||
x86/x86_64:
|
||||
* Added DTB_ENTRIES into dynamic arch setting parameters. Now,
|
||||
* Added DTB_ENTRIES into dynamic arch setting parameters. Now,
|
||||
it can read DTB_ENTRIES on runtime. (Refs issue #55 on github)
|
||||
|
||||
====================================================================
|
||||
@@ -205,7 +275,7 @@ Version 0.1 alpha2.2
|
||||
14-Jul-2011
|
||||
|
||||
common:
|
||||
* Fixed a building bug when DYNAMIC_ARCH=1 & INTERFACE64=1.
|
||||
* Fixed a building bug when DYNAMIC_ARCH=1 & INTERFACE64=1.
|
||||
(Refs issue #44 on github)
|
||||
|
||||
====================================================================
|
||||
@@ -213,7 +283,7 @@ Version 0.1 alpha2.1
|
||||
28-Jun-2011
|
||||
|
||||
common:
|
||||
* Stop the build and output the error message when detecting
|
||||
* Stop the build and output the error message when detecting
|
||||
fortran compiler failed. (Refs issue #42 on github)
|
||||
|
||||
====================================================================
|
||||
@@ -221,16 +291,16 @@ Version 0.1 alpha2
|
||||
23-Jun-2011
|
||||
|
||||
common:
|
||||
* Fixed blasint undefined bug in <cblas.h> file. Other software
|
||||
* Fixed blasint undefined bug in <cblas.h> file. Other software
|
||||
could include this header successfully(Refs issue #13 on github)
|
||||
* Fixed the SEGFAULT bug on 64 cores. On SMP server, the number
|
||||
of CPUs or cores should be less than or equal to 64.(Refs issue #14
|
||||
* Fixed the SEGFAULT bug on 64 cores. On SMP server, the number
|
||||
of CPUs or cores should be less than or equal to 64.(Refs issue #14
|
||||
on github)
|
||||
* Support "void goto_set_num_threads(int num_threads)" and "void
|
||||
openblas_set_num_threads(int num_threads)" when USE_OPENMP=1
|
||||
* Added extern "C" to support C++. Thank Tasio for the patch(Refs
|
||||
* Added extern "C" to support C++. Thank Tasio for the patch(Refs
|
||||
issue #21 on github)
|
||||
* Provided an error message when the arch is not supported.(Refs
|
||||
* Provided an error message when the arch is not supported.(Refs
|
||||
issue #19 on github)
|
||||
* Fixed issue #23. Fixed a bug of f_check script about generating link flags.
|
||||
* Added openblas_set_num_threads for Fortran.
|
||||
@@ -245,10 +315,10 @@ x86/x86_64:
|
||||
* Fixed #28 a wrong result of dsdot on x86_64.
|
||||
* Fixed #32 a SEGFAULT bug of zdotc with gcc-4.6.
|
||||
* Fixed #33 ztrmm bug on Nehalem.
|
||||
* Walk round #27 the low performance axpy issue with small imput size & multithreads.
|
||||
* Work-around #27 the low performance axpy issue with small imput size & multithreads.
|
||||
|
||||
MIPS64:
|
||||
* Fixed #28 a wrong result of dsdot on Loongson3A/MIPS64.
|
||||
* Fixed #28 a wrong result of dsdot on Loongson3A/MIPS64.
|
||||
* Optimized single/double precision BLAS Level3 on Loongson3A/MIPS64. (Refs #2)
|
||||
* Optimized single/double precision axpy function on Loongson3A/MIPS64. (Refs #3)
|
||||
|
||||
@@ -257,9 +327,9 @@ Version 0.1 alpha1
|
||||
20-Mar-2011
|
||||
|
||||
common:
|
||||
* Support "make NO_LAPACK=1" to build the library without
|
||||
* Support "make NO_LAPACK=1" to build the library without
|
||||
LAPACK functions.
|
||||
* Fixed randomly SEGFAULT when nodemask==NULL with above Linux 2.6.34.
|
||||
* Fixed randomly SEGFAULT when nodemask==NULL with above Linux 2.6.34.
|
||||
Thank Mr.Ei-ji Nakama providing this patch. (Refs issue #12 on github)
|
||||
* Added DEBUG=1 rule in Makefile.rule to build debug version.
|
||||
* Disable compiling quad precision in reference BLAS library(netlib BLAS).
|
||||
@@ -268,15 +338,15 @@ common:
|
||||
* Imported GotoBLAS2 1.13 BSD version
|
||||
|
||||
x86/x86_64:
|
||||
* On x86 32bits, fixed a bug in zdot_sse2.S line 191. This would casue
|
||||
zdotu & zdotc failures.Instead,Walk around it. (Refs issue #8 #9 on github)
|
||||
* Modified ?axpy functions to return same netlib BLAS results
|
||||
* On x86 32bits, fixed a bug in zdot_sse2.S line 191. This would casue
|
||||
zdotu & zdotc failures. Instead, work-around it. (Refs issue #8 #9 on github)
|
||||
* Modified ?axpy functions to return same netlib BLAS results
|
||||
when incx==0 or incy==0 (Refs issue #7 on github)
|
||||
* Modified ?swap functions to return same netlib BLAS results
|
||||
* Modified ?swap functions to return same netlib BLAS results
|
||||
when incx==0 or incy==0 (Refs issue #6 on github)
|
||||
* Modified ?rot functions to return same netlib BLAS results
|
||||
* Modified ?rot functions to return same netlib BLAS results
|
||||
when incx==0 or incy==0 (Refs issue #4 on github)
|
||||
* Detect Intel Westmere,Intel Clarkdale and Intel Arrandale
|
||||
* Detect Intel Westmere,Intel Clarkdale and Intel Arrandale
|
||||
to use Nehalem codes.
|
||||
* Fixed a typo bug about compiling dynamic ARCH library.
|
||||
MIPS64:
|
||||
|
||||
@@ -83,7 +83,7 @@
|
||||
4. Suported precision
|
||||
|
||||
Now x86/x86_64 version support 80bit FP precision in addition to
|
||||
normal double presicion and single precision. Currently only
|
||||
normal double presicion and single precision. Currently only
|
||||
gfortran supports 80bit FP with "REAL*10".
|
||||
|
||||
|
||||
|
||||
@@ -32,9 +32,9 @@
|
||||
|
||||
GotoBLAS2 build complete.
|
||||
|
||||
OS ... Linux
|
||||
Architecture ... x86_64
|
||||
BINARY ... 64bit
|
||||
OS ... Linux
|
||||
Architecture ... x86_64
|
||||
BINARY ... 64bit
|
||||
C compiler ... GCC (command line : gcc)
|
||||
Fortran compiler ... PATHSCALE (command line : pathf90)
|
||||
Library Name ... libgoto_barcelonap-r1.27.a (Multi threaded; Max
|
||||
|
||||
+1
-1
@@ -56,7 +56,7 @@
|
||||
|
||||
1.6 Q I use OpenMP compiler. How can I use GotoBLAS2 with it?
|
||||
|
||||
A Please understand that OpenMP is a compromised method to use
|
||||
A Please understand that OpenMP is a compromised method to use
|
||||
thread. If you want to use OpenMP based code with GotoBLAS2, you
|
||||
should enable "USE_OPENMP=1" in Makefile.rule.
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
F) Other aarchitecture which doesn't have Large TLB enhancement
|
||||
|
||||
If you have root permission, please install device driver which
|
||||
located in drivers/mapper.
|
||||
located in drivers/mapper.
|
||||
|
||||
$shell> cd drivers/mapper
|
||||
$shell> make
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
probably you created too many threads or process. Basically GotoBLAS
|
||||
assumes that available cores that you specify are exclusively for
|
||||
BLAS computation. Even one small thread/process conflicts with BLAS
|
||||
threads, performance will become worse.
|
||||
threads, performance will become worse.
|
||||
|
||||
The best solution is to reduce your number of threads or insert
|
||||
some synchronization mechanism and suspend your threads until BLAS
|
||||
@@ -19,4 +19,4 @@
|
||||
|
||||
|
||||
Anyway, if you see any weird performance loss, it means your code or
|
||||
algorithm is not optimal.
|
||||
algorithm is not optimal.
|
||||
|
||||
@@ -12,17 +12,17 @@ met:
|
||||
notice, this list of conditions and the following disclaimer in
|
||||
the documentation and/or other materials provided with the
|
||||
distribution.
|
||||
3. Neither the name of the ISCAS nor the names of its contributors may
|
||||
be used to endorse or promote products derived from this software
|
||||
3. Neither the name of the ISCAS nor the names of its contributors may
|
||||
be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
||||
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
@@ -4,7 +4,7 @@ include ./Makefile.system
|
||||
BLASDIRS = interface driver/level2 driver/level3 driver/others
|
||||
|
||||
ifneq ($(DYNAMIC_ARCH), 1)
|
||||
BLASDIRS += kernel
|
||||
BLASDIRS += kernel
|
||||
endif
|
||||
|
||||
ifdef UTEST_CHECK
|
||||
@@ -15,10 +15,6 @@ ifdef SANITY_CHECK
|
||||
BLASDIRS += reference
|
||||
endif
|
||||
|
||||
ifndef PREFIX
|
||||
PREFIX = /opt/OpenBLAS
|
||||
endif
|
||||
|
||||
SUBDIRS = $(BLASDIRS)
|
||||
ifneq ($(NO_LAPACK), 1)
|
||||
SUBDIRS += lapack
|
||||
@@ -27,11 +23,11 @@ endif
|
||||
SUBDIRS_ALL = $(SUBDIRS) test ctest utest exports benchmark ../laswp ../bench
|
||||
|
||||
.PHONY : all libs netlib test ctest shared install
|
||||
.NOTPARALLEL : all libs prof lapack-test install
|
||||
.NOTPARALLEL : all libs prof lapack-test install blas-test
|
||||
|
||||
all :: libs netlib tests shared
|
||||
@echo
|
||||
@echo " OpenBLAS build complete."
|
||||
@echo " OpenBLAS build complete. ($(LIB_COMPONENTS))"
|
||||
@echo
|
||||
@echo " OS ... $(OSNAME) "
|
||||
@echo " Architecture ... $(ARCH) "
|
||||
@@ -40,11 +36,17 @@ ifndef BINARY64
|
||||
else
|
||||
@echo " BINARY ... 64bit "
|
||||
endif
|
||||
|
||||
ifdef INTERFACE64
|
||||
ifneq ($(INTERFACE64), 0)
|
||||
@echo " Use 64 bits int (equivalent to \"-i8\" in Fortran) "
|
||||
endif
|
||||
endif
|
||||
|
||||
@echo " C compiler ... $(C_COMPILER) (command line : $(CC))"
|
||||
ifndef NOFORTRAN
|
||||
@echo " Fortran compiler ... $(F_COMPILER) (command line : $(FC))"
|
||||
endif
|
||||
ifneq ($(OSNAME), AIX)
|
||||
@echo -n " Library Name ... $(LIBNAME)"
|
||||
else
|
||||
@@ -59,7 +61,7 @@ endif
|
||||
|
||||
ifeq ($(USE_OPENMP), 1)
|
||||
@echo
|
||||
@echo " Use OpenMP in the multithreading. Becasue of ignoring OPENBLAS_NUM_THREADS and GOTO_NUM_THREADS flags, "
|
||||
@echo " Use OpenMP in the multithreading. Because of ignoring OPENBLAS_NUM_THREADS and GOTO_NUM_THREADS flags, "
|
||||
@echo " you should use OMP_NUM_THREADS environment variable to control the number of threads."
|
||||
@echo
|
||||
endif
|
||||
@@ -130,6 +132,11 @@ ifeq ($(CORE), UNKOWN)
|
||||
endif
|
||||
ifeq ($(NOFORTRAN), 1)
|
||||
$(error OpenBLAS: Detecting fortran compiler failed. Please install fortran compiler, e.g. gfortran, ifort, openf90.)
|
||||
endif
|
||||
ifeq ($(NO_STATIC), 1)
|
||||
ifeq ($(NO_SHARED), 1)
|
||||
$(error OpenBLAS: neither static nor shared are enabled.)
|
||||
endif
|
||||
endif
|
||||
@-ln -fs $(LIBNAME) $(LIBPREFIX).$(LIBSUFFIX)
|
||||
@for d in $(SUBDIRS) ; \
|
||||
@@ -146,7 +153,7 @@ endif
|
||||
ifeq ($(EXPRECISION), 1)
|
||||
@echo "#define EXPRECISION">> config_last.h
|
||||
endif
|
||||
##
|
||||
##
|
||||
ifeq ($(DYNAMIC_ARCH), 1)
|
||||
@$(MAKE) -C kernel commonlibs || exit 1
|
||||
@for d in $(DYNAMIC_CORE) ; \
|
||||
@@ -180,7 +187,7 @@ blas :
|
||||
fi; \
|
||||
done
|
||||
|
||||
hpl :
|
||||
hpl :
|
||||
ln -fs $(LIBNAME) $(LIBPREFIX).$(LIBSUFFIX)
|
||||
for d in $(BLASDIRS) ../laswp exports ; \
|
||||
do if test -d $$d; then \
|
||||
@@ -203,12 +210,13 @@ hpl_p :
|
||||
done
|
||||
|
||||
ifeq ($(NO_LAPACK), 1)
|
||||
netlib :
|
||||
netlib :
|
||||
|
||||
else
|
||||
netlib : lapack_prebuild
|
||||
ifndef NOFORTRAN
|
||||
@$(MAKE) -C $(NETLIB_LAPACK_DIR) lapacklib
|
||||
@$(MAKE) -C $(NETLIB_LAPACK_DIR) tmglib
|
||||
endif
|
||||
ifndef NO_LAPACKE
|
||||
@$(MAKE) -C $(NETLIB_LAPACK_DIR) lapackelib
|
||||
@@ -221,10 +229,10 @@ prof_lapack : lapack_prebuild
|
||||
lapack_prebuild :
|
||||
ifndef NOFORTRAN
|
||||
-@echo "FORTRAN = $(FC)" > $(NETLIB_LAPACK_DIR)/make.inc
|
||||
-@echo "OPTS = $(FFLAGS)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||
-@echo "POPTS = $(FPFLAGS)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||
-@echo "NOOPT = $(FFLAGS) -O0" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||
-@echo "PNOOPT = $(FPFLAGS) -O0" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||
-@echo "OPTS = $(LAPACK_FFLAGS)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||
-@echo "POPTS = $(LAPACK_FPFLAGS)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||
-@echo "NOOPT = $(LAPACK_FFLAGS) -O0" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||
-@echo "PNOOPT = $(LAPACK_FPFLAGS) -O0" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||
-@echo "LOADOPTS = $(FFLAGS) $(EXTRALIB)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||
-@echo "CC = $(CC)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||
-@echo "override CFLAGS = $(LAPACK_CFLAGS)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||
@@ -232,46 +240,28 @@ ifndef NOFORTRAN
|
||||
-@echo "ARCHFLAGS = -ru" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||
-@echo "RANLIB = $(RANLIB)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||
-@echo "LAPACKLIB = ../$(LIBNAME)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||
-@echo "TMGLIB = ../$(LIBNAME)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||
-@echo "BLASLIB = ../../../$(LIBNAME)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||
-@echo "LAPACKELIB = ../$(LIBNAME)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||
-@echo "LAPACKLIB_P = ../$(LIBNAME_P)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||
-@echo "SUFFIX = $(SUFFIX)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||
-@echo "PSUFFIX = $(PSUFFIX)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||
-@echo "CEXTRALIB = $(EXTRALIB)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||
ifeq ($(FC), GFORTRAN)
|
||||
-@echo "TIMER = INT_ETIME" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||
ifdef SMP
|
||||
-@echo "LOADER = $(FC) -pthread" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||
else
|
||||
-@echo "LOADER = $(FC)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||
endif
|
||||
else
|
||||
-@echo "TIMER = NONE" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||
-@echo "LOADER = $(FC)" >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||
endif
|
||||
-@cat make.inc >> $(NETLIB_LAPACK_DIR)/make.inc
|
||||
endif
|
||||
|
||||
lapack-3.4.2 : lapack-3.4.2.tgz
|
||||
ifndef NOFORTRAN
|
||||
ifndef NO_LAPACK
|
||||
@if test `$(MD5SUM) $< | $(AWK) '{print $$1}'` = 61bf1a8a4469d4bdb7604f5897179478; then \
|
||||
echo $(TAR) zxf $< ;\
|
||||
$(TAR) zxf $< && (cd $(NETLIB_LAPACK_DIR); $(PATCH) -p1 < ../patch.for_lapack-3.4.2) ;\
|
||||
rm -f $(NETLIB_LAPACK_DIR)/lapacke/make.inc ;\
|
||||
else \
|
||||
rm -rf $(NETLIB_LAPACK_DIR) ;\
|
||||
echo " Cannot download lapack-3.4.2.tgz or the MD5 check sum is wrong (Please use orignal)."; \
|
||||
exit 1; \
|
||||
fi
|
||||
endif
|
||||
endif
|
||||
|
||||
LAPACK_URL=http://www.netlib.org/lapack/lapack-3.4.2.tgz
|
||||
|
||||
lapack-3.4.2.tgz :
|
||||
ifndef NOFORTRAN
|
||||
#http://stackoverflow.com/questions/7656425/makefile-ifeq-logical-or
|
||||
ifeq ($(OSNAME), $(filter $(OSNAME),Darwin NetBSD))
|
||||
curl -O $(LAPACK_URL);
|
||||
else
|
||||
ifeq ($(OSNAME), FreeBSD)
|
||||
fetch $(LAPACK_URL);
|
||||
else
|
||||
wget -O $@ $(LAPACK_URL);
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
large.tgz :
|
||||
large.tgz :
|
||||
ifndef NOFORTRAN
|
||||
if [ ! -a $< ]; then
|
||||
-wget http://www.netlib.org/lapack/timing/large.tgz;
|
||||
@@ -289,17 +279,20 @@ lapack-timing : large.tgz timing.tgz
|
||||
ifndef NOFORTRAN
|
||||
(cd $(NETLIB_LAPACK_DIR); $(TAR) zxf ../timing.tgz TIMING)
|
||||
(cd $(NETLIB_LAPACK_DIR)/TIMING; $(TAR) zxf ../../large.tgz )
|
||||
make -C $(NETLIB_LAPACK_DIR) tmglib
|
||||
make -C $(NETLIB_LAPACK_DIR)/TIMING
|
||||
endif
|
||||
|
||||
|
||||
lapack-test :
|
||||
$(MAKE) -C $(NETLIB_LAPACK_DIR) tmglib
|
||||
$(MAKE) -C $(NETLIB_LAPACK_DIR)/TESTING xeigtstc xeigtstd xeigtsts xeigtstz xlintstc xlintstd xlintstds xlintsts xlintstz xlintstzc
|
||||
@rm -f $(NETLIB_LAPACK_DIR)/TESTING/*.out
|
||||
$(MAKE) -j 1 -C $(NETLIB_LAPACK_DIR)/TESTING
|
||||
$(GREP) failed $(NETLIB_LAPACK_DIR)/TESTING/*.out
|
||||
(cd $(NETLIB_LAPACK_DIR)/TESTING && rm -f x* *.out)
|
||||
make -j 1 -C $(NETLIB_LAPACK_DIR)/TESTING xeigtstc xeigtstd xeigtsts xeigtstz xlintstc xlintstd xlintstds xlintstrfd xlintstrfz xlintsts xlintstz xlintstzc xlintstrfs xlintstrfc
|
||||
(cd $(NETLIB_LAPACK_DIR); ./lapack_testing.py -r )
|
||||
|
||||
blas-test:
|
||||
(cd $(NETLIB_LAPACK_DIR)/BLAS && rm -f x* *.out)
|
||||
make -j 1 -C $(NETLIB_LAPACK_DIR) blas_testing
|
||||
(cd $(NETLIB_LAPACK_DIR)/BLAS && cat *.out)
|
||||
|
||||
|
||||
dummy :
|
||||
|
||||
@@ -320,9 +313,10 @@ clean ::
|
||||
ifeq ($(OSNAME), Darwin)
|
||||
@rm -rf getarch.dSYM getarch_2nd.dSYM
|
||||
endif
|
||||
@rm -f Makefile.conf config.h cblas_noconst.h Makefile_kernel.conf config_kernel.h st* *.dylib
|
||||
@rm -f Makefile.conf config.h Makefile_kernel.conf config_kernel.h st* *.dylib
|
||||
@touch $(NETLIB_LAPACK_DIR)/make.inc
|
||||
@$(MAKE) -C $(NETLIB_LAPACK_DIR) clean
|
||||
@rm -f $(NETLIB_LAPACK_DIR)/make.inc $(NETLIB_LAPACK_DIR)/lapacke/include/lapacke_mangling.h
|
||||
@rm -f *.grd Makefile.conf_last config_last.h
|
||||
@(cd $(NETLIB_LAPACK_DIR)/TESTING && rm -f x* *.out testing_results.txt)
|
||||
@echo Done.
|
||||
|
||||
+1
-1
@@ -50,7 +50,7 @@ endif
|
||||
|
||||
ifndef SMP
|
||||
LIBCXML = -lcxml -lots -lm
|
||||
LIBATLAS = -L/usr/lib/atlas3.7.8 -lf77blas -latlas -lm
|
||||
LIBATLAS = -L/usr/lib/atlas3.7.8 -lf77blas -latlas -lm
|
||||
else
|
||||
LIBCXML = -lcxmlp -lots -lm
|
||||
LIBATLAS = -L/usr/lib/atlas3.7.8p -llapack -lptcblas -lptf77blas -latlas -lpthread -lm
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
|
||||
ifeq ($(CORE), ARMV7)
|
||||
CCOMMON_OPT += -marm -mfpu=vfpv3 -mfloat-abi=hard -march=armv7-a
|
||||
FCOMMON_OPT += -marm -mfpu=vfpv3 -mfloat-abi=hard -march=armv7-a
|
||||
endif
|
||||
|
||||
ifeq ($(CORE), ARMV6)
|
||||
CCOMMON_OPT += -marm -mfpu=vfp -mfloat-abi=hard -march=armv6
|
||||
FCOMMON_OPT += -marm -mfpu=vfp -mfloat-abi=hard -march=armv6
|
||||
endif
|
||||
|
||||
|
||||
ifeq ($(CORE), ARMV5)
|
||||
CCOMMON_OPT += -marm -mfpu=vfp -mfloat-abi=hard -march=armv6
|
||||
FCOMMON_OPT += -marm -mfpu=vfp -mfloat-abi=hard -march=armv6
|
||||
endif
|
||||
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
|
||||
ifeq ($(CORE), ARMV8)
|
||||
CCOMMON_OPT += -march=armv8-a
|
||||
FCOMMON_OPT += -march=armv8-a
|
||||
endif
|
||||
|
||||
|
||||
@@ -1,6 +1 @@
|
||||
COPT = -Wall -O2 # -DGEMMTEST
|
||||
ifdef BINARY64
|
||||
else
|
||||
# LDFLAGS = -m elf32ppc
|
||||
LDFLAGS = -m elf_i386
|
||||
endif
|
||||
|
||||
+1
-1
@@ -16,7 +16,7 @@ LIBMLIB = ../../level1/others/libmisc.a -L/opt/intel/fc/ia64/9.1.040/lib -L/opt
|
||||
LIBSCSL = -L/opt/scsl/1.4.1.0/lib -Wl,-rpath,/opt/scsl/1.4.1.0/lib -lscs
|
||||
|
||||
ifndef SMP
|
||||
LIBATLAS = -L/usr/lib/atlas3.6.0 -lf77blas -latlas -lm
|
||||
LIBATLAS = -L/usr/lib/atlas3.6.0 -lf77blas -latlas -lm
|
||||
else
|
||||
LIBATLAS = -L$(HOME)/misc/lib -L/usr/lib/atlas3.6.0p -llapack -lptcblas -lptf77blas -latlas -lpthread -lm
|
||||
endif
|
||||
|
||||
+54
-45
@@ -3,9 +3,12 @@ export GOTOBLAS_MAKEFILE = 1
|
||||
-include $(TOPDIR)/Makefile.conf_last
|
||||
include ./Makefile.system
|
||||
|
||||
OPENBLAS_INCLUDE_DIR:=$(PREFIX)/include
|
||||
OPENBLAS_LIBRARY_DIR:=$(PREFIX)/lib
|
||||
OPENBLAS_BUILD_DIR:=$(CURDIR)
|
||||
PREFIX ?= /opt/OpenBLAS
|
||||
|
||||
OPENBLAS_INCLUDE_DIR := $(PREFIX)/include
|
||||
OPENBLAS_LIBRARY_DIR := $(PREFIX)/lib
|
||||
OPENBLAS_BINARY_DIR := $(PREFIX)/bin
|
||||
OPENBLAS_BUILD_DIR := $(CURDIR)
|
||||
|
||||
.PHONY : install
|
||||
.NOTPARALLEL : install
|
||||
@@ -14,71 +17,77 @@ lib.grd :
|
||||
$(error OpenBLAS: Please run "make" firstly)
|
||||
|
||||
install : lib.grd
|
||||
@-mkdir -p $(PREFIX)
|
||||
@-mkdir -p $(OPENBLAS_INCLUDE_DIR)
|
||||
@-mkdir -p $(OPENBLAS_LIBRARY_DIR)
|
||||
@echo Generating openblas_config.h in $(OPENBLAS_INCLUDE_DIR)
|
||||
#for inc
|
||||
@echo \#ifndef OPENBLAS_CONFIG_H > $(OPENBLAS_INCLUDE_DIR)/openblas_config.h
|
||||
@echo \#define OPENBLAS_CONFIG_H >> $(OPENBLAS_INCLUDE_DIR)/openblas_config.h
|
||||
@cat config_last.h >> $(OPENBLAS_INCLUDE_DIR)/openblas_config.h
|
||||
@echo \#define VERSION \" OpenBLAS $(VERSION) \" >> $(OPENBLAS_INCLUDE_DIR)/openblas_config.h
|
||||
@cat openblas_config_template.h >> $(OPENBLAS_INCLUDE_DIR)/openblas_config.h
|
||||
@echo \#endif \/\* OPENBLAS_CONFIG_H \*\/ >> $(OPENBLAS_INCLUDE_DIR)/openblas_config.h
|
||||
@-mkdir -p $(DESTDIR)$(PREFIX)
|
||||
@-mkdir -p $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)
|
||||
@-mkdir -p $(DESTDIR)$(OPENBLAS_LIBRARY_DIR)
|
||||
@-mkdir -p $(DESTDIR)$(OPENBLAS_BINARY_DIR)
|
||||
@echo Generating openblas_config.h in $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)
|
||||
#for inc
|
||||
@echo \#ifndef OPENBLAS_CONFIG_H > $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/openblas_config.h
|
||||
@echo \#define OPENBLAS_CONFIG_H >> $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/openblas_config.h
|
||||
@awk 'NF {print $$1, "OPENBLAS_"$$2, $$3}' config_last.h >> $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/openblas_config.h
|
||||
@echo \#define OPENBLAS_VERSION \" OpenBLAS $(VERSION) \" >> $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/openblas_config.h
|
||||
@cat openblas_config_template.h >> $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/openblas_config.h
|
||||
@echo \#endif \/\* OPENBLAS_CONFIG_H \*\/ >> $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/openblas_config.h
|
||||
|
||||
@echo Generating f77blas.h in $(OPENBLAS_INCLUDE_DIR)
|
||||
@echo \#ifndef OPENBLAS_F77BLAS_H > $(OPENBLAS_INCLUDE_DIR)/f77blas.h
|
||||
@echo \#define OPENBLAS_F77BLAS_H >> $(OPENBLAS_INCLUDE_DIR)/f77blas.h
|
||||
@echo \#include \"openblas_config.h\" >> $(OPENBLAS_INCLUDE_DIR)/f77blas.h
|
||||
@cat common_interface.h >> $(OPENBLAS_INCLUDE_DIR)/f77blas.h
|
||||
@echo \#endif >> $(OPENBLAS_INCLUDE_DIR)/f77blas.h
|
||||
@echo Generating f77blas.h in $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)
|
||||
@echo \#ifndef OPENBLAS_F77BLAS_H > $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/f77blas.h
|
||||
@echo \#define OPENBLAS_F77BLAS_H >> $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/f77blas.h
|
||||
@echo \#include \"openblas_config.h\" >> $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/f77blas.h
|
||||
@cat common_interface.h >> $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/f77blas.h
|
||||
@echo \#endif >> $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/f77blas.h
|
||||
|
||||
ifndef NO_CBLAS
|
||||
@echo Generating cblas.h in $(OPENBLAS_INCLUDE_DIR)
|
||||
@sed 's/common/openblas_config/g' cblas.h > $(OPENBLAS_INCLUDE_DIR)/cblas.h
|
||||
@echo Generating cblas.h in $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)
|
||||
@sed 's/common/openblas_config/g' cblas.h > $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/cblas.h
|
||||
endif
|
||||
|
||||
ifndef NO_LAPACKE
|
||||
@echo Copying LAPACKE header files to $(OPENBLAS_LIBRARY_DIR)
|
||||
@-cp $(NETLIB_LAPACK_DIR)/lapacke/include/lapacke.h $(OPENBLAS_INCLUDE_DIR)/lapacke.h
|
||||
@-cp $(NETLIB_LAPACK_DIR)/lapacke/include/lapacke_config.h $(OPENBLAS_INCLUDE_DIR)/lapacke_config.h
|
||||
@-cp $(NETLIB_LAPACK_DIR)/lapacke/include/lapacke_mangling_with_flags.h $(OPENBLAS_INCLUDE_DIR)/lapacke_mangling.h
|
||||
@-cp $(NETLIB_LAPACK_DIR)/lapacke/include/lapacke_utils.h $(OPENBLAS_INCLUDE_DIR)/lapacke_utils.h
|
||||
@echo Copying LAPACKE header files to $(DESTDIR)$(OPENBLAS_LIBRARY_DIR)
|
||||
@-install -pDm644 $(NETLIB_LAPACK_DIR)/lapacke/include/lapacke.h $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke.h
|
||||
@-install -pDm644 $(NETLIB_LAPACK_DIR)/lapacke/include/lapacke_config.h $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke_config.h
|
||||
@-install -pDm644 $(NETLIB_LAPACK_DIR)/lapacke/include/lapacke_mangling_with_flags.h $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke_mangling.h
|
||||
@-install -pDm644 $(NETLIB_LAPACK_DIR)/lapacke/include/lapacke_utils.h $(DESTDIR)$(OPENBLAS_INCLUDE_DIR)/lapacke_utils.h
|
||||
endif
|
||||
|
||||
#for install static library
|
||||
@echo Copy the static library to $(OPENBLAS_LIBRARY_DIR)
|
||||
@cp $(LIBNAME) $(OPENBLAS_LIBRARY_DIR)
|
||||
@cd $(OPENBLAS_LIBRARY_DIR) ; \
|
||||
#for install static library
|
||||
ifndef NO_STATIC
|
||||
@echo Copying the static library to $(DESTDIR)$(OPENBLAS_LIBRARY_DIR)
|
||||
@install -pm644 $(LIBNAME) $(DESTDIR)$(OPENBLAS_LIBRARY_DIR)
|
||||
@cd $(DESTDIR)$(OPENBLAS_LIBRARY_DIR) ; \
|
||||
ln -fs $(LIBNAME) $(LIBPREFIX).$(LIBSUFFIX)
|
||||
#for install shared library
|
||||
@echo Copy the shared library to $(OPENBLAS_LIBRARY_DIR)
|
||||
endif
|
||||
#for install shared library
|
||||
ifndef NO_SHARED
|
||||
@echo Copying the shared library to $(DESTDIR)$(OPENBLAS_LIBRARY_DIR)
|
||||
ifeq ($(OSNAME), Linux)
|
||||
@cp $(LIBSONAME) $(OPENBLAS_LIBRARY_DIR)
|
||||
@cd $(OPENBLAS_LIBRARY_DIR) ; \
|
||||
@install -pm755 $(LIBSONAME) $(DESTDIR)$(OPENBLAS_LIBRARY_DIR)
|
||||
@cd $(DESTDIR)$(OPENBLAS_LIBRARY_DIR) ; \
|
||||
ln -fs $(LIBSONAME) $(LIBPREFIX).so ; \
|
||||
ln -fs $(LIBSONAME) $(LIBPREFIX).so.$(MAJOR_VERSION)
|
||||
endif
|
||||
ifeq ($(OSNAME), FreeBSD)
|
||||
@cp $(LIBSONAME) $(OPENBLAS_LIBRARY_DIR)
|
||||
@cd $(OPENBLAS_LIBRARY_DIR) ; \
|
||||
@cp $(LIBSONAME) $(DESTDIR)$(OPENBLAS_LIBRARY_DIR)
|
||||
@cd $(DESTDIR)$(OPENBLAS_LIBRARY_DIR) ; \
|
||||
ln -fs $(LIBSONAME) $(LIBPREFIX).so
|
||||
endif
|
||||
ifeq ($(OSNAME), NetBSD)
|
||||
@cp $(LIBSONAME) $(OPENBLAS_LIBRARY_DIR)
|
||||
@cd $(OPENBLAS_LIBRARY_DIR) ; \
|
||||
@cp $(LIBSONAME) $(DESTDIR)$(OPENBLAS_LIBRARY_DIR)
|
||||
@cd $(DESTDIR)$(OPENBLAS_LIBRARY_DIR) ; \
|
||||
ln -fs $(LIBSONAME) $(LIBPREFIX).so
|
||||
endif
|
||||
ifeq ($(OSNAME), Darwin)
|
||||
@-cp $(LIBDYNNAME) $(OPENBLAS_LIBRARY_DIR)
|
||||
@-install_name_tool -id $(OPENBLAS_LIBRARY_DIR)/$(LIBDYNNAME) $(OPENBLAS_LIBRARY_DIR)/$(LIBDYNNAME)
|
||||
@-ln -fs $(OPENBLAS_LIBRARY_DIR)/$(LIBDYNNAME) $(OPENBLAS_LIBRARY_DIR)/$(LIBPREFIX).dylib
|
||||
ifeq ($(OSNAME), Darwin)
|
||||
@-cp $(LIBDYNNAME) $(DESTDIR)$(OPENBLAS_LIBRARY_DIR)
|
||||
@-install_name_tool -id $(DESTDIR)$(OPENBLAS_LIBRARY_DIR)/$(LIBDYNNAME) $(DESTDIR)$(OPENBLAS_LIBRARY_DIR)/$(LIBDYNNAME)
|
||||
@-ln -fs $(DESTDIR)$(OPENBLAS_LIBRARY_DIR)/$(LIBDYNNAME) $(DESTDIR)$(OPENBLAS_LIBRARY_DIR)/$(LIBPREFIX).dylib
|
||||
endif
|
||||
ifeq ($(OSNAME), WINNT)
|
||||
@-cp $(LIBDLLNAME) $(OPENBLAS_LIBRARY_DIR)
|
||||
@-cp $(LIBDLLNAME) $(OPENBLAS_BINARY_DIR)
|
||||
@-cp $(LIBDLLNAME).a $(OPENBLAS_LIBRARY_DIR)
|
||||
endif
|
||||
ifeq ($(OSNAME), CYGWIN_NT)
|
||||
@-cp $(LIBDLLNAME) $(OPENBLAS_LIBRARY_DIR)
|
||||
@-cp $(LIBDLLNAME) $(OPENBLAS_BINARY_DIR)
|
||||
endif
|
||||
endif
|
||||
|
||||
@echo Install OK!
|
||||
|
||||
+4
-15
@@ -5,7 +5,7 @@ FLAMEPATH = $(HOME)/flame/lib
|
||||
#ifeq ($(CORE), CELL)
|
||||
#CELL_SDK_ROOT = /opt/IBM/cell-sdk-1.1/sysroot/usr
|
||||
#SPU_CC = spu-gcc
|
||||
#EXTRALIB += -lspe
|
||||
#EXTRALIB += -lspe
|
||||
#endif
|
||||
|
||||
ifeq ($(OSNAME), Linux)
|
||||
@@ -17,13 +17,7 @@ endif
|
||||
endif
|
||||
|
||||
ifdef BINARY64
|
||||
ifeq ($(OSNAME), Linux)
|
||||
LDFLAGS = -m elf64ppc
|
||||
endif
|
||||
|
||||
ifeq ($(OSNAME), Darwin)
|
||||
LDFLAGS = -arch ppc64
|
||||
endif
|
||||
|
||||
ifeq ($(OSNAME), AIX)
|
||||
CCOMMON_OPT += -mpowerpc64 -maix64
|
||||
@@ -34,22 +28,17 @@ ifeq ($(COMPILER_F77), xlf)
|
||||
FCOMMON_OPT += -q64
|
||||
endif
|
||||
ARFLAGS = -X 64
|
||||
LDFLAGS = -b64
|
||||
ASFLAGS = -a64
|
||||
endif
|
||||
else
|
||||
ifeq ($(OSNAME), Linux)
|
||||
LDFLAGS = -m elf32ppc
|
||||
endif
|
||||
ifeq ($(OSNAME), AIX)
|
||||
CCOMMON_OPT += -Wa,-a32
|
||||
ARFLAGS = -X 32
|
||||
LDFLAGS = -b32
|
||||
ASFLAGS = -a32
|
||||
endif
|
||||
endif
|
||||
|
||||
# CCOMMON_OPT += -maltivec -mabi=altivec
|
||||
# CCOMMON_OPT += -maltivec -mabi=altivec
|
||||
|
||||
LIBFLAME = -L$(FLAMEPATH) -llapack2flame -lflame-lapack -lflame-base $(LIBS)
|
||||
|
||||
@@ -68,7 +57,7 @@ endif
|
||||
|
||||
LIBVECLIB = -framework VecLib
|
||||
ifndef SMP
|
||||
LIBATLAS = -L/usr/lib/atlas3.7.11 -lf77blas -latlas -lg2c -lm
|
||||
LIBATLAS = -L/usr/lib/atlas3.7.11 -lf77blas -latlas -lg2c -lm
|
||||
LIBESSL = -lessl $(ESSLPATH) ../../level1/others/libmisc.a -lm
|
||||
else
|
||||
LIBATLAS = -L/usr/lib/atlas3.7.11p -lptf77blas -latlas -lm -lpthread
|
||||
@@ -84,7 +73,7 @@ endif
|
||||
LIBVECLIB = /System/Library/Frameworks/vecLib.framework/Versions/Current/vecLib
|
||||
|
||||
ifndef SMP
|
||||
LIBATLAS = -L/usr/lib64/atlas3.7.11 -lf77blas -latlas -lg2c -lm
|
||||
LIBATLAS = -L/usr/lib64/atlas3.7.11 -lf77blas -latlas -lg2c -lm
|
||||
LIBESSL = -lessl $(ESSLPATH) -lm
|
||||
else
|
||||
LIBATLAS = -L/usr/lib64/atlas3.7.11p -lptf77blas -latlas -lm -lpthread
|
||||
|
||||
+11
-4
@@ -17,13 +17,23 @@ ifdef CPUIDEMU
|
||||
EXFLAGS = -DCPUIDEMU -DVENDOR=99
|
||||
endif
|
||||
|
||||
all: getarch_2nd cblas_noconst.h
|
||||
all: getarch_2nd
|
||||
./getarch_2nd 0 >> $(TARGET_MAKE)
|
||||
./getarch_2nd 1 >> $(TARGET_CONF)
|
||||
|
||||
config.h : c_check f_check getarch
|
||||
perl ./c_check $(TARGET_MAKE) $(TARGET_CONF) $(CC)
|
||||
ifneq ($(ONLY_CBLAS), 1)
|
||||
perl ./f_check $(TARGET_MAKE) $(TARGET_CONF) $(FC)
|
||||
else
|
||||
#When we only build CBLAS, we set NOFORTRAN=2
|
||||
echo "NOFORTRAN=2" >> $(TARGET_MAKE)
|
||||
echo "NO_FBLAS=1" >> $(TARGET_MAKE)
|
||||
echo "F_COMPILER=GFORTRAN" >> $(TARGET_MAKE)
|
||||
echo "BU=_" >> $(TARGET_MAKE)
|
||||
echo "#define BUNDERSCORE _" >> $(TARGET_CONF)
|
||||
echo "#define NEEDBUNDERSCORE 1" >> $(TARGET_CONF)
|
||||
endif
|
||||
./getarch 0 >> $(TARGET_MAKE)
|
||||
./getarch 1 >> $(TARGET_CONF)
|
||||
|
||||
@@ -38,7 +48,4 @@ else
|
||||
$(HOSTCC) -I. $(CFLAGS) -DBUILD_KERNEL -o $(@F) getarch_2nd.c
|
||||
endif
|
||||
|
||||
cblas_noconst.h : cblas.h
|
||||
perl -ane ' s/\bconst\b\s*//g; print; ' < cblas.h > cblas_noconst.h
|
||||
|
||||
dummy:
|
||||
|
||||
+36
-11
@@ -1,12 +1,12 @@
|
||||
#
|
||||
# Beginning of user configuration
|
||||
# Beginning of user configuration
|
||||
#
|
||||
|
||||
# This library's version
|
||||
VERSION = 0.2.7
|
||||
VERSION = 0.2.10
|
||||
|
||||
# If you set the suffix, the library name will be libopenblas_$(LIBNAMESUFFIX).a
|
||||
# and libopenblas_$(LIBNAMESUFFIX).so. Meanwhile, the soname in shared library
|
||||
# and libopenblas_$(LIBNAMESUFFIX).so. Meanwhile, the soname in shared library
|
||||
# is libopenblas_$(LIBNAMESUFFIX).so.0.
|
||||
# LIBNAMESUFFIX = omp
|
||||
|
||||
@@ -25,9 +25,20 @@ VERSION = 0.2.7
|
||||
# FC = gfortran
|
||||
|
||||
# Even you can specify cross compiler. Meanwhile, please set HOSTCC.
|
||||
|
||||
# cross compiler for Windows
|
||||
# CC = x86_64-w64-mingw32-gcc
|
||||
# FC = x86_64-w64-mingw32-gfortran
|
||||
|
||||
# cross compiler for 32bit ARM
|
||||
# CC = arm-linux-gnueabihf-gcc
|
||||
# FC = arm-linux-gnueabihf-gfortran
|
||||
|
||||
# cross compiler for 64bit ARM
|
||||
# CC = aarch64-linux-gnu-gcc
|
||||
# FC = aarch64-linux-gnu-gfortran
|
||||
|
||||
|
||||
# If you use the cross compiler, please set this host compiler.
|
||||
# HOSTCC = gcc
|
||||
|
||||
@@ -48,13 +59,20 @@ VERSION = 0.2.7
|
||||
# automatically detected by the the script.
|
||||
# NUM_THREADS = 24
|
||||
|
||||
# if you don't need to install the static library, please comment it in.
|
||||
# NO_STATIC = 1
|
||||
|
||||
# if you don't need generate the shared library, please comment it in.
|
||||
# NO_SHARED = 1
|
||||
|
||||
# If you don't need CBLAS interface, please comment it in.
|
||||
# NO_CBLAS = 1
|
||||
|
||||
# If you don't need LAPACK, please comment it in.
|
||||
# If you only want CBLAS interface without installing Fortran compiler,
|
||||
# please comment it in.
|
||||
# ONLY_CBLAS = 1
|
||||
|
||||
# If you don't need LAPACK, please comment it in.
|
||||
# If you set NO_LAPACK=1, the library automatically sets NO_LAPACKE=1.
|
||||
# NO_LAPACK = 1
|
||||
|
||||
@@ -72,15 +90,18 @@ VERSION = 0.2.7
|
||||
# Unfortunately most of kernel won't give us high quality buffer.
|
||||
# BLAS tries to find the best region before entering main function,
|
||||
# but it will consume time. If you don't like it, you can disable one.
|
||||
# NO_WARMUP = 1
|
||||
NO_WARMUP = 1
|
||||
|
||||
# If you want to disable CPU/Memory affinity on Linux.
|
||||
# NO_AFFINITY = 1
|
||||
NO_AFFINITY = 1
|
||||
|
||||
# Don't use AVX kernel on Sandy Bridge. It is compatible with old compilers
|
||||
# Don't use AVX kernel on Sandy Bridge. It is compatible with old compilers
|
||||
# and OS. However, the performance is low.
|
||||
# NO_AVX = 1
|
||||
|
||||
# Don't use Haswell optimizations if binutils is too old (e.g. RHEL6)
|
||||
# NO_AVX2 = 1
|
||||
|
||||
# Don't use parallel make.
|
||||
# NO_PARALLEL_MAKE = 1
|
||||
|
||||
@@ -105,8 +126,8 @@ VERSION = 0.2.7
|
||||
# If you need to synchronize FP CSR between threads (for x86/x86_64 only).
|
||||
# CONSISTENT_FPCSR = 1
|
||||
|
||||
# If any gemm arguement m, n or k is less or equal this threshold, gemm will be execute
|
||||
# with single thread. You can use this flag to avoid the overhead of multi-threading
|
||||
# If any gemm arguement m, n or k is less or equal this threshold, gemm will be execute
|
||||
# with single thread. You can use this flag to avoid the overhead of multi-threading
|
||||
# in small matrix sizes. The default value is 4.
|
||||
# GEMM_MULTITHREAD_THRESHOLD = 4
|
||||
|
||||
@@ -121,10 +142,14 @@ VERSION = 0.2.7
|
||||
# The installation directory.
|
||||
# PREFIX = /opt/OpenBLAS
|
||||
|
||||
# Common Optimization Flag;
|
||||
# Common Optimization Flag;
|
||||
# The default -O2 is enough.
|
||||
# COMMON_OPT = -O2
|
||||
|
||||
# gfortran option for LAPACK
|
||||
# enable this flag only on 64bit Linux and if you need a thread safe lapack library
|
||||
# FCOMMON_OPT = -frecursive
|
||||
|
||||
# Profiling flags
|
||||
COMMON_PROF = -pg
|
||||
|
||||
@@ -132,5 +157,5 @@ COMMON_PROF = -pg
|
||||
# DEBUG = 1
|
||||
|
||||
#
|
||||
# End of user configuration
|
||||
# End of user configuration
|
||||
#
|
||||
|
||||
+1
-2
@@ -10,7 +10,6 @@ endif
|
||||
ifeq ($(COMPILER_F77), f90)
|
||||
FCOMMON_OPT += -xarch=v9
|
||||
endif
|
||||
LDFLAGS = -64
|
||||
else
|
||||
|
||||
CCOMMON_OPT += -mcpu=v9
|
||||
@@ -28,7 +27,7 @@ LIBNAME = $(LIBPREFIX).a
|
||||
|
||||
ifndef SMP
|
||||
LIBCXML = -L/opt/SUNWspro/lib/v9
|
||||
LIBATLAS = -L$(HOME)/misc/lib -lf77blas -latlas -lm
|
||||
LIBATLAS = -L$(HOME)/misc/lib -lf77blas -latlas -lm
|
||||
else
|
||||
LIBCXML = -lcxmlp -lots -lm
|
||||
endif
|
||||
|
||||
+157
-24
@@ -35,7 +35,7 @@ include $(TOPDIR)/$(MAKEFILE_RULE)
|
||||
endif
|
||||
|
||||
#
|
||||
# Beginning of system configuration
|
||||
# Beginning of system configuration
|
||||
#
|
||||
|
||||
ifndef HOSTCC
|
||||
@@ -46,25 +46,73 @@ ifdef TARGET
|
||||
GETARCH_FLAGS := -DFORCE_$(TARGET)
|
||||
endif
|
||||
|
||||
# Force fallbacks for 32bit
|
||||
|
||||
ifeq ($(BINARY), 32)
|
||||
ifeq ($(TARGET), HASWELL)
|
||||
GETARCH_FLAGS := -DFORCE_NEHALEM
|
||||
endif
|
||||
ifeq ($(TARGET), SANDYBRIDGE)
|
||||
GETARCH_FLAGS := -DFORCE_NEHALEM
|
||||
endif
|
||||
ifeq ($(TARGET), BULLDOZER)
|
||||
GETARCH_FLAGS := -DFORCE_BARCELONA
|
||||
endif
|
||||
ifeq ($(TARGET), PILEDRIVER)
|
||||
GETARCH_FLAGS := -DFORCE_BARCELONA
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
#TARGET_CORE will override TARGET which is used in DYNAMIC_ARCH=1.
|
||||
#
|
||||
ifdef TARGET_CORE
|
||||
GETARCH_FLAGS := -DFORCE_$(TARGET_CORE)
|
||||
endif
|
||||
|
||||
# Force fallbacks for 32bit
|
||||
|
||||
ifeq ($(BINARY), 32)
|
||||
ifeq ($(TARGET_CORE), HASWELL)
|
||||
GETARCH_FLAGS := -DFORCE_NEHALEM
|
||||
endif
|
||||
ifeq ($(TARGET_CORE), SANDYBRIDGE)
|
||||
GETARCH_FLAGS := -DFORCE_NEHALEM
|
||||
endif
|
||||
ifeq ($(TARGET_CORE), BULLDOZER)
|
||||
GETARCH_FLAGS := -DFORCE_BARCELONA
|
||||
endif
|
||||
ifeq ($(TARGET_CORE), PILEDRIVER)
|
||||
GETARCH_FLAGS := -DFORCE_BARCELONA
|
||||
endif
|
||||
endif
|
||||
|
||||
|
||||
|
||||
|
||||
ifdef INTERFACE64
|
||||
ifneq ($(INTERFACE64), 0)
|
||||
GETARCH_FLAGS += -DUSE64BITINT
|
||||
endif
|
||||
endif
|
||||
|
||||
ifndef GEMM_MULTITHREAD_THRESHOLD
|
||||
GEMM_MULTITHREAD_THRESHOLD=4
|
||||
endif
|
||||
GETARCH_FLAGS += -DGEMM_MULTITHREAD_THRESHOLD=$(GEMM_MULTITHREAD_THRESHOLD)
|
||||
GETARCH_FLAGS += -DGEMM_MULTITHREAD_THRESHOLD=$(GEMM_MULTITHREAD_THRESHOLD)
|
||||
|
||||
ifeq ($(NO_AVX), 1)
|
||||
GETARCH_FLAGS += -DNO_AVX
|
||||
endif
|
||||
|
||||
ifeq ($(BINARY), 32)
|
||||
GETARCH_FLAGS += -DNO_AVX
|
||||
endif
|
||||
|
||||
ifeq ($(NO_AVX2), 1)
|
||||
GETARCH_FLAGS += -DNO_AVX2
|
||||
endif
|
||||
|
||||
ifeq ($(DEBUG), 1)
|
||||
GETARCH_FLAGS += -g
|
||||
endif
|
||||
@@ -82,12 +130,19 @@ ifeq ($(HOSTCC), loongcc)
|
||||
GETARCH_FLAGS += -static
|
||||
endif
|
||||
|
||||
#if don't use Fortran, it will only compile CBLAS.
|
||||
ifeq ($(ONLY_CBLAS), 1)
|
||||
NO_LAPACK = 1
|
||||
else
|
||||
ONLY_CBLAS = 0
|
||||
endif
|
||||
|
||||
# This operation is expensive, so execution should be once.
|
||||
ifndef GOTOBLAS_MAKEFILE
|
||||
export GOTOBLAS_MAKEFILE = 1
|
||||
|
||||
# Generating Makefile.conf and config.h
|
||||
DUMMY := $(shell $(MAKE) -C $(TOPDIR) -f Makefile.prebuild CC="$(CC)" FC="$(FC)" HOSTCC="$(HOSTCC)" CFLAGS="$(GETARCH_FLAGS)" BINARY=$(BINARY) USE_OPENMP=$(USE_OPENMP) TARGET_CORE=$(TARGET_CORE) all)
|
||||
DUMMY := $(shell $(MAKE) -C $(TOPDIR) -f Makefile.prebuild CC="$(CC)" FC="$(FC)" HOSTCC="$(HOSTCC)" CFLAGS="$(GETARCH_FLAGS)" BINARY=$(BINARY) USE_OPENMP=$(USE_OPENMP) TARGET_CORE=$(TARGET_CORE) ONLY_CBLAS=$(ONLY_CBLAS) all)
|
||||
|
||||
ifndef TARGET_CORE
|
||||
include $(TOPDIR)/Makefile.conf
|
||||
@@ -151,6 +206,7 @@ endif
|
||||
|
||||
ifeq ($(OSNAME), Linux)
|
||||
EXTRALIB += -lm
|
||||
NO_EXPRECISION = 1
|
||||
endif
|
||||
|
||||
ifeq ($(OSNAME), AIX)
|
||||
@@ -178,14 +234,14 @@ GCCVERSIONGT4 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \> 4)
|
||||
GCCMINORVERSIONGTEQ7 := $(shell expr `$(CC) -dumpversion | cut -f2 -d.` \>= 7)
|
||||
ifeq ($(GCCVERSIONGT4), 1)
|
||||
# GCC Majar version > 4
|
||||
# It is compatible with MSVC ABI.
|
||||
# It is compatible with MSVC ABI.
|
||||
CCOMMON_OPT += -DMS_ABI
|
||||
endif
|
||||
|
||||
ifeq ($(GCCVERSIONGTEQ4), 1)
|
||||
ifeq ($(GCCMINORVERSIONGTEQ7), 1)
|
||||
# GCC Version >=4.7
|
||||
# It is compatible with MSVC ABI.
|
||||
# It is compatible with MSVC ABI.
|
||||
CCOMMON_OPT += -DMS_ABI
|
||||
endif
|
||||
endif
|
||||
@@ -222,6 +278,11 @@ endif
|
||||
endif
|
||||
endif
|
||||
|
||||
# ifeq logical or
|
||||
ifeq ($(OSNAME), $(filter $(OSNAME),WINNT CYGWIN_NT Interix))
|
||||
OS_WINDOWS=1
|
||||
endif
|
||||
|
||||
ifdef QUAD_PRECISION
|
||||
CCOMMON_OPT += -DQUAD_PRECISION
|
||||
NO_EXPRECISION = 1
|
||||
@@ -260,7 +321,7 @@ FCOMMON_OPT += -m128bit-long-double
|
||||
endif
|
||||
ifeq ($(C_COMPILER), CLANG)
|
||||
EXPRECISION = 1
|
||||
CCOMMON_OPT += -DEXPRECISION
|
||||
CCOMMON_OPT += -DEXPRECISION
|
||||
FCOMMON_OPT += -m128bit-long-double
|
||||
endif
|
||||
endif
|
||||
@@ -278,7 +339,7 @@ FCOMMON_OPT += -m128bit-long-double
|
||||
endif
|
||||
ifeq ($(C_COMPILER), CLANG)
|
||||
EXPRECISION = 1
|
||||
CCOMMON_OPT += -DEXPRECISION
|
||||
CCOMMON_OPT += -DEXPRECISION
|
||||
FCOMMON_OPT += -m128bit-long-double
|
||||
endif
|
||||
endif
|
||||
@@ -323,9 +384,6 @@ ifeq ($(DYNAMIC_ARCH), 1)
|
||||
ifeq ($(ARCH), x86)
|
||||
DYNAMIC_CORE = KATMAI COPPERMINE NORTHWOOD PRESCOTT BANIAS \
|
||||
CORE2 PENRYN DUNNINGTON NEHALEM ATHLON OPTERON OPTERON_SSE3 BARCELONA BOBCAT ATOM NANO
|
||||
ifneq ($(NO_AVX), 1)
|
||||
DYNAMIC_CORE += SANDYBRIDGE BULLDOZER PILEDRIVER
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(ARCH), x86_64)
|
||||
@@ -333,6 +391,9 @@ DYNAMIC_CORE = PRESCOTT CORE2 PENRYN DUNNINGTON NEHALEM OPTERON OPTERON_SSE3 BAR
|
||||
ifneq ($(NO_AVX), 1)
|
||||
DYNAMIC_CORE += SANDYBRIDGE BULLDOZER PILEDRIVER
|
||||
endif
|
||||
ifneq ($(NO_AVX2), 1)
|
||||
DYNAMIC_CORE += HASWELL
|
||||
endif
|
||||
endif
|
||||
|
||||
ifndef DYNAMIC_CORE
|
||||
@@ -361,6 +422,19 @@ NO_BINARY_MODE = 1
|
||||
BINARY_DEFINED = 1
|
||||
endif
|
||||
|
||||
ifeq ($(ARCH), arm)
|
||||
NO_BINARY_MODE = 1
|
||||
BINARY_DEFINED = 1
|
||||
endif
|
||||
|
||||
ifeq ($(ARCH), arm64)
|
||||
NO_BINARY_MODE = 1
|
||||
BINARY_DEFINED = 1
|
||||
endif
|
||||
|
||||
|
||||
|
||||
|
||||
#
|
||||
# C Compiler dependent settings
|
||||
#
|
||||
@@ -388,12 +462,12 @@ endif
|
||||
BINARY_DEFINED = 1
|
||||
endif
|
||||
|
||||
ifeq ($(CORE), LOONGSON3A)
|
||||
ifeq ($(CORE), LOONGSON3A)
|
||||
CCOMMON_OPT += -march=mips64
|
||||
FCOMMON_OPT += -march=mips64
|
||||
endif
|
||||
|
||||
ifeq ($(CORE), LOONGSON3B)
|
||||
ifeq ($(CORE), LOONGSON3B)
|
||||
CCOMMON_OPT += -march=mips64
|
||||
FCOMMON_OPT += -march=mips64
|
||||
endif
|
||||
@@ -463,9 +537,7 @@ CCOMMON_OPT += -DF_INTERFACE_GFORT
|
||||
FCOMMON_OPT += -Wall
|
||||
#Don't include -lgfortran, when NO_LAPACK=1 or lsbcc
|
||||
ifneq ($(NO_LAPACK), 1)
|
||||
ifneq ($(C_COMPILER), LSB)
|
||||
EXTRALIB += -lgfortran
|
||||
endif
|
||||
EXTRALIB += -lgfortran
|
||||
endif
|
||||
ifdef NO_BINARY_MODE
|
||||
ifeq ($(ARCH), mips64)
|
||||
@@ -479,8 +551,10 @@ else
|
||||
ifdef BINARY64
|
||||
FCOMMON_OPT += -m64
|
||||
ifdef INTERFACE64
|
||||
ifneq ($(INTERFACE64), 0)
|
||||
FCOMMON_OPT += -fdefault-integer-8
|
||||
endif
|
||||
endif
|
||||
else
|
||||
FCOMMON_OPT += -m32
|
||||
endif
|
||||
@@ -493,8 +567,10 @@ endif
|
||||
ifeq ($(F_COMPILER), INTEL)
|
||||
CCOMMON_OPT += -DF_INTERFACE_INTEL
|
||||
ifdef INTERFACE64
|
||||
ifneq ($(INTERFACE64), 0)
|
||||
FCOMMON_OPT += -i8
|
||||
endif
|
||||
endif
|
||||
ifdef USE_OPENMP
|
||||
FCOMMON_OPT += -openmp
|
||||
endif
|
||||
@@ -513,8 +589,10 @@ CCOMMON_OPT += -DF_INTERFACE_IBM
|
||||
ifdef BINARY64
|
||||
FCOMMON_OPT += -q64
|
||||
ifdef INTERFACE64
|
||||
ifneq ($(INTERFACE64), 0)
|
||||
FCOMMON_OPT += -qintsize=8
|
||||
endif
|
||||
endif
|
||||
else
|
||||
FCOMMON_OPT += -q32
|
||||
endif
|
||||
@@ -528,8 +606,10 @@ CCOMMON_OPT += -DF_INTERFACE_PGI
|
||||
COMMON_PROF += -DPGICOMPILER
|
||||
ifdef BINARY64
|
||||
ifdef INTERFACE64
|
||||
ifneq ($(INTERFACE64), 0)
|
||||
FCOMMON_OPT += -i8
|
||||
endif
|
||||
endif
|
||||
FCOMMON_OPT += -tp p7-64
|
||||
else
|
||||
FCOMMON_OPT += -tp p7
|
||||
@@ -543,9 +623,11 @@ ifeq ($(F_COMPILER), PATHSCALE)
|
||||
CCOMMON_OPT += -DF_INTERFACE_PATHSCALE
|
||||
ifdef BINARY64
|
||||
ifdef INTERFACE64
|
||||
ifneq ($(INTERFACE64), 0)
|
||||
FCOMMON_OPT += -i8
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifneq ($(ARCH), mips64)
|
||||
ifndef BINARY64
|
||||
@@ -570,9 +652,11 @@ ifeq ($(F_COMPILER), OPEN64)
|
||||
CCOMMON_OPT += -DF_INTERFACE_OPEN64
|
||||
ifdef BINARY64
|
||||
ifdef INTERFACE64
|
||||
ifneq ($(INTERFACE64), 0)
|
||||
FCOMMON_OPT += -i8
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(ARCH), mips64)
|
||||
ifndef BINARY64
|
||||
@@ -580,11 +664,11 @@ FCOMMON_OPT += -n32
|
||||
else
|
||||
FCOMMON_OPT += -n64
|
||||
endif
|
||||
ifeq ($(CORE), LOONGSON3A)
|
||||
ifeq ($(CORE), LOONGSON3A)
|
||||
FCOMMON_OPT += -loongson3 -static
|
||||
endif
|
||||
|
||||
ifeq ($(CORE), LOONGSON3B)
|
||||
ifeq ($(CORE), LOONGSON3B)
|
||||
FCOMMON_OPT += -loongson3 -static
|
||||
endif
|
||||
|
||||
@@ -610,11 +694,11 @@ CCOMMON_OPT += -n32
|
||||
else
|
||||
CCOMMON_OPT += -n64
|
||||
endif
|
||||
ifeq ($(CORE), LOONGSON3A)
|
||||
ifeq ($(CORE), LOONGSON3A)
|
||||
CCOMMON_OPT += -loongson3 -static
|
||||
endif
|
||||
|
||||
ifeq ($(CORE), LOONGSON3B)
|
||||
ifeq ($(CORE), LOONGSON3B)
|
||||
CCOMMON_OPT += -loongson3 -static
|
||||
endif
|
||||
|
||||
@@ -658,21 +742,23 @@ endif
|
||||
|
||||
ifdef BINARY64
|
||||
ifdef INTERFACE64
|
||||
CCOMMON_OPT +=
|
||||
ifneq ($(INTERFACE64), 0)
|
||||
CCOMMON_OPT +=
|
||||
#-DUSE64BITINT
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(NEED_PIC), 1)
|
||||
ifeq ($(C_COMPILER), IBM)
|
||||
CCOMMON_OPT += -qpic=large
|
||||
CCOMMON_OPT += -qpic=large
|
||||
else
|
||||
CCOMMON_OPT += -fPIC
|
||||
CCOMMON_OPT += -fPIC
|
||||
endif
|
||||
ifeq ($(F_COMPILER), SUN)
|
||||
FCOMMON_OPT += -pic
|
||||
else
|
||||
FCOMMON_OPT += -fPIC
|
||||
FCOMMON_OPT += -fPIC
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -694,6 +780,14 @@ ifeq ($(NO_AVX), 1)
|
||||
CCOMMON_OPT += -DNO_AVX
|
||||
endif
|
||||
|
||||
ifeq ($(ARCH), x86)
|
||||
CCOMMON_OPT += -DNO_AVX
|
||||
endif
|
||||
|
||||
ifeq ($(NO_AVX2), 1)
|
||||
CCOMMON_OPT += -DNO_AVX2
|
||||
endif
|
||||
|
||||
ifdef SMP
|
||||
CCOMMON_OPT += -DSMP_SERVER
|
||||
|
||||
@@ -835,11 +929,27 @@ override FFLAGS += $(COMMON_OPT) $(FCOMMON_OPT)
|
||||
override FPFLAGS += $(COMMON_OPT) $(FCOMMON_OPT) $(COMMON_PROF)
|
||||
#MAKEOVERRIDES =
|
||||
|
||||
#For LAPACK Fortran codes.
|
||||
#Disable -fopenmp for LAPACK Fortran codes on Windows.
|
||||
ifdef OS_WINDOWS
|
||||
LAPACK_FFLAGS := $(filter-out -fopenmp -mp -openmp -xopenmp=parallel,$(FFLAGS))
|
||||
LAPACK_FPFLAGS := $(filter-out -fopenmp -mp -openmp -xopenmp=parallel,$(FPFLAGS))
|
||||
else
|
||||
LAPACK_FFLAGS := $(FFLAGS)
|
||||
LAPACK_FPFLAGS := $(FPFLAGS)
|
||||
endif
|
||||
|
||||
LAPACK_CFLAGS = $(CFLAGS)
|
||||
LAPACK_CFLAGS += -DHAVE_LAPACK_CONFIG_H
|
||||
LAPACK_CFLAGS += -DHAVE_LAPACK_CONFIG_H
|
||||
ifdef INTERFACE64
|
||||
ifneq ($(INTERFACE64), 0)
|
||||
LAPACK_CFLAGS += -DLAPACK_ILP64
|
||||
endif
|
||||
endif
|
||||
|
||||
ifdef OS_WINDOWS
|
||||
LAPACK_CFLAGS += -DOPENBLAS_OS_WINDOWS
|
||||
endif
|
||||
ifeq ($(C_COMPILER), LSB)
|
||||
LAPACK_CFLAGS += -DLAPACK_COMPLEX_STRUCTURE
|
||||
endif
|
||||
@@ -885,6 +995,23 @@ LIBZIPNAME = $(LIBNAME:.$(LIBSUFFIX)=.zip)
|
||||
LIBS = $(TOPDIR)/$(LIBNAME)
|
||||
LIBS_P = $(TOPDIR)/$(LIBNAME_P)
|
||||
|
||||
|
||||
LIB_COMPONENTS = BLAS
|
||||
ifneq ($(NO_CBLAS), 1)
|
||||
LIB_COMPONENTS += CBLAS
|
||||
endif
|
||||
|
||||
ifneq ($(NO_LAPACK), 1)
|
||||
LIB_COMPONENTS += LAPACK
|
||||
ifneq ($(NO_LAPACKE), 1)
|
||||
LIB_COMPONENTS += LAPACKE
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(ONLY_CBLAS), 1)
|
||||
LIB_COMPONENTS = CBLAS
|
||||
endif
|
||||
|
||||
export OSNAME
|
||||
export ARCH
|
||||
export CORE
|
||||
@@ -895,6 +1022,7 @@ export CC
|
||||
export FC
|
||||
export BU
|
||||
export FU
|
||||
export NEED2UNDERSCORES
|
||||
export USE_THREAD
|
||||
export NUM_THREADS
|
||||
export NUM_CORES
|
||||
@@ -910,6 +1038,7 @@ export USE_OPENMP
|
||||
export CROSS
|
||||
export CROSS_SUFFIX
|
||||
export NOFORTRAN
|
||||
export NO_FBLAS
|
||||
export EXTRALIB
|
||||
export CEXTRALIB
|
||||
export FEXTRALIB
|
||||
@@ -922,6 +1051,10 @@ export HAVE_SSE4_2
|
||||
export HAVE_SSE4A
|
||||
export HAVE_SSE5
|
||||
export HAVE_AVX
|
||||
export HAVE_VFP
|
||||
export HAVE_VFPV3
|
||||
export HAVE_VFPV4
|
||||
export HAVE_NEON
|
||||
export KERNELDIR
|
||||
export FUNCTION_PROFILE
|
||||
export TARGET_CORE
|
||||
|
||||
+9
-8
@@ -57,7 +57,7 @@ commonlibs :: $(COMMONOBJS)
|
||||
commonprof :: $(COMMONOBJS_P)
|
||||
$(AR) $(ARFLAGS) -ru $(TOPDIR)/$(LIBNAME_P) $^
|
||||
|
||||
quick :
|
||||
quick :
|
||||
$(MAKE) -C $(TOPDIR) libs
|
||||
|
||||
bms.$(SUFFIX):bm.c $(TOPDIR)/../bench/bmcommon.h
|
||||
@@ -386,7 +386,7 @@ kbench_rank_k: kbench_rank_k.$(SUFFIX) $(DBLASOBJS) $(COMMONOBJS) $(OBJS) $(LIBS
|
||||
smallbench: smallbench.$(SUFFIX) $(BLASOBJS) $(COMMONOBJS) $(OBJS) $(LIBS)
|
||||
$(CC) -o $(@F) $(CFLAGS) $^ $(EXTRALIB) $(CEXTRALIB)
|
||||
|
||||
smallbench.mkl: smallbench.$(SUFFIX)
|
||||
smallbench.mkl: smallbench.$(SUFFIX)
|
||||
$(CC) -o $(@F) $(CFLAGS) $^ $(LIBMKL) $(EXTRALIB) $(CEXTRALIB)
|
||||
|
||||
bench.sun: bench.$(SUFFIX) $(OBJS)
|
||||
@@ -410,7 +410,7 @@ bench.acml: bench.$(SUFFIX) $(OBJS)
|
||||
bench.flame: bench.$(SUFFIX) $(OBJS)
|
||||
$(CC) -o $(@F) $(CFLAGS) $^ $(LIBFLAME) $(EXTRALIB) $(CEXTRALIB)
|
||||
|
||||
kbench.mkl: kbench.$(SUFFIX) $(OBJS)
|
||||
kbench.mkl: kbench.$(SUFFIX) $(OBJS)
|
||||
$(CC) -static -o $(@F) $(CFLAGS) $^ $(LIBMKL) $(EXTRALIB) $(CEXTRALIB)
|
||||
|
||||
bench.mkl: bench.$(SUFFIX) $(OBJS)
|
||||
@@ -537,10 +537,10 @@ params.$(SUFFIX):param.c $(TOPDIR)/../bench/bmcommon.h
|
||||
$(CC) $(CFLAGS) -UDOUBLE -UCOMPLEX -c $< -o $(@F)
|
||||
|
||||
paramd.$(SUFFIX):param.c $(TOPDIR)/../bench/bmcommon.h
|
||||
$(CC) $(CFLAGS) -DDOUBLE -UCOMPLEX -c $< -o $(@F)
|
||||
$(CC) $(CFLAGS) -DDOUBLE -UCOMPLEX -c $< -o $(@F)
|
||||
|
||||
paramq.$(SUFFIX):param.c $(TOPDIR)/../bench/bmcommon.h
|
||||
$(CC) $(CFLAGS) -DXDOUBLE -UCOMPLEX -c $< -o $(@F)
|
||||
$(CC) $(CFLAGS) -DXDOUBLE -UCOMPLEX -c $< -o $(@F)
|
||||
|
||||
paramc.$(SUFFIX):paramz.c $(TOPDIR)/../bench/bmcommon.h
|
||||
$(CC) $(CFLAGS) -UDOUBLE -DCOMPLEX -c $< -o $(@F)
|
||||
@@ -555,10 +555,10 @@ params-ex.$(SUFFIX):param-ex.c $(TOPDIR)/../bench/bmcommon.h
|
||||
$(CC) $(CFLAGS) -UDOUBLE -UCOMPLEX -c $< -o $(@F)
|
||||
|
||||
paramd-ex.$(SUFFIX):param-ex.c $(TOPDIR)/../bench/bmcommon.h
|
||||
$(CC) $(CFLAGS) -DDOUBLE -UCOMPLEX -c $< -o $(@F)
|
||||
$(CC) $(CFLAGS) -DDOUBLE -UCOMPLEX -c $< -o $(@F)
|
||||
|
||||
paramq-ex.$(SUFFIX):param-ex.c $(TOPDIR)/../bench/bmcommon.h
|
||||
$(CC) $(CFLAGS) -DXDOUBLE -UCOMPLEX -c $< -o $(@F)
|
||||
$(CC) $(CFLAGS) -DXDOUBLE -UCOMPLEX -c $< -o $(@F)
|
||||
|
||||
paramc-ex.$(SUFFIX):paramz-ex.c $(TOPDIR)/../bench/bmcommon.h
|
||||
$(CC) $(CFLAGS) -UDOUBLE -DCOMPLEX -c $< -o $(@F)
|
||||
@@ -606,7 +606,8 @@ clean ::
|
||||
@if test -d $(ARCH); then \
|
||||
(cd $(ARCH) && $(MAKE) clean) \
|
||||
fi
|
||||
@rm -rf *.a *.s *.o *.po *.obj *.i *.so core core.* gmon.out *.cso \
|
||||
@find . -name '*.o' | xargs rm -rf
|
||||
@rm -rf *.a *.s *.po *.obj *.i *.so core core.* gmon.out *.cso \
|
||||
*.csx *.is *~ *.exe *.flame *.pdb *.dwf \
|
||||
gen_insn_flash.c gen_insn_flash *.stackdump *.dll *.exp *.lib \
|
||||
*.pc *.pcl *.def *.i *.prof linktest.c \
|
||||
|
||||
+2
-5
@@ -1,8 +1,5 @@
|
||||
# COMPILER_PREFIX = mingw32-
|
||||
|
||||
ifeq ($(OSNAME), Linux)
|
||||
LDFLAGS = -melf_i386
|
||||
endif
|
||||
|
||||
ifeq ($(OSNAME), Interix)
|
||||
ARFLAGS = -m x86
|
||||
@@ -17,7 +14,7 @@ endif
|
||||
# LIBMKL = -L$(MKLPATH)/32 -lmkl_lapack -lmkl_ia32 -lguide -lpthread -lm
|
||||
|
||||
ifndef SMP
|
||||
LIBATLAS = -L$(ATLAS) -lf77blas -latlas -lg2c -lm
|
||||
LIBATLAS = -L$(ATLAS) -lf77blas -latlas -lg2c -lm
|
||||
else
|
||||
LIBATLAS = -L$(ATLAS) -lptf77blas -latlas -lpthread -lg2c -lm
|
||||
endif
|
||||
@@ -53,7 +50,7 @@ LIBSUNPERF = -L/opt/SUNWspro/lib/sse2 -Wl,-R,/opt/SUNWspro/lib/sse2 -lsunperf
|
||||
LIBVECLIB = /System/Library/Frameworks/vecLib.framework/Versions/Current/vecLib
|
||||
|
||||
ifndef SMP
|
||||
LIBATLAS = -L$(ATLASPATH)/32 -lcblas -lf77blas -latlas -lm
|
||||
LIBATLAS = -L$(ATLASPATH)/32 -lcblas -lf77blas -latlas -lm
|
||||
else
|
||||
LIBATLAS = -L$(ATLASPATH)/32 -lptf77blas -lptatlas -lpthread -lm
|
||||
endif
|
||||
|
||||
+1
-14
@@ -2,25 +2,12 @@
|
||||
|
||||
ifeq ($(OSNAME), SunOS)
|
||||
ifdef BINARY64
|
||||
LDFLAGS = -64
|
||||
ifeq ($(F_COMPILER), SUN)
|
||||
FCOMMON_OPT += -m64
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
ifeq ($(OSNAME), FreeBSD)
|
||||
LDFLAGS = -m elf_x86_64_fbsd
|
||||
endif
|
||||
|
||||
ifeq ($(OSNAME), Linux)
|
||||
LDFLAGS = -m elf_x86_64
|
||||
endif
|
||||
|
||||
ifeq ($(OSNAME), Darwin)
|
||||
LDFLAGS =
|
||||
endif
|
||||
|
||||
ifeq ($(OSNAME), Interix)
|
||||
ARFLAGS = -m x64
|
||||
endif
|
||||
@@ -41,7 +28,7 @@ endif
|
||||
|
||||
|
||||
ifndef SMP
|
||||
LIBATLAS = -L$(ATLASPATH)64 -llapack -lcblas -lf77blas -latlas -lm
|
||||
LIBATLAS = -L$(ATLASPATH)64 -llapack -lcblas -lf77blas -latlas -lm
|
||||
else
|
||||
LIBATLAS = -L$(ATLASPATH)64 -llapack -lptcblas -lptf77blas -latlas -lpthread -lm
|
||||
endif
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
[](https://travis-ci.org/xianyi/OpenBLAS)
|
||||
|
||||
## Introduction
|
||||
OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.
|
||||
OpenBLAS is an optimized BLAS library based on GotoBLAS2 1.13 BSD version.
|
||||
|
||||
Please read the documents on OpenBLAS wiki pages <http://github.com/xianyi/OpenBLAS/wiki>.
|
||||
|
||||
@@ -74,7 +74,7 @@ Please read GotoBLAS_01Readme.txt
|
||||
## Usages
|
||||
Link with libopenblas.a or -lopenblas for shared library.
|
||||
|
||||
### Set the number of threads with environment variables.
|
||||
### Set the number of threads with environment variables.
|
||||
|
||||
Examples:
|
||||
|
||||
@@ -84,7 +84,7 @@ Examples:
|
||||
|
||||
export GOTO_NUM_THREADS=4
|
||||
|
||||
or
|
||||
or
|
||||
|
||||
export OMP_NUM_THREADS=4
|
||||
|
||||
@@ -92,7 +92,7 @@ The priorities are OPENBLAS_NUM_THREADS > GOTO_NUM_THREADS > OMP_NUM_THREADS.
|
||||
|
||||
If you compile this lib with USE_OPENMP=1, you should set OMP_NUM_THREADS environment variable. OpenBLAS ignores OPENBLAS_NUM_THREADS and GOTO_NUM_THREADS with USE_OPENMP=1.
|
||||
|
||||
### Set the number of threads on runtime.
|
||||
### Set the number of threads on runtime.
|
||||
|
||||
We provided the below functions to control the number of threads on runtime.
|
||||
|
||||
@@ -116,13 +116,15 @@ Please see Changelog.txt to obtain the differences between GotoBLAS2 1.13 BSD ve
|
||||
* Please read [Faq](https://github.com/xianyi/OpenBLAS/wiki/Faq) at first.
|
||||
* Please use gcc version 4.6 and above to compile Sandy Bridge AVX kernels on Linux/MingW/BSD.
|
||||
* Please use Clang version 3.1 and above to compile the library on Sandy Bridge microarchitecture. The Clang 3.0 will generate the wrong AVX binary code.
|
||||
* The number of CPUs/Cores should less than or equal to 256.
|
||||
* The number of CPUs/Cores should less than or equal to 256.
|
||||
* On Linux, OpenBLAS sets the processor affinity by default. This may cause [the conflict with R parallel](https://stat.ethz.ch/pipermail/r-sig-hpc/2012-April/001348.html). You can build the library with NO_AFFINITY=1.
|
||||
* On Loongson 3A. make test would be failed because of pthread_create error. The error code is EAGAIN. However, it will be OK when you run the same testcase on shell.
|
||||
* On Loongson 3A. make test would be failed because of pthread_create error. The error code is EAGAIN. However, it will be OK when you run the same testcase on shell.
|
||||
|
||||
## Contributing
|
||||
1. [Check for open issues](https://github.com/xianyi/OpenBLAS/issues) or open a fresh issue to start a discussion around a feature idea or a bug.
|
||||
1. [Check for open issues](https://github.com/xianyi/OpenBLAS/issues) or open a fresh issue to start a discussion around a feature idea or a bug.
|
||||
1. Fork the [OpenBLAS](https://github.com/xianyi/OpenBLAS) repository to start making your changes.
|
||||
1. Write a test which shows that the bug was fixed or that the feature works as expected.
|
||||
1. Send a pull request. Make sure to add yourself to `CONTRIBUTORS.md`.
|
||||
|
||||
## Donation
|
||||
Please read [this wiki page](https://github.com/xianyi/OpenBLAS/wiki/Donation).
|
||||
|
||||
+648
-116
@@ -1,157 +1,607 @@
|
||||
TOPDIR = ..
|
||||
include $(TOPDIR)/Makefile.system
|
||||
|
||||
CULA_INC = -I/usr/local/cula/include
|
||||
CULA_LIB = -L/usr/local/cula/lib64 -Wl,-rpath,/usr/local/cula/lib64 -lcula_fortran -lcula -lcublas
|
||||
# ACML standard
|
||||
ACML=/opt/acml5.3.1/gfortran64_mp/lib
|
||||
LIBACML = -fopenmp $(ACML)/libacml_mp.a -lgfortran -lm
|
||||
|
||||
all :: dlinpack.goto dlinpack.mkl dlinpack.acml dcholesky.goto dcholesky.mkl dcholesky.acml
|
||||
./dlinpack.goto 4000 4000 1
|
||||
-./dlinpack.mkl 4000 4000 1
|
||||
-./dlinpack.acml 4000 4000 1
|
||||
./dcholesky.goto 4000 4000 1
|
||||
-./dcholesky.mkl 4000 4000 1
|
||||
-./dcholesky.acml 4000 4000 1
|
||||
# ACML custom
|
||||
#ACML=/opt/pb/acml-5-3-1-gfortran-64bit/gfortran64_fma4_mp/lib
|
||||
#LIBACML = -fopenmp $(ACML)/libacml_mp.a -lgfortran -lm
|
||||
|
||||
# Atlas Ubuntu
|
||||
#ATLAS=/usr/lib/atlas-base
|
||||
#LIBATLAS = -fopenmp $(ATLAS)/liblapack_atlas.a $(ATLAS)/libptcblas.a $(ATLAS)/libptf77blas.a $(ATLAS)/libatlas.a -lgfortran -lm
|
||||
|
||||
# Atlas RHEL and Fedora
|
||||
ATLAS=/usr/lib64/atlas
|
||||
LIBATLAS = -fopenmp $(ATLAS)/liblapack.a $(ATLAS)/libptcblas.a $(ATLAS)/libptf77blas.a $(ATLAS)/libatlas.a -lgfortran -lm
|
||||
|
||||
# Intel standard
|
||||
MKL=/opt/intel/mkl/lib/intel64
|
||||
LIBMKL = -L$(MKL) -lmkl_intel_lp64 -lmkl_gnu_thread -lmkl_core -lgomp -lpthread -lm
|
||||
|
||||
# Intel custom
|
||||
#MKL=/home/saar/intel_mkl
|
||||
#LIBMKL = -L$(MKL) -lmkl_intel_lp64 -lmkl_gnu_thread -lmkl_core -lgomp -lpthread -lm
|
||||
|
||||
|
||||
|
||||
goto :: slinpack.goto dlinpack.goto clinpack.goto zlinpack.goto \
|
||||
scholesky.goto dcholesky.goto ccholesky.goto zcholesky.goto \
|
||||
sgemm.goto dgemm.goto cgemm.goto zgemm.goto \
|
||||
strmm.goto dtrmm.goto ctrmm.goto ztrmm.goto \
|
||||
strsm.goto dtrsm.goto ctrsm.goto ztrsm.goto \
|
||||
ssyrk.goto dsyrk.goto csyrk.goto zsyrk.goto \
|
||||
ssyr2k.goto dsyr2k.goto csyr2k.goto zsyr2k.goto \
|
||||
chemm.goto zhemm.goto \
|
||||
cherk.goto zherk.goto \
|
||||
cher2k.goto zher2k.goto \
|
||||
ssymm.goto dsymm.goto csymm.goto zsymm.goto
|
||||
|
||||
acml :: slinpack.acml dlinpack.acml clinpack.acml zlinpack.acml \
|
||||
scholesky.acml dcholesky.acml ccholesky.acml zcholesky.acml \
|
||||
sgemm.acml dgemm.acml cgemm.acml zgemm.acml \
|
||||
strmm.acml dtrmm.acml ctrmm.acml ztrmm.acml \
|
||||
strsm.acml dtrsm.acml ctrsm.acml ztrsm.acml \
|
||||
ssyrk.acml dsyrk.acml csyrk.acml zsyrk.acml \
|
||||
ssyr2k.acml dsyr2k.acml csyr2k.acml zsyr2k.acml \
|
||||
chemm.acml zhemm.acml \
|
||||
cherk.acml zherk.acml \
|
||||
cher2k.acml zher2k.acml \
|
||||
ssymm.acml dsymm.acml csymm.acml zsymm.acml
|
||||
|
||||
atlas :: slinpack.atlas dlinpack.atlas clinpack.atlas zlinpack.atlas \
|
||||
scholesky.atlas dcholesky.atlas ccholesky.atlas zcholesky.atlas \
|
||||
sgemm.atlas dgemm.atlas cgemm.atlas zgemm.atlas \
|
||||
strmm.atlas dtrmm.atlas ctrmm.atlas ztrmm.atlas \
|
||||
strsm.atlas dtrsm.atlas ctrsm.atlas ztrsm.atlas \
|
||||
ssyrk.atlas dsyrk.atlas csyrk.atlas zsyrk.atlas \
|
||||
ssyr2k.atlas dsyr2k.atlas csyr2k.atlas zsyr2k.atlas \
|
||||
chemm.atlas zhemm.atlas \
|
||||
cherk.atlas zherk.atlas \
|
||||
cher2k.atlas zher2k.atlas \
|
||||
ssymm.atlas dsymm.atlas csymm.atlas zsymm.atlas
|
||||
|
||||
mkl :: slinpack.mkl dlinpack.mkl clinpack.mkl zlinpack.mkl \
|
||||
scholesky.mkl dcholesky.mkl ccholesky.mkl zcholesky.mkl \
|
||||
sgemm.mkl dgemm.mkl cgemm.mkl zgemm.mkl \
|
||||
strmm.mkl dtrmm.mkl ctrmm.mkl ztrmm.mkl \
|
||||
strsm.mkl dtrsm.mkl ctrsm.mkl ztrsm.mkl \
|
||||
ssyrk.mkl dsyrk.mkl csyrk.mkl zsyrk.mkl \
|
||||
ssyr2k.mkl dsyr2k.mkl csyr2k.mkl zsyr2k.mkl \
|
||||
chemm.mkl zhemm.mkl \
|
||||
cherk.mkl zherk.mkl \
|
||||
cher2k.mkl zher2k.mkl \
|
||||
ssymm.mkl dsymm.mkl csymm.mkl zsymm.mkl
|
||||
|
||||
all :: goto atlas acml mkl
|
||||
|
||||
##################################### Slinpack ####################################################
|
||||
slinpack.goto : slinpack.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
dlinpack.goto : dlinpack.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
qlinpack.goto : qlinpack.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
clinpack.goto : clinpack.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
zlinpack.goto : zlinpack.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
xlinpack.goto : xlinpack.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
scholesky.goto : scholesky.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
dcholesky.goto : dcholesky.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
qcholesky.goto : qcholesky.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
ccholesky.goto : ccholesky.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
zcholesky.goto : zcholesky.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
xcholesky.goto : xcholesky.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
slinpack.mkl : slinpack.$(SUFFIX)
|
||||
-$(CC) -static $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
dlinpack.mkl : dlinpack.$(SUFFIX)
|
||||
-$(CC) -static $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
clinpack.mkl : clinpack.$(SUFFIX)
|
||||
-$(CC) -static $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
zlinpack.mkl : zlinpack.$(SUFFIX)
|
||||
-$(CC) -static $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
scholesky.mkl : scholesky.$(SUFFIX)
|
||||
-$(CC) -static $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
dcholesky.mkl : dcholesky.$(SUFFIX)
|
||||
-$(CC) -static $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
ccholesky.mkl : ccholesky.$(SUFFIX)
|
||||
-$(CC) -static $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
zcholesky.mkl : zcholesky.$(SUFFIX)
|
||||
-$(CC) -static $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
slinpack.acml : slinpack.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBACML) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
slinpack.atlas : slinpack.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBATLAS) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
slinpack.mkl : slinpack.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
##################################### Dlinpack ####################################################
|
||||
dlinpack.goto : dlinpack.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
dlinpack.acml : dlinpack.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBACML) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
dlinpack.atlas : dlinpack.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBATLAS) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
dlinpack.mkl : dlinpack.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
##################################### Clinpack ####################################################
|
||||
|
||||
clinpack.goto : clinpack.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
clinpack.acml : clinpack.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBACML) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
clinpack.atlas : clinpack.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBATLAS) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
clinpack.mkl : clinpack.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
##################################### Zlinpack ####################################################
|
||||
|
||||
zlinpack.goto : zlinpack.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
zlinpack.acml : zlinpack.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBACML) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
zlinpack.atlas : zlinpack.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBATLAS) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
zlinpack.mkl : zlinpack.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
##################################### Scholesky ###################################################
|
||||
|
||||
scholesky.goto : scholesky.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
scholesky.acml : scholesky.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBACML) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
scholesky.atlas : scholesky.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBATLAS) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
scholesky.mkl : scholesky.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
##################################### Dcholesky ###################################################
|
||||
|
||||
dcholesky.goto : dcholesky.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
dcholesky.acml : dcholesky.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBACML) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
dcholesky.atlas : dcholesky.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBATLAS) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
dcholesky.mkl : dcholesky.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
##################################### Ccholesky ###################################################
|
||||
|
||||
ccholesky.goto : ccholesky.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
ccholesky.acml : ccholesky.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBACML) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
ccholesky.atlas : ccholesky.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBATLAS) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
ccholesky.mkl : ccholesky.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
zcholesky.goto : zcholesky.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
##################################### Zcholesky ###################################################
|
||||
|
||||
xcholesky.goto : xcholesky.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
zcholesky.acml : zcholesky.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBACML) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
slinpack.flame : slinpack.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBFLAME) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
zcholesky.atlas : zcholesky.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBATLAS) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
dlinpack.flame : dlinpack.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBFLAME) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
zcholesky.mkl : zcholesky.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
clinpack.flame : clinpack.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBFLAME) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
zlinpack.flame : zlinpack.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBFLAME) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
##################################### Sgemm ####################################################
|
||||
sgemm.goto : sgemm.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
scholesky.flame : scholesky.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBFLAME) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
sgemm.acml : sgemm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBACML) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
dcholesky.flame : dcholesky.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBFLAME) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
sgemm.atlas : sgemm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBATLAS) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
ccholesky.flame : ccholesky.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBFLAME) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
sgemm.mkl : sgemm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
zcholesky.flame : zcholesky.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBFLAME) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
##################################### Dgemm ####################################################
|
||||
dgemm.goto : dgemm.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
slinpack.sun : slinpack.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBSUNPERF) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
dgemm.acml : dgemm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBACML) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
dlinpack.sun : dlinpack.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBSUNPERF) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
dgemm.atlas : dgemm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBATLAS) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
clinpack.sun : clinpack.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBSUNPERF) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
dgemm.mkl : dgemm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
zlinpack.sun : zlinpack.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBSUNPERF) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
##################################### Cgemm ####################################################
|
||||
|
||||
scholesky.sun : scholesky.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBSUNPERF) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
cgemm.goto : cgemm.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
dcholesky.sun : dcholesky.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBSUNPERF) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
cgemm.acml : cgemm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBACML) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
ccholesky.sun : ccholesky.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBSUNPERF) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
cgemm.atlas : cgemm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBATLAS) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
zcholesky.sun : zcholesky.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBSUNPERF) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
cgemm.mkl : cgemm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
slinpack.cula : slinpack.$(SUFFIX) cula_wrapper.$(SUFFIX)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CULA_LIB) ../$(LIBNAME) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
##################################### Zgemm ####################################################
|
||||
|
||||
clinpack.cula : clinpack.$(SUFFIX) cula_wrapper.$(SUFFIX)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CULA_LIB) ../$(LIBNAME) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
zgemm.goto : zgemm.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
cula_wrapper.$(SUFFIX) : cula_wrapper.c
|
||||
$(CC) $(CFLAGS) -c $(CULA_INC) -o $(@F) $^
|
||||
zgemm.acml : zgemm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBACML) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
zgemm.atlas : zgemm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBATLAS) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
zgemm.mkl : zgemm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
##################################### Ssymm ####################################################
|
||||
ssymm.goto : ssymm.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
ssymm.acml : ssymm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBACML) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
ssymm.atlas : ssymm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBATLAS) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
ssymm.mkl : ssymm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
##################################### Dsymm ####################################################
|
||||
dsymm.goto : dsymm.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
dsymm.acml : dsymm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBACML) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
dsymm.atlas : dsymm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBATLAS) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
dsymm.mkl : dsymm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
##################################### Csymm ####################################################
|
||||
|
||||
csymm.goto : csymm.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
csymm.acml : csymm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBACML) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
csymm.atlas : csymm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBATLAS) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
csymm.mkl : csymm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
##################################### Zsymm ####################################################
|
||||
|
||||
zsymm.goto : zsymm.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
zsymm.acml : zsymm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBACML) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
zsymm.atlas : zsymm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBATLAS) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
zsymm.mkl : zsymm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
##################################### Strmm ####################################################
|
||||
strmm.goto : strmm.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
strmm.acml : strmm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBACML) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
strmm.atlas : strmm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBATLAS) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
strmm.mkl : strmm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
##################################### Dtrmm ####################################################
|
||||
dtrmm.goto : dtrmm.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
dtrmm.acml : dtrmm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBACML) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
dtrmm.atlas : dtrmm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBATLAS) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
dtrmm.mkl : dtrmm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
##################################### Ctrmm ####################################################
|
||||
|
||||
ctrmm.goto : ctrmm.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
ctrmm.acml : ctrmm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBACML) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
ctrmm.atlas : ctrmm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBATLAS) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
ctrmm.mkl : ctrmm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
##################################### Ztrmm ####################################################
|
||||
|
||||
ztrmm.goto : ztrmm.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
ztrmm.acml : ztrmm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBACML) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
ztrmm.atlas : ztrmm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBATLAS) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
ztrmm.mkl : ztrmm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
|
||||
##################################### Strsm ####################################################
|
||||
strsm.goto : strsm.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
strsm.acml : strsm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBACML) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
strsm.atlas : strsm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBATLAS) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
strsm.mkl : strsm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
##################################### Dtrsm ####################################################
|
||||
dtrsm.goto : dtrsm.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
dtrsm.acml : dtrsm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBACML) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
dtrsm.atlas : dtrsm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBATLAS) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
dtrsm.mkl : dtrsm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
##################################### Ctrsm ####################################################
|
||||
|
||||
ctrsm.goto : ctrsm.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
ctrsm.acml : ctrsm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBACML) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
ctrsm.atlas : ctrsm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBATLAS) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
ctrsm.mkl : ctrsm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
##################################### Ztrsm ####################################################
|
||||
|
||||
ztrsm.goto : ztrsm.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
ztrsm.acml : ztrsm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBACML) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
ztrsm.atlas : ztrsm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBATLAS) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
ztrsm.mkl : ztrsm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
##################################### Ssyrk ####################################################
|
||||
ssyrk.goto : ssyrk.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
ssyrk.acml : ssyrk.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBACML) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
ssyrk.atlas : ssyrk.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBATLAS) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
ssyrk.mkl : ssyrk.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
##################################### Dsyrk ####################################################
|
||||
dsyrk.goto : dsyrk.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
dsyrk.acml : dsyrk.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBACML) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
dsyrk.atlas : dsyrk.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBATLAS) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
dsyrk.mkl : dsyrk.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
##################################### Csyrk ####################################################
|
||||
|
||||
csyrk.goto : csyrk.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
csyrk.acml : csyrk.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBACML) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
csyrk.atlas : csyrk.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBATLAS) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
csyrk.mkl : csyrk.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
##################################### Zsyrk ####################################################
|
||||
|
||||
zsyrk.goto : zsyrk.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
zsyrk.acml : zsyrk.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBACML) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
zsyrk.atlas : zsyrk.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBATLAS) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
zsyrk.mkl : zsyrk.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
|
||||
##################################### Ssyr2k ####################################################
|
||||
ssyr2k.goto : ssyr2k.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
ssyr2k.acml : ssyr2k.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBACML) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
ssyr2k.atlas : ssyr2k.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBATLAS) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
ssyr2k.mkl : ssyr2k.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
##################################### Dsyr2k ####################################################
|
||||
dsyr2k.goto : dsyr2k.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
dsyr2k.acml : dsyr2k.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBACML) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
dsyr2k.atlas : dsyr2k.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBATLAS) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
dsyr2k.mkl : dsyr2k.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
##################################### Csyr2k ####################################################
|
||||
|
||||
csyr2k.goto : csyr2k.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
csyr2k.acml : csyr2k.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBACML) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
csyr2k.atlas : csyr2k.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBATLAS) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
csyr2k.mkl : csyr2k.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
##################################### Zsyr2k ####################################################
|
||||
|
||||
zsyr2k.goto : zsyr2k.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
zsyr2k.acml : zsyr2k.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBACML) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
zsyr2k.atlas : zsyr2k.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBATLAS) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
zsyr2k.mkl : zsyr2k.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
##################################### Chemm ####################################################
|
||||
|
||||
chemm.goto : chemm.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
chemm.acml : chemm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBACML) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
chemm.atlas : chemm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBATLAS) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
chemm.mkl : chemm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
##################################### Zhemm ####################################################
|
||||
|
||||
zhemm.goto : zhemm.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
zhemm.acml : zhemm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBACML) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
zhemm.atlas : zhemm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBATLAS) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
zhemm.mkl : zhemm.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
##################################### Cherk ####################################################
|
||||
|
||||
cherk.goto : cherk.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
cherk.acml : cherk.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBACML) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
cherk.atlas : cherk.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBATLAS) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
cherk.mkl : cherk.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
##################################### Zherk ####################################################
|
||||
|
||||
zherk.goto : zherk.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
zherk.acml : zherk.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBACML) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
zherk.atlas : zherk.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBATLAS) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
zherk.mkl : zherk.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
##################################### Cher2k ####################################################
|
||||
|
||||
cher2k.goto : cher2k.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
cher2k.acml : cher2k.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBACML) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
cher2k.atlas : cher2k.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBATLAS) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
cher2k.mkl : cher2k.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
##################################### Zher2k ####################################################
|
||||
|
||||
zher2k.goto : zher2k.$(SUFFIX) ../$(LIBNAME)
|
||||
$(CC) $(CFLAGS) -o $(@F) $^ $(CEXTRALIB) $(EXTRALIB) -lm
|
||||
|
||||
zher2k.acml : zher2k.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBACML) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
zher2k.atlas : zher2k.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBATLAS) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
zher2k.mkl : zher2k.$(SUFFIX)
|
||||
-$(CC) $(CFLAGS) -o $(@F) $^ $(LIBMKL) $(CEXTRALIB) $(EXTRALIB) $(FEXTRALIB)
|
||||
|
||||
###################################################################################################
|
||||
|
||||
slinpack.$(SUFFIX) : linpack.c
|
||||
$(CC) $(CFLAGS) -c -UCOMPLEX -UDOUBLE -o $(@F) $^
|
||||
@@ -159,37 +609,119 @@ slinpack.$(SUFFIX) : linpack.c
|
||||
dlinpack.$(SUFFIX) : linpack.c
|
||||
$(CC) $(CFLAGS) -c -UCOMPLEX -DDOUBLE -o $(@F) $^
|
||||
|
||||
qlinpack.$(SUFFIX) : linpack.c
|
||||
$(CC) $(CFLAGS) -c -UCOMPLEX -DXDOUBLE -o $(@F) $^
|
||||
|
||||
clinpack.$(SUFFIX) : linpack.c
|
||||
$(CC) $(CFLAGS) -c -DCOMPLEX -UDOUBLE -o $(@F) $^
|
||||
|
||||
zlinpack.$(SUFFIX) : linpack.c
|
||||
$(CC) $(CFLAGS) -c -DCOMPLEX -DDOUBLE -o $(@F) $^
|
||||
|
||||
xlinpack.$(SUFFIX) : linpack.c
|
||||
$(CC) $(CFLAGS) -c -DCOMPLEX -DXDOUBLE -o $(@F) $^
|
||||
|
||||
scholesky.$(SUFFIX) : cholesky.c
|
||||
$(CC) $(CFLAGS) -c -UCOMPLEX -UDOUBLE -o $(@F) $^
|
||||
|
||||
dcholesky.$(SUFFIX) : cholesky.c
|
||||
$(CC) $(CFLAGS) -c -UCOMPLEX -DDOUBLE -o $(@F) $^
|
||||
|
||||
qcholesky.$(SUFFIX) : cholesky.c
|
||||
$(CC) $(CFLAGS) -c -UCOMPLEX -DXDOUBLE -o $(@F) $^
|
||||
|
||||
ccholesky.$(SUFFIX) : cholesky.c
|
||||
$(CC) $(CFLAGS) -c -DCOMPLEX -UDOUBLE -o $(@F) $^
|
||||
|
||||
zcholesky.$(SUFFIX) : cholesky.c
|
||||
$(CC) $(CFLAGS) -c -DCOMPLEX -DDOUBLE -o $(@F) $^
|
||||
|
||||
xcholesky.$(SUFFIX) : cholesky.c
|
||||
$(CC) $(CFLAGS) -c -DCOMPLEX -DXDOUBLE -o $(@F) $^
|
||||
sgemm.$(SUFFIX) : gemm.c
|
||||
$(CC) $(CFLAGS) -c -UCOMPLEX -UDOUBLE -o $(@F) $^
|
||||
|
||||
dgemm.$(SUFFIX) : gemm.c
|
||||
$(CC) $(CFLAGS) -c -UCOMPLEX -DDOUBLE -o $(@F) $^
|
||||
|
||||
cgemm.$(SUFFIX) : gemm.c
|
||||
$(CC) $(CFLAGS) -c -DCOMPLEX -UDOUBLE -o $(@F) $^
|
||||
|
||||
zgemm.$(SUFFIX) : gemm.c
|
||||
$(CC) $(CFLAGS) -c -DCOMPLEX -DDOUBLE -o $(@F) $^
|
||||
|
||||
ssymm.$(SUFFIX) : symm.c
|
||||
$(CC) $(CFLAGS) -c -UCOMPLEX -UDOUBLE -o $(@F) $^
|
||||
|
||||
dsymm.$(SUFFIX) : symm.c
|
||||
$(CC) $(CFLAGS) -c -UCOMPLEX -DDOUBLE -o $(@F) $^
|
||||
|
||||
csymm.$(SUFFIX) : symm.c
|
||||
$(CC) $(CFLAGS) -c -DCOMPLEX -UDOUBLE -o $(@F) $^
|
||||
|
||||
zsymm.$(SUFFIX) : symm.c
|
||||
$(CC) $(CFLAGS) -c -DCOMPLEX -DDOUBLE -o $(@F) $^
|
||||
|
||||
strmm.$(SUFFIX) : trmm.c
|
||||
$(CC) $(CFLAGS) -c -UCOMPLEX -UDOUBLE -o $(@F) $^
|
||||
|
||||
dtrmm.$(SUFFIX) : trmm.c
|
||||
$(CC) $(CFLAGS) -c -UCOMPLEX -DDOUBLE -o $(@F) $^
|
||||
|
||||
ctrmm.$(SUFFIX) : trmm.c
|
||||
$(CC) $(CFLAGS) -c -DCOMPLEX -UDOUBLE -o $(@F) $^
|
||||
|
||||
ztrmm.$(SUFFIX) : trmm.c
|
||||
$(CC) $(CFLAGS) -c -DCOMPLEX -DDOUBLE -o $(@F) $^
|
||||
|
||||
strsm.$(SUFFIX) : trsm.c
|
||||
$(CC) $(CFLAGS) -c -UCOMPLEX -UDOUBLE -o $(@F) $^
|
||||
|
||||
dtrsm.$(SUFFIX) : trsm.c
|
||||
$(CC) $(CFLAGS) -c -UCOMPLEX -DDOUBLE -o $(@F) $^
|
||||
|
||||
ctrsm.$(SUFFIX) : trsm.c
|
||||
$(CC) $(CFLAGS) -c -DCOMPLEX -UDOUBLE -o $(@F) $^
|
||||
|
||||
ztrsm.$(SUFFIX) : trsm.c
|
||||
$(CC) $(CFLAGS) -c -DCOMPLEX -DDOUBLE -o $(@F) $^
|
||||
|
||||
ssyrk.$(SUFFIX) : syrk.c
|
||||
$(CC) $(CFLAGS) -c -UCOMPLEX -UDOUBLE -o $(@F) $^
|
||||
|
||||
dsyrk.$(SUFFIX) : syrk.c
|
||||
$(CC) $(CFLAGS) -c -UCOMPLEX -DDOUBLE -o $(@F) $^
|
||||
|
||||
csyrk.$(SUFFIX) : syrk.c
|
||||
$(CC) $(CFLAGS) -c -DCOMPLEX -UDOUBLE -o $(@F) $^
|
||||
|
||||
zsyrk.$(SUFFIX) : syrk.c
|
||||
$(CC) $(CFLAGS) -c -DCOMPLEX -DDOUBLE -o $(@F) $^
|
||||
|
||||
ssyr2k.$(SUFFIX) : syr2k.c
|
||||
$(CC) $(CFLAGS) -c -UCOMPLEX -UDOUBLE -o $(@F) $^
|
||||
|
||||
dsyr2k.$(SUFFIX) : syr2k.c
|
||||
$(CC) $(CFLAGS) -c -UCOMPLEX -DDOUBLE -o $(@F) $^
|
||||
|
||||
csyr2k.$(SUFFIX) : syr2k.c
|
||||
$(CC) $(CFLAGS) -c -DCOMPLEX -UDOUBLE -o $(@F) $^
|
||||
|
||||
zsyr2k.$(SUFFIX) : syr2k.c
|
||||
$(CC) $(CFLAGS) -c -DCOMPLEX -DDOUBLE -o $(@F) $^
|
||||
|
||||
chemm.$(SUFFIX) : hemm.c
|
||||
$(CC) $(CFLAGS) -c -DCOMPLEX -UDOUBLE -o $(@F) $^
|
||||
|
||||
zhemm.$(SUFFIX) : hemm.c
|
||||
$(CC) $(CFLAGS) -c -DCOMPLEX -DDOUBLE -o $(@F) $^
|
||||
|
||||
cherk.$(SUFFIX) : herk.c
|
||||
$(CC) $(CFLAGS) -c -DCOMPLEX -UDOUBLE -o $(@F) $^
|
||||
|
||||
zherk.$(SUFFIX) : herk.c
|
||||
$(CC) $(CFLAGS) -c -DCOMPLEX -DDOUBLE -o $(@F) $^
|
||||
|
||||
cher2k.$(SUFFIX) : her2k.c
|
||||
$(CC) $(CFLAGS) -c -DCOMPLEX -UDOUBLE -o $(@F) $^
|
||||
|
||||
zher2k.$(SUFFIX) : her2k.c
|
||||
$(CC) $(CFLAGS) -c -DCOMPLEX -DDOUBLE -o $(@F) $^
|
||||
|
||||
|
||||
|
||||
|
||||
clean ::
|
||||
@rm -f *.goto *.mkl *.acml *.sun *.cula
|
||||
@rm -f *.goto *.mkl *.acml *.atlas
|
||||
|
||||
include $(TOPDIR)/Makefile.tail
|
||||
|
||||
|
||||
+16
-16
@@ -78,29 +78,29 @@ int gettimeofday(struct timeval *tv, void *tz){
|
||||
FILETIME ft;
|
||||
unsigned __int64 tmpres = 0;
|
||||
static int tzflag;
|
||||
|
||||
|
||||
if (NULL != tv)
|
||||
{
|
||||
GetSystemTimeAsFileTime(&ft);
|
||||
|
||||
|
||||
tmpres |= ft.dwHighDateTime;
|
||||
tmpres <<= 32;
|
||||
tmpres |= ft.dwLowDateTime;
|
||||
|
||||
|
||||
/*converting file time to unix epoch*/
|
||||
tmpres /= 10; /*convert into microseconds*/
|
||||
tmpres -= DELTA_EPOCH_IN_MICROSECS;
|
||||
tmpres -= DELTA_EPOCH_IN_MICROSECS;
|
||||
tv->tv_sec = (long)(tmpres / 1000000UL);
|
||||
tv->tv_usec = (long)(tmpres % 1000000UL);
|
||||
}
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
static __inline double getmflops(int ratio, int m, double secs){
|
||||
|
||||
|
||||
double mm = (double)m;
|
||||
double mulflops, addflops;
|
||||
|
||||
@@ -137,7 +137,7 @@ int MAIN__(int argc, char *argv[]){
|
||||
struct timeval start, stop;
|
||||
double time1;
|
||||
|
||||
argc--;argv++;
|
||||
argc--;argv++;
|
||||
|
||||
if (argc > 0) { from = atol(*argv); argc--; argv++;}
|
||||
if (argc > 0) { to = MAX(atol(*argv), from); argc--; argv++;}
|
||||
@@ -148,17 +148,17 @@ int MAIN__(int argc, char *argv[]){
|
||||
if (( a = (FLOAT *)malloc(sizeof(FLOAT) * to * to * COMPSIZE)) == NULL){
|
||||
fprintf(stderr,"Out of Memory!!\n");exit(1);
|
||||
}
|
||||
|
||||
|
||||
if (( b = (FLOAT *)malloc(sizeof(FLOAT) * to * to * COMPSIZE)) == NULL){
|
||||
fprintf(stderr,"Out of Memory!!\n");exit(1);
|
||||
}
|
||||
|
||||
|
||||
for(m = from; m <= to; m += step){
|
||||
|
||||
|
||||
fprintf(stderr, "M = %6d : ", (int)m);
|
||||
|
||||
|
||||
for (uplos = 0; uplos < 2; uplos ++) {
|
||||
|
||||
|
||||
#ifndef COMPLEX
|
||||
if (uplos & 1) {
|
||||
for (j = 0; j < m; j++) {
|
||||
@@ -219,11 +219,11 @@ int MAIN__(int argc, char *argv[]){
|
||||
fprintf(stderr, "Info = %d\n", info);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
||||
time1 = (double)(stop.tv_sec - start.tv_sec) + (double)((stop.tv_usec - start.tv_usec)) * 1.e-6;
|
||||
|
||||
maxerr = 0.;
|
||||
|
||||
|
||||
if (!(uplos & 1)) {
|
||||
for (j = 0; j < m; j++) {
|
||||
for(i = 0; i <= j; i++) {
|
||||
@@ -247,8 +247,8 @@ int MAIN__(int argc, char *argv[]){
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fprintf(stderr,
|
||||
|
||||
fprintf(stderr,
|
||||
#ifdef XDOUBLE
|
||||
" %Le %10.3f MFlops", maxerr,
|
||||
#else
|
||||
|
||||
@@ -0,0 +1,210 @@
|
||||
/***************************************************************************
|
||||
Copyright (c) 2014, The OpenBLAS Project
|
||||
All rights reserved.
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in
|
||||
the documentation and/or other materials provided with the
|
||||
distribution.
|
||||
3. Neither the name of the OpenBLAS project nor the names of
|
||||
its contributors may be used to endorse or promote products
|
||||
derived from this software without specific prior written permission.
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE OPENBLAS PROJECT OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
||||
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*****************************************************************************/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#ifdef __CYGWIN32__
|
||||
#include <sys/time.h>
|
||||
#endif
|
||||
#include "common.h"
|
||||
|
||||
|
||||
#undef GEMM
|
||||
|
||||
#ifndef COMPLEX
|
||||
|
||||
#ifdef DOUBLE
|
||||
#define GEMM BLASFUNC(dgemm)
|
||||
#else
|
||||
#define GEMM BLASFUNC(sgemm)
|
||||
#endif
|
||||
|
||||
#else
|
||||
|
||||
#ifdef DOUBLE
|
||||
#define GEMM BLASFUNC(zgemm)
|
||||
#else
|
||||
#define GEMM BLASFUNC(cgemm)
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#if defined(__WIN32__) || defined(__WIN64__)
|
||||
|
||||
#ifndef DELTA_EPOCH_IN_MICROSECS
|
||||
#define DELTA_EPOCH_IN_MICROSECS 11644473600000000ULL
|
||||
#endif
|
||||
|
||||
int gettimeofday(struct timeval *tv, void *tz){
|
||||
|
||||
FILETIME ft;
|
||||
unsigned __int64 tmpres = 0;
|
||||
static int tzflag;
|
||||
|
||||
if (NULL != tv)
|
||||
{
|
||||
GetSystemTimeAsFileTime(&ft);
|
||||
|
||||
tmpres |= ft.dwHighDateTime;
|
||||
tmpres <<= 32;
|
||||
tmpres |= ft.dwLowDateTime;
|
||||
|
||||
/*converting file time to unix epoch*/
|
||||
tmpres /= 10; /*convert into microseconds*/
|
||||
tmpres -= DELTA_EPOCH_IN_MICROSECS;
|
||||
tv->tv_sec = (long)(tmpres / 1000000UL);
|
||||
tv->tv_usec = (long)(tmpres % 1000000UL);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#if !defined(__WIN32__) && !defined(__WIN64__) && !defined(__CYGWIN32__) && 0
|
||||
|
||||
static void *huge_malloc(BLASLONG size){
|
||||
int shmid;
|
||||
void *address;
|
||||
|
||||
#ifndef SHM_HUGETLB
|
||||
#define SHM_HUGETLB 04000
|
||||
#endif
|
||||
|
||||
if ((shmid =shmget(IPC_PRIVATE,
|
||||
(size + HUGE_PAGESIZE) & ~(HUGE_PAGESIZE - 1),
|
||||
SHM_HUGETLB | IPC_CREAT |0600)) < 0) {
|
||||
printf( "Memory allocation failed(shmget).\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
address = shmat(shmid, NULL, SHM_RND);
|
||||
|
||||
if ((BLASLONG)address == -1){
|
||||
printf( "Memory allocation failed(shmat).\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
shmctl(shmid, IPC_RMID, 0);
|
||||
|
||||
return address;
|
||||
}
|
||||
|
||||
#define malloc huge_malloc
|
||||
|
||||
#endif
|
||||
|
||||
int MAIN__(int argc, char *argv[]){
|
||||
|
||||
FLOAT *a, *b, *c;
|
||||
FLOAT alpha[] = {1.0, 1.0};
|
||||
FLOAT beta [] = {1.0, 1.0};
|
||||
char trans='N';
|
||||
blasint m, i, j;
|
||||
int loops = 1;
|
||||
int l;
|
||||
char *p;
|
||||
|
||||
int from = 1;
|
||||
int to = 200;
|
||||
int step = 1;
|
||||
|
||||
struct timeval start, stop;
|
||||
double time1,timeg;
|
||||
|
||||
argc--;argv++;
|
||||
|
||||
if (argc > 0) { from = atol(*argv); argc--; argv++;}
|
||||
if (argc > 0) { to = MAX(atol(*argv), from); argc--; argv++;}
|
||||
if (argc > 0) { step = atol(*argv); argc--; argv++;}
|
||||
|
||||
fprintf(stderr, "From : %3d To : %3d Step = %3d\n", from, to, step);
|
||||
|
||||
if (( a = (FLOAT *)malloc(sizeof(FLOAT) * to * to * COMPSIZE)) == NULL){
|
||||
fprintf(stderr,"Out of Memory!!\n");exit(1);
|
||||
}
|
||||
|
||||
if (( b = (FLOAT *)malloc(sizeof(FLOAT) * to * to * COMPSIZE)) == NULL){
|
||||
fprintf(stderr,"Out of Memory!!\n");exit(1);
|
||||
}
|
||||
|
||||
if (( c = (FLOAT *)malloc(sizeof(FLOAT) * to * to * COMPSIZE)) == NULL){
|
||||
fprintf(stderr,"Out of Memory!!\n");exit(1);
|
||||
}
|
||||
|
||||
p = getenv("OPENBLAS_LOOPS");
|
||||
if ( p != NULL )
|
||||
loops = atoi(p);
|
||||
|
||||
|
||||
#ifdef linux
|
||||
srandom(getpid());
|
||||
#endif
|
||||
|
||||
fprintf(stderr, " SIZE Flops\n");
|
||||
|
||||
for(m = from; m <= to; m += step)
|
||||
{
|
||||
|
||||
timeg=0;
|
||||
|
||||
fprintf(stderr, " %6d : ", (int)m);
|
||||
|
||||
for (l=0; l<loops; l++)
|
||||
{
|
||||
|
||||
for(j = 0; j < m; j++){
|
||||
for(i = 0; i < m * COMPSIZE; i++){
|
||||
a[i + j * m * COMPSIZE] = ((FLOAT) rand() / (FLOAT) RAND_MAX) - 0.5;
|
||||
b[i + j * m * COMPSIZE] = ((FLOAT) rand() / (FLOAT) RAND_MAX) - 0.5;
|
||||
c[i + j * m * COMPSIZE] = ((FLOAT) rand() / (FLOAT) RAND_MAX) - 0.5;
|
||||
}
|
||||
}
|
||||
|
||||
gettimeofday( &start, (struct timezone *)0);
|
||||
|
||||
GEMM (&trans, &trans, &m, &m, &m, alpha, a, &m, b, &m, beta, c, &m );
|
||||
|
||||
gettimeofday( &stop, (struct timezone *)0);
|
||||
|
||||
time1 = (double)(stop.tv_sec - start.tv_sec) + (double)((stop.tv_usec - start.tv_usec)) * 1.e-6;
|
||||
|
||||
timeg += time1;
|
||||
|
||||
}
|
||||
|
||||
timeg /= loops;
|
||||
fprintf(stderr,
|
||||
" %10.2f MFlops\n",
|
||||
COMPSIZE * COMPSIZE * 2. * (double)m * (double)m * (double)m / timeg * 1.e-6);
|
||||
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void main(int argc, char *argv[]) __attribute__((weak, alias("MAIN__")));
|
||||
@@ -0,0 +1,192 @@
|
||||
/***************************************************************************
|
||||
Copyright (c) 2014, The OpenBLAS Project
|
||||
All rights reserved.
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in
|
||||
the documentation and/or other materials provided with the
|
||||
distribution.
|
||||
3. Neither the name of the OpenBLAS project nor the names of
|
||||
its contributors may be used to endorse or promote products
|
||||
derived from this software without specific prior written permission.
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE OPENBLAS PROJECT OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
||||
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*****************************************************************************/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#ifdef __CYGWIN32__
|
||||
#include <sys/time.h>
|
||||
#endif
|
||||
#include "common.h"
|
||||
|
||||
|
||||
#undef HEMM
|
||||
|
||||
#ifdef DOUBLE
|
||||
#define HEMM BLASFUNC(zhemm)
|
||||
#else
|
||||
#define HEMM BLASFUNC(chemm)
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(__WIN32__) || defined(__WIN64__)
|
||||
|
||||
#ifndef DELTA_EPOCH_IN_MICROSECS
|
||||
#define DELTA_EPOCH_IN_MICROSECS 11644473600000000ULL
|
||||
#endif
|
||||
|
||||
int gettimeofday(struct timeval *tv, void *tz){
|
||||
|
||||
FILETIME ft;
|
||||
unsigned __int64 tmpres = 0;
|
||||
static int tzflag;
|
||||
|
||||
if (NULL != tv)
|
||||
{
|
||||
GetSystemTimeAsFileTime(&ft);
|
||||
|
||||
tmpres |= ft.dwHighDateTime;
|
||||
tmpres <<= 32;
|
||||
tmpres |= ft.dwLowDateTime;
|
||||
|
||||
/*converting file time to unix epoch*/
|
||||
tmpres /= 10; /*convert into microseconds*/
|
||||
tmpres -= DELTA_EPOCH_IN_MICROSECS;
|
||||
tv->tv_sec = (long)(tmpres / 1000000UL);
|
||||
tv->tv_usec = (long)(tmpres % 1000000UL);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#if !defined(__WIN32__) && !defined(__WIN64__) && !defined(__CYGWIN32__) && 0
|
||||
|
||||
static void *huge_malloc(BLASLONG size){
|
||||
int shmid;
|
||||
void *address;
|
||||
|
||||
#ifndef SHM_HUGETLB
|
||||
#define SHM_HUGETLB 04000
|
||||
#endif
|
||||
|
||||
if ((shmid =shmget(IPC_PRIVATE,
|
||||
(size + HUGE_PAGESIZE) & ~(HUGE_PAGESIZE - 1),
|
||||
SHM_HUGETLB | IPC_CREAT |0600)) < 0) {
|
||||
printf( "Memory allocation failed(shmget).\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
address = shmat(shmid, NULL, SHM_RND);
|
||||
|
||||
if ((BLASLONG)address == -1){
|
||||
printf( "Memory allocation failed(shmat).\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
shmctl(shmid, IPC_RMID, 0);
|
||||
|
||||
return address;
|
||||
}
|
||||
|
||||
#define malloc huge_malloc
|
||||
|
||||
#endif
|
||||
|
||||
int MAIN__(int argc, char *argv[]){
|
||||
|
||||
FLOAT *a, *b, *c;
|
||||
FLOAT alpha[] = {1.0, 1.0};
|
||||
FLOAT beta [] = {1.0, 1.0};
|
||||
char *p;
|
||||
|
||||
char side='L';
|
||||
char uplo='U';
|
||||
|
||||
if ((p = getenv("OPENBLAS_SIDE"))) side=*p;
|
||||
if ((p = getenv("OPENBLAS_UPLO"))) uplo=*p;
|
||||
|
||||
blasint m, i, j;
|
||||
|
||||
int from = 1;
|
||||
int to = 200;
|
||||
int step = 1;
|
||||
|
||||
struct timeval start, stop;
|
||||
double time1;
|
||||
|
||||
argc--;argv++;
|
||||
|
||||
if (argc > 0) { from = atol(*argv); argc--; argv++;}
|
||||
if (argc > 0) { to = MAX(atol(*argv), from); argc--; argv++;}
|
||||
if (argc > 0) { step = atol(*argv); argc--; argv++;}
|
||||
|
||||
fprintf(stderr, "From : %3d To : %3d Step = %3d Side = %c Uplo = %c\n", from, to, step,side,uplo);
|
||||
|
||||
if (( a = (FLOAT *)malloc(sizeof(FLOAT) * to * to * COMPSIZE)) == NULL){
|
||||
fprintf(stderr,"Out of Memory!!\n");exit(1);
|
||||
}
|
||||
|
||||
if (( b = (FLOAT *)malloc(sizeof(FLOAT) * to * to * COMPSIZE)) == NULL){
|
||||
fprintf(stderr,"Out of Memory!!\n");exit(1);
|
||||
}
|
||||
|
||||
if (( c = (FLOAT *)malloc(sizeof(FLOAT) * to * to * COMPSIZE)) == NULL){
|
||||
fprintf(stderr,"Out of Memory!!\n");exit(1);
|
||||
}
|
||||
|
||||
|
||||
|
||||
#ifdef linux
|
||||
srandom(getpid());
|
||||
#endif
|
||||
|
||||
fprintf(stderr, " SIZE Flops\n");
|
||||
|
||||
for(m = from; m <= to; m += step)
|
||||
{
|
||||
|
||||
fprintf(stderr, " %6d : ", (int)m);
|
||||
|
||||
for(j = 0; j < m; j++){
|
||||
for(i = 0; i < m * COMPSIZE; i++){
|
||||
a[i + j * m * COMPSIZE] = ((FLOAT) rand() / (FLOAT) RAND_MAX) - 0.5;
|
||||
b[i + j * m * COMPSIZE] = ((FLOAT) rand() / (FLOAT) RAND_MAX) - 0.5;
|
||||
c[i + j * m * COMPSIZE] = ((FLOAT) rand() / (FLOAT) RAND_MAX) - 0.5;
|
||||
}
|
||||
}
|
||||
|
||||
gettimeofday( &start, (struct timezone *)0);
|
||||
|
||||
HEMM (&side, &uplo, &m, &m, alpha, a, &m, b, &m, beta, c, &m );
|
||||
|
||||
gettimeofday( &stop, (struct timezone *)0);
|
||||
|
||||
time1 = (double)(stop.tv_sec - start.tv_sec) + (double)((stop.tv_usec - start.tv_usec)) * 1.e-6;
|
||||
|
||||
gettimeofday( &start, (struct timezone *)0);
|
||||
|
||||
fprintf(stderr,
|
||||
" %10.2f MFlops\n",
|
||||
COMPSIZE * COMPSIZE * 2. * (double)m * (double)m * (double)m / time1 * 1.e-6);
|
||||
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void main(int argc, char *argv[]) __attribute__((weak, alias("MAIN__")));
|
||||
@@ -0,0 +1,191 @@
|
||||
/***************************************************************************
|
||||
Copyright (c) 2014, The OpenBLAS Project
|
||||
All rights reserved.
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in
|
||||
the documentation and/or other materials provided with the
|
||||
distribution.
|
||||
3. Neither the name of the OpenBLAS project nor the names of
|
||||
its contributors may be used to endorse or promote products
|
||||
derived from this software without specific prior written permission.
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE OPENBLAS PROJECT OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
||||
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*****************************************************************************/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#ifdef __CYGWIN32__
|
||||
#include <sys/time.h>
|
||||
#endif
|
||||
#include "common.h"
|
||||
|
||||
|
||||
#undef HER2K
|
||||
#ifdef DOUBLE
|
||||
#define HER2K BLASFUNC(zher2k)
|
||||
#else
|
||||
#define HER2K BLASFUNC(cher2k)
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(__WIN32__) || defined(__WIN64__)
|
||||
|
||||
#ifndef DELTA_EPOCH_IN_MICROSECS
|
||||
#define DELTA_EPOCH_IN_MICROSECS 11644473600000000ULL
|
||||
#endif
|
||||
|
||||
int gettimeofday(struct timeval *tv, void *tz){
|
||||
|
||||
FILETIME ft;
|
||||
unsigned __int64 tmpres = 0;
|
||||
static int tzflag;
|
||||
|
||||
if (NULL != tv)
|
||||
{
|
||||
GetSystemTimeAsFileTime(&ft);
|
||||
|
||||
tmpres |= ft.dwHighDateTime;
|
||||
tmpres <<= 32;
|
||||
tmpres |= ft.dwLowDateTime;
|
||||
|
||||
/*converting file time to unix epoch*/
|
||||
tmpres /= 10; /*convert into microseconds*/
|
||||
tmpres -= DELTA_EPOCH_IN_MICROSECS;
|
||||
tv->tv_sec = (long)(tmpres / 1000000UL);
|
||||
tv->tv_usec = (long)(tmpres % 1000000UL);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#if !defined(__WIN32__) && !defined(__WIN64__) && !defined(__CYGWIN32__) && 0
|
||||
|
||||
static void *huge_malloc(BLASLONG size){
|
||||
int shmid;
|
||||
void *address;
|
||||
|
||||
#ifndef SHM_HUGETLB
|
||||
#define SHM_HUGETLB 04000
|
||||
#endif
|
||||
|
||||
if ((shmid =shmget(IPC_PRIVATE,
|
||||
(size + HUGE_PAGESIZE) & ~(HUGE_PAGESIZE - 1),
|
||||
SHM_HUGETLB | IPC_CREAT |0600)) < 0) {
|
||||
printf( "Memory allocation failed(shmget).\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
address = shmat(shmid, NULL, SHM_RND);
|
||||
|
||||
if ((BLASLONG)address == -1){
|
||||
printf( "Memory allocation failed(shmat).\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
shmctl(shmid, IPC_RMID, 0);
|
||||
|
||||
return address;
|
||||
}
|
||||
|
||||
#define malloc huge_malloc
|
||||
|
||||
#endif
|
||||
|
||||
int MAIN__(int argc, char *argv[]){
|
||||
|
||||
FLOAT *a, *b, *c;
|
||||
FLOAT alpha[] = {1.0, 1.0};
|
||||
FLOAT beta [] = {1.0, 1.0};
|
||||
char *p;
|
||||
|
||||
char uplo='U';
|
||||
char trans='N';
|
||||
|
||||
if ((p = getenv("OPENBLAS_UPLO"))) uplo=*p;
|
||||
if ((p = getenv("OPENBLAS_TRANS"))) trans=*p;
|
||||
|
||||
blasint m, i, j;
|
||||
|
||||
int from = 1;
|
||||
int to = 200;
|
||||
int step = 1;
|
||||
|
||||
struct timeval start, stop;
|
||||
double time1;
|
||||
|
||||
argc--;argv++;
|
||||
|
||||
if (argc > 0) { from = atol(*argv); argc--; argv++;}
|
||||
if (argc > 0) { to = MAX(atol(*argv), from); argc--; argv++;}
|
||||
if (argc > 0) { step = atol(*argv); argc--; argv++;}
|
||||
|
||||
fprintf(stderr, "From : %3d To : %3d Step = %3d Uplo = %c Trans = %c\n", from, to, step,uplo,trans);
|
||||
|
||||
if (( a = (FLOAT *)malloc(sizeof(FLOAT) * to * to * COMPSIZE)) == NULL){
|
||||
fprintf(stderr,"Out of Memory!!\n");exit(1);
|
||||
}
|
||||
|
||||
if (( b = (FLOAT *)malloc(sizeof(FLOAT) * to * to * COMPSIZE)) == NULL){
|
||||
fprintf(stderr,"Out of Memory!!\n");exit(1);
|
||||
}
|
||||
|
||||
if (( c = (FLOAT *)malloc(sizeof(FLOAT) * to * to * COMPSIZE)) == NULL){
|
||||
fprintf(stderr,"Out of Memory!!\n");exit(1);
|
||||
}
|
||||
|
||||
|
||||
|
||||
#ifdef linux
|
||||
srandom(getpid());
|
||||
#endif
|
||||
|
||||
fprintf(stderr, " SIZE Flops\n");
|
||||
|
||||
for(m = from; m <= to; m += step)
|
||||
{
|
||||
|
||||
fprintf(stderr, " %6d : ", (int)m);
|
||||
|
||||
for(j = 0; j < m; j++){
|
||||
for(i = 0; i < m * COMPSIZE; i++){
|
||||
a[i + j * m * COMPSIZE] = ((FLOAT) rand() / (FLOAT) RAND_MAX) - 0.5;
|
||||
b[i + j * m * COMPSIZE] = ((FLOAT) rand() / (FLOAT) RAND_MAX) - 0.5;
|
||||
c[i + j * m * COMPSIZE] = ((FLOAT) rand() / (FLOAT) RAND_MAX) - 0.5;
|
||||
}
|
||||
}
|
||||
|
||||
gettimeofday( &start, (struct timezone *)0);
|
||||
|
||||
HER2K (&uplo, &trans, &m, &m, alpha, a, &m, b, &m, beta, c, &m );
|
||||
|
||||
gettimeofday( &stop, (struct timezone *)0);
|
||||
|
||||
time1 = (double)(stop.tv_sec - start.tv_sec) + (double)((stop.tv_usec - start.tv_usec)) * 1.e-6;
|
||||
|
||||
gettimeofday( &start, (struct timezone *)0);
|
||||
|
||||
fprintf(stderr,
|
||||
" %10.2f MFlops\n",
|
||||
COMPSIZE * COMPSIZE * 2. * (double)m * (double)m * (double)m / time1 * 1.e-6);
|
||||
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void main(int argc, char *argv[]) __attribute__((weak, alias("MAIN__")));
|
||||
@@ -0,0 +1,189 @@
|
||||
/***************************************************************************
|
||||
Copyright (c) 2014, The OpenBLAS Project
|
||||
All rights reserved.
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in
|
||||
the documentation and/or other materials provided with the
|
||||
distribution.
|
||||
3. Neither the name of the OpenBLAS project nor the names of
|
||||
its contributors may be used to endorse or promote products
|
||||
derived from this software without specific prior written permission.
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE OPENBLAS PROJECT OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
||||
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*****************************************************************************/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#ifdef __CYGWIN32__
|
||||
#include <sys/time.h>
|
||||
#endif
|
||||
#include "common.h"
|
||||
|
||||
|
||||
#undef HERK
|
||||
|
||||
|
||||
#ifdef DOUBLE
|
||||
#define HERK BLASFUNC(zherk)
|
||||
#else
|
||||
#define HERK BLASFUNC(cherk)
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(__WIN32__) || defined(__WIN64__)
|
||||
|
||||
#ifndef DELTA_EPOCH_IN_MICROSECS
|
||||
#define DELTA_EPOCH_IN_MICROSECS 11644473600000000ULL
|
||||
#endif
|
||||
|
||||
int gettimeofday(struct timeval *tv, void *tz){
|
||||
|
||||
FILETIME ft;
|
||||
unsigned __int64 tmpres = 0;
|
||||
static int tzflag;
|
||||
|
||||
if (NULL != tv)
|
||||
{
|
||||
GetSystemTimeAsFileTime(&ft);
|
||||
|
||||
tmpres |= ft.dwHighDateTime;
|
||||
tmpres <<= 32;
|
||||
tmpres |= ft.dwLowDateTime;
|
||||
|
||||
/*converting file time to unix epoch*/
|
||||
tmpres /= 10; /*convert into microseconds*/
|
||||
tmpres -= DELTA_EPOCH_IN_MICROSECS;
|
||||
tv->tv_sec = (long)(tmpres / 1000000UL);
|
||||
tv->tv_usec = (long)(tmpres % 1000000UL);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#if !defined(__WIN32__) && !defined(__WIN64__) && !defined(__CYGWIN32__) && 0
|
||||
|
||||
static void *huge_malloc(BLASLONG size){
|
||||
int shmid;
|
||||
void *address;
|
||||
|
||||
#ifndef SHM_HUGETLB
|
||||
#define SHM_HUGETLB 04000
|
||||
#endif
|
||||
|
||||
if ((shmid =shmget(IPC_PRIVATE,
|
||||
(size + HUGE_PAGESIZE) & ~(HUGE_PAGESIZE - 1),
|
||||
SHM_HUGETLB | IPC_CREAT |0600)) < 0) {
|
||||
printf( "Memory allocation failed(shmget).\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
address = shmat(shmid, NULL, SHM_RND);
|
||||
|
||||
if ((BLASLONG)address == -1){
|
||||
printf( "Memory allocation failed(shmat).\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
shmctl(shmid, IPC_RMID, 0);
|
||||
|
||||
return address;
|
||||
}
|
||||
|
||||
#define malloc huge_malloc
|
||||
|
||||
#endif
|
||||
|
||||
int MAIN__(int argc, char *argv[]){
|
||||
|
||||
FLOAT *a, *c;
|
||||
FLOAT alpha[] = {1.0, 1.0};
|
||||
FLOAT beta [] = {1.0, 1.0};
|
||||
char *p;
|
||||
|
||||
char uplo='U';
|
||||
char trans='N';
|
||||
|
||||
if ((p = getenv("OPENBLAS_UPLO"))) uplo=*p;
|
||||
if ((p = getenv("OPENBLAS_TRANS"))) trans=*p;
|
||||
|
||||
blasint m, i, j;
|
||||
|
||||
int from = 1;
|
||||
int to = 200;
|
||||
int step = 1;
|
||||
|
||||
struct timeval start, stop;
|
||||
double time1;
|
||||
|
||||
argc--;argv++;
|
||||
|
||||
if (argc > 0) { from = atol(*argv); argc--; argv++;}
|
||||
if (argc > 0) { to = MAX(atol(*argv), from); argc--; argv++;}
|
||||
if (argc > 0) { step = atol(*argv); argc--; argv++;}
|
||||
|
||||
fprintf(stderr, "From : %3d To : %3d Step = %3d Uplo = %c Trans = %c\n", from, to, step,uplo,trans);
|
||||
|
||||
|
||||
if (( a = (FLOAT *)malloc(sizeof(FLOAT) * to * to * COMPSIZE)) == NULL){
|
||||
fprintf(stderr,"Out of Memory!!\n");exit(1);
|
||||
}
|
||||
|
||||
if (( c = (FLOAT *)malloc(sizeof(FLOAT) * to * to * COMPSIZE)) == NULL){
|
||||
fprintf(stderr,"Out of Memory!!\n");exit(1);
|
||||
}
|
||||
|
||||
|
||||
|
||||
#ifdef linux
|
||||
srandom(getpid());
|
||||
#endif
|
||||
|
||||
fprintf(stderr, " SIZE Flops\n");
|
||||
|
||||
for(m = from; m <= to; m += step)
|
||||
{
|
||||
|
||||
fprintf(stderr, " %6d : ", (int)m);
|
||||
|
||||
for(j = 0; j < m; j++){
|
||||
for(i = 0; i < m * COMPSIZE; i++){
|
||||
a[i + j * m * COMPSIZE] = ((FLOAT) rand() / (FLOAT) RAND_MAX) - 0.5;
|
||||
c[i + j * m * COMPSIZE] = ((FLOAT) rand() / (FLOAT) RAND_MAX) - 0.5;
|
||||
}
|
||||
}
|
||||
|
||||
gettimeofday( &start, (struct timezone *)0);
|
||||
|
||||
HERK (&uplo, &trans, &m, &m, alpha, a, &m, beta, c, &m );
|
||||
|
||||
gettimeofday( &stop, (struct timezone *)0);
|
||||
|
||||
time1 = (double)(stop.tv_sec - start.tv_sec) + (double)((stop.tv_usec - start.tv_usec)) * 1.e-6;
|
||||
|
||||
gettimeofday( &start, (struct timezone *)0);
|
||||
|
||||
fprintf(stderr,
|
||||
" %10.2f MFlops\n",
|
||||
COMPSIZE * COMPSIZE * 1. * (double)m * (double)m * (double)m / time1 * 1.e-6);
|
||||
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void main(int argc, char *argv[]) __attribute__((weak, alias("MAIN__")));
|
||||
+16
-16
@@ -83,22 +83,22 @@ int gettimeofday(struct timeval *tv, void *tz){
|
||||
FILETIME ft;
|
||||
unsigned __int64 tmpres = 0;
|
||||
static int tzflag;
|
||||
|
||||
|
||||
if (NULL != tv)
|
||||
{
|
||||
GetSystemTimeAsFileTime(&ft);
|
||||
|
||||
|
||||
tmpres |= ft.dwHighDateTime;
|
||||
tmpres <<= 32;
|
||||
tmpres |= ft.dwLowDateTime;
|
||||
|
||||
|
||||
/*converting file time to unix epoch*/
|
||||
tmpres /= 10; /*convert into microseconds*/
|
||||
tmpres -= DELTA_EPOCH_IN_MICROSECS;
|
||||
tmpres -= DELTA_EPOCH_IN_MICROSECS;
|
||||
tv->tv_sec = (long)(tmpres / 1000000UL);
|
||||
tv->tv_usec = (long)(tmpres % 1000000UL);
|
||||
}
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -154,7 +154,7 @@ int MAIN__(int argc, char *argv[]){
|
||||
struct timeval start, stop;
|
||||
double time1, time2;
|
||||
|
||||
argc--;argv++;
|
||||
argc--;argv++;
|
||||
|
||||
if (argc > 0) { from = atol(*argv); argc--; argv++;}
|
||||
if (argc > 0) { to = MAX(atol(*argv), from); argc--; argv++;}
|
||||
@@ -165,15 +165,15 @@ int MAIN__(int argc, char *argv[]){
|
||||
if (( a = (FLOAT *)malloc(sizeof(FLOAT) * to * to * COMPSIZE)) == NULL){
|
||||
fprintf(stderr,"Out of Memory!!\n");exit(1);
|
||||
}
|
||||
|
||||
|
||||
if (( b = (FLOAT *)malloc(sizeof(FLOAT) * to * COMPSIZE)) == NULL){
|
||||
fprintf(stderr,"Out of Memory!!\n");exit(1);
|
||||
}
|
||||
|
||||
|
||||
if (( ipiv = (blasint *)malloc(sizeof(blasint) * to * COMPSIZE)) == NULL){
|
||||
fprintf(stderr,"Out of Memory!!\n");exit(1);
|
||||
}
|
||||
|
||||
|
||||
#ifdef linux
|
||||
srandom(getpid());
|
||||
#endif
|
||||
@@ -181,7 +181,7 @@ int MAIN__(int argc, char *argv[]){
|
||||
fprintf(stderr, " SIZE Residual Decompose Solve Total\n");
|
||||
|
||||
for(m = from; m <= to; m += step){
|
||||
|
||||
|
||||
fprintf(stderr, " %6d : ", (int)m);
|
||||
|
||||
for(j = 0; j < m; j++){
|
||||
@@ -189,9 +189,9 @@ int MAIN__(int argc, char *argv[]){
|
||||
a[i + j * m * COMPSIZE] = ((FLOAT) rand() / (FLOAT) RAND_MAX) - 0.5;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
for (i = 0; i < m * COMPSIZE; ++i) b[i] = 0.;
|
||||
|
||||
|
||||
for (j = 0; j < m; ++j) {
|
||||
for (i = 0; i < m * COMPSIZE; ++i) {
|
||||
b[i] += a[i + j * m * COMPSIZE];
|
||||
@@ -208,7 +208,7 @@ int MAIN__(int argc, char *argv[]){
|
||||
fprintf(stderr, "Matrix is not singular .. %d\n", info);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
||||
time1 = (double)(stop.tv_sec - start.tv_sec) + (double)((stop.tv_usec - start.tv_usec)) * 1.e-6;
|
||||
|
||||
gettimeofday( &start, (struct timezone *)0);
|
||||
@@ -221,7 +221,7 @@ int MAIN__(int argc, char *argv[]){
|
||||
fprintf(stderr, "Matrix is not singular .. %d\n", info);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
|
||||
time2 = (double)(stop.tv_sec - start.tv_sec) + (double)((stop.tv_usec - start.tv_usec)) * 1.e-6;
|
||||
|
||||
maxerr = 0.;
|
||||
@@ -239,7 +239,7 @@ int MAIN__(int argc, char *argv[]){
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
#ifdef XDOUBLE
|
||||
fprintf(stderr," %Le ", maxerr);
|
||||
#else
|
||||
@@ -247,7 +247,7 @@ int MAIN__(int argc, char *argv[]){
|
||||
#endif
|
||||
|
||||
fprintf(stderr,
|
||||
" %10.2f MFlops %10.2f MFlops %10.2f MFlops\n",
|
||||
" %10.2f MFlops %10.2f MFlops %10.2f MFlops\n",
|
||||
COMPSIZE * COMPSIZE * 2. / 3. * (double)m * (double)m * (double)m / time1 * 1.e-6,
|
||||
COMPSIZE * COMPSIZE * 2. * (double)m * (double)m / time2 * 1.e-6,
|
||||
COMPSIZE * COMPSIZE * (2. / 3. * (double)m * (double)m * (double)m + 2. * (double)m * (double)m) / (time1 + time2) * 1.e-6);
|
||||
|
||||
@@ -0,0 +1,203 @@
|
||||
/***************************************************************************
|
||||
Copyright (c) 2014, The OpenBLAS Project
|
||||
All rights reserved.
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in
|
||||
the documentation and/or other materials provided with the
|
||||
distribution.
|
||||
3. Neither the name of the OpenBLAS project nor the names of
|
||||
its contributors may be used to endorse or promote products
|
||||
derived from this software without specific prior written permission.
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE OPENBLAS PROJECT OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
||||
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*****************************************************************************/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#ifdef __CYGWIN32__
|
||||
#include <sys/time.h>
|
||||
#endif
|
||||
#include "common.h"
|
||||
|
||||
|
||||
#undef SYMM
|
||||
|
||||
#ifndef COMPLEX
|
||||
|
||||
#ifdef DOUBLE
|
||||
#define SYMM BLASFUNC(dsymm)
|
||||
#else
|
||||
#define SYMM BLASFUNC(ssymm)
|
||||
#endif
|
||||
|
||||
#else
|
||||
|
||||
#ifdef DOUBLE
|
||||
#define SYMM BLASFUNC(zsymm)
|
||||
#else
|
||||
#define SYMM BLASFUNC(csymm)
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#if defined(__WIN32__) || defined(__WIN64__)
|
||||
|
||||
#ifndef DELTA_EPOCH_IN_MICROSECS
|
||||
#define DELTA_EPOCH_IN_MICROSECS 11644473600000000ULL
|
||||
#endif
|
||||
|
||||
int gettimeofday(struct timeval *tv, void *tz){
|
||||
|
||||
FILETIME ft;
|
||||
unsigned __int64 tmpres = 0;
|
||||
static int tzflag;
|
||||
|
||||
if (NULL != tv)
|
||||
{
|
||||
GetSystemTimeAsFileTime(&ft);
|
||||
|
||||
tmpres |= ft.dwHighDateTime;
|
||||
tmpres <<= 32;
|
||||
tmpres |= ft.dwLowDateTime;
|
||||
|
||||
/*converting file time to unix epoch*/
|
||||
tmpres /= 10; /*convert into microseconds*/
|
||||
tmpres -= DELTA_EPOCH_IN_MICROSECS;
|
||||
tv->tv_sec = (long)(tmpres / 1000000UL);
|
||||
tv->tv_usec = (long)(tmpres % 1000000UL);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#if !defined(__WIN32__) && !defined(__WIN64__) && !defined(__CYGWIN32__) && 0
|
||||
|
||||
static void *huge_malloc(BLASLONG size){
|
||||
int shmid;
|
||||
void *address;
|
||||
|
||||
#ifndef SHM_HUGETLB
|
||||
#define SHM_HUGETLB 04000
|
||||
#endif
|
||||
|
||||
if ((shmid =shmget(IPC_PRIVATE,
|
||||
(size + HUGE_PAGESIZE) & ~(HUGE_PAGESIZE - 1),
|
||||
SHM_HUGETLB | IPC_CREAT |0600)) < 0) {
|
||||
printf( "Memory allocation failed(shmget).\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
address = shmat(shmid, NULL, SHM_RND);
|
||||
|
||||
if ((BLASLONG)address == -1){
|
||||
printf( "Memory allocation failed(shmat).\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
shmctl(shmid, IPC_RMID, 0);
|
||||
|
||||
return address;
|
||||
}
|
||||
|
||||
#define malloc huge_malloc
|
||||
|
||||
#endif
|
||||
|
||||
int MAIN__(int argc, char *argv[]){
|
||||
|
||||
FLOAT *a, *b, *c;
|
||||
FLOAT alpha[] = {1.0, 1.0};
|
||||
FLOAT beta [] = {1.0, 1.0};
|
||||
char *p;
|
||||
|
||||
char side='L';
|
||||
char uplo='U';
|
||||
|
||||
if ((p = getenv("OPENBLAS_SIDE"))) side=*p;
|
||||
if ((p = getenv("OPENBLAS_UPLO"))) uplo=*p;
|
||||
|
||||
blasint m, i, j;
|
||||
|
||||
int from = 1;
|
||||
int to = 200;
|
||||
int step = 1;
|
||||
|
||||
struct timeval start, stop;
|
||||
double time1;
|
||||
|
||||
argc--;argv++;
|
||||
|
||||
if (argc > 0) { from = atol(*argv); argc--; argv++;}
|
||||
if (argc > 0) { to = MAX(atol(*argv), from); argc--; argv++;}
|
||||
if (argc > 0) { step = atol(*argv); argc--; argv++;}
|
||||
|
||||
fprintf(stderr, "From : %3d To : %3d Step = %3d Side = %c Uplo = %c\n", from, to, step,side,uplo);
|
||||
|
||||
if (( a = (FLOAT *)malloc(sizeof(FLOAT) * to * to * COMPSIZE)) == NULL){
|
||||
fprintf(stderr,"Out of Memory!!\n");exit(1);
|
||||
}
|
||||
|
||||
if (( b = (FLOAT *)malloc(sizeof(FLOAT) * to * to * COMPSIZE)) == NULL){
|
||||
fprintf(stderr,"Out of Memory!!\n");exit(1);
|
||||
}
|
||||
|
||||
if (( c = (FLOAT *)malloc(sizeof(FLOAT) * to * to * COMPSIZE)) == NULL){
|
||||
fprintf(stderr,"Out of Memory!!\n");exit(1);
|
||||
}
|
||||
|
||||
|
||||
|
||||
#ifdef linux
|
||||
srandom(getpid());
|
||||
#endif
|
||||
|
||||
fprintf(stderr, " SIZE Flops\n");
|
||||
|
||||
for(m = from; m <= to; m += step)
|
||||
{
|
||||
|
||||
fprintf(stderr, " %6d : ", (int)m);
|
||||
|
||||
for(j = 0; j < m; j++){
|
||||
for(i = 0; i < m * COMPSIZE; i++){
|
||||
a[i + j * m * COMPSIZE] = ((FLOAT) rand() / (FLOAT) RAND_MAX) - 0.5;
|
||||
b[i + j * m * COMPSIZE] = ((FLOAT) rand() / (FLOAT) RAND_MAX) - 0.5;
|
||||
c[i + j * m * COMPSIZE] = ((FLOAT) rand() / (FLOAT) RAND_MAX) - 0.5;
|
||||
}
|
||||
}
|
||||
|
||||
gettimeofday( &start, (struct timezone *)0);
|
||||
|
||||
SYMM (&side, &uplo, &m, &m, alpha, a, &m, b, &m, beta, c, &m );
|
||||
|
||||
gettimeofday( &stop, (struct timezone *)0);
|
||||
|
||||
time1 = (double)(stop.tv_sec - start.tv_sec) + (double)((stop.tv_usec - start.tv_usec)) * 1.e-6;
|
||||
|
||||
gettimeofday( &start, (struct timezone *)0);
|
||||
|
||||
fprintf(stderr,
|
||||
" %10.2f MFlops\n",
|
||||
COMPSIZE * COMPSIZE * 2. * (double)m * (double)m * (double)m / time1 * 1.e-6);
|
||||
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void main(int argc, char *argv[]) __attribute__((weak, alias("MAIN__")));
|
||||
@@ -0,0 +1,203 @@
|
||||
/***************************************************************************
|
||||
Copyright (c) 2014, The OpenBLAS Project
|
||||
All rights reserved.
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in
|
||||
the documentation and/or other materials provided with the
|
||||
distribution.
|
||||
3. Neither the name of the OpenBLAS project nor the names of
|
||||
its contributors may be used to endorse or promote products
|
||||
derived from this software without specific prior written permission.
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE OPENBLAS PROJECT OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
||||
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*****************************************************************************/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#ifdef __CYGWIN32__
|
||||
#include <sys/time.h>
|
||||
#endif
|
||||
#include "common.h"
|
||||
|
||||
|
||||
#undef SYR2K
|
||||
|
||||
#ifndef COMPLEX
|
||||
|
||||
#ifdef DOUBLE
|
||||
#define SYR2K BLASFUNC(dsyr2k)
|
||||
#else
|
||||
#define SYR2K BLASFUNC(ssyr2k)
|
||||
#endif
|
||||
|
||||
#else
|
||||
|
||||
#ifdef DOUBLE
|
||||
#define SYR2K BLASFUNC(zsyr2k)
|
||||
#else
|
||||
#define SYR2K BLASFUNC(csyr2k)
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#if defined(__WIN32__) || defined(__WIN64__)
|
||||
|
||||
#ifndef DELTA_EPOCH_IN_MICROSECS
|
||||
#define DELTA_EPOCH_IN_MICROSECS 11644473600000000ULL
|
||||
#endif
|
||||
|
||||
int gettimeofday(struct timeval *tv, void *tz){
|
||||
|
||||
FILETIME ft;
|
||||
unsigned __int64 tmpres = 0;
|
||||
static int tzflag;
|
||||
|
||||
if (NULL != tv)
|
||||
{
|
||||
GetSystemTimeAsFileTime(&ft);
|
||||
|
||||
tmpres |= ft.dwHighDateTime;
|
||||
tmpres <<= 32;
|
||||
tmpres |= ft.dwLowDateTime;
|
||||
|
||||
/*converting file time to unix epoch*/
|
||||
tmpres /= 10; /*convert into microseconds*/
|
||||
tmpres -= DELTA_EPOCH_IN_MICROSECS;
|
||||
tv->tv_sec = (long)(tmpres / 1000000UL);
|
||||
tv->tv_usec = (long)(tmpres % 1000000UL);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#if !defined(__WIN32__) && !defined(__WIN64__) && !defined(__CYGWIN32__) && 0
|
||||
|
||||
static void *huge_malloc(BLASLONG size){
|
||||
int shmid;
|
||||
void *address;
|
||||
|
||||
#ifndef SHM_HUGETLB
|
||||
#define SHM_HUGETLB 04000
|
||||
#endif
|
||||
|
||||
if ((shmid =shmget(IPC_PRIVATE,
|
||||
(size + HUGE_PAGESIZE) & ~(HUGE_PAGESIZE - 1),
|
||||
SHM_HUGETLB | IPC_CREAT |0600)) < 0) {
|
||||
printf( "Memory allocation failed(shmget).\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
address = shmat(shmid, NULL, SHM_RND);
|
||||
|
||||
if ((BLASLONG)address == -1){
|
||||
printf( "Memory allocation failed(shmat).\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
shmctl(shmid, IPC_RMID, 0);
|
||||
|
||||
return address;
|
||||
}
|
||||
|
||||
#define malloc huge_malloc
|
||||
|
||||
#endif
|
||||
|
||||
int MAIN__(int argc, char *argv[]){
|
||||
|
||||
FLOAT *a, *b, *c;
|
||||
FLOAT alpha[] = {1.0, 1.0};
|
||||
FLOAT beta [] = {1.0, 1.0};
|
||||
char *p;
|
||||
|
||||
char uplo='U';
|
||||
char trans='N';
|
||||
|
||||
if ((p = getenv("OPENBLAS_UPLO"))) uplo=*p;
|
||||
if ((p = getenv("OPENBLAS_TRANS"))) trans=*p;
|
||||
|
||||
blasint m, i, j;
|
||||
|
||||
int from = 1;
|
||||
int to = 200;
|
||||
int step = 1;
|
||||
|
||||
struct timeval start, stop;
|
||||
double time1;
|
||||
|
||||
argc--;argv++;
|
||||
|
||||
if (argc > 0) { from = atol(*argv); argc--; argv++;}
|
||||
if (argc > 0) { to = MAX(atol(*argv), from); argc--; argv++;}
|
||||
if (argc > 0) { step = atol(*argv); argc--; argv++;}
|
||||
|
||||
fprintf(stderr, "From : %3d To : %3d Step = %3d Uplo = %c Trans = %c\n", from, to, step,uplo,trans);
|
||||
|
||||
if (( a = (FLOAT *)malloc(sizeof(FLOAT) * to * to * COMPSIZE)) == NULL){
|
||||
fprintf(stderr,"Out of Memory!!\n");exit(1);
|
||||
}
|
||||
|
||||
if (( b = (FLOAT *)malloc(sizeof(FLOAT) * to * to * COMPSIZE)) == NULL){
|
||||
fprintf(stderr,"Out of Memory!!\n");exit(1);
|
||||
}
|
||||
|
||||
if (( c = (FLOAT *)malloc(sizeof(FLOAT) * to * to * COMPSIZE)) == NULL){
|
||||
fprintf(stderr,"Out of Memory!!\n");exit(1);
|
||||
}
|
||||
|
||||
|
||||
|
||||
#ifdef linux
|
||||
srandom(getpid());
|
||||
#endif
|
||||
|
||||
fprintf(stderr, " SIZE Flops\n");
|
||||
|
||||
for(m = from; m <= to; m += step)
|
||||
{
|
||||
|
||||
fprintf(stderr, " %6d : ", (int)m);
|
||||
|
||||
for(j = 0; j < m; j++){
|
||||
for(i = 0; i < m * COMPSIZE; i++){
|
||||
a[i + j * m * COMPSIZE] = ((FLOAT) rand() / (FLOAT) RAND_MAX) - 0.5;
|
||||
b[i + j * m * COMPSIZE] = ((FLOAT) rand() / (FLOAT) RAND_MAX) - 0.5;
|
||||
c[i + j * m * COMPSIZE] = ((FLOAT) rand() / (FLOAT) RAND_MAX) - 0.5;
|
||||
}
|
||||
}
|
||||
|
||||
gettimeofday( &start, (struct timezone *)0);
|
||||
|
||||
SYR2K (&uplo, &trans, &m, &m, alpha, a, &m, b, &m, beta, c, &m );
|
||||
|
||||
gettimeofday( &stop, (struct timezone *)0);
|
||||
|
||||
time1 = (double)(stop.tv_sec - start.tv_sec) + (double)((stop.tv_usec - start.tv_usec)) * 1.e-6;
|
||||
|
||||
gettimeofday( &start, (struct timezone *)0);
|
||||
|
||||
fprintf(stderr,
|
||||
" %10.2f MFlops\n",
|
||||
COMPSIZE * COMPSIZE * 2. * (double)m * (double)m * (double)m / time1 * 1.e-6);
|
||||
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void main(int argc, char *argv[]) __attribute__((weak, alias("MAIN__")));
|
||||
@@ -0,0 +1,199 @@
|
||||
/***************************************************************************
|
||||
Copyright (c) 2014, The OpenBLAS Project
|
||||
All rights reserved.
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in
|
||||
the documentation and/or other materials provided with the
|
||||
distribution.
|
||||
3. Neither the name of the OpenBLAS project nor the names of
|
||||
its contributors may be used to endorse or promote products
|
||||
derived from this software without specific prior written permission.
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE OPENBLAS PROJECT OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
||||
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*****************************************************************************/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#ifdef __CYGWIN32__
|
||||
#include <sys/time.h>
|
||||
#endif
|
||||
#include "common.h"
|
||||
|
||||
|
||||
#undef SYRK
|
||||
|
||||
#ifndef COMPLEX
|
||||
|
||||
#ifdef DOUBLE
|
||||
#define SYRK BLASFUNC(dsyrk)
|
||||
#else
|
||||
#define SYRK BLASFUNC(ssyrk)
|
||||
#endif
|
||||
|
||||
#else
|
||||
|
||||
#ifdef DOUBLE
|
||||
#define SYRK BLASFUNC(zsyrk)
|
||||
#else
|
||||
#define SYRK BLASFUNC(csyrk)
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#if defined(__WIN32__) || defined(__WIN64__)
|
||||
|
||||
#ifndef DELTA_EPOCH_IN_MICROSECS
|
||||
#define DELTA_EPOCH_IN_MICROSECS 11644473600000000ULL
|
||||
#endif
|
||||
|
||||
int gettimeofday(struct timeval *tv, void *tz){
|
||||
|
||||
FILETIME ft;
|
||||
unsigned __int64 tmpres = 0;
|
||||
static int tzflag;
|
||||
|
||||
if (NULL != tv)
|
||||
{
|
||||
GetSystemTimeAsFileTime(&ft);
|
||||
|
||||
tmpres |= ft.dwHighDateTime;
|
||||
tmpres <<= 32;
|
||||
tmpres |= ft.dwLowDateTime;
|
||||
|
||||
/*converting file time to unix epoch*/
|
||||
tmpres /= 10; /*convert into microseconds*/
|
||||
tmpres -= DELTA_EPOCH_IN_MICROSECS;
|
||||
tv->tv_sec = (long)(tmpres / 1000000UL);
|
||||
tv->tv_usec = (long)(tmpres % 1000000UL);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#if !defined(__WIN32__) && !defined(__WIN64__) && !defined(__CYGWIN32__) && 0
|
||||
|
||||
static void *huge_malloc(BLASLONG size){
|
||||
int shmid;
|
||||
void *address;
|
||||
|
||||
#ifndef SHM_HUGETLB
|
||||
#define SHM_HUGETLB 04000
|
||||
#endif
|
||||
|
||||
if ((shmid =shmget(IPC_PRIVATE,
|
||||
(size + HUGE_PAGESIZE) & ~(HUGE_PAGESIZE - 1),
|
||||
SHM_HUGETLB | IPC_CREAT |0600)) < 0) {
|
||||
printf( "Memory allocation failed(shmget).\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
address = shmat(shmid, NULL, SHM_RND);
|
||||
|
||||
if ((BLASLONG)address == -1){
|
||||
printf( "Memory allocation failed(shmat).\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
shmctl(shmid, IPC_RMID, 0);
|
||||
|
||||
return address;
|
||||
}
|
||||
|
||||
#define malloc huge_malloc
|
||||
|
||||
#endif
|
||||
|
||||
int MAIN__(int argc, char *argv[]){
|
||||
|
||||
FLOAT *a, *c;
|
||||
FLOAT alpha[] = {1.0, 1.0};
|
||||
FLOAT beta [] = {1.0, 1.0};
|
||||
char *p;
|
||||
|
||||
char uplo='U';
|
||||
char trans='N';
|
||||
|
||||
if ((p = getenv("OPENBLAS_UPLO"))) uplo=*p;
|
||||
if ((p = getenv("OPENBLAS_TRANS"))) trans=*p;
|
||||
|
||||
blasint m, i, j;
|
||||
|
||||
int from = 1;
|
||||
int to = 200;
|
||||
int step = 1;
|
||||
|
||||
struct timeval start, stop;
|
||||
double time1;
|
||||
|
||||
argc--;argv++;
|
||||
|
||||
if (argc > 0) { from = atol(*argv); argc--; argv++;}
|
||||
if (argc > 0) { to = MAX(atol(*argv), from); argc--; argv++;}
|
||||
if (argc > 0) { step = atol(*argv); argc--; argv++;}
|
||||
|
||||
fprintf(stderr, "From : %3d To : %3d Step = %3d Uplo = %c Trans = %c\n", from, to, step,uplo,trans);
|
||||
|
||||
|
||||
if (( a = (FLOAT *)malloc(sizeof(FLOAT) * to * to * COMPSIZE)) == NULL){
|
||||
fprintf(stderr,"Out of Memory!!\n");exit(1);
|
||||
}
|
||||
|
||||
if (( c = (FLOAT *)malloc(sizeof(FLOAT) * to * to * COMPSIZE)) == NULL){
|
||||
fprintf(stderr,"Out of Memory!!\n");exit(1);
|
||||
}
|
||||
|
||||
|
||||
|
||||
#ifdef linux
|
||||
srandom(getpid());
|
||||
#endif
|
||||
|
||||
fprintf(stderr, " SIZE Flops\n");
|
||||
|
||||
for(m = from; m <= to; m += step)
|
||||
{
|
||||
|
||||
fprintf(stderr, " %6d : ", (int)m);
|
||||
|
||||
for(j = 0; j < m; j++){
|
||||
for(i = 0; i < m * COMPSIZE; i++){
|
||||
a[i + j * m * COMPSIZE] = ((FLOAT) rand() / (FLOAT) RAND_MAX) - 0.5;
|
||||
c[i + j * m * COMPSIZE] = ((FLOAT) rand() / (FLOAT) RAND_MAX) - 0.5;
|
||||
}
|
||||
}
|
||||
|
||||
gettimeofday( &start, (struct timezone *)0);
|
||||
|
||||
SYRK (&uplo, &trans, &m, &m, alpha, a, &m, beta, c, &m );
|
||||
|
||||
gettimeofday( &stop, (struct timezone *)0);
|
||||
|
||||
time1 = (double)(stop.tv_sec - start.tv_sec) + (double)((stop.tv_usec - start.tv_usec)) * 1.e-6;
|
||||
|
||||
gettimeofday( &start, (struct timezone *)0);
|
||||
|
||||
fprintf(stderr,
|
||||
" %10.2f MFlops\n",
|
||||
COMPSIZE * COMPSIZE * 1. * (double)m * (double)m * (double)m / time1 * 1.e-6);
|
||||
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void main(int argc, char *argv[]) __attribute__((weak, alias("MAIN__")));
|
||||
@@ -0,0 +1,202 @@
|
||||
/***************************************************************************
|
||||
Copyright (c) 2014, The OpenBLAS Project
|
||||
All rights reserved.
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in
|
||||
the documentation and/or other materials provided with the
|
||||
distribution.
|
||||
3. Neither the name of the OpenBLAS project nor the names of
|
||||
its contributors may be used to endorse or promote products
|
||||
derived from this software without specific prior written permission.
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE OPENBLAS PROJECT OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
||||
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*****************************************************************************/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#ifdef __CYGWIN32__
|
||||
#include <sys/time.h>
|
||||
#endif
|
||||
#include "common.h"
|
||||
|
||||
|
||||
#undef TRMM
|
||||
|
||||
#ifndef COMPLEX
|
||||
|
||||
#ifdef DOUBLE
|
||||
#define TRMM BLASFUNC(dtrmm)
|
||||
#else
|
||||
#define TRMM BLASFUNC(strmm)
|
||||
#endif
|
||||
|
||||
#else
|
||||
|
||||
#ifdef DOUBLE
|
||||
#define TRMM BLASFUNC(ztrmm)
|
||||
#else
|
||||
#define TRMM BLASFUNC(ctrmm)
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#if defined(__WIN32__) || defined(__WIN64__)
|
||||
|
||||
#ifndef DELTA_EPOCH_IN_MICROSECS
|
||||
#define DELTA_EPOCH_IN_MICROSECS 11644473600000000ULL
|
||||
#endif
|
||||
|
||||
int gettimeofday(struct timeval *tv, void *tz){
|
||||
|
||||
FILETIME ft;
|
||||
unsigned __int64 tmpres = 0;
|
||||
static int tzflag;
|
||||
|
||||
if (NULL != tv)
|
||||
{
|
||||
GetSystemTimeAsFileTime(&ft);
|
||||
|
||||
tmpres |= ft.dwHighDateTime;
|
||||
tmpres <<= 32;
|
||||
tmpres |= ft.dwLowDateTime;
|
||||
|
||||
/*converting file time to unix epoch*/
|
||||
tmpres /= 10; /*convert into microseconds*/
|
||||
tmpres -= DELTA_EPOCH_IN_MICROSECS;
|
||||
tv->tv_sec = (long)(tmpres / 1000000UL);
|
||||
tv->tv_usec = (long)(tmpres % 1000000UL);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#if !defined(__WIN32__) && !defined(__WIN64__) && !defined(__CYGWIN32__) && 0
|
||||
|
||||
static void *huge_malloc(BLASLONG size){
|
||||
int shmid;
|
||||
void *address;
|
||||
|
||||
#ifndef SHM_HUGETLB
|
||||
#define SHM_HUGETLB 04000
|
||||
#endif
|
||||
|
||||
if ((shmid =shmget(IPC_PRIVATE,
|
||||
(size + HUGE_PAGESIZE) & ~(HUGE_PAGESIZE - 1),
|
||||
SHM_HUGETLB | IPC_CREAT |0600)) < 0) {
|
||||
printf( "Memory allocation failed(shmget).\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
address = shmat(shmid, NULL, SHM_RND);
|
||||
|
||||
if ((BLASLONG)address == -1){
|
||||
printf( "Memory allocation failed(shmat).\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
shmctl(shmid, IPC_RMID, 0);
|
||||
|
||||
return address;
|
||||
}
|
||||
|
||||
#define malloc huge_malloc
|
||||
|
||||
#endif
|
||||
|
||||
int MAIN__(int argc, char *argv[]){
|
||||
|
||||
FLOAT *a, *b;
|
||||
FLOAT alpha[] = {1.0, 1.0};
|
||||
FLOAT beta [] = {1.0, 1.0};
|
||||
char *p;
|
||||
|
||||
char side ='L';
|
||||
char uplo ='U';
|
||||
char trans='N';
|
||||
char diag ='U';
|
||||
|
||||
if ((p = getenv("OPENBLAS_SIDE"))) side=*p;
|
||||
if ((p = getenv("OPENBLAS_UPLO"))) uplo=*p;
|
||||
if ((p = getenv("OPENBLAS_TRANS"))) trans=*p;
|
||||
if ((p = getenv("OPENBLAS_DIAG"))) diag=*p;
|
||||
|
||||
blasint m, i, j;
|
||||
|
||||
int from = 1;
|
||||
int to = 200;
|
||||
int step = 1;
|
||||
|
||||
struct timeval start, stop;
|
||||
double time1;
|
||||
|
||||
argc--;argv++;
|
||||
|
||||
if (argc > 0) { from = atol(*argv); argc--; argv++;}
|
||||
if (argc > 0) { to = MAX(atol(*argv), from); argc--; argv++;}
|
||||
if (argc > 0) { step = atol(*argv); argc--; argv++;}
|
||||
|
||||
fprintf(stderr, "From : %3d To : %3d Step = %3d Side = %c Uplo = %c Trans = %c Diag = %c\n", from, to, step,side,uplo,trans,diag);
|
||||
|
||||
if (( a = (FLOAT *)malloc(sizeof(FLOAT) * to * to * COMPSIZE)) == NULL){
|
||||
fprintf(stderr,"Out of Memory!!\n");exit(1);
|
||||
}
|
||||
|
||||
if (( b = (FLOAT *)malloc(sizeof(FLOAT) * to * to * COMPSIZE)) == NULL){
|
||||
fprintf(stderr,"Out of Memory!!\n");exit(1);
|
||||
}
|
||||
|
||||
|
||||
|
||||
#ifdef linux
|
||||
srandom(getpid());
|
||||
#endif
|
||||
|
||||
fprintf(stderr, " SIZE Flops\n");
|
||||
|
||||
for(m = from; m <= to; m += step)
|
||||
{
|
||||
|
||||
fprintf(stderr, " %6d : ", (int)m);
|
||||
|
||||
for(j = 0; j < m; j++){
|
||||
for(i = 0; i < m * COMPSIZE; i++){
|
||||
a[i + j * m * COMPSIZE] = ((FLOAT) rand() / (FLOAT) RAND_MAX) - 0.5;
|
||||
b[i + j * m * COMPSIZE] = ((FLOAT) rand() / (FLOAT) RAND_MAX) - 0.5;
|
||||
}
|
||||
}
|
||||
|
||||
gettimeofday( &start, (struct timezone *)0);
|
||||
|
||||
TRMM (&side, &uplo, &trans, &diag, &m, &m, alpha, a, &m, b, &m);
|
||||
|
||||
gettimeofday( &stop, (struct timezone *)0);
|
||||
|
||||
time1 = (double)(stop.tv_sec - start.tv_sec) + (double)((stop.tv_usec - start.tv_usec)) * 1.e-6;
|
||||
|
||||
gettimeofday( &start, (struct timezone *)0);
|
||||
|
||||
fprintf(stderr,
|
||||
" %10.2f MFlops\n",
|
||||
COMPSIZE * COMPSIZE * 1. * (double)m * (double)m * (double)m / time1 * 1.e-6);
|
||||
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void main(int argc, char *argv[]) __attribute__((weak, alias("MAIN__")));
|
||||
@@ -0,0 +1,202 @@
|
||||
/***************************************************************************
|
||||
Copyright (c) 2014, The OpenBLAS Project
|
||||
All rights reserved.
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in
|
||||
the documentation and/or other materials provided with the
|
||||
distribution.
|
||||
3. Neither the name of the OpenBLAS project nor the names of
|
||||
its contributors may be used to endorse or promote products
|
||||
derived from this software without specific prior written permission.
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE OPENBLAS PROJECT OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
||||
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*****************************************************************************/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#ifdef __CYGWIN32__
|
||||
#include <sys/time.h>
|
||||
#endif
|
||||
#include "common.h"
|
||||
|
||||
|
||||
#undef TRSM
|
||||
|
||||
#ifndef COMPLEX
|
||||
|
||||
#ifdef DOUBLE
|
||||
#define TRSM BLASFUNC(dtrsm)
|
||||
#else
|
||||
#define TRSM BLASFUNC(strsm)
|
||||
#endif
|
||||
|
||||
#else
|
||||
|
||||
#ifdef DOUBLE
|
||||
#define TRSM BLASFUNC(ztrsm)
|
||||
#else
|
||||
#define TRSM BLASFUNC(ctrsm)
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#if defined(__WIN32__) || defined(__WIN64__)
|
||||
|
||||
#ifndef DELTA_EPOCH_IN_MICROSECS
|
||||
#define DELTA_EPOCH_IN_MICROSECS 11644473600000000ULL
|
||||
#endif
|
||||
|
||||
int gettimeofday(struct timeval *tv, void *tz){
|
||||
|
||||
FILETIME ft;
|
||||
unsigned __int64 tmpres = 0;
|
||||
static int tzflag;
|
||||
|
||||
if (NULL != tv)
|
||||
{
|
||||
GetSystemTimeAsFileTime(&ft);
|
||||
|
||||
tmpres |= ft.dwHighDateTime;
|
||||
tmpres <<= 32;
|
||||
tmpres |= ft.dwLowDateTime;
|
||||
|
||||
/*converting file time to unix epoch*/
|
||||
tmpres /= 10; /*convert into microseconds*/
|
||||
tmpres -= DELTA_EPOCH_IN_MICROSECS;
|
||||
tv->tv_sec = (long)(tmpres / 1000000UL);
|
||||
tv->tv_usec = (long)(tmpres % 1000000UL);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#if !defined(__WIN32__) && !defined(__WIN64__) && !defined(__CYGWIN32__) && 0
|
||||
|
||||
static void *huge_malloc(BLASLONG size){
|
||||
int shmid;
|
||||
void *address;
|
||||
|
||||
#ifndef SHM_HUGETLB
|
||||
#define SHM_HUGETLB 04000
|
||||
#endif
|
||||
|
||||
if ((shmid =shmget(IPC_PRIVATE,
|
||||
(size + HUGE_PAGESIZE) & ~(HUGE_PAGESIZE - 1),
|
||||
SHM_HUGETLB | IPC_CREAT |0600)) < 0) {
|
||||
printf( "Memory allocation failed(shmget).\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
address = shmat(shmid, NULL, SHM_RND);
|
||||
|
||||
if ((BLASLONG)address == -1){
|
||||
printf( "Memory allocation failed(shmat).\n");
|
||||
exit(1);
|
||||
}
|
||||
|
||||
shmctl(shmid, IPC_RMID, 0);
|
||||
|
||||
return address;
|
||||
}
|
||||
|
||||
#define malloc huge_malloc
|
||||
|
||||
#endif
|
||||
|
||||
int MAIN__(int argc, char *argv[]){
|
||||
|
||||
FLOAT *a, *b;
|
||||
FLOAT alpha[] = {1.0, 1.0};
|
||||
FLOAT beta [] = {1.0, 1.0};
|
||||
char *p;
|
||||
|
||||
char side ='L';
|
||||
char uplo ='U';
|
||||
char trans='N';
|
||||
char diag ='U';
|
||||
|
||||
if ((p = getenv("OPENBLAS_SIDE"))) side=*p;
|
||||
if ((p = getenv("OPENBLAS_UPLO"))) uplo=*p;
|
||||
if ((p = getenv("OPENBLAS_TRANS"))) trans=*p;
|
||||
if ((p = getenv("OPENBLAS_DIAG"))) diag=*p;
|
||||
|
||||
blasint m, i, j;
|
||||
|
||||
int from = 1;
|
||||
int to = 200;
|
||||
int step = 1;
|
||||
|
||||
struct timeval start, stop;
|
||||
double time1;
|
||||
|
||||
argc--;argv++;
|
||||
|
||||
if (argc > 0) { from = atol(*argv); argc--; argv++;}
|
||||
if (argc > 0) { to = MAX(atol(*argv), from); argc--; argv++;}
|
||||
if (argc > 0) { step = atol(*argv); argc--; argv++;}
|
||||
|
||||
fprintf(stderr, "From : %3d To : %3d Step = %3d Side = %c Uplo = %c Trans = %c Diag = %c\n", from, to, step,side,uplo,trans,diag);
|
||||
|
||||
if (( a = (FLOAT *)malloc(sizeof(FLOAT) * to * to * COMPSIZE)) == NULL){
|
||||
fprintf(stderr,"Out of Memory!!\n");exit(1);
|
||||
}
|
||||
|
||||
if (( b = (FLOAT *)malloc(sizeof(FLOAT) * to * to * COMPSIZE)) == NULL){
|
||||
fprintf(stderr,"Out of Memory!!\n");exit(1);
|
||||
}
|
||||
|
||||
|
||||
|
||||
#ifdef linux
|
||||
srandom(getpid());
|
||||
#endif
|
||||
|
||||
fprintf(stderr, " SIZE Flops\n");
|
||||
|
||||
for(m = from; m <= to; m += step)
|
||||
{
|
||||
|
||||
fprintf(stderr, " %6d : ", (int)m);
|
||||
|
||||
for(j = 0; j < m; j++){
|
||||
for(i = 0; i < m * COMPSIZE; i++){
|
||||
a[i + j * m * COMPSIZE] = ((FLOAT) rand() / (FLOAT) RAND_MAX) - 0.5;
|
||||
b[i + j * m * COMPSIZE] = ((FLOAT) rand() / (FLOAT) RAND_MAX) - 0.5;
|
||||
}
|
||||
}
|
||||
|
||||
gettimeofday( &start, (struct timezone *)0);
|
||||
|
||||
TRSM (&side, &uplo, &trans, &diag, &m, &m, alpha, a, &m, b, &m);
|
||||
|
||||
gettimeofday( &stop, (struct timezone *)0);
|
||||
|
||||
time1 = (double)(stop.tv_sec - start.tv_sec) + (double)((stop.tv_usec - start.tv_usec)) * 1.e-6;
|
||||
|
||||
gettimeofday( &start, (struct timezone *)0);
|
||||
|
||||
fprintf(stderr,
|
||||
" %10.2f MFlops\n",
|
||||
COMPSIZE * COMPSIZE * 1. * (double)m * (double)m * (double)m / time1 * 1.e-6);
|
||||
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void main(int argc, char *argv[]) __attribute__((weak, alias("MAIN__")));
|
||||
@@ -63,6 +63,8 @@ $architecture = mips64 if ($data =~ /ARCH_MIPS64/);
|
||||
$architecture = alpha if ($data =~ /ARCH_ALPHA/);
|
||||
$architecture = sparc if ($data =~ /ARCH_SPARC/);
|
||||
$architecture = ia64 if ($data =~ /ARCH_IA64/);
|
||||
$architecture = arm if ($data =~ /ARCH_ARM/);
|
||||
$architecture = arm64 if ($data =~ /ARCH_ARM64/);
|
||||
|
||||
$defined = 0;
|
||||
|
||||
@@ -149,6 +151,8 @@ $architecture = mips64 if ($data =~ /ARCH_MIPS64/);
|
||||
$architecture = alpha if ($data =~ /ARCH_ALPHA/);
|
||||
$architecture = sparc if ($data =~ /ARCH_SPARC/);
|
||||
$architecture = ia64 if ($data =~ /ARCH_IA64/);
|
||||
$architecture = arm if ($data =~ /ARCH_ARM/);
|
||||
$architecture = arm64 if ($data =~ /ARCH_ARM64/);
|
||||
|
||||
$binformat = bin32;
|
||||
$binformat = bin64 if ($data =~ /BINARY_64/);
|
||||
@@ -176,9 +180,9 @@ $linker_a = "";
|
||||
|
||||
{
|
||||
$link = `$compiler_name -c ctest2.c -o ctest2.o 2>&1 && $compiler_name $openmp -v ctest2.o -o ctest2 2>&1 && rm -f ctest2.o ctest2 ctest2.exe`;
|
||||
|
||||
|
||||
$link =~ s/\-Y\sP\,/\-Y/g;
|
||||
|
||||
|
||||
@flags = split(/[\s\,\n]/, $link);
|
||||
# remove leading and trailing quotes from each flag.
|
||||
@flags = map {s/^['"]|['"]$//g; $_} @flags;
|
||||
@@ -189,15 +193,15 @@ $linker_a = "";
|
||||
&& ($flags !~ /^-LIST:/)
|
||||
&& ($flags !~ /^-LANG:/)
|
||||
) {
|
||||
$linker_L .= $flags . " "
|
||||
$linker_L .= $flags . " "
|
||||
}
|
||||
|
||||
if ($flags =~ /^\-Y/) {
|
||||
$linker_L .= "-Wl,". $flags . " "
|
||||
$linker_L .= "-Wl,". $flags . " "
|
||||
}
|
||||
|
||||
|
||||
if (
|
||||
($flags =~ /^\-l/)
|
||||
($flags =~ /^\-l/)
|
||||
&& ($flags !~ /gfortranbegin/)
|
||||
&& ($flags !~ /frtbegin/)
|
||||
&& ($flags !~ /pathfstart/)
|
||||
@@ -209,7 +213,7 @@ $linker_a = "";
|
||||
&& ($flags !~ /advapi32/)
|
||||
&& ($flags !~ /shell32/)
|
||||
) {
|
||||
$linker_l .= $flags . " "
|
||||
$linker_l .= $flags . " "
|
||||
}
|
||||
|
||||
$linker_a .= $flags . " " if $flags =~ /\.a$/;
|
||||
@@ -246,9 +250,9 @@ print CONFFILE "#define __64BIT__\t1\n" if $binformat eq bin64;
|
||||
print CONFFILE "#define FUNDERSCORE\t$need_fu\n" if $need_fu ne "";
|
||||
|
||||
if ($os eq "LINUX") {
|
||||
|
||||
|
||||
# @pthread = split(/\s+/, `nm /lib/libpthread.so* | grep _pthread_create`);
|
||||
|
||||
|
||||
# if ($pthread[2] ne "") {
|
||||
# print CONFFILE "#define PTHREAD_CREATE_FUNC $pthread[2]\n";
|
||||
# } else {
|
||||
|
||||
@@ -16,14 +16,26 @@ void goto_set_num_threads(int num_threads);
|
||||
/*Get the build configure on runtime.*/
|
||||
char* openblas_get_config(void);
|
||||
|
||||
/*Get the CPU corename on runtime.*/
|
||||
char* openblas_get_corename(void);
|
||||
|
||||
/* Get the parallelization type which is used by OpenBLAS */
|
||||
int openblas_get_parallel(void);
|
||||
int openblas_get_parallel(void);
|
||||
/* OpenBLAS is compiled for sequential use */
|
||||
#define OPENBLAS_SEQUENTIAL 0
|
||||
/* OpenBLAS is compiled using normal threading model */
|
||||
#define OPENBLAS_THREAD 1
|
||||
#define OPENBLAS_THREAD 1
|
||||
/* OpenBLAS is compiled using OpenMP threading model */
|
||||
#define OPENBLAS_OPENMP 2
|
||||
#define OPENBLAS_OPENMP 2
|
||||
|
||||
|
||||
/*
|
||||
* Since all of GotoBlas was written without const,
|
||||
* we disable it at build time.
|
||||
*/
|
||||
#ifndef OPENBLAS_CONST
|
||||
# define OPENBLAS_CONST const
|
||||
#endif
|
||||
|
||||
|
||||
#define CBLAS_INDEX size_t
|
||||
@@ -34,268 +46,278 @@ typedef enum CBLAS_UPLO {CblasUpper=121, CblasLower=122} CBLAS_UPLO;
|
||||
typedef enum CBLAS_DIAG {CblasNonUnit=131, CblasUnit=132} CBLAS_DIAG;
|
||||
typedef enum CBLAS_SIDE {CblasLeft=141, CblasRight=142} CBLAS_SIDE;
|
||||
|
||||
float cblas_sdsdot(const blasint n, const float alpha, const float *x, const blasint incx, const float *y, const blasint incy);
|
||||
double cblas_dsdot (const blasint n, const float *x, const blasint incx, const float *y, const blasint incy);
|
||||
float cblas_sdot(const blasint n, const float *x, const blasint incx, const float *y, const blasint incy);
|
||||
double cblas_ddot(const blasint n, const double *x, const blasint incx, const double *y, const blasint incy);
|
||||
float cblas_sdsdot(OPENBLAS_CONST blasint n, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST float *y, OPENBLAS_CONST blasint incy);
|
||||
double cblas_dsdot (OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST float *y, OPENBLAS_CONST blasint incy);
|
||||
float cblas_sdot(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST float *y, OPENBLAS_CONST blasint incy);
|
||||
double cblas_ddot(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST double *y, OPENBLAS_CONST blasint incy);
|
||||
|
||||
openblas_complex_float cblas_cdotu(const blasint n, const float *x, const blasint incx, const float *y, const blasint incy);
|
||||
openblas_complex_float cblas_cdotc(const blasint n, const float *x, const blasint incx, const float *y, const blasint incy);
|
||||
openblas_complex_double cblas_zdotu(const blasint n, const double *x, const blasint incx, const double *y, const blasint incy);
|
||||
openblas_complex_double cblas_zdotc(const blasint n, const double *x, const blasint incx, const double *y, const blasint incy);
|
||||
openblas_complex_float cblas_cdotu(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST float *y, OPENBLAS_CONST blasint incy);
|
||||
openblas_complex_float cblas_cdotc(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST float *y, OPENBLAS_CONST blasint incy);
|
||||
openblas_complex_double cblas_zdotu(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST double *y, OPENBLAS_CONST blasint incy);
|
||||
openblas_complex_double cblas_zdotc(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST double *y, OPENBLAS_CONST blasint incy);
|
||||
|
||||
void cblas_cdotu_sub(const blasint n, const float *x, const blasint incx, const float *y, const blasint incy, openblas_complex_float *ret);
|
||||
void cblas_cdotc_sub(const blasint n, const float *x, const blasint incx, const float *y, const blasint incy, openblas_complex_float *ret);
|
||||
void cblas_zdotu_sub(const blasint n, const double *x, const blasint incx, const double *y, const blasint incy, openblas_complex_double *ret);
|
||||
void cblas_zdotc_sub(const blasint n, const double *x, const blasint incx, const double *y, const blasint incy, openblas_complex_double *ret);
|
||||
void cblas_cdotu_sub(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST float *y, OPENBLAS_CONST blasint incy, openblas_complex_float *ret);
|
||||
void cblas_cdotc_sub(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST float *y, OPENBLAS_CONST blasint incy, openblas_complex_float *ret);
|
||||
void cblas_zdotu_sub(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST double *y, OPENBLAS_CONST blasint incy, openblas_complex_double *ret);
|
||||
void cblas_zdotc_sub(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST double *y, OPENBLAS_CONST blasint incy, openblas_complex_double *ret);
|
||||
|
||||
float cblas_sasum (const blasint n, const float *x, const blasint incx);
|
||||
double cblas_dasum (const blasint n, const double *x, const blasint incx);
|
||||
float cblas_scasum(const blasint n, const float *x, const blasint incx);
|
||||
double cblas_dzasum(const blasint n, const double *x, const blasint incx);
|
||||
float cblas_sasum (OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx);
|
||||
double cblas_dasum (OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx);
|
||||
float cblas_scasum(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx);
|
||||
double cblas_dzasum(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx);
|
||||
|
||||
float cblas_snrm2 (const blasint N, const float *X, const blasint incX);
|
||||
double cblas_dnrm2 (const blasint N, const double *X, const blasint incX);
|
||||
float cblas_scnrm2(const blasint N, const float *X, const blasint incX);
|
||||
double cblas_dznrm2(const blasint N, const double *X, const blasint incX);
|
||||
float cblas_snrm2 (OPENBLAS_CONST blasint N, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX);
|
||||
double cblas_dnrm2 (OPENBLAS_CONST blasint N, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX);
|
||||
float cblas_scnrm2(OPENBLAS_CONST blasint N, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX);
|
||||
double cblas_dznrm2(OPENBLAS_CONST blasint N, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX);
|
||||
|
||||
CBLAS_INDEX cblas_isamax(const blasint n, const float *x, const blasint incx);
|
||||
CBLAS_INDEX cblas_idamax(const blasint n, const double *x, const blasint incx);
|
||||
CBLAS_INDEX cblas_icamax(const blasint n, const float *x, const blasint incx);
|
||||
CBLAS_INDEX cblas_izamax(const blasint n, const double *x, const blasint incx);
|
||||
CBLAS_INDEX cblas_isamax(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx);
|
||||
CBLAS_INDEX cblas_idamax(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx);
|
||||
CBLAS_INDEX cblas_icamax(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx);
|
||||
CBLAS_INDEX cblas_izamax(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx);
|
||||
|
||||
void cblas_saxpy(const blasint n, const float alpha, const float *x, const blasint incx, float *y, const blasint incy);
|
||||
void cblas_daxpy(const blasint n, const double alpha, const double *x, const blasint incx, double *y, const blasint incy);
|
||||
void cblas_caxpy(const blasint n, const float *alpha, const float *x, const blasint incx, float *y, const blasint incy);
|
||||
void cblas_zaxpy(const blasint n, const double *alpha, const double *x, const blasint incx, double *y, const blasint incy);
|
||||
void cblas_saxpy(OPENBLAS_CONST blasint n, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx, float *y, OPENBLAS_CONST blasint incy);
|
||||
void cblas_daxpy(OPENBLAS_CONST blasint n, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx, double *y, OPENBLAS_CONST blasint incy);
|
||||
void cblas_caxpy(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *alpha, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx, float *y, OPENBLAS_CONST blasint incy);
|
||||
void cblas_zaxpy(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *alpha, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx, double *y, OPENBLAS_CONST blasint incy);
|
||||
|
||||
void cblas_scopy(const blasint n, const float *x, const blasint incx, float *y, const blasint incy);
|
||||
void cblas_dcopy(const blasint n, const double *x, const blasint incx, double *y, const blasint incy);
|
||||
void cblas_ccopy(const blasint n, const float *x, const blasint incx, float *y, const blasint incy);
|
||||
void cblas_zcopy(const blasint n, const double *x, const blasint incx, double *y, const blasint incy);
|
||||
void cblas_scopy(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx, float *y, OPENBLAS_CONST blasint incy);
|
||||
void cblas_dcopy(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx, double *y, OPENBLAS_CONST blasint incy);
|
||||
void cblas_ccopy(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx, float *y, OPENBLAS_CONST blasint incy);
|
||||
void cblas_zcopy(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx, double *y, OPENBLAS_CONST blasint incy);
|
||||
|
||||
void cblas_sswap(const blasint n, float *x, const blasint incx, float *y, const blasint incy);
|
||||
void cblas_dswap(const blasint n, double *x, const blasint incx, double *y, const blasint incy);
|
||||
void cblas_cswap(const blasint n, float *x, const blasint incx, float *y, const blasint incy);
|
||||
void cblas_zswap(const blasint n, double *x, const blasint incx, double *y, const blasint incy);
|
||||
void cblas_sswap(OPENBLAS_CONST blasint n, float *x, OPENBLAS_CONST blasint incx, float *y, OPENBLAS_CONST blasint incy);
|
||||
void cblas_dswap(OPENBLAS_CONST blasint n, double *x, OPENBLAS_CONST blasint incx, double *y, OPENBLAS_CONST blasint incy);
|
||||
void cblas_cswap(OPENBLAS_CONST blasint n, float *x, OPENBLAS_CONST blasint incx, float *y, OPENBLAS_CONST blasint incy);
|
||||
void cblas_zswap(OPENBLAS_CONST blasint n, double *x, OPENBLAS_CONST blasint incx, double *y, OPENBLAS_CONST blasint incy);
|
||||
|
||||
void cblas_srot(const blasint N, float *X, const blasint incX, float *Y, const blasint incY, const float c, const float s);
|
||||
void cblas_drot(const blasint N, double *X, const blasint incX, double *Y, const blasint incY, const double c, const double s);
|
||||
void cblas_srot(OPENBLAS_CONST blasint N, float *X, OPENBLAS_CONST blasint incX, float *Y, OPENBLAS_CONST blasint incY, OPENBLAS_CONST float c, OPENBLAS_CONST float s);
|
||||
void cblas_drot(OPENBLAS_CONST blasint N, double *X, OPENBLAS_CONST blasint incX, double *Y, OPENBLAS_CONST blasint incY, OPENBLAS_CONST double c, OPENBLAS_CONST double s);
|
||||
|
||||
void cblas_srotg(float *a, float *b, float *c, float *s);
|
||||
void cblas_drotg(double *a, double *b, double *c, double *s);
|
||||
|
||||
void cblas_srotm(const blasint N, float *X, const blasint incX, float *Y, const blasint incY, const float *P);
|
||||
void cblas_drotm(const blasint N, double *X, const blasint incX, double *Y, const blasint incY, const double *P);
|
||||
void cblas_srotm(OPENBLAS_CONST blasint N, float *X, OPENBLAS_CONST blasint incX, float *Y, OPENBLAS_CONST blasint incY, OPENBLAS_CONST float *P);
|
||||
void cblas_drotm(OPENBLAS_CONST blasint N, double *X, OPENBLAS_CONST blasint incX, double *Y, OPENBLAS_CONST blasint incY, OPENBLAS_CONST double *P);
|
||||
|
||||
void cblas_srotmg(float *d1, float *d2, float *b1, const float b2, float *P);
|
||||
void cblas_drotmg(double *d1, double *d2, double *b1, const double b2, double *P);
|
||||
void cblas_srotmg(float *d1, float *d2, float *b1, OPENBLAS_CONST float b2, float *P);
|
||||
void cblas_drotmg(double *d1, double *d2, double *b1, OPENBLAS_CONST double b2, double *P);
|
||||
|
||||
void cblas_sscal(const blasint N, const float alpha, float *X, const blasint incX);
|
||||
void cblas_dscal(const blasint N, const double alpha, double *X, const blasint incX);
|
||||
void cblas_cscal(const blasint N, const float *alpha, float *X, const blasint incX);
|
||||
void cblas_zscal(const blasint N, const double *alpha, double *X, const blasint incX);
|
||||
void cblas_csscal(const blasint N, const float alpha, float *X, const blasint incX);
|
||||
void cblas_zdscal(const blasint N, const double alpha, double *X, const blasint incX);
|
||||
void cblas_sscal(OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, float *X, OPENBLAS_CONST blasint incX);
|
||||
void cblas_dscal(OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, double *X, OPENBLAS_CONST blasint incX);
|
||||
void cblas_cscal(OPENBLAS_CONST blasint N, OPENBLAS_CONST float *alpha, float *X, OPENBLAS_CONST blasint incX);
|
||||
void cblas_zscal(OPENBLAS_CONST blasint N, OPENBLAS_CONST double *alpha, double *X, OPENBLAS_CONST blasint incX);
|
||||
void cblas_csscal(OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, float *X, OPENBLAS_CONST blasint incX);
|
||||
void cblas_zdscal(OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, double *X, OPENBLAS_CONST blasint incX);
|
||||
|
||||
void cblas_sgemv(const enum CBLAS_ORDER order, const enum CBLAS_TRANSPOSE trans, const blasint m, const blasint n,
|
||||
const float alpha, const float *a, const blasint lda, const float *x, const blasint incx, const float beta, float *y, const blasint incy);
|
||||
void cblas_dgemv(const enum CBLAS_ORDER order, const enum CBLAS_TRANSPOSE trans, const blasint m, const blasint n,
|
||||
const double alpha, const double *a, const blasint lda, const double *x, const blasint incx, const double beta, double *y, const blasint incy);
|
||||
void cblas_cgemv(const enum CBLAS_ORDER order, const enum CBLAS_TRANSPOSE trans, const blasint m, const blasint n,
|
||||
const float *alpha, const float *a, const blasint lda, const float *x, const blasint incx, const float *beta, float *y, const blasint incy);
|
||||
void cblas_zgemv(const enum CBLAS_ORDER order, const enum CBLAS_TRANSPOSE trans, const blasint m, const blasint n,
|
||||
const double *alpha, const double *a, const blasint lda, const double *x, const blasint incx, const double *beta, double *y, const blasint incy);
|
||||
void cblas_sgemv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE trans, OPENBLAS_CONST blasint m, OPENBLAS_CONST blasint n,
|
||||
OPENBLAS_CONST float alpha, OPENBLAS_CONST float *a, OPENBLAS_CONST blasint lda, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST float beta, float *y, OPENBLAS_CONST blasint incy);
|
||||
void cblas_dgemv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE trans, OPENBLAS_CONST blasint m, OPENBLAS_CONST blasint n,
|
||||
OPENBLAS_CONST double alpha, OPENBLAS_CONST double *a, OPENBLAS_CONST blasint lda, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST double beta, double *y, OPENBLAS_CONST blasint incy);
|
||||
void cblas_cgemv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE trans, OPENBLAS_CONST blasint m, OPENBLAS_CONST blasint n,
|
||||
OPENBLAS_CONST float *alpha, OPENBLAS_CONST float *a, OPENBLAS_CONST blasint lda, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST float *beta, float *y, OPENBLAS_CONST blasint incy);
|
||||
void cblas_zgemv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE trans, OPENBLAS_CONST blasint m, OPENBLAS_CONST blasint n,
|
||||
OPENBLAS_CONST double *alpha, OPENBLAS_CONST double *a, OPENBLAS_CONST blasint lda, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx, OPENBLAS_CONST double *beta, double *y, OPENBLAS_CONST blasint incy);
|
||||
|
||||
void cblas_sger (const enum CBLAS_ORDER order, const blasint M, const blasint N, const float alpha, const float *X, const blasint incX, const float *Y, const blasint incY, float *A, const blasint lda);
|
||||
void cblas_dger (const enum CBLAS_ORDER order, const blasint M, const blasint N, const double alpha, const double *X, const blasint incX, const double *Y, const blasint incY, double *A, const blasint lda);
|
||||
void cblas_cgeru(const enum CBLAS_ORDER order, const blasint M, const blasint N, const float *alpha, const float *X, const blasint incX, const float *Y, const blasint incY, float *A, const blasint lda);
|
||||
void cblas_cgerc(const enum CBLAS_ORDER order, const blasint M, const blasint N, const float *alpha, const float *X, const blasint incX, const float *Y, const blasint incY, float *A, const blasint lda);
|
||||
void cblas_zgeru(const enum CBLAS_ORDER order, const blasint M, const blasint N, const double *alpha, const double *X, const blasint incX, const double *Y, const blasint incY, double *A, const blasint lda);
|
||||
void cblas_zgerc(const enum CBLAS_ORDER order, const blasint M, const blasint N, const double *alpha, const double *X, const blasint incX, const double *Y, const blasint incY, double *A, const blasint lda);
|
||||
void cblas_sger (OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST float *Y, OPENBLAS_CONST blasint incY, float *A, OPENBLAS_CONST blasint lda);
|
||||
void cblas_dger (OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST double *Y, OPENBLAS_CONST blasint incY, double *A, OPENBLAS_CONST blasint lda);
|
||||
void cblas_cgeru(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST float *alpha, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST float *Y, OPENBLAS_CONST blasint incY, float *A, OPENBLAS_CONST blasint lda);
|
||||
void cblas_cgerc(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST float *alpha, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST float *Y, OPENBLAS_CONST blasint incY, float *A, OPENBLAS_CONST blasint lda);
|
||||
void cblas_zgeru(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST double *alpha, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST double *Y, OPENBLAS_CONST blasint incY, double *A, OPENBLAS_CONST blasint lda);
|
||||
void cblas_zgerc(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST double *alpha, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST double *Y, OPENBLAS_CONST blasint incY, double *A, OPENBLAS_CONST blasint lda);
|
||||
|
||||
void cblas_strsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, const blasint N, const float *A, const blasint lda, float *X, const blasint incX);
|
||||
void cblas_dtrsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, const blasint N, const double *A, const blasint lda, double *X, const blasint incX);
|
||||
void cblas_ctrsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, const blasint N, const float *A, const blasint lda, float *X, const blasint incX);
|
||||
void cblas_ztrsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, const blasint N, const double *A, const blasint lda, double *X, const blasint incX);
|
||||
void cblas_strsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, float *X, OPENBLAS_CONST blasint incX);
|
||||
void cblas_dtrsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, double *X, OPENBLAS_CONST blasint incX);
|
||||
void cblas_ctrsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, float *X, OPENBLAS_CONST blasint incX);
|
||||
void cblas_ztrsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, double *X, OPENBLAS_CONST blasint incX);
|
||||
|
||||
void cblas_strmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, const blasint N, const float *A, const blasint lda, float *X, const blasint incX);
|
||||
void cblas_dtrmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, const blasint N, const double *A, const blasint lda, double *X, const blasint incX);
|
||||
void cblas_ctrmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, const blasint N, const float *A, const blasint lda, float *X, const blasint incX);
|
||||
void cblas_ztrmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag, const blasint N, const double *A, const blasint lda, double *X, const blasint incX);
|
||||
void cblas_strmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, float *X, OPENBLAS_CONST blasint incX);
|
||||
void cblas_dtrmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, double *X, OPENBLAS_CONST blasint incX);
|
||||
void cblas_ctrmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, float *X, OPENBLAS_CONST blasint incX);
|
||||
void cblas_ztrmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint N, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, double *X, OPENBLAS_CONST blasint incX);
|
||||
|
||||
void cblas_ssyr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const blasint N, const float alpha, const float *X, const blasint incX, float *A, const blasint lda);
|
||||
void cblas_dsyr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const blasint N, const double alpha, const double *X, const blasint incX, double *A, const blasint lda);
|
||||
void cblas_cher(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const blasint N, const float alpha, const float *X, const blasint incX, float *A, const blasint lda);
|
||||
void cblas_zher(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const blasint N, const double alpha, const double *X, const blasint incX, double *A, const blasint lda);
|
||||
void cblas_ssyr(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX, float *A, OPENBLAS_CONST blasint lda);
|
||||
void cblas_dsyr(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX, double *A, OPENBLAS_CONST blasint lda);
|
||||
void cblas_cher(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX, float *A, OPENBLAS_CONST blasint lda);
|
||||
void cblas_zher(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX, double *A, OPENBLAS_CONST blasint lda);
|
||||
|
||||
void cblas_ssyr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,const blasint N, const float alpha, const float *X,
|
||||
const blasint incX, const float *Y, const blasint incY, float *A, const blasint lda);
|
||||
void cblas_dsyr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const blasint N, const double alpha, const double *X,
|
||||
const blasint incX, const double *Y, const blasint incY, double *A, const blasint lda);
|
||||
void cblas_cher2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const blasint N, const float *alpha, const float *X, const blasint incX,
|
||||
const float *Y, const blasint incY, float *A, const blasint lda);
|
||||
void cblas_zher2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const blasint N, const double *alpha, const double *X, const blasint incX,
|
||||
const double *Y, const blasint incY, double *A, const blasint lda);
|
||||
void cblas_ssyr2(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo,OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *X,
|
||||
OPENBLAS_CONST blasint incX, OPENBLAS_CONST float *Y, OPENBLAS_CONST blasint incY, float *A, OPENBLAS_CONST blasint lda);
|
||||
void cblas_dsyr2(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *X,
|
||||
OPENBLAS_CONST blasint incX, OPENBLAS_CONST double *Y, OPENBLAS_CONST blasint incY, double *A, OPENBLAS_CONST blasint lda);
|
||||
void cblas_cher2(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST float *alpha, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX,
|
||||
OPENBLAS_CONST float *Y, OPENBLAS_CONST blasint incY, float *A, OPENBLAS_CONST blasint lda);
|
||||
void cblas_zher2(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST double *alpha, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX,
|
||||
OPENBLAS_CONST double *Y, OPENBLAS_CONST blasint incY, double *A, OPENBLAS_CONST blasint lda);
|
||||
|
||||
void cblas_sgbmv(const enum CBLAS_ORDER order, const enum CBLAS_TRANSPOSE TransA, const blasint M, const blasint N,
|
||||
const blasint KL, const blasint KU, const float alpha, const float *A, const blasint lda, const float *X, const blasint incX, const float beta, float *Y, const blasint incY);
|
||||
void cblas_dgbmv(const enum CBLAS_ORDER order, const enum CBLAS_TRANSPOSE TransA, const blasint M, const blasint N,
|
||||
const blasint KL, const blasint KU, const double alpha, const double *A, const blasint lda, const double *X, const blasint incX, const double beta, double *Y, const blasint incY);
|
||||
void cblas_cgbmv(const enum CBLAS_ORDER order, const enum CBLAS_TRANSPOSE TransA, const blasint M, const blasint N,
|
||||
const blasint KL, const blasint KU, const float *alpha, const float *A, const blasint lda, const float *X, const blasint incX, const float *beta, float *Y, const blasint incY);
|
||||
void cblas_zgbmv(const enum CBLAS_ORDER order, const enum CBLAS_TRANSPOSE TransA, const blasint M, const blasint N,
|
||||
const blasint KL, const blasint KU, const double *alpha, const double *A, const blasint lda, const double *X, const blasint incX, const double *beta, double *Y, const blasint incY);
|
||||
void cblas_sgbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N,
|
||||
OPENBLAS_CONST blasint KL, OPENBLAS_CONST blasint KU, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST float beta, float *Y, OPENBLAS_CONST blasint incY);
|
||||
void cblas_dgbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N,
|
||||
OPENBLAS_CONST blasint KL, OPENBLAS_CONST blasint KU, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST double beta, double *Y, OPENBLAS_CONST blasint incY);
|
||||
void cblas_cgbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N,
|
||||
OPENBLAS_CONST blasint KL, OPENBLAS_CONST blasint KU, OPENBLAS_CONST float *alpha, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST float *beta, float *Y, OPENBLAS_CONST blasint incY);
|
||||
void cblas_zgbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N,
|
||||
OPENBLAS_CONST blasint KL, OPENBLAS_CONST blasint KU, OPENBLAS_CONST double *alpha, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST double *beta, double *Y, OPENBLAS_CONST blasint incY);
|
||||
|
||||
void cblas_ssbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const blasint N, const blasint K, const float alpha, const float *A,
|
||||
const blasint lda, const float *X, const blasint incX, const float beta, float *Y, const blasint incY);
|
||||
void cblas_dsbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const blasint N, const blasint K, const double alpha, const double *A,
|
||||
const blasint lda, const double *X, const blasint incX, const double beta, double *Y, const blasint incY);
|
||||
void cblas_ssbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *A,
|
||||
OPENBLAS_CONST blasint lda, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST float beta, float *Y, OPENBLAS_CONST blasint incY);
|
||||
void cblas_dsbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *A,
|
||||
OPENBLAS_CONST blasint lda, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST double beta, double *Y, OPENBLAS_CONST blasint incY);
|
||||
|
||||
|
||||
void cblas_stbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
|
||||
const blasint N, const blasint K, const float *A, const blasint lda, float *X, const blasint incX);
|
||||
void cblas_dtbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
|
||||
const blasint N, const blasint K, const double *A, const blasint lda, double *X, const blasint incX);
|
||||
void cblas_ctbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
|
||||
const blasint N, const blasint K, const float *A, const blasint lda, float *X, const blasint incX);
|
||||
void cblas_ztbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
|
||||
const blasint N, const blasint K, const double *A, const blasint lda, double *X, const blasint incX);
|
||||
void cblas_stbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag,
|
||||
OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, float *X, OPENBLAS_CONST blasint incX);
|
||||
void cblas_dtbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag,
|
||||
OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, double *X, OPENBLAS_CONST blasint incX);
|
||||
void cblas_ctbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag,
|
||||
OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, float *X, OPENBLAS_CONST blasint incX);
|
||||
void cblas_ztbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag,
|
||||
OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, double *X, OPENBLAS_CONST blasint incX);
|
||||
|
||||
void cblas_stbsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
|
||||
const blasint N, const blasint K, const float *A, const blasint lda, float *X, const blasint incX);
|
||||
void cblas_dtbsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
|
||||
const blasint N, const blasint K, const double *A, const blasint lda, double *X, const blasint incX);
|
||||
void cblas_ctbsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
|
||||
const blasint N, const blasint K, const float *A, const blasint lda, float *X, const blasint incX);
|
||||
void cblas_ztbsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
|
||||
const blasint N, const blasint K, const double *A, const blasint lda, double *X, const blasint incX);
|
||||
void cblas_stbsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag,
|
||||
OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, float *X, OPENBLAS_CONST blasint incX);
|
||||
void cblas_dtbsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag,
|
||||
OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, double *X, OPENBLAS_CONST blasint incX);
|
||||
void cblas_ctbsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag,
|
||||
OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, float *X, OPENBLAS_CONST blasint incX);
|
||||
void cblas_ztbsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag,
|
||||
OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, double *X, OPENBLAS_CONST blasint incX);
|
||||
|
||||
void cblas_stpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
|
||||
const blasint N, const float *Ap, float *X, const blasint incX);
|
||||
void cblas_dtpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
|
||||
const blasint N, const double *Ap, double *X, const blasint incX);
|
||||
void cblas_ctpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
|
||||
const blasint N, const float *Ap, float *X, const blasint incX);
|
||||
void cblas_ztpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
|
||||
const blasint N, const double *Ap, double *X, const blasint incX);
|
||||
void cblas_stpmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag,
|
||||
OPENBLAS_CONST blasint N, OPENBLAS_CONST float *Ap, float *X, OPENBLAS_CONST blasint incX);
|
||||
void cblas_dtpmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag,
|
||||
OPENBLAS_CONST blasint N, OPENBLAS_CONST double *Ap, double *X, OPENBLAS_CONST blasint incX);
|
||||
void cblas_ctpmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag,
|
||||
OPENBLAS_CONST blasint N, OPENBLAS_CONST float *Ap, float *X, OPENBLAS_CONST blasint incX);
|
||||
void cblas_ztpmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag,
|
||||
OPENBLAS_CONST blasint N, OPENBLAS_CONST double *Ap, double *X, OPENBLAS_CONST blasint incX);
|
||||
|
||||
void cblas_stpsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
|
||||
const blasint N, const float *Ap, float *X, const blasint incX);
|
||||
void cblas_dtpsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
|
||||
const blasint N, const double *Ap, double *X, const blasint incX);
|
||||
void cblas_ctpsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
|
||||
const blasint N, const float *Ap, float *X, const blasint incX);
|
||||
void cblas_ztpsv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
|
||||
const blasint N, const double *Ap, double *X, const blasint incX);
|
||||
void cblas_stpsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag,
|
||||
OPENBLAS_CONST blasint N, OPENBLAS_CONST float *Ap, float *X, OPENBLAS_CONST blasint incX);
|
||||
void cblas_dtpsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag,
|
||||
OPENBLAS_CONST blasint N, OPENBLAS_CONST double *Ap, double *X, OPENBLAS_CONST blasint incX);
|
||||
void cblas_ctpsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag,
|
||||
OPENBLAS_CONST blasint N, OPENBLAS_CONST float *Ap, float *X, OPENBLAS_CONST blasint incX);
|
||||
void cblas_ztpsv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_DIAG Diag,
|
||||
OPENBLAS_CONST blasint N, OPENBLAS_CONST double *Ap, double *X, OPENBLAS_CONST blasint incX);
|
||||
|
||||
void cblas_ssymv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const blasint N, const float alpha, const float *A,
|
||||
const blasint lda, const float *X, const blasint incX, const float beta, float *Y, const blasint incY);
|
||||
void cblas_dsymv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const blasint N, const double alpha, const double *A,
|
||||
const blasint lda, const double *X, const blasint incX, const double beta, double *Y, const blasint incY);
|
||||
void cblas_chemv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const blasint N, const float *alpha, const float *A,
|
||||
const blasint lda, const float *X, const blasint incX, const float *beta, float *Y, const blasint incY);
|
||||
void cblas_zhemv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const blasint N, const double *alpha, const double *A,
|
||||
const blasint lda, const double *X, const blasint incX, const double *beta, double *Y, const blasint incY);
|
||||
void cblas_ssymv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *A,
|
||||
OPENBLAS_CONST blasint lda, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST float beta, float *Y, OPENBLAS_CONST blasint incY);
|
||||
void cblas_dsymv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *A,
|
||||
OPENBLAS_CONST blasint lda, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST double beta, double *Y, OPENBLAS_CONST blasint incY);
|
||||
void cblas_chemv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST float *alpha, OPENBLAS_CONST float *A,
|
||||
OPENBLAS_CONST blasint lda, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST float *beta, float *Y, OPENBLAS_CONST blasint incY);
|
||||
void cblas_zhemv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST double *alpha, OPENBLAS_CONST double *A,
|
||||
OPENBLAS_CONST blasint lda, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST double *beta, double *Y, OPENBLAS_CONST blasint incY);
|
||||
|
||||
|
||||
void cblas_sspmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const blasint N, const float alpha, const float *Ap,
|
||||
const float *X, const blasint incX, const float beta, float *Y, const blasint incY);
|
||||
void cblas_dspmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const blasint N, const double alpha, const double *Ap,
|
||||
const double *X, const blasint incX, const double beta, double *Y, const blasint incY);
|
||||
void cblas_sspmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *Ap,
|
||||
OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST float beta, float *Y, OPENBLAS_CONST blasint incY);
|
||||
void cblas_dspmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *Ap,
|
||||
OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST double beta, double *Y, OPENBLAS_CONST blasint incY);
|
||||
|
||||
void cblas_sspr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const blasint N, const float alpha, const float *X, const blasint incX, float *Ap);
|
||||
void cblas_dspr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const blasint N, const double alpha, const double *X, const blasint incX, double *Ap);
|
||||
void cblas_sspr(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX, float *Ap);
|
||||
void cblas_dspr(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX, double *Ap);
|
||||
|
||||
void cblas_chpr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const blasint N, const float alpha, const float *X, const blasint incX, float *A);
|
||||
void cblas_zhpr(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const blasint N, const double alpha, const double *X,const blasint incX, double *A);
|
||||
void cblas_chpr(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX, float *A);
|
||||
void cblas_zhpr(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *X,OPENBLAS_CONST blasint incX, double *A);
|
||||
|
||||
void cblas_sspr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const blasint N, const float alpha, const float *X, const blasint incX, const float *Y, const blasint incY, float *A);
|
||||
void cblas_dspr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const blasint N, const double alpha, const double *X, const blasint incX, const double *Y, const blasint incY, double *A);
|
||||
void cblas_chpr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const blasint N, const float *alpha, const float *X, const blasint incX, const float *Y, const blasint incY, float *Ap);
|
||||
void cblas_zhpr2(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const blasint N, const double *alpha, const double *X, const blasint incX, const double *Y, const blasint incY, double *Ap);
|
||||
void cblas_sspr2(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST float *Y, OPENBLAS_CONST blasint incY, float *A);
|
||||
void cblas_dspr2(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST double *Y, OPENBLAS_CONST blasint incY, double *A);
|
||||
void cblas_chpr2(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST float *alpha, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST float *Y, OPENBLAS_CONST blasint incY, float *Ap);
|
||||
void cblas_zhpr2(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST double *alpha, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST double *Y, OPENBLAS_CONST blasint incY, double *Ap);
|
||||
|
||||
void cblas_chbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const blasint N, const blasint K,
|
||||
const float *alpha, const float *A, const blasint lda, const float *X, const blasint incX, const float *beta, float *Y, const blasint incY);
|
||||
void cblas_zhbmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const blasint N, const blasint K,
|
||||
const double *alpha, const double *A, const blasint lda, const double *X, const blasint incX, const double *beta, double *Y, const blasint incY);
|
||||
void cblas_chbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K,
|
||||
OPENBLAS_CONST float *alpha, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST float *beta, float *Y, OPENBLAS_CONST blasint incY);
|
||||
void cblas_zhbmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K,
|
||||
OPENBLAS_CONST double *alpha, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST double *beta, double *Y, OPENBLAS_CONST blasint incY);
|
||||
|
||||
void cblas_chpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const blasint N,
|
||||
const float *alpha, const float *Ap, const float *X, const blasint incX, const float *beta, float *Y, const blasint incY);
|
||||
void cblas_zhpmv(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const blasint N,
|
||||
const double *alpha, const double *Ap, const double *X, const blasint incX, const double *beta, double *Y, const blasint incY);
|
||||
void cblas_chpmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N,
|
||||
OPENBLAS_CONST float *alpha, OPENBLAS_CONST float *Ap, OPENBLAS_CONST float *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST float *beta, float *Y, OPENBLAS_CONST blasint incY);
|
||||
void cblas_zhpmv(OPENBLAS_CONST enum CBLAS_ORDER order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint N,
|
||||
OPENBLAS_CONST double *alpha, OPENBLAS_CONST double *Ap, OPENBLAS_CONST double *X, OPENBLAS_CONST blasint incX, OPENBLAS_CONST double *beta, double *Y, OPENBLAS_CONST blasint incY);
|
||||
|
||||
void cblas_sgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_TRANSPOSE TransB, const blasint M, const blasint N, const blasint K,
|
||||
const float alpha, const float *A, const blasint lda, const float *B, const blasint ldb, const float beta, float *C, const blasint ldc);
|
||||
void cblas_dgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_TRANSPOSE TransB, const blasint M, const blasint N, const blasint K,
|
||||
const double alpha, const double *A, const blasint lda, const double *B, const blasint ldb, const double beta, double *C, const blasint ldc);
|
||||
void cblas_cgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_TRANSPOSE TransB, const blasint M, const blasint N, const blasint K,
|
||||
const float *alpha, const float *A, const blasint lda, const float *B, const blasint ldb, const float *beta, float *C, const blasint ldc);
|
||||
void cblas_zgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_TRANSPOSE TransB, const blasint M, const blasint N, const blasint K,
|
||||
const double *alpha, const double *A, const blasint lda, const double *B, const blasint ldb, const double *beta, double *C, const blasint ldc);
|
||||
void cblas_sgemm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K,
|
||||
OPENBLAS_CONST float alpha, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST float *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST float beta, float *C, OPENBLAS_CONST blasint ldc);
|
||||
void cblas_dgemm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K,
|
||||
OPENBLAS_CONST double alpha, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST double *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST double beta, double *C, OPENBLAS_CONST blasint ldc);
|
||||
void cblas_cgemm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K,
|
||||
OPENBLAS_CONST float *alpha, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST float *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST float *beta, float *C, OPENBLAS_CONST blasint ldc);
|
||||
void cblas_zgemm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransB, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K,
|
||||
OPENBLAS_CONST double *alpha, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST double *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST double *beta, double *C, OPENBLAS_CONST blasint ldc);
|
||||
|
||||
void cblas_ssymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, const enum CBLAS_UPLO Uplo, const blasint M, const blasint N,
|
||||
const float alpha, const float *A, const blasint lda, const float *B, const blasint ldb, const float beta, float *C, const blasint ldc);
|
||||
void cblas_dsymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, const enum CBLAS_UPLO Uplo, const blasint M, const blasint N,
|
||||
const double alpha, const double *A, const blasint lda, const double *B, const blasint ldb, const double beta, double *C, const blasint ldc);
|
||||
void cblas_csymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, const enum CBLAS_UPLO Uplo, const blasint M, const blasint N,
|
||||
const float *alpha, const float *A, const blasint lda, const float *B, const blasint ldb, const float *beta, float *C, const blasint ldc);
|
||||
void cblas_zsymm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, const enum CBLAS_UPLO Uplo, const blasint M, const blasint N,
|
||||
const double *alpha, const double *A, const blasint lda, const double *B, const blasint ldb, const double *beta, double *C, const blasint ldc);
|
||||
void cblas_ssymm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N,
|
||||
OPENBLAS_CONST float alpha, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST float *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST float beta, float *C, OPENBLAS_CONST blasint ldc);
|
||||
void cblas_dsymm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N,
|
||||
OPENBLAS_CONST double alpha, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST double *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST double beta, double *C, OPENBLAS_CONST blasint ldc);
|
||||
void cblas_csymm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N,
|
||||
OPENBLAS_CONST float *alpha, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST float *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST float *beta, float *C, OPENBLAS_CONST blasint ldc);
|
||||
void cblas_zsymm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N,
|
||||
OPENBLAS_CONST double *alpha, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST double *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST double *beta, double *C, OPENBLAS_CONST blasint ldc);
|
||||
|
||||
void cblas_ssyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE Trans,
|
||||
const blasint N, const blasint K, const float alpha, const float *A, const blasint lda, const float beta, float *C, const blasint ldc);
|
||||
void cblas_dsyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE Trans,
|
||||
const blasint N, const blasint K, const double alpha, const double *A, const blasint lda, const double beta, double *C, const blasint ldc);
|
||||
void cblas_csyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE Trans,
|
||||
const blasint N, const blasint K, const float *alpha, const float *A, const blasint lda, const float *beta, float *C, const blasint ldc);
|
||||
void cblas_zsyrk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE Trans,
|
||||
const blasint N, const blasint K, const double *alpha, const double *A, const blasint lda, const double *beta, double *C, const blasint ldc);
|
||||
void cblas_ssyrk(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans,
|
||||
OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST float beta, float *C, OPENBLAS_CONST blasint ldc);
|
||||
void cblas_dsyrk(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans,
|
||||
OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST double beta, double *C, OPENBLAS_CONST blasint ldc);
|
||||
void cblas_csyrk(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans,
|
||||
OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST float *alpha, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST float *beta, float *C, OPENBLAS_CONST blasint ldc);
|
||||
void cblas_zsyrk(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans,
|
||||
OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST double *alpha, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST double *beta, double *C, OPENBLAS_CONST blasint ldc);
|
||||
|
||||
void cblas_ssyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE Trans,
|
||||
const blasint N, const blasint K, const float alpha, const float *A, const blasint lda, const float *B, const blasint ldb, const float beta, float *C, const blasint ldc);
|
||||
void cblas_dsyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE Trans,
|
||||
const blasint N, const blasint K, const double alpha, const double *A, const blasint lda, const double *B, const blasint ldb, const double beta, double *C, const blasint ldc);
|
||||
void cblas_csyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE Trans,
|
||||
const blasint N, const blasint K, const float *alpha, const float *A, const blasint lda, const float *B, const blasint ldb, const float *beta, float *C, const blasint ldc);
|
||||
void cblas_zsyr2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE Trans,
|
||||
const blasint N, const blasint K, const double *alpha, const double *A, const blasint lda, const double *B, const blasint ldb, const double *beta, double *C, const blasint ldc);
|
||||
void cblas_ssyr2k(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans,
|
||||
OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST float *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST float beta, float *C, OPENBLAS_CONST blasint ldc);
|
||||
void cblas_dsyr2k(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans,
|
||||
OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST double *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST double beta, double *C, OPENBLAS_CONST blasint ldc);
|
||||
void cblas_csyr2k(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans,
|
||||
OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST float *alpha, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST float *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST float *beta, float *C, OPENBLAS_CONST blasint ldc);
|
||||
void cblas_zsyr2k(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans,
|
||||
OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K, OPENBLAS_CONST double *alpha, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST double *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST double *beta, double *C, OPENBLAS_CONST blasint ldc);
|
||||
|
||||
void cblas_strmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
|
||||
const enum CBLAS_DIAG Diag, const blasint M, const blasint N, const float alpha, const float *A, const blasint lda, float *B, const blasint ldb);
|
||||
void cblas_dtrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
|
||||
const enum CBLAS_DIAG Diag, const blasint M, const blasint N, const double alpha, const double *A, const blasint lda, double *B, const blasint ldb);
|
||||
void cblas_ctrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
|
||||
const enum CBLAS_DIAG Diag, const blasint M, const blasint N, const float *alpha, const float *A, const blasint lda, float *B, const blasint ldb);
|
||||
void cblas_ztrmm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
|
||||
const enum CBLAS_DIAG Diag, const blasint M, const blasint N, const double *alpha, const double *A, const blasint lda, double *B, const blasint ldb);
|
||||
void cblas_strmm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA,
|
||||
OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, float *B, OPENBLAS_CONST blasint ldb);
|
||||
void cblas_dtrmm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA,
|
||||
OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, double *B, OPENBLAS_CONST blasint ldb);
|
||||
void cblas_ctrmm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA,
|
||||
OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST float *alpha, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, float *B, OPENBLAS_CONST blasint ldb);
|
||||
void cblas_ztrmm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA,
|
||||
OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST double *alpha, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, double *B, OPENBLAS_CONST blasint ldb);
|
||||
|
||||
void cblas_strsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
|
||||
const enum CBLAS_DIAG Diag, const blasint M, const blasint N, const float alpha, const float *A, const blasint lda, float *B, const blasint ldb);
|
||||
void cblas_dtrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
|
||||
const enum CBLAS_DIAG Diag, const blasint M, const blasint N, const double alpha, const double *A, const blasint lda, double *B, const blasint ldb);
|
||||
void cblas_ctrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
|
||||
const enum CBLAS_DIAG Diag, const blasint M, const blasint N, const float *alpha, const float *A, const blasint lda, float *B, const blasint ldb);
|
||||
void cblas_ztrsm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
|
||||
const enum CBLAS_DIAG Diag, const blasint M, const blasint N, const double *alpha, const double *A, const blasint lda, double *B, const blasint ldb);
|
||||
void cblas_strsm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA,
|
||||
OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, float *B, OPENBLAS_CONST blasint ldb);
|
||||
void cblas_dtrsm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA,
|
||||
OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, double *B, OPENBLAS_CONST blasint ldb);
|
||||
void cblas_ctrsm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA,
|
||||
OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST float *alpha, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, float *B, OPENBLAS_CONST blasint ldb);
|
||||
void cblas_ztrsm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE TransA,
|
||||
OPENBLAS_CONST enum CBLAS_DIAG Diag, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N, OPENBLAS_CONST double *alpha, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, double *B, OPENBLAS_CONST blasint ldb);
|
||||
|
||||
void cblas_chemm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, const enum CBLAS_UPLO Uplo, const blasint M, const blasint N,
|
||||
const float *alpha, const float *A, const blasint lda, const float *B, const blasint ldb, const float *beta, float *C, const blasint ldc);
|
||||
void cblas_zhemm(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side, const enum CBLAS_UPLO Uplo, const blasint M, const blasint N,
|
||||
const double *alpha, const double *A, const blasint lda, const double *B, const blasint ldb, const double *beta, double *C, const blasint ldc);
|
||||
void cblas_chemm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N,
|
||||
OPENBLAS_CONST float *alpha, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST float *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST float *beta, float *C, OPENBLAS_CONST blasint ldc);
|
||||
void cblas_zhemm(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_SIDE Side, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST blasint M, OPENBLAS_CONST blasint N,
|
||||
OPENBLAS_CONST double *alpha, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST double *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST double *beta, double *C, OPENBLAS_CONST blasint ldc);
|
||||
|
||||
void cblas_cherk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE Trans, const blasint N, const blasint K,
|
||||
const float alpha, const float *A, const blasint lda, const float beta, float *C, const blasint ldc);
|
||||
void cblas_zherk(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE Trans, const blasint N, const blasint K,
|
||||
const double alpha, const double *A, const blasint lda, const double beta, double *C, const blasint ldc);
|
||||
void cblas_cherk(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K,
|
||||
OPENBLAS_CONST float alpha, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST float beta, float *C, OPENBLAS_CONST blasint ldc);
|
||||
void cblas_zherk(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K,
|
||||
OPENBLAS_CONST double alpha, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST double beta, double *C, OPENBLAS_CONST blasint ldc);
|
||||
|
||||
void cblas_cher2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE Trans, const blasint N, const blasint K,
|
||||
const float *alpha, const float *A, const blasint lda, const float *B, const blasint ldb, const float beta, float *C, const blasint ldc);
|
||||
void cblas_zher2k(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE Trans, const blasint N, const blasint K,
|
||||
const double *alpha, const double *A, const blasint lda, const double *B, const blasint ldb, const double beta, double *C, const blasint ldc);
|
||||
void cblas_cher2k(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K,
|
||||
OPENBLAS_CONST float *alpha, OPENBLAS_CONST float *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST float *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST float beta, float *C, OPENBLAS_CONST blasint ldc);
|
||||
void cblas_zher2k(OPENBLAS_CONST enum CBLAS_ORDER Order, OPENBLAS_CONST enum CBLAS_UPLO Uplo, OPENBLAS_CONST enum CBLAS_TRANSPOSE Trans, OPENBLAS_CONST blasint N, OPENBLAS_CONST blasint K,
|
||||
OPENBLAS_CONST double *alpha, OPENBLAS_CONST double *A, OPENBLAS_CONST blasint lda, OPENBLAS_CONST double *B, OPENBLAS_CONST blasint ldb, OPENBLAS_CONST double beta, double *C, OPENBLAS_CONST blasint ldc);
|
||||
|
||||
void cblas_xerbla(blasint p, char *rout, char *form, ...);
|
||||
|
||||
/*** BLAS extensions ***/
|
||||
|
||||
void cblas_saxpby(OPENBLAS_CONST blasint n, OPENBLAS_CONST float alpha, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx,OPENBLAS_CONST float beta, float *y, OPENBLAS_CONST blasint incy);
|
||||
|
||||
void cblas_daxpby(OPENBLAS_CONST blasint n, OPENBLAS_CONST double alpha, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx,OPENBLAS_CONST double beta, double *y, OPENBLAS_CONST blasint incy);
|
||||
|
||||
void cblas_caxpby(OPENBLAS_CONST blasint n, OPENBLAS_CONST float *alpha, OPENBLAS_CONST float *x, OPENBLAS_CONST blasint incx,OPENBLAS_CONST float *beta, float *y, OPENBLAS_CONST blasint incy);
|
||||
|
||||
void cblas_zaxpby(OPENBLAS_CONST blasint n, OPENBLAS_CONST double *alpha, OPENBLAS_CONST double *x, OPENBLAS_CONST blasint incx,OPENBLAS_CONST double *beta, double *y, OPENBLAS_CONST blasint incy);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
||||
+314
@@ -0,0 +1,314 @@
|
||||
#ifndef CBLAS_H
|
||||
#define CBLAS_H
|
||||
|
||||
#include <stddef.h>
|
||||
#include "common.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
/* Assume C declarations for C++ */
|
||||
#endif /* __cplusplus */
|
||||
|
||||
/*Set the number of threads on runtime.*/
|
||||
void openblas_set_num_threads(int num_threads);
|
||||
void goto_set_num_threads(int num_threads);
|
||||
|
||||
/*Get the build configure on runtime.*/
|
||||
char* openblas_get_config(void);
|
||||
|
||||
/* Get the parallelization type which is used by OpenBLAS */
|
||||
int openblas_get_parallel(void);
|
||||
/* OpenBLAS is compiled for sequential use */
|
||||
#define OPENBLAS_SEQUENTIAL 0
|
||||
/* OpenBLAS is compiled using normal threading model */
|
||||
#define OPENBLAS_THREAD 1
|
||||
/* OpenBLAS is compiled using OpenMP threading model */
|
||||
#define OPENBLAS_OPENMP 2
|
||||
|
||||
|
||||
#define CBLAS_INDEX size_t
|
||||
|
||||
typedef enum CBLAS_ORDER {CblasRowMajor=101, CblasColMajor=102} CBLAS_ORDER;
|
||||
typedef enum CBLAS_TRANSPOSE {CblasNoTrans=111, CblasTrans=112, CblasConjTrans=113, CblasConjNoTrans=114} CBLAS_TRANSPOSE;
|
||||
typedef enum CBLAS_UPLO {CblasUpper=121, CblasLower=122} CBLAS_UPLO;
|
||||
typedef enum CBLAS_DIAG {CblasNonUnit=131, CblasUnit=132} CBLAS_DIAG;
|
||||
typedef enum CBLAS_SIDE {CblasLeft=141, CblasRight=142} CBLAS_SIDE;
|
||||
|
||||
float cblas_sdsdot(blasint n, float alpha, float *x, blasint incx, float *y, blasint incy);
|
||||
double cblas_dsdot (blasint n, float *x, blasint incx, float *y, blasint incy);
|
||||
float cblas_sdot(blasint n, float *x, blasint incx, float *y, blasint incy);
|
||||
double cblas_ddot(blasint n, double *x, blasint incx, double *y, blasint incy);
|
||||
|
||||
openblas_complex_float cblas_cdotu(blasint n, float *x, blasint incx, float *y, blasint incy);
|
||||
openblas_complex_float cblas_cdotc(blasint n, float *x, blasint incx, float *y, blasint incy);
|
||||
openblas_complex_double cblas_zdotu(blasint n, double *x, blasint incx, double *y, blasint incy);
|
||||
openblas_complex_double cblas_zdotc(blasint n, double *x, blasint incx, double *y, blasint incy);
|
||||
|
||||
void cblas_cdotu_sub(blasint n, float *x, blasint incx, float *y, blasint incy, openblas_complex_float *ret);
|
||||
void cblas_cdotc_sub(blasint n, float *x, blasint incx, float *y, blasint incy, openblas_complex_float *ret);
|
||||
void cblas_zdotu_sub(blasint n, double *x, blasint incx, double *y, blasint incy, openblas_complex_double *ret);
|
||||
void cblas_zdotc_sub(blasint n, double *x, blasint incx, double *y, blasint incy, openblas_complex_double *ret);
|
||||
|
||||
float cblas_sasum (blasint n, float *x, blasint incx);
|
||||
double cblas_dasum (blasint n, double *x, blasint incx);
|
||||
float cblas_scasum(blasint n, float *x, blasint incx);
|
||||
double cblas_dzasum(blasint n, double *x, blasint incx);
|
||||
|
||||
float cblas_snrm2 (blasint N, float *X, blasint incX);
|
||||
double cblas_dnrm2 (blasint N, double *X, blasint incX);
|
||||
float cblas_scnrm2(blasint N, float *X, blasint incX);
|
||||
double cblas_dznrm2(blasint N, double *X, blasint incX);
|
||||
|
||||
CBLAS_INDEX cblas_isamax(blasint n, float *x, blasint incx);
|
||||
CBLAS_INDEX cblas_idamax(blasint n, double *x, blasint incx);
|
||||
CBLAS_INDEX cblas_icamax(blasint n, float *x, blasint incx);
|
||||
CBLAS_INDEX cblas_izamax(blasint n, double *x, blasint incx);
|
||||
|
||||
void cblas_saxpy(blasint n, float alpha, float *x, blasint incx, float *y, blasint incy);
|
||||
void cblas_daxpy(blasint n, double alpha, double *x, blasint incx, double *y, blasint incy);
|
||||
void cblas_caxpy(blasint n, float *alpha, float *x, blasint incx, float *y, blasint incy);
|
||||
void cblas_zaxpy(blasint n, double *alpha, double *x, blasint incx, double *y, blasint incy);
|
||||
|
||||
void cblas_scopy(blasint n, float *x, blasint incx, float *y, blasint incy);
|
||||
void cblas_dcopy(blasint n, double *x, blasint incx, double *y, blasint incy);
|
||||
void cblas_ccopy(blasint n, float *x, blasint incx, float *y, blasint incy);
|
||||
void cblas_zcopy(blasint n, double *x, blasint incx, double *y, blasint incy);
|
||||
|
||||
void cblas_sswap(blasint n, float *x, blasint incx, float *y, blasint incy);
|
||||
void cblas_dswap(blasint n, double *x, blasint incx, double *y, blasint incy);
|
||||
void cblas_cswap(blasint n, float *x, blasint incx, float *y, blasint incy);
|
||||
void cblas_zswap(blasint n, double *x, blasint incx, double *y, blasint incy);
|
||||
|
||||
void cblas_srot(blasint N, float *X, blasint incX, float *Y, blasint incY, float c, float s);
|
||||
void cblas_drot(blasint N, double *X, blasint incX, double *Y, blasint incY, double c, double s);
|
||||
|
||||
void cblas_srotg(float *a, float *b, float *c, float *s);
|
||||
void cblas_drotg(double *a, double *b, double *c, double *s);
|
||||
|
||||
void cblas_srotm(blasint N, float *X, blasint incX, float *Y, blasint incY, float *P);
|
||||
void cblas_drotm(blasint N, double *X, blasint incX, double *Y, blasint incY, double *P);
|
||||
|
||||
void cblas_srotmg(float *d1, float *d2, float *b1, float b2, float *P);
|
||||
void cblas_drotmg(double *d1, double *d2, double *b1, double b2, double *P);
|
||||
|
||||
void cblas_sscal(blasint N, float alpha, float *X, blasint incX);
|
||||
void cblas_dscal(blasint N, double alpha, double *X, blasint incX);
|
||||
void cblas_cscal(blasint N, float *alpha, float *X, blasint incX);
|
||||
void cblas_zscal(blasint N, double *alpha, double *X, blasint incX);
|
||||
void cblas_csscal(blasint N, float alpha, float *X, blasint incX);
|
||||
void cblas_zdscal(blasint N, double alpha, double *X, blasint incX);
|
||||
|
||||
void cblas_sgemv(enum CBLAS_ORDER order, enum CBLAS_TRANSPOSE trans, blasint m, blasint n,
|
||||
float alpha, float *a, blasint lda, float *x, blasint incx, float beta, float *y, blasint incy);
|
||||
void cblas_dgemv(enum CBLAS_ORDER order, enum CBLAS_TRANSPOSE trans, blasint m, blasint n,
|
||||
double alpha, double *a, blasint lda, double *x, blasint incx, double beta, double *y, blasint incy);
|
||||
void cblas_cgemv(enum CBLAS_ORDER order, enum CBLAS_TRANSPOSE trans, blasint m, blasint n,
|
||||
float *alpha, float *a, blasint lda, float *x, blasint incx, float *beta, float *y, blasint incy);
|
||||
void cblas_zgemv(enum CBLAS_ORDER order, enum CBLAS_TRANSPOSE trans, blasint m, blasint n,
|
||||
double *alpha, double *a, blasint lda, double *x, blasint incx, double *beta, double *y, blasint incy);
|
||||
|
||||
void cblas_sger (enum CBLAS_ORDER order, blasint M, blasint N, float alpha, float *X, blasint incX, float *Y, blasint incY, float *A, blasint lda);
|
||||
void cblas_dger (enum CBLAS_ORDER order, blasint M, blasint N, double alpha, double *X, blasint incX, double *Y, blasint incY, double *A, blasint lda);
|
||||
void cblas_cgeru(enum CBLAS_ORDER order, blasint M, blasint N, float *alpha, float *X, blasint incX, float *Y, blasint incY, float *A, blasint lda);
|
||||
void cblas_cgerc(enum CBLAS_ORDER order, blasint M, blasint N, float *alpha, float *X, blasint incX, float *Y, blasint incY, float *A, blasint lda);
|
||||
void cblas_zgeru(enum CBLAS_ORDER order, blasint M, blasint N, double *alpha, double *X, blasint incX, double *Y, blasint incY, double *A, blasint lda);
|
||||
void cblas_zgerc(enum CBLAS_ORDER order, blasint M, blasint N, double *alpha, double *X, blasint incX, double *Y, blasint incY, double *A, blasint lda);
|
||||
|
||||
void cblas_strsv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag, blasint N, float *A, blasint lda, float *X, blasint incX);
|
||||
void cblas_dtrsv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag, blasint N, double *A, blasint lda, double *X, blasint incX);
|
||||
void cblas_ctrsv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag, blasint N, float *A, blasint lda, float *X, blasint incX);
|
||||
void cblas_ztrsv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag, blasint N, double *A, blasint lda, double *X, blasint incX);
|
||||
|
||||
void cblas_strmv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag, blasint N, float *A, blasint lda, float *X, blasint incX);
|
||||
void cblas_dtrmv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag, blasint N, double *A, blasint lda, double *X, blasint incX);
|
||||
void cblas_ctrmv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag, blasint N, float *A, blasint lda, float *X, blasint incX);
|
||||
void cblas_ztrmv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag, blasint N, double *A, blasint lda, double *X, blasint incX);
|
||||
|
||||
void cblas_ssyr(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, float alpha, float *X, blasint incX, float *A, blasint lda);
|
||||
void cblas_dsyr(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, double alpha, double *X, blasint incX, double *A, blasint lda);
|
||||
void cblas_cher(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, float alpha, float *X, blasint incX, float *A, blasint lda);
|
||||
void cblas_zher(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, double alpha, double *X, blasint incX, double *A, blasint lda);
|
||||
|
||||
void cblas_ssyr2(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo,blasint N, float alpha, float *X,
|
||||
blasint incX, float *Y, blasint incY, float *A, blasint lda);
|
||||
void cblas_dsyr2(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, double alpha, double *X,
|
||||
blasint incX, double *Y, blasint incY, double *A, blasint lda);
|
||||
void cblas_cher2(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, float *alpha, float *X, blasint incX,
|
||||
float *Y, blasint incY, float *A, blasint lda);
|
||||
void cblas_zher2(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, double *alpha, double *X, blasint incX,
|
||||
double *Y, blasint incY, double *A, blasint lda);
|
||||
|
||||
void cblas_sgbmv(enum CBLAS_ORDER order, enum CBLAS_TRANSPOSE TransA, blasint M, blasint N,
|
||||
blasint KL, blasint KU, float alpha, float *A, blasint lda, float *X, blasint incX, float beta, float *Y, blasint incY);
|
||||
void cblas_dgbmv(enum CBLAS_ORDER order, enum CBLAS_TRANSPOSE TransA, blasint M, blasint N,
|
||||
blasint KL, blasint KU, double alpha, double *A, blasint lda, double *X, blasint incX, double beta, double *Y, blasint incY);
|
||||
void cblas_cgbmv(enum CBLAS_ORDER order, enum CBLAS_TRANSPOSE TransA, blasint M, blasint N,
|
||||
blasint KL, blasint KU, float *alpha, float *A, blasint lda, float *X, blasint incX, float *beta, float *Y, blasint incY);
|
||||
void cblas_zgbmv(enum CBLAS_ORDER order, enum CBLAS_TRANSPOSE TransA, blasint M, blasint N,
|
||||
blasint KL, blasint KU, double *alpha, double *A, blasint lda, double *X, blasint incX, double *beta, double *Y, blasint incY);
|
||||
|
||||
void cblas_ssbmv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, blasint K, float alpha, float *A,
|
||||
blasint lda, float *X, blasint incX, float beta, float *Y, blasint incY);
|
||||
void cblas_dsbmv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, blasint K, double alpha, double *A,
|
||||
blasint lda, double *X, blasint incX, double beta, double *Y, blasint incY);
|
||||
|
||||
|
||||
void cblas_stbmv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag,
|
||||
blasint N, blasint K, float *A, blasint lda, float *X, blasint incX);
|
||||
void cblas_dtbmv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag,
|
||||
blasint N, blasint K, double *A, blasint lda, double *X, blasint incX);
|
||||
void cblas_ctbmv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag,
|
||||
blasint N, blasint K, float *A, blasint lda, float *X, blasint incX);
|
||||
void cblas_ztbmv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag,
|
||||
blasint N, blasint K, double *A, blasint lda, double *X, blasint incX);
|
||||
|
||||
void cblas_stbsv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag,
|
||||
blasint N, blasint K, float *A, blasint lda, float *X, blasint incX);
|
||||
void cblas_dtbsv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag,
|
||||
blasint N, blasint K, double *A, blasint lda, double *X, blasint incX);
|
||||
void cblas_ctbsv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag,
|
||||
blasint N, blasint K, float *A, blasint lda, float *X, blasint incX);
|
||||
void cblas_ztbsv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag,
|
||||
blasint N, blasint K, double *A, blasint lda, double *X, blasint incX);
|
||||
|
||||
void cblas_stpmv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag,
|
||||
blasint N, float *Ap, float *X, blasint incX);
|
||||
void cblas_dtpmv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag,
|
||||
blasint N, double *Ap, double *X, blasint incX);
|
||||
void cblas_ctpmv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag,
|
||||
blasint N, float *Ap, float *X, blasint incX);
|
||||
void cblas_ztpmv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag,
|
||||
blasint N, double *Ap, double *X, blasint incX);
|
||||
|
||||
void cblas_stpsv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag,
|
||||
blasint N, float *Ap, float *X, blasint incX);
|
||||
void cblas_dtpsv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag,
|
||||
blasint N, double *Ap, double *X, blasint incX);
|
||||
void cblas_ctpsv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag,
|
||||
blasint N, float *Ap, float *X, blasint incX);
|
||||
void cblas_ztpsv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE TransA, enum CBLAS_DIAG Diag,
|
||||
blasint N, double *Ap, double *X, blasint incX);
|
||||
|
||||
void cblas_ssymv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, float alpha, float *A,
|
||||
blasint lda, float *X, blasint incX, float beta, float *Y, blasint incY);
|
||||
void cblas_dsymv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, double alpha, double *A,
|
||||
blasint lda, double *X, blasint incX, double beta, double *Y, blasint incY);
|
||||
void cblas_chemv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, float *alpha, float *A,
|
||||
blasint lda, float *X, blasint incX, float *beta, float *Y, blasint incY);
|
||||
void cblas_zhemv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, double *alpha, double *A,
|
||||
blasint lda, double *X, blasint incX, double *beta, double *Y, blasint incY);
|
||||
|
||||
|
||||
void cblas_sspmv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, float alpha, float *Ap,
|
||||
float *X, blasint incX, float beta, float *Y, blasint incY);
|
||||
void cblas_dspmv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, double alpha, double *Ap,
|
||||
double *X, blasint incX, double beta, double *Y, blasint incY);
|
||||
|
||||
void cblas_sspr(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, float alpha, float *X, blasint incX, float *Ap);
|
||||
void cblas_dspr(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, double alpha, double *X, blasint incX, double *Ap);
|
||||
|
||||
void cblas_chpr(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, float alpha, float *X, blasint incX, float *A);
|
||||
void cblas_zhpr(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, double alpha, double *X,blasint incX, double *A);
|
||||
|
||||
void cblas_sspr2(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, float alpha, float *X, blasint incX, float *Y, blasint incY, float *A);
|
||||
void cblas_dspr2(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, double alpha, double *X, blasint incX, double *Y, blasint incY, double *A);
|
||||
void cblas_chpr2(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, float *alpha, float *X, blasint incX, float *Y, blasint incY, float *Ap);
|
||||
void cblas_zhpr2(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, double *alpha, double *X, blasint incX, double *Y, blasint incY, double *Ap);
|
||||
|
||||
void cblas_chbmv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, blasint K,
|
||||
float *alpha, float *A, blasint lda, float *X, blasint incX, float *beta, float *Y, blasint incY);
|
||||
void cblas_zhbmv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N, blasint K,
|
||||
double *alpha, double *A, blasint lda, double *X, blasint incX, double *beta, double *Y, blasint incY);
|
||||
|
||||
void cblas_chpmv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N,
|
||||
float *alpha, float *Ap, float *X, blasint incX, float *beta, float *Y, blasint incY);
|
||||
void cblas_zhpmv(enum CBLAS_ORDER order, enum CBLAS_UPLO Uplo, blasint N,
|
||||
double *alpha, double *Ap, double *X, blasint incX, double *beta, double *Y, blasint incY);
|
||||
|
||||
void cblas_sgemm(enum CBLAS_ORDER Order, enum CBLAS_TRANSPOSE TransA, enum CBLAS_TRANSPOSE TransB, blasint M, blasint N, blasint K,
|
||||
float alpha, float *A, blasint lda, float *B, blasint ldb, float beta, float *C, blasint ldc);
|
||||
void cblas_dgemm(enum CBLAS_ORDER Order, enum CBLAS_TRANSPOSE TransA, enum CBLAS_TRANSPOSE TransB, blasint M, blasint N, blasint K,
|
||||
double alpha, double *A, blasint lda, double *B, blasint ldb, double beta, double *C, blasint ldc);
|
||||
void cblas_cgemm(enum CBLAS_ORDER Order, enum CBLAS_TRANSPOSE TransA, enum CBLAS_TRANSPOSE TransB, blasint M, blasint N, blasint K,
|
||||
float *alpha, float *A, blasint lda, float *B, blasint ldb, float *beta, float *C, blasint ldc);
|
||||
void cblas_zgemm(enum CBLAS_ORDER Order, enum CBLAS_TRANSPOSE TransA, enum CBLAS_TRANSPOSE TransB, blasint M, blasint N, blasint K,
|
||||
double *alpha, double *A, blasint lda, double *B, blasint ldb, double *beta, double *C, blasint ldc);
|
||||
|
||||
void cblas_ssymm(enum CBLAS_ORDER Order, enum CBLAS_SIDE Side, enum CBLAS_UPLO Uplo, blasint M, blasint N,
|
||||
float alpha, float *A, blasint lda, float *B, blasint ldb, float beta, float *C, blasint ldc);
|
||||
void cblas_dsymm(enum CBLAS_ORDER Order, enum CBLAS_SIDE Side, enum CBLAS_UPLO Uplo, blasint M, blasint N,
|
||||
double alpha, double *A, blasint lda, double *B, blasint ldb, double beta, double *C, blasint ldc);
|
||||
void cblas_csymm(enum CBLAS_ORDER Order, enum CBLAS_SIDE Side, enum CBLAS_UPLO Uplo, blasint M, blasint N,
|
||||
float *alpha, float *A, blasint lda, float *B, blasint ldb, float *beta, float *C, blasint ldc);
|
||||
void cblas_zsymm(enum CBLAS_ORDER Order, enum CBLAS_SIDE Side, enum CBLAS_UPLO Uplo, blasint M, blasint N,
|
||||
double *alpha, double *A, blasint lda, double *B, blasint ldb, double *beta, double *C, blasint ldc);
|
||||
|
||||
void cblas_ssyrk(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE Trans,
|
||||
blasint N, blasint K, float alpha, float *A, blasint lda, float beta, float *C, blasint ldc);
|
||||
void cblas_dsyrk(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE Trans,
|
||||
blasint N, blasint K, double alpha, double *A, blasint lda, double beta, double *C, blasint ldc);
|
||||
void cblas_csyrk(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE Trans,
|
||||
blasint N, blasint K, float *alpha, float *A, blasint lda, float *beta, float *C, blasint ldc);
|
||||
void cblas_zsyrk(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE Trans,
|
||||
blasint N, blasint K, double *alpha, double *A, blasint lda, double *beta, double *C, blasint ldc);
|
||||
|
||||
void cblas_ssyr2k(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE Trans,
|
||||
blasint N, blasint K, float alpha, float *A, blasint lda, float *B, blasint ldb, float beta, float *C, blasint ldc);
|
||||
void cblas_dsyr2k(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE Trans,
|
||||
blasint N, blasint K, double alpha, double *A, blasint lda, double *B, blasint ldb, double beta, double *C, blasint ldc);
|
||||
void cblas_csyr2k(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE Trans,
|
||||
blasint N, blasint K, float *alpha, float *A, blasint lda, float *B, blasint ldb, float *beta, float *C, blasint ldc);
|
||||
void cblas_zsyr2k(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE Trans,
|
||||
blasint N, blasint K, double *alpha, double *A, blasint lda, double *B, blasint ldb, double *beta, double *C, blasint ldc);
|
||||
|
||||
void cblas_strmm(enum CBLAS_ORDER Order, enum CBLAS_SIDE Side, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE TransA,
|
||||
enum CBLAS_DIAG Diag, blasint M, blasint N, float alpha, float *A, blasint lda, float *B, blasint ldb);
|
||||
void cblas_dtrmm(enum CBLAS_ORDER Order, enum CBLAS_SIDE Side, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE TransA,
|
||||
enum CBLAS_DIAG Diag, blasint M, blasint N, double alpha, double *A, blasint lda, double *B, blasint ldb);
|
||||
void cblas_ctrmm(enum CBLAS_ORDER Order, enum CBLAS_SIDE Side, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE TransA,
|
||||
enum CBLAS_DIAG Diag, blasint M, blasint N, float *alpha, float *A, blasint lda, float *B, blasint ldb);
|
||||
void cblas_ztrmm(enum CBLAS_ORDER Order, enum CBLAS_SIDE Side, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE TransA,
|
||||
enum CBLAS_DIAG Diag, blasint M, blasint N, double *alpha, double *A, blasint lda, double *B, blasint ldb);
|
||||
|
||||
void cblas_strsm(enum CBLAS_ORDER Order, enum CBLAS_SIDE Side, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE TransA,
|
||||
enum CBLAS_DIAG Diag, blasint M, blasint N, float alpha, float *A, blasint lda, float *B, blasint ldb);
|
||||
void cblas_dtrsm(enum CBLAS_ORDER Order, enum CBLAS_SIDE Side, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE TransA,
|
||||
enum CBLAS_DIAG Diag, blasint M, blasint N, double alpha, double *A, blasint lda, double *B, blasint ldb);
|
||||
void cblas_ctrsm(enum CBLAS_ORDER Order, enum CBLAS_SIDE Side, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE TransA,
|
||||
enum CBLAS_DIAG Diag, blasint M, blasint N, float *alpha, float *A, blasint lda, float *B, blasint ldb);
|
||||
void cblas_ztrsm(enum CBLAS_ORDER Order, enum CBLAS_SIDE Side, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE TransA,
|
||||
enum CBLAS_DIAG Diag, blasint M, blasint N, double *alpha, double *A, blasint lda, double *B, blasint ldb);
|
||||
|
||||
void cblas_chemm(enum CBLAS_ORDER Order, enum CBLAS_SIDE Side, enum CBLAS_UPLO Uplo, blasint M, blasint N,
|
||||
float *alpha, float *A, blasint lda, float *B, blasint ldb, float *beta, float *C, blasint ldc);
|
||||
void cblas_zhemm(enum CBLAS_ORDER Order, enum CBLAS_SIDE Side, enum CBLAS_UPLO Uplo, blasint M, blasint N,
|
||||
double *alpha, double *A, blasint lda, double *B, blasint ldb, double *beta, double *C, blasint ldc);
|
||||
|
||||
void cblas_cherk(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE Trans, blasint N, blasint K,
|
||||
float alpha, float *A, blasint lda, float beta, float *C, blasint ldc);
|
||||
void cblas_zherk(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE Trans, blasint N, blasint K,
|
||||
double alpha, double *A, blasint lda, double beta, double *C, blasint ldc);
|
||||
|
||||
void cblas_cher2k(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE Trans, blasint N, blasint K,
|
||||
float *alpha, float *A, blasint lda, float *B, blasint ldb, float beta, float *C, blasint ldc);
|
||||
void cblas_zher2k(enum CBLAS_ORDER Order, enum CBLAS_UPLO Uplo, enum CBLAS_TRANSPOSE Trans, blasint N, blasint K,
|
||||
double *alpha, double *A, blasint lda, double *B, blasint ldb, double beta, double *C, blasint ldc);
|
||||
|
||||
void cblas_xerbla(blasint p, char *rout, char *form, ...);
|
||||
|
||||
/*** BLAS extensions ***/
|
||||
|
||||
void cblas_saxpby(blasint n, float alpha, float *x, blasint incx,float beta, float *y, blasint incy);
|
||||
|
||||
void cblas_daxpby(blasint n, double alpha, double *x, blasint incx,double beta, double *y, blasint incy);
|
||||
|
||||
void cblas_caxpby(blasint n, float *alpha, float *x, blasint incx,float *beta, float *y, blasint incy);
|
||||
|
||||
void cblas_zaxpby(blasint n, double *alpha, double *x, blasint incx,double *beta, double *y, blasint incy);
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#endif
|
||||
@@ -310,6 +310,23 @@ typedef int blasint;
|
||||
#define YIELDING SwitchToThread()
|
||||
#endif
|
||||
|
||||
#if defined(ARMV7) || defined(ARMV6) || defined(ARMV8) || defined(ARMV5)
|
||||
#define YIELDING asm volatile ("nop;nop;nop;nop;nop;nop;nop;nop; \n");
|
||||
#endif
|
||||
|
||||
#ifdef BULLDOZER
|
||||
#ifndef YIELDING
|
||||
#define YIELDING __asm__ __volatile__ ("nop;nop;nop;nop;nop;nop;nop;nop;\n");
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef PILEDRIVER
|
||||
#ifndef YIELDING
|
||||
#define YIELDING __asm__ __volatile__ ("nop;nop;nop;nop;nop;nop;nop;nop;\n");
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifndef YIELDING
|
||||
#define YIELDING sched_yield()
|
||||
#endif
|
||||
@@ -363,6 +380,24 @@ please https://github.com/xianyi/OpenBLAS/issues/246
|
||||
#include "common_mips64.h"
|
||||
#endif
|
||||
|
||||
#ifdef ARCH_ARM
|
||||
#include "common_arm.h"
|
||||
#endif
|
||||
|
||||
#ifdef ARCH_ARM64
|
||||
#include "common_arm64.h"
|
||||
#endif
|
||||
|
||||
#ifndef ASSEMBLER
|
||||
#ifdef OS_WINDOWS
|
||||
typedef char env_var_t[MAX_PATH];
|
||||
#define readenv(p, n) GetEnvironmentVariable((n), (p), sizeof(p))
|
||||
#else
|
||||
typedef char* env_var_t;
|
||||
#define readenv(p, n) ((p)=getenv(n))
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#ifdef OS_LINUX
|
||||
#include "common_linux.h"
|
||||
#endif
|
||||
@@ -489,13 +524,9 @@ static __inline void blas_unlock(volatile BLASULONG *address){
|
||||
*address = 0;
|
||||
}
|
||||
|
||||
static __inline int readenv(char *env) {
|
||||
|
||||
char *p;
|
||||
|
||||
p = getenv(env);
|
||||
|
||||
if (p == NULL) return 0; else return atoi(p);
|
||||
static __inline int readenv_atoi(char *env) {
|
||||
env_var_t p;
|
||||
return readenv(p,env) ? 0 : atoi(p);
|
||||
}
|
||||
|
||||
|
||||
@@ -505,7 +536,7 @@ static __inline void compinv(FLOAT *b, FLOAT ar, FLOAT ai){
|
||||
|
||||
#ifndef UNIT
|
||||
FLOAT ratio, den;
|
||||
|
||||
|
||||
if (
|
||||
#ifdef XDOUBLE
|
||||
(fabsl(ar)) >= (fabsl(ai))
|
||||
@@ -531,7 +562,7 @@ static __inline void compinv(FLOAT *b, FLOAT ar, FLOAT ai){
|
||||
b[0] = ONE;
|
||||
b[1] = ZERO;
|
||||
#endif
|
||||
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -574,9 +605,10 @@ typedef struct {
|
||||
#include "common_level2.h"
|
||||
#include "common_level3.h"
|
||||
#include "common_lapack.h"
|
||||
|
||||
#ifdef CBLAS
|
||||
/* This header file is generated from "cblas.h" (see Makefile.prebuild). */
|
||||
#include "cblas_noconst.h"
|
||||
# define OPENBLAS_CONST /* see comment in cblas.h */
|
||||
# include "cblas.h"
|
||||
#endif
|
||||
|
||||
#ifndef ASSEMBLER
|
||||
@@ -660,13 +692,13 @@ extern int gotoblas_profile;
|
||||
#define PRINT_DEBUG_CNAME
|
||||
#define PRINT_DEBUG_NAME
|
||||
#else
|
||||
#define PRINT_DEBUG_CNAME if (readenv("GOTO_DEBUG")) fprintf(stderr, "GotoBLAS : %s\n", CHAR_CNAME)
|
||||
#define PRINT_DEBUG_NAME if (readenv("GOTO_DEBUG")) fprintf(stderr, "GotoBLAS : %s\n", CHAR_NAME)
|
||||
#define PRINT_DEBUG_CNAME if (readenv_atoi("GOTO_DEBUG")) fprintf(stderr, "GotoBLAS : %s\n", CHAR_CNAME)
|
||||
#define PRINT_DEBUG_NAME if (readenv_atoi("GOTO_DEBUG")) fprintf(stderr, "GotoBLAS : %s\n", CHAR_NAME)
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#endif
|
||||
|
||||
+9
-1
@@ -150,9 +150,17 @@ REALNAME:
|
||||
#define PROFCODE .prologue 0
|
||||
#endif
|
||||
|
||||
#if defined(__linux__) && defined(__ELF__)
|
||||
#define GNUSTACK .section .note.GNU-stack,"",@progbits
|
||||
#else
|
||||
#define GNUSTACK
|
||||
#endif
|
||||
|
||||
#define EPILOGUE \
|
||||
.end REALNAME; \
|
||||
.ident VERSION
|
||||
.ident VERSION; \
|
||||
GNUSTACK
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef DOUBLE
|
||||
|
||||
+169
@@ -0,0 +1,169 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2011, Lab of Parallel Software and Computational Science,ICSAS
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in
|
||||
the documentation and/or other materials provided with the
|
||||
distribution.
|
||||
3. Neither the name of the ISCAS nor the names of its contributors may
|
||||
be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
||||
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
**********************************************************************************/
|
||||
|
||||
/*********************************************************************/
|
||||
/* Copyright 2009, 2010 The University of Texas at Austin. */
|
||||
/* All rights reserved. */
|
||||
/* */
|
||||
/* Redistribution and use in source and binary forms, with or */
|
||||
/* without modification, are permitted provided that the following */
|
||||
/* conditions are met: */
|
||||
/* */
|
||||
/* 1. Redistributions of source code must retain the above */
|
||||
/* copyright notice, this list of conditions and the following */
|
||||
/* disclaimer. */
|
||||
/* */
|
||||
/* 2. Redistributions in binary form must reproduce the above */
|
||||
/* copyright notice, this list of conditions and the following */
|
||||
/* disclaimer in the documentation and/or other materials */
|
||||
/* provided with the distribution. */
|
||||
/* */
|
||||
/* THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY OF TEXAS AT */
|
||||
/* AUSTIN ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, */
|
||||
/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
|
||||
/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
|
||||
/* DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY OF TEXAS AT */
|
||||
/* AUSTIN OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
|
||||
/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES */
|
||||
/* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE */
|
||||
/* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR */
|
||||
/* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF */
|
||||
/* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT */
|
||||
/* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT */
|
||||
/* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
|
||||
/* POSSIBILITY OF SUCH DAMAGE. */
|
||||
/* */
|
||||
/* The views and conclusions contained in the software and */
|
||||
/* documentation are those of the authors and should not be */
|
||||
/* interpreted as representing official policies, either expressed */
|
||||
/* or implied, of The University of Texas at Austin. */
|
||||
/*********************************************************************/
|
||||
|
||||
#ifndef COMMON_ARM
|
||||
#define COMMON_ARM
|
||||
|
||||
#define MB
|
||||
#define WMB
|
||||
|
||||
#define INLINE inline
|
||||
|
||||
#define RETURN_BY_COMPLEX
|
||||
|
||||
#ifndef ASSEMBLER
|
||||
|
||||
static void __inline blas_lock(volatile BLASULONG *address){
|
||||
|
||||
int register ret;
|
||||
|
||||
do {
|
||||
while (*address) {YIELDING;};
|
||||
|
||||
__asm__ __volatile__(
|
||||
"ldrex r2, [%1] \n\t"
|
||||
"mov r2, #0 \n\t"
|
||||
"strex r3, r2, [%1] \n\t"
|
||||
"mov %0 , r3 \n\t"
|
||||
: "=r"(ret), "=r"(address)
|
||||
: "1"(address)
|
||||
: "memory", "r2" , "r3"
|
||||
|
||||
|
||||
);
|
||||
|
||||
} while (ret);
|
||||
|
||||
}
|
||||
|
||||
|
||||
static inline unsigned long long rpcc(void){
|
||||
unsigned long long ret=0;
|
||||
double v;
|
||||
struct timeval tv;
|
||||
gettimeofday(&tv,NULL);
|
||||
v=(double) tv.tv_sec + (double) tv.tv_usec * 1e-6;
|
||||
ret = (unsigned long long) ( v * 1000.0d );
|
||||
return ret;
|
||||
}
|
||||
|
||||
static inline int blas_quickdivide(blasint x, blasint y){
|
||||
return x / y;
|
||||
}
|
||||
|
||||
#if defined(DOUBLE)
|
||||
#define GET_IMAGE(res) __asm__ __volatile__("vstr.f64 d1, %0" : "=m"(res) : : "memory")
|
||||
#else
|
||||
#define GET_IMAGE(res) __asm__ __volatile__("vstr.f32 s1, %0" : "=m"(res) : : "memory")
|
||||
#endif
|
||||
|
||||
#define GET_IMAGE_CANCEL
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef F_INTERFACE
|
||||
#define REALNAME ASMNAME
|
||||
#else
|
||||
#define REALNAME ASMFNAME
|
||||
#endif
|
||||
|
||||
#if defined(ASSEMBLER) && !defined(NEEDPARAM)
|
||||
|
||||
#define PROLOGUE \
|
||||
.arm ;\
|
||||
.global REALNAME ;\
|
||||
.func REALNAME ;\
|
||||
REALNAME:
|
||||
|
||||
#define EPILOGUE
|
||||
|
||||
#define PROFCODE
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#define SEEK_ADDRESS
|
||||
|
||||
#ifndef PAGESIZE
|
||||
#define PAGESIZE ( 4 << 10)
|
||||
#endif
|
||||
#define HUGE_PAGESIZE ( 4 << 20)
|
||||
|
||||
#define BUFFER_SIZE (16 << 20)
|
||||
|
||||
|
||||
#define BASE_ADDRESS (START_ADDRESS - BUFFER_SIZE * MAX_CPU_NUMBER)
|
||||
|
||||
#ifndef MAP_ANONYMOUS
|
||||
#define MAP_ANONYMOUS MAP_ANON
|
||||
#endif
|
||||
|
||||
#endif
|
||||
+169
@@ -0,0 +1,169 @@
|
||||
/*****************************************************************************
|
||||
Copyright (c) 2011, Lab of Parallel Software and Computational Science,ICSAS
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in
|
||||
the documentation and/or other materials provided with the
|
||||
distribution.
|
||||
3. Neither the name of the ISCAS nor the names of its contributors may
|
||||
be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
||||
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
**********************************************************************************/
|
||||
|
||||
/*********************************************************************/
|
||||
/* Copyright 2009, 2010 The University of Texas at Austin. */
|
||||
/* All rights reserved. */
|
||||
/* */
|
||||
/* Redistribution and use in source and binary forms, with or */
|
||||
/* without modification, are permitted provided that the following */
|
||||
/* conditions are met: */
|
||||
/* */
|
||||
/* 1. Redistributions of source code must retain the above */
|
||||
/* copyright notice, this list of conditions and the following */
|
||||
/* disclaimer. */
|
||||
/* */
|
||||
/* 2. Redistributions in binary form must reproduce the above */
|
||||
/* copyright notice, this list of conditions and the following */
|
||||
/* disclaimer in the documentation and/or other materials */
|
||||
/* provided with the distribution. */
|
||||
/* */
|
||||
/* THIS SOFTWARE IS PROVIDED BY THE UNIVERSITY OF TEXAS AT */
|
||||
/* AUSTIN ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, */
|
||||
/* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
|
||||
/* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE */
|
||||
/* DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY OF TEXAS AT */
|
||||
/* AUSTIN OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */
|
||||
/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES */
|
||||
/* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE */
|
||||
/* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR */
|
||||
/* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF */
|
||||
/* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT */
|
||||
/* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT */
|
||||
/* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */
|
||||
/* POSSIBILITY OF SUCH DAMAGE. */
|
||||
/* */
|
||||
/* The views and conclusions contained in the software and */
|
||||
/* documentation are those of the authors and should not be */
|
||||
/* interpreted as representing official policies, either expressed */
|
||||
/* or implied, of The University of Texas at Austin. */
|
||||
/*********************************************************************/
|
||||
|
||||
#ifndef COMMON_ARM64
|
||||
#define COMMON_ARM64
|
||||
|
||||
#define MB
|
||||
#define WMB
|
||||
|
||||
#define INLINE inline
|
||||
|
||||
#define RETURN_BY_COMPLEX
|
||||
|
||||
#ifndef ASSEMBLER
|
||||
|
||||
static void __inline blas_lock(volatile BLASULONG *address){
|
||||
/*
|
||||
int register ret;
|
||||
|
||||
do {
|
||||
while (*address) {YIELDING;};
|
||||
|
||||
__asm__ __volatile__(
|
||||
"ldrex r2, [%1] \n\t"
|
||||
"mov r2, #0 \n\t"
|
||||
"strex r3, r2, [%1] \n\t"
|
||||
"mov %0 , r3 \n\t"
|
||||
: "=r"(ret), "=r"(address)
|
||||
: "1"(address)
|
||||
: "memory", "r2" , "r3"
|
||||
|
||||
|
||||
);
|
||||
|
||||
} while (ret);
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
static inline unsigned long long rpcc(void){
|
||||
unsigned long long ret=0;
|
||||
double v;
|
||||
struct timeval tv;
|
||||
gettimeofday(&tv,NULL);
|
||||
v=(double) tv.tv_sec + (double) tv.tv_usec * 1e-6;
|
||||
ret = (unsigned long long) ( v * 1000.0d );
|
||||
return ret;
|
||||
}
|
||||
|
||||
static inline int blas_quickdivide(blasint x, blasint y){
|
||||
return x / y;
|
||||
}
|
||||
|
||||
#if defined(DOUBLE)
|
||||
#define GET_IMAGE(res) __asm__ __volatile__("vstr.f64 d1, %0" : "=m"(res) : : "memory")
|
||||
#else
|
||||
#define GET_IMAGE(res) __asm__ __volatile__("vstr.f32 s1, %0" : "=m"(res) : : "memory")
|
||||
#endif
|
||||
|
||||
#define GET_IMAGE_CANCEL
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef F_INTERFACE
|
||||
#define REALNAME ASMNAME
|
||||
#else
|
||||
#define REALNAME ASMFNAME
|
||||
#endif
|
||||
|
||||
#if defined(ASSEMBLER) && !defined(NEEDPARAM)
|
||||
|
||||
#define PROLOGUE \
|
||||
.arm ;\
|
||||
.global REALNAME ;\
|
||||
.func REALNAME ;\
|
||||
REALNAME:
|
||||
|
||||
#define EPILOGUE
|
||||
|
||||
#define PROFCODE
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
#define SEEK_ADDRESS
|
||||
|
||||
#ifndef PAGESIZE
|
||||
#define PAGESIZE ( 4 << 10)
|
||||
#endif
|
||||
#define HUGE_PAGESIZE ( 4 << 20)
|
||||
|
||||
#define BUFFER_SIZE (16 << 20)
|
||||
|
||||
|
||||
#define BASE_ADDRESS (START_ADDRESS - BUFFER_SIZE * MAX_CPU_NUMBER)
|
||||
|
||||
#ifndef MAP_ANONYMOUS
|
||||
#define MAP_ANONYMOUS MAP_ANON
|
||||
#endif
|
||||
|
||||
#endif
|
||||
+23
@@ -209,6 +209,18 @@
|
||||
#define CNEG_TCOPY cneg_tcopy
|
||||
#define CLASWP_NCOPY claswp_ncopy
|
||||
|
||||
#define CAXPBY_K caxpby_k
|
||||
|
||||
#define COMATCOPY_K_CN comatcopy_k_cn
|
||||
#define COMATCOPY_K_RN comatcopy_k_rn
|
||||
#define COMATCOPY_K_CT comatcopy_k_ct
|
||||
#define COMATCOPY_K_RT comatcopy_k_rt
|
||||
#define COMATCOPY_K_CNC comatcopy_k_cnc
|
||||
#define COMATCOPY_K_RNC comatcopy_k_rnc
|
||||
#define COMATCOPY_K_CTC comatcopy_k_ctc
|
||||
#define COMATCOPY_K_RTC comatcopy_k_rtc
|
||||
|
||||
|
||||
#else
|
||||
|
||||
#define CAMAX_K gotoblas -> camax_k
|
||||
@@ -380,6 +392,17 @@
|
||||
#define CNEG_TCOPY gotoblas -> cneg_tcopy
|
||||
#define CLASWP_NCOPY gotoblas -> claswp_ncopy
|
||||
|
||||
#define CAXPBY_K gotoblas -> caxpby_k
|
||||
|
||||
#define COMATCOPY_K_CN gotoblas -> comatcopy_k_cn
|
||||
#define COMATCOPY_K_RN gotoblas -> comatcopy_k_rn
|
||||
#define COMATCOPY_K_CT gotoblas -> comatcopy_k_ct
|
||||
#define COMATCOPY_K_RT gotoblas -> comatcopy_k_rt
|
||||
#define COMATCOPY_K_CNC gotoblas -> comatcopy_k_cnc
|
||||
#define COMATCOPY_K_RNC gotoblas -> comatcopy_k_rnc
|
||||
#define COMATCOPY_K_CTC gotoblas -> comatcopy_k_ctc
|
||||
#define COMATCOPY_K_RTC gotoblas -> comatcopy_k_rtc
|
||||
|
||||
#endif
|
||||
|
||||
#define CGEMM_NN cgemm_nn
|
||||
|
||||
+12
@@ -144,6 +144,12 @@
|
||||
#define DNEG_TCOPY dneg_tcopy
|
||||
#define DLASWP_NCOPY dlaswp_ncopy
|
||||
|
||||
#define DAXPBY_K daxpby_k
|
||||
#define DOMATCOPY_K_CN domatcopy_k_cn
|
||||
#define DOMATCOPY_K_RN domatcopy_k_rn
|
||||
#define DOMATCOPY_K_CT domatcopy_k_ct
|
||||
#define DOMATCOPY_K_RT domatcopy_k_rt
|
||||
|
||||
#else
|
||||
|
||||
#define DAMAX_K gotoblas -> damax_k
|
||||
@@ -255,6 +261,12 @@
|
||||
#define DNEG_TCOPY gotoblas -> dneg_tcopy
|
||||
#define DLASWP_NCOPY gotoblas -> dlaswp_ncopy
|
||||
|
||||
#define DAXPBY_K gotoblas -> daxpby_k
|
||||
#define DOMATCOPY_K_CN gotoblas -> domatcopy_k_cn
|
||||
#define DOMATCOPY_K_RN gotoblas -> domatcopy_k_rn
|
||||
#define DOMATCOPY_K_CT gotoblas -> domatcopy_k_ct
|
||||
#define DOMATCOPY_K_RT gotoblas -> domatcopy_k_rt
|
||||
|
||||
#endif
|
||||
|
||||
#define DGEMM_NN dgemm_nn
|
||||
|
||||
+10
-3
@@ -58,10 +58,10 @@
|
||||
static __inline void blas_lock(volatile unsigned long *address){
|
||||
|
||||
unsigned long ret;
|
||||
|
||||
|
||||
do {
|
||||
while (*address) {YIELDING;};
|
||||
|
||||
|
||||
__asm__ __volatile__ ("mov ar.ccv=r0\n;;\n"
|
||||
"cmpxchg4.acq %0=[%2],%1,ar.ccv\n"
|
||||
: "=r"(ret) : "r"(1), "r"(address)
|
||||
@@ -379,8 +379,15 @@ REALNAME:
|
||||
#define PROFCODE
|
||||
#endif
|
||||
|
||||
#if defined(__linux__) && defined(__ELF__)
|
||||
#define GNUSTACK .section .note.GNU-stack,"",@progbits
|
||||
#else
|
||||
#define GNUSTACK
|
||||
#endif
|
||||
|
||||
#define EPILOGUE \
|
||||
.endp REALNAME
|
||||
.endp REALNAME ; \
|
||||
GNUSTACK
|
||||
|
||||
#define START_ADDRESS 0x20000fc800000000UL
|
||||
|
||||
|
||||
+79
-62
@@ -238,17 +238,17 @@ void BLASFUNC(xgeru)(blasint *, blasint *, xdouble *, xdouble *, blasint *,
|
||||
void BLASFUNC(xgerc)(blasint *, blasint *, xdouble *, xdouble *, blasint *,
|
||||
xdouble *, blasint *, xdouble *, blasint *);
|
||||
|
||||
void BLASFUNC(sgemv)(char *, blasint *, blasint *, float *, float *, blasint *,
|
||||
void BLASFUNC(sgemv)(char *, blasint *, blasint *, float *, float *, blasint *,
|
||||
float *, blasint *, float *, float *, blasint *);
|
||||
void BLASFUNC(dgemv)(char *, blasint *, blasint *, double *, double *, blasint *,
|
||||
void BLASFUNC(dgemv)(char *, blasint *, blasint *, double *, double *, blasint *,
|
||||
double *, blasint *, double *, double *, blasint *);
|
||||
void BLASFUNC(qgemv)(char *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
|
||||
void BLASFUNC(qgemv)(char *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
|
||||
xdouble *, blasint *, xdouble *, xdouble *, blasint *);
|
||||
void BLASFUNC(cgemv)(char *, blasint *, blasint *, float *, float *, blasint *,
|
||||
void BLASFUNC(cgemv)(char *, blasint *, blasint *, float *, float *, blasint *,
|
||||
float *, blasint *, float *, float *, blasint *);
|
||||
void BLASFUNC(zgemv)(char *, blasint *, blasint *, double *, double *, blasint *,
|
||||
void BLASFUNC(zgemv)(char *, blasint *, blasint *, double *, double *, blasint *,
|
||||
double *, blasint *, double *, double *, blasint *);
|
||||
void BLASFUNC(xgemv)(char *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
|
||||
void BLASFUNC(xgemv)(char *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
|
||||
xdouble *, blasint *, xdouble *, xdouble *, blasint *);
|
||||
|
||||
void BLASFUNC(strsv) (char *, char *, char *, blasint *, float *, blasint *,
|
||||
@@ -257,24 +257,24 @@ void BLASFUNC(dtrsv) (char *, char *, char *, blasint *, double *, blasint *,
|
||||
double *, blasint *);
|
||||
void BLASFUNC(qtrsv) (char *, char *, char *, blasint *, xdouble *, blasint *,
|
||||
xdouble *, blasint *);
|
||||
void BLASFUNC(ctrsv) (char *, char *, char *, blasint *, float *, blasint *,
|
||||
void BLASFUNC(ctrsv) (char *, char *, char *, blasint *, float *, blasint *,
|
||||
float *, blasint *);
|
||||
void BLASFUNC(ztrsv) (char *, char *, char *, blasint *, double *, blasint *,
|
||||
void BLASFUNC(ztrsv) (char *, char *, char *, blasint *, double *, blasint *,
|
||||
double *, blasint *);
|
||||
void BLASFUNC(xtrsv) (char *, char *, char *, blasint *, xdouble *, blasint *,
|
||||
void BLASFUNC(xtrsv) (char *, char *, char *, blasint *, xdouble *, blasint *,
|
||||
xdouble *, blasint *);
|
||||
|
||||
void BLASFUNC(strmv) (char *, char *, char *, blasint *, float *, blasint *,
|
||||
float *, blasint *);
|
||||
void BLASFUNC(dtrmv) (char *, char *, char *, blasint *, double *, blasint *,
|
||||
void BLASFUNC(dtrmv) (char *, char *, char *, blasint *, double *, blasint *,
|
||||
double *, blasint *);
|
||||
void BLASFUNC(qtrmv) (char *, char *, char *, blasint *, xdouble *, blasint *,
|
||||
void BLASFUNC(qtrmv) (char *, char *, char *, blasint *, xdouble *, blasint *,
|
||||
xdouble *, blasint *);
|
||||
void BLASFUNC(ctrmv) (char *, char *, char *, blasint *, float *, blasint *,
|
||||
void BLASFUNC(ctrmv) (char *, char *, char *, blasint *, float *, blasint *,
|
||||
float *, blasint *);
|
||||
void BLASFUNC(ztrmv) (char *, char *, char *, blasint *, double *, blasint *,
|
||||
void BLASFUNC(ztrmv) (char *, char *, char *, blasint *, double *, blasint *,
|
||||
double *, blasint *);
|
||||
void BLASFUNC(xtrmv) (char *, char *, char *, blasint *, xdouble *, blasint *,
|
||||
void BLASFUNC(xtrmv) (char *, char *, char *, blasint *, xdouble *, blasint *,
|
||||
xdouble *, blasint *);
|
||||
|
||||
void BLASFUNC(stpsv) (char *, char *, char *, blasint *, float *, float *, blasint *);
|
||||
@@ -305,24 +305,24 @@ void BLASFUNC(ctbsv) (char *, char *, char *, blasint *, blasint *, float *, bl
|
||||
void BLASFUNC(ztbsv) (char *, char *, char *, blasint *, blasint *, double *, blasint *, double *, blasint *);
|
||||
void BLASFUNC(xtbsv) (char *, char *, char *, blasint *, blasint *, xdouble *, blasint *, xdouble *, blasint *);
|
||||
|
||||
void BLASFUNC(ssymv) (char *, blasint *, float *, float *, blasint *,
|
||||
void BLASFUNC(ssymv) (char *, blasint *, float *, float *, blasint *,
|
||||
float *, blasint *, float *, float *, blasint *);
|
||||
void BLASFUNC(dsymv) (char *, blasint *, double *, double *, blasint *,
|
||||
void BLASFUNC(dsymv) (char *, blasint *, double *, double *, blasint *,
|
||||
double *, blasint *, double *, double *, blasint *);
|
||||
void BLASFUNC(qsymv) (char *, blasint *, xdouble *, xdouble *, blasint *,
|
||||
void BLASFUNC(qsymv) (char *, blasint *, xdouble *, xdouble *, blasint *,
|
||||
xdouble *, blasint *, xdouble *, xdouble *, blasint *);
|
||||
void BLASFUNC(csymv) (char *, blasint *, float *, float *, blasint *,
|
||||
void BLASFUNC(csymv) (char *, blasint *, float *, float *, blasint *,
|
||||
float *, blasint *, float *, float *, blasint *);
|
||||
void BLASFUNC(zsymv) (char *, blasint *, double *, double *, blasint *,
|
||||
void BLASFUNC(zsymv) (char *, blasint *, double *, double *, blasint *,
|
||||
double *, blasint *, double *, double *, blasint *);
|
||||
void BLASFUNC(xsymv) (char *, blasint *, xdouble *, xdouble *, blasint *,
|
||||
void BLASFUNC(xsymv) (char *, blasint *, xdouble *, xdouble *, blasint *,
|
||||
xdouble *, blasint *, xdouble *, xdouble *, blasint *);
|
||||
|
||||
void BLASFUNC(sspmv) (char *, blasint *, float *, float *,
|
||||
float *, blasint *, float *, float *, blasint *);
|
||||
void BLASFUNC(dspmv) (char *, blasint *, double *, double *,
|
||||
void BLASFUNC(dspmv) (char *, blasint *, double *, double *,
|
||||
double *, blasint *, double *, double *, blasint *);
|
||||
void BLASFUNC(qspmv) (char *, blasint *, xdouble *, xdouble *,
|
||||
void BLASFUNC(qspmv) (char *, blasint *, xdouble *, xdouble *,
|
||||
xdouble *, blasint *, xdouble *, xdouble *, blasint *);
|
||||
void BLASFUNC(cspmv) (char *, blasint *, float *, float *,
|
||||
float *, blasint *, float *, float *, blasint *);
|
||||
@@ -344,17 +344,17 @@ void BLASFUNC(zsyr) (char *, blasint *, double *, double *, blasint *,
|
||||
void BLASFUNC(xsyr) (char *, blasint *, xdouble *, xdouble *, blasint *,
|
||||
xdouble *, blasint *);
|
||||
|
||||
void BLASFUNC(ssyr2) (char *, blasint *, float *,
|
||||
void BLASFUNC(ssyr2) (char *, blasint *, float *,
|
||||
float *, blasint *, float *, blasint *, float *, blasint *);
|
||||
void BLASFUNC(dsyr2) (char *, blasint *, double *,
|
||||
void BLASFUNC(dsyr2) (char *, blasint *, double *,
|
||||
double *, blasint *, double *, blasint *, double *, blasint *);
|
||||
void BLASFUNC(qsyr2) (char *, blasint *, xdouble *,
|
||||
void BLASFUNC(qsyr2) (char *, blasint *, xdouble *,
|
||||
xdouble *, blasint *, xdouble *, blasint *, xdouble *, blasint *);
|
||||
void BLASFUNC(csyr2) (char *, blasint *, float *,
|
||||
void BLASFUNC(csyr2) (char *, blasint *, float *,
|
||||
float *, blasint *, float *, blasint *, float *, blasint *);
|
||||
void BLASFUNC(zsyr2) (char *, blasint *, double *,
|
||||
void BLASFUNC(zsyr2) (char *, blasint *, double *,
|
||||
double *, blasint *, double *, blasint *, double *, blasint *);
|
||||
void BLASFUNC(xsyr2) (char *, blasint *, xdouble *,
|
||||
void BLASFUNC(xsyr2) (char *, blasint *, xdouble *,
|
||||
xdouble *, blasint *, xdouble *, blasint *, xdouble *, blasint *);
|
||||
|
||||
void BLASFUNC(sspr) (char *, blasint *, float *, float *, blasint *,
|
||||
@@ -370,17 +370,17 @@ void BLASFUNC(zspr) (char *, blasint *, double *, double *, blasint *,
|
||||
void BLASFUNC(xspr) (char *, blasint *, xdouble *, xdouble *, blasint *,
|
||||
xdouble *);
|
||||
|
||||
void BLASFUNC(sspr2) (char *, blasint *, float *,
|
||||
void BLASFUNC(sspr2) (char *, blasint *, float *,
|
||||
float *, blasint *, float *, blasint *, float *);
|
||||
void BLASFUNC(dspr2) (char *, blasint *, double *,
|
||||
void BLASFUNC(dspr2) (char *, blasint *, double *,
|
||||
double *, blasint *, double *, blasint *, double *);
|
||||
void BLASFUNC(qspr2) (char *, blasint *, xdouble *,
|
||||
void BLASFUNC(qspr2) (char *, blasint *, xdouble *,
|
||||
xdouble *, blasint *, xdouble *, blasint *, xdouble *);
|
||||
void BLASFUNC(cspr2) (char *, blasint *, float *,
|
||||
void BLASFUNC(cspr2) (char *, blasint *, float *,
|
||||
float *, blasint *, float *, blasint *, float *);
|
||||
void BLASFUNC(zspr2) (char *, blasint *, double *,
|
||||
void BLASFUNC(zspr2) (char *, blasint *, double *,
|
||||
double *, blasint *, double *, blasint *, double *);
|
||||
void BLASFUNC(xspr2) (char *, blasint *, xdouble *,
|
||||
void BLASFUNC(xspr2) (char *, blasint *, xdouble *,
|
||||
xdouble *, blasint *, xdouble *, blasint *, xdouble *);
|
||||
|
||||
void BLASFUNC(cher) (char *, blasint *, float *, float *, blasint *,
|
||||
@@ -394,25 +394,25 @@ void BLASFUNC(chpr) (char *, blasint *, float *, float *, blasint *, float *
|
||||
void BLASFUNC(zhpr) (char *, blasint *, double *, double *, blasint *, double *);
|
||||
void BLASFUNC(xhpr) (char *, blasint *, xdouble *, xdouble *, blasint *, xdouble *);
|
||||
|
||||
void BLASFUNC(cher2) (char *, blasint *, float *,
|
||||
void BLASFUNC(cher2) (char *, blasint *, float *,
|
||||
float *, blasint *, float *, blasint *, float *, blasint *);
|
||||
void BLASFUNC(zher2) (char *, blasint *, double *,
|
||||
void BLASFUNC(zher2) (char *, blasint *, double *,
|
||||
double *, blasint *, double *, blasint *, double *, blasint *);
|
||||
void BLASFUNC(xher2) (char *, blasint *, xdouble *,
|
||||
void BLASFUNC(xher2) (char *, blasint *, xdouble *,
|
||||
xdouble *, blasint *, xdouble *, blasint *, xdouble *, blasint *);
|
||||
|
||||
void BLASFUNC(chpr2) (char *, blasint *, float *,
|
||||
void BLASFUNC(chpr2) (char *, blasint *, float *,
|
||||
float *, blasint *, float *, blasint *, float *);
|
||||
void BLASFUNC(zhpr2) (char *, blasint *, double *,
|
||||
void BLASFUNC(zhpr2) (char *, blasint *, double *,
|
||||
double *, blasint *, double *, blasint *, double *);
|
||||
void BLASFUNC(xhpr2) (char *, blasint *, xdouble *,
|
||||
void BLASFUNC(xhpr2) (char *, blasint *, xdouble *,
|
||||
xdouble *, blasint *, xdouble *, blasint *, xdouble *);
|
||||
|
||||
void BLASFUNC(chemv) (char *, blasint *, float *, float *, blasint *,
|
||||
void BLASFUNC(chemv) (char *, blasint *, float *, float *, blasint *,
|
||||
float *, blasint *, float *, float *, blasint *);
|
||||
void BLASFUNC(zhemv) (char *, blasint *, double *, double *, blasint *,
|
||||
void BLASFUNC(zhemv) (char *, blasint *, double *, double *, blasint *,
|
||||
double *, blasint *, double *, double *, blasint *);
|
||||
void BLASFUNC(xhemv) (char *, blasint *, xdouble *, xdouble *, blasint *,
|
||||
void BLASFUNC(xhemv) (char *, blasint *, xdouble *, xdouble *, blasint *,
|
||||
xdouble *, blasint *, xdouble *, xdouble *, blasint *);
|
||||
|
||||
void BLASFUNC(chpmv) (char *, blasint *, float *, float *,
|
||||
@@ -427,37 +427,37 @@ int BLASFUNC(dnorm)(char *, blasint *, blasint *, double *, blasint *);
|
||||
int BLASFUNC(cnorm)(char *, blasint *, blasint *, float *, blasint *);
|
||||
int BLASFUNC(znorm)(char *, blasint *, blasint *, double *, blasint *);
|
||||
|
||||
void BLASFUNC(sgbmv)(char *, blasint *, blasint *, blasint *, blasint *, float *, float *, blasint *,
|
||||
void BLASFUNC(sgbmv)(char *, blasint *, blasint *, blasint *, blasint *, float *, float *, blasint *,
|
||||
float *, blasint *, float *, float *, blasint *);
|
||||
void BLASFUNC(dgbmv)(char *, blasint *, blasint *, blasint *, blasint *, double *, double *, blasint *,
|
||||
void BLASFUNC(dgbmv)(char *, blasint *, blasint *, blasint *, blasint *, double *, double *, blasint *,
|
||||
double *, blasint *, double *, double *, blasint *);
|
||||
void BLASFUNC(qgbmv)(char *, blasint *, blasint *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
|
||||
void BLASFUNC(qgbmv)(char *, blasint *, blasint *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
|
||||
xdouble *, blasint *, xdouble *, xdouble *, blasint *);
|
||||
void BLASFUNC(cgbmv)(char *, blasint *, blasint *, blasint *, blasint *, float *, float *, blasint *,
|
||||
void BLASFUNC(cgbmv)(char *, blasint *, blasint *, blasint *, blasint *, float *, float *, blasint *,
|
||||
float *, blasint *, float *, float *, blasint *);
|
||||
void BLASFUNC(zgbmv)(char *, blasint *, blasint *, blasint *, blasint *, double *, double *, blasint *,
|
||||
void BLASFUNC(zgbmv)(char *, blasint *, blasint *, blasint *, blasint *, double *, double *, blasint *,
|
||||
double *, blasint *, double *, double *, blasint *);
|
||||
void BLASFUNC(xgbmv)(char *, blasint *, blasint *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
|
||||
void BLASFUNC(xgbmv)(char *, blasint *, blasint *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
|
||||
xdouble *, blasint *, xdouble *, xdouble *, blasint *);
|
||||
|
||||
void BLASFUNC(ssbmv)(char *, blasint *, blasint *, float *, float *, blasint *,
|
||||
void BLASFUNC(ssbmv)(char *, blasint *, blasint *, float *, float *, blasint *,
|
||||
float *, blasint *, float *, float *, blasint *);
|
||||
void BLASFUNC(dsbmv)(char *, blasint *, blasint *, double *, double *, blasint *,
|
||||
void BLASFUNC(dsbmv)(char *, blasint *, blasint *, double *, double *, blasint *,
|
||||
double *, blasint *, double *, double *, blasint *);
|
||||
void BLASFUNC(qsbmv)(char *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
|
||||
void BLASFUNC(qsbmv)(char *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
|
||||
xdouble *, blasint *, xdouble *, xdouble *, blasint *);
|
||||
void BLASFUNC(csbmv)(char *, blasint *, blasint *, float *, float *, blasint *,
|
||||
void BLASFUNC(csbmv)(char *, blasint *, blasint *, float *, float *, blasint *,
|
||||
float *, blasint *, float *, float *, blasint *);
|
||||
void BLASFUNC(zsbmv)(char *, blasint *, blasint *, double *, double *, blasint *,
|
||||
void BLASFUNC(zsbmv)(char *, blasint *, blasint *, double *, double *, blasint *,
|
||||
double *, blasint *, double *, double *, blasint *);
|
||||
void BLASFUNC(xsbmv)(char *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
|
||||
void BLASFUNC(xsbmv)(char *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
|
||||
xdouble *, blasint *, xdouble *, xdouble *, blasint *);
|
||||
|
||||
void BLASFUNC(chbmv)(char *, blasint *, blasint *, float *, float *, blasint *,
|
||||
void BLASFUNC(chbmv)(char *, blasint *, blasint *, float *, float *, blasint *,
|
||||
float *, blasint *, float *, float *, blasint *);
|
||||
void BLASFUNC(zhbmv)(char *, blasint *, blasint *, double *, double *, blasint *,
|
||||
void BLASFUNC(zhbmv)(char *, blasint *, blasint *, double *, double *, blasint *,
|
||||
double *, blasint *, double *, double *, blasint *);
|
||||
void BLASFUNC(xhbmv)(char *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
|
||||
void BLASFUNC(xhbmv)(char *, blasint *, blasint *, xdouble *, xdouble *, blasint *,
|
||||
xdouble *, blasint *, xdouble *, xdouble *, blasint *);
|
||||
|
||||
/* Level 3 routines */
|
||||
@@ -606,18 +606,18 @@ int BLASFUNC(sgemt)(char *, blasint *, blasint *, float *, float *, blasint *,
|
||||
float *, blasint *);
|
||||
int BLASFUNC(dgemt)(char *, blasint *, blasint *, double *, double *, blasint *,
|
||||
double *, blasint *);
|
||||
int BLASFUNC(cgemt)(char *, blasint *, blasint *, float *, float *, blasint *,
|
||||
int BLASFUNC(cgemt)(char *, blasint *, blasint *, float *, float *, blasint *,
|
||||
float *, blasint *);
|
||||
int BLASFUNC(zgemt)(char *, blasint *, blasint *, double *, double *, blasint *,
|
||||
double *, blasint *);
|
||||
|
||||
int BLASFUNC(sgema)(char *, char *, blasint *, blasint *, float *,
|
||||
int BLASFUNC(sgema)(char *, char *, blasint *, blasint *, float *,
|
||||
float *, blasint *, float *, float *, blasint *, float *, blasint *);
|
||||
int BLASFUNC(dgema)(char *, char *, blasint *, blasint *, double *,
|
||||
double *, blasint *, double*, double *, blasint *, double*, blasint *);
|
||||
int BLASFUNC(cgema)(char *, char *, blasint *, blasint *, float *,
|
||||
float *, blasint *, float *, float *, blasint *, float *, blasint *);
|
||||
int BLASFUNC(zgema)(char *, char *, blasint *, blasint *, double *,
|
||||
int BLASFUNC(zgema)(char *, char *, blasint *, blasint *, double *,
|
||||
double *, blasint *, double*, double *, blasint *, double*, blasint *);
|
||||
|
||||
int BLASFUNC(sgems)(char *, char *, blasint *, blasint *, float *,
|
||||
@@ -757,9 +757,26 @@ FLOATRET BLASFUNC(slamc3)(float *, float *);
|
||||
double BLASFUNC(dlamc3)(double *, double *);
|
||||
xdouble BLASFUNC(qlamc3)(xdouble *, xdouble *);
|
||||
|
||||
/* BLAS extensions */
|
||||
|
||||
void BLASFUNC(saxpby) (blasint *, float *, float *, blasint *, float *, float *, blasint *);
|
||||
void BLASFUNC(daxpby) (blasint *, double *, double *, blasint *, double *, double *, blasint *);
|
||||
void BLASFUNC(caxpby) (blasint *, float *, float *, blasint *, float *, float *, blasint *);
|
||||
void BLASFUNC(zaxpby) (blasint *, double *, double *, blasint *, double *, double *, blasint *);
|
||||
|
||||
void BLASFUNC(somatcopy) (char *, char *, blasint *, blasint *, float *, float *, blasint *, float *, blasint *);
|
||||
void BLASFUNC(domatcopy) (char *, char *, blasint *, blasint *, double *, double *, blasint *, double *, blasint *);
|
||||
void BLASFUNC(comatcopy) (char *, char *, blasint *, blasint *, float *, float *, blasint *, float *, blasint *);
|
||||
void BLASFUNC(zomatcopy) (char *, char *, blasint *, blasint *, double *, double *, blasint *, double *, blasint *);
|
||||
|
||||
void BLASFUNC(simatcopy) (char *, char *, blasint *, blasint *, float *, float *, blasint *, blasint *);
|
||||
void BLASFUNC(dimatcopy) (char *, char *, blasint *, blasint *, double *, double *, blasint *, blasint *);
|
||||
void BLASFUNC(cimatcopy) (char *, char *, blasint *, blasint *, float *, float *, blasint *, blasint *);
|
||||
void BLASFUNC(zimatcopy) (char *, char *, blasint *, blasint *, double *, double *, blasint *, blasint *);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
|
||||
#endif /* __cplusplus */
|
||||
|
||||
#endif
|
||||
|
||||
+16
-9
@@ -54,11 +54,11 @@ double _Complex zdotu_k (BLASLONG, double *, BLASLONG, double *, BLASLONG);
|
||||
xdouble _Complex xdotc_k (BLASLONG, xdouble *, BLASLONG, xdouble *, BLASLONG);
|
||||
xdouble _Complex xdotu_k (BLASLONG, xdouble *, BLASLONG, xdouble *, BLASLONG);
|
||||
|
||||
int saxpy_k (BLASLONG, BLASLONG, BLASLONG, float,
|
||||
int saxpy_k (BLASLONG, BLASLONG, BLASLONG, float,
|
||||
float *, BLASLONG, float *, BLASLONG, float *, BLASLONG);
|
||||
int daxpy_k (BLASLONG, BLASLONG, BLASLONG, double,
|
||||
int daxpy_k (BLASLONG, BLASLONG, BLASLONG, double,
|
||||
double *, BLASLONG, double *, BLASLONG, double *, BLASLONG);
|
||||
int qaxpy_k (BLASLONG, BLASLONG, BLASLONG, xdouble,
|
||||
int qaxpy_k (BLASLONG, BLASLONG, BLASLONG, xdouble,
|
||||
xdouble *, BLASLONG, xdouble *, BLASLONG, xdouble *, BLASLONG);
|
||||
int caxpy_k (BLASLONG, BLASLONG, BLASLONG, float, float,
|
||||
float *, BLASLONG, float *, BLASLONG, float *, BLASLONG);
|
||||
@@ -80,11 +80,11 @@ int ccopy_k(BLASLONG, float *, BLASLONG, float *, BLASLONG);
|
||||
int zcopy_k(BLASLONG, double *, BLASLONG, double *, BLASLONG);
|
||||
int xcopy_k(BLASLONG, xdouble *, BLASLONG, xdouble *, BLASLONG);
|
||||
|
||||
int sswap_k (BLASLONG, BLASLONG, BLASLONG, float,
|
||||
int sswap_k (BLASLONG, BLASLONG, BLASLONG, float,
|
||||
float *, BLASLONG, float *, BLASLONG, float *, BLASLONG);
|
||||
int dswap_k (BLASLONG, BLASLONG, BLASLONG, double,
|
||||
int dswap_k (BLASLONG, BLASLONG, BLASLONG, double,
|
||||
double *, BLASLONG, double *, BLASLONG, double*, BLASLONG);
|
||||
int qswap_k (BLASLONG, BLASLONG, BLASLONG, xdouble,
|
||||
int qswap_k (BLASLONG, BLASLONG, BLASLONG, xdouble,
|
||||
xdouble *, BLASLONG, xdouble *, BLASLONG, xdouble*, BLASLONG);
|
||||
int cswap_k (BLASLONG, BLASLONG, BLASLONG, float, float,
|
||||
float *, BLASLONG, float *, BLASLONG, float *, BLASLONG);
|
||||
@@ -156,11 +156,11 @@ BLASLONG icmin_k(BLASLONG, float *, BLASLONG);
|
||||
BLASLONG izmin_k(BLASLONG, double *, BLASLONG);
|
||||
BLASLONG ixmin_k(BLASLONG, xdouble *, BLASLONG);
|
||||
|
||||
int sscal_k(BLASLONG, BLASLONG, BLASLONG, float,
|
||||
int sscal_k(BLASLONG, BLASLONG, BLASLONG, float,
|
||||
float *, BLASLONG, float *, BLASLONG, float *, BLASLONG);
|
||||
int dscal_k(BLASLONG, BLASLONG, BLASLONG, double,
|
||||
int dscal_k(BLASLONG, BLASLONG, BLASLONG, double,
|
||||
double *, BLASLONG, double *, BLASLONG, double *, BLASLONG);
|
||||
int qscal_k(BLASLONG, BLASLONG, BLASLONG, xdouble,
|
||||
int qscal_k(BLASLONG, BLASLONG, BLASLONG, xdouble,
|
||||
xdouble *, BLASLONG, xdouble *, BLASLONG, xdouble *, BLASLONG);
|
||||
int cscal_k(BLASLONG, BLASLONG, BLASLONG, float, float,
|
||||
float *, BLASLONG, float *, BLASLONG, float *, BLASLONG);
|
||||
@@ -204,6 +204,13 @@ int srotm_k (BLASLONG, float, BLASLONG, float, BLASLONG, float);
|
||||
int drotm_k (BLASLONG, double, BLASLONG, double, BLASLONG, double);
|
||||
int qrotm_k (BLASLONG, xdouble, BLASLONG, xdouble, BLASLONG, xdouble);
|
||||
|
||||
|
||||
int saxpby_k (BLASLONG, float, float *, BLASLONG, float, float *, BLASLONG);
|
||||
int daxpby_k (BLASLONG, double, double *, BLASLONG, double, double *, BLASLONG);
|
||||
int caxpby_k (BLASLONG, float, float, float *, BLASLONG, float, float, float *, BLASLONG);
|
||||
int zaxpby_k (BLASLONG, double, double, double *, BLASLONG, double, double, double *, BLASLONG);
|
||||
|
||||
|
||||
#ifdef __CUDACC__
|
||||
}
|
||||
#endif
|
||||
|
||||
+8
-8
@@ -986,24 +986,24 @@ int cnorm_t(BLASLONG, BLASLONG, float *a, BLASLONG);
|
||||
int znorm_n(BLASLONG, BLASLONG, double *a, BLASLONG);
|
||||
int znorm_t(BLASLONG, BLASLONG, double *a, BLASLONG);
|
||||
|
||||
void sgbmv_n(BLASLONG, BLASLONG, BLASLONG, BLASLONG, float,
|
||||
void sgbmv_n(BLASLONG, BLASLONG, BLASLONG, BLASLONG, float,
|
||||
float *, BLASLONG, float *, BLASLONG, float *, BLASLONG, void *buffer);
|
||||
void sgbmv_t(BLASLONG, BLASLONG, BLASLONG, BLASLONG, float,
|
||||
float *, BLASLONG, float *, BLASLONG, float *, BLASLONG, void *buffer);
|
||||
|
||||
void dgbmv_n(BLASLONG, BLASLONG, BLASLONG, BLASLONG, double,
|
||||
double *, BLASLONG, double *, BLASLONG, double *, BLASLONG, void *buffer);
|
||||
void dgbmv_t(BLASLONG, BLASLONG, BLASLONG, BLASLONG, double,
|
||||
void dgbmv_t(BLASLONG, BLASLONG, BLASLONG, BLASLONG, double,
|
||||
double *, BLASLONG, double *, BLASLONG, double *, BLASLONG, void *buffer);
|
||||
|
||||
void qgbmv_n(BLASLONG, BLASLONG, BLASLONG, BLASLONG, xdouble,
|
||||
xdouble *, BLASLONG, xdouble *, BLASLONG, xdouble *, BLASLONG, void *buffer);
|
||||
void qgbmv_t(BLASLONG, BLASLONG, BLASLONG, BLASLONG, xdouble,
|
||||
void qgbmv_t(BLASLONG, BLASLONG, BLASLONG, BLASLONG, xdouble,
|
||||
xdouble *, BLASLONG, xdouble *, BLASLONG, xdouble *, BLASLONG, void *buffer);
|
||||
|
||||
void cgbmv_n(BLASLONG, BLASLONG, BLASLONG, BLASLONG, float, float,
|
||||
float *, BLASLONG, float *, BLASLONG, float *, BLASLONG, void *buffer);
|
||||
void cgbmv_t(BLASLONG, BLASLONG, BLASLONG, BLASLONG, float, float,
|
||||
void cgbmv_t(BLASLONG, BLASLONG, BLASLONG, BLASLONG, float, float,
|
||||
float *, BLASLONG, float *, BLASLONG, float *, BLASLONG, void *buffer);
|
||||
void cgbmv_r(BLASLONG, BLASLONG, BLASLONG, BLASLONG, float, float,
|
||||
float *, BLASLONG, float *, BLASLONG, float *, BLASLONG, void *buffer);
|
||||
@@ -1052,24 +1052,24 @@ void xgbmv_s(BLASLONG, BLASLONG, BLASLONG, BLASLONG, xdouble, xdouble,
|
||||
void xgbmv_d(BLASLONG, BLASLONG, BLASLONG, BLASLONG, xdouble, xdouble,
|
||||
xdouble *, BLASLONG, xdouble *, BLASLONG, xdouble *, BLASLONG, void *buffer);
|
||||
|
||||
int sgbmv_thread_n(BLASLONG, BLASLONG, BLASLONG, BLASLONG, float,
|
||||
int sgbmv_thread_n(BLASLONG, BLASLONG, BLASLONG, BLASLONG, float,
|
||||
float *, BLASLONG, float *, BLASLONG, float *, BLASLONG, float *buffer, int);
|
||||
int sgbmv_thread_t(BLASLONG, BLASLONG, BLASLONG, BLASLONG, float,
|
||||
float *, BLASLONG, float *, BLASLONG, float *, BLASLONG, float *buffer, int);
|
||||
|
||||
int dgbmv_thread_n(BLASLONG, BLASLONG, BLASLONG, BLASLONG, double,
|
||||
double *, BLASLONG, double *, BLASLONG, double *, BLASLONG, double *buffer, int);
|
||||
int dgbmv_thread_t(BLASLONG, BLASLONG, BLASLONG, BLASLONG, double,
|
||||
int dgbmv_thread_t(BLASLONG, BLASLONG, BLASLONG, BLASLONG, double,
|
||||
double *, BLASLONG, double *, BLASLONG, double *, BLASLONG, double *buffer, int);
|
||||
|
||||
int qgbmv_thread_n(BLASLONG, BLASLONG, BLASLONG, BLASLONG, xdouble,
|
||||
xdouble *, BLASLONG, xdouble *, BLASLONG, xdouble *, BLASLONG, xdouble *buffer, int);
|
||||
int qgbmv_thread_t(BLASLONG, BLASLONG, BLASLONG, BLASLONG, xdouble,
|
||||
int qgbmv_thread_t(BLASLONG, BLASLONG, BLASLONG, BLASLONG, xdouble,
|
||||
xdouble *, BLASLONG, xdouble *, BLASLONG, xdouble *, BLASLONG, xdouble *buffer, int);
|
||||
|
||||
int cgbmv_thread_n(BLASLONG, BLASLONG, BLASLONG, BLASLONG, float *,
|
||||
float *, BLASLONG, float *, BLASLONG, float *, BLASLONG, float *buffer, int);
|
||||
int cgbmv_thread_t(BLASLONG, BLASLONG, BLASLONG, BLASLONG, float *,
|
||||
int cgbmv_thread_t(BLASLONG, BLASLONG, BLASLONG, BLASLONG, float *,
|
||||
float *, BLASLONG, float *, BLASLONG, float *, BLASLONG, float *buffer, int);
|
||||
int cgbmv_thread_r(BLASLONG, BLASLONG, BLASLONG, BLASLONG, float *,
|
||||
float *, BLASLONG, float *, BLASLONG, float *, BLASLONG, float *buffer, int);
|
||||
|
||||
+35
-4
@@ -47,9 +47,9 @@ __global__ void cuda_dgemm_kernel(int, int, int, double *, double *, double *);
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
int sgemm_beta(BLASLONG, BLASLONG, BLASLONG, float,
|
||||
int sgemm_beta(BLASLONG, BLASLONG, BLASLONG, float,
|
||||
float *, BLASLONG, float *, BLASLONG, float *, BLASLONG);
|
||||
int dgemm_beta(BLASLONG, BLASLONG, BLASLONG, double,
|
||||
int dgemm_beta(BLASLONG, BLASLONG, BLASLONG, double,
|
||||
double *, BLASLONG, double *, BLASLONG, double *, BLASLONG);
|
||||
int cgemm_beta(BLASLONG, BLASLONG, BLASLONG, float, float,
|
||||
float *, BLASLONG, float *, BLASLONG, float *, BLASLONG);
|
||||
@@ -57,12 +57,12 @@ int zgemm_beta(BLASLONG, BLASLONG, BLASLONG, double, double,
|
||||
double *, BLASLONG, double *, BLASLONG, double *, BLASLONG);
|
||||
|
||||
#ifdef EXPRECISION
|
||||
int qgemm_beta(BLASLONG, BLASLONG, BLASLONG, xdouble,
|
||||
int qgemm_beta(BLASLONG, BLASLONG, BLASLONG, xdouble,
|
||||
xdouble *, BLASLONG, xdouble *, BLASLONG, xdouble *, BLASLONG);
|
||||
int xgemm_beta(BLASLONG, BLASLONG, BLASLONG, xdouble, xdouble,
|
||||
xdouble *, BLASLONG, xdouble *, BLASLONG, xdouble *, BLASLONG);
|
||||
#else
|
||||
int qgemm_beta(BLASLONG, BLASLONG, BLASLONG, xdouble *,
|
||||
int qgemm_beta(BLASLONG, BLASLONG, BLASLONG, xdouble *,
|
||||
xdouble *, BLASLONG, xdouble *, BLASLONG, xdouble *, BLASLONG);
|
||||
int xgemm_beta(BLASLONG, BLASLONG, BLASLONG, xdouble *,
|
||||
xdouble *, BLASLONG, xdouble *, BLASLONG, xdouble *, BLASLONG);
|
||||
@@ -1732,6 +1732,37 @@ int zgemc_otcopy(BLASLONG m, BLASLONG n, double *a, BLASLONG lda, double *b, BLA
|
||||
int xgemc_oncopy(BLASLONG m, BLASLONG n, xdouble *a, BLASLONG lda, xdouble *b, BLASLONG ldb, xdouble *c);
|
||||
int xgemc_otcopy(BLASLONG m, BLASLONG n, xdouble *a, BLASLONG lda, xdouble *b, BLASLONG ldb, xdouble *c);
|
||||
|
||||
int somatcopy_k_cn(BLASLONG, BLASLONG, float, float *, BLASLONG, float *, BLASLONG);
|
||||
int somatcopy_k_rn(BLASLONG, BLASLONG, float, float *, BLASLONG, float *, BLASLONG);
|
||||
int somatcopy_k_ct(BLASLONG, BLASLONG, float, float *, BLASLONG, float *, BLASLONG);
|
||||
int somatcopy_k_rt(BLASLONG, BLASLONG, float, float *, BLASLONG, float *, BLASLONG);
|
||||
|
||||
int domatcopy_k_cn(BLASLONG, BLASLONG, double, double *, BLASLONG, double *, BLASLONG);
|
||||
int domatcopy_k_rn(BLASLONG, BLASLONG, double, double *, BLASLONG, double *, BLASLONG);
|
||||
int domatcopy_k_ct(BLASLONG, BLASLONG, double, double *, BLASLONG, double *, BLASLONG);
|
||||
int domatcopy_k_rt(BLASLONG, BLASLONG, double, double *, BLASLONG, double *, BLASLONG);
|
||||
|
||||
int comatcopy_k_cn(BLASLONG, BLASLONG, float, float, float *, BLASLONG, float *, BLASLONG);
|
||||
int comatcopy_k_rn(BLASLONG, BLASLONG, float, float, float *, BLASLONG, float *, BLASLONG);
|
||||
int comatcopy_k_ct(BLASLONG, BLASLONG, float, float, float *, BLASLONG, float *, BLASLONG);
|
||||
int comatcopy_k_rt(BLASLONG, BLASLONG, float, float, float *, BLASLONG, float *, BLASLONG);
|
||||
|
||||
int comatcopy_k_cnc(BLASLONG, BLASLONG, float, float, float *, BLASLONG, float *, BLASLONG);
|
||||
int comatcopy_k_rnc(BLASLONG, BLASLONG, float, float, float *, BLASLONG, float *, BLASLONG);
|
||||
int comatcopy_k_ctc(BLASLONG, BLASLONG, float, float, float *, BLASLONG, float *, BLASLONG);
|
||||
int comatcopy_k_rtc(BLASLONG, BLASLONG, float, float, float *, BLASLONG, float *, BLASLONG);
|
||||
|
||||
int zomatcopy_k_cn(BLASLONG, BLASLONG, double, double, double *, BLASLONG, double *, BLASLONG);
|
||||
int zomatcopy_k_rn(BLASLONG, BLASLONG, double, double, double *, BLASLONG, double *, BLASLONG);
|
||||
int zomatcopy_k_ct(BLASLONG, BLASLONG, double, double, double *, BLASLONG, double *, BLASLONG);
|
||||
int zomatcopy_k_rt(BLASLONG, BLASLONG, double, double, double *, BLASLONG, double *, BLASLONG);
|
||||
|
||||
int zomatcopy_k_cnc(BLASLONG, BLASLONG, double, double, double *, BLASLONG, double *, BLASLONG);
|
||||
int zomatcopy_k_rnc(BLASLONG, BLASLONG, double, double, double *, BLASLONG, double *, BLASLONG);
|
||||
int zomatcopy_k_ctc(BLASLONG, BLASLONG, double, double, double *, BLASLONG, double *, BLASLONG);
|
||||
int zomatcopy_k_rtc(BLASLONG, BLASLONG, double, double, double *, BLASLONG, double *, BLASLONG);
|
||||
|
||||
|
||||
#ifdef __CUDACC__
|
||||
}
|
||||
#endif
|
||||
|
||||
+3
-3
@@ -75,7 +75,7 @@ static inline int my_mbind(void *addr, unsigned long len, int mode,
|
||||
// https://lsbbugs.linuxfoundation.org/show_bug.cgi?id=3482
|
||||
return 0;
|
||||
#else
|
||||
#if defined (LOONGSON3B)
|
||||
#if defined (LOONGSON3B)
|
||||
#if defined (__64BIT__)
|
||||
return syscall(SYS_mbind, addr, len, mode, nodemask, maxnode, flags);
|
||||
#else
|
||||
@@ -99,9 +99,9 @@ static inline int my_set_mempolicy(int mode, const unsigned long *addr, unsigned
|
||||
#endif
|
||||
}
|
||||
|
||||
static inline int my_gettid(void) {
|
||||
static inline int my_gettid(void) {
|
||||
#ifdef SYS_gettid
|
||||
return syscall(SYS_gettid);
|
||||
return syscall(SYS_gettid);
|
||||
#else
|
||||
return getpid();
|
||||
#endif
|
||||
|
||||
@@ -628,6 +628,13 @@
|
||||
#define HERK_THREAD_LR DSYRK_THREAD_LN
|
||||
#define HERK_THREAD_LC DSYRK_THREAD_LT
|
||||
|
||||
#define AXPBY_K DAXPBY_K
|
||||
|
||||
#define OMATCOPY_K_CN DOMATCOPY_K_CN
|
||||
#define OMATCOPY_K_RN DOMATCOPY_K_RN
|
||||
#define OMATCOPY_K_CT DOMATCOPY_K_CT
|
||||
#define OMATCOPY_K_RT DOMATCOPY_K_RT
|
||||
|
||||
#else
|
||||
|
||||
#define AMAX_K SAMAX_K
|
||||
@@ -918,6 +925,13 @@
|
||||
#define HERK_THREAD_LR SSYRK_THREAD_LN
|
||||
#define HERK_THREAD_LC SSYRK_THREAD_LT
|
||||
|
||||
#define AXPBY_K SAXPBY_K
|
||||
|
||||
#define OMATCOPY_K_CN SOMATCOPY_K_CN
|
||||
#define OMATCOPY_K_RN SOMATCOPY_K_RN
|
||||
#define OMATCOPY_K_CT SOMATCOPY_K_CT
|
||||
#define OMATCOPY_K_RT SOMATCOPY_K_RT
|
||||
|
||||
#endif
|
||||
#else
|
||||
#ifdef XDOUBLE
|
||||
@@ -1722,6 +1736,17 @@
|
||||
#define SYMM_OUTCOPY ZSYMM_OUTCOPY
|
||||
#define SYMM_OLTCOPY ZSYMM_OLTCOPY
|
||||
|
||||
#define AXPBY_K ZAXPBY_K
|
||||
|
||||
#define OMATCOPY_K_CN ZOMATCOPY_K_CN
|
||||
#define OMATCOPY_K_RN ZOMATCOPY_K_RN
|
||||
#define OMATCOPY_K_CT ZOMATCOPY_K_CT
|
||||
#define OMATCOPY_K_RT ZOMATCOPY_K_RT
|
||||
#define OMATCOPY_K_CNC ZOMATCOPY_K_CNC
|
||||
#define OMATCOPY_K_RNC ZOMATCOPY_K_RNC
|
||||
#define OMATCOPY_K_CTC ZOMATCOPY_K_CTC
|
||||
#define OMATCOPY_K_RTC ZOMATCOPY_K_RTC
|
||||
|
||||
#else
|
||||
|
||||
#define AMAX_K CAMAX_K
|
||||
@@ -2123,6 +2148,17 @@
|
||||
#define SYMM_OUTCOPY CSYMM_OUTCOPY
|
||||
#define SYMM_OLTCOPY CSYMM_OLTCOPY
|
||||
|
||||
#define AXPBY_K CAXPBY_K
|
||||
|
||||
#define OMATCOPY_K_CN COMATCOPY_K_CN
|
||||
#define OMATCOPY_K_RN COMATCOPY_K_RN
|
||||
#define OMATCOPY_K_CT COMATCOPY_K_CT
|
||||
#define OMATCOPY_K_RT COMATCOPY_K_RT
|
||||
#define OMATCOPY_K_CNC COMATCOPY_K_CNC
|
||||
#define OMATCOPY_K_RNC COMATCOPY_K_RNC
|
||||
#define OMATCOPY_K_CTC COMATCOPY_K_CTC
|
||||
#define OMATCOPY_K_RTC COMATCOPY_K_RTC
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
+31
-24
@@ -13,19 +13,19 @@ met:
|
||||
notice, this list of conditions and the following disclaimer in
|
||||
the documentation and/or other materials provided with the
|
||||
distribution.
|
||||
3. Neither the name of the ISCAS nor the names of its contributors may
|
||||
be used to endorse or promote products derived from this software
|
||||
3. Neither the name of the ISCAS nor the names of its contributors may
|
||||
be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
||||
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
**********************************************************************************/
|
||||
@@ -111,9 +111,9 @@ static inline unsigned int rpcc(void){
|
||||
".set pop": "=r"(ret):: "memory");
|
||||
|
||||
#else
|
||||
__asm__ __volatile__(".set push \n"
|
||||
".set mips32r2\n"
|
||||
"rdhwr %0, $30 \n"
|
||||
__asm__ __volatile__(".set push \n"
|
||||
".set mips32r2\n"
|
||||
"rdhwr %0, $30 \n"
|
||||
".set pop" : "=r"(ret) : : "memory");
|
||||
#endif
|
||||
return ret;
|
||||
@@ -191,13 +191,13 @@ static inline int blas_quickdivide(blasint x, blasint y){
|
||||
#define CMPEQ c.eq.s
|
||||
#define CMPLE c.le.s
|
||||
#define CMPLT c.lt.s
|
||||
#define PLU plu.ps
|
||||
#define PLL pll.ps
|
||||
#define PUU puu.ps
|
||||
#define PUL pul.ps
|
||||
#define MADPS madd.ps
|
||||
#define CVTU cvt.s.pu
|
||||
#define CVTL cvt.s.pl
|
||||
#define PLU plu.ps
|
||||
#define PLL pll.ps
|
||||
#define PUU puu.ps
|
||||
#define PUL pul.ps
|
||||
#define MADPS madd.ps
|
||||
#define CVTU cvt.s.pu
|
||||
#define CVTL cvt.s.pl
|
||||
#define NEG neg.s
|
||||
#endif
|
||||
|
||||
@@ -235,10 +235,17 @@ REALNAME: ;\
|
||||
.set noreorder ;\
|
||||
.set nomacro
|
||||
|
||||
#if defined(__linux__) && defined(__ELF__)
|
||||
#define GNUSTACK .section .note.GNU-stack,"",@progbits
|
||||
#else
|
||||
#define GNUSTACK
|
||||
#endif
|
||||
|
||||
#define EPILOGUE \
|
||||
.set macro ;\
|
||||
.set reorder ;\
|
||||
.end REALNAME
|
||||
.end REALNAME ;\
|
||||
GNUSTACK
|
||||
|
||||
#define PROFCODE
|
||||
#endif
|
||||
@@ -272,9 +279,9 @@ REALNAME: ;\
|
||||
|
||||
#if defined(LOONGSON3A) || defined(LOONGSON3B)
|
||||
#define PREFETCHD_(x) ld $0, x
|
||||
#define PREFETCHD(x) PREFETCHD_(x)
|
||||
#define PREFETCHD(x) PREFETCHD_(x)
|
||||
#else
|
||||
#define PREFETCHD(x)
|
||||
#define PREFETCHD(x)
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
+75
-38
@@ -87,12 +87,12 @@ BLASLONG (*ismin_k) (BLASLONG, float *, BLASLONG);
|
||||
int (*sgemm_itcopy )(BLASLONG, BLASLONG, float *, BLASLONG, float *);
|
||||
int (*sgemm_oncopy )(BLASLONG, BLASLONG, float *, BLASLONG, float *);
|
||||
int (*sgemm_otcopy )(BLASLONG, BLASLONG, float *, BLASLONG, float *);
|
||||
|
||||
|
||||
int (*strsm_kernel_LN)(BLASLONG, BLASLONG, BLASLONG, float, float *, float *, float *, BLASLONG, BLASLONG);
|
||||
int (*strsm_kernel_LT)(BLASLONG, BLASLONG, BLASLONG, float, float *, float *, float *, BLASLONG, BLASLONG);
|
||||
int (*strsm_kernel_RN)(BLASLONG, BLASLONG, BLASLONG, float, float *, float *, float *, BLASLONG, BLASLONG);
|
||||
int (*strsm_kernel_RT)(BLASLONG, BLASLONG, BLASLONG, float, float *, float *, float *, BLASLONG, BLASLONG);
|
||||
|
||||
|
||||
int (*strsm_iunucopy)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, float *);
|
||||
int (*strsm_iunncopy)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, float *);
|
||||
int (*strsm_iutucopy)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, float *);
|
||||
@@ -114,7 +114,7 @@ BLASLONG (*ismin_k) (BLASLONG, float *, BLASLONG);
|
||||
int (*strmm_kernel_RT)(BLASLONG, BLASLONG, BLASLONG, float, float *, float *, float *, BLASLONG, BLASLONG);
|
||||
int (*strmm_kernel_LN)(BLASLONG, BLASLONG, BLASLONG, float, float *, float *, float *, BLASLONG, BLASLONG);
|
||||
int (*strmm_kernel_LT)(BLASLONG, BLASLONG, BLASLONG, float, float *, float *, float *, BLASLONG, BLASLONG);
|
||||
|
||||
|
||||
int (*strmm_iunucopy)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, BLASLONG, float *);
|
||||
int (*strmm_iunncopy)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, BLASLONG, float *);
|
||||
int (*strmm_iutucopy)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, BLASLONG, float *);
|
||||
@@ -131,7 +131,7 @@ BLASLONG (*ismin_k) (BLASLONG, float *, BLASLONG);
|
||||
int (*strmm_olnncopy)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, BLASLONG, float *);
|
||||
int (*strmm_oltucopy)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, BLASLONG, float *);
|
||||
int (*strmm_oltncopy)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, BLASLONG, float *);
|
||||
|
||||
|
||||
int (*ssymm_iutcopy)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, BLASLONG, float *);
|
||||
int (*ssymm_iltcopy)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, BLASLONG, float *);
|
||||
int (*ssymm_outcopy)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, BLASLONG, float *);
|
||||
@@ -176,12 +176,12 @@ BLASLONG (*idmin_k) (BLASLONG, double *, BLASLONG);
|
||||
int (*dgemm_itcopy )(BLASLONG, BLASLONG, double *, BLASLONG, double *);
|
||||
int (*dgemm_oncopy )(BLASLONG, BLASLONG, double *, BLASLONG, double *);
|
||||
int (*dgemm_otcopy )(BLASLONG, BLASLONG, double *, BLASLONG, double *);
|
||||
|
||||
|
||||
int (*dtrsm_kernel_LN)(BLASLONG, BLASLONG, BLASLONG, double, double *, double *, double *, BLASLONG, BLASLONG);
|
||||
int (*dtrsm_kernel_LT)(BLASLONG, BLASLONG, BLASLONG, double, double *, double *, double *, BLASLONG, BLASLONG);
|
||||
int (*dtrsm_kernel_RN)(BLASLONG, BLASLONG, BLASLONG, double, double *, double *, double *, BLASLONG, BLASLONG);
|
||||
int (*dtrsm_kernel_RT)(BLASLONG, BLASLONG, BLASLONG, double, double *, double *, double *, BLASLONG, BLASLONG);
|
||||
|
||||
|
||||
int (*dtrsm_iunucopy)(BLASLONG, BLASLONG, double *, BLASLONG, BLASLONG, double *);
|
||||
int (*dtrsm_iunncopy)(BLASLONG, BLASLONG, double *, BLASLONG, BLASLONG, double *);
|
||||
int (*dtrsm_iutucopy)(BLASLONG, BLASLONG, double *, BLASLONG, BLASLONG, double *);
|
||||
@@ -203,7 +203,7 @@ BLASLONG (*idmin_k) (BLASLONG, double *, BLASLONG);
|
||||
int (*dtrmm_kernel_RT)(BLASLONG, BLASLONG, BLASLONG, double, double *, double *, double *, BLASLONG, BLASLONG);
|
||||
int (*dtrmm_kernel_LN)(BLASLONG, BLASLONG, BLASLONG, double, double *, double *, double *, BLASLONG, BLASLONG);
|
||||
int (*dtrmm_kernel_LT)(BLASLONG, BLASLONG, BLASLONG, double, double *, double *, double *, BLASLONG, BLASLONG);
|
||||
|
||||
|
||||
int (*dtrmm_iunucopy)(BLASLONG, BLASLONG, double *, BLASLONG, BLASLONG, BLASLONG, double *);
|
||||
int (*dtrmm_iunncopy)(BLASLONG, BLASLONG, double *, BLASLONG, BLASLONG, BLASLONG, double *);
|
||||
int (*dtrmm_iutucopy)(BLASLONG, BLASLONG, double *, BLASLONG, BLASLONG, BLASLONG, double *);
|
||||
@@ -220,7 +220,7 @@ BLASLONG (*idmin_k) (BLASLONG, double *, BLASLONG);
|
||||
int (*dtrmm_olnncopy)(BLASLONG, BLASLONG, double *, BLASLONG, BLASLONG, BLASLONG, double *);
|
||||
int (*dtrmm_oltucopy)(BLASLONG, BLASLONG, double *, BLASLONG, BLASLONG, BLASLONG, double *);
|
||||
int (*dtrmm_oltncopy)(BLASLONG, BLASLONG, double *, BLASLONG, BLASLONG, BLASLONG, double *);
|
||||
|
||||
|
||||
int (*dsymm_iutcopy)(BLASLONG, BLASLONG, double *, BLASLONG, BLASLONG, BLASLONG, double *);
|
||||
int (*dsymm_iltcopy)(BLASLONG, BLASLONG, double *, BLASLONG, BLASLONG, BLASLONG, double *);
|
||||
int (*dsymm_outcopy)(BLASLONG, BLASLONG, double *, BLASLONG, BLASLONG, BLASLONG, double *);
|
||||
@@ -267,12 +267,12 @@ BLASLONG (*iqmin_k) (BLASLONG, xdouble *, BLASLONG);
|
||||
int (*qgemm_itcopy )(BLASLONG, BLASLONG, xdouble *, BLASLONG, xdouble *);
|
||||
int (*qgemm_oncopy )(BLASLONG, BLASLONG, xdouble *, BLASLONG, xdouble *);
|
||||
int (*qgemm_otcopy )(BLASLONG, BLASLONG, xdouble *, BLASLONG, xdouble *);
|
||||
|
||||
|
||||
int (*qtrsm_kernel_LN)(BLASLONG, BLASLONG, BLASLONG, xdouble, xdouble *, xdouble *, xdouble *, BLASLONG, BLASLONG);
|
||||
int (*qtrsm_kernel_LT)(BLASLONG, BLASLONG, BLASLONG, xdouble, xdouble *, xdouble *, xdouble *, BLASLONG, BLASLONG);
|
||||
int (*qtrsm_kernel_RN)(BLASLONG, BLASLONG, BLASLONG, xdouble, xdouble *, xdouble *, xdouble *, BLASLONG, BLASLONG);
|
||||
int (*qtrsm_kernel_RT)(BLASLONG, BLASLONG, BLASLONG, xdouble, xdouble *, xdouble *, xdouble *, BLASLONG, BLASLONG);
|
||||
|
||||
|
||||
int (*qtrsm_iunucopy)(BLASLONG, BLASLONG, xdouble *, BLASLONG, BLASLONG, xdouble *);
|
||||
int (*qtrsm_iunncopy)(BLASLONG, BLASLONG, xdouble *, BLASLONG, BLASLONG, xdouble *);
|
||||
int (*qtrsm_iutucopy)(BLASLONG, BLASLONG, xdouble *, BLASLONG, BLASLONG, xdouble *);
|
||||
@@ -294,7 +294,7 @@ BLASLONG (*iqmin_k) (BLASLONG, xdouble *, BLASLONG);
|
||||
int (*qtrmm_kernel_RT)(BLASLONG, BLASLONG, BLASLONG, xdouble, xdouble *, xdouble *, xdouble *, BLASLONG, BLASLONG);
|
||||
int (*qtrmm_kernel_LN)(BLASLONG, BLASLONG, BLASLONG, xdouble, xdouble *, xdouble *, xdouble *, BLASLONG, BLASLONG);
|
||||
int (*qtrmm_kernel_LT)(BLASLONG, BLASLONG, BLASLONG, xdouble, xdouble *, xdouble *, xdouble *, BLASLONG, BLASLONG);
|
||||
|
||||
|
||||
int (*qtrmm_iunucopy)(BLASLONG, BLASLONG, xdouble *, BLASLONG, BLASLONG, BLASLONG, xdouble *);
|
||||
int (*qtrmm_iunncopy)(BLASLONG, BLASLONG, xdouble *, BLASLONG, BLASLONG, BLASLONG, xdouble *);
|
||||
int (*qtrmm_iutucopy)(BLASLONG, BLASLONG, xdouble *, BLASLONG, BLASLONG, BLASLONG, xdouble *);
|
||||
@@ -311,7 +311,7 @@ BLASLONG (*iqmin_k) (BLASLONG, xdouble *, BLASLONG);
|
||||
int (*qtrmm_olnncopy)(BLASLONG, BLASLONG, xdouble *, BLASLONG, BLASLONG, BLASLONG, xdouble *);
|
||||
int (*qtrmm_oltucopy)(BLASLONG, BLASLONG, xdouble *, BLASLONG, BLASLONG, BLASLONG, xdouble *);
|
||||
int (*qtrmm_oltncopy)(BLASLONG, BLASLONG, xdouble *, BLASLONG, BLASLONG, BLASLONG, xdouble *);
|
||||
|
||||
|
||||
int (*qsymm_iutcopy)(BLASLONG, BLASLONG, xdouble *, BLASLONG, BLASLONG, BLASLONG, xdouble *);
|
||||
int (*qsymm_iltcopy)(BLASLONG, BLASLONG, xdouble *, BLASLONG, BLASLONG, BLASLONG, xdouble *);
|
||||
int (*qsymm_outcopy)(BLASLONG, BLASLONG, xdouble *, BLASLONG, BLASLONG, BLASLONG, xdouble *);
|
||||
@@ -372,7 +372,7 @@ BLASLONG (*icamin_k)(BLASLONG, float *, BLASLONG);
|
||||
int (*cgemm_itcopy )(BLASLONG, BLASLONG, float *, BLASLONG, float *);
|
||||
int (*cgemm_oncopy )(BLASLONG, BLASLONG, float *, BLASLONG, float *);
|
||||
int (*cgemm_otcopy )(BLASLONG, BLASLONG, float *, BLASLONG, float *);
|
||||
|
||||
|
||||
int (*ctrsm_kernel_LN)(BLASLONG, BLASLONG, BLASLONG, float, float, float *, float *, float *, BLASLONG, BLASLONG);
|
||||
int (*ctrsm_kernel_LT)(BLASLONG, BLASLONG, BLASLONG, float, float, float *, float *, float *, BLASLONG, BLASLONG);
|
||||
int (*ctrsm_kernel_LR)(BLASLONG, BLASLONG, BLASLONG, float, float, float *, float *, float *, BLASLONG, BLASLONG);
|
||||
@@ -381,7 +381,7 @@ BLASLONG (*icamin_k)(BLASLONG, float *, BLASLONG);
|
||||
int (*ctrsm_kernel_RT)(BLASLONG, BLASLONG, BLASLONG, float, float, float *, float *, float *, BLASLONG, BLASLONG);
|
||||
int (*ctrsm_kernel_RR)(BLASLONG, BLASLONG, BLASLONG, float, float, float *, float *, float *, BLASLONG, BLASLONG);
|
||||
int (*ctrsm_kernel_RC)(BLASLONG, BLASLONG, BLASLONG, float, float, float *, float *, float *, BLASLONG, BLASLONG);
|
||||
|
||||
|
||||
int (*ctrsm_iunucopy)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, float *);
|
||||
int (*ctrsm_iunncopy)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, float *);
|
||||
int (*ctrsm_iutucopy)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, float *);
|
||||
@@ -407,7 +407,7 @@ BLASLONG (*icamin_k)(BLASLONG, float *, BLASLONG);
|
||||
int (*ctrmm_kernel_LT)(BLASLONG, BLASLONG, BLASLONG, float, float, float *, float *, float *, BLASLONG, BLASLONG);
|
||||
int (*ctrmm_kernel_LR)(BLASLONG, BLASLONG, BLASLONG, float, float, float *, float *, float *, BLASLONG, BLASLONG);
|
||||
int (*ctrmm_kernel_LC)(BLASLONG, BLASLONG, BLASLONG, float, float, float *, float *, float *, BLASLONG, BLASLONG);
|
||||
|
||||
|
||||
int (*ctrmm_iunucopy)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, BLASLONG, float *);
|
||||
int (*ctrmm_iunncopy)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, BLASLONG, float *);
|
||||
int (*ctrmm_iutucopy)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, BLASLONG, float *);
|
||||
@@ -424,7 +424,7 @@ BLASLONG (*icamin_k)(BLASLONG, float *, BLASLONG);
|
||||
int (*ctrmm_olnncopy)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, BLASLONG, float *);
|
||||
int (*ctrmm_oltucopy)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, BLASLONG, float *);
|
||||
int (*ctrmm_oltncopy)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, BLASLONG, float *);
|
||||
|
||||
|
||||
int (*csymm_iutcopy)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, BLASLONG, float *);
|
||||
int (*csymm_iltcopy)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, BLASLONG, float *);
|
||||
int (*csymm_outcopy)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, BLASLONG, float *);
|
||||
@@ -443,7 +443,7 @@ BLASLONG (*icamin_k)(BLASLONG, float *, BLASLONG);
|
||||
int (*cgemm3m_itcopyb)(BLASLONG, BLASLONG, float *, BLASLONG, float *);
|
||||
int (*cgemm3m_itcopyr)(BLASLONG, BLASLONG, float *, BLASLONG, float *);
|
||||
int (*cgemm3m_itcopyi)(BLASLONG, BLASLONG, float *, BLASLONG, float *);
|
||||
|
||||
|
||||
int (*cgemm3m_oncopyb)(BLASLONG, BLASLONG, float *, BLASLONG, float, float, float *);
|
||||
int (*cgemm3m_oncopyr)(BLASLONG, BLASLONG, float *, BLASLONG, float, float, float *);
|
||||
int (*cgemm3m_oncopyi)(BLASLONG, BLASLONG, float *, BLASLONG, float, float, float *);
|
||||
@@ -457,21 +457,21 @@ BLASLONG (*icamin_k)(BLASLONG, float *, BLASLONG);
|
||||
int (*csymm3m_ilcopyr)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, BLASLONG, float *);
|
||||
int (*csymm3m_iucopyi)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, BLASLONG, float *);
|
||||
int (*csymm3m_ilcopyi)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, BLASLONG, float *);
|
||||
|
||||
|
||||
int (*csymm3m_oucopyb)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, BLASLONG, float, float, float *);
|
||||
int (*csymm3m_olcopyb)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, BLASLONG, float, float, float *);
|
||||
int (*csymm3m_oucopyr)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, BLASLONG, float, float, float *);
|
||||
int (*csymm3m_olcopyr)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, BLASLONG, float, float, float *);
|
||||
int (*csymm3m_oucopyi)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, BLASLONG, float, float, float *);
|
||||
int (*csymm3m_olcopyi)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, BLASLONG, float, float, float *);
|
||||
|
||||
|
||||
int (*chemm3m_iucopyb)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, BLASLONG, float *);
|
||||
int (*chemm3m_ilcopyb)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, BLASLONG, float *);
|
||||
int (*chemm3m_iucopyr)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, BLASLONG, float *);
|
||||
int (*chemm3m_ilcopyr)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, BLASLONG, float *);
|
||||
int (*chemm3m_iucopyi)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, BLASLONG, float *);
|
||||
int (*chemm3m_ilcopyi)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, BLASLONG, float *);
|
||||
|
||||
|
||||
int (*chemm3m_oucopyb)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, BLASLONG, float, float, float *);
|
||||
int (*chemm3m_olcopyb)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, BLASLONG, float, float, float *);
|
||||
int (*chemm3m_oucopyr)(BLASLONG, BLASLONG, float *, BLASLONG, BLASLONG, BLASLONG, float, float, float *);
|
||||
@@ -532,7 +532,7 @@ BLASLONG (*izamin_k)(BLASLONG, double *, BLASLONG);
|
||||
int (*zgemm_itcopy )(BLASLONG, BLASLONG, double *, BLASLONG, double *);
|
||||
int (*zgemm_oncopy )(BLASLONG, BLASLONG, double *, BLASLONG, double *);
|
||||
int (*zgemm_otcopy )(BLASLONG, BLASLONG, double *, BLASLONG, double *);
|
||||
|
||||
|
||||
int (*ztrsm_kernel_LN)(BLASLONG, BLASLONG, BLASLONG, double, double, double *, double *, double *, BLASLONG, BLASLONG);
|
||||
int (*ztrsm_kernel_LT)(BLASLONG, BLASLONG, BLASLONG, double, double, double *, double *, double *, BLASLONG, BLASLONG);
|
||||
int (*ztrsm_kernel_LR)(BLASLONG, BLASLONG, BLASLONG, double, double, double *, double *, double *, BLASLONG, BLASLONG);
|
||||
@@ -541,7 +541,7 @@ BLASLONG (*izamin_k)(BLASLONG, double *, BLASLONG);
|
||||
int (*ztrsm_kernel_RT)(BLASLONG, BLASLONG, BLASLONG, double, double, double *, double *, double *, BLASLONG, BLASLONG);
|
||||
int (*ztrsm_kernel_RR)(BLASLONG, BLASLONG, BLASLONG, double, double, double *, double *, double *, BLASLONG, BLASLONG);
|
||||
int (*ztrsm_kernel_RC)(BLASLONG, BLASLONG, BLASLONG, double, double, double *, double *, double *, BLASLONG, BLASLONG);
|
||||
|
||||
|
||||
int (*ztrsm_iunucopy)(BLASLONG, BLASLONG, double *, BLASLONG, BLASLONG, double *);
|
||||
int (*ztrsm_iunncopy)(BLASLONG, BLASLONG, double *, BLASLONG, BLASLONG, double *);
|
||||
int (*ztrsm_iutucopy)(BLASLONG, BLASLONG, double *, BLASLONG, BLASLONG, double *);
|
||||
@@ -567,7 +567,7 @@ BLASLONG (*izamin_k)(BLASLONG, double *, BLASLONG);
|
||||
int (*ztrmm_kernel_LT)(BLASLONG, BLASLONG, BLASLONG, double, double, double *, double *, double *, BLASLONG, BLASLONG);
|
||||
int (*ztrmm_kernel_LR)(BLASLONG, BLASLONG, BLASLONG, double, double, double *, double *, double *, BLASLONG, BLASLONG);
|
||||
int (*ztrmm_kernel_LC)(BLASLONG, BLASLONG, BLASLONG, double, double, double *, double *, double *, BLASLONG, BLASLONG);
|
||||
|
||||
|
||||
int (*ztrmm_iunucopy)(BLASLONG, BLASLONG, double *, BLASLONG, BLASLONG, BLASLONG, double *);
|
||||
int (*ztrmm_iunncopy)(BLASLONG, BLASLONG, double *, BLASLONG, BLASLONG, BLASLONG, double *);
|
||||
int (*ztrmm_iutucopy)(BLASLONG, BLASLONG, double *, BLASLONG, BLASLONG, BLASLONG, double *);
|
||||
@@ -584,7 +584,7 @@ BLASLONG (*izamin_k)(BLASLONG, double *, BLASLONG);
|
||||
int (*ztrmm_olnncopy)(BLASLONG, BLASLONG, double *, BLASLONG, BLASLONG, BLASLONG, double *);
|
||||
int (*ztrmm_oltucopy)(BLASLONG, BLASLONG, double *, BLASLONG, BLASLONG, BLASLONG, double *);
|
||||
int (*ztrmm_oltncopy)(BLASLONG, BLASLONG, double *, BLASLONG, BLASLONG, BLASLONG, double *);
|
||||
|
||||
|
||||
int (*zsymm_iutcopy)(BLASLONG, BLASLONG, double *, BLASLONG, BLASLONG, BLASLONG, double *);
|
||||
int (*zsymm_iltcopy)(BLASLONG, BLASLONG, double *, BLASLONG, BLASLONG, BLASLONG, double *);
|
||||
int (*zsymm_outcopy)(BLASLONG, BLASLONG, double *, BLASLONG, BLASLONG, BLASLONG, double *);
|
||||
@@ -603,7 +603,7 @@ BLASLONG (*izamin_k)(BLASLONG, double *, BLASLONG);
|
||||
int (*zgemm3m_itcopyb)(BLASLONG, BLASLONG, double *, BLASLONG, double *);
|
||||
int (*zgemm3m_itcopyr)(BLASLONG, BLASLONG, double *, BLASLONG, double *);
|
||||
int (*zgemm3m_itcopyi)(BLASLONG, BLASLONG, double *, BLASLONG, double *);
|
||||
|
||||
|
||||
int (*zgemm3m_oncopyb)(BLASLONG, BLASLONG, double *, BLASLONG, double, double, double *);
|
||||
int (*zgemm3m_oncopyr)(BLASLONG, BLASLONG, double *, BLASLONG, double, double, double *);
|
||||
int (*zgemm3m_oncopyi)(BLASLONG, BLASLONG, double *, BLASLONG, double, double, double *);
|
||||
@@ -617,28 +617,28 @@ BLASLONG (*izamin_k)(BLASLONG, double *, BLASLONG);
|
||||
int (*zsymm3m_ilcopyr)(BLASLONG, BLASLONG, double *, BLASLONG, BLASLONG, BLASLONG, double *);
|
||||
int (*zsymm3m_iucopyi)(BLASLONG, BLASLONG, double *, BLASLONG, BLASLONG, BLASLONG, double *);
|
||||
int (*zsymm3m_ilcopyi)(BLASLONG, BLASLONG, double *, BLASLONG, BLASLONG, BLASLONG, double *);
|
||||
|
||||
|
||||
int (*zsymm3m_oucopyb)(BLASLONG, BLASLONG, double *, BLASLONG, BLASLONG, BLASLONG, double, double, double *);
|
||||
int (*zsymm3m_olcopyb)(BLASLONG, BLASLONG, double *, BLASLONG, BLASLONG, BLASLONG, double, double, double *);
|
||||
int (*zsymm3m_oucopyr)(BLASLONG, BLASLONG, double *, BLASLONG, BLASLONG, BLASLONG, double, double, double *);
|
||||
int (*zsymm3m_olcopyr)(BLASLONG, BLASLONG, double *, BLASLONG, BLASLONG, BLASLONG, double, double, double *);
|
||||
int (*zsymm3m_oucopyi)(BLASLONG, BLASLONG, double *, BLASLONG, BLASLONG, BLASLONG, double, double, double *);
|
||||
int (*zsymm3m_olcopyi)(BLASLONG, BLASLONG, double *, BLASLONG, BLASLONG, BLASLONG, double, double, double *);
|
||||
|
||||
|
||||
int (*zhemm3m_iucopyb)(BLASLONG, BLASLONG, double *, BLASLONG, BLASLONG, BLASLONG, double *);
|
||||
int (*zhemm3m_ilcopyb)(BLASLONG, BLASLONG, double *, BLASLONG, BLASLONG, BLASLONG, double *);
|
||||
int (*zhemm3m_iucopyr)(BLASLONG, BLASLONG, double *, BLASLONG, BLASLONG, BLASLONG, double *);
|
||||
int (*zhemm3m_ilcopyr)(BLASLONG, BLASLONG, double *, BLASLONG, BLASLONG, BLASLONG, double *);
|
||||
int (*zhemm3m_iucopyi)(BLASLONG, BLASLONG, double *, BLASLONG, BLASLONG, BLASLONG, double *);
|
||||
int (*zhemm3m_ilcopyi)(BLASLONG, BLASLONG, double *, BLASLONG, BLASLONG, BLASLONG, double *);
|
||||
|
||||
|
||||
int (*zhemm3m_oucopyb)(BLASLONG, BLASLONG, double *, BLASLONG, BLASLONG, BLASLONG, double, double, double *);
|
||||
int (*zhemm3m_olcopyb)(BLASLONG, BLASLONG, double *, BLASLONG, BLASLONG, BLASLONG, double, double, double *);
|
||||
int (*zhemm3m_oucopyr)(BLASLONG, BLASLONG, double *, BLASLONG, BLASLONG, BLASLONG, double, double, double *);
|
||||
int (*zhemm3m_olcopyr)(BLASLONG, BLASLONG, double *, BLASLONG, BLASLONG, BLASLONG, double, double, double *);
|
||||
int (*zhemm3m_oucopyi)(BLASLONG, BLASLONG, double *, BLASLONG, BLASLONG, BLASLONG, double, double, double *);
|
||||
int (*zhemm3m_olcopyi)(BLASLONG, BLASLONG, double *, BLASLONG, BLASLONG, BLASLONG, double, double, double *);
|
||||
|
||||
|
||||
int (*zneg_tcopy) (BLASLONG, BLASLONG, double *, BLASLONG, double *);
|
||||
int (*zlaswp_ncopy) (BLASLONG, BLASLONG, BLASLONG, double *, BLASLONG, blasint *, double *);
|
||||
|
||||
@@ -694,7 +694,7 @@ BLASLONG (*ixamin_k)(BLASLONG, xdouble *, BLASLONG);
|
||||
int (*xgemm_itcopy )(BLASLONG, BLASLONG, xdouble *, BLASLONG, xdouble *);
|
||||
int (*xgemm_oncopy )(BLASLONG, BLASLONG, xdouble *, BLASLONG, xdouble *);
|
||||
int (*xgemm_otcopy )(BLASLONG, BLASLONG, xdouble *, BLASLONG, xdouble *);
|
||||
|
||||
|
||||
int (*xtrsm_kernel_LN)(BLASLONG, BLASLONG, BLASLONG, xdouble, xdouble, xdouble *, xdouble *, xdouble *, BLASLONG, BLASLONG);
|
||||
int (*xtrsm_kernel_LT)(BLASLONG, BLASLONG, BLASLONG, xdouble, xdouble, xdouble *, xdouble *, xdouble *, BLASLONG, BLASLONG);
|
||||
int (*xtrsm_kernel_LR)(BLASLONG, BLASLONG, BLASLONG, xdouble, xdouble, xdouble *, xdouble *, xdouble *, BLASLONG, BLASLONG);
|
||||
@@ -703,7 +703,7 @@ BLASLONG (*ixamin_k)(BLASLONG, xdouble *, BLASLONG);
|
||||
int (*xtrsm_kernel_RT)(BLASLONG, BLASLONG, BLASLONG, xdouble, xdouble, xdouble *, xdouble *, xdouble *, BLASLONG, BLASLONG);
|
||||
int (*xtrsm_kernel_RR)(BLASLONG, BLASLONG, BLASLONG, xdouble, xdouble, xdouble *, xdouble *, xdouble *, BLASLONG, BLASLONG);
|
||||
int (*xtrsm_kernel_RC)(BLASLONG, BLASLONG, BLASLONG, xdouble, xdouble, xdouble *, xdouble *, xdouble *, BLASLONG, BLASLONG);
|
||||
|
||||
|
||||
int (*xtrsm_iunucopy)(BLASLONG, BLASLONG, xdouble *, BLASLONG, BLASLONG, xdouble *);
|
||||
int (*xtrsm_iunncopy)(BLASLONG, BLASLONG, xdouble *, BLASLONG, BLASLONG, xdouble *);
|
||||
int (*xtrsm_iutucopy)(BLASLONG, BLASLONG, xdouble *, BLASLONG, BLASLONG, xdouble *);
|
||||
@@ -729,7 +729,7 @@ BLASLONG (*ixamin_k)(BLASLONG, xdouble *, BLASLONG);
|
||||
int (*xtrmm_kernel_LT)(BLASLONG, BLASLONG, BLASLONG, xdouble, xdouble, xdouble *, xdouble *, xdouble *, BLASLONG, BLASLONG);
|
||||
int (*xtrmm_kernel_LR)(BLASLONG, BLASLONG, BLASLONG, xdouble, xdouble, xdouble *, xdouble *, xdouble *, BLASLONG, BLASLONG);
|
||||
int (*xtrmm_kernel_LC)(BLASLONG, BLASLONG, BLASLONG, xdouble, xdouble, xdouble *, xdouble *, xdouble *, BLASLONG, BLASLONG);
|
||||
|
||||
|
||||
int (*xtrmm_iunucopy)(BLASLONG, BLASLONG, xdouble *, BLASLONG, BLASLONG, BLASLONG, xdouble *);
|
||||
int (*xtrmm_iunncopy)(BLASLONG, BLASLONG, xdouble *, BLASLONG, BLASLONG, BLASLONG, xdouble *);
|
||||
int (*xtrmm_iutucopy)(BLASLONG, BLASLONG, xdouble *, BLASLONG, BLASLONG, BLASLONG, xdouble *);
|
||||
@@ -746,7 +746,7 @@ BLASLONG (*ixamin_k)(BLASLONG, xdouble *, BLASLONG);
|
||||
int (*xtrmm_olnncopy)(BLASLONG, BLASLONG, xdouble *, BLASLONG, BLASLONG, BLASLONG, xdouble *);
|
||||
int (*xtrmm_oltucopy)(BLASLONG, BLASLONG, xdouble *, BLASLONG, BLASLONG, BLASLONG, xdouble *);
|
||||
int (*xtrmm_oltncopy)(BLASLONG, BLASLONG, xdouble *, BLASLONG, BLASLONG, BLASLONG, xdouble *);
|
||||
|
||||
|
||||
int (*xsymm_iutcopy)(BLASLONG, BLASLONG, xdouble *, BLASLONG, BLASLONG, BLASLONG, xdouble *);
|
||||
int (*xsymm_iltcopy)(BLASLONG, BLASLONG, xdouble *, BLASLONG, BLASLONG, BLASLONG, xdouble *);
|
||||
int (*xsymm_outcopy)(BLASLONG, BLASLONG, xdouble *, BLASLONG, BLASLONG, BLASLONG, xdouble *);
|
||||
@@ -765,7 +765,7 @@ BLASLONG (*ixamin_k)(BLASLONG, xdouble *, BLASLONG);
|
||||
int (*xgemm3m_itcopyb)(BLASLONG, BLASLONG, xdouble *, BLASLONG, xdouble *);
|
||||
int (*xgemm3m_itcopyr)(BLASLONG, BLASLONG, xdouble *, BLASLONG, xdouble *);
|
||||
int (*xgemm3m_itcopyi)(BLASLONG, BLASLONG, xdouble *, BLASLONG, xdouble *);
|
||||
|
||||
|
||||
int (*xgemm3m_oncopyb)(BLASLONG, BLASLONG, xdouble *, BLASLONG, xdouble, xdouble, xdouble *);
|
||||
int (*xgemm3m_oncopyr)(BLASLONG, BLASLONG, xdouble *, BLASLONG, xdouble, xdouble, xdouble *);
|
||||
int (*xgemm3m_oncopyi)(BLASLONG, BLASLONG, xdouble *, BLASLONG, xdouble, xdouble, xdouble *);
|
||||
@@ -779,21 +779,21 @@ BLASLONG (*ixamin_k)(BLASLONG, xdouble *, BLASLONG);
|
||||
int (*xsymm3m_ilcopyr)(BLASLONG, BLASLONG, xdouble *, BLASLONG, BLASLONG, BLASLONG, xdouble *);
|
||||
int (*xsymm3m_iucopyi)(BLASLONG, BLASLONG, xdouble *, BLASLONG, BLASLONG, BLASLONG, xdouble *);
|
||||
int (*xsymm3m_ilcopyi)(BLASLONG, BLASLONG, xdouble *, BLASLONG, BLASLONG, BLASLONG, xdouble *);
|
||||
|
||||
|
||||
int (*xsymm3m_oucopyb)(BLASLONG, BLASLONG, xdouble *, BLASLONG, BLASLONG, BLASLONG, xdouble, xdouble, xdouble *);
|
||||
int (*xsymm3m_olcopyb)(BLASLONG, BLASLONG, xdouble *, BLASLONG, BLASLONG, BLASLONG, xdouble, xdouble, xdouble *);
|
||||
int (*xsymm3m_oucopyr)(BLASLONG, BLASLONG, xdouble *, BLASLONG, BLASLONG, BLASLONG, xdouble, xdouble, xdouble *);
|
||||
int (*xsymm3m_olcopyr)(BLASLONG, BLASLONG, xdouble *, BLASLONG, BLASLONG, BLASLONG, xdouble, xdouble, xdouble *);
|
||||
int (*xsymm3m_oucopyi)(BLASLONG, BLASLONG, xdouble *, BLASLONG, BLASLONG, BLASLONG, xdouble, xdouble, xdouble *);
|
||||
int (*xsymm3m_olcopyi)(BLASLONG, BLASLONG, xdouble *, BLASLONG, BLASLONG, BLASLONG, xdouble, xdouble, xdouble *);
|
||||
|
||||
|
||||
int (*xhemm3m_iucopyb)(BLASLONG, BLASLONG, xdouble *, BLASLONG, BLASLONG, BLASLONG, xdouble *);
|
||||
int (*xhemm3m_ilcopyb)(BLASLONG, BLASLONG, xdouble *, BLASLONG, BLASLONG, BLASLONG, xdouble *);
|
||||
int (*xhemm3m_iucopyr)(BLASLONG, BLASLONG, xdouble *, BLASLONG, BLASLONG, BLASLONG, xdouble *);
|
||||
int (*xhemm3m_ilcopyr)(BLASLONG, BLASLONG, xdouble *, BLASLONG, BLASLONG, BLASLONG, xdouble *);
|
||||
int (*xhemm3m_iucopyi)(BLASLONG, BLASLONG, xdouble *, BLASLONG, BLASLONG, BLASLONG, xdouble *);
|
||||
int (*xhemm3m_ilcopyi)(BLASLONG, BLASLONG, xdouble *, BLASLONG, BLASLONG, BLASLONG, xdouble *);
|
||||
|
||||
|
||||
int (*xhemm3m_oucopyb)(BLASLONG, BLASLONG, xdouble *, BLASLONG, BLASLONG, BLASLONG, xdouble, xdouble, xdouble *);
|
||||
int (*xhemm3m_olcopyb)(BLASLONG, BLASLONG, xdouble *, BLASLONG, BLASLONG, BLASLONG, xdouble, xdouble, xdouble *);
|
||||
int (*xhemm3m_oucopyr)(BLASLONG, BLASLONG, xdouble *, BLASLONG, BLASLONG, BLASLONG, xdouble, xdouble, xdouble *);
|
||||
@@ -806,10 +806,47 @@ BLASLONG (*ixamin_k)(BLASLONG, xdouble *, BLASLONG);
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
void (*init)(void);
|
||||
|
||||
int snum_opt, dnum_opt, qnum_opt;
|
||||
|
||||
int (*saxpby_k) (BLASLONG, float, float*, BLASLONG,float, float*, BLASLONG);
|
||||
int (*daxpby_k) (BLASLONG, double, double*, BLASLONG,double, double*, BLASLONG);
|
||||
int (*caxpby_k) (BLASLONG, float, float, float*, BLASLONG,float,float, float*, BLASLONG);
|
||||
int (*zaxpby_k) (BLASLONG, double, double, double*, BLASLONG,double,double, double*, BLASLONG);
|
||||
|
||||
int (*somatcopy_k_cn) (BLASLONG, BLASLONG, float, float*, BLASLONG, float*, BLASLONG);
|
||||
int (*somatcopy_k_ct) (BLASLONG, BLASLONG, float, float*, BLASLONG, float*, BLASLONG);
|
||||
int (*somatcopy_k_rn) (BLASLONG, BLASLONG, float, float*, BLASLONG, float*, BLASLONG);
|
||||
int (*somatcopy_k_rt) (BLASLONG, BLASLONG, float, float*, BLASLONG, float*, BLASLONG);
|
||||
|
||||
int (*domatcopy_k_cn) (BLASLONG, BLASLONG, double, double*, BLASLONG, double*, BLASLONG);
|
||||
int (*domatcopy_k_ct) (BLASLONG, BLASLONG, double, double*, BLASLONG, double*, BLASLONG);
|
||||
int (*domatcopy_k_rn) (BLASLONG, BLASLONG, double, double*, BLASLONG, double*, BLASLONG);
|
||||
int (*domatcopy_k_rt) (BLASLONG, BLASLONG, double, double*, BLASLONG, double*, BLASLONG);
|
||||
|
||||
int (*comatcopy_k_cn) (BLASLONG, BLASLONG, float, float, float*, BLASLONG, float*, BLASLONG);
|
||||
int (*comatcopy_k_ct) (BLASLONG, BLASLONG, float, float, float*, BLASLONG, float*, BLASLONG);
|
||||
int (*comatcopy_k_rn) (BLASLONG, BLASLONG, float, float, float*, BLASLONG, float*, BLASLONG);
|
||||
int (*comatcopy_k_rt) (BLASLONG, BLASLONG, float, float, float*, BLASLONG, float*, BLASLONG);
|
||||
|
||||
int (*comatcopy_k_cnc) (BLASLONG, BLASLONG, float, float, float*, BLASLONG, float*, BLASLONG);
|
||||
int (*comatcopy_k_ctc) (BLASLONG, BLASLONG, float, float, float*, BLASLONG, float*, BLASLONG);
|
||||
int (*comatcopy_k_rnc) (BLASLONG, BLASLONG, float, float, float*, BLASLONG, float*, BLASLONG);
|
||||
int (*comatcopy_k_rtc) (BLASLONG, BLASLONG, float, float, float*, BLASLONG, float*, BLASLONG);
|
||||
|
||||
int (*zomatcopy_k_cn) (BLASLONG, BLASLONG, double, double, double*, BLASLONG, double*, BLASLONG);
|
||||
int (*zomatcopy_k_ct) (BLASLONG, BLASLONG, double, double, double*, BLASLONG, double*, BLASLONG);
|
||||
int (*zomatcopy_k_rn) (BLASLONG, BLASLONG, double, double, double*, BLASLONG, double*, BLASLONG);
|
||||
int (*zomatcopy_k_rt) (BLASLONG, BLASLONG, double, double, double*, BLASLONG, double*, BLASLONG);
|
||||
|
||||
int (*zomatcopy_k_cnc) (BLASLONG, BLASLONG, double, double, double*, BLASLONG, double*, BLASLONG);
|
||||
int (*zomatcopy_k_ctc) (BLASLONG, BLASLONG, double, double, double*, BLASLONG, double*, BLASLONG);
|
||||
int (*zomatcopy_k_rnc) (BLASLONG, BLASLONG, double, double, double*, BLASLONG, double*, BLASLONG);
|
||||
int (*zomatcopy_k_rtc) (BLASLONG, BLASLONG, double, double, double*, BLASLONG, double*, BLASLONG);
|
||||
|
||||
|
||||
} gotoblas_t;
|
||||
|
||||
extern gotoblas_t *gotoblas;
|
||||
@@ -865,7 +902,7 @@ extern gotoblas_t *gotoblas;
|
||||
|
||||
#else
|
||||
|
||||
#define DTB_ENTRIES DTB_DEFAULT_ENTRIES
|
||||
#define DTB_ENTRIES DTB_DEFAULT_ENTRIES
|
||||
|
||||
#define GEMM_OFFSET_A GEMM_DEFAULT_OFFSET_A
|
||||
#define GEMM_OFFSET_B GEMM_DEFAULT_OFFSET_B
|
||||
|
||||
+1
-1
@@ -114,7 +114,7 @@ static inline unsigned long getstackaddr(void){
|
||||
__asm__ __volatile__ ("mr %0, 1"
|
||||
: "=r"(addr) : : "memory");
|
||||
|
||||
return addr;
|
||||
return addr;
|
||||
};
|
||||
|
||||
#if defined(OS_LINUX) || defined(OS_AIX)
|
||||
|
||||
+12
-12
@@ -13,19 +13,19 @@ met:
|
||||
notice, this list of conditions and the following disclaimer in
|
||||
the documentation and/or other materials provided with the
|
||||
distribution.
|
||||
3. Neither the name of the ISCAS nor the names of its contributors may
|
||||
be used to endorse or promote products derived from this software
|
||||
3. Neither the name of the ISCAS nor the names of its contributors may
|
||||
be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
||||
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
**********************************************************************************/
|
||||
@@ -65,5 +65,5 @@ void BLASFUNC_REF(drotmg)(double *, double *, double *, double *, double *);
|
||||
double BLASFUNC_REF(dsdot)(blasint *, float *, blasint *, float *, blasint*);
|
||||
|
||||
FLOATRET BLASFUNC_REF(samax) (blasint *, float *, blasint *);
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
+18
-2
@@ -17,7 +17,7 @@
|
||||
#define SCOPY_K scopy_k
|
||||
#define SDOTU_K sdot_k
|
||||
#define SDOTC_K sdot_k
|
||||
#define SDSDOT_K sdot_k
|
||||
#define SDSDOT_K dsdot_k
|
||||
#define DSDOT_K dsdot_k
|
||||
#define SNRM2_K snrm2_k
|
||||
#define SSCAL_K sscal_k
|
||||
@@ -146,6 +146,14 @@
|
||||
#define SNEG_TCOPY sneg_tcopy
|
||||
#define SLASWP_NCOPY slaswp_ncopy
|
||||
|
||||
#define SAXPBY_K saxpby_k
|
||||
|
||||
#define SOMATCOPY_K_CN somatcopy_k_cn
|
||||
#define SOMATCOPY_K_RN somatcopy_k_rn
|
||||
#define SOMATCOPY_K_CT somatcopy_k_ct
|
||||
#define SOMATCOPY_K_RT somatcopy_k_rt
|
||||
|
||||
|
||||
#else
|
||||
|
||||
#define SAMAX_K gotoblas -> samax_k
|
||||
@@ -162,7 +170,7 @@
|
||||
#define SCOPY_K gotoblas -> scopy_k
|
||||
#define SDOTU_K gotoblas -> sdot_k
|
||||
#define SDOTC_K gotoblas -> sdot_k
|
||||
#define SDSDOT_K gotoblas -> sdot_k
|
||||
#define SDSDOT_K gotoblas -> dsdot_k
|
||||
#define DSDOT_K gotoblas -> dsdot_k
|
||||
#define SNRM2_K gotoblas -> snrm2_k
|
||||
#define SSCAL_K gotoblas -> sscal_k
|
||||
@@ -259,6 +267,14 @@
|
||||
#define SNEG_TCOPY gotoblas -> sneg_tcopy
|
||||
#define SLASWP_NCOPY gotoblas -> slaswp_ncopy
|
||||
|
||||
#define SAXPBY_K gotoblas -> saxpby_k
|
||||
|
||||
#define SOMATCOPY_K_CN gotoblas -> somatcopy_k_cn
|
||||
#define SOMATCOPY_K_RN gotoblas -> somatcopy_k_rn
|
||||
#define SOMATCOPY_K_CT gotoblas -> somatcopy_k_ct
|
||||
#define SOMATCOPY_K_RT gotoblas -> somatcopy_k_rt
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
#define SGEMM_NN sgemm_nn
|
||||
|
||||
+23
-14
@@ -130,7 +130,7 @@ static __inline int blas_quickdivide(blasint x, blasint y){
|
||||
#define FSQRT fsqrts
|
||||
#define FDIV fdivs
|
||||
#endif
|
||||
|
||||
|
||||
#define HALT prefetch [%g0], 5
|
||||
|
||||
#define FMADDS(rs1, rs2, rs3, rd) \
|
||||
@@ -170,19 +170,19 @@ static __inline int blas_quickdivide(blasint x, blasint y){
|
||||
.word ((2 << 30) | ((rd) << 25) | ( 0x36 << 19) | ( 0x7e << 5))
|
||||
|
||||
#ifndef DOUBLE
|
||||
#define FCLR(a) FCLRS(a)
|
||||
#define FONE(a) FONES(a)
|
||||
#define FMADD(a, b, c, d) FMADDS(a, b, c, d)
|
||||
#define FMSUB(a, b, c, d) FMSUBS(a, b, c, d)
|
||||
#define FNMADD(a, b, c, d) FNMADDS(a, b, c, d)
|
||||
#define FNMSUB(a, b, c, d) FNMSUBS(a, b, c, d)
|
||||
#define FCLR(a) FCLRS(a)
|
||||
#define FONE(a) FONES(a)
|
||||
#define FMADD(a, b, c, d) FMADDS(a, b, c, d)
|
||||
#define FMSUB(a, b, c, d) FMSUBS(a, b, c, d)
|
||||
#define FNMADD(a, b, c, d) FNMADDS(a, b, c, d)
|
||||
#define FNMSUB(a, b, c, d) FNMSUBS(a, b, c, d)
|
||||
#else
|
||||
#define FCLR(a) FCLRD(a)
|
||||
#define FONE(a) FONED(a)
|
||||
#define FMADD(a, b, c, d) FMADDD(a, b, c, d)
|
||||
#define FMSUB(a, b, c, d) FMSUBD(a, b, c, d)
|
||||
#define FNMADD(a, b, c, d) FNMADDD(a, b, c, d)
|
||||
#define FNMSUB(a, b, c, d) FNMSUBD(a, b, c, d)
|
||||
#define FCLR(a) FCLRD(a)
|
||||
#define FONE(a) FONED(a)
|
||||
#define FMADD(a, b, c, d) FMADDD(a, b, c, d)
|
||||
#define FMSUB(a, b, c, d) FMSUBD(a, b, c, d)
|
||||
#define FNMADD(a, b, c, d) FNMADDD(a, b, c, d)
|
||||
#define FNMSUB(a, b, c, d) FNMSUBD(a, b, c, d)
|
||||
#endif
|
||||
|
||||
#ifndef F_INTERFACE
|
||||
@@ -199,8 +199,17 @@ static __inline int blas_quickdivide(blasint x, blasint y){
|
||||
.type REALNAME, #function; \
|
||||
.proc 07; \
|
||||
REALNAME:;
|
||||
|
||||
#if defined(__linux__) && defined(__ELF__)
|
||||
#define GNUSTACK .section .note.GNU-stack,"",@progbits
|
||||
#else
|
||||
#define GNUSTACK
|
||||
#endif
|
||||
|
||||
#define EPILOGUE \
|
||||
.size REALNAME, .-REALNAME
|
||||
.size REALNAME, .-REALNAME; \
|
||||
GNUSTACK
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
+4
-4
@@ -103,7 +103,7 @@ typedef struct blas_queue {
|
||||
|
||||
struct blas_queue *next;
|
||||
|
||||
#if defined( __WIN32__) || defined(__CYGWIN32__)
|
||||
#if defined( __WIN32__) || defined(__CYGWIN32__) || defined(_WIN32) || defined(__CYGWIN__)
|
||||
CRITICAL_SECTION lock;
|
||||
HANDLE finish;
|
||||
#else
|
||||
@@ -176,7 +176,7 @@ int exec_blas(BLASLONG num_cpu, blas_param_t *param, void *buffer);
|
||||
|
||||
int blas_level1_thread(int mode, BLASLONG m, BLASLONG n, BLASLONG k, void *alpha,
|
||||
void *a, BLASLONG lda,
|
||||
void *b, BLASLONG ldb,
|
||||
void *b, BLASLONG ldb,
|
||||
void *c, BLASLONG ldc, int (*function)(), int threads);
|
||||
|
||||
int gemm_thread_m (int mode, blas_arg_t *, BLASLONG *, BLASLONG *, int (*function)(), void *, void *, BLASLONG);
|
||||
@@ -187,14 +187,14 @@ int gemm_thread_mn(int mode, blas_arg_t *, BLASLONG *, BLASLONG *, int (*functio
|
||||
|
||||
int gemm_thread_variable(int mode, blas_arg_t *, BLASLONG *, BLASLONG *, int (*function)(), void *, void *, BLASLONG, BLASLONG);
|
||||
|
||||
int trsm_thread(int mode, BLASLONG m, BLASLONG n,
|
||||
int trsm_thread(int mode, BLASLONG m, BLASLONG n,
|
||||
double alpha_r, double alpha_i,
|
||||
void *a, BLASLONG lda,
|
||||
void *c, BLASLONG ldc, int (*function)(), void *buffer);
|
||||
|
||||
int syrk_thread(int mode, blas_arg_t *, BLASLONG *, BLASLONG *, int (*function)(), void *, void *, BLASLONG);
|
||||
|
||||
int beta_thread(int mode, BLASLONG m, BLASLONG n,
|
||||
int beta_thread(int mode, BLASLONG m, BLASLONG n,
|
||||
double alpha_r, double alpha_i,
|
||||
void *c, BLASLONG ldc, int (*fuction)());
|
||||
|
||||
|
||||
+9
-7
@@ -55,7 +55,7 @@ static void __inline blas_lock(volatile BLASULONG *address){
|
||||
|
||||
do {
|
||||
while (*address) {YIELDING;};
|
||||
|
||||
|
||||
__asm__ __volatile__(
|
||||
"xchgl %0, %1\n"
|
||||
: "=r"(ret), "=m"(*address)
|
||||
@@ -70,8 +70,8 @@ static __inline unsigned long long rpcc(void){
|
||||
unsigned int a, d;
|
||||
|
||||
__asm__ __volatile__ ("rdtsc" : "=a" (a), "=d" (d));
|
||||
|
||||
return ((unsigned long long)a + ((unsigned long long)d << 32));
|
||||
|
||||
return ((unsigned long long)a + ((unsigned long long)d << 32));
|
||||
};
|
||||
|
||||
static __inline unsigned long getstackaddr(void){
|
||||
@@ -80,7 +80,7 @@ static __inline unsigned long getstackaddr(void){
|
||||
__asm__ __volatile__ ("mov %%esp, %0"
|
||||
: "=r"(addr) : : "memory");
|
||||
|
||||
return addr;
|
||||
return addr;
|
||||
};
|
||||
|
||||
|
||||
@@ -301,7 +301,9 @@ REALNAME:
|
||||
#define PROFCODE
|
||||
#endif
|
||||
|
||||
#define EPILOGUE .size REALNAME, .-REALNAME
|
||||
#define EPILOGUE \
|
||||
.size REALNAME, .-REALNAME; \
|
||||
.section .note.GNU-stack,"",@progbits
|
||||
|
||||
#endif
|
||||
|
||||
@@ -363,9 +365,9 @@ REALNAME:
|
||||
#ifndef ALIGN_6
|
||||
#define ALIGN_6 .align 64
|
||||
#endif
|
||||
// ffreep %st(0).
|
||||
// ffreep %st(0).
|
||||
// Because Clang didn't support ffreep, we directly use the opcode.
|
||||
// Please check out http://www.sandpile.org/x86/opc_fpu.htm
|
||||
// Please check out http://www.sandpile.org/x86/opc_fpu.htm
|
||||
#ifndef ffreep
|
||||
#define ffreep .byte 0xdf, 0xc0 #
|
||||
#endif
|
||||
|
||||
+10
-7
@@ -60,7 +60,7 @@ static void __inline blas_lock(volatile BLASULONG *address){
|
||||
|
||||
do {
|
||||
while (*address) {YIELDING;};
|
||||
|
||||
|
||||
__asm__ __volatile__(
|
||||
"xchgl %0, %1\n"
|
||||
: "=r"(ret), "=m"(*address)
|
||||
@@ -74,8 +74,8 @@ static __inline BLASULONG rpcc(void){
|
||||
BLASULONG a, d;
|
||||
|
||||
__asm__ __volatile__ ("rdtsc" : "=a" (a), "=d" (d));
|
||||
|
||||
return ((BLASULONG)a + ((BLASULONG)d << 32));
|
||||
|
||||
return ((BLASULONG)a + ((BLASULONG)d << 32));
|
||||
}
|
||||
|
||||
#define RPCC64BIT
|
||||
@@ -86,7 +86,7 @@ static __inline BLASULONG getstackaddr(void){
|
||||
__asm__ __volatile__ ("movq %%rsp, %0"
|
||||
: "=r"(addr) : : "memory");
|
||||
|
||||
return addr;
|
||||
return addr;
|
||||
}
|
||||
|
||||
static __inline void cpuid(int op, int *eax, int *ebx, int *ecx, int *edx){
|
||||
@@ -372,7 +372,10 @@ REALNAME:
|
||||
#define PROFCODE
|
||||
#endif
|
||||
|
||||
#define EPILOGUE .size REALNAME, .-REALNAME
|
||||
#define EPILOGUE \
|
||||
.size REALNAME, .-REALNAME; \
|
||||
.section .note.GNU-stack,"",@progbits
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
@@ -454,9 +457,9 @@ REALNAME:
|
||||
#define ALIGN_6 .align 64
|
||||
#endif
|
||||
|
||||
// ffreep %st(0).
|
||||
// ffreep %st(0).
|
||||
// Because Clang didn't support ffreep, we directly use the opcode.
|
||||
// Please check out http://www.sandpile.org/x86/opc_fpu.htm
|
||||
// Please check out http://www.sandpile.org/x86/opc_fpu.htm
|
||||
#ifndef ffreep
|
||||
#define ffreep .byte 0xdf, 0xc0 #
|
||||
#endif
|
||||
|
||||
+23
@@ -209,6 +209,18 @@
|
||||
#define ZNEG_TCOPY zneg_tcopy
|
||||
#define ZLASWP_NCOPY zlaswp_ncopy
|
||||
|
||||
#define ZAXPBY_K zaxpby_k
|
||||
|
||||
#define ZOMATCOPY_K_CN zomatcopy_k_cn
|
||||
#define ZOMATCOPY_K_RN zomatcopy_k_rn
|
||||
#define ZOMATCOPY_K_CT zomatcopy_k_ct
|
||||
#define ZOMATCOPY_K_RT zomatcopy_k_rt
|
||||
#define ZOMATCOPY_K_CNC zomatcopy_k_cnc
|
||||
#define ZOMATCOPY_K_RNC zomatcopy_k_rnc
|
||||
#define ZOMATCOPY_K_CTC zomatcopy_k_ctc
|
||||
#define ZOMATCOPY_K_RTC zomatcopy_k_rtc
|
||||
|
||||
|
||||
#else
|
||||
|
||||
#define ZAMAX_K gotoblas -> zamax_k
|
||||
@@ -380,6 +392,17 @@
|
||||
#define ZNEG_TCOPY gotoblas -> zneg_tcopy
|
||||
#define ZLASWP_NCOPY gotoblas -> zlaswp_ncopy
|
||||
|
||||
#define ZAXPBY_K gotoblas -> zaxpby_k
|
||||
|
||||
#define ZOMATCOPY_K_CN gotoblas -> zomatcopy_k_cn
|
||||
#define ZOMATCOPY_K_RN gotoblas -> zomatcopy_k_rn
|
||||
#define ZOMATCOPY_K_CT gotoblas -> zomatcopy_k_ct
|
||||
#define ZOMATCOPY_K_RT gotoblas -> zomatcopy_k_rt
|
||||
#define ZOMATCOPY_K_CNC gotoblas -> zomatcopy_k_cnc
|
||||
#define ZOMATCOPY_K_RNC gotoblas -> zomatcopy_k_rnc
|
||||
#define ZOMATCOPY_K_CTC gotoblas -> zomatcopy_k_ctc
|
||||
#define ZOMATCOPY_K_RTC gotoblas -> zomatcopy_k_rtc
|
||||
|
||||
#endif
|
||||
|
||||
#define ZGEMM_NN zgemm_nn
|
||||
|
||||
@@ -39,10 +39,10 @@
|
||||
#if defined(__APPLE__) && defined(__i386__)
|
||||
|
||||
/* Quick hack for Darwin/x86 */
|
||||
|
||||
|
||||
.text
|
||||
.globl _cpuid
|
||||
_cpuid:
|
||||
_cpuid:
|
||||
pushl %esi
|
||||
pushl %ebx
|
||||
|
||||
|
||||
@@ -107,7 +107,7 @@
|
||||
#define CORE_BOBCAT 21
|
||||
#define CORE_BULLDOZER 22
|
||||
#define CORE_PILEDRIVER 23
|
||||
#define CORE_HASWELL CORE_SANDYBRIDGE
|
||||
#define CORE_HASWELL 24
|
||||
|
||||
#define HAVE_SSE (1 << 0)
|
||||
#define HAVE_SSE2 (1 << 1)
|
||||
@@ -200,7 +200,6 @@ typedef struct {
|
||||
#define CPUTYPE_BOBCAT 45
|
||||
#define CPUTYPE_BULLDOZER 46
|
||||
#define CPUTYPE_PILEDRIVER 47
|
||||
// this define is because BLAS doesn't have haswell specific optimizations yet
|
||||
#define CPUTYPE_HASWELL CPUTYPE_SANDYBRIDGE
|
||||
#define CPUTYPE_HASWELL 48
|
||||
|
||||
#endif
|
||||
|
||||
+4
-4
@@ -50,7 +50,7 @@ int implver(void){
|
||||
#endif
|
||||
return arch;
|
||||
}
|
||||
|
||||
|
||||
void get_architecture(void){
|
||||
printf("ALPHA");
|
||||
}
|
||||
@@ -67,7 +67,7 @@ void get_cpuconfig(void){
|
||||
printf("#define EV%d\n", implver() + 4);
|
||||
|
||||
switch (implver()){
|
||||
case 0:
|
||||
case 0:
|
||||
printf("#define L1_DATA_SIZE 16384\n");
|
||||
printf("#define L1_DATA_LINESIZE 32\n");
|
||||
printf("#define L2_SIZE 2097152\n");
|
||||
@@ -76,7 +76,7 @@ void get_cpuconfig(void){
|
||||
printf("#define DTB_SIZE 8192\n");
|
||||
break;
|
||||
|
||||
case 1:
|
||||
case 1:
|
||||
printf("#define L1_DATA_SIZE 16384\n");
|
||||
printf("#define L1_DATA_LINESIZE 32\n");
|
||||
printf("#define L2_SIZE 2097152\n");
|
||||
@@ -85,7 +85,7 @@ void get_cpuconfig(void){
|
||||
printf("#define DTB_SIZE 8192\n");
|
||||
break;
|
||||
|
||||
case 2:
|
||||
case 2:
|
||||
printf("#define L1_DATA_SIZE 32768\n");
|
||||
printf("#define L1_DATA_LINESIZE 64\n");
|
||||
printf("#define L2_SIZE 4194304\n");
|
||||
|
||||
+262
@@ -0,0 +1,262 @@
|
||||
/**************************************************************************
|
||||
Copyright (c) 2013, The OpenBLAS Project
|
||||
All rights reserved.
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are
|
||||
met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in
|
||||
the documentation and/or other materials provided with the
|
||||
distribution.
|
||||
3. Neither the name of the OpenBLAS project nor the names of
|
||||
its contributors may be used to endorse or promote products
|
||||
derived from this software without specific prior written permission.
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE OPENBLAS PROJECT OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
||||
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*****************************************************************************/
|
||||
|
||||
#include <string.h>
|
||||
|
||||
#define CPU_UNKNOWN 0
|
||||
#define CPU_ARMV6 1
|
||||
#define CPU_ARMV7 2
|
||||
#define CPU_CORTEXA15 3
|
||||
|
||||
static char *cpuname[] = {
|
||||
"UNKOWN",
|
||||
"ARMV6",
|
||||
"ARMV7",
|
||||
"CORTEXA15"
|
||||
};
|
||||
|
||||
|
||||
int get_feature(char *search)
|
||||
{
|
||||
|
||||
#ifdef linux
|
||||
FILE *infile;
|
||||
char buffer[2048], *p,*t;
|
||||
p = (char *) NULL ;
|
||||
|
||||
infile = fopen("/proc/cpuinfo", "r");
|
||||
|
||||
while (fgets(buffer, sizeof(buffer), infile))
|
||||
{
|
||||
|
||||
if (!strncmp("Features", buffer, 8))
|
||||
{
|
||||
p = strchr(buffer, ':') + 2;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
fclose(infile);
|
||||
|
||||
|
||||
if( p == NULL ) return;
|
||||
|
||||
t = strtok(p," ");
|
||||
while( t = strtok(NULL," "))
|
||||
{
|
||||
if (!strcmp(t, search)) { return(1); }
|
||||
}
|
||||
|
||||
#endif
|
||||
return(0);
|
||||
}
|
||||
|
||||
|
||||
int detect(void)
|
||||
{
|
||||
|
||||
#ifdef linux
|
||||
|
||||
FILE *infile;
|
||||
char buffer[512], *p;
|
||||
p = (char *) NULL ;
|
||||
|
||||
infile = fopen("/proc/cpuinfo", "r");
|
||||
|
||||
while (fgets(buffer, sizeof(buffer), infile))
|
||||
{
|
||||
|
||||
if (!strncmp("model name", buffer, 10))
|
||||
{
|
||||
p = strchr(buffer, ':') + 2;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
fclose(infile);
|
||||
|
||||
if(p != NULL)
|
||||
{
|
||||
|
||||
if (strstr(p, "ARMv7"))
|
||||
{
|
||||
if ( get_feature("vfpv4"))
|
||||
return CPU_ARMV7;
|
||||
|
||||
if ( get_feature("vfpv3"))
|
||||
return CPU_ARMV7;
|
||||
|
||||
if ( get_feature("vfp"))
|
||||
return CPU_ARMV6;
|
||||
|
||||
|
||||
}
|
||||
|
||||
if (strstr(p, "ARMv6"))
|
||||
{
|
||||
if ( get_feature("vfp"))
|
||||
return CPU_ARMV6;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
#endif
|
||||
|
||||
return CPU_UNKNOWN;
|
||||
}
|
||||
|
||||
char *get_corename(void)
|
||||
{
|
||||
return cpuname[detect()];
|
||||
}
|
||||
|
||||
void get_architecture(void)
|
||||
{
|
||||
printf("ARM");
|
||||
}
|
||||
|
||||
void get_subarchitecture(void)
|
||||
{
|
||||
int d = detect();
|
||||
switch (d)
|
||||
{
|
||||
|
||||
case CPU_ARMV7:
|
||||
printf("ARMV7");
|
||||
break;
|
||||
|
||||
case CPU_ARMV6:
|
||||
printf("ARMV6");
|
||||
break;
|
||||
|
||||
default:
|
||||
printf("UNKNOWN");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void get_subdirname(void)
|
||||
{
|
||||
printf("arm");
|
||||
}
|
||||
|
||||
void get_cpuconfig(void)
|
||||
{
|
||||
|
||||
int d = detect();
|
||||
switch (d)
|
||||
{
|
||||
|
||||
case CPU_ARMV7:
|
||||
printf("#define ARMV7\n");
|
||||
printf("#define HAVE_VFP\n");
|
||||
printf("#define HAVE_VFPV3\n");
|
||||
if ( get_feature("neon")) printf("#define HAVE_NEON\n");
|
||||
if ( get_feature("vfpv4")) printf("#define HAVE_VFPV4\n");
|
||||
printf("#define L1_DATA_SIZE 65536\n");
|
||||
printf("#define L1_DATA_LINESIZE 32\n");
|
||||
printf("#define L2_SIZE 512488\n");
|
||||
printf("#define L2_LINESIZE 32\n");
|
||||
printf("#define DTB_DEFAULT_ENTRIES 64\n");
|
||||
printf("#define DTB_SIZE 4096\n");
|
||||
printf("#define L2_ASSOCIATIVE 4\n");
|
||||
break;
|
||||
|
||||
case CPU_ARMV6:
|
||||
printf("#define ARMV6\n");
|
||||
printf("#define HAVE_VFP\n");
|
||||
printf("#define L1_DATA_SIZE 65536\n");
|
||||
printf("#define L1_DATA_LINESIZE 32\n");
|
||||
printf("#define L2_SIZE 512488\n");
|
||||
printf("#define L2_LINESIZE 32\n");
|
||||
printf("#define DTB_DEFAULT_ENTRIES 64\n");
|
||||
printf("#define DTB_SIZE 4096\n");
|
||||
printf("#define L2_ASSOCIATIVE 4\n");
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void get_libname(void)
|
||||
{
|
||||
|
||||
int d = detect();
|
||||
switch (d)
|
||||
{
|
||||
|
||||
case CPU_ARMV7:
|
||||
printf("armv7\n");
|
||||
break;
|
||||
|
||||
case CPU_ARMV6:
|
||||
printf("armv6\n");
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void get_features(void)
|
||||
{
|
||||
|
||||
#ifdef linux
|
||||
FILE *infile;
|
||||
char buffer[2048], *p,*t;
|
||||
p = (char *) NULL ;
|
||||
|
||||
infile = fopen("/proc/cpuinfo", "r");
|
||||
|
||||
while (fgets(buffer, sizeof(buffer), infile))
|
||||
{
|
||||
|
||||
if (!strncmp("Features", buffer, 8))
|
||||
{
|
||||
p = strchr(buffer, ':') + 2;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
fclose(infile);
|
||||
|
||||
|
||||
if( p == NULL ) return;
|
||||
|
||||
t = strtok(p," ");
|
||||
while( t = strtok(NULL," "))
|
||||
{
|
||||
if (!strcmp(t, "vfp")) { printf("HAVE_VFP=1\n"); continue; }
|
||||
if (!strcmp(t, "vfpv3")) { printf("HAVE_VFPV3=1\n"); continue; }
|
||||
if (!strcmp(t, "vfpv4")) { printf("HAVE_VFPV4=1\n"); continue; }
|
||||
if (!strcmp(t, "neon")) { printf("HAVE_NEON=1\n"); continue; }
|
||||
}
|
||||
|
||||
#endif
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -45,7 +45,7 @@
|
||||
#include <ia64intrin.h>
|
||||
#endif
|
||||
|
||||
static inline unsigned long cpuid(unsigned long regnum){
|
||||
static inline unsigned long cpuid(unsigned long regnum){
|
||||
unsigned long value;
|
||||
|
||||
#ifdef __ECC
|
||||
@@ -65,7 +65,7 @@ int get_vendor(void){
|
||||
|
||||
cpuid0 = cpuid(0);
|
||||
cpuid1 = cpuid(1);
|
||||
|
||||
|
||||
*(unsigned long *)(&vendor[0]) = cpuid0;
|
||||
*(unsigned long *)(&vendor[8]) = cpuid1;
|
||||
vendor[17] = (char)0;
|
||||
@@ -79,7 +79,7 @@ int get_cputype(int gettype){
|
||||
unsigned long cpuid3;
|
||||
|
||||
cpuid3 = cpuid(3);
|
||||
|
||||
|
||||
switch (gettype) {
|
||||
case GET_ARCHREV :
|
||||
return BITMASK(cpuid3, 32, 0xff);
|
||||
|
||||
+11
-11
@@ -13,19 +13,19 @@ met:
|
||||
notice, this list of conditions and the following disclaimer in
|
||||
the documentation and/or other materials provided with the
|
||||
distribution.
|
||||
3. Neither the name of the ISCAS nor the names of its contributors may
|
||||
be used to endorse or promote products derived from this software
|
||||
3. Neither the name of the ISCAS nor the names of its contributors may
|
||||
be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
||||
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
**********************************************************************************/
|
||||
|
||||
+1
-1
@@ -134,7 +134,7 @@ int detect(void){
|
||||
|
||||
if (hostInfo.cpu_subtype == CPU_SUBTYPE_POWERPC_7450) return CPUTYPE_PPCG4;
|
||||
if (hostInfo.cpu_subtype == CPU_SUBTYPE_POWERPC_970) return CPUTYPE_PPC970;
|
||||
|
||||
|
||||
return CPUTYPE_PPC970;
|
||||
#endif
|
||||
}
|
||||
|
||||
+70
-35
@@ -40,6 +40,7 @@
|
||||
#include <string.h>
|
||||
#include "cpuid.h"
|
||||
|
||||
/*
|
||||
#ifdef NO_AVX
|
||||
#define CPUTYPE_HASWELL CPUTYPE_NEHALEM
|
||||
#define CORE_HASWELL CORE_NEHALEM
|
||||
@@ -50,6 +51,7 @@
|
||||
#define CPUTYPE_PILEDRIVER CPUTYPE_BARCELONA
|
||||
#define CORE_PILEDRIVER CORE_BARCELONA
|
||||
#endif
|
||||
*/
|
||||
|
||||
#ifndef CPUIDEMU
|
||||
|
||||
@@ -91,7 +93,7 @@ void cpuid(unsigned int op, unsigned int *eax, unsigned int *ebx, unsigned int *
|
||||
if ((current < start) || (current > stop)) current = start;
|
||||
|
||||
while ((count > 0) && (idlist[current].id != op)) {
|
||||
|
||||
|
||||
current ++;
|
||||
if (current > stop) current = start;
|
||||
count --;
|
||||
@@ -132,7 +134,7 @@ int support_avx(){
|
||||
#ifndef NO_AVX
|
||||
int eax, ebx, ecx, edx;
|
||||
int ret=0;
|
||||
|
||||
|
||||
cpuid(1, &eax, &ebx, &ecx, &edx);
|
||||
if ((ecx & (1 << 28)) != 0 && (ecx & (1 << 27)) != 0 && (ecx & (1 << 26)) != 0){
|
||||
xgetbv(0, &eax, &edx);
|
||||
@@ -152,7 +154,7 @@ int get_vendor(void){
|
||||
char vendor[13];
|
||||
|
||||
cpuid(0, &eax, &ebx, &ecx, &edx);
|
||||
|
||||
|
||||
*(int *)(&vendor[0]) = ebx;
|
||||
*(int *)(&vendor[4]) = edx;
|
||||
*(int *)(&vendor[8]) = ecx;
|
||||
@@ -173,7 +175,7 @@ int get_vendor(void){
|
||||
|
||||
return VENDOR_UNKNOWN;
|
||||
}
|
||||
|
||||
|
||||
int get_cputype(int gettype){
|
||||
int eax, ebx, ecx, edx;
|
||||
int extend_family, family;
|
||||
@@ -182,7 +184,7 @@ int get_cputype(int gettype){
|
||||
int feature = 0;
|
||||
|
||||
cpuid(1, &eax, &ebx, &ecx, &edx);
|
||||
|
||||
|
||||
switch (gettype) {
|
||||
case GET_EXFAMILY :
|
||||
return BITMASK(eax, 20, 0xff);
|
||||
@@ -229,8 +231,8 @@ int get_cputype(int gettype){
|
||||
if ((ecx & (1 << 20)) != 0) feature |= HAVE_SSE4_2;
|
||||
#ifndef NO_AVX
|
||||
if (support_avx()) feature |= HAVE_AVX;
|
||||
if ((ecx & (1 << 12)) != 0) feature |= HAVE_FMA3;
|
||||
#endif
|
||||
if ((ecx & (1 << 20)) != 0) feature |= HAVE_FMA3;
|
||||
|
||||
if (have_excpuid() >= 0x01) {
|
||||
cpuid(0x80000001, &eax, &ebx, &ecx, &edx);
|
||||
@@ -252,12 +254,12 @@ int get_cputype(int gettype){
|
||||
}
|
||||
return feature;
|
||||
}
|
||||
|
||||
|
||||
int get_cacheinfo(int type, cache_info_t *cacheinfo){
|
||||
int eax, ebx, ecx, edx, cpuid_level;
|
||||
int info[15];
|
||||
int i;
|
||||
cache_info_t LC1, LD1, L2, L3,
|
||||
cache_info_t LC1, LD1, L2, L3,
|
||||
ITB, DTB, LITB, LDTB,
|
||||
L2ITB, L2DTB, L2LITB, L2LDTB;
|
||||
|
||||
@@ -283,22 +285,22 @@ int get_cacheinfo(int type, cache_info_t *cacheinfo){
|
||||
info[ 0] = BITMASK(eax, 8, 0xff);
|
||||
info[ 1] = BITMASK(eax, 16, 0xff);
|
||||
info[ 2] = BITMASK(eax, 24, 0xff);
|
||||
|
||||
|
||||
info[ 3] = BITMASK(ebx, 0, 0xff);
|
||||
info[ 4] = BITMASK(ebx, 8, 0xff);
|
||||
info[ 5] = BITMASK(ebx, 16, 0xff);
|
||||
info[ 6] = BITMASK(ebx, 24, 0xff);
|
||||
|
||||
|
||||
info[ 7] = BITMASK(ecx, 0, 0xff);
|
||||
info[ 8] = BITMASK(ecx, 8, 0xff);
|
||||
info[ 9] = BITMASK(ecx, 16, 0xff);
|
||||
info[10] = BITMASK(ecx, 24, 0xff);
|
||||
|
||||
|
||||
info[11] = BITMASK(edx, 0, 0xff);
|
||||
info[12] = BITMASK(edx, 8, 0xff);
|
||||
info[13] = BITMASK(edx, 16, 0xff);
|
||||
info[14] = BITMASK(edx, 24, 0xff);
|
||||
|
||||
|
||||
for (i = 0; i < 15; i++){
|
||||
|
||||
switch (info[i]){
|
||||
@@ -864,7 +866,7 @@ int get_cacheinfo(int type, cache_info_t *cacheinfo){
|
||||
LITB.associative = BITMASK(eax, 8, 0xff);
|
||||
if (LITB.associative == 0xff) LITB.associative = 0;
|
||||
LITB.linesize = BITMASK(eax, 0, 0xff);
|
||||
|
||||
|
||||
DTB.size = 4;
|
||||
DTB.associative = BITMASK(ebx, 24, 0xff);
|
||||
if (DTB.associative == 0xff) DTB.associative = 0;
|
||||
@@ -896,7 +898,7 @@ int get_cacheinfo(int type, cache_info_t *cacheinfo){
|
||||
L2LITB.associative = BITMASK(eax, 8, 0xff);
|
||||
if (L2LITB.associative == 0xff) L2LITB.associative = 0;
|
||||
L2LITB.linesize = BITMASK(eax, 0, 0xff);
|
||||
|
||||
|
||||
L2DTB.size = 4;
|
||||
L2DTB.associative = BITMASK(ebx, 24, 0xff);
|
||||
if (L2DTB.associative == 0xff) L2DTB.associative = 0;
|
||||
@@ -920,7 +922,7 @@ int get_cacheinfo(int type, cache_info_t *cacheinfo){
|
||||
}
|
||||
|
||||
switch (type) {
|
||||
|
||||
|
||||
case CACHE_INFO_L1_I :
|
||||
*cacheinfo = LC1;
|
||||
break;
|
||||
@@ -982,7 +984,7 @@ int get_cpuname(void){
|
||||
return CPUTYPE_PENTIUM;
|
||||
case 0x6:
|
||||
switch (exmodel) {
|
||||
case 0:
|
||||
case 0:
|
||||
switch (model) {
|
||||
case 1:
|
||||
case 3:
|
||||
@@ -1022,8 +1024,8 @@ int get_cpuname(void){
|
||||
case 2:
|
||||
switch (model) {
|
||||
case 5:
|
||||
//Intel Core (Clarkdale) / Core (Arrandale)
|
||||
// Pentium (Clarkdale) / Pentium Mobile (Arrandale)
|
||||
//Intel Core (Clarkdale) / Core (Arrandale)
|
||||
// Pentium (Clarkdale) / Pentium Mobile (Arrandale)
|
||||
// Xeon (Clarkdale), 32nm
|
||||
return CPUTYPE_NEHALEM;
|
||||
case 10:
|
||||
@@ -1051,13 +1053,20 @@ int get_cpuname(void){
|
||||
case 3:
|
||||
switch (model) {
|
||||
case 10:
|
||||
case 14:
|
||||
// Ivy Bridge
|
||||
if(support_avx())
|
||||
return CPUTYPE_SANDYBRIDGE;
|
||||
else
|
||||
return CPUTYPE_NEHALEM;
|
||||
case 12:
|
||||
case 15:
|
||||
if(support_avx())
|
||||
#ifndef NO_AVX2
|
||||
return CPUTYPE_HASWELL;
|
||||
#else
|
||||
return CPUTYPE_SANDYBRIDGE;
|
||||
#endif
|
||||
else
|
||||
return CPUTYPE_NEHALEM;
|
||||
}
|
||||
@@ -1065,12 +1074,17 @@ int get_cpuname(void){
|
||||
case 4:
|
||||
switch (model) {
|
||||
case 5:
|
||||
case 6:
|
||||
if(support_avx())
|
||||
#ifndef NO_AVX2
|
||||
return CPUTYPE_HASWELL;
|
||||
#else
|
||||
return CPUTYPE_SANDYBRIDGE;
|
||||
#endif
|
||||
else
|
||||
return CPUTYPE_NEHALEM;
|
||||
}
|
||||
break;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 0x7:
|
||||
@@ -1115,7 +1129,7 @@ int get_cpuname(void){
|
||||
if(support_avx())
|
||||
return CPUTYPE_PILEDRIVER;
|
||||
else
|
||||
return CPUTYPE_BARCELONA; //OS don't support AVX.
|
||||
return CPUTYPE_BARCELONA; //OS don't support AVX.
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
@@ -1243,6 +1257,7 @@ static char *cpuname[] = {
|
||||
"BOBCAT",
|
||||
"BULLDOZER",
|
||||
"PILEDRIVER",
|
||||
"HASWELL",
|
||||
};
|
||||
|
||||
static char *lowercpuname[] = {
|
||||
@@ -1293,11 +1308,12 @@ static char *lowercpuname[] = {
|
||||
"bobcat",
|
||||
"bulldozer",
|
||||
"piledriver",
|
||||
"haswell",
|
||||
};
|
||||
|
||||
static char *corename[] = {
|
||||
"UNKOWN",
|
||||
"80486",
|
||||
"80486",
|
||||
"P5",
|
||||
"P6",
|
||||
"KATMAI",
|
||||
@@ -1320,11 +1336,12 @@ static char *corename[] = {
|
||||
"BOBCAT",
|
||||
"BULLDOZER",
|
||||
"PILEDRIVER",
|
||||
"HASWELL",
|
||||
};
|
||||
|
||||
static char *corename_lower[] = {
|
||||
"unknown",
|
||||
"80486",
|
||||
"80486",
|
||||
"p5",
|
||||
"p6",
|
||||
"katmai",
|
||||
@@ -1347,6 +1364,7 @@ static char *corename_lower[] = {
|
||||
"bobcat",
|
||||
"bulldozer",
|
||||
"piledriver",
|
||||
"haswell",
|
||||
};
|
||||
|
||||
|
||||
@@ -1424,8 +1442,8 @@ int get_coretype(void){
|
||||
case 2:
|
||||
switch (model) {
|
||||
case 5:
|
||||
//Intel Core (Clarkdale) / Core (Arrandale)
|
||||
// Pentium (Clarkdale) / Pentium Mobile (Arrandale)
|
||||
//Intel Core (Clarkdale) / Core (Arrandale)
|
||||
// Pentium (Clarkdale) / Pentium Mobile (Arrandale)
|
||||
// Xeon (Clarkdale), 32nm
|
||||
return CORE_NEHALEM;
|
||||
case 10:
|
||||
@@ -1453,13 +1471,19 @@ int get_coretype(void){
|
||||
case 3:
|
||||
switch (model) {
|
||||
case 10:
|
||||
case 14:
|
||||
if(support_avx())
|
||||
return CORE_SANDYBRIDGE;
|
||||
else
|
||||
return CORE_NEHALEM; //OS doesn't support AVX
|
||||
case 12:
|
||||
case 15:
|
||||
if(support_avx())
|
||||
#ifndef NO_AVX2
|
||||
return CORE_HASWELL;
|
||||
#else
|
||||
return CORE_SANDYBRIDGE;
|
||||
#endif
|
||||
else
|
||||
return CORE_NEHALEM;
|
||||
}
|
||||
@@ -1467,12 +1491,17 @@ int get_coretype(void){
|
||||
case 4:
|
||||
switch (model) {
|
||||
case 5:
|
||||
case 6:
|
||||
if(support_avx())
|
||||
#ifndef NO_AVX2
|
||||
return CORE_HASWELL;
|
||||
#else
|
||||
return CORE_SANDYBRIDGE;
|
||||
#endif
|
||||
else
|
||||
return CORE_NEHALEM;
|
||||
}
|
||||
break;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -1486,8 +1515,8 @@ int get_coretype(void){
|
||||
if (family <= 0x5) return CORE_80486;
|
||||
if (family <= 0xe) return CORE_ATHLON;
|
||||
if (family == 0xf){
|
||||
if ((exfamily == 0) || (exfamily == 2)) return CORE_OPTERON;
|
||||
else if (exfamily == 5) return CORE_BOBCAT;
|
||||
if ((exfamily == 0) || (exfamily == 2)) return CORE_OPTERON;
|
||||
else if (exfamily == 5) return CORE_BOBCAT;
|
||||
else if (exfamily == 6) {
|
||||
switch (model) {
|
||||
case 1:
|
||||
@@ -1500,7 +1529,7 @@ int get_coretype(void){
|
||||
if(support_avx())
|
||||
return CORE_PILEDRIVER;
|
||||
else
|
||||
return CORE_BARCELONA; //OS don't support AVX.
|
||||
return CORE_BARCELONA; //OS don't support AVX.
|
||||
}
|
||||
}else return CORE_BARCELONA;
|
||||
}
|
||||
@@ -1534,35 +1563,41 @@ void get_cpuconfig(void){
|
||||
printf("#define L1_CODE_ASSOCIATIVE %d\n", info.associative);
|
||||
printf("#define L1_CODE_LINESIZE %d\n", info.linesize);
|
||||
}
|
||||
|
||||
|
||||
get_cacheinfo(CACHE_INFO_L1_D, &info);
|
||||
if (info.size > 0) {
|
||||
printf("#define L1_DATA_SIZE %d\n", info.size * 1024);
|
||||
printf("#define L1_DATA_ASSOCIATIVE %d\n", info.associative);
|
||||
printf("#define L1_DATA_LINESIZE %d\n", info.linesize);
|
||||
}
|
||||
|
||||
|
||||
get_cacheinfo(CACHE_INFO_L2, &info);
|
||||
if (info.size > 0) {
|
||||
printf("#define L2_SIZE %d\n", info.size * 1024);
|
||||
printf("#define L2_ASSOCIATIVE %d\n", info.associative);
|
||||
printf("#define L2_LINESIZE %d\n", info.linesize);
|
||||
} else {
|
||||
//fall back for some virtual machines.
|
||||
printf("#define L2_SIZE 1048576\n");
|
||||
printf("#define L2_ASSOCIATIVE 6\n");
|
||||
printf("#define L2_LINESIZE 64\n");
|
||||
}
|
||||
|
||||
|
||||
|
||||
get_cacheinfo(CACHE_INFO_L3, &info);
|
||||
if (info.size > 0) {
|
||||
printf("#define L3_SIZE %d\n", info.size * 1024);
|
||||
printf("#define L3_ASSOCIATIVE %d\n", info.associative);
|
||||
printf("#define L3_LINESIZE %d\n", info.linesize);
|
||||
}
|
||||
|
||||
|
||||
get_cacheinfo(CACHE_INFO_L1_ITB, &info);
|
||||
if (info.size > 0) {
|
||||
printf("#define ITB_SIZE %d\n", info.size * 1024);
|
||||
printf("#define ITB_ASSOCIATIVE %d\n", info.associative);
|
||||
printf("#define ITB_ENTRIES %d\n", info.linesize);
|
||||
}
|
||||
|
||||
|
||||
get_cacheinfo(CACHE_INFO_L1_DTB, &info);
|
||||
if (info.size > 0) {
|
||||
printf("#define DTB_SIZE %d\n", info.size * 1024);
|
||||
@@ -1572,7 +1607,7 @@ void get_cpuconfig(void){
|
||||
//fall back for some virtual machines.
|
||||
printf("#define DTB_DEFAULT_ENTRIES 32\n");
|
||||
}
|
||||
|
||||
|
||||
features = get_cputype(GET_FEATURE);
|
||||
|
||||
if (features & HAVE_CMOV ) printf("#define HAVE_CMOV\n");
|
||||
@@ -1595,7 +1630,7 @@ void get_cpuconfig(void){
|
||||
if (features & HAVE_MISALIGNSSE) printf("#define HAVE_MISALIGNSSE\n");
|
||||
if (features & HAVE_128BITFPU) printf("#define HAVE_128BITFPU\n");
|
||||
if (features & HAVE_FASTMOVU) printf("#define HAVE_FASTMOVU\n");
|
||||
|
||||
|
||||
printf("#define NUM_SHAREDCACHE %d\n", get_cputype(GET_NUMSHARE) + 1);
|
||||
printf("#define NUM_CORES %d\n", get_cputype(GET_NUMCORES) + 1);
|
||||
|
||||
|
||||
@@ -124,3 +124,12 @@ ARCH_IA64
|
||||
#if defined(__LP64) || defined(__LP64__) || defined(__ptr64) || defined(__x86_64__) || defined(__amd64__) || defined(__64BIT__)
|
||||
BINARY_64
|
||||
#endif
|
||||
|
||||
#if defined(__ARM_ARCH) || defined(__ARM_ARCH_7A__) || defined(__arm__)
|
||||
ARCH_ARM
|
||||
#endif
|
||||
|
||||
#if defined(__aarch64__)
|
||||
ARCH_ARM64
|
||||
#endif
|
||||
|
||||
|
||||
+9
-9
@@ -1,5 +1,5 @@
|
||||
#
|
||||
# The Makefile compiles c wrappers and testers for CBLAS.
|
||||
# The Makefile compiles c wrappers and testers for CBLAS.
|
||||
#
|
||||
|
||||
TOPDIR = ..
|
||||
@@ -27,13 +27,13 @@ ctestl2o = c_cblas2.o c_c2chke.o auxiliary.o c_xerbla.o constant.o
|
||||
|
||||
ctestl3o = c_cblas3.o c_c3chke.o auxiliary.o c_xerbla.o constant.o
|
||||
|
||||
ztestl1o = c_zblas1.o
|
||||
ztestl1o = c_zblas1.o
|
||||
|
||||
ztestl2o = c_zblas2.o c_z2chke.o auxiliary.o c_xerbla.o constant.o
|
||||
|
||||
ztestl3o = c_zblas3.o c_z3chke.o auxiliary.o c_xerbla.o constant.o
|
||||
|
||||
all :: all1 all2 all3
|
||||
all :: all1 all2 all3
|
||||
|
||||
all1: xscblat1 xdcblat1 xccblat1 xzcblat1
|
||||
ifeq ($(USE_OPENMP), 1)
|
||||
@@ -75,10 +75,10 @@ else
|
||||
endif
|
||||
|
||||
clean ::
|
||||
rm -f x*
|
||||
rm -f x*
|
||||
|
||||
FLDFLAGS = $(FFLAGS:-fPIC=)
|
||||
CEXTRALIB =
|
||||
FLDFLAGS = $(FFLAGS:-fPIC=) $(LDFLAGS)
|
||||
CEXTRALIB =
|
||||
|
||||
# Single real
|
||||
xscblat1: $(stestl1o) c_sblat1.o $(TOPDIR)/$(LIBNAME)
|
||||
@@ -94,7 +94,7 @@ xdcblat2: $(dtestl2o) c_dblat2.o $(TOPDIR)/$(LIBNAME)
|
||||
$(FC) $(FLDFLAGS) -o xdcblat2 c_dblat2.o $(dtestl2o) $(LIB) $(EXTRALIB) $(CEXTRALIB)
|
||||
xdcblat3: $(dtestl3o) c_dblat3.o $(TOPDIR)/$(LIBNAME)
|
||||
$(FC) $(FLDFLAGS) -o xdcblat3 c_dblat3.o $(dtestl3o) $(LIB) $(EXTRALIB) $(CEXTRALIB)
|
||||
|
||||
|
||||
# Single complex
|
||||
xccblat1: $(ctestl1o) c_cblat1.o $(TOPDIR)/$(LIBNAME)
|
||||
$(FC) $(FLDFLAGS) -o xccblat1 c_cblat1.o $(ctestl1o) $(LIB) $(EXTRALIB) $(CEXTRALIB)
|
||||
@@ -103,12 +103,12 @@ xccblat2: $(ctestl2o) c_cblat2.o $(TOPDIR)/$(LIBNAME)
|
||||
xccblat3: $(ctestl3o) c_cblat3.o $(TOPDIR)/$(LIBNAME)
|
||||
$(FC) $(FLDFLAGS) -o xccblat3 c_cblat3.o $(ctestl3o) $(LIB) $(EXTRALIB) $(CEXTRALIB)
|
||||
|
||||
# Double complex
|
||||
# Double complex
|
||||
xzcblat1: $(ztestl1o) c_zblat1.o $(TOPDIR)/$(LIBNAME)
|
||||
$(FC) $(FLDFLAGS) -o xzcblat1 c_zblat1.o $(ztestl1o) $(LIB) $(EXTRALIB) $(CEXTRALIB)
|
||||
xzcblat2: $(ztestl2o) c_zblat2.o $(TOPDIR)/$(LIBNAME)
|
||||
$(FC) $(FLDFLAGS) -o xzcblat2 c_zblat2.o $(ztestl2o) $(LIB) $(EXTRALIB) $(CEXTRALIB)
|
||||
xzcblat3: $(ztestl3o) c_zblat3.o $(TOPDIR)/$(LIBNAME)
|
||||
$(FC) $(FLDFLAGS) -o xzcblat3 c_zblat3.o $(ztestl3o) $(LIB) $(EXTRALIB) $(CEXTRALIB)
|
||||
|
||||
|
||||
include $(TOPDIR)/Makefile.tail
|
||||
|
||||
+146
-146
@@ -26,11 +26,11 @@ void chkxer(void) {
|
||||
|
||||
void F77_c2chke(char *rout) {
|
||||
char *sf = ( rout ) ;
|
||||
float A[2] = {0.0,0.0},
|
||||
X[2] = {0.0,0.0},
|
||||
Y[2] = {0.0,0.0},
|
||||
float A[2] = {0.0,0.0},
|
||||
X[2] = {0.0,0.0},
|
||||
Y[2] = {0.0,0.0},
|
||||
ALPHA[2] = {0.0,0.0},
|
||||
BETA[2] = {0.0,0.0},
|
||||
BETA[2] = {0.0,0.0},
|
||||
RALPHA = 0.0;
|
||||
extern int cblas_info, cblas_lerr, cblas_ok;
|
||||
extern int RowMajorStrg;
|
||||
@@ -48,588 +48,588 @@ void F77_c2chke(char *rout) {
|
||||
if (strncmp( sf,"cblas_cgemv",11)==0) {
|
||||
cblas_rout = "cblas_cgemv";
|
||||
cblas_info = 1;
|
||||
cblas_cgemv(INVALID, CblasNoTrans, 0, 0,
|
||||
cblas_cgemv(INVALID, CblasNoTrans, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = FALSE;
|
||||
cblas_cgemv(CblasColMajor, INVALID, 0, 0,
|
||||
cblas_cgemv(CblasColMajor, INVALID, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = FALSE;
|
||||
cblas_cgemv(CblasColMajor, CblasNoTrans, INVALID, 0,
|
||||
cblas_cgemv(CblasColMajor, CblasNoTrans, INVALID, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = FALSE;
|
||||
cblas_cgemv(CblasColMajor, CblasNoTrans, 0, INVALID,
|
||||
cblas_cgemv(CblasColMajor, CblasNoTrans, 0, INVALID,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 7; RowMajorStrg = FALSE;
|
||||
cblas_cgemv(CblasColMajor, CblasNoTrans, 2, 0,
|
||||
cblas_cgemv(CblasColMajor, CblasNoTrans, 2, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 9; RowMajorStrg = FALSE;
|
||||
cblas_cgemv(CblasColMajor, CblasNoTrans, 0, 0,
|
||||
cblas_cgemv(CblasColMajor, CblasNoTrans, 0, 0,
|
||||
ALPHA, A, 1, X, 0, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 12; RowMajorStrg = FALSE;
|
||||
cblas_cgemv(CblasColMajor, CblasNoTrans, 0, 0,
|
||||
cblas_cgemv(CblasColMajor, CblasNoTrans, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 0 );
|
||||
chkxer();
|
||||
|
||||
cblas_info = 2; RowMajorStrg = TRUE; RowMajorStrg = TRUE;
|
||||
cblas_cgemv(CblasRowMajor, INVALID, 0, 0,
|
||||
cblas_cgemv(CblasRowMajor, INVALID, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = TRUE;
|
||||
cblas_cgemv(CblasRowMajor, CblasNoTrans, INVALID, 0,
|
||||
cblas_cgemv(CblasRowMajor, CblasNoTrans, INVALID, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = TRUE;
|
||||
cblas_cgemv(CblasRowMajor, CblasNoTrans, 0, INVALID,
|
||||
cblas_cgemv(CblasRowMajor, CblasNoTrans, 0, INVALID,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 7; RowMajorStrg = TRUE;
|
||||
cblas_cgemv(CblasRowMajor, CblasNoTrans, 0, 2,
|
||||
cblas_cgemv(CblasRowMajor, CblasNoTrans, 0, 2,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 9; RowMajorStrg = TRUE;
|
||||
cblas_cgemv(CblasRowMajor, CblasNoTrans, 0, 0,
|
||||
cblas_cgemv(CblasRowMajor, CblasNoTrans, 0, 0,
|
||||
ALPHA, A, 1, X, 0, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 12; RowMajorStrg = TRUE;
|
||||
cblas_cgemv(CblasRowMajor, CblasNoTrans, 0, 0,
|
||||
cblas_cgemv(CblasRowMajor, CblasNoTrans, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 0 );
|
||||
chkxer();
|
||||
} else if (strncmp( sf,"cblas_cgbmv",11)==0) {
|
||||
cblas_rout = "cblas_cgbmv";
|
||||
cblas_info = 1; RowMajorStrg = FALSE;
|
||||
cblas_cgbmv(INVALID, CblasNoTrans, 0, 0, 0, 0,
|
||||
cblas_cgbmv(INVALID, CblasNoTrans, 0, 0, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = FALSE;
|
||||
cblas_cgbmv(CblasColMajor, INVALID, 0, 0, 0, 0,
|
||||
cblas_cgbmv(CblasColMajor, INVALID, 0, 0, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = FALSE;
|
||||
cblas_cgbmv(CblasColMajor, CblasNoTrans, INVALID, 0, 0, 0,
|
||||
cblas_cgbmv(CblasColMajor, CblasNoTrans, INVALID, 0, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = FALSE;
|
||||
cblas_cgbmv(CblasColMajor, CblasNoTrans, 0, INVALID, 0, 0,
|
||||
cblas_cgbmv(CblasColMajor, CblasNoTrans, 0, INVALID, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = FALSE;
|
||||
cblas_cgbmv(CblasColMajor, CblasNoTrans, 0, 0, INVALID, 0,
|
||||
cblas_cgbmv(CblasColMajor, CblasNoTrans, 0, 0, INVALID, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 6; RowMajorStrg = FALSE;
|
||||
cblas_cgbmv(CblasColMajor, CblasNoTrans, 2, 0, 0, INVALID,
|
||||
cblas_cgbmv(CblasColMajor, CblasNoTrans, 2, 0, 0, INVALID,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 9; RowMajorStrg = FALSE;
|
||||
cblas_cgbmv(CblasColMajor, CblasNoTrans, 0, 0, 1, 0,
|
||||
cblas_cgbmv(CblasColMajor, CblasNoTrans, 0, 0, 1, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 11; RowMajorStrg = FALSE;
|
||||
cblas_cgbmv(CblasColMajor, CblasNoTrans, 0, 0, 0, 0,
|
||||
cblas_cgbmv(CblasColMajor, CblasNoTrans, 0, 0, 0, 0,
|
||||
ALPHA, A, 1, X, 0, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 14; RowMajorStrg = FALSE;
|
||||
cblas_cgbmv(CblasColMajor, CblasNoTrans, 0, 0, 0, 0,
|
||||
cblas_cgbmv(CblasColMajor, CblasNoTrans, 0, 0, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 0 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = TRUE;
|
||||
cblas_cgbmv(CblasRowMajor, INVALID, 0, 0, 0, 0,
|
||||
cblas_cgbmv(CblasRowMajor, INVALID, 0, 0, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = TRUE;
|
||||
cblas_cgbmv(CblasRowMajor, CblasNoTrans, INVALID, 0, 0, 0,
|
||||
cblas_cgbmv(CblasRowMajor, CblasNoTrans, INVALID, 0, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = TRUE;
|
||||
cblas_cgbmv(CblasRowMajor, CblasNoTrans, 0, INVALID, 0, 0,
|
||||
cblas_cgbmv(CblasRowMajor, CblasNoTrans, 0, INVALID, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = TRUE;
|
||||
cblas_cgbmv(CblasRowMajor, CblasNoTrans, 0, 0, INVALID, 0,
|
||||
cblas_cgbmv(CblasRowMajor, CblasNoTrans, 0, 0, INVALID, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 6; RowMajorStrg = TRUE;
|
||||
cblas_cgbmv(CblasRowMajor, CblasNoTrans, 2, 0, 0, INVALID,
|
||||
cblas_cgbmv(CblasRowMajor, CblasNoTrans, 2, 0, 0, INVALID,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 9; RowMajorStrg = TRUE;
|
||||
cblas_cgbmv(CblasRowMajor, CblasNoTrans, 0, 0, 1, 0,
|
||||
cblas_cgbmv(CblasRowMajor, CblasNoTrans, 0, 0, 1, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 11; RowMajorStrg = TRUE;
|
||||
cblas_cgbmv(CblasRowMajor, CblasNoTrans, 0, 0, 0, 0,
|
||||
cblas_cgbmv(CblasRowMajor, CblasNoTrans, 0, 0, 0, 0,
|
||||
ALPHA, A, 1, X, 0, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 14; RowMajorStrg = TRUE;
|
||||
cblas_cgbmv(CblasRowMajor, CblasNoTrans, 0, 0, 0, 0,
|
||||
cblas_cgbmv(CblasRowMajor, CblasNoTrans, 0, 0, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 0 );
|
||||
chkxer();
|
||||
} else if (strncmp( sf,"cblas_chemv",11)==0) {
|
||||
cblas_rout = "cblas_chemv";
|
||||
cblas_info = 1; RowMajorStrg = FALSE;
|
||||
cblas_chemv(INVALID, CblasUpper, 0,
|
||||
cblas_chemv(INVALID, CblasUpper, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = FALSE;
|
||||
cblas_chemv(CblasColMajor, INVALID, 0,
|
||||
cblas_chemv(CblasColMajor, INVALID, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = FALSE;
|
||||
cblas_chemv(CblasColMajor, CblasUpper, INVALID,
|
||||
cblas_chemv(CblasColMajor, CblasUpper, INVALID,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 6; RowMajorStrg = FALSE;
|
||||
cblas_chemv(CblasColMajor, CblasUpper, 2,
|
||||
cblas_chemv(CblasColMajor, CblasUpper, 2,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 8; RowMajorStrg = FALSE;
|
||||
cblas_chemv(CblasColMajor, CblasUpper, 0,
|
||||
cblas_chemv(CblasColMajor, CblasUpper, 0,
|
||||
ALPHA, A, 1, X, 0, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 11; RowMajorStrg = FALSE;
|
||||
cblas_chemv(CblasColMajor, CblasUpper, 0,
|
||||
cblas_chemv(CblasColMajor, CblasUpper, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 0 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = TRUE;
|
||||
cblas_chemv(CblasRowMajor, INVALID, 0,
|
||||
cblas_chemv(CblasRowMajor, INVALID, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = TRUE;
|
||||
cblas_chemv(CblasRowMajor, CblasUpper, INVALID,
|
||||
cblas_chemv(CblasRowMajor, CblasUpper, INVALID,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 6; RowMajorStrg = TRUE;
|
||||
cblas_chemv(CblasRowMajor, CblasUpper, 2,
|
||||
cblas_chemv(CblasRowMajor, CblasUpper, 2,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 8; RowMajorStrg = TRUE;
|
||||
cblas_chemv(CblasRowMajor, CblasUpper, 0,
|
||||
cblas_chemv(CblasRowMajor, CblasUpper, 0,
|
||||
ALPHA, A, 1, X, 0, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 11; RowMajorStrg = TRUE;
|
||||
cblas_chemv(CblasRowMajor, CblasUpper, 0,
|
||||
cblas_chemv(CblasRowMajor, CblasUpper, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 0 );
|
||||
chkxer();
|
||||
} else if (strncmp( sf,"cblas_chbmv",11)==0) {
|
||||
cblas_rout = "cblas_chbmv";
|
||||
cblas_info = 1; RowMajorStrg = FALSE;
|
||||
cblas_chbmv(INVALID, CblasUpper, 0, 0,
|
||||
cblas_chbmv(INVALID, CblasUpper, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = FALSE;
|
||||
cblas_chbmv(CblasColMajor, INVALID, 0, 0,
|
||||
cblas_chbmv(CblasColMajor, INVALID, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = FALSE;
|
||||
cblas_chbmv(CblasColMajor, CblasUpper, INVALID, 0,
|
||||
cblas_chbmv(CblasColMajor, CblasUpper, INVALID, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = FALSE;
|
||||
cblas_chbmv(CblasColMajor, CblasUpper, 0, INVALID,
|
||||
cblas_chbmv(CblasColMajor, CblasUpper, 0, INVALID,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 7; RowMajorStrg = FALSE;
|
||||
cblas_chbmv(CblasColMajor, CblasUpper, 0, 1,
|
||||
cblas_chbmv(CblasColMajor, CblasUpper, 0, 1,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 9; RowMajorStrg = FALSE;
|
||||
cblas_chbmv(CblasColMajor, CblasUpper, 0, 0,
|
||||
cblas_chbmv(CblasColMajor, CblasUpper, 0, 0,
|
||||
ALPHA, A, 1, X, 0, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 12; RowMajorStrg = FALSE;
|
||||
cblas_chbmv(CblasColMajor, CblasUpper, 0, 0,
|
||||
cblas_chbmv(CblasColMajor, CblasUpper, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 0 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = TRUE;
|
||||
cblas_chbmv(CblasRowMajor, INVALID, 0, 0,
|
||||
cblas_chbmv(CblasRowMajor, INVALID, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = TRUE;
|
||||
cblas_chbmv(CblasRowMajor, CblasUpper, INVALID, 0,
|
||||
cblas_chbmv(CblasRowMajor, CblasUpper, INVALID, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = TRUE;
|
||||
cblas_chbmv(CblasRowMajor, CblasUpper, 0, INVALID,
|
||||
cblas_chbmv(CblasRowMajor, CblasUpper, 0, INVALID,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 7; RowMajorStrg = TRUE;
|
||||
cblas_chbmv(CblasRowMajor, CblasUpper, 0, 1,
|
||||
cblas_chbmv(CblasRowMajor, CblasUpper, 0, 1,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 9; RowMajorStrg = TRUE;
|
||||
cblas_chbmv(CblasRowMajor, CblasUpper, 0, 0,
|
||||
cblas_chbmv(CblasRowMajor, CblasUpper, 0, 0,
|
||||
ALPHA, A, 1, X, 0, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 12; RowMajorStrg = TRUE;
|
||||
cblas_chbmv(CblasRowMajor, CblasUpper, 0, 0,
|
||||
cblas_chbmv(CblasRowMajor, CblasUpper, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 0 );
|
||||
chkxer();
|
||||
} else if (strncmp( sf,"cblas_chpmv",11)==0) {
|
||||
cblas_rout = "cblas_chpmv";
|
||||
cblas_info = 1; RowMajorStrg = FALSE;
|
||||
cblas_chpmv(INVALID, CblasUpper, 0,
|
||||
cblas_chpmv(INVALID, CblasUpper, 0,
|
||||
ALPHA, A, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = FALSE;
|
||||
cblas_chpmv(CblasColMajor, INVALID, 0,
|
||||
cblas_chpmv(CblasColMajor, INVALID, 0,
|
||||
ALPHA, A, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = FALSE;
|
||||
cblas_chpmv(CblasColMajor, CblasUpper, INVALID,
|
||||
cblas_chpmv(CblasColMajor, CblasUpper, INVALID,
|
||||
ALPHA, A, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 7; RowMajorStrg = FALSE;
|
||||
cblas_chpmv(CblasColMajor, CblasUpper, 0,
|
||||
cblas_chpmv(CblasColMajor, CblasUpper, 0,
|
||||
ALPHA, A, X, 0, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 10; RowMajorStrg = FALSE;
|
||||
cblas_chpmv(CblasColMajor, CblasUpper, 0,
|
||||
cblas_chpmv(CblasColMajor, CblasUpper, 0,
|
||||
ALPHA, A, X, 1, BETA, Y, 0 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = TRUE;
|
||||
cblas_chpmv(CblasRowMajor, INVALID, 0,
|
||||
cblas_chpmv(CblasRowMajor, INVALID, 0,
|
||||
ALPHA, A, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = TRUE;
|
||||
cblas_chpmv(CblasRowMajor, CblasUpper, INVALID,
|
||||
cblas_chpmv(CblasRowMajor, CblasUpper, INVALID,
|
||||
ALPHA, A, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 7; RowMajorStrg = TRUE;
|
||||
cblas_chpmv(CblasRowMajor, CblasUpper, 0,
|
||||
cblas_chpmv(CblasRowMajor, CblasUpper, 0,
|
||||
ALPHA, A, X, 0, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 10; RowMajorStrg = TRUE;
|
||||
cblas_chpmv(CblasRowMajor, CblasUpper, 0,
|
||||
cblas_chpmv(CblasRowMajor, CblasUpper, 0,
|
||||
ALPHA, A, X, 1, BETA, Y, 0 );
|
||||
chkxer();
|
||||
} else if (strncmp( sf,"cblas_ctrmv",11)==0) {
|
||||
cblas_rout = "cblas_ctrmv";
|
||||
cblas_info = 1; RowMajorStrg = FALSE;
|
||||
cblas_ctrmv(INVALID, CblasUpper, CblasNoTrans,
|
||||
cblas_ctrmv(INVALID, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = FALSE;
|
||||
cblas_ctrmv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
cblas_ctrmv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = FALSE;
|
||||
cblas_ctrmv(CblasColMajor, CblasUpper, INVALID,
|
||||
cblas_ctrmv(CblasColMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = FALSE;
|
||||
cblas_ctrmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctrmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = FALSE;
|
||||
cblas_ctrmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctrmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 7; RowMajorStrg = FALSE;
|
||||
cblas_ctrmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctrmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 2, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 9; RowMajorStrg = FALSE;
|
||||
cblas_ctrmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctrmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, 1, X, 0 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = TRUE;
|
||||
cblas_ctrmv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
cblas_ctrmv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = TRUE;
|
||||
cblas_ctrmv(CblasRowMajor, CblasUpper, INVALID,
|
||||
cblas_ctrmv(CblasRowMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = TRUE;
|
||||
cblas_ctrmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctrmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = TRUE;
|
||||
cblas_ctrmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctrmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 7; RowMajorStrg = TRUE;
|
||||
cblas_ctrmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctrmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 2, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 9; RowMajorStrg = TRUE;
|
||||
cblas_ctrmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctrmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, 1, X, 0 );
|
||||
chkxer();
|
||||
} else if (strncmp( sf,"cblas_ctbmv",11)==0) {
|
||||
cblas_rout = "cblas_ctbmv";
|
||||
cblas_info = 1; RowMajorStrg = FALSE;
|
||||
cblas_ctbmv(INVALID, CblasUpper, CblasNoTrans,
|
||||
cblas_ctbmv(INVALID, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = FALSE;
|
||||
cblas_ctbmv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
cblas_ctbmv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = FALSE;
|
||||
cblas_ctbmv(CblasColMajor, CblasUpper, INVALID,
|
||||
cblas_ctbmv(CblasColMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = FALSE;
|
||||
cblas_ctbmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctbmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = FALSE;
|
||||
cblas_ctbmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctbmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 6; RowMajorStrg = FALSE;
|
||||
cblas_ctbmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctbmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, INVALID, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 8; RowMajorStrg = FALSE;
|
||||
cblas_ctbmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctbmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, 1, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 10; RowMajorStrg = FALSE;
|
||||
cblas_ctbmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctbmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 0 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = TRUE;
|
||||
cblas_ctbmv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
cblas_ctbmv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = TRUE;
|
||||
cblas_ctbmv(CblasRowMajor, CblasUpper, INVALID,
|
||||
cblas_ctbmv(CblasRowMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = TRUE;
|
||||
cblas_ctbmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctbmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = TRUE;
|
||||
cblas_ctbmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctbmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 6; RowMajorStrg = TRUE;
|
||||
cblas_ctbmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctbmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, INVALID, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 8; RowMajorStrg = TRUE;
|
||||
cblas_ctbmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctbmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, 1, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 10; RowMajorStrg = TRUE;
|
||||
cblas_ctbmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctbmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 0 );
|
||||
chkxer();
|
||||
} else if (strncmp( sf,"cblas_ctpmv",11)==0) {
|
||||
cblas_rout = "cblas_ctpmv";
|
||||
cblas_info = 1; RowMajorStrg = FALSE;
|
||||
cblas_ctpmv(INVALID, CblasUpper, CblasNoTrans,
|
||||
cblas_ctpmv(INVALID, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = FALSE;
|
||||
cblas_ctpmv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
cblas_ctpmv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = FALSE;
|
||||
cblas_ctpmv(CblasColMajor, CblasUpper, INVALID,
|
||||
cblas_ctpmv(CblasColMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = FALSE;
|
||||
cblas_ctpmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctpmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = FALSE;
|
||||
cblas_ctpmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctpmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 8; RowMajorStrg = FALSE;
|
||||
cblas_ctpmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctpmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, X, 0 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = TRUE;
|
||||
cblas_ctpmv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
cblas_ctpmv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = TRUE;
|
||||
cblas_ctpmv(CblasRowMajor, CblasUpper, INVALID,
|
||||
cblas_ctpmv(CblasRowMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = TRUE;
|
||||
cblas_ctpmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctpmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = TRUE;
|
||||
cblas_ctpmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctpmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 8; RowMajorStrg = TRUE;
|
||||
cblas_ctpmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctpmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, X, 0 );
|
||||
chkxer();
|
||||
} else if (strncmp( sf,"cblas_ctrsv",11)==0) {
|
||||
cblas_rout = "cblas_ctrsv";
|
||||
cblas_info = 1; RowMajorStrg = FALSE;
|
||||
cblas_ctrsv(INVALID, CblasUpper, CblasNoTrans,
|
||||
cblas_ctrsv(INVALID, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = FALSE;
|
||||
cblas_ctrsv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
cblas_ctrsv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = FALSE;
|
||||
cblas_ctrsv(CblasColMajor, CblasUpper, INVALID,
|
||||
cblas_ctrsv(CblasColMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = FALSE;
|
||||
cblas_ctrsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctrsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = FALSE;
|
||||
cblas_ctrsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctrsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 7; RowMajorStrg = FALSE;
|
||||
cblas_ctrsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctrsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 2, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 9; RowMajorStrg = FALSE;
|
||||
cblas_ctrsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctrsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, 1, X, 0 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = TRUE;
|
||||
cblas_ctrsv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
cblas_ctrsv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = TRUE;
|
||||
cblas_ctrsv(CblasRowMajor, CblasUpper, INVALID,
|
||||
cblas_ctrsv(CblasRowMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = TRUE;
|
||||
cblas_ctrsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctrsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = TRUE;
|
||||
cblas_ctrsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctrsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 7; RowMajorStrg = TRUE;
|
||||
cblas_ctrsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctrsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 2, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 9; RowMajorStrg = TRUE;
|
||||
cblas_ctrsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctrsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, 1, X, 0 );
|
||||
chkxer();
|
||||
} else if (strncmp( sf,"cblas_ctbsv",11)==0) {
|
||||
cblas_rout = "cblas_ctbsv";
|
||||
cblas_info = 1; RowMajorStrg = FALSE;
|
||||
cblas_ctbsv(INVALID, CblasUpper, CblasNoTrans,
|
||||
cblas_ctbsv(INVALID, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = FALSE;
|
||||
cblas_ctbsv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
cblas_ctbsv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = FALSE;
|
||||
cblas_ctbsv(CblasColMajor, CblasUpper, INVALID,
|
||||
cblas_ctbsv(CblasColMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = FALSE;
|
||||
cblas_ctbsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctbsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = FALSE;
|
||||
cblas_ctbsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctbsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 6; RowMajorStrg = FALSE;
|
||||
cblas_ctbsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctbsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, INVALID, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 8; RowMajorStrg = FALSE;
|
||||
cblas_ctbsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctbsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, 1, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 10; RowMajorStrg = FALSE;
|
||||
cblas_ctbsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctbsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 0 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = TRUE;
|
||||
cblas_ctbsv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
cblas_ctbsv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = TRUE;
|
||||
cblas_ctbsv(CblasRowMajor, CblasUpper, INVALID,
|
||||
cblas_ctbsv(CblasRowMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = TRUE;
|
||||
cblas_ctbsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctbsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = TRUE;
|
||||
cblas_ctbsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctbsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 6; RowMajorStrg = TRUE;
|
||||
cblas_ctbsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctbsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, INVALID, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 8; RowMajorStrg = TRUE;
|
||||
cblas_ctbsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctbsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, 1, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 10; RowMajorStrg = TRUE;
|
||||
cblas_ctbsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctbsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 0 );
|
||||
chkxer();
|
||||
} else if (strncmp( sf,"cblas_ctpsv",11)==0) {
|
||||
cblas_rout = "cblas_ctpsv";
|
||||
cblas_info = 1; RowMajorStrg = FALSE;
|
||||
cblas_ctpsv(INVALID, CblasUpper, CblasNoTrans,
|
||||
cblas_ctpsv(INVALID, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = FALSE;
|
||||
cblas_ctpsv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
cblas_ctpsv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = FALSE;
|
||||
cblas_ctpsv(CblasColMajor, CblasUpper, INVALID,
|
||||
cblas_ctpsv(CblasColMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = FALSE;
|
||||
cblas_ctpsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctpsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = FALSE;
|
||||
cblas_ctpsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctpsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 8; RowMajorStrg = FALSE;
|
||||
cblas_ctpsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctpsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, X, 0 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = TRUE;
|
||||
cblas_ctpsv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
cblas_ctpsv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = TRUE;
|
||||
cblas_ctpsv(CblasRowMajor, CblasUpper, INVALID,
|
||||
cblas_ctpsv(CblasRowMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = TRUE;
|
||||
cblas_ctpsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctpsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = TRUE;
|
||||
cblas_ctpsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctpsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 8; RowMajorStrg = TRUE;
|
||||
cblas_ctpsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ctpsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, X, 0 );
|
||||
chkxer();
|
||||
} else if (strncmp( sf,"cblas_cgeru",10)==0) {
|
||||
@@ -818,7 +818,7 @@ void F77_c2chke(char *rout) {
|
||||
cblas_info = 6; RowMajorStrg = FALSE;
|
||||
cblas_chpr(CblasColMajor, CblasUpper, 0, RALPHA, X, 0, A );
|
||||
chkxer();
|
||||
}
|
||||
}
|
||||
if (cblas_ok == TRUE)
|
||||
printf(" %-12s PASSED THE TESTS OF ERROR-EXITS\n", cblas_rout);
|
||||
else
|
||||
|
||||
+6
-6
@@ -30,7 +30,7 @@ void F77_c3chke(char * rout) {
|
||||
B[4] = {0.0,0.0,0.0,0.0},
|
||||
C[4] = {0.0,0.0,0.0,0.0},
|
||||
ALPHA[2] = {0.0,0.0},
|
||||
BETA[2] = {0.0,0.0},
|
||||
BETA[2] = {0.0,0.0},
|
||||
RALPHA = 0.0, RBETA = 0.0;
|
||||
extern int cblas_info, cblas_lerr, cblas_ok;
|
||||
extern int RowMajorStrg;
|
||||
@@ -49,15 +49,15 @@ void F77_c3chke(char * rout) {
|
||||
cblas_rout = "cblas_cgemm" ;
|
||||
|
||||
cblas_info = 1;
|
||||
cblas_cgemm( INVALID, CblasNoTrans, CblasNoTrans, 0, 0, 0,
|
||||
cblas_cgemm( INVALID, CblasNoTrans, CblasNoTrans, 0, 0, 0,
|
||||
ALPHA, A, 1, B, 1, BETA, C, 1 );
|
||||
chkxer();
|
||||
cblas_info = 1;
|
||||
cblas_cgemm( INVALID, CblasNoTrans, CblasTrans, 0, 0, 0,
|
||||
cblas_cgemm( INVALID, CblasNoTrans, CblasTrans, 0, 0, 0,
|
||||
ALPHA, A, 1, B, 1, BETA, C, 1 );
|
||||
chkxer();
|
||||
cblas_info = 1;
|
||||
cblas_cgemm( INVALID, CblasTrans, CblasNoTrans, 0, 0, 0,
|
||||
cblas_cgemm( INVALID, CblasTrans, CblasNoTrans, 0, 0, 0,
|
||||
ALPHA, A, 1, B, 1, BETA, C, 1 );
|
||||
chkxer();
|
||||
cblas_info = 1;
|
||||
@@ -272,7 +272,7 @@ void F77_c3chke(char * rout) {
|
||||
cblas_cgemm( CblasRowMajor, CblasTrans, CblasTrans, 0, 2, 0,
|
||||
ALPHA, A, 1, B, 1, BETA, C, 1 );
|
||||
chkxer();
|
||||
|
||||
|
||||
} else if (strncmp( sf,"cblas_chemm" ,11)==0) {
|
||||
cblas_rout = "cblas_chemm" ;
|
||||
|
||||
@@ -1696,7 +1696,7 @@ void F77_c3chke(char * rout) {
|
||||
cblas_csyr2k(CblasColMajor, CblasLower, CblasTrans, 2, 0,
|
||||
ALPHA, A, 1, B, 1, BETA, C, 1 );
|
||||
chkxer();
|
||||
|
||||
|
||||
}
|
||||
|
||||
if (cblas_ok == 1 )
|
||||
|
||||
+3
-3
@@ -16,21 +16,21 @@ void F77_caxpy(const int *N, const void *alpha, void *X,
|
||||
return;
|
||||
}
|
||||
|
||||
void F77_ccopy(const int *N, void *X, const int *incX,
|
||||
void F77_ccopy(const int *N, void *X, const int *incX,
|
||||
void *Y, const int *incY)
|
||||
{
|
||||
cblas_ccopy(*N, X, *incX, Y, *incY);
|
||||
return;
|
||||
}
|
||||
|
||||
void F77_cdotc(const int *N, void *X, const int *incX,
|
||||
void F77_cdotc(const int *N, void *X, const int *incX,
|
||||
void *Y, const int *incY, void *dotc)
|
||||
{
|
||||
cblas_cdotc_sub(*N, X, *incX, Y, *incY, dotc);
|
||||
return;
|
||||
}
|
||||
|
||||
void F77_cdotu(const int *N, void *X, const int *incX,
|
||||
void F77_cdotu(const int *N, void *X, const int *incX,
|
||||
void *Y, const int *incY,void *dotu)
|
||||
{
|
||||
cblas_cdotu_sub(*N, X, *incX, Y, *incY, dotu);
|
||||
|
||||
+20
-20
@@ -8,9 +8,9 @@
|
||||
#include "common.h"
|
||||
#include "cblas_test.h"
|
||||
|
||||
void F77_cgemv(int *order, char *transp, int *m, int *n,
|
||||
void F77_cgemv(int *order, char *transp, int *m, int *n,
|
||||
const void *alpha,
|
||||
CBLAS_TEST_COMPLEX *a, int *lda, const void *x, int *incx,
|
||||
CBLAS_TEST_COMPLEX *a, int *lda, const void *x, int *incx,
|
||||
const void *beta, void *y, int *incy) {
|
||||
|
||||
CBLAS_TEST_COMPLEX *A;
|
||||
@@ -38,9 +38,9 @@ void F77_cgemv(int *order, char *transp, int *m, int *n,
|
||||
*m, *n, alpha, a, *lda, x, *incx, beta, y, *incy );
|
||||
}
|
||||
|
||||
void F77_cgbmv(int *order, char *transp, int *m, int *n, int *kl, int *ku,
|
||||
CBLAS_TEST_COMPLEX *alpha, CBLAS_TEST_COMPLEX *a, int *lda,
|
||||
CBLAS_TEST_COMPLEX *x, int *incx,
|
||||
void F77_cgbmv(int *order, char *transp, int *m, int *n, int *kl, int *ku,
|
||||
CBLAS_TEST_COMPLEX *alpha, CBLAS_TEST_COMPLEX *a, int *lda,
|
||||
CBLAS_TEST_COMPLEX *x, int *incx,
|
||||
CBLAS_TEST_COMPLEX *beta, CBLAS_TEST_COMPLEX *y, int *incy) {
|
||||
|
||||
CBLAS_TEST_COMPLEX *A;
|
||||
@@ -85,8 +85,8 @@ void F77_cgbmv(int *order, char *transp, int *m, int *n, int *kl, int *ku,
|
||||
*incx, beta, y, *incy );
|
||||
}
|
||||
|
||||
void F77_cgeru(int *order, int *m, int *n, CBLAS_TEST_COMPLEX *alpha,
|
||||
CBLAS_TEST_COMPLEX *x, int *incx, CBLAS_TEST_COMPLEX *y, int *incy,
|
||||
void F77_cgeru(int *order, int *m, int *n, CBLAS_TEST_COMPLEX *alpha,
|
||||
CBLAS_TEST_COMPLEX *x, int *incx, CBLAS_TEST_COMPLEX *y, int *incy,
|
||||
CBLAS_TEST_COMPLEX *a, int *lda){
|
||||
|
||||
CBLAS_TEST_COMPLEX *A;
|
||||
@@ -114,8 +114,8 @@ void F77_cgeru(int *order, int *m, int *n, CBLAS_TEST_COMPLEX *alpha,
|
||||
cblas_cgeru( UNDEFINED, *m, *n, alpha, x, *incx, y, *incy, a, *lda );
|
||||
}
|
||||
|
||||
void F77_cgerc(int *order, int *m, int *n, CBLAS_TEST_COMPLEX *alpha,
|
||||
CBLAS_TEST_COMPLEX *x, int *incx, CBLAS_TEST_COMPLEX *y, int *incy,
|
||||
void F77_cgerc(int *order, int *m, int *n, CBLAS_TEST_COMPLEX *alpha,
|
||||
CBLAS_TEST_COMPLEX *x, int *incx, CBLAS_TEST_COMPLEX *y, int *incy,
|
||||
CBLAS_TEST_COMPLEX *a, int *lda) {
|
||||
CBLAS_TEST_COMPLEX *A;
|
||||
int i,j,LDA;
|
||||
@@ -165,7 +165,7 @@ void F77_chemv(int *order, char *uplow, int *n, CBLAS_TEST_COMPLEX *alpha,
|
||||
free(A);
|
||||
}
|
||||
else if (*order == TEST_COL_MJR)
|
||||
cblas_chemv( CblasColMajor, uplo, *n, alpha, a, *lda, x, *incx,
|
||||
cblas_chemv( CblasColMajor, uplo, *n, alpha, a, *lda, x, *incx,
|
||||
beta, y, *incy );
|
||||
else
|
||||
cblas_chemv( UNDEFINED, uplo, *n, alpha, a, *lda, x, *incx,
|
||||
@@ -173,7 +173,7 @@ void F77_chemv(int *order, char *uplow, int *n, CBLAS_TEST_COMPLEX *alpha,
|
||||
}
|
||||
|
||||
void F77_chbmv(int *order, char *uplow, int *n, int *k,
|
||||
CBLAS_TEST_COMPLEX *alpha, CBLAS_TEST_COMPLEX *a, int *lda,
|
||||
CBLAS_TEST_COMPLEX *alpha, CBLAS_TEST_COMPLEX *a, int *lda,
|
||||
CBLAS_TEST_COMPLEX *x, int *incx, CBLAS_TEST_COMPLEX *beta,
|
||||
CBLAS_TEST_COMPLEX *y, int *incy){
|
||||
|
||||
@@ -186,7 +186,7 @@ int i,irow,j,jcol,LDA;
|
||||
|
||||
if (*order == TEST_ROW_MJR) {
|
||||
if (uplo != CblasUpper && uplo != CblasLower )
|
||||
cblas_chbmv(CblasRowMajor, UNDEFINED, *n, *k, alpha, a, *lda, x,
|
||||
cblas_chbmv(CblasRowMajor, UNDEFINED, *n, *k, alpha, a, *lda, x,
|
||||
*incx, beta, y, *incy );
|
||||
else {
|
||||
LDA = *k+2;
|
||||
@@ -237,7 +237,7 @@ int i,irow,j,jcol,LDA;
|
||||
}
|
||||
|
||||
void F77_chpmv(int *order, char *uplow, int *n, CBLAS_TEST_COMPLEX *alpha,
|
||||
CBLAS_TEST_COMPLEX *ap, CBLAS_TEST_COMPLEX *x, int *incx,
|
||||
CBLAS_TEST_COMPLEX *ap, CBLAS_TEST_COMPLEX *x, int *incx,
|
||||
CBLAS_TEST_COMPLEX *beta, CBLAS_TEST_COMPLEX *y, int *incy){
|
||||
|
||||
CBLAS_TEST_COMPLEX *A, *AP;
|
||||
@@ -247,7 +247,7 @@ void F77_chpmv(int *order, char *uplow, int *n, CBLAS_TEST_COMPLEX *alpha,
|
||||
get_uplo_type(uplow,&uplo);
|
||||
if (*order == TEST_ROW_MJR) {
|
||||
if (uplo != CblasUpper && uplo != CblasLower )
|
||||
cblas_chpmv(CblasRowMajor, UNDEFINED, *n, alpha, ap, x, *incx,
|
||||
cblas_chpmv(CblasRowMajor, UNDEFINED, *n, alpha, ap, x, *incx,
|
||||
beta, y, *incy);
|
||||
else {
|
||||
LDA = *n;
|
||||
@@ -344,7 +344,7 @@ void F77_ctbmv(int *order, char *uplow, char *transp, char *diagn,
|
||||
}
|
||||
}
|
||||
}
|
||||
cblas_ctbmv(CblasRowMajor, uplo, trans, diag, *n, *k, A, LDA, x,
|
||||
cblas_ctbmv(CblasRowMajor, uplo, trans, diag, *n, *k, A, LDA, x,
|
||||
*incx);
|
||||
free(A);
|
||||
}
|
||||
@@ -371,7 +371,7 @@ void F77_ctbsv(int *order, char *uplow, char *transp, char *diagn,
|
||||
|
||||
if (*order == TEST_ROW_MJR) {
|
||||
if (uplo != CblasUpper && uplo != CblasLower )
|
||||
cblas_ctbsv(CblasRowMajor, UNDEFINED, trans, diag, *n, *k, a, *lda, x,
|
||||
cblas_ctbsv(CblasRowMajor, UNDEFINED, trans, diag, *n, *k, a, *lda, x,
|
||||
*incx);
|
||||
else {
|
||||
LDA = *k+2;
|
||||
@@ -408,7 +408,7 @@ void F77_ctbsv(int *order, char *uplow, char *transp, char *diagn,
|
||||
}
|
||||
}
|
||||
}
|
||||
cblas_ctbsv(CblasRowMajor, uplo, trans, diag, *n, *k, A, LDA,
|
||||
cblas_ctbsv(CblasRowMajor, uplo, trans, diag, *n, *k, A, LDA,
|
||||
x, *incx);
|
||||
free(A);
|
||||
}
|
||||
@@ -674,7 +674,7 @@ void F77_chpr2(int *order, char *uplow, int *n, CBLAS_TEST_COMPLEX *alpha,
|
||||
|
||||
if (*order == TEST_ROW_MJR) {
|
||||
if (uplo != CblasUpper && uplo != CblasLower )
|
||||
cblas_chpr2( CblasRowMajor, UNDEFINED, *n, alpha, x, *incx, y,
|
||||
cblas_chpr2( CblasRowMajor, UNDEFINED, *n, alpha, x, *incx, y,
|
||||
*incy, ap );
|
||||
else {
|
||||
LDA = *n;
|
||||
@@ -752,7 +752,7 @@ void F77_cher(int *order, char *uplow, int *n, float *alpha,
|
||||
LDA = *n+1;
|
||||
A=(CBLAS_TEST_COMPLEX*)malloc((*n)*LDA*sizeof( CBLAS_TEST_COMPLEX ));
|
||||
|
||||
for( i=0; i<*n; i++ )
|
||||
for( i=0; i<*n; i++ )
|
||||
for( j=0; j<*n; j++ ) {
|
||||
A[ LDA*i+j ].real=a[ (*lda)*j+i ].real;
|
||||
A[ LDA*i+j ].imag=a[ (*lda)*j+i ].imag;
|
||||
@@ -786,7 +786,7 @@ void F77_cher2(int *order, char *uplow, int *n, CBLAS_TEST_COMPLEX *alpha,
|
||||
LDA = *n+1;
|
||||
A= ( CBLAS_TEST_COMPLEX* )malloc((*n)*LDA*sizeof(CBLAS_TEST_COMPLEX ) );
|
||||
|
||||
for( i=0; i<*n; i++ )
|
||||
for( i=0; i<*n; i++ )
|
||||
for( j=0; j<*n; j++ ) {
|
||||
A[ LDA*i+j ].real=a[ (*lda)*j+i ].real;
|
||||
A[ LDA*i+j ].imag=a[ (*lda)*j+i ].imag;
|
||||
|
||||
+30
-30
@@ -12,9 +12,9 @@
|
||||
#define TEST_ROW_MJR 1
|
||||
#define UNDEFINED -1
|
||||
|
||||
void F77_cgemm(int *order, char *transpa, char *transpb, int *m, int *n,
|
||||
void F77_cgemm(int *order, char *transpa, char *transpb, int *m, int *n,
|
||||
int *k, CBLAS_TEST_COMPLEX *alpha, CBLAS_TEST_COMPLEX *a, int *lda,
|
||||
CBLAS_TEST_COMPLEX *b, int *ldb, CBLAS_TEST_COMPLEX *beta,
|
||||
CBLAS_TEST_COMPLEX *b, int *ldb, CBLAS_TEST_COMPLEX *beta,
|
||||
CBLAS_TEST_COMPLEX *c, int *ldc ) {
|
||||
|
||||
CBLAS_TEST_COMPLEX *A, *B, *C;
|
||||
@@ -134,7 +134,7 @@ void F77_chemm(int *order, char *rtlf, char *uplow, int *m, int *n,
|
||||
C[i*LDC+j].real=c[j*(*ldc)+i].real;
|
||||
C[i*LDC+j].imag=c[j*(*ldc)+i].imag;
|
||||
}
|
||||
cblas_chemm( CblasRowMajor, side, uplo, *m, *n, alpha, A, LDA, B, LDB,
|
||||
cblas_chemm( CblasRowMajor, side, uplo, *m, *n, alpha, A, LDA, B, LDB,
|
||||
beta, C, LDC );
|
||||
for( j=0; j<*n; j++ )
|
||||
for( i=0; i<*m; i++ ) {
|
||||
@@ -146,10 +146,10 @@ void F77_chemm(int *order, char *rtlf, char *uplow, int *m, int *n,
|
||||
free(C);
|
||||
}
|
||||
else if (*order == TEST_COL_MJR)
|
||||
cblas_chemm( CblasColMajor, side, uplo, *m, *n, alpha, a, *lda, b, *ldb,
|
||||
cblas_chemm( CblasColMajor, side, uplo, *m, *n, alpha, a, *lda, b, *ldb,
|
||||
beta, c, *ldc );
|
||||
else
|
||||
cblas_chemm( UNDEFINED, side, uplo, *m, *n, alpha, a, *lda, b, *ldb,
|
||||
cblas_chemm( UNDEFINED, side, uplo, *m, *n, alpha, a, *lda, b, *ldb,
|
||||
beta, c, *ldc );
|
||||
}
|
||||
void F77_csymm(int *order, char *rtlf, char *uplow, int *m, int *n,
|
||||
@@ -190,7 +190,7 @@ void F77_csymm(int *order, char *rtlf, char *uplow, int *m, int *n,
|
||||
for( j=0; j<*n; j++ )
|
||||
for( i=0; i<*m; i++ )
|
||||
C[i*LDC+j]=c[j*(*ldc)+i];
|
||||
cblas_csymm( CblasRowMajor, side, uplo, *m, *n, alpha, A, LDA, B, LDB,
|
||||
cblas_csymm( CblasRowMajor, side, uplo, *m, *n, alpha, A, LDA, B, LDB,
|
||||
beta, C, LDC );
|
||||
for( j=0; j<*n; j++ )
|
||||
for( i=0; i<*m; i++ )
|
||||
@@ -200,15 +200,15 @@ void F77_csymm(int *order, char *rtlf, char *uplow, int *m, int *n,
|
||||
free(C);
|
||||
}
|
||||
else if (*order == TEST_COL_MJR)
|
||||
cblas_csymm( CblasColMajor, side, uplo, *m, *n, alpha, a, *lda, b, *ldb,
|
||||
cblas_csymm( CblasColMajor, side, uplo, *m, *n, alpha, a, *lda, b, *ldb,
|
||||
beta, c, *ldc );
|
||||
else
|
||||
cblas_csymm( UNDEFINED, side, uplo, *m, *n, alpha, a, *lda, b, *ldb,
|
||||
cblas_csymm( UNDEFINED, side, uplo, *m, *n, alpha, a, *lda, b, *ldb,
|
||||
beta, c, *ldc );
|
||||
}
|
||||
|
||||
void F77_cherk(int *order, char *uplow, char *transp, int *n, int *k,
|
||||
float *alpha, CBLAS_TEST_COMPLEX *a, int *lda,
|
||||
float *alpha, CBLAS_TEST_COMPLEX *a, int *lda,
|
||||
float *beta, CBLAS_TEST_COMPLEX *c, int *ldc ) {
|
||||
|
||||
int i,j,LDA,LDC;
|
||||
@@ -245,7 +245,7 @@ void F77_cherk(int *order, char *uplow, char *transp, int *n, int *k,
|
||||
C[i*LDC+j].real=c[j*(*ldc)+i].real;
|
||||
C[i*LDC+j].imag=c[j*(*ldc)+i].imag;
|
||||
}
|
||||
cblas_cherk(CblasRowMajor, uplo, trans, *n, *k, *alpha, A, LDA, *beta,
|
||||
cblas_cherk(CblasRowMajor, uplo, trans, *n, *k, *alpha, A, LDA, *beta,
|
||||
C, LDC );
|
||||
for( j=0; j<*n; j++ )
|
||||
for( i=0; i<*n; i++ ) {
|
||||
@@ -256,15 +256,15 @@ void F77_cherk(int *order, char *uplow, char *transp, int *n, int *k,
|
||||
free(C);
|
||||
}
|
||||
else if (*order == TEST_COL_MJR)
|
||||
cblas_cherk(CblasColMajor, uplo, trans, *n, *k, *alpha, a, *lda, *beta,
|
||||
cblas_cherk(CblasColMajor, uplo, trans, *n, *k, *alpha, a, *lda, *beta,
|
||||
c, *ldc );
|
||||
else
|
||||
cblas_cherk(UNDEFINED, uplo, trans, *n, *k, *alpha, a, *lda, *beta,
|
||||
cblas_cherk(UNDEFINED, uplo, trans, *n, *k, *alpha, a, *lda, *beta,
|
||||
c, *ldc );
|
||||
}
|
||||
|
||||
void F77_csyrk(int *order, char *uplow, char *transp, int *n, int *k,
|
||||
CBLAS_TEST_COMPLEX *alpha, CBLAS_TEST_COMPLEX *a, int *lda,
|
||||
CBLAS_TEST_COMPLEX *alpha, CBLAS_TEST_COMPLEX *a, int *lda,
|
||||
CBLAS_TEST_COMPLEX *beta, CBLAS_TEST_COMPLEX *c, int *ldc ) {
|
||||
|
||||
int i,j,LDA,LDC;
|
||||
@@ -301,7 +301,7 @@ void F77_csyrk(int *order, char *uplow, char *transp, int *n, int *k,
|
||||
C[i*LDC+j].real=c[j*(*ldc)+i].real;
|
||||
C[i*LDC+j].imag=c[j*(*ldc)+i].imag;
|
||||
}
|
||||
cblas_csyrk(CblasRowMajor, uplo, trans, *n, *k, alpha, A, LDA, beta,
|
||||
cblas_csyrk(CblasRowMajor, uplo, trans, *n, *k, alpha, A, LDA, beta,
|
||||
C, LDC );
|
||||
for( j=0; j<*n; j++ )
|
||||
for( i=0; i<*n; i++ ) {
|
||||
@@ -312,10 +312,10 @@ void F77_csyrk(int *order, char *uplow, char *transp, int *n, int *k,
|
||||
free(C);
|
||||
}
|
||||
else if (*order == TEST_COL_MJR)
|
||||
cblas_csyrk(CblasColMajor, uplo, trans, *n, *k, alpha, a, *lda, beta,
|
||||
cblas_csyrk(CblasColMajor, uplo, trans, *n, *k, alpha, a, *lda, beta,
|
||||
c, *ldc );
|
||||
else
|
||||
cblas_csyrk(UNDEFINED, uplo, trans, *n, *k, alpha, a, *lda, beta,
|
||||
cblas_csyrk(UNDEFINED, uplo, trans, *n, *k, alpha, a, *lda, beta,
|
||||
c, *ldc );
|
||||
}
|
||||
void F77_cher2k(int *order, char *uplow, char *transp, int *n, int *k,
|
||||
@@ -364,7 +364,7 @@ void F77_cher2k(int *order, char *uplow, char *transp, int *n, int *k,
|
||||
C[i*LDC+j].real=c[j*(*ldc)+i].real;
|
||||
C[i*LDC+j].imag=c[j*(*ldc)+i].imag;
|
||||
}
|
||||
cblas_cher2k(CblasRowMajor, uplo, trans, *n, *k, alpha, A, LDA,
|
||||
cblas_cher2k(CblasRowMajor, uplo, trans, *n, *k, alpha, A, LDA,
|
||||
B, LDB, *beta, C, LDC );
|
||||
for( j=0; j<*n; j++ )
|
||||
for( i=0; i<*n; i++ ) {
|
||||
@@ -376,10 +376,10 @@ void F77_cher2k(int *order, char *uplow, char *transp, int *n, int *k,
|
||||
free(C);
|
||||
}
|
||||
else if (*order == TEST_COL_MJR)
|
||||
cblas_cher2k(CblasColMajor, uplo, trans, *n, *k, alpha, a, *lda,
|
||||
cblas_cher2k(CblasColMajor, uplo, trans, *n, *k, alpha, a, *lda,
|
||||
b, *ldb, *beta, c, *ldc );
|
||||
else
|
||||
cblas_cher2k(UNDEFINED, uplo, trans, *n, *k, alpha, a, *lda,
|
||||
cblas_cher2k(UNDEFINED, uplo, trans, *n, *k, alpha, a, *lda,
|
||||
b, *ldb, *beta, c, *ldc );
|
||||
}
|
||||
void F77_csyr2k(int *order, char *uplow, char *transp, int *n, int *k,
|
||||
@@ -428,7 +428,7 @@ void F77_csyr2k(int *order, char *uplow, char *transp, int *n, int *k,
|
||||
C[i*LDC+j].real=c[j*(*ldc)+i].real;
|
||||
C[i*LDC+j].imag=c[j*(*ldc)+i].imag;
|
||||
}
|
||||
cblas_csyr2k(CblasRowMajor, uplo, trans, *n, *k, alpha, A, LDA,
|
||||
cblas_csyr2k(CblasRowMajor, uplo, trans, *n, *k, alpha, A, LDA,
|
||||
B, LDB, beta, C, LDC );
|
||||
for( j=0; j<*n; j++ )
|
||||
for( i=0; i<*n; i++ ) {
|
||||
@@ -440,14 +440,14 @@ void F77_csyr2k(int *order, char *uplow, char *transp, int *n, int *k,
|
||||
free(C);
|
||||
}
|
||||
else if (*order == TEST_COL_MJR)
|
||||
cblas_csyr2k(CblasColMajor, uplo, trans, *n, *k, alpha, a, *lda,
|
||||
cblas_csyr2k(CblasColMajor, uplo, trans, *n, *k, alpha, a, *lda,
|
||||
b, *ldb, beta, c, *ldc );
|
||||
else
|
||||
cblas_csyr2k(UNDEFINED, uplo, trans, *n, *k, alpha, a, *lda,
|
||||
cblas_csyr2k(UNDEFINED, uplo, trans, *n, *k, alpha, a, *lda,
|
||||
b, *ldb, beta, c, *ldc );
|
||||
}
|
||||
void F77_ctrmm(int *order, char *rtlf, char *uplow, char *transp, char *diagn,
|
||||
int *m, int *n, CBLAS_TEST_COMPLEX *alpha, CBLAS_TEST_COMPLEX *a,
|
||||
int *m, int *n, CBLAS_TEST_COMPLEX *alpha, CBLAS_TEST_COMPLEX *a,
|
||||
int *lda, CBLAS_TEST_COMPLEX *b, int *ldb) {
|
||||
int i,j,LDA,LDB;
|
||||
CBLAS_TEST_COMPLEX *A, *B;
|
||||
@@ -487,7 +487,7 @@ void F77_ctrmm(int *order, char *rtlf, char *uplow, char *transp, char *diagn,
|
||||
B[i*LDB+j].real=b[j*(*ldb)+i].real;
|
||||
B[i*LDB+j].imag=b[j*(*ldb)+i].imag;
|
||||
}
|
||||
cblas_ctrmm(CblasRowMajor, side, uplo, trans, diag, *m, *n, alpha,
|
||||
cblas_ctrmm(CblasRowMajor, side, uplo, trans, diag, *m, *n, alpha,
|
||||
A, LDA, B, LDB );
|
||||
for( j=0; j<*n; j++ )
|
||||
for( i=0; i<*m; i++ ) {
|
||||
@@ -498,15 +498,15 @@ void F77_ctrmm(int *order, char *rtlf, char *uplow, char *transp, char *diagn,
|
||||
free(B);
|
||||
}
|
||||
else if (*order == TEST_COL_MJR)
|
||||
cblas_ctrmm(CblasColMajor, side, uplo, trans, diag, *m, *n, alpha,
|
||||
cblas_ctrmm(CblasColMajor, side, uplo, trans, diag, *m, *n, alpha,
|
||||
a, *lda, b, *ldb);
|
||||
else
|
||||
cblas_ctrmm(UNDEFINED, side, uplo, trans, diag, *m, *n, alpha,
|
||||
cblas_ctrmm(UNDEFINED, side, uplo, trans, diag, *m, *n, alpha,
|
||||
a, *lda, b, *ldb);
|
||||
}
|
||||
|
||||
void F77_ctrsm(int *order, char *rtlf, char *uplow, char *transp, char *diagn,
|
||||
int *m, int *n, CBLAS_TEST_COMPLEX *alpha, CBLAS_TEST_COMPLEX *a,
|
||||
int *m, int *n, CBLAS_TEST_COMPLEX *alpha, CBLAS_TEST_COMPLEX *a,
|
||||
int *lda, CBLAS_TEST_COMPLEX *b, int *ldb) {
|
||||
int i,j,LDA,LDB;
|
||||
CBLAS_TEST_COMPLEX *A, *B;
|
||||
@@ -546,7 +546,7 @@ void F77_ctrsm(int *order, char *rtlf, char *uplow, char *transp, char *diagn,
|
||||
B[i*LDB+j].real=b[j*(*ldb)+i].real;
|
||||
B[i*LDB+j].imag=b[j*(*ldb)+i].imag;
|
||||
}
|
||||
cblas_ctrsm(CblasRowMajor, side, uplo, trans, diag, *m, *n, alpha,
|
||||
cblas_ctrsm(CblasRowMajor, side, uplo, trans, diag, *m, *n, alpha,
|
||||
A, LDA, B, LDB );
|
||||
for( j=0; j<*n; j++ )
|
||||
for( i=0; i<*m; i++ ) {
|
||||
@@ -557,9 +557,9 @@ void F77_ctrsm(int *order, char *rtlf, char *uplow, char *transp, char *diagn,
|
||||
free(B);
|
||||
}
|
||||
else if (*order == TEST_COL_MJR)
|
||||
cblas_ctrsm(CblasColMajor, side, uplo, trans, diag, *m, *n, alpha,
|
||||
cblas_ctrsm(CblasColMajor, side, uplo, trans, diag, *m, *n, alpha,
|
||||
a, *lda, b, *ldb);
|
||||
else
|
||||
cblas_ctrsm(UNDEFINED, side, uplo, trans, diag, *m, *n, alpha,
|
||||
cblas_ctrsm(UNDEFINED, side, uplo, trans, diag, *m, *n, alpha,
|
||||
a, *lda, b, *ldb);
|
||||
}
|
||||
|
||||
+7
-7
@@ -348,13 +348,13 @@
|
||||
160 IF (CORDER) THEN
|
||||
CALL CCHK3( SNAMES( ISNUM ), EPS, THRESH, NOUT, NTRA, TRACE,
|
||||
$ REWI, FATAL, NIDIM, IDIM, NKB, KB, NINC, INC,
|
||||
$ NMAX, INCMAX, A, AA, AS, Y, YY, YS, YT, G, Z,
|
||||
$ NMAX, INCMAX, A, AA, AS, Y, YY, YS, YT, G, Z,
|
||||
$ 0 )
|
||||
END IF
|
||||
IF (RORDER) THEN
|
||||
CALL CCHK3( SNAMES( ISNUM ), EPS, THRESH, NOUT, NTRA, TRACE,
|
||||
$ REWI, FATAL, NIDIM, IDIM, NKB, KB, NINC, INC,
|
||||
$ NMAX, INCMAX, A, AA, AS, Y, YY, YS, YT, G, Z,
|
||||
$ NMAX, INCMAX, A, AA, AS, Y, YY, YS, YT, G, Z,
|
||||
$ 1 )
|
||||
END IF
|
||||
GO TO 200
|
||||
@@ -581,7 +581,7 @@
|
||||
CTRANS = ' CblasNoTrans'
|
||||
ELSE IF (TRANS.EQ.'T')THEN
|
||||
CTRANS = ' CblasTrans'
|
||||
ELSE
|
||||
ELSE
|
||||
CTRANS = 'CblasConjTrans'
|
||||
END IF
|
||||
TRAN = TRANS.EQ.'T'.OR.TRANS.EQ.'C'
|
||||
@@ -684,7 +684,7 @@
|
||||
*
|
||||
* See what data changed inside subroutines.
|
||||
*
|
||||
* IF(TRANS .NE. 'C' .OR. (INCX .GT. 0 .AND. INCY .GT. 0)) THEN
|
||||
* IF(TRANS .NE. 'C' .OR. (INCX .GT. 0 .AND. INCY .GT. 0)) THEN
|
||||
ISAME( 1 ) = TRANS.EQ.TRANSS
|
||||
ISAME( 2 ) = MS.EQ.M
|
||||
ISAME( 3 ) = NS.EQ.N
|
||||
@@ -925,7 +925,7 @@
|
||||
UPLO = ICH( IC: IC )
|
||||
IF (UPLO.EQ.'U')THEN
|
||||
CUPLO = ' CblasUpper'
|
||||
ELSE
|
||||
ELSE
|
||||
CUPLO = ' CblasLower'
|
||||
END IF
|
||||
*
|
||||
@@ -1284,7 +1284,7 @@
|
||||
UPLO = ICHU( ICU: ICU )
|
||||
IF (UPLO.EQ.'U')THEN
|
||||
CUPLO = ' CblasUpper'
|
||||
ELSE
|
||||
ELSE
|
||||
CUPLO = ' CblasLower'
|
||||
END IF
|
||||
*
|
||||
@@ -1294,7 +1294,7 @@
|
||||
CTRANS = ' CblasNoTrans'
|
||||
ELSE IF (TRANS.EQ.'T')THEN
|
||||
CTRANS = ' CblasTrans'
|
||||
ELSE
|
||||
ELSE
|
||||
CTRANS = 'CblasConjTrans'
|
||||
END IF
|
||||
*
|
||||
|
||||
+39
-39
@@ -424,7 +424,7 @@
|
||||
END
|
||||
SUBROUTINE CCHK1( SNAME, EPS, THRESH, NOUT, NTRA, TRACE, REWI,
|
||||
$ FATAL, NIDIM, IDIM, NALF, ALF, NBET, BET, NMAX,
|
||||
$ A, AA, AS, B, BB, BS, C, CC, CS, CT, G,
|
||||
$ A, AA, AS, B, BB, BS, C, CC, CS, CT, G,
|
||||
$ IORDER )
|
||||
*
|
||||
* Tests CGEMM.
|
||||
@@ -600,7 +600,7 @@
|
||||
IF( REWI )
|
||||
$ REWIND NTRA
|
||||
CALL CCGEMM( IORDER, TRANSA, TRANSB, M, N,
|
||||
$ K, ALPHA, AA, LDA, BB, LDB,
|
||||
$ K, ALPHA, AA, LDA, BB, LDB,
|
||||
$ BETA, CC, LDC )
|
||||
*
|
||||
* Check if error-exit was taken incorrectly.
|
||||
@@ -688,7 +688,7 @@
|
||||
*
|
||||
120 CONTINUE
|
||||
WRITE( NOUT, FMT = 9996 )SNAME
|
||||
CALL CPRCN1(NOUT, NC, SNAME, IORDER, TRANSA, TRANSB,
|
||||
CALL CPRCN1(NOUT, NC, SNAME, IORDER, TRANSA, TRANSB,
|
||||
$ M, N, K, ALPHA, LDA, LDB, BETA, LDC)
|
||||
*
|
||||
130 CONTINUE
|
||||
@@ -724,24 +724,24 @@
|
||||
CHARACTER*1 TRANSA, TRANSB
|
||||
CHARACTER*12 SNAME
|
||||
CHARACTER*14 CRC, CTA,CTB
|
||||
|
||||
|
||||
IF (TRANSA.EQ.'N')THEN
|
||||
CTA = ' CblasNoTrans'
|
||||
ELSE IF (TRANSA.EQ.'T')THEN
|
||||
CTA = ' CblasTrans'
|
||||
ELSE
|
||||
ELSE
|
||||
CTA = 'CblasConjTrans'
|
||||
END IF
|
||||
IF (TRANSB.EQ.'N')THEN
|
||||
CTB = ' CblasNoTrans'
|
||||
ELSE IF (TRANSB.EQ.'T')THEN
|
||||
CTB = ' CblasTrans'
|
||||
ELSE
|
||||
ELSE
|
||||
CTB = 'CblasConjTrans'
|
||||
END IF
|
||||
IF (IORDER.EQ.1)THEN
|
||||
CRC = ' CblasRowMajor'
|
||||
ELSE
|
||||
ELSE
|
||||
CRC = ' CblasColMajor'
|
||||
END IF
|
||||
WRITE(NOUT, FMT = 9995)NC,SNAME,CRC, CTA,CTB
|
||||
@@ -754,7 +754,7 @@
|
||||
*
|
||||
SUBROUTINE CCHK2( SNAME, EPS, THRESH, NOUT, NTRA, TRACE, REWI,
|
||||
$ FATAL, NIDIM, IDIM, NALF, ALF, NBET, BET, NMAX,
|
||||
$ A, AA, AS, B, BB, BS, C, CC, CS, CT, G,
|
||||
$ A, AA, AS, B, BB, BS, C, CC, CS, CT, G,
|
||||
$ IORDER )
|
||||
*
|
||||
* Tests CHEMM and CSYMM.
|
||||
@@ -910,9 +910,9 @@
|
||||
* Call the subroutine.
|
||||
*
|
||||
IF( TRACE )
|
||||
$ CALL CPRCN2(NTRA, NC, SNAME, IORDER,
|
||||
$ SIDE, UPLO, M, N, ALPHA, LDA, LDB,
|
||||
$ BETA, LDC)
|
||||
$ CALL CPRCN2(NTRA, NC, SNAME, IORDER,
|
||||
$ SIDE, UPLO, M, N, ALPHA, LDA, LDB,
|
||||
$ BETA, LDC)
|
||||
IF( REWI )
|
||||
$ REWIND NTRA
|
||||
IF( CONJ )THEN
|
||||
@@ -1015,7 +1015,7 @@
|
||||
110 CONTINUE
|
||||
WRITE( NOUT, FMT = 9996 )SNAME
|
||||
CALL CPRCN2(NOUT, NC, SNAME, IORDER, SIDE, UPLO, M, N, ALPHA, LDA,
|
||||
$ LDB, BETA, LDC)
|
||||
$ LDB, BETA, LDC)
|
||||
*
|
||||
120 CONTINUE
|
||||
RETURN
|
||||
@@ -1050,20 +1050,20 @@
|
||||
CHARACTER*1 SIDE, UPLO
|
||||
CHARACTER*12 SNAME
|
||||
CHARACTER*14 CRC, CS,CU
|
||||
|
||||
|
||||
IF (SIDE.EQ.'L')THEN
|
||||
CS = ' CblasLeft'
|
||||
ELSE
|
||||
ELSE
|
||||
CS = ' CblasRight'
|
||||
END IF
|
||||
IF (UPLO.EQ.'U')THEN
|
||||
CU = ' CblasUpper'
|
||||
ELSE
|
||||
ELSE
|
||||
CU = ' CblasLower'
|
||||
END IF
|
||||
IF (IORDER.EQ.1)THEN
|
||||
CRC = ' CblasRowMajor'
|
||||
ELSE
|
||||
ELSE
|
||||
CRC = ' CblasColMajor'
|
||||
END IF
|
||||
WRITE(NOUT, FMT = 9995)NC,SNAME,CRC, CS,CU
|
||||
@@ -1401,22 +1401,22 @@
|
||||
CHARACTER*1 SIDE, UPLO, TRANSA, DIAG
|
||||
CHARACTER*12 SNAME
|
||||
CHARACTER*14 CRC, CS, CU, CA, CD
|
||||
|
||||
|
||||
IF (SIDE.EQ.'L')THEN
|
||||
CS = ' CblasLeft'
|
||||
ELSE
|
||||
ELSE
|
||||
CS = ' CblasRight'
|
||||
END IF
|
||||
IF (UPLO.EQ.'U')THEN
|
||||
CU = ' CblasUpper'
|
||||
ELSE
|
||||
ELSE
|
||||
CU = ' CblasLower'
|
||||
END IF
|
||||
IF (TRANSA.EQ.'N')THEN
|
||||
CA = ' CblasNoTrans'
|
||||
ELSE IF (TRANSA.EQ.'T')THEN
|
||||
CA = ' CblasTrans'
|
||||
ELSE
|
||||
ELSE
|
||||
CA = 'CblasConjTrans'
|
||||
END IF
|
||||
IF (DIAG.EQ.'N')THEN
|
||||
@@ -1426,7 +1426,7 @@
|
||||
END IF
|
||||
IF (IORDER.EQ.1)THEN
|
||||
CRC = ' CblasRowMajor'
|
||||
ELSE
|
||||
ELSE
|
||||
CRC = ' CblasColMajor'
|
||||
END IF
|
||||
WRITE(NOUT, FMT = 9995)NC,SNAME,CRC, CS,CU
|
||||
@@ -1787,22 +1787,22 @@
|
||||
CHARACTER*1 UPLO, TRANSA
|
||||
CHARACTER*12 SNAME
|
||||
CHARACTER*14 CRC, CU, CA
|
||||
|
||||
|
||||
IF (UPLO.EQ.'U')THEN
|
||||
CU = ' CblasUpper'
|
||||
ELSE
|
||||
ELSE
|
||||
CU = ' CblasLower'
|
||||
END IF
|
||||
IF (TRANSA.EQ.'N')THEN
|
||||
CA = ' CblasNoTrans'
|
||||
ELSE IF (TRANSA.EQ.'T')THEN
|
||||
CA = ' CblasTrans'
|
||||
ELSE
|
||||
ELSE
|
||||
CA = 'CblasConjTrans'
|
||||
END IF
|
||||
IF (IORDER.EQ.1)THEN
|
||||
CRC = ' CblasRowMajor'
|
||||
ELSE
|
||||
ELSE
|
||||
CRC = ' CblasColMajor'
|
||||
END IF
|
||||
WRITE(NOUT, FMT = 9995)NC, SNAME, CRC, CU, CA
|
||||
@@ -1821,29 +1821,29 @@
|
||||
CHARACTER*1 UPLO, TRANSA
|
||||
CHARACTER*12 SNAME
|
||||
CHARACTER*14 CRC, CU, CA
|
||||
|
||||
|
||||
IF (UPLO.EQ.'U')THEN
|
||||
CU = ' CblasUpper'
|
||||
ELSE
|
||||
ELSE
|
||||
CU = ' CblasLower'
|
||||
END IF
|
||||
IF (TRANSA.EQ.'N')THEN
|
||||
CA = ' CblasNoTrans'
|
||||
ELSE IF (TRANSA.EQ.'T')THEN
|
||||
CA = ' CblasTrans'
|
||||
ELSE
|
||||
ELSE
|
||||
CA = 'CblasConjTrans'
|
||||
END IF
|
||||
IF (IORDER.EQ.1)THEN
|
||||
CRC = ' CblasRowMajor'
|
||||
ELSE
|
||||
ELSE
|
||||
CRC = ' CblasColMajor'
|
||||
END IF
|
||||
WRITE(NOUT, FMT = 9995)NC, SNAME, CRC, CU, CA
|
||||
WRITE(NOUT, FMT = 9994)N, K, ALPHA, LDA, BETA, LDC
|
||||
|
||||
9995 FORMAT( 1X, I6, ': ', A12,'(', 3( A14, ',') )
|
||||
9994 FORMAT( 10X, 2( I3, ',' ),
|
||||
9994 FORMAT( 10X, 2( I3, ',' ),
|
||||
$ F4.1, ', A,', I3, ',', F4.1, ', C,', I3, ').' )
|
||||
END
|
||||
*
|
||||
@@ -2040,7 +2040,7 @@
|
||||
IF( REWI )
|
||||
$ REWIND NTRA
|
||||
CALL CCSYR2K( IORDER, UPLO, TRANS, N, K,
|
||||
$ ALPHA, AA, LDA, BB, LDB, BETA,
|
||||
$ ALPHA, AA, LDA, BB, LDB, BETA,
|
||||
$ CC, LDC )
|
||||
END IF
|
||||
*
|
||||
@@ -2240,22 +2240,22 @@
|
||||
CHARACTER*1 UPLO, TRANSA
|
||||
CHARACTER*12 SNAME
|
||||
CHARACTER*14 CRC, CU, CA
|
||||
|
||||
|
||||
IF (UPLO.EQ.'U')THEN
|
||||
CU = ' CblasUpper'
|
||||
ELSE
|
||||
ELSE
|
||||
CU = ' CblasLower'
|
||||
END IF
|
||||
IF (TRANSA.EQ.'N')THEN
|
||||
CA = ' CblasNoTrans'
|
||||
ELSE IF (TRANSA.EQ.'T')THEN
|
||||
CA = ' CblasTrans'
|
||||
ELSE
|
||||
ELSE
|
||||
CA = 'CblasConjTrans'
|
||||
END IF
|
||||
IF (IORDER.EQ.1)THEN
|
||||
CRC = ' CblasRowMajor'
|
||||
ELSE
|
||||
ELSE
|
||||
CRC = ' CblasColMajor'
|
||||
END IF
|
||||
WRITE(NOUT, FMT = 9995)NC, SNAME, CRC, CU, CA
|
||||
@@ -2275,22 +2275,22 @@
|
||||
CHARACTER*1 UPLO, TRANSA
|
||||
CHARACTER*12 SNAME
|
||||
CHARACTER*14 CRC, CU, CA
|
||||
|
||||
|
||||
IF (UPLO.EQ.'U')THEN
|
||||
CU = ' CblasUpper'
|
||||
ELSE
|
||||
ELSE
|
||||
CU = ' CblasLower'
|
||||
END IF
|
||||
IF (TRANSA.EQ.'N')THEN
|
||||
CA = ' CblasNoTrans'
|
||||
ELSE IF (TRANSA.EQ.'T')THEN
|
||||
CA = ' CblasTrans'
|
||||
ELSE
|
||||
ELSE
|
||||
CA = 'CblasConjTrans'
|
||||
END IF
|
||||
IF (IORDER.EQ.1)THEN
|
||||
CRC = ' CblasRowMajor'
|
||||
ELSE
|
||||
ELSE
|
||||
CRC = ' CblasColMajor'
|
||||
END IF
|
||||
WRITE(NOUT, FMT = 9995)NC, SNAME, CRC, CU, CA
|
||||
|
||||
+145
-145
@@ -26,9 +26,9 @@ void chkxer(void) {
|
||||
|
||||
void F77_d2chke(char *rout) {
|
||||
char *sf = ( rout ) ;
|
||||
double A[2] = {0.0,0.0},
|
||||
X[2] = {0.0,0.0},
|
||||
Y[2] = {0.0,0.0},
|
||||
double A[2] = {0.0,0.0},
|
||||
X[2] = {0.0,0.0},
|
||||
Y[2] = {0.0,0.0},
|
||||
ALPHA=0.0, BETA=0.0;
|
||||
extern int cblas_info, cblas_lerr, cblas_ok;
|
||||
extern int RowMajorStrg;
|
||||
@@ -46,588 +46,588 @@ void F77_d2chke(char *rout) {
|
||||
if (strncmp( sf,"cblas_dgemv",11)==0) {
|
||||
cblas_rout = "cblas_dgemv";
|
||||
cblas_info = 1;
|
||||
cblas_dgemv(INVALID, CblasNoTrans, 0, 0,
|
||||
cblas_dgemv(INVALID, CblasNoTrans, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = FALSE;
|
||||
cblas_dgemv(CblasColMajor, INVALID, 0, 0,
|
||||
cblas_dgemv(CblasColMajor, INVALID, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = FALSE;
|
||||
cblas_dgemv(CblasColMajor, CblasNoTrans, INVALID, 0,
|
||||
cblas_dgemv(CblasColMajor, CblasNoTrans, INVALID, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = FALSE;
|
||||
cblas_dgemv(CblasColMajor, CblasNoTrans, 0, INVALID,
|
||||
cblas_dgemv(CblasColMajor, CblasNoTrans, 0, INVALID,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 7; RowMajorStrg = FALSE;
|
||||
cblas_dgemv(CblasColMajor, CblasNoTrans, 2, 0,
|
||||
cblas_dgemv(CblasColMajor, CblasNoTrans, 2, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 9; RowMajorStrg = FALSE;
|
||||
cblas_dgemv(CblasColMajor, CblasNoTrans, 0, 0,
|
||||
cblas_dgemv(CblasColMajor, CblasNoTrans, 0, 0,
|
||||
ALPHA, A, 1, X, 0, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 12; RowMajorStrg = FALSE;
|
||||
cblas_dgemv(CblasColMajor, CblasNoTrans, 0, 0,
|
||||
cblas_dgemv(CblasColMajor, CblasNoTrans, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 0 );
|
||||
chkxer();
|
||||
|
||||
cblas_info = 2; RowMajorStrg = TRUE; RowMajorStrg = TRUE;
|
||||
cblas_dgemv(CblasRowMajor, INVALID, 0, 0,
|
||||
cblas_dgemv(CblasRowMajor, INVALID, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = TRUE;
|
||||
cblas_dgemv(CblasRowMajor, CblasNoTrans, INVALID, 0,
|
||||
cblas_dgemv(CblasRowMajor, CblasNoTrans, INVALID, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = TRUE;
|
||||
cblas_dgemv(CblasRowMajor, CblasNoTrans, 0, INVALID,
|
||||
cblas_dgemv(CblasRowMajor, CblasNoTrans, 0, INVALID,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 7; RowMajorStrg = TRUE;
|
||||
cblas_dgemv(CblasRowMajor, CblasNoTrans, 0, 2,
|
||||
cblas_dgemv(CblasRowMajor, CblasNoTrans, 0, 2,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 9; RowMajorStrg = TRUE;
|
||||
cblas_dgemv(CblasRowMajor, CblasNoTrans, 0, 0,
|
||||
cblas_dgemv(CblasRowMajor, CblasNoTrans, 0, 0,
|
||||
ALPHA, A, 1, X, 0, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 12; RowMajorStrg = TRUE;
|
||||
cblas_dgemv(CblasRowMajor, CblasNoTrans, 0, 0,
|
||||
cblas_dgemv(CblasRowMajor, CblasNoTrans, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 0 );
|
||||
chkxer();
|
||||
} else if (strncmp( sf,"cblas_dgbmv",11)==0) {
|
||||
cblas_rout = "cblas_dgbmv";
|
||||
cblas_info = 1; RowMajorStrg = FALSE;
|
||||
cblas_dgbmv(INVALID, CblasNoTrans, 0, 0, 0, 0,
|
||||
cblas_dgbmv(INVALID, CblasNoTrans, 0, 0, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = FALSE;
|
||||
cblas_dgbmv(CblasColMajor, INVALID, 0, 0, 0, 0,
|
||||
cblas_dgbmv(CblasColMajor, INVALID, 0, 0, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = FALSE;
|
||||
cblas_dgbmv(CblasColMajor, CblasNoTrans, INVALID, 0, 0, 0,
|
||||
cblas_dgbmv(CblasColMajor, CblasNoTrans, INVALID, 0, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = FALSE;
|
||||
cblas_dgbmv(CblasColMajor, CblasNoTrans, 0, INVALID, 0, 0,
|
||||
cblas_dgbmv(CblasColMajor, CblasNoTrans, 0, INVALID, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = FALSE;
|
||||
cblas_dgbmv(CblasColMajor, CblasNoTrans, 0, 0, INVALID, 0,
|
||||
cblas_dgbmv(CblasColMajor, CblasNoTrans, 0, 0, INVALID, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 6; RowMajorStrg = FALSE;
|
||||
cblas_dgbmv(CblasColMajor, CblasNoTrans, 2, 0, 0, INVALID,
|
||||
cblas_dgbmv(CblasColMajor, CblasNoTrans, 2, 0, 0, INVALID,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 9; RowMajorStrg = FALSE;
|
||||
cblas_dgbmv(CblasColMajor, CblasNoTrans, 0, 0, 1, 0,
|
||||
cblas_dgbmv(CblasColMajor, CblasNoTrans, 0, 0, 1, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 11; RowMajorStrg = FALSE;
|
||||
cblas_dgbmv(CblasColMajor, CblasNoTrans, 0, 0, 0, 0,
|
||||
cblas_dgbmv(CblasColMajor, CblasNoTrans, 0, 0, 0, 0,
|
||||
ALPHA, A, 1, X, 0, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 14; RowMajorStrg = FALSE;
|
||||
cblas_dgbmv(CblasColMajor, CblasNoTrans, 0, 0, 0, 0,
|
||||
cblas_dgbmv(CblasColMajor, CblasNoTrans, 0, 0, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 0 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = TRUE;
|
||||
cblas_dgbmv(CblasRowMajor, INVALID, 0, 0, 0, 0,
|
||||
cblas_dgbmv(CblasRowMajor, INVALID, 0, 0, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = TRUE;
|
||||
cblas_dgbmv(CblasRowMajor, CblasNoTrans, INVALID, 0, 0, 0,
|
||||
cblas_dgbmv(CblasRowMajor, CblasNoTrans, INVALID, 0, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = TRUE;
|
||||
cblas_dgbmv(CblasRowMajor, CblasNoTrans, 0, INVALID, 0, 0,
|
||||
cblas_dgbmv(CblasRowMajor, CblasNoTrans, 0, INVALID, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = TRUE;
|
||||
cblas_dgbmv(CblasRowMajor, CblasNoTrans, 0, 0, INVALID, 0,
|
||||
cblas_dgbmv(CblasRowMajor, CblasNoTrans, 0, 0, INVALID, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 6; RowMajorStrg = TRUE;
|
||||
cblas_dgbmv(CblasRowMajor, CblasNoTrans, 2, 0, 0, INVALID,
|
||||
cblas_dgbmv(CblasRowMajor, CblasNoTrans, 2, 0, 0, INVALID,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 9; RowMajorStrg = TRUE;
|
||||
cblas_dgbmv(CblasRowMajor, CblasNoTrans, 0, 0, 1, 0,
|
||||
cblas_dgbmv(CblasRowMajor, CblasNoTrans, 0, 0, 1, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 11; RowMajorStrg = TRUE;
|
||||
cblas_dgbmv(CblasRowMajor, CblasNoTrans, 0, 0, 0, 0,
|
||||
cblas_dgbmv(CblasRowMajor, CblasNoTrans, 0, 0, 0, 0,
|
||||
ALPHA, A, 1, X, 0, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 14; RowMajorStrg = TRUE;
|
||||
cblas_dgbmv(CblasRowMajor, CblasNoTrans, 0, 0, 0, 0,
|
||||
cblas_dgbmv(CblasRowMajor, CblasNoTrans, 0, 0, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 0 );
|
||||
chkxer();
|
||||
} else if (strncmp( sf,"cblas_dsymv",11)==0) {
|
||||
cblas_rout = "cblas_dsymv";
|
||||
cblas_info = 1; RowMajorStrg = FALSE;
|
||||
cblas_dsymv(INVALID, CblasUpper, 0,
|
||||
cblas_dsymv(INVALID, CblasUpper, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = FALSE;
|
||||
cblas_dsymv(CblasColMajor, INVALID, 0,
|
||||
cblas_dsymv(CblasColMajor, INVALID, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = FALSE;
|
||||
cblas_dsymv(CblasColMajor, CblasUpper, INVALID,
|
||||
cblas_dsymv(CblasColMajor, CblasUpper, INVALID,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 6; RowMajorStrg = FALSE;
|
||||
cblas_dsymv(CblasColMajor, CblasUpper, 2,
|
||||
cblas_dsymv(CblasColMajor, CblasUpper, 2,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 8; RowMajorStrg = FALSE;
|
||||
cblas_dsymv(CblasColMajor, CblasUpper, 0,
|
||||
cblas_dsymv(CblasColMajor, CblasUpper, 0,
|
||||
ALPHA, A, 1, X, 0, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 11; RowMajorStrg = FALSE;
|
||||
cblas_dsymv(CblasColMajor, CblasUpper, 0,
|
||||
cblas_dsymv(CblasColMajor, CblasUpper, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 0 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = TRUE;
|
||||
cblas_dsymv(CblasRowMajor, INVALID, 0,
|
||||
cblas_dsymv(CblasRowMajor, INVALID, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = TRUE;
|
||||
cblas_dsymv(CblasRowMajor, CblasUpper, INVALID,
|
||||
cblas_dsymv(CblasRowMajor, CblasUpper, INVALID,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 6; RowMajorStrg = TRUE;
|
||||
cblas_dsymv(CblasRowMajor, CblasUpper, 2,
|
||||
cblas_dsymv(CblasRowMajor, CblasUpper, 2,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 8; RowMajorStrg = TRUE;
|
||||
cblas_dsymv(CblasRowMajor, CblasUpper, 0,
|
||||
cblas_dsymv(CblasRowMajor, CblasUpper, 0,
|
||||
ALPHA, A, 1, X, 0, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 11; RowMajorStrg = TRUE;
|
||||
cblas_dsymv(CblasRowMajor, CblasUpper, 0,
|
||||
cblas_dsymv(CblasRowMajor, CblasUpper, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 0 );
|
||||
chkxer();
|
||||
} else if (strncmp( sf,"cblas_dsbmv",11)==0) {
|
||||
cblas_rout = "cblas_dsbmv";
|
||||
cblas_info = 1; RowMajorStrg = FALSE;
|
||||
cblas_dsbmv(INVALID, CblasUpper, 0, 0,
|
||||
cblas_dsbmv(INVALID, CblasUpper, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = FALSE;
|
||||
cblas_dsbmv(CblasColMajor, INVALID, 0, 0,
|
||||
cblas_dsbmv(CblasColMajor, INVALID, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = FALSE;
|
||||
cblas_dsbmv(CblasColMajor, CblasUpper, INVALID, 0,
|
||||
cblas_dsbmv(CblasColMajor, CblasUpper, INVALID, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = FALSE;
|
||||
cblas_dsbmv(CblasColMajor, CblasUpper, 0, INVALID,
|
||||
cblas_dsbmv(CblasColMajor, CblasUpper, 0, INVALID,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 7; RowMajorStrg = FALSE;
|
||||
cblas_dsbmv(CblasColMajor, CblasUpper, 0, 1,
|
||||
cblas_dsbmv(CblasColMajor, CblasUpper, 0, 1,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 9; RowMajorStrg = FALSE;
|
||||
cblas_dsbmv(CblasColMajor, CblasUpper, 0, 0,
|
||||
cblas_dsbmv(CblasColMajor, CblasUpper, 0, 0,
|
||||
ALPHA, A, 1, X, 0, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 12; RowMajorStrg = FALSE;
|
||||
cblas_dsbmv(CblasColMajor, CblasUpper, 0, 0,
|
||||
cblas_dsbmv(CblasColMajor, CblasUpper, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 0 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = TRUE;
|
||||
cblas_dsbmv(CblasRowMajor, INVALID, 0, 0,
|
||||
cblas_dsbmv(CblasRowMajor, INVALID, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = TRUE;
|
||||
cblas_dsbmv(CblasRowMajor, CblasUpper, INVALID, 0,
|
||||
cblas_dsbmv(CblasRowMajor, CblasUpper, INVALID, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = TRUE;
|
||||
cblas_dsbmv(CblasRowMajor, CblasUpper, 0, INVALID,
|
||||
cblas_dsbmv(CblasRowMajor, CblasUpper, 0, INVALID,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 7; RowMajorStrg = TRUE;
|
||||
cblas_dsbmv(CblasRowMajor, CblasUpper, 0, 1,
|
||||
cblas_dsbmv(CblasRowMajor, CblasUpper, 0, 1,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 9; RowMajorStrg = TRUE;
|
||||
cblas_dsbmv(CblasRowMajor, CblasUpper, 0, 0,
|
||||
cblas_dsbmv(CblasRowMajor, CblasUpper, 0, 0,
|
||||
ALPHA, A, 1, X, 0, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 12; RowMajorStrg = TRUE;
|
||||
cblas_dsbmv(CblasRowMajor, CblasUpper, 0, 0,
|
||||
cblas_dsbmv(CblasRowMajor, CblasUpper, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 0 );
|
||||
chkxer();
|
||||
} else if (strncmp( sf,"cblas_dspmv",11)==0) {
|
||||
cblas_rout = "cblas_dspmv";
|
||||
cblas_info = 1; RowMajorStrg = FALSE;
|
||||
cblas_dspmv(INVALID, CblasUpper, 0,
|
||||
cblas_dspmv(INVALID, CblasUpper, 0,
|
||||
ALPHA, A, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = FALSE;
|
||||
cblas_dspmv(CblasColMajor, INVALID, 0,
|
||||
cblas_dspmv(CblasColMajor, INVALID, 0,
|
||||
ALPHA, A, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = FALSE;
|
||||
cblas_dspmv(CblasColMajor, CblasUpper, INVALID,
|
||||
cblas_dspmv(CblasColMajor, CblasUpper, INVALID,
|
||||
ALPHA, A, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 7; RowMajorStrg = FALSE;
|
||||
cblas_dspmv(CblasColMajor, CblasUpper, 0,
|
||||
cblas_dspmv(CblasColMajor, CblasUpper, 0,
|
||||
ALPHA, A, X, 0, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 10; RowMajorStrg = FALSE;
|
||||
cblas_dspmv(CblasColMajor, CblasUpper, 0,
|
||||
cblas_dspmv(CblasColMajor, CblasUpper, 0,
|
||||
ALPHA, A, X, 1, BETA, Y, 0 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = TRUE;
|
||||
cblas_dspmv(CblasRowMajor, INVALID, 0,
|
||||
cblas_dspmv(CblasRowMajor, INVALID, 0,
|
||||
ALPHA, A, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = TRUE;
|
||||
cblas_dspmv(CblasRowMajor, CblasUpper, INVALID,
|
||||
cblas_dspmv(CblasRowMajor, CblasUpper, INVALID,
|
||||
ALPHA, A, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 7; RowMajorStrg = TRUE;
|
||||
cblas_dspmv(CblasRowMajor, CblasUpper, 0,
|
||||
cblas_dspmv(CblasRowMajor, CblasUpper, 0,
|
||||
ALPHA, A, X, 0, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 10; RowMajorStrg = TRUE;
|
||||
cblas_dspmv(CblasRowMajor, CblasUpper, 0,
|
||||
cblas_dspmv(CblasRowMajor, CblasUpper, 0,
|
||||
ALPHA, A, X, 1, BETA, Y, 0 );
|
||||
chkxer();
|
||||
} else if (strncmp( sf,"cblas_dtrmv",11)==0) {
|
||||
cblas_rout = "cblas_dtrmv";
|
||||
cblas_info = 1; RowMajorStrg = FALSE;
|
||||
cblas_dtrmv(INVALID, CblasUpper, CblasNoTrans,
|
||||
cblas_dtrmv(INVALID, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = FALSE;
|
||||
cblas_dtrmv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
cblas_dtrmv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = FALSE;
|
||||
cblas_dtrmv(CblasColMajor, CblasUpper, INVALID,
|
||||
cblas_dtrmv(CblasColMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = FALSE;
|
||||
cblas_dtrmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtrmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = FALSE;
|
||||
cblas_dtrmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtrmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 7; RowMajorStrg = FALSE;
|
||||
cblas_dtrmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtrmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 2, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 9; RowMajorStrg = FALSE;
|
||||
cblas_dtrmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtrmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, 1, X, 0 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = TRUE;
|
||||
cblas_dtrmv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
cblas_dtrmv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = TRUE;
|
||||
cblas_dtrmv(CblasRowMajor, CblasUpper, INVALID,
|
||||
cblas_dtrmv(CblasRowMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = TRUE;
|
||||
cblas_dtrmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtrmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = TRUE;
|
||||
cblas_dtrmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtrmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 7; RowMajorStrg = TRUE;
|
||||
cblas_dtrmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtrmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 2, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 9; RowMajorStrg = TRUE;
|
||||
cblas_dtrmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtrmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, 1, X, 0 );
|
||||
chkxer();
|
||||
} else if (strncmp( sf,"cblas_dtbmv",11)==0) {
|
||||
cblas_rout = "cblas_dtbmv";
|
||||
cblas_info = 1; RowMajorStrg = FALSE;
|
||||
cblas_dtbmv(INVALID, CblasUpper, CblasNoTrans,
|
||||
cblas_dtbmv(INVALID, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = FALSE;
|
||||
cblas_dtbmv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
cblas_dtbmv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = FALSE;
|
||||
cblas_dtbmv(CblasColMajor, CblasUpper, INVALID,
|
||||
cblas_dtbmv(CblasColMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = FALSE;
|
||||
cblas_dtbmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtbmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = FALSE;
|
||||
cblas_dtbmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtbmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 6; RowMajorStrg = FALSE;
|
||||
cblas_dtbmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtbmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, INVALID, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 8; RowMajorStrg = FALSE;
|
||||
cblas_dtbmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtbmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, 1, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 10; RowMajorStrg = FALSE;
|
||||
cblas_dtbmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtbmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 0 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = TRUE;
|
||||
cblas_dtbmv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
cblas_dtbmv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = TRUE;
|
||||
cblas_dtbmv(CblasRowMajor, CblasUpper, INVALID,
|
||||
cblas_dtbmv(CblasRowMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = TRUE;
|
||||
cblas_dtbmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtbmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = TRUE;
|
||||
cblas_dtbmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtbmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 6; RowMajorStrg = TRUE;
|
||||
cblas_dtbmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtbmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, INVALID, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 8; RowMajorStrg = TRUE;
|
||||
cblas_dtbmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtbmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, 1, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 10; RowMajorStrg = TRUE;
|
||||
cblas_dtbmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtbmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 0 );
|
||||
chkxer();
|
||||
} else if (strncmp( sf,"cblas_dtpmv",11)==0) {
|
||||
cblas_rout = "cblas_dtpmv";
|
||||
cblas_info = 1; RowMajorStrg = FALSE;
|
||||
cblas_dtpmv(INVALID, CblasUpper, CblasNoTrans,
|
||||
cblas_dtpmv(INVALID, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = FALSE;
|
||||
cblas_dtpmv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
cblas_dtpmv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = FALSE;
|
||||
cblas_dtpmv(CblasColMajor, CblasUpper, INVALID,
|
||||
cblas_dtpmv(CblasColMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = FALSE;
|
||||
cblas_dtpmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtpmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = FALSE;
|
||||
cblas_dtpmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtpmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 8; RowMajorStrg = FALSE;
|
||||
cblas_dtpmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtpmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, X, 0 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = TRUE;
|
||||
cblas_dtpmv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
cblas_dtpmv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = TRUE;
|
||||
cblas_dtpmv(CblasRowMajor, CblasUpper, INVALID,
|
||||
cblas_dtpmv(CblasRowMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = TRUE;
|
||||
cblas_dtpmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtpmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = TRUE;
|
||||
cblas_dtpmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtpmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 8; RowMajorStrg = TRUE;
|
||||
cblas_dtpmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtpmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, X, 0 );
|
||||
chkxer();
|
||||
} else if (strncmp( sf,"cblas_dtrsv",11)==0) {
|
||||
cblas_rout = "cblas_dtrsv";
|
||||
cblas_info = 1; RowMajorStrg = FALSE;
|
||||
cblas_dtrsv(INVALID, CblasUpper, CblasNoTrans,
|
||||
cblas_dtrsv(INVALID, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = FALSE;
|
||||
cblas_dtrsv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
cblas_dtrsv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = FALSE;
|
||||
cblas_dtrsv(CblasColMajor, CblasUpper, INVALID,
|
||||
cblas_dtrsv(CblasColMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = FALSE;
|
||||
cblas_dtrsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtrsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = FALSE;
|
||||
cblas_dtrsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtrsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 7; RowMajorStrg = FALSE;
|
||||
cblas_dtrsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtrsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 2, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 9; RowMajorStrg = FALSE;
|
||||
cblas_dtrsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtrsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, 1, X, 0 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = TRUE;
|
||||
cblas_dtrsv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
cblas_dtrsv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = TRUE;
|
||||
cblas_dtrsv(CblasRowMajor, CblasUpper, INVALID,
|
||||
cblas_dtrsv(CblasRowMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = TRUE;
|
||||
cblas_dtrsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtrsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = TRUE;
|
||||
cblas_dtrsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtrsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 7; RowMajorStrg = TRUE;
|
||||
cblas_dtrsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtrsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 2, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 9; RowMajorStrg = TRUE;
|
||||
cblas_dtrsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtrsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, 1, X, 0 );
|
||||
chkxer();
|
||||
} else if (strncmp( sf,"cblas_dtbsv",11)==0) {
|
||||
cblas_rout = "cblas_dtbsv";
|
||||
cblas_info = 1; RowMajorStrg = FALSE;
|
||||
cblas_dtbsv(INVALID, CblasUpper, CblasNoTrans,
|
||||
cblas_dtbsv(INVALID, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = FALSE;
|
||||
cblas_dtbsv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
cblas_dtbsv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = FALSE;
|
||||
cblas_dtbsv(CblasColMajor, CblasUpper, INVALID,
|
||||
cblas_dtbsv(CblasColMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = FALSE;
|
||||
cblas_dtbsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtbsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = FALSE;
|
||||
cblas_dtbsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtbsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 6; RowMajorStrg = FALSE;
|
||||
cblas_dtbsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtbsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, INVALID, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 8; RowMajorStrg = FALSE;
|
||||
cblas_dtbsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtbsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, 1, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 10; RowMajorStrg = FALSE;
|
||||
cblas_dtbsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtbsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 0 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = TRUE;
|
||||
cblas_dtbsv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
cblas_dtbsv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = TRUE;
|
||||
cblas_dtbsv(CblasRowMajor, CblasUpper, INVALID,
|
||||
cblas_dtbsv(CblasRowMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = TRUE;
|
||||
cblas_dtbsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtbsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = TRUE;
|
||||
cblas_dtbsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtbsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 6; RowMajorStrg = TRUE;
|
||||
cblas_dtbsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtbsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, INVALID, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 8; RowMajorStrg = TRUE;
|
||||
cblas_dtbsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtbsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, 1, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 10; RowMajorStrg = TRUE;
|
||||
cblas_dtbsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtbsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 0 );
|
||||
chkxer();
|
||||
} else if (strncmp( sf,"cblas_dtpsv",11)==0) {
|
||||
cblas_rout = "cblas_dtpsv";
|
||||
cblas_info = 1; RowMajorStrg = FALSE;
|
||||
cblas_dtpsv(INVALID, CblasUpper, CblasNoTrans,
|
||||
cblas_dtpsv(INVALID, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = FALSE;
|
||||
cblas_dtpsv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
cblas_dtpsv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = FALSE;
|
||||
cblas_dtpsv(CblasColMajor, CblasUpper, INVALID,
|
||||
cblas_dtpsv(CblasColMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = FALSE;
|
||||
cblas_dtpsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtpsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = FALSE;
|
||||
cblas_dtpsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtpsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 8; RowMajorStrg = FALSE;
|
||||
cblas_dtpsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtpsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, X, 0 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = TRUE;
|
||||
cblas_dtpsv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
cblas_dtpsv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = TRUE;
|
||||
cblas_dtpsv(CblasRowMajor, CblasUpper, INVALID,
|
||||
cblas_dtpsv(CblasRowMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = TRUE;
|
||||
cblas_dtpsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtpsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = TRUE;
|
||||
cblas_dtpsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtpsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 8; RowMajorStrg = TRUE;
|
||||
cblas_dtpsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_dtpsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, X, 0 );
|
||||
chkxer();
|
||||
} else if (strncmp( sf,"cblas_dger",10)==0) {
|
||||
@@ -781,7 +781,7 @@ void F77_d2chke(char *rout) {
|
||||
cblas_info = 6; RowMajorStrg = FALSE;
|
||||
cblas_dspr(CblasColMajor, CblasUpper, 0, ALPHA, X, 0, A );
|
||||
chkxer();
|
||||
}
|
||||
}
|
||||
if (cblas_ok == TRUE)
|
||||
printf(" %-12s PASSED THE TESTS OF ERROR-EXITS\n", cblas_rout);
|
||||
else
|
||||
|
||||
+7
-7
@@ -26,9 +26,9 @@ void chkxer(void) {
|
||||
|
||||
void F77_d3chke(char *rout) {
|
||||
char *sf = ( rout ) ;
|
||||
double A[2] = {0.0,0.0},
|
||||
B[2] = {0.0,0.0},
|
||||
C[2] = {0.0,0.0},
|
||||
double A[2] = {0.0,0.0},
|
||||
B[2] = {0.0,0.0},
|
||||
C[2] = {0.0,0.0},
|
||||
ALPHA=0.0, BETA=0.0;
|
||||
extern int cblas_info, cblas_lerr, cblas_ok;
|
||||
extern int RowMajorStrg;
|
||||
@@ -39,7 +39,7 @@ void F77_d3chke(char *rout) {
|
||||
cblas_xerbla(cblas_info,cblas_rout,"");
|
||||
F77_xerbla(cblas_rout,&cblas_info);
|
||||
}
|
||||
|
||||
|
||||
cblas_ok = TRUE ;
|
||||
cblas_lerr = PASSED ;
|
||||
|
||||
@@ -47,15 +47,15 @@ void F77_d3chke(char *rout) {
|
||||
cblas_rout = "cblas_dgemm" ;
|
||||
|
||||
cblas_info = 1;
|
||||
cblas_dgemm( INVALID, CblasNoTrans, CblasNoTrans, 0, 0, 0,
|
||||
cblas_dgemm( INVALID, CblasNoTrans, CblasNoTrans, 0, 0, 0,
|
||||
ALPHA, A, 1, B, 1, BETA, C, 1 );
|
||||
chkxer();
|
||||
cblas_info = 1;
|
||||
cblas_dgemm( INVALID, CblasNoTrans, CblasTrans, 0, 0, 0,
|
||||
cblas_dgemm( INVALID, CblasNoTrans, CblasTrans, 0, 0, 0,
|
||||
ALPHA, A, 1, B, 1, BETA, C, 1 );
|
||||
chkxer();
|
||||
cblas_info = 1;
|
||||
cblas_dgemm( INVALID, CblasTrans, CblasNoTrans, 0, 0, 0,
|
||||
cblas_dgemm( INVALID, CblasTrans, CblasNoTrans, 0, 0, 0,
|
||||
ALPHA, A, 1, B, 1, BETA, C, 1 );
|
||||
chkxer();
|
||||
cblas_info = 1;
|
||||
|
||||
+1
-1
@@ -21,7 +21,7 @@ void F77_daxpy(const int *N, const double *alpha, const double *X,
|
||||
return;
|
||||
}
|
||||
|
||||
void F77_dcopy(const int *N, double *X, const int *incX,
|
||||
void F77_dcopy(const int *N, double *X, const int *incX,
|
||||
double *Y, const int *incY)
|
||||
{
|
||||
cblas_dcopy(*N, X, *incX, Y, *incY);
|
||||
|
||||
+29
-29
@@ -8,8 +8,8 @@
|
||||
#include "common.h"
|
||||
#include "cblas_test.h"
|
||||
|
||||
void F77_dgemv(int *order, char *transp, int *m, int *n, double *alpha,
|
||||
double *a, int *lda, double *x, int *incx, double *beta,
|
||||
void F77_dgemv(int *order, char *transp, int *m, int *n, double *alpha,
|
||||
double *a, int *lda, double *x, int *incx, double *beta,
|
||||
double *y, int *incy ) {
|
||||
|
||||
double *A;
|
||||
@@ -23,7 +23,7 @@ void F77_dgemv(int *order, char *transp, int *m, int *n, double *alpha,
|
||||
for( i=0; i<*m; i++ )
|
||||
for( j=0; j<*n; j++ )
|
||||
A[ LDA*i+j ]=a[ (*lda)*j+i ];
|
||||
cblas_dgemv( CblasRowMajor, trans,
|
||||
cblas_dgemv( CblasRowMajor, trans,
|
||||
*m, *n, *alpha, A, LDA, x, *incx, *beta, y, *incy );
|
||||
free(A);
|
||||
}
|
||||
@@ -68,9 +68,9 @@ void F77_dtrmv(int *order, char *uplow, char *transp, char *diagn,
|
||||
enum CBLAS_UPLO uplo;
|
||||
enum CBLAS_DIAG diag;
|
||||
|
||||
get_transpose_type(transp,&trans);
|
||||
get_uplo_type(uplow,&uplo);
|
||||
get_diag_type(diagn,&diag);
|
||||
get_transpose_type(transp,&trans);
|
||||
get_uplo_type(uplow,&uplo);
|
||||
get_diag_type(diagn,&diag);
|
||||
|
||||
if (*order == TEST_ROW_MJR) {
|
||||
LDA = *n+1;
|
||||
@@ -88,7 +88,7 @@ void F77_dtrmv(int *order, char *uplow, char *transp, char *diagn,
|
||||
}
|
||||
}
|
||||
|
||||
void F77_dtrsv(int *order, char *uplow, char *transp, char *diagn,
|
||||
void F77_dtrsv(int *order, char *uplow, char *transp, char *diagn,
|
||||
int *n, double *a, int *lda, double *x, int *incx ) {
|
||||
double *A;
|
||||
int i,j,LDA;
|
||||
@@ -112,7 +112,7 @@ void F77_dtrsv(int *order, char *uplow, char *transp, char *diagn,
|
||||
else
|
||||
cblas_dtrsv(CblasColMajor, uplo, trans, diag, *n, a, *lda, x, *incx );
|
||||
}
|
||||
void F77_dsymv(int *order, char *uplow, int *n, double *alpha, double *a,
|
||||
void F77_dsymv(int *order, char *uplow, int *n, double *alpha, double *a,
|
||||
int *lda, double *x, int *incx, double *beta, double *y,
|
||||
int *incy) {
|
||||
double *A;
|
||||
@@ -136,7 +136,7 @@ void F77_dsymv(int *order, char *uplow, int *n, double *alpha, double *a,
|
||||
*beta, y, *incy );
|
||||
}
|
||||
|
||||
void F77_dsyr(int *order, char *uplow, int *n, double *alpha, double *x,
|
||||
void F77_dsyr(int *order, char *uplow, int *n, double *alpha, double *x,
|
||||
int *incx, double *a, int *lda) {
|
||||
double *A;
|
||||
int i,j,LDA;
|
||||
@@ -160,7 +160,7 @@ void F77_dsyr(int *order, char *uplow, int *n, double *alpha, double *x,
|
||||
cblas_dsyr(CblasColMajor, uplo, *n, *alpha, x, *incx, a, *lda);
|
||||
}
|
||||
|
||||
void F77_dsyr2(int *order, char *uplow, int *n, double *alpha, double *x,
|
||||
void F77_dsyr2(int *order, char *uplow, int *n, double *alpha, double *x,
|
||||
int *incx, double *y, int *incy, double *a, int *lda) {
|
||||
double *A;
|
||||
int i,j,LDA;
|
||||
@@ -185,7 +185,7 @@ void F77_dsyr2(int *order, char *uplow, int *n, double *alpha, double *x,
|
||||
}
|
||||
|
||||
void F77_dgbmv(int *order, char *transp, int *m, int *n, int *kl, int *ku,
|
||||
double *alpha, double *a, int *lda, double *x, int *incx,
|
||||
double *alpha, double *a, int *lda, double *x, int *incx,
|
||||
double *beta, double *y, int *incy ) {
|
||||
|
||||
double *A;
|
||||
@@ -213,7 +213,7 @@ void F77_dgbmv(int *order, char *transp, int *m, int *n, int *kl, int *ku,
|
||||
for( j=jcol; j<(*n+*kl); j++ )
|
||||
A[ LDA*j+irow ]=a[ (*lda)*(j-jcol)+i ];
|
||||
}
|
||||
cblas_dgbmv( CblasRowMajor, trans, *m, *n, *kl, *ku, *alpha,
|
||||
cblas_dgbmv( CblasRowMajor, trans, *m, *n, *kl, *ku, *alpha,
|
||||
A, LDA, x, *incx, *beta, y, *incy );
|
||||
free(A);
|
||||
}
|
||||
@@ -230,9 +230,9 @@ void F77_dtbmv(int *order, char *uplow, char *transp, char *diagn,
|
||||
enum CBLAS_UPLO uplo;
|
||||
enum CBLAS_DIAG diag;
|
||||
|
||||
get_transpose_type(transp,&trans);
|
||||
get_uplo_type(uplow,&uplo);
|
||||
get_diag_type(diagn,&diag);
|
||||
get_transpose_type(transp,&trans);
|
||||
get_uplo_type(uplow,&uplo);
|
||||
get_diag_type(diagn,&diag);
|
||||
|
||||
if (*order == TEST_ROW_MJR) {
|
||||
LDA = *k+1;
|
||||
@@ -276,9 +276,9 @@ void F77_dtbsv(int *order, char *uplow, char *transp, char *diagn,
|
||||
enum CBLAS_UPLO uplo;
|
||||
enum CBLAS_DIAG diag;
|
||||
|
||||
get_transpose_type(transp,&trans);
|
||||
get_uplo_type(uplow,&uplo);
|
||||
get_diag_type(diagn,&diag);
|
||||
get_transpose_type(transp,&trans);
|
||||
get_uplo_type(uplow,&uplo);
|
||||
get_diag_type(diagn,&diag);
|
||||
|
||||
if (*order == TEST_ROW_MJR) {
|
||||
LDA = *k+1;
|
||||
@@ -315,7 +315,7 @@ void F77_dtbsv(int *order, char *uplow, char *transp, char *diagn,
|
||||
}
|
||||
|
||||
void F77_dsbmv(int *order, char *uplow, int *n, int *k, double *alpha,
|
||||
double *a, int *lda, double *x, int *incx, double *beta,
|
||||
double *a, int *lda, double *x, int *incx, double *beta,
|
||||
double *y, int *incy) {
|
||||
double *A;
|
||||
int i,j,irow,jcol,LDA;
|
||||
@@ -387,13 +387,13 @@ void F77_dspmv(int *order, char *uplow, int *n, double *alpha, double *ap,
|
||||
for( j=0; j<i+1; j++, k++ )
|
||||
AP[ k ]=A[ LDA*i+j ];
|
||||
}
|
||||
cblas_dspmv( CblasRowMajor, uplo, *n, *alpha, AP, x, *incx, *beta, y,
|
||||
cblas_dspmv( CblasRowMajor, uplo, *n, *alpha, AP, x, *incx, *beta, y,
|
||||
*incy );
|
||||
free(A);
|
||||
free(AP);
|
||||
}
|
||||
else
|
||||
cblas_dspmv( CblasColMajor, uplo, *n, *alpha, ap, x, *incx, *beta, y,
|
||||
cblas_dspmv( CblasColMajor, uplo, *n, *alpha, ap, x, *incx, *beta, y,
|
||||
*incy );
|
||||
}
|
||||
|
||||
@@ -405,9 +405,9 @@ void F77_dtpmv(int *order, char *uplow, char *transp, char *diagn,
|
||||
enum CBLAS_UPLO uplo;
|
||||
enum CBLAS_DIAG diag;
|
||||
|
||||
get_transpose_type(transp,&trans);
|
||||
get_uplo_type(uplow,&uplo);
|
||||
get_diag_type(diagn,&diag);
|
||||
get_transpose_type(transp,&trans);
|
||||
get_uplo_type(uplow,&uplo);
|
||||
get_diag_type(diagn,&diag);
|
||||
|
||||
if (*order == TEST_ROW_MJR) {
|
||||
LDA = *n;
|
||||
@@ -445,9 +445,9 @@ void F77_dtpsv(int *order, char *uplow, char *transp, char *diagn,
|
||||
enum CBLAS_UPLO uplo;
|
||||
enum CBLAS_DIAG diag;
|
||||
|
||||
get_transpose_type(transp,&trans);
|
||||
get_uplo_type(uplow,&uplo);
|
||||
get_diag_type(diagn,&diag);
|
||||
get_transpose_type(transp,&trans);
|
||||
get_uplo_type(uplow,&uplo);
|
||||
get_diag_type(diagn,&diag);
|
||||
|
||||
if (*order == TEST_ROW_MJR) {
|
||||
LDA = *n;
|
||||
@@ -478,7 +478,7 @@ void F77_dtpsv(int *order, char *uplow, char *transp, char *diagn,
|
||||
cblas_dtpsv( CblasColMajor, uplo, trans, diag, *n, ap, x, *incx );
|
||||
}
|
||||
|
||||
void F77_dspr(int *order, char *uplow, int *n, double *alpha, double *x,
|
||||
void F77_dspr(int *order, char *uplow, int *n, double *alpha, double *x,
|
||||
int *incx, double *ap ){
|
||||
double *A, *AP;
|
||||
int i,j,k,LDA;
|
||||
@@ -530,7 +530,7 @@ void F77_dspr(int *order, char *uplow, int *n, double *alpha, double *x,
|
||||
cblas_dspr( CblasColMajor, uplo, *n, *alpha, x, *incx, ap );
|
||||
}
|
||||
|
||||
void F77_dspr2(int *order, char *uplow, int *n, double *alpha, double *x,
|
||||
void F77_dspr2(int *order, char *uplow, int *n, double *alpha, double *x,
|
||||
int *incx, double *y, int *incy, double *ap ){
|
||||
double *A, *AP;
|
||||
int i,j,k,LDA;
|
||||
|
||||
+18
-18
@@ -12,7 +12,7 @@
|
||||
#define TEST_ROW_MJR 1
|
||||
#define UNDEFINED -1
|
||||
|
||||
void F77_dgemm(int *order, char *transpa, char *transpb, int *m, int *n,
|
||||
void F77_dgemm(int *order, char *transpa, char *transpb, int *m, int *n,
|
||||
int *k, double *alpha, double *a, int *lda, double *b, int *ldb,
|
||||
double *beta, double *c, int *ldc ) {
|
||||
|
||||
@@ -111,7 +111,7 @@ void F77_dsymm(int *order, char *rtlf, char *uplow, int *m, int *n,
|
||||
for( j=0; j<*n; j++ )
|
||||
for( i=0; i<*m; i++ )
|
||||
C[i*LDC+j]=c[j*(*ldc)+i];
|
||||
cblas_dsymm( CblasRowMajor, side, uplo, *m, *n, *alpha, A, LDA, B, LDB,
|
||||
cblas_dsymm( CblasRowMajor, side, uplo, *m, *n, *alpha, A, LDA, B, LDB,
|
||||
*beta, C, LDC );
|
||||
for( j=0; j<*n; j++ )
|
||||
for( i=0; i<*m; i++ )
|
||||
@@ -121,15 +121,15 @@ void F77_dsymm(int *order, char *rtlf, char *uplow, int *m, int *n,
|
||||
free(C);
|
||||
}
|
||||
else if (*order == TEST_COL_MJR)
|
||||
cblas_dsymm( CblasColMajor, side, uplo, *m, *n, *alpha, a, *lda, b, *ldb,
|
||||
cblas_dsymm( CblasColMajor, side, uplo, *m, *n, *alpha, a, *lda, b, *ldb,
|
||||
*beta, c, *ldc );
|
||||
else
|
||||
cblas_dsymm( UNDEFINED, side, uplo, *m, *n, *alpha, a, *lda, b, *ldb,
|
||||
cblas_dsymm( UNDEFINED, side, uplo, *m, *n, *alpha, a, *lda, b, *ldb,
|
||||
*beta, c, *ldc );
|
||||
}
|
||||
|
||||
void F77_dsyrk(int *order, char *uplow, char *transp, int *n, int *k,
|
||||
double *alpha, double *a, int *lda,
|
||||
double *alpha, double *a, int *lda,
|
||||
double *beta, double *c, int *ldc ) {
|
||||
|
||||
int i,j,LDA,LDC;
|
||||
@@ -160,7 +160,7 @@ void F77_dsyrk(int *order, char *uplow, char *transp, int *n, int *k,
|
||||
for( i=0; i<*n; i++ )
|
||||
for( j=0; j<*n; j++ )
|
||||
C[i*LDC+j]=c[j*(*ldc)+i];
|
||||
cblas_dsyrk(CblasRowMajor, uplo, trans, *n, *k, *alpha, A, LDA, *beta,
|
||||
cblas_dsyrk(CblasRowMajor, uplo, trans, *n, *k, *alpha, A, LDA, *beta,
|
||||
C, LDC );
|
||||
for( j=0; j<*n; j++ )
|
||||
for( i=0; i<*n; i++ )
|
||||
@@ -169,10 +169,10 @@ void F77_dsyrk(int *order, char *uplow, char *transp, int *n, int *k,
|
||||
free(C);
|
||||
}
|
||||
else if (*order == TEST_COL_MJR)
|
||||
cblas_dsyrk(CblasColMajor, uplo, trans, *n, *k, *alpha, a, *lda, *beta,
|
||||
cblas_dsyrk(CblasColMajor, uplo, trans, *n, *k, *alpha, a, *lda, *beta,
|
||||
c, *ldc );
|
||||
else
|
||||
cblas_dsyrk(UNDEFINED, uplo, trans, *n, *k, *alpha, a, *lda, *beta,
|
||||
cblas_dsyrk(UNDEFINED, uplo, trans, *n, *k, *alpha, a, *lda, *beta,
|
||||
c, *ldc );
|
||||
}
|
||||
|
||||
@@ -215,7 +215,7 @@ void F77_dsyr2k(int *order, char *uplow, char *transp, int *n, int *k,
|
||||
for( i=0; i<*n; i++ )
|
||||
for( j=0; j<*n; j++ )
|
||||
C[i*LDC+j]=c[j*(*ldc)+i];
|
||||
cblas_dsyr2k(CblasRowMajor, uplo, trans, *n, *k, *alpha, A, LDA,
|
||||
cblas_dsyr2k(CblasRowMajor, uplo, trans, *n, *k, *alpha, A, LDA,
|
||||
B, LDB, *beta, C, LDC );
|
||||
for( j=0; j<*n; j++ )
|
||||
for( i=0; i<*n; i++ )
|
||||
@@ -225,14 +225,14 @@ void F77_dsyr2k(int *order, char *uplow, char *transp, int *n, int *k,
|
||||
free(C);
|
||||
}
|
||||
else if (*order == TEST_COL_MJR)
|
||||
cblas_dsyr2k(CblasColMajor, uplo, trans, *n, *k, *alpha, a, *lda,
|
||||
cblas_dsyr2k(CblasColMajor, uplo, trans, *n, *k, *alpha, a, *lda,
|
||||
b, *ldb, *beta, c, *ldc );
|
||||
else
|
||||
cblas_dsyr2k(UNDEFINED, uplo, trans, *n, *k, *alpha, a, *lda,
|
||||
cblas_dsyr2k(UNDEFINED, uplo, trans, *n, *k, *alpha, a, *lda,
|
||||
b, *ldb, *beta, c, *ldc );
|
||||
}
|
||||
void F77_dtrmm(int *order, char *rtlf, char *uplow, char *transp, char *diagn,
|
||||
int *m, int *n, double *alpha, double *a, int *lda, double *b,
|
||||
int *m, int *n, double *alpha, double *a, int *lda, double *b,
|
||||
int *ldb) {
|
||||
int i,j,LDA,LDB;
|
||||
double *A, *B;
|
||||
@@ -266,7 +266,7 @@ void F77_dtrmm(int *order, char *rtlf, char *uplow, char *transp, char *diagn,
|
||||
for( i=0; i<*m; i++ )
|
||||
for( j=0; j<*n; j++ )
|
||||
B[i*LDB+j]=b[j*(*ldb)+i];
|
||||
cblas_dtrmm(CblasRowMajor, side, uplo, trans, diag, *m, *n, *alpha,
|
||||
cblas_dtrmm(CblasRowMajor, side, uplo, trans, diag, *m, *n, *alpha,
|
||||
A, LDA, B, LDB );
|
||||
for( j=0; j<*n; j++ )
|
||||
for( i=0; i<*m; i++ )
|
||||
@@ -275,10 +275,10 @@ void F77_dtrmm(int *order, char *rtlf, char *uplow, char *transp, char *diagn,
|
||||
free(B);
|
||||
}
|
||||
else if (*order == TEST_COL_MJR)
|
||||
cblas_dtrmm(CblasColMajor, side, uplo, trans, diag, *m, *n, *alpha,
|
||||
cblas_dtrmm(CblasColMajor, side, uplo, trans, diag, *m, *n, *alpha,
|
||||
a, *lda, b, *ldb);
|
||||
else
|
||||
cblas_dtrmm(UNDEFINED, side, uplo, trans, diag, *m, *n, *alpha,
|
||||
cblas_dtrmm(UNDEFINED, side, uplo, trans, diag, *m, *n, *alpha,
|
||||
a, *lda, b, *ldb);
|
||||
}
|
||||
|
||||
@@ -317,7 +317,7 @@ void F77_dtrsm(int *order, char *rtlf, char *uplow, char *transp, char *diagn,
|
||||
for( i=0; i<*m; i++ )
|
||||
for( j=0; j<*n; j++ )
|
||||
B[i*LDB+j]=b[j*(*ldb)+i];
|
||||
cblas_dtrsm(CblasRowMajor, side, uplo, trans, diag, *m, *n, *alpha,
|
||||
cblas_dtrsm(CblasRowMajor, side, uplo, trans, diag, *m, *n, *alpha,
|
||||
A, LDA, B, LDB );
|
||||
for( j=0; j<*n; j++ )
|
||||
for( i=0; i<*m; i++ )
|
||||
@@ -326,9 +326,9 @@ void F77_dtrsm(int *order, char *rtlf, char *uplow, char *transp, char *diagn,
|
||||
free(B);
|
||||
}
|
||||
else if (*order == TEST_COL_MJR)
|
||||
cblas_dtrsm(CblasColMajor, side, uplo, trans, diag, *m, *n, *alpha,
|
||||
cblas_dtrsm(CblasColMajor, side, uplo, trans, diag, *m, *n, *alpha,
|
||||
a, *lda, b, *ldb);
|
||||
else
|
||||
cblas_dtrsm(UNDEFINED, side, uplo, trans, diag, *m, *n, *alpha,
|
||||
cblas_dtrsm(UNDEFINED, side, uplo, trans, diag, *m, *n, *alpha,
|
||||
a, *lda, b, *ldb);
|
||||
}
|
||||
|
||||
+2
-2
@@ -506,7 +506,7 @@
|
||||
80 CONTINUE
|
||||
MWPS(1) = 0.0
|
||||
DO 100 I = 2, 6
|
||||
MWPS(I) = 1.0
|
||||
MWPS(I) = 1.0
|
||||
100 CONTINUE
|
||||
DO 120 I = 7, 11
|
||||
MWPS(I) = -1.0
|
||||
@@ -589,7 +589,7 @@
|
||||
MWPSTX(K) = MWPTX(I,K)
|
||||
MWPSTY(K) = MWPTY(I,K)
|
||||
180 CONTINUE
|
||||
CALL DROTTEST(MWPN(I),COPYX,INCX,COPYY,INCY,MWPC(I),MWPS(I))
|
||||
CALL DROTTEST(MWPN(I),COPYX,INCX,COPYY,INCY,MWPC(I),MWPS(I))
|
||||
CALL STEST(5,COPYX,MWPSTX,MWPSTX,SFAC)
|
||||
CALL STEST(5,COPYY,MWPSTY,MWPSTY,SFAC)
|
||||
200 CONTINUE
|
||||
|
||||
+7
-7
@@ -572,7 +572,7 @@
|
||||
CTRANS = ' CblasNoTrans'
|
||||
ELSE IF (TRANS.EQ.'T')THEN
|
||||
CTRANS = ' CblasTrans'
|
||||
ELSE
|
||||
ELSE
|
||||
CTRANS = 'CblasConjTrans'
|
||||
END IF
|
||||
TRAN = TRANS.EQ.'T'.OR.TRANS.EQ.'C'
|
||||
@@ -921,7 +921,7 @@
|
||||
UPLO = ICH( IC: IC )
|
||||
IF (UPLO.EQ.'U')THEN
|
||||
CUPLO = ' CblasUpper'
|
||||
ELSE
|
||||
ELSE
|
||||
CUPLO = ' CblasLower'
|
||||
END IF
|
||||
*
|
||||
@@ -1215,7 +1215,7 @@
|
||||
LOGICAL LDE, LDERES
|
||||
EXTERNAL LDE, LDERES
|
||||
* .. External Subroutines ..
|
||||
EXTERNAL DMAKE, DMVCH, CDTBMV, CDTBSV, CDTPMV,
|
||||
EXTERNAL DMAKE, DMVCH, CDTBMV, CDTBSV, CDTPMV,
|
||||
$ CDTPSV, CDTRMV, CDTRSV
|
||||
* .. Intrinsic Functions ..
|
||||
INTRINSIC ABS, MAX
|
||||
@@ -1283,7 +1283,7 @@
|
||||
UPLO = ICHU( ICU: ICU )
|
||||
IF (UPLO.EQ.'U')THEN
|
||||
CUPLO = ' CblasUpper'
|
||||
ELSE
|
||||
ELSE
|
||||
CUPLO = ' CblasLower'
|
||||
END IF
|
||||
*
|
||||
@@ -1293,7 +1293,7 @@
|
||||
CTRANS = ' CblasNoTrans'
|
||||
ELSE IF (TRANS.EQ.'T')THEN
|
||||
CTRANS = ' CblasTrans'
|
||||
ELSE
|
||||
ELSE
|
||||
CTRANS = 'CblasConjTrans'
|
||||
END IF
|
||||
*
|
||||
@@ -1972,7 +1972,7 @@
|
||||
$ ALPHA, INCX, LDA
|
||||
IF( REWI )
|
||||
$ REWIND NTRA
|
||||
CALL CDSYR( IORDER, UPLO, N, ALPHA, XX, INCX,
|
||||
CALL CDSYR( IORDER, UPLO, N, ALPHA, XX, INCX,
|
||||
$ AA, LDA )
|
||||
ELSE IF( PACKED )THEN
|
||||
IF( TRACE )
|
||||
@@ -2737,7 +2737,7 @@
|
||||
WRITE( NOUT, FMT = 9998 )I, YT( I ),
|
||||
$ YY( 1 + ( I - 1 )*ABS( INCY ) )
|
||||
ELSE
|
||||
WRITE( NOUT, FMT = 9998 )I,
|
||||
WRITE( NOUT, FMT = 9998 )I,
|
||||
$ YY( 1 + ( I - 1 )*ABS( INCY ) ), YT(I)
|
||||
END IF
|
||||
60 CONTINUE
|
||||
|
||||
+32
-32
@@ -675,7 +675,7 @@
|
||||
*
|
||||
120 CONTINUE
|
||||
WRITE( NOUT, FMT = 9996 )SNAME
|
||||
CALL DPRCN1(NOUT, NC, SNAME, IORDER, TRANSA, TRANSB,
|
||||
CALL DPRCN1(NOUT, NC, SNAME, IORDER, TRANSA, TRANSB,
|
||||
$ M, N, K, ALPHA, LDA, LDB, BETA, LDC)
|
||||
*
|
||||
130 CONTINUE
|
||||
@@ -710,24 +710,24 @@
|
||||
CHARACTER*1 TRANSA, TRANSB
|
||||
CHARACTER*12 SNAME
|
||||
CHARACTER*14 CRC, CTA,CTB
|
||||
|
||||
|
||||
IF (TRANSA.EQ.'N')THEN
|
||||
CTA = ' CblasNoTrans'
|
||||
ELSE IF (TRANSA.EQ.'T')THEN
|
||||
CTA = ' CblasTrans'
|
||||
ELSE
|
||||
ELSE
|
||||
CTA = 'CblasConjTrans'
|
||||
END IF
|
||||
IF (TRANSB.EQ.'N')THEN
|
||||
CTB = ' CblasNoTrans'
|
||||
ELSE IF (TRANSB.EQ.'T')THEN
|
||||
CTB = ' CblasTrans'
|
||||
ELSE
|
||||
ELSE
|
||||
CTB = 'CblasConjTrans'
|
||||
END IF
|
||||
IF (IORDER.EQ.1)THEN
|
||||
CRC = ' CblasRowMajor'
|
||||
ELSE
|
||||
ELSE
|
||||
CRC = ' CblasColMajor'
|
||||
END IF
|
||||
WRITE(NOUT, FMT = 9995)NC,SNAME,CRC, CTA,CTB
|
||||
@@ -891,9 +891,9 @@
|
||||
* Call the subroutine.
|
||||
*
|
||||
IF( TRACE )
|
||||
$ CALL DPRCN2(NTRA, NC, SNAME, IORDER,
|
||||
$ SIDE, UPLO, M, N, ALPHA, LDA, LDB,
|
||||
$ BETA, LDC)
|
||||
$ CALL DPRCN2(NTRA, NC, SNAME, IORDER,
|
||||
$ SIDE, UPLO, M, N, ALPHA, LDA, LDB,
|
||||
$ BETA, LDC)
|
||||
IF( REWI )
|
||||
$ REWIND NTRA
|
||||
CALL CDSYMM( IORDER, SIDE, UPLO, M, N, ALPHA,
|
||||
@@ -989,7 +989,7 @@
|
||||
110 CONTINUE
|
||||
WRITE( NOUT, FMT = 9996 )SNAME
|
||||
CALL DPRCN2(NOUT, NC, SNAME, IORDER, SIDE, UPLO, M, N, ALPHA, LDA,
|
||||
$ LDB, BETA, LDC)
|
||||
$ LDB, BETA, LDC)
|
||||
*
|
||||
120 CONTINUE
|
||||
RETURN
|
||||
@@ -1024,20 +1024,20 @@
|
||||
CHARACTER*1 SIDE, UPLO
|
||||
CHARACTER*12 SNAME
|
||||
CHARACTER*14 CRC, CS,CU
|
||||
|
||||
|
||||
IF (SIDE.EQ.'L')THEN
|
||||
CS = ' CblasLeft'
|
||||
ELSE
|
||||
ELSE
|
||||
CS = ' CblasRight'
|
||||
END IF
|
||||
IF (UPLO.EQ.'U')THEN
|
||||
CU = ' CblasUpper'
|
||||
ELSE
|
||||
ELSE
|
||||
CU = ' CblasLower'
|
||||
END IF
|
||||
IF (IORDER.EQ.1)THEN
|
||||
CRC = ' CblasRowMajor'
|
||||
ELSE
|
||||
ELSE
|
||||
CRC = ' CblasColMajor'
|
||||
END IF
|
||||
WRITE(NOUT, FMT = 9995)NC,SNAME,CRC, CS,CU
|
||||
@@ -1210,7 +1210,7 @@
|
||||
IF( REWI )
|
||||
$ REWIND NTRA
|
||||
CALL CDTRSM( IORDER, SIDE, UPLO, TRANSA,
|
||||
$ DIAG, M, N, ALPHA, AA, LDA,
|
||||
$ DIAG, M, N, ALPHA, AA, LDA,
|
||||
$ BB, LDB )
|
||||
END IF
|
||||
*
|
||||
@@ -1370,22 +1370,22 @@
|
||||
CHARACTER*1 SIDE, UPLO, TRANSA, DIAG
|
||||
CHARACTER*12 SNAME
|
||||
CHARACTER*14 CRC, CS, CU, CA, CD
|
||||
|
||||
|
||||
IF (SIDE.EQ.'L')THEN
|
||||
CS = ' CblasLeft'
|
||||
ELSE
|
||||
ELSE
|
||||
CS = ' CblasRight'
|
||||
END IF
|
||||
IF (UPLO.EQ.'U')THEN
|
||||
CU = ' CblasUpper'
|
||||
ELSE
|
||||
ELSE
|
||||
CU = ' CblasLower'
|
||||
END IF
|
||||
IF (TRANSA.EQ.'N')THEN
|
||||
CA = ' CblasNoTrans'
|
||||
ELSE IF (TRANSA.EQ.'T')THEN
|
||||
CA = ' CblasTrans'
|
||||
ELSE
|
||||
ELSE
|
||||
CA = 'CblasConjTrans'
|
||||
END IF
|
||||
IF (DIAG.EQ.'N')THEN
|
||||
@@ -1395,14 +1395,14 @@
|
||||
END IF
|
||||
IF (IORDER.EQ.1)THEN
|
||||
CRC = ' CblasRowMajor'
|
||||
ELSE
|
||||
ELSE
|
||||
CRC = ' CblasColMajor'
|
||||
END IF
|
||||
WRITE(NOUT, FMT = 9995)NC,SNAME,CRC, CS,CU
|
||||
WRITE(NOUT, FMT = 9994)CA, CD, M, N, ALPHA, LDA, LDB
|
||||
|
||||
9995 FORMAT( 1X, I6, ': ', A12,'(', A14, ',', A14, ',', A14, ',')
|
||||
9994 FORMAT( 22X, 2( A14, ',') , 2( I3, ',' ),
|
||||
9994 FORMAT( 22X, 2( A14, ',') , 2( I3, ',' ),
|
||||
$ F4.1, ', A,', I3, ', B,', I3, ').' )
|
||||
END
|
||||
*
|
||||
@@ -1696,36 +1696,36 @@
|
||||
CHARACTER*1 UPLO, TRANSA
|
||||
CHARACTER*12 SNAME
|
||||
CHARACTER*14 CRC, CU, CA
|
||||
|
||||
|
||||
IF (UPLO.EQ.'U')THEN
|
||||
CU = ' CblasUpper'
|
||||
ELSE
|
||||
ELSE
|
||||
CU = ' CblasLower'
|
||||
END IF
|
||||
IF (TRANSA.EQ.'N')THEN
|
||||
CA = ' CblasNoTrans'
|
||||
ELSE IF (TRANSA.EQ.'T')THEN
|
||||
CA = ' CblasTrans'
|
||||
ELSE
|
||||
ELSE
|
||||
CA = 'CblasConjTrans'
|
||||
END IF
|
||||
IF (IORDER.EQ.1)THEN
|
||||
CRC = ' CblasRowMajor'
|
||||
ELSE
|
||||
ELSE
|
||||
CRC = ' CblasColMajor'
|
||||
END IF
|
||||
WRITE(NOUT, FMT = 9995)NC, SNAME, CRC, CU, CA
|
||||
WRITE(NOUT, FMT = 9994)N, K, ALPHA, LDA, BETA, LDC
|
||||
|
||||
9995 FORMAT( 1X, I6, ': ', A12,'(', 3( A14, ',') )
|
||||
9994 FORMAT( 20X, 2( I3, ',' ),
|
||||
9994 FORMAT( 20X, 2( I3, ',' ),
|
||||
$ F4.1, ', A,', I3, ',', F4.1, ', C,', I3, ').' )
|
||||
END
|
||||
*
|
||||
SUBROUTINE DCHK5( SNAME, EPS, THRESH, NOUT, NTRA, TRACE, REWI,
|
||||
$ FATAL, NIDIM, IDIM, NALF, ALF, NBET, BET, NMAX,
|
||||
$ AB, AA, AS, BB, BS, C, CC, CS, CT, G, W,
|
||||
$ IORDER )
|
||||
$ AB, AA, AS, BB, BS, C, CC, CS, CT, G, W,
|
||||
$ IORDER )
|
||||
*
|
||||
* Tests DSYR2K.
|
||||
*
|
||||
@@ -2053,29 +2053,29 @@
|
||||
CHARACTER*1 UPLO, TRANSA
|
||||
CHARACTER*12 SNAME
|
||||
CHARACTER*14 CRC, CU, CA
|
||||
|
||||
|
||||
IF (UPLO.EQ.'U')THEN
|
||||
CU = ' CblasUpper'
|
||||
ELSE
|
||||
ELSE
|
||||
CU = ' CblasLower'
|
||||
END IF
|
||||
IF (TRANSA.EQ.'N')THEN
|
||||
CA = ' CblasNoTrans'
|
||||
ELSE IF (TRANSA.EQ.'T')THEN
|
||||
CA = ' CblasTrans'
|
||||
ELSE
|
||||
ELSE
|
||||
CA = 'CblasConjTrans'
|
||||
END IF
|
||||
IF (IORDER.EQ.1)THEN
|
||||
CRC = ' CblasRowMajor'
|
||||
ELSE
|
||||
ELSE
|
||||
CRC = ' CblasColMajor'
|
||||
END IF
|
||||
WRITE(NOUT, FMT = 9995)NC, SNAME, CRC, CU, CA
|
||||
WRITE(NOUT, FMT = 9994)N, K, ALPHA, LDA, LDB, BETA, LDC
|
||||
|
||||
9995 FORMAT( 1X, I6, ': ', A12,'(', 3( A14, ',') )
|
||||
9994 FORMAT( 20X, 2( I3, ',' ),
|
||||
9994 FORMAT( 20X, 2( I3, ',' ),
|
||||
$ F4.1, ', A,', I3, ', B', I3, ',', F4.1, ', C,', I3, ').' )
|
||||
END
|
||||
*
|
||||
|
||||
+145
-145
@@ -26,9 +26,9 @@ void chkxer(void) {
|
||||
|
||||
void F77_s2chke(char *rout) {
|
||||
char *sf = ( rout ) ;
|
||||
float A[2] = {0.0,0.0},
|
||||
X[2] = {0.0,0.0},
|
||||
Y[2] = {0.0,0.0},
|
||||
float A[2] = {0.0,0.0},
|
||||
X[2] = {0.0,0.0},
|
||||
Y[2] = {0.0,0.0},
|
||||
ALPHA=0.0, BETA=0.0;
|
||||
extern int cblas_info, cblas_lerr, cblas_ok;
|
||||
extern int RowMajorStrg;
|
||||
@@ -46,588 +46,588 @@ void F77_s2chke(char *rout) {
|
||||
if (strncmp( sf,"cblas_sgemv",11)==0) {
|
||||
cblas_rout = "cblas_sgemv";
|
||||
cblas_info = 1;
|
||||
cblas_sgemv(INVALID, CblasNoTrans, 0, 0,
|
||||
cblas_sgemv(INVALID, CblasNoTrans, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = FALSE;
|
||||
cblas_sgemv(CblasColMajor, INVALID, 0, 0,
|
||||
cblas_sgemv(CblasColMajor, INVALID, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = FALSE;
|
||||
cblas_sgemv(CblasColMajor, CblasNoTrans, INVALID, 0,
|
||||
cblas_sgemv(CblasColMajor, CblasNoTrans, INVALID, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = FALSE;
|
||||
cblas_sgemv(CblasColMajor, CblasNoTrans, 0, INVALID,
|
||||
cblas_sgemv(CblasColMajor, CblasNoTrans, 0, INVALID,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 7; RowMajorStrg = FALSE;
|
||||
cblas_sgemv(CblasColMajor, CblasNoTrans, 2, 0,
|
||||
cblas_sgemv(CblasColMajor, CblasNoTrans, 2, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 9; RowMajorStrg = FALSE;
|
||||
cblas_sgemv(CblasColMajor, CblasNoTrans, 0, 0,
|
||||
cblas_sgemv(CblasColMajor, CblasNoTrans, 0, 0,
|
||||
ALPHA, A, 1, X, 0, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 12; RowMajorStrg = FALSE;
|
||||
cblas_sgemv(CblasColMajor, CblasNoTrans, 0, 0,
|
||||
cblas_sgemv(CblasColMajor, CblasNoTrans, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 0 );
|
||||
chkxer();
|
||||
|
||||
cblas_info = 2; RowMajorStrg = TRUE; RowMajorStrg = TRUE;
|
||||
cblas_sgemv(CblasRowMajor, INVALID, 0, 0,
|
||||
cblas_sgemv(CblasRowMajor, INVALID, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = TRUE;
|
||||
cblas_sgemv(CblasRowMajor, CblasNoTrans, INVALID, 0,
|
||||
cblas_sgemv(CblasRowMajor, CblasNoTrans, INVALID, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = TRUE;
|
||||
cblas_sgemv(CblasRowMajor, CblasNoTrans, 0, INVALID,
|
||||
cblas_sgemv(CblasRowMajor, CblasNoTrans, 0, INVALID,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 7; RowMajorStrg = TRUE;
|
||||
cblas_sgemv(CblasRowMajor, CblasNoTrans, 0, 2,
|
||||
cblas_sgemv(CblasRowMajor, CblasNoTrans, 0, 2,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 9; RowMajorStrg = TRUE;
|
||||
cblas_sgemv(CblasRowMajor, CblasNoTrans, 0, 0,
|
||||
cblas_sgemv(CblasRowMajor, CblasNoTrans, 0, 0,
|
||||
ALPHA, A, 1, X, 0, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 12; RowMajorStrg = TRUE;
|
||||
cblas_sgemv(CblasRowMajor, CblasNoTrans, 0, 0,
|
||||
cblas_sgemv(CblasRowMajor, CblasNoTrans, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 0 );
|
||||
chkxer();
|
||||
} else if (strncmp( sf,"cblas_sgbmv",11)==0) {
|
||||
cblas_rout = "cblas_sgbmv";
|
||||
cblas_info = 1; RowMajorStrg = FALSE;
|
||||
cblas_sgbmv(INVALID, CblasNoTrans, 0, 0, 0, 0,
|
||||
cblas_sgbmv(INVALID, CblasNoTrans, 0, 0, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = FALSE;
|
||||
cblas_sgbmv(CblasColMajor, INVALID, 0, 0, 0, 0,
|
||||
cblas_sgbmv(CblasColMajor, INVALID, 0, 0, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = FALSE;
|
||||
cblas_sgbmv(CblasColMajor, CblasNoTrans, INVALID, 0, 0, 0,
|
||||
cblas_sgbmv(CblasColMajor, CblasNoTrans, INVALID, 0, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = FALSE;
|
||||
cblas_sgbmv(CblasColMajor, CblasNoTrans, 0, INVALID, 0, 0,
|
||||
cblas_sgbmv(CblasColMajor, CblasNoTrans, 0, INVALID, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = FALSE;
|
||||
cblas_sgbmv(CblasColMajor, CblasNoTrans, 0, 0, INVALID, 0,
|
||||
cblas_sgbmv(CblasColMajor, CblasNoTrans, 0, 0, INVALID, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 6; RowMajorStrg = FALSE;
|
||||
cblas_sgbmv(CblasColMajor, CblasNoTrans, 2, 0, 0, INVALID,
|
||||
cblas_sgbmv(CblasColMajor, CblasNoTrans, 2, 0, 0, INVALID,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 9; RowMajorStrg = FALSE;
|
||||
cblas_sgbmv(CblasColMajor, CblasNoTrans, 0, 0, 1, 0,
|
||||
cblas_sgbmv(CblasColMajor, CblasNoTrans, 0, 0, 1, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 11; RowMajorStrg = FALSE;
|
||||
cblas_sgbmv(CblasColMajor, CblasNoTrans, 0, 0, 0, 0,
|
||||
cblas_sgbmv(CblasColMajor, CblasNoTrans, 0, 0, 0, 0,
|
||||
ALPHA, A, 1, X, 0, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 14; RowMajorStrg = FALSE;
|
||||
cblas_sgbmv(CblasColMajor, CblasNoTrans, 0, 0, 0, 0,
|
||||
cblas_sgbmv(CblasColMajor, CblasNoTrans, 0, 0, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 0 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = TRUE;
|
||||
cblas_sgbmv(CblasRowMajor, INVALID, 0, 0, 0, 0,
|
||||
cblas_sgbmv(CblasRowMajor, INVALID, 0, 0, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = TRUE;
|
||||
cblas_sgbmv(CblasRowMajor, CblasNoTrans, INVALID, 0, 0, 0,
|
||||
cblas_sgbmv(CblasRowMajor, CblasNoTrans, INVALID, 0, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = TRUE;
|
||||
cblas_sgbmv(CblasRowMajor, CblasNoTrans, 0, INVALID, 0, 0,
|
||||
cblas_sgbmv(CblasRowMajor, CblasNoTrans, 0, INVALID, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = TRUE;
|
||||
cblas_sgbmv(CblasRowMajor, CblasNoTrans, 0, 0, INVALID, 0,
|
||||
cblas_sgbmv(CblasRowMajor, CblasNoTrans, 0, 0, INVALID, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 6; RowMajorStrg = TRUE;
|
||||
cblas_sgbmv(CblasRowMajor, CblasNoTrans, 2, 0, 0, INVALID,
|
||||
cblas_sgbmv(CblasRowMajor, CblasNoTrans, 2, 0, 0, INVALID,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 9; RowMajorStrg = TRUE;
|
||||
cblas_sgbmv(CblasRowMajor, CblasNoTrans, 0, 0, 1, 0,
|
||||
cblas_sgbmv(CblasRowMajor, CblasNoTrans, 0, 0, 1, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 11; RowMajorStrg = TRUE;
|
||||
cblas_sgbmv(CblasRowMajor, CblasNoTrans, 0, 0, 0, 0,
|
||||
cblas_sgbmv(CblasRowMajor, CblasNoTrans, 0, 0, 0, 0,
|
||||
ALPHA, A, 1, X, 0, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 14; RowMajorStrg = TRUE;
|
||||
cblas_sgbmv(CblasRowMajor, CblasNoTrans, 0, 0, 0, 0,
|
||||
cblas_sgbmv(CblasRowMajor, CblasNoTrans, 0, 0, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 0 );
|
||||
chkxer();
|
||||
} else if (strncmp( sf,"cblas_ssymv",11)==0) {
|
||||
cblas_rout = "cblas_ssymv";
|
||||
cblas_info = 1; RowMajorStrg = FALSE;
|
||||
cblas_ssymv(INVALID, CblasUpper, 0,
|
||||
cblas_ssymv(INVALID, CblasUpper, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = FALSE;
|
||||
cblas_ssymv(CblasColMajor, INVALID, 0,
|
||||
cblas_ssymv(CblasColMajor, INVALID, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = FALSE;
|
||||
cblas_ssymv(CblasColMajor, CblasUpper, INVALID,
|
||||
cblas_ssymv(CblasColMajor, CblasUpper, INVALID,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 6; RowMajorStrg = FALSE;
|
||||
cblas_ssymv(CblasColMajor, CblasUpper, 2,
|
||||
cblas_ssymv(CblasColMajor, CblasUpper, 2,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 8; RowMajorStrg = FALSE;
|
||||
cblas_ssymv(CblasColMajor, CblasUpper, 0,
|
||||
cblas_ssymv(CblasColMajor, CblasUpper, 0,
|
||||
ALPHA, A, 1, X, 0, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 11; RowMajorStrg = FALSE;
|
||||
cblas_ssymv(CblasColMajor, CblasUpper, 0,
|
||||
cblas_ssymv(CblasColMajor, CblasUpper, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 0 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = TRUE;
|
||||
cblas_ssymv(CblasRowMajor, INVALID, 0,
|
||||
cblas_ssymv(CblasRowMajor, INVALID, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = TRUE;
|
||||
cblas_ssymv(CblasRowMajor, CblasUpper, INVALID,
|
||||
cblas_ssymv(CblasRowMajor, CblasUpper, INVALID,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 6; RowMajorStrg = TRUE;
|
||||
cblas_ssymv(CblasRowMajor, CblasUpper, 2,
|
||||
cblas_ssymv(CblasRowMajor, CblasUpper, 2,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 8; RowMajorStrg = TRUE;
|
||||
cblas_ssymv(CblasRowMajor, CblasUpper, 0,
|
||||
cblas_ssymv(CblasRowMajor, CblasUpper, 0,
|
||||
ALPHA, A, 1, X, 0, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 11; RowMajorStrg = TRUE;
|
||||
cblas_ssymv(CblasRowMajor, CblasUpper, 0,
|
||||
cblas_ssymv(CblasRowMajor, CblasUpper, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 0 );
|
||||
chkxer();
|
||||
} else if (strncmp( sf,"cblas_ssbmv",11)==0) {
|
||||
cblas_rout = "cblas_ssbmv";
|
||||
cblas_info = 1; RowMajorStrg = FALSE;
|
||||
cblas_ssbmv(INVALID, CblasUpper, 0, 0,
|
||||
cblas_ssbmv(INVALID, CblasUpper, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = FALSE;
|
||||
cblas_ssbmv(CblasColMajor, INVALID, 0, 0,
|
||||
cblas_ssbmv(CblasColMajor, INVALID, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = FALSE;
|
||||
cblas_ssbmv(CblasColMajor, CblasUpper, INVALID, 0,
|
||||
cblas_ssbmv(CblasColMajor, CblasUpper, INVALID, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = FALSE;
|
||||
cblas_ssbmv(CblasColMajor, CblasUpper, 0, INVALID,
|
||||
cblas_ssbmv(CblasColMajor, CblasUpper, 0, INVALID,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 7; RowMajorStrg = FALSE;
|
||||
cblas_ssbmv(CblasColMajor, CblasUpper, 0, 1,
|
||||
cblas_ssbmv(CblasColMajor, CblasUpper, 0, 1,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 9; RowMajorStrg = FALSE;
|
||||
cblas_ssbmv(CblasColMajor, CblasUpper, 0, 0,
|
||||
cblas_ssbmv(CblasColMajor, CblasUpper, 0, 0,
|
||||
ALPHA, A, 1, X, 0, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 12; RowMajorStrg = FALSE;
|
||||
cblas_ssbmv(CblasColMajor, CblasUpper, 0, 0,
|
||||
cblas_ssbmv(CblasColMajor, CblasUpper, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 0 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = TRUE;
|
||||
cblas_ssbmv(CblasRowMajor, INVALID, 0, 0,
|
||||
cblas_ssbmv(CblasRowMajor, INVALID, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = TRUE;
|
||||
cblas_ssbmv(CblasRowMajor, CblasUpper, INVALID, 0,
|
||||
cblas_ssbmv(CblasRowMajor, CblasUpper, INVALID, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = TRUE;
|
||||
cblas_ssbmv(CblasRowMajor, CblasUpper, 0, INVALID,
|
||||
cblas_ssbmv(CblasRowMajor, CblasUpper, 0, INVALID,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 7; RowMajorStrg = TRUE;
|
||||
cblas_ssbmv(CblasRowMajor, CblasUpper, 0, 1,
|
||||
cblas_ssbmv(CblasRowMajor, CblasUpper, 0, 1,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 9; RowMajorStrg = TRUE;
|
||||
cblas_ssbmv(CblasRowMajor, CblasUpper, 0, 0,
|
||||
cblas_ssbmv(CblasRowMajor, CblasUpper, 0, 0,
|
||||
ALPHA, A, 1, X, 0, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 12; RowMajorStrg = TRUE;
|
||||
cblas_ssbmv(CblasRowMajor, CblasUpper, 0, 0,
|
||||
cblas_ssbmv(CblasRowMajor, CblasUpper, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 0 );
|
||||
chkxer();
|
||||
} else if (strncmp( sf,"cblas_sspmv",11)==0) {
|
||||
cblas_rout = "cblas_sspmv";
|
||||
cblas_info = 1; RowMajorStrg = FALSE;
|
||||
cblas_sspmv(INVALID, CblasUpper, 0,
|
||||
cblas_sspmv(INVALID, CblasUpper, 0,
|
||||
ALPHA, A, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = FALSE;
|
||||
cblas_sspmv(CblasColMajor, INVALID, 0,
|
||||
cblas_sspmv(CblasColMajor, INVALID, 0,
|
||||
ALPHA, A, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = FALSE;
|
||||
cblas_sspmv(CblasColMajor, CblasUpper, INVALID,
|
||||
cblas_sspmv(CblasColMajor, CblasUpper, INVALID,
|
||||
ALPHA, A, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 7; RowMajorStrg = FALSE;
|
||||
cblas_sspmv(CblasColMajor, CblasUpper, 0,
|
||||
cblas_sspmv(CblasColMajor, CblasUpper, 0,
|
||||
ALPHA, A, X, 0, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 10; RowMajorStrg = FALSE;
|
||||
cblas_sspmv(CblasColMajor, CblasUpper, 0,
|
||||
cblas_sspmv(CblasColMajor, CblasUpper, 0,
|
||||
ALPHA, A, X, 1, BETA, Y, 0 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = TRUE;
|
||||
cblas_sspmv(CblasRowMajor, INVALID, 0,
|
||||
cblas_sspmv(CblasRowMajor, INVALID, 0,
|
||||
ALPHA, A, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = TRUE;
|
||||
cblas_sspmv(CblasRowMajor, CblasUpper, INVALID,
|
||||
cblas_sspmv(CblasRowMajor, CblasUpper, INVALID,
|
||||
ALPHA, A, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 7; RowMajorStrg = TRUE;
|
||||
cblas_sspmv(CblasRowMajor, CblasUpper, 0,
|
||||
cblas_sspmv(CblasRowMajor, CblasUpper, 0,
|
||||
ALPHA, A, X, 0, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 10; RowMajorStrg = TRUE;
|
||||
cblas_sspmv(CblasRowMajor, CblasUpper, 0,
|
||||
cblas_sspmv(CblasRowMajor, CblasUpper, 0,
|
||||
ALPHA, A, X, 1, BETA, Y, 0 );
|
||||
chkxer();
|
||||
} else if (strncmp( sf,"cblas_strmv",11)==0) {
|
||||
cblas_rout = "cblas_strmv";
|
||||
cblas_info = 1; RowMajorStrg = FALSE;
|
||||
cblas_strmv(INVALID, CblasUpper, CblasNoTrans,
|
||||
cblas_strmv(INVALID, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = FALSE;
|
||||
cblas_strmv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
cblas_strmv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = FALSE;
|
||||
cblas_strmv(CblasColMajor, CblasUpper, INVALID,
|
||||
cblas_strmv(CblasColMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = FALSE;
|
||||
cblas_strmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_strmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = FALSE;
|
||||
cblas_strmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_strmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 7; RowMajorStrg = FALSE;
|
||||
cblas_strmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_strmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 2, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 9; RowMajorStrg = FALSE;
|
||||
cblas_strmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_strmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, 1, X, 0 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = TRUE;
|
||||
cblas_strmv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
cblas_strmv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = TRUE;
|
||||
cblas_strmv(CblasRowMajor, CblasUpper, INVALID,
|
||||
cblas_strmv(CblasRowMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = TRUE;
|
||||
cblas_strmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_strmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = TRUE;
|
||||
cblas_strmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_strmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 7; RowMajorStrg = TRUE;
|
||||
cblas_strmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_strmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 2, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 9; RowMajorStrg = TRUE;
|
||||
cblas_strmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_strmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, 1, X, 0 );
|
||||
chkxer();
|
||||
} else if (strncmp( sf,"cblas_stbmv",11)==0) {
|
||||
cblas_rout = "cblas_stbmv";
|
||||
cblas_info = 1; RowMajorStrg = FALSE;
|
||||
cblas_stbmv(INVALID, CblasUpper, CblasNoTrans,
|
||||
cblas_stbmv(INVALID, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = FALSE;
|
||||
cblas_stbmv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
cblas_stbmv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = FALSE;
|
||||
cblas_stbmv(CblasColMajor, CblasUpper, INVALID,
|
||||
cblas_stbmv(CblasColMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = FALSE;
|
||||
cblas_stbmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_stbmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = FALSE;
|
||||
cblas_stbmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_stbmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 6; RowMajorStrg = FALSE;
|
||||
cblas_stbmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_stbmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, INVALID, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 8; RowMajorStrg = FALSE;
|
||||
cblas_stbmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_stbmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, 1, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 10; RowMajorStrg = FALSE;
|
||||
cblas_stbmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_stbmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 0 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = TRUE;
|
||||
cblas_stbmv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
cblas_stbmv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = TRUE;
|
||||
cblas_stbmv(CblasRowMajor, CblasUpper, INVALID,
|
||||
cblas_stbmv(CblasRowMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = TRUE;
|
||||
cblas_stbmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_stbmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = TRUE;
|
||||
cblas_stbmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_stbmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 6; RowMajorStrg = TRUE;
|
||||
cblas_stbmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_stbmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, INVALID, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 8; RowMajorStrg = TRUE;
|
||||
cblas_stbmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_stbmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, 1, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 10; RowMajorStrg = TRUE;
|
||||
cblas_stbmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_stbmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 0 );
|
||||
chkxer();
|
||||
} else if (strncmp( sf,"cblas_stpmv",11)==0) {
|
||||
cblas_rout = "cblas_stpmv";
|
||||
cblas_info = 1; RowMajorStrg = FALSE;
|
||||
cblas_stpmv(INVALID, CblasUpper, CblasNoTrans,
|
||||
cblas_stpmv(INVALID, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = FALSE;
|
||||
cblas_stpmv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
cblas_stpmv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = FALSE;
|
||||
cblas_stpmv(CblasColMajor, CblasUpper, INVALID,
|
||||
cblas_stpmv(CblasColMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = FALSE;
|
||||
cblas_stpmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_stpmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = FALSE;
|
||||
cblas_stpmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_stpmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 8; RowMajorStrg = FALSE;
|
||||
cblas_stpmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_stpmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, X, 0 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = TRUE;
|
||||
cblas_stpmv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
cblas_stpmv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = TRUE;
|
||||
cblas_stpmv(CblasRowMajor, CblasUpper, INVALID,
|
||||
cblas_stpmv(CblasRowMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = TRUE;
|
||||
cblas_stpmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_stpmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = TRUE;
|
||||
cblas_stpmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_stpmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 8; RowMajorStrg = TRUE;
|
||||
cblas_stpmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_stpmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, X, 0 );
|
||||
chkxer();
|
||||
} else if (strncmp( sf,"cblas_strsv",11)==0) {
|
||||
cblas_rout = "cblas_strsv";
|
||||
cblas_info = 1; RowMajorStrg = FALSE;
|
||||
cblas_strsv(INVALID, CblasUpper, CblasNoTrans,
|
||||
cblas_strsv(INVALID, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = FALSE;
|
||||
cblas_strsv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
cblas_strsv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = FALSE;
|
||||
cblas_strsv(CblasColMajor, CblasUpper, INVALID,
|
||||
cblas_strsv(CblasColMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = FALSE;
|
||||
cblas_strsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_strsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = FALSE;
|
||||
cblas_strsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_strsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 7; RowMajorStrg = FALSE;
|
||||
cblas_strsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_strsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 2, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 9; RowMajorStrg = FALSE;
|
||||
cblas_strsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_strsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, 1, X, 0 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = TRUE;
|
||||
cblas_strsv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
cblas_strsv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = TRUE;
|
||||
cblas_strsv(CblasRowMajor, CblasUpper, INVALID,
|
||||
cblas_strsv(CblasRowMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = TRUE;
|
||||
cblas_strsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_strsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = TRUE;
|
||||
cblas_strsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_strsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 7; RowMajorStrg = TRUE;
|
||||
cblas_strsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_strsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 2, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 9; RowMajorStrg = TRUE;
|
||||
cblas_strsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_strsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, 1, X, 0 );
|
||||
chkxer();
|
||||
} else if (strncmp( sf,"cblas_stbsv",11)==0) {
|
||||
cblas_rout = "cblas_stbsv";
|
||||
cblas_info = 1; RowMajorStrg = FALSE;
|
||||
cblas_stbsv(INVALID, CblasUpper, CblasNoTrans,
|
||||
cblas_stbsv(INVALID, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = FALSE;
|
||||
cblas_stbsv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
cblas_stbsv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = FALSE;
|
||||
cblas_stbsv(CblasColMajor, CblasUpper, INVALID,
|
||||
cblas_stbsv(CblasColMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = FALSE;
|
||||
cblas_stbsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_stbsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = FALSE;
|
||||
cblas_stbsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_stbsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 6; RowMajorStrg = FALSE;
|
||||
cblas_stbsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_stbsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, INVALID, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 8; RowMajorStrg = FALSE;
|
||||
cblas_stbsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_stbsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, 1, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 10; RowMajorStrg = FALSE;
|
||||
cblas_stbsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_stbsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 0 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = TRUE;
|
||||
cblas_stbsv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
cblas_stbsv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = TRUE;
|
||||
cblas_stbsv(CblasRowMajor, CblasUpper, INVALID,
|
||||
cblas_stbsv(CblasRowMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = TRUE;
|
||||
cblas_stbsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_stbsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = TRUE;
|
||||
cblas_stbsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_stbsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 6; RowMajorStrg = TRUE;
|
||||
cblas_stbsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_stbsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, INVALID, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 8; RowMajorStrg = TRUE;
|
||||
cblas_stbsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_stbsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, 1, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 10; RowMajorStrg = TRUE;
|
||||
cblas_stbsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_stbsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 0 );
|
||||
chkxer();
|
||||
} else if (strncmp( sf,"cblas_stpsv",11)==0) {
|
||||
cblas_rout = "cblas_stpsv";
|
||||
cblas_info = 1; RowMajorStrg = FALSE;
|
||||
cblas_stpsv(INVALID, CblasUpper, CblasNoTrans,
|
||||
cblas_stpsv(INVALID, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = FALSE;
|
||||
cblas_stpsv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
cblas_stpsv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = FALSE;
|
||||
cblas_stpsv(CblasColMajor, CblasUpper, INVALID,
|
||||
cblas_stpsv(CblasColMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = FALSE;
|
||||
cblas_stpsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_stpsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = FALSE;
|
||||
cblas_stpsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_stpsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 8; RowMajorStrg = FALSE;
|
||||
cblas_stpsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_stpsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, X, 0 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = TRUE;
|
||||
cblas_stpsv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
cblas_stpsv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = TRUE;
|
||||
cblas_stpsv(CblasRowMajor, CblasUpper, INVALID,
|
||||
cblas_stpsv(CblasRowMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = TRUE;
|
||||
cblas_stpsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_stpsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = TRUE;
|
||||
cblas_stpsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_stpsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 8; RowMajorStrg = TRUE;
|
||||
cblas_stpsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_stpsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, X, 0 );
|
||||
chkxer();
|
||||
} else if (strncmp( sf,"cblas_sger",10)==0) {
|
||||
@@ -781,7 +781,7 @@ void F77_s2chke(char *rout) {
|
||||
cblas_info = 6; RowMajorStrg = FALSE;
|
||||
cblas_sspr(CblasColMajor, CblasUpper, 0, ALPHA, X, 0, A );
|
||||
chkxer();
|
||||
}
|
||||
}
|
||||
if (cblas_ok == TRUE)
|
||||
printf(" %-12s PASSED THE TESTS OF ERROR-EXITS\n", cblas_rout);
|
||||
else
|
||||
|
||||
+7
-7
@@ -26,9 +26,9 @@ void chkxer(void) {
|
||||
|
||||
void F77_s3chke(char *rout) {
|
||||
char *sf = ( rout ) ;
|
||||
float A[2] = {0.0,0.0},
|
||||
B[2] = {0.0,0.0},
|
||||
C[2] = {0.0,0.0},
|
||||
float A[2] = {0.0,0.0},
|
||||
B[2] = {0.0,0.0},
|
||||
C[2] = {0.0,0.0},
|
||||
ALPHA=0.0, BETA=0.0;
|
||||
extern int cblas_info, cblas_lerr, cblas_ok;
|
||||
extern int RowMajorStrg;
|
||||
@@ -39,22 +39,22 @@ void F77_s3chke(char *rout) {
|
||||
cblas_xerbla(cblas_info,cblas_rout,"");
|
||||
F77_xerbla(cblas_rout,&cblas_info);
|
||||
}
|
||||
|
||||
|
||||
cblas_ok = TRUE ;
|
||||
cblas_lerr = PASSED ;
|
||||
|
||||
if (strncmp( sf,"cblas_sgemm" ,11)==0) {
|
||||
cblas_rout = "cblas_sgemm" ;
|
||||
cblas_info = 1;
|
||||
cblas_sgemm( INVALID, CblasNoTrans, CblasNoTrans, 0, 0, 0,
|
||||
cblas_sgemm( INVALID, CblasNoTrans, CblasNoTrans, 0, 0, 0,
|
||||
ALPHA, A, 1, B, 1, BETA, C, 1 );
|
||||
chkxer();
|
||||
cblas_info = 1;
|
||||
cblas_sgemm( INVALID, CblasNoTrans, CblasTrans, 0, 0, 0,
|
||||
cblas_sgemm( INVALID, CblasNoTrans, CblasTrans, 0, 0, 0,
|
||||
ALPHA, A, 1, B, 1, BETA, C, 1 );
|
||||
chkxer();
|
||||
cblas_info = 1;
|
||||
cblas_sgemm( INVALID, CblasTrans, CblasNoTrans, 0, 0, 0,
|
||||
cblas_sgemm( INVALID, CblasTrans, CblasNoTrans, 0, 0, 0,
|
||||
ALPHA, A, 1, B, 1, BETA, C, 1 );
|
||||
chkxer();
|
||||
cblas_info = 1;
|
||||
|
||||
+2
-2
@@ -31,14 +31,14 @@ float F77_scnrm2(blasint *N, const float *X, blasint *incX)
|
||||
return cblas_scnrm2(*N, X, *incX);
|
||||
}
|
||||
|
||||
void F77_scopy(blasint *N, const float *X, blasint *incX,
|
||||
void F77_scopy(blasint *N, const float *X, blasint *incX,
|
||||
float *Y, blasint *incY)
|
||||
{
|
||||
cblas_scopy(*N, X, *incX, Y, *incY);
|
||||
return;
|
||||
}
|
||||
|
||||
float F77_sdot(blasint *N, const float *X, blasint *incX,
|
||||
float F77_sdot(blasint *N, const float *X, blasint *incX,
|
||||
const float *Y, blasint *incY)
|
||||
{
|
||||
return cblas_sdot(*N, X, *incX, Y, *incY);
|
||||
|
||||
+29
-29
@@ -8,8 +8,8 @@
|
||||
#include "common.h"
|
||||
#include "cblas_test.h"
|
||||
|
||||
void F77_sgemv(int *order, char *transp, int *m, int *n, float *alpha,
|
||||
float *a, int *lda, float *x, int *incx, float *beta,
|
||||
void F77_sgemv(int *order, char *transp, int *m, int *n, float *alpha,
|
||||
float *a, int *lda, float *x, int *incx, float *beta,
|
||||
float *y, int *incy ) {
|
||||
|
||||
float *A;
|
||||
@@ -23,7 +23,7 @@ void F77_sgemv(int *order, char *transp, int *m, int *n, float *alpha,
|
||||
for( i=0; i<*m; i++ )
|
||||
for( j=0; j<*n; j++ )
|
||||
A[ LDA*i+j ]=a[ (*lda)*j+i ];
|
||||
cblas_sgemv( CblasRowMajor, trans,
|
||||
cblas_sgemv( CblasRowMajor, trans,
|
||||
*m, *n, *alpha, A, LDA, x, *incx, *beta, y, *incy );
|
||||
free(A);
|
||||
}
|
||||
@@ -68,9 +68,9 @@ void F77_strmv(int *order, char *uplow, char *transp, char *diagn,
|
||||
enum CBLAS_UPLO uplo;
|
||||
enum CBLAS_DIAG diag;
|
||||
|
||||
get_transpose_type(transp,&trans);
|
||||
get_uplo_type(uplow,&uplo);
|
||||
get_diag_type(diagn,&diag);
|
||||
get_transpose_type(transp,&trans);
|
||||
get_uplo_type(uplow,&uplo);
|
||||
get_diag_type(diagn,&diag);
|
||||
|
||||
if (*order == TEST_ROW_MJR) {
|
||||
LDA = *n+1;
|
||||
@@ -88,7 +88,7 @@ void F77_strmv(int *order, char *uplow, char *transp, char *diagn,
|
||||
}
|
||||
}
|
||||
|
||||
void F77_strsv(int *order, char *uplow, char *transp, char *diagn,
|
||||
void F77_strsv(int *order, char *uplow, char *transp, char *diagn,
|
||||
int *n, float *a, int *lda, float *x, int *incx ) {
|
||||
float *A;
|
||||
int i,j,LDA;
|
||||
@@ -112,7 +112,7 @@ void F77_strsv(int *order, char *uplow, char *transp, char *diagn,
|
||||
else
|
||||
cblas_strsv(CblasColMajor, uplo, trans, diag, *n, a, *lda, x, *incx );
|
||||
}
|
||||
void F77_ssymv(int *order, char *uplow, int *n, float *alpha, float *a,
|
||||
void F77_ssymv(int *order, char *uplow, int *n, float *alpha, float *a,
|
||||
int *lda, float *x, int *incx, float *beta, float *y,
|
||||
int *incy) {
|
||||
float *A;
|
||||
@@ -136,7 +136,7 @@ void F77_ssymv(int *order, char *uplow, int *n, float *alpha, float *a,
|
||||
*beta, y, *incy );
|
||||
}
|
||||
|
||||
void F77_ssyr(int *order, char *uplow, int *n, float *alpha, float *x,
|
||||
void F77_ssyr(int *order, char *uplow, int *n, float *alpha, float *x,
|
||||
int *incx, float *a, int *lda) {
|
||||
float *A;
|
||||
int i,j,LDA;
|
||||
@@ -160,7 +160,7 @@ void F77_ssyr(int *order, char *uplow, int *n, float *alpha, float *x,
|
||||
cblas_ssyr(CblasColMajor, uplo, *n, *alpha, x, *incx, a, *lda);
|
||||
}
|
||||
|
||||
void F77_ssyr2(int *order, char *uplow, int *n, float *alpha, float *x,
|
||||
void F77_ssyr2(int *order, char *uplow, int *n, float *alpha, float *x,
|
||||
int *incx, float *y, int *incy, float *a, int *lda) {
|
||||
float *A;
|
||||
int i,j,LDA;
|
||||
@@ -185,7 +185,7 @@ void F77_ssyr2(int *order, char *uplow, int *n, float *alpha, float *x,
|
||||
}
|
||||
|
||||
void F77_sgbmv(int *order, char *transp, int *m, int *n, int *kl, int *ku,
|
||||
float *alpha, float *a, int *lda, float *x, int *incx,
|
||||
float *alpha, float *a, int *lda, float *x, int *incx,
|
||||
float *beta, float *y, int *incy ) {
|
||||
|
||||
float *A;
|
||||
@@ -213,7 +213,7 @@ void F77_sgbmv(int *order, char *transp, int *m, int *n, int *kl, int *ku,
|
||||
for( j=jcol; j<(*n+*kl); j++ )
|
||||
A[ LDA*j+irow ]=a[ (*lda)*(j-jcol)+i ];
|
||||
}
|
||||
cblas_sgbmv( CblasRowMajor, trans, *m, *n, *kl, *ku, *alpha,
|
||||
cblas_sgbmv( CblasRowMajor, trans, *m, *n, *kl, *ku, *alpha,
|
||||
A, LDA, x, *incx, *beta, y, *incy );
|
||||
free(A);
|
||||
}
|
||||
@@ -230,9 +230,9 @@ void F77_stbmv(int *order, char *uplow, char *transp, char *diagn,
|
||||
enum CBLAS_UPLO uplo;
|
||||
enum CBLAS_DIAG diag;
|
||||
|
||||
get_transpose_type(transp,&trans);
|
||||
get_uplo_type(uplow,&uplo);
|
||||
get_diag_type(diagn,&diag);
|
||||
get_transpose_type(transp,&trans);
|
||||
get_uplo_type(uplow,&uplo);
|
||||
get_diag_type(diagn,&diag);
|
||||
|
||||
if (*order == TEST_ROW_MJR) {
|
||||
LDA = *k+1;
|
||||
@@ -276,9 +276,9 @@ void F77_stbsv(int *order, char *uplow, char *transp, char *diagn,
|
||||
enum CBLAS_UPLO uplo;
|
||||
enum CBLAS_DIAG diag;
|
||||
|
||||
get_transpose_type(transp,&trans);
|
||||
get_uplo_type(uplow,&uplo);
|
||||
get_diag_type(diagn,&diag);
|
||||
get_transpose_type(transp,&trans);
|
||||
get_uplo_type(uplow,&uplo);
|
||||
get_diag_type(diagn,&diag);
|
||||
|
||||
if (*order == TEST_ROW_MJR) {
|
||||
LDA = *k+1;
|
||||
@@ -315,7 +315,7 @@ void F77_stbsv(int *order, char *uplow, char *transp, char *diagn,
|
||||
}
|
||||
|
||||
void F77_ssbmv(int *order, char *uplow, int *n, int *k, float *alpha,
|
||||
float *a, int *lda, float *x, int *incx, float *beta,
|
||||
float *a, int *lda, float *x, int *incx, float *beta,
|
||||
float *y, int *incy) {
|
||||
float *A;
|
||||
int i,j,irow,jcol,LDA;
|
||||
@@ -387,12 +387,12 @@ void F77_sspmv(int *order, char *uplow, int *n, float *alpha, float *ap,
|
||||
for( j=0; j<i+1; j++, k++ )
|
||||
AP[ k ]=A[ LDA*i+j ];
|
||||
}
|
||||
cblas_sspmv( CblasRowMajor, uplo, *n, *alpha, AP, x, *incx, *beta, y,
|
||||
cblas_sspmv( CblasRowMajor, uplo, *n, *alpha, AP, x, *incx, *beta, y,
|
||||
*incy );
|
||||
free(A); free(AP);
|
||||
}
|
||||
else
|
||||
cblas_sspmv( CblasColMajor, uplo, *n, *alpha, ap, x, *incx, *beta, y,
|
||||
cblas_sspmv( CblasColMajor, uplo, *n, *alpha, ap, x, *incx, *beta, y,
|
||||
*incy );
|
||||
}
|
||||
|
||||
@@ -404,9 +404,9 @@ void F77_stpmv(int *order, char *uplow, char *transp, char *diagn,
|
||||
enum CBLAS_UPLO uplo;
|
||||
enum CBLAS_DIAG diag;
|
||||
|
||||
get_transpose_type(transp,&trans);
|
||||
get_uplo_type(uplow,&uplo);
|
||||
get_diag_type(diagn,&diag);
|
||||
get_transpose_type(transp,&trans);
|
||||
get_uplo_type(uplow,&uplo);
|
||||
get_diag_type(diagn,&diag);
|
||||
|
||||
if (*order == TEST_ROW_MJR) {
|
||||
LDA = *n;
|
||||
@@ -443,9 +443,9 @@ void F77_stpsv(int *order, char *uplow, char *transp, char *diagn,
|
||||
enum CBLAS_UPLO uplo;
|
||||
enum CBLAS_DIAG diag;
|
||||
|
||||
get_transpose_type(transp,&trans);
|
||||
get_uplo_type(uplow,&uplo);
|
||||
get_diag_type(diagn,&diag);
|
||||
get_transpose_type(transp,&trans);
|
||||
get_uplo_type(uplow,&uplo);
|
||||
get_diag_type(diagn,&diag);
|
||||
|
||||
if (*order == TEST_ROW_MJR) {
|
||||
LDA = *n;
|
||||
@@ -475,7 +475,7 @@ void F77_stpsv(int *order, char *uplow, char *transp, char *diagn,
|
||||
cblas_stpsv( CblasColMajor, uplo, trans, diag, *n, ap, x, *incx );
|
||||
}
|
||||
|
||||
void F77_sspr(int *order, char *uplow, int *n, float *alpha, float *x,
|
||||
void F77_sspr(int *order, char *uplow, int *n, float *alpha, float *x,
|
||||
int *incx, float *ap ){
|
||||
float *A, *AP;
|
||||
int i,j,k,LDA;
|
||||
@@ -526,7 +526,7 @@ void F77_sspr(int *order, char *uplow, int *n, float *alpha, float *x,
|
||||
cblas_sspr( CblasColMajor, uplo, *n, *alpha, x, *incx, ap );
|
||||
}
|
||||
|
||||
void F77_sspr2(int *order, char *uplow, int *n, float *alpha, float *x,
|
||||
void F77_sspr2(int *order, char *uplow, int *n, float *alpha, float *x,
|
||||
int *incx, float *y, int *incy, float *ap ){
|
||||
float *A, *AP;
|
||||
int i,j,k,LDA;
|
||||
|
||||
+18
-18
@@ -9,7 +9,7 @@
|
||||
#include "common.h"
|
||||
#include "cblas_test.h"
|
||||
|
||||
void F77_sgemm(int *order, char *transpa, char *transpb, int *m, int *n,
|
||||
void F77_sgemm(int *order, char *transpa, char *transpb, int *m, int *n,
|
||||
int *k, float *alpha, float *a, int *lda, float *b, int *ldb,
|
||||
float *beta, float *c, int *ldc ) {
|
||||
|
||||
@@ -107,7 +107,7 @@ void F77_ssymm(int *order, char *rtlf, char *uplow, int *m, int *n,
|
||||
for( j=0; j<*n; j++ )
|
||||
for( i=0; i<*m; i++ )
|
||||
C[i*LDC+j]=c[j*(*ldc)+i];
|
||||
cblas_ssymm( CblasRowMajor, side, uplo, *m, *n, *alpha, A, LDA, B, LDB,
|
||||
cblas_ssymm( CblasRowMajor, side, uplo, *m, *n, *alpha, A, LDA, B, LDB,
|
||||
*beta, C, LDC );
|
||||
for( j=0; j<*n; j++ )
|
||||
for( i=0; i<*m; i++ )
|
||||
@@ -117,15 +117,15 @@ void F77_ssymm(int *order, char *rtlf, char *uplow, int *m, int *n,
|
||||
free(C);
|
||||
}
|
||||
else if (*order == TEST_COL_MJR)
|
||||
cblas_ssymm( CblasColMajor, side, uplo, *m, *n, *alpha, a, *lda, b, *ldb,
|
||||
cblas_ssymm( CblasColMajor, side, uplo, *m, *n, *alpha, a, *lda, b, *ldb,
|
||||
*beta, c, *ldc );
|
||||
else
|
||||
cblas_ssymm( UNDEFINED, side, uplo, *m, *n, *alpha, a, *lda, b, *ldb,
|
||||
cblas_ssymm( UNDEFINED, side, uplo, *m, *n, *alpha, a, *lda, b, *ldb,
|
||||
*beta, c, *ldc );
|
||||
}
|
||||
|
||||
void F77_ssyrk(int *order, char *uplow, char *transp, int *n, int *k,
|
||||
float *alpha, float *a, int *lda,
|
||||
float *alpha, float *a, int *lda,
|
||||
float *beta, float *c, int *ldc ) {
|
||||
|
||||
int i,j,LDA,LDC;
|
||||
@@ -156,7 +156,7 @@ void F77_ssyrk(int *order, char *uplow, char *transp, int *n, int *k,
|
||||
for( i=0; i<*n; i++ )
|
||||
for( j=0; j<*n; j++ )
|
||||
C[i*LDC+j]=c[j*(*ldc)+i];
|
||||
cblas_ssyrk(CblasRowMajor, uplo, trans, *n, *k, *alpha, A, LDA, *beta,
|
||||
cblas_ssyrk(CblasRowMajor, uplo, trans, *n, *k, *alpha, A, LDA, *beta,
|
||||
C, LDC );
|
||||
for( j=0; j<*n; j++ )
|
||||
for( i=0; i<*n; i++ )
|
||||
@@ -165,10 +165,10 @@ void F77_ssyrk(int *order, char *uplow, char *transp, int *n, int *k,
|
||||
free(C);
|
||||
}
|
||||
else if (*order == TEST_COL_MJR)
|
||||
cblas_ssyrk(CblasColMajor, uplo, trans, *n, *k, *alpha, a, *lda, *beta,
|
||||
cblas_ssyrk(CblasColMajor, uplo, trans, *n, *k, *alpha, a, *lda, *beta,
|
||||
c, *ldc );
|
||||
else
|
||||
cblas_ssyrk(UNDEFINED, uplo, trans, *n, *k, *alpha, a, *lda, *beta,
|
||||
cblas_ssyrk(UNDEFINED, uplo, trans, *n, *k, *alpha, a, *lda, *beta,
|
||||
c, *ldc );
|
||||
}
|
||||
|
||||
@@ -211,7 +211,7 @@ void F77_ssyr2k(int *order, char *uplow, char *transp, int *n, int *k,
|
||||
for( i=0; i<*n; i++ )
|
||||
for( j=0; j<*n; j++ )
|
||||
C[i*LDC+j]=c[j*(*ldc)+i];
|
||||
cblas_ssyr2k(CblasRowMajor, uplo, trans, *n, *k, *alpha, A, LDA,
|
||||
cblas_ssyr2k(CblasRowMajor, uplo, trans, *n, *k, *alpha, A, LDA,
|
||||
B, LDB, *beta, C, LDC );
|
||||
for( j=0; j<*n; j++ )
|
||||
for( i=0; i<*n; i++ )
|
||||
@@ -221,14 +221,14 @@ void F77_ssyr2k(int *order, char *uplow, char *transp, int *n, int *k,
|
||||
free(C);
|
||||
}
|
||||
else if (*order == TEST_COL_MJR)
|
||||
cblas_ssyr2k(CblasColMajor, uplo, trans, *n, *k, *alpha, a, *lda,
|
||||
cblas_ssyr2k(CblasColMajor, uplo, trans, *n, *k, *alpha, a, *lda,
|
||||
b, *ldb, *beta, c, *ldc );
|
||||
else
|
||||
cblas_ssyr2k(UNDEFINED, uplo, trans, *n, *k, *alpha, a, *lda,
|
||||
cblas_ssyr2k(UNDEFINED, uplo, trans, *n, *k, *alpha, a, *lda,
|
||||
b, *ldb, *beta, c, *ldc );
|
||||
}
|
||||
void F77_strmm(int *order, char *rtlf, char *uplow, char *transp, char *diagn,
|
||||
int *m, int *n, float *alpha, float *a, int *lda, float *b,
|
||||
int *m, int *n, float *alpha, float *a, int *lda, float *b,
|
||||
int *ldb) {
|
||||
int i,j,LDA,LDB;
|
||||
float *A, *B;
|
||||
@@ -262,7 +262,7 @@ void F77_strmm(int *order, char *rtlf, char *uplow, char *transp, char *diagn,
|
||||
for( i=0; i<*m; i++ )
|
||||
for( j=0; j<*n; j++ )
|
||||
B[i*LDB+j]=b[j*(*ldb)+i];
|
||||
cblas_strmm(CblasRowMajor, side, uplo, trans, diag, *m, *n, *alpha,
|
||||
cblas_strmm(CblasRowMajor, side, uplo, trans, diag, *m, *n, *alpha,
|
||||
A, LDA, B, LDB );
|
||||
for( j=0; j<*n; j++ )
|
||||
for( i=0; i<*m; i++ )
|
||||
@@ -271,10 +271,10 @@ void F77_strmm(int *order, char *rtlf, char *uplow, char *transp, char *diagn,
|
||||
free(B);
|
||||
}
|
||||
else if (*order == TEST_COL_MJR)
|
||||
cblas_strmm(CblasColMajor, side, uplo, trans, diag, *m, *n, *alpha,
|
||||
cblas_strmm(CblasColMajor, side, uplo, trans, diag, *m, *n, *alpha,
|
||||
a, *lda, b, *ldb);
|
||||
else
|
||||
cblas_strmm(UNDEFINED, side, uplo, trans, diag, *m, *n, *alpha,
|
||||
cblas_strmm(UNDEFINED, side, uplo, trans, diag, *m, *n, *alpha,
|
||||
a, *lda, b, *ldb);
|
||||
}
|
||||
|
||||
@@ -313,7 +313,7 @@ void F77_strsm(int *order, char *rtlf, char *uplow, char *transp, char *diagn,
|
||||
for( i=0; i<*m; i++ )
|
||||
for( j=0; j<*n; j++ )
|
||||
B[i*LDB+j]=b[j*(*ldb)+i];
|
||||
cblas_strsm(CblasRowMajor, side, uplo, trans, diag, *m, *n, *alpha,
|
||||
cblas_strsm(CblasRowMajor, side, uplo, trans, diag, *m, *n, *alpha,
|
||||
A, LDA, B, LDB );
|
||||
for( j=0; j<*n; j++ )
|
||||
for( i=0; i<*m; i++ )
|
||||
@@ -322,9 +322,9 @@ void F77_strsm(int *order, char *rtlf, char *uplow, char *transp, char *diagn,
|
||||
free(B);
|
||||
}
|
||||
else if (*order == TEST_COL_MJR)
|
||||
cblas_strsm(CblasColMajor, side, uplo, trans, diag, *m, *n, *alpha,
|
||||
cblas_strsm(CblasColMajor, side, uplo, trans, diag, *m, *n, *alpha,
|
||||
a, *lda, b, *ldb);
|
||||
else
|
||||
cblas_strsm(UNDEFINED, side, uplo, trans, diag, *m, *n, *alpha,
|
||||
cblas_strsm(UNDEFINED, side, uplo, trans, diag, *m, *n, *alpha,
|
||||
a, *lda, b, *ldb);
|
||||
}
|
||||
|
||||
+7
-7
@@ -572,7 +572,7 @@
|
||||
CTRANS = ' CblasNoTrans'
|
||||
ELSE IF (TRANS.EQ.'T')THEN
|
||||
CTRANS = ' CblasTrans'
|
||||
ELSE
|
||||
ELSE
|
||||
CTRANS = 'CblasConjTrans'
|
||||
END IF
|
||||
TRAN = TRANS.EQ.'T'.OR.TRANS.EQ.'C'
|
||||
@@ -921,7 +921,7 @@
|
||||
UPLO = ICH( IC: IC )
|
||||
IF (UPLO.EQ.'U')THEN
|
||||
CUPLO = ' CblasUpper'
|
||||
ELSE
|
||||
ELSE
|
||||
CUPLO = ' CblasLower'
|
||||
END IF
|
||||
*
|
||||
@@ -1215,7 +1215,7 @@
|
||||
LOGICAL LSE, LSERES
|
||||
EXTERNAL LSE, LSERES
|
||||
* .. External Subroutines ..
|
||||
EXTERNAL SMAKE, SMVCH, CSTBMV, CSTBSV, CSTPMV,
|
||||
EXTERNAL SMAKE, SMVCH, CSTBMV, CSTBSV, CSTPMV,
|
||||
$ CSTPSV, CSTRMV, CSTRSV
|
||||
* .. Intrinsic Functions ..
|
||||
INTRINSIC ABS, MAX
|
||||
@@ -1283,7 +1283,7 @@
|
||||
UPLO = ICHU( ICU: ICU )
|
||||
IF (UPLO.EQ.'U')THEN
|
||||
CUPLO = ' CblasUpper'
|
||||
ELSE
|
||||
ELSE
|
||||
CUPLO = ' CblasLower'
|
||||
END IF
|
||||
*
|
||||
@@ -1293,7 +1293,7 @@
|
||||
CTRANS = ' CblasNoTrans'
|
||||
ELSE IF (TRANS.EQ.'T')THEN
|
||||
CTRANS = ' CblasTrans'
|
||||
ELSE
|
||||
ELSE
|
||||
CTRANS = 'CblasConjTrans'
|
||||
END IF
|
||||
*
|
||||
@@ -1972,7 +1972,7 @@
|
||||
$ ALPHA, INCX, LDA
|
||||
IF( REWI )
|
||||
$ REWIND NTRA
|
||||
CALL CSSYR( IORDER, UPLO, N, ALPHA, XX, INCX,
|
||||
CALL CSSYR( IORDER, UPLO, N, ALPHA, XX, INCX,
|
||||
$ AA, LDA )
|
||||
ELSE IF( PACKED )THEN
|
||||
IF( TRACE )
|
||||
@@ -2737,7 +2737,7 @@
|
||||
WRITE( NOUT, FMT = 9998 )I, YT( I ),
|
||||
$ YY( 1 + ( I - 1 )*ABS( INCY ) )
|
||||
ELSE
|
||||
WRITE( NOUT, FMT = 9998 )I,
|
||||
WRITE( NOUT, FMT = 9998 )I,
|
||||
$ YY( 1 + ( I - 1 )*ABS( INCY ) ), YT(I)
|
||||
END IF
|
||||
60 CONTINUE
|
||||
|
||||
+33
-33
@@ -587,7 +587,7 @@
|
||||
IF( REWI )
|
||||
$ REWIND NTRA
|
||||
CALL CSGEMM( IORDER, TRANSA, TRANSB, M, N,
|
||||
$ K, ALPHA, AA, LDA, BB, LDB,
|
||||
$ K, ALPHA, AA, LDA, BB, LDB,
|
||||
$ BETA, CC, LDC )
|
||||
*
|
||||
* Check if error-exit was taken incorrectly.
|
||||
@@ -675,7 +675,7 @@
|
||||
*
|
||||
120 CONTINUE
|
||||
WRITE( NOUT, FMT = 9996 )SNAME
|
||||
CALL SPRCN1(NOUT, NC, SNAME, IORDER, TRANSA, TRANSB,
|
||||
CALL SPRCN1(NOUT, NC, SNAME, IORDER, TRANSA, TRANSB,
|
||||
$ M, N, K, ALPHA, LDA, LDB, BETA, LDC)
|
||||
*
|
||||
130 CONTINUE
|
||||
@@ -713,24 +713,24 @@
|
||||
CHARACTER*1 TRANSA, TRANSB
|
||||
CHARACTER*12 SNAME
|
||||
CHARACTER*14 CRC, CTA,CTB
|
||||
|
||||
|
||||
IF (TRANSA.EQ.'N')THEN
|
||||
CTA = ' CblasNoTrans'
|
||||
ELSE IF (TRANSA.EQ.'T')THEN
|
||||
CTA = ' CblasTrans'
|
||||
ELSE
|
||||
ELSE
|
||||
CTA = 'CblasConjTrans'
|
||||
END IF
|
||||
IF (TRANSB.EQ.'N')THEN
|
||||
CTB = ' CblasNoTrans'
|
||||
ELSE IF (TRANSB.EQ.'T')THEN
|
||||
CTB = ' CblasTrans'
|
||||
ELSE
|
||||
ELSE
|
||||
CTB = 'CblasConjTrans'
|
||||
END IF
|
||||
IF (IORDER.EQ.1)THEN
|
||||
CRC = ' CblasRowMajor'
|
||||
ELSE
|
||||
ELSE
|
||||
CRC = ' CblasColMajor'
|
||||
END IF
|
||||
WRITE(NOUT, FMT = 9995)NC,SNAME,CRC, CTA,CTB
|
||||
@@ -743,7 +743,7 @@
|
||||
*
|
||||
SUBROUTINE SCHK2( SNAME, EPS, THRESH, NOUT, NTRA, TRACE, REWI,
|
||||
$ FATAL, NIDIM, IDIM, NALF, ALF, NBET, BET, NMAX,
|
||||
$ A, AA, AS, B, BB, BS, C, CC, CS, CT, G,
|
||||
$ A, AA, AS, B, BB, BS, C, CC, CS, CT, G,
|
||||
$ IORDER )
|
||||
*
|
||||
* Tests SSYMM.
|
||||
@@ -895,9 +895,9 @@
|
||||
* Call the subroutine.
|
||||
*
|
||||
IF( TRACE )
|
||||
$ CALL SPRCN2(NTRA, NC, SNAME, IORDER,
|
||||
$ SIDE, UPLO, M, N, ALPHA, LDA, LDB,
|
||||
$ BETA, LDC)
|
||||
$ CALL SPRCN2(NTRA, NC, SNAME, IORDER,
|
||||
$ SIDE, UPLO, M, N, ALPHA, LDA, LDB,
|
||||
$ BETA, LDC)
|
||||
IF( REWI )
|
||||
$ REWIND NTRA
|
||||
CALL CSSYMM( IORDER, SIDE, UPLO, M, N, ALPHA,
|
||||
@@ -993,7 +993,7 @@
|
||||
110 CONTINUE
|
||||
WRITE( NOUT, FMT = 9996 )SNAME
|
||||
CALL SPRCN2(NOUT, NC, SNAME, IORDER, SIDE, UPLO, M, N, ALPHA, LDA,
|
||||
$ LDB, BETA, LDC)
|
||||
$ LDB, BETA, LDC)
|
||||
*
|
||||
120 CONTINUE
|
||||
RETURN
|
||||
@@ -1028,20 +1028,20 @@
|
||||
CHARACTER*1 SIDE, UPLO
|
||||
CHARACTER*12 SNAME
|
||||
CHARACTER*14 CRC, CS,CU
|
||||
|
||||
|
||||
IF (SIDE.EQ.'L')THEN
|
||||
CS = ' CblasLeft'
|
||||
ELSE
|
||||
ELSE
|
||||
CS = ' CblasRight'
|
||||
END IF
|
||||
IF (UPLO.EQ.'U')THEN
|
||||
CU = ' CblasUpper'
|
||||
ELSE
|
||||
ELSE
|
||||
CU = ' CblasLower'
|
||||
END IF
|
||||
IF (IORDER.EQ.1)THEN
|
||||
CRC = ' CblasRowMajor'
|
||||
ELSE
|
||||
ELSE
|
||||
CRC = ' CblasColMajor'
|
||||
END IF
|
||||
WRITE(NOUT, FMT = 9995)NC,SNAME,CRC, CS,CU
|
||||
@@ -1351,9 +1351,9 @@
|
||||
10002 FORMAT( ' ', A12,' COMPLETED THE COLUMN-MAJOR COMPUTATIONAL ',
|
||||
$ 'TESTS (', I6, ' CALLS)', /' ******* BUT WITH MAXIMUM TEST ',
|
||||
$ 'RATIO ', F8.2, ' - SUSPECT *******' )
|
||||
10001 FORMAT( ' ', A12,' PASSED THE ROW-MAJOR COMPUTATIONAL TESTS',
|
||||
10001 FORMAT( ' ', A12,' PASSED THE ROW-MAJOR COMPUTATIONAL TESTS',
|
||||
$ ' (', I6, ' CALL', 'S)' )
|
||||
10000 FORMAT( ' ', A12,' PASSED THE COLUMN-MAJOR COMPUTATIONAL TESTS',
|
||||
10000 FORMAT( ' ', A12,' PASSED THE COLUMN-MAJOR COMPUTATIONAL TESTS',
|
||||
$ ' (', I6, ' CALL', 'S)' )
|
||||
9998 FORMAT( ' ******* FATAL ERROR - PARAMETER NUMBER ', I2, ' WAS CH',
|
||||
$ 'ANGED INCORRECTLY *******' )
|
||||
@@ -1374,22 +1374,22 @@
|
||||
CHARACTER*1 SIDE, UPLO, TRANSA, DIAG
|
||||
CHARACTER*12 SNAME
|
||||
CHARACTER*14 CRC, CS, CU, CA, CD
|
||||
|
||||
|
||||
IF (SIDE.EQ.'L')THEN
|
||||
CS = ' CblasLeft'
|
||||
ELSE
|
||||
ELSE
|
||||
CS = ' CblasRight'
|
||||
END IF
|
||||
IF (UPLO.EQ.'U')THEN
|
||||
CU = ' CblasUpper'
|
||||
ELSE
|
||||
ELSE
|
||||
CU = ' CblasLower'
|
||||
END IF
|
||||
IF (TRANSA.EQ.'N')THEN
|
||||
CA = ' CblasNoTrans'
|
||||
ELSE IF (TRANSA.EQ.'T')THEN
|
||||
CA = ' CblasTrans'
|
||||
ELSE
|
||||
ELSE
|
||||
CA = 'CblasConjTrans'
|
||||
END IF
|
||||
IF (DIAG.EQ.'N')THEN
|
||||
@@ -1399,14 +1399,14 @@
|
||||
END IF
|
||||
IF (IORDER.EQ.1)THEN
|
||||
CRC = 'CblasRowMajor'
|
||||
ELSE
|
||||
ELSE
|
||||
CRC = 'CblasColMajor'
|
||||
END IF
|
||||
WRITE(NOUT, FMT = 9995)NC,SNAME,CRC, CS,CU
|
||||
WRITE(NOUT, FMT = 9994)CA, CD, M, N, ALPHA, LDA, LDB
|
||||
|
||||
9995 FORMAT( 1X, I6, ': ', A12,'(', A14, ',', A14, ',', A14, ',')
|
||||
9994 FORMAT( 22X, 2( A14, ',') , 2( I3, ',' ),
|
||||
9994 FORMAT( 22X, 2( A14, ',') , 2( I3, ',' ),
|
||||
$ F4.1, ', A,', I3, ', B,', I3, ').' )
|
||||
END
|
||||
*
|
||||
@@ -1701,29 +1701,29 @@
|
||||
CHARACTER*1 UPLO, TRANSA
|
||||
CHARACTER*12 SNAME
|
||||
CHARACTER*14 CRC, CU, CA
|
||||
|
||||
|
||||
IF (UPLO.EQ.'U')THEN
|
||||
CU = ' CblasUpper'
|
||||
ELSE
|
||||
ELSE
|
||||
CU = ' CblasLower'
|
||||
END IF
|
||||
IF (TRANSA.EQ.'N')THEN
|
||||
CA = ' CblasNoTrans'
|
||||
ELSE IF (TRANSA.EQ.'T')THEN
|
||||
CA = ' CblasTrans'
|
||||
ELSE
|
||||
ELSE
|
||||
CA = 'CblasConjTrans'
|
||||
END IF
|
||||
IF (IORDER.EQ.1)THEN
|
||||
CRC = ' CblasRowMajor'
|
||||
ELSE
|
||||
ELSE
|
||||
CRC = ' CblasColMajor'
|
||||
END IF
|
||||
WRITE(NOUT, FMT = 9995)NC, SNAME, CRC, CU, CA
|
||||
WRITE(NOUT, FMT = 9994)N, K, ALPHA, LDA, BETA, LDC
|
||||
|
||||
9995 FORMAT( 1X, I6, ': ', A12,'(', 3( A14, ',') )
|
||||
9994 FORMAT( 20X, 2( I3, ',' ),
|
||||
9994 FORMAT( 20X, 2( I3, ',' ),
|
||||
$ F4.1, ', A,', I3, ',', F4.1, ', C,', I3, ').' )
|
||||
END
|
||||
*
|
||||
@@ -2057,29 +2057,29 @@
|
||||
CHARACTER*1 UPLO, TRANSA
|
||||
CHARACTER*12 SNAME
|
||||
CHARACTER*14 CRC, CU, CA
|
||||
|
||||
|
||||
IF (UPLO.EQ.'U')THEN
|
||||
CU = ' CblasUpper'
|
||||
ELSE
|
||||
ELSE
|
||||
CU = ' CblasLower'
|
||||
END IF
|
||||
IF (TRANSA.EQ.'N')THEN
|
||||
CA = ' CblasNoTrans'
|
||||
ELSE IF (TRANSA.EQ.'T')THEN
|
||||
CA = ' CblasTrans'
|
||||
ELSE
|
||||
ELSE
|
||||
CA = 'CblasConjTrans'
|
||||
END IF
|
||||
IF (IORDER.EQ.1)THEN
|
||||
CRC = ' CblasRowMajor'
|
||||
ELSE
|
||||
ELSE
|
||||
CRC = ' CblasColMajor'
|
||||
END IF
|
||||
WRITE(NOUT, FMT = 9995)NC, SNAME, CRC, CU, CA
|
||||
WRITE(NOUT, FMT = 9994)N, K, ALPHA, LDA, LDB, BETA, LDC
|
||||
|
||||
9995 FORMAT( 1X, I6, ': ', A12,'(', 3( A14, ',') )
|
||||
9994 FORMAT( 20X, 2( I3, ',' ),
|
||||
9994 FORMAT( 20X, 2( I3, ',' ),
|
||||
$ F4.1, ', A,', I3, ', B', I3, ',', F4.1, ', C,', I3, ').' )
|
||||
END
|
||||
*
|
||||
|
||||
+10
-10
@@ -11,10 +11,10 @@ void cblas_xerbla(blasint info, char *rout, char *form, ...)
|
||||
extern int link_xerbla;
|
||||
extern int RowMajorStrg;
|
||||
extern char *cblas_rout;
|
||||
|
||||
/* Initially, c__3chke will call this routine with
|
||||
* global variable link_xerbla=1, and F77_xerbla will set link_xerbla=0.
|
||||
* This is done to fool the linker into loading these subroutines first
|
||||
|
||||
/* Initially, c__3chke will call this routine with
|
||||
* global variable link_xerbla=1, and F77_xerbla will set link_xerbla=0.
|
||||
* This is done to fool the linker into loading these subroutines first
|
||||
* instead of ones in the CBLAS or the legacy BLAS library.
|
||||
*/
|
||||
if (link_xerbla) return;
|
||||
@@ -26,11 +26,11 @@ void cblas_xerbla(blasint info, char *rout, char *form, ...)
|
||||
|
||||
if (RowMajorStrg)
|
||||
{
|
||||
/* To properly check leading dimension problems in cblas__gemm, we
|
||||
* need to do the following trick. When cblas__gemm is called with
|
||||
* CblasRowMajor, the arguments A and B switch places in the call to
|
||||
* f77__gemm. Thus when we test for bad leading dimension problems
|
||||
* for A and B, lda is in position 11 instead of 9, and ldb is in
|
||||
/* To properly check leading dimension problems in cblas__gemm, we
|
||||
* need to do the following trick. When cblas__gemm is called with
|
||||
* CblasRowMajor, the arguments A and B switch places in the call to
|
||||
* f77__gemm. Thus when we test for bad leading dimension problems
|
||||
* for A and B, lda is in position 11 instead of 9, and ldb is in
|
||||
* position 9 instead of 11.
|
||||
*/
|
||||
if (strstr(rout,"gemm") != 0)
|
||||
@@ -117,7 +117,7 @@ void F77_xerbla(char *srname, void *vinfo)
|
||||
}
|
||||
for(i=0; i < 6; i++) rout[i+6] = tolower(srname[i]);
|
||||
for(i=11; i >= 9; i--) if (rout[i] == ' ') rout[i] = '\0';
|
||||
|
||||
|
||||
/* We increment *info by 1 since the CBLAS interface adds one more
|
||||
* argument to all level 2 and 3 routines.
|
||||
*/
|
||||
|
||||
+146
-146
@@ -26,11 +26,11 @@ void chkxer(void) {
|
||||
|
||||
void F77_z2chke(char *rout) {
|
||||
char *sf = ( rout ) ;
|
||||
double A[2] = {0.0,0.0},
|
||||
X[2] = {0.0,0.0},
|
||||
Y[2] = {0.0,0.0},
|
||||
double A[2] = {0.0,0.0},
|
||||
X[2] = {0.0,0.0},
|
||||
Y[2] = {0.0,0.0},
|
||||
ALPHA[2] = {0.0,0.0},
|
||||
BETA[2] = {0.0,0.0},
|
||||
BETA[2] = {0.0,0.0},
|
||||
RALPHA = 0.0;
|
||||
extern int cblas_info, cblas_lerr, cblas_ok;
|
||||
extern int RowMajorStrg;
|
||||
@@ -48,588 +48,588 @@ void F77_z2chke(char *rout) {
|
||||
if (strncmp( sf,"cblas_zgemv",11)==0) {
|
||||
cblas_rout = "cblas_zgemv";
|
||||
cblas_info = 1;
|
||||
cblas_zgemv(INVALID, CblasNoTrans, 0, 0,
|
||||
cblas_zgemv(INVALID, CblasNoTrans, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = FALSE;
|
||||
cblas_zgemv(CblasColMajor, INVALID, 0, 0,
|
||||
cblas_zgemv(CblasColMajor, INVALID, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = FALSE;
|
||||
cblas_zgemv(CblasColMajor, CblasNoTrans, INVALID, 0,
|
||||
cblas_zgemv(CblasColMajor, CblasNoTrans, INVALID, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = FALSE;
|
||||
cblas_zgemv(CblasColMajor, CblasNoTrans, 0, INVALID,
|
||||
cblas_zgemv(CblasColMajor, CblasNoTrans, 0, INVALID,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 7; RowMajorStrg = FALSE;
|
||||
cblas_zgemv(CblasColMajor, CblasNoTrans, 2, 0,
|
||||
cblas_zgemv(CblasColMajor, CblasNoTrans, 2, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 9; RowMajorStrg = FALSE;
|
||||
cblas_zgemv(CblasColMajor, CblasNoTrans, 0, 0,
|
||||
cblas_zgemv(CblasColMajor, CblasNoTrans, 0, 0,
|
||||
ALPHA, A, 1, X, 0, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 12; RowMajorStrg = FALSE;
|
||||
cblas_zgemv(CblasColMajor, CblasNoTrans, 0, 0,
|
||||
cblas_zgemv(CblasColMajor, CblasNoTrans, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 0 );
|
||||
chkxer();
|
||||
|
||||
cblas_info = 2; RowMajorStrg = TRUE; RowMajorStrg = TRUE;
|
||||
cblas_zgemv(CblasRowMajor, INVALID, 0, 0,
|
||||
cblas_zgemv(CblasRowMajor, INVALID, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = TRUE;
|
||||
cblas_zgemv(CblasRowMajor, CblasNoTrans, INVALID, 0,
|
||||
cblas_zgemv(CblasRowMajor, CblasNoTrans, INVALID, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = TRUE;
|
||||
cblas_zgemv(CblasRowMajor, CblasNoTrans, 0, INVALID,
|
||||
cblas_zgemv(CblasRowMajor, CblasNoTrans, 0, INVALID,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 7; RowMajorStrg = TRUE;
|
||||
cblas_zgemv(CblasRowMajor, CblasNoTrans, 0, 2,
|
||||
cblas_zgemv(CblasRowMajor, CblasNoTrans, 0, 2,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 9; RowMajorStrg = TRUE;
|
||||
cblas_zgemv(CblasRowMajor, CblasNoTrans, 0, 0,
|
||||
cblas_zgemv(CblasRowMajor, CblasNoTrans, 0, 0,
|
||||
ALPHA, A, 1, X, 0, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 12; RowMajorStrg = TRUE;
|
||||
cblas_zgemv(CblasRowMajor, CblasNoTrans, 0, 0,
|
||||
cblas_zgemv(CblasRowMajor, CblasNoTrans, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 0 );
|
||||
chkxer();
|
||||
} else if (strncmp( sf,"cblas_zgbmv",11)==0) {
|
||||
cblas_rout = "cblas_zgbmv";
|
||||
cblas_info = 1; RowMajorStrg = FALSE;
|
||||
cblas_zgbmv(INVALID, CblasNoTrans, 0, 0, 0, 0,
|
||||
cblas_zgbmv(INVALID, CblasNoTrans, 0, 0, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = FALSE;
|
||||
cblas_zgbmv(CblasColMajor, INVALID, 0, 0, 0, 0,
|
||||
cblas_zgbmv(CblasColMajor, INVALID, 0, 0, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = FALSE;
|
||||
cblas_zgbmv(CblasColMajor, CblasNoTrans, INVALID, 0, 0, 0,
|
||||
cblas_zgbmv(CblasColMajor, CblasNoTrans, INVALID, 0, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = FALSE;
|
||||
cblas_zgbmv(CblasColMajor, CblasNoTrans, 0, INVALID, 0, 0,
|
||||
cblas_zgbmv(CblasColMajor, CblasNoTrans, 0, INVALID, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = FALSE;
|
||||
cblas_zgbmv(CblasColMajor, CblasNoTrans, 0, 0, INVALID, 0,
|
||||
cblas_zgbmv(CblasColMajor, CblasNoTrans, 0, 0, INVALID, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 6; RowMajorStrg = FALSE;
|
||||
cblas_zgbmv(CblasColMajor, CblasNoTrans, 2, 0, 0, INVALID,
|
||||
cblas_zgbmv(CblasColMajor, CblasNoTrans, 2, 0, 0, INVALID,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 9; RowMajorStrg = FALSE;
|
||||
cblas_zgbmv(CblasColMajor, CblasNoTrans, 0, 0, 1, 0,
|
||||
cblas_zgbmv(CblasColMajor, CblasNoTrans, 0, 0, 1, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 11; RowMajorStrg = FALSE;
|
||||
cblas_zgbmv(CblasColMajor, CblasNoTrans, 0, 0, 0, 0,
|
||||
cblas_zgbmv(CblasColMajor, CblasNoTrans, 0, 0, 0, 0,
|
||||
ALPHA, A, 1, X, 0, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 14; RowMajorStrg = FALSE;
|
||||
cblas_zgbmv(CblasColMajor, CblasNoTrans, 0, 0, 0, 0,
|
||||
cblas_zgbmv(CblasColMajor, CblasNoTrans, 0, 0, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 0 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = TRUE;
|
||||
cblas_zgbmv(CblasRowMajor, INVALID, 0, 0, 0, 0,
|
||||
cblas_zgbmv(CblasRowMajor, INVALID, 0, 0, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = TRUE;
|
||||
cblas_zgbmv(CblasRowMajor, CblasNoTrans, INVALID, 0, 0, 0,
|
||||
cblas_zgbmv(CblasRowMajor, CblasNoTrans, INVALID, 0, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = TRUE;
|
||||
cblas_zgbmv(CblasRowMajor, CblasNoTrans, 0, INVALID, 0, 0,
|
||||
cblas_zgbmv(CblasRowMajor, CblasNoTrans, 0, INVALID, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = TRUE;
|
||||
cblas_zgbmv(CblasRowMajor, CblasNoTrans, 0, 0, INVALID, 0,
|
||||
cblas_zgbmv(CblasRowMajor, CblasNoTrans, 0, 0, INVALID, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 6; RowMajorStrg = TRUE;
|
||||
cblas_zgbmv(CblasRowMajor, CblasNoTrans, 2, 0, 0, INVALID,
|
||||
cblas_zgbmv(CblasRowMajor, CblasNoTrans, 2, 0, 0, INVALID,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 9; RowMajorStrg = TRUE;
|
||||
cblas_zgbmv(CblasRowMajor, CblasNoTrans, 0, 0, 1, 0,
|
||||
cblas_zgbmv(CblasRowMajor, CblasNoTrans, 0, 0, 1, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 11; RowMajorStrg = TRUE;
|
||||
cblas_zgbmv(CblasRowMajor, CblasNoTrans, 0, 0, 0, 0,
|
||||
cblas_zgbmv(CblasRowMajor, CblasNoTrans, 0, 0, 0, 0,
|
||||
ALPHA, A, 1, X, 0, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 14; RowMajorStrg = TRUE;
|
||||
cblas_zgbmv(CblasRowMajor, CblasNoTrans, 0, 0, 0, 0,
|
||||
cblas_zgbmv(CblasRowMajor, CblasNoTrans, 0, 0, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 0 );
|
||||
chkxer();
|
||||
} else if (strncmp( sf,"cblas_zhemv",11)==0) {
|
||||
cblas_rout = "cblas_zhemv";
|
||||
cblas_info = 1; RowMajorStrg = FALSE;
|
||||
cblas_zhemv(INVALID, CblasUpper, 0,
|
||||
cblas_zhemv(INVALID, CblasUpper, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = FALSE;
|
||||
cblas_zhemv(CblasColMajor, INVALID, 0,
|
||||
cblas_zhemv(CblasColMajor, INVALID, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = FALSE;
|
||||
cblas_zhemv(CblasColMajor, CblasUpper, INVALID,
|
||||
cblas_zhemv(CblasColMajor, CblasUpper, INVALID,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 6; RowMajorStrg = FALSE;
|
||||
cblas_zhemv(CblasColMajor, CblasUpper, 2,
|
||||
cblas_zhemv(CblasColMajor, CblasUpper, 2,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 8; RowMajorStrg = FALSE;
|
||||
cblas_zhemv(CblasColMajor, CblasUpper, 0,
|
||||
cblas_zhemv(CblasColMajor, CblasUpper, 0,
|
||||
ALPHA, A, 1, X, 0, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 11; RowMajorStrg = FALSE;
|
||||
cblas_zhemv(CblasColMajor, CblasUpper, 0,
|
||||
cblas_zhemv(CblasColMajor, CblasUpper, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 0 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = TRUE;
|
||||
cblas_zhemv(CblasRowMajor, INVALID, 0,
|
||||
cblas_zhemv(CblasRowMajor, INVALID, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = TRUE;
|
||||
cblas_zhemv(CblasRowMajor, CblasUpper, INVALID,
|
||||
cblas_zhemv(CblasRowMajor, CblasUpper, INVALID,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 6; RowMajorStrg = TRUE;
|
||||
cblas_zhemv(CblasRowMajor, CblasUpper, 2,
|
||||
cblas_zhemv(CblasRowMajor, CblasUpper, 2,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 8; RowMajorStrg = TRUE;
|
||||
cblas_zhemv(CblasRowMajor, CblasUpper, 0,
|
||||
cblas_zhemv(CblasRowMajor, CblasUpper, 0,
|
||||
ALPHA, A, 1, X, 0, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 11; RowMajorStrg = TRUE;
|
||||
cblas_zhemv(CblasRowMajor, CblasUpper, 0,
|
||||
cblas_zhemv(CblasRowMajor, CblasUpper, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 0 );
|
||||
chkxer();
|
||||
} else if (strncmp( sf,"cblas_zhbmv",11)==0) {
|
||||
cblas_rout = "cblas_zhbmv";
|
||||
cblas_info = 1; RowMajorStrg = FALSE;
|
||||
cblas_zhbmv(INVALID, CblasUpper, 0, 0,
|
||||
cblas_zhbmv(INVALID, CblasUpper, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = FALSE;
|
||||
cblas_zhbmv(CblasColMajor, INVALID, 0, 0,
|
||||
cblas_zhbmv(CblasColMajor, INVALID, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = FALSE;
|
||||
cblas_zhbmv(CblasColMajor, CblasUpper, INVALID, 0,
|
||||
cblas_zhbmv(CblasColMajor, CblasUpper, INVALID, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = FALSE;
|
||||
cblas_zhbmv(CblasColMajor, CblasUpper, 0, INVALID,
|
||||
cblas_zhbmv(CblasColMajor, CblasUpper, 0, INVALID,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 7; RowMajorStrg = FALSE;
|
||||
cblas_zhbmv(CblasColMajor, CblasUpper, 0, 1,
|
||||
cblas_zhbmv(CblasColMajor, CblasUpper, 0, 1,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 9; RowMajorStrg = FALSE;
|
||||
cblas_zhbmv(CblasColMajor, CblasUpper, 0, 0,
|
||||
cblas_zhbmv(CblasColMajor, CblasUpper, 0, 0,
|
||||
ALPHA, A, 1, X, 0, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 12; RowMajorStrg = FALSE;
|
||||
cblas_zhbmv(CblasColMajor, CblasUpper, 0, 0,
|
||||
cblas_zhbmv(CblasColMajor, CblasUpper, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 0 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = TRUE;
|
||||
cblas_zhbmv(CblasRowMajor, INVALID, 0, 0,
|
||||
cblas_zhbmv(CblasRowMajor, INVALID, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = TRUE;
|
||||
cblas_zhbmv(CblasRowMajor, CblasUpper, INVALID, 0,
|
||||
cblas_zhbmv(CblasRowMajor, CblasUpper, INVALID, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = TRUE;
|
||||
cblas_zhbmv(CblasRowMajor, CblasUpper, 0, INVALID,
|
||||
cblas_zhbmv(CblasRowMajor, CblasUpper, 0, INVALID,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 7; RowMajorStrg = TRUE;
|
||||
cblas_zhbmv(CblasRowMajor, CblasUpper, 0, 1,
|
||||
cblas_zhbmv(CblasRowMajor, CblasUpper, 0, 1,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 9; RowMajorStrg = TRUE;
|
||||
cblas_zhbmv(CblasRowMajor, CblasUpper, 0, 0,
|
||||
cblas_zhbmv(CblasRowMajor, CblasUpper, 0, 0,
|
||||
ALPHA, A, 1, X, 0, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 12; RowMajorStrg = TRUE;
|
||||
cblas_zhbmv(CblasRowMajor, CblasUpper, 0, 0,
|
||||
cblas_zhbmv(CblasRowMajor, CblasUpper, 0, 0,
|
||||
ALPHA, A, 1, X, 1, BETA, Y, 0 );
|
||||
chkxer();
|
||||
} else if (strncmp( sf,"cblas_zhpmv",11)==0) {
|
||||
cblas_rout = "cblas_zhpmv";
|
||||
cblas_info = 1; RowMajorStrg = FALSE;
|
||||
cblas_zhpmv(INVALID, CblasUpper, 0,
|
||||
cblas_zhpmv(INVALID, CblasUpper, 0,
|
||||
ALPHA, A, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = FALSE;
|
||||
cblas_zhpmv(CblasColMajor, INVALID, 0,
|
||||
cblas_zhpmv(CblasColMajor, INVALID, 0,
|
||||
ALPHA, A, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = FALSE;
|
||||
cblas_zhpmv(CblasColMajor, CblasUpper, INVALID,
|
||||
cblas_zhpmv(CblasColMajor, CblasUpper, INVALID,
|
||||
ALPHA, A, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 7; RowMajorStrg = FALSE;
|
||||
cblas_zhpmv(CblasColMajor, CblasUpper, 0,
|
||||
cblas_zhpmv(CblasColMajor, CblasUpper, 0,
|
||||
ALPHA, A, X, 0, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 10; RowMajorStrg = FALSE;
|
||||
cblas_zhpmv(CblasColMajor, CblasUpper, 0,
|
||||
cblas_zhpmv(CblasColMajor, CblasUpper, 0,
|
||||
ALPHA, A, X, 1, BETA, Y, 0 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = TRUE;
|
||||
cblas_zhpmv(CblasRowMajor, INVALID, 0,
|
||||
cblas_zhpmv(CblasRowMajor, INVALID, 0,
|
||||
ALPHA, A, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = TRUE;
|
||||
cblas_zhpmv(CblasRowMajor, CblasUpper, INVALID,
|
||||
cblas_zhpmv(CblasRowMajor, CblasUpper, INVALID,
|
||||
ALPHA, A, X, 1, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 7; RowMajorStrg = TRUE;
|
||||
cblas_zhpmv(CblasRowMajor, CblasUpper, 0,
|
||||
cblas_zhpmv(CblasRowMajor, CblasUpper, 0,
|
||||
ALPHA, A, X, 0, BETA, Y, 1 );
|
||||
chkxer();
|
||||
cblas_info = 10; RowMajorStrg = TRUE;
|
||||
cblas_zhpmv(CblasRowMajor, CblasUpper, 0,
|
||||
cblas_zhpmv(CblasRowMajor, CblasUpper, 0,
|
||||
ALPHA, A, X, 1, BETA, Y, 0 );
|
||||
chkxer();
|
||||
} else if (strncmp( sf,"cblas_ztrmv",11)==0) {
|
||||
cblas_rout = "cblas_ztrmv";
|
||||
cblas_info = 1; RowMajorStrg = FALSE;
|
||||
cblas_ztrmv(INVALID, CblasUpper, CblasNoTrans,
|
||||
cblas_ztrmv(INVALID, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = FALSE;
|
||||
cblas_ztrmv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
cblas_ztrmv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = FALSE;
|
||||
cblas_ztrmv(CblasColMajor, CblasUpper, INVALID,
|
||||
cblas_ztrmv(CblasColMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = FALSE;
|
||||
cblas_ztrmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztrmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = FALSE;
|
||||
cblas_ztrmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztrmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 7; RowMajorStrg = FALSE;
|
||||
cblas_ztrmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztrmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 2, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 9; RowMajorStrg = FALSE;
|
||||
cblas_ztrmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztrmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, 1, X, 0 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = TRUE;
|
||||
cblas_ztrmv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
cblas_ztrmv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = TRUE;
|
||||
cblas_ztrmv(CblasRowMajor, CblasUpper, INVALID,
|
||||
cblas_ztrmv(CblasRowMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = TRUE;
|
||||
cblas_ztrmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztrmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = TRUE;
|
||||
cblas_ztrmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztrmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 7; RowMajorStrg = TRUE;
|
||||
cblas_ztrmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztrmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 2, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 9; RowMajorStrg = TRUE;
|
||||
cblas_ztrmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztrmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, 1, X, 0 );
|
||||
chkxer();
|
||||
} else if (strncmp( sf,"cblas_ztbmv",11)==0) {
|
||||
cblas_rout = "cblas_ztbmv";
|
||||
cblas_info = 1; RowMajorStrg = FALSE;
|
||||
cblas_ztbmv(INVALID, CblasUpper, CblasNoTrans,
|
||||
cblas_ztbmv(INVALID, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = FALSE;
|
||||
cblas_ztbmv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
cblas_ztbmv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = FALSE;
|
||||
cblas_ztbmv(CblasColMajor, CblasUpper, INVALID,
|
||||
cblas_ztbmv(CblasColMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = FALSE;
|
||||
cblas_ztbmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztbmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = FALSE;
|
||||
cblas_ztbmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztbmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 6; RowMajorStrg = FALSE;
|
||||
cblas_ztbmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztbmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, INVALID, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 8; RowMajorStrg = FALSE;
|
||||
cblas_ztbmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztbmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, 1, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 10; RowMajorStrg = FALSE;
|
||||
cblas_ztbmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztbmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 0 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = TRUE;
|
||||
cblas_ztbmv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
cblas_ztbmv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = TRUE;
|
||||
cblas_ztbmv(CblasRowMajor, CblasUpper, INVALID,
|
||||
cblas_ztbmv(CblasRowMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = TRUE;
|
||||
cblas_ztbmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztbmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = TRUE;
|
||||
cblas_ztbmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztbmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 6; RowMajorStrg = TRUE;
|
||||
cblas_ztbmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztbmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, INVALID, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 8; RowMajorStrg = TRUE;
|
||||
cblas_ztbmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztbmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, 1, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 10; RowMajorStrg = TRUE;
|
||||
cblas_ztbmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztbmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 0 );
|
||||
chkxer();
|
||||
} else if (strncmp( sf,"cblas_ztpmv",11)==0) {
|
||||
cblas_rout = "cblas_ztpmv";
|
||||
cblas_info = 1; RowMajorStrg = FALSE;
|
||||
cblas_ztpmv(INVALID, CblasUpper, CblasNoTrans,
|
||||
cblas_ztpmv(INVALID, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = FALSE;
|
||||
cblas_ztpmv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
cblas_ztpmv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = FALSE;
|
||||
cblas_ztpmv(CblasColMajor, CblasUpper, INVALID,
|
||||
cblas_ztpmv(CblasColMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = FALSE;
|
||||
cblas_ztpmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztpmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = FALSE;
|
||||
cblas_ztpmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztpmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 8; RowMajorStrg = FALSE;
|
||||
cblas_ztpmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztpmv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, X, 0 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = TRUE;
|
||||
cblas_ztpmv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
cblas_ztpmv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = TRUE;
|
||||
cblas_ztpmv(CblasRowMajor, CblasUpper, INVALID,
|
||||
cblas_ztpmv(CblasRowMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = TRUE;
|
||||
cblas_ztpmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztpmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = TRUE;
|
||||
cblas_ztpmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztpmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 8; RowMajorStrg = TRUE;
|
||||
cblas_ztpmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztpmv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, X, 0 );
|
||||
chkxer();
|
||||
} else if (strncmp( sf,"cblas_ztrsv",11)==0) {
|
||||
cblas_rout = "cblas_ztrsv";
|
||||
cblas_info = 1; RowMajorStrg = FALSE;
|
||||
cblas_ztrsv(INVALID, CblasUpper, CblasNoTrans,
|
||||
cblas_ztrsv(INVALID, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = FALSE;
|
||||
cblas_ztrsv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
cblas_ztrsv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = FALSE;
|
||||
cblas_ztrsv(CblasColMajor, CblasUpper, INVALID,
|
||||
cblas_ztrsv(CblasColMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = FALSE;
|
||||
cblas_ztrsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztrsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = FALSE;
|
||||
cblas_ztrsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztrsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 7; RowMajorStrg = FALSE;
|
||||
cblas_ztrsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztrsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 2, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 9; RowMajorStrg = FALSE;
|
||||
cblas_ztrsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztrsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, 1, X, 0 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = TRUE;
|
||||
cblas_ztrsv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
cblas_ztrsv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = TRUE;
|
||||
cblas_ztrsv(CblasRowMajor, CblasUpper, INVALID,
|
||||
cblas_ztrsv(CblasRowMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = TRUE;
|
||||
cblas_ztrsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztrsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = TRUE;
|
||||
cblas_ztrsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztrsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 7; RowMajorStrg = TRUE;
|
||||
cblas_ztrsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztrsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 2, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 9; RowMajorStrg = TRUE;
|
||||
cblas_ztrsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztrsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, 1, X, 0 );
|
||||
chkxer();
|
||||
} else if (strncmp( sf,"cblas_ztbsv",11)==0) {
|
||||
cblas_rout = "cblas_ztbsv";
|
||||
cblas_info = 1; RowMajorStrg = FALSE;
|
||||
cblas_ztbsv(INVALID, CblasUpper, CblasNoTrans,
|
||||
cblas_ztbsv(INVALID, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = FALSE;
|
||||
cblas_ztbsv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
cblas_ztbsv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = FALSE;
|
||||
cblas_ztbsv(CblasColMajor, CblasUpper, INVALID,
|
||||
cblas_ztbsv(CblasColMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = FALSE;
|
||||
cblas_ztbsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztbsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = FALSE;
|
||||
cblas_ztbsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztbsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 6; RowMajorStrg = FALSE;
|
||||
cblas_ztbsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztbsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, INVALID, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 8; RowMajorStrg = FALSE;
|
||||
cblas_ztbsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztbsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, 1, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 10; RowMajorStrg = FALSE;
|
||||
cblas_ztbsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztbsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 0 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = TRUE;
|
||||
cblas_ztbsv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
cblas_ztbsv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = TRUE;
|
||||
cblas_ztbsv(CblasRowMajor, CblasUpper, INVALID,
|
||||
cblas_ztbsv(CblasRowMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = TRUE;
|
||||
cblas_ztbsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztbsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = TRUE;
|
||||
cblas_ztbsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztbsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, 0, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 6; RowMajorStrg = TRUE;
|
||||
cblas_ztbsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztbsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, INVALID, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 8; RowMajorStrg = TRUE;
|
||||
cblas_ztbsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztbsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, 1, A, 1, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 10; RowMajorStrg = TRUE;
|
||||
cblas_ztbsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztbsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, 0, A, 1, X, 0 );
|
||||
chkxer();
|
||||
} else if (strncmp( sf,"cblas_ztpsv",11)==0) {
|
||||
cblas_rout = "cblas_ztpsv";
|
||||
cblas_info = 1; RowMajorStrg = FALSE;
|
||||
cblas_ztpsv(INVALID, CblasUpper, CblasNoTrans,
|
||||
cblas_ztpsv(INVALID, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = FALSE;
|
||||
cblas_ztpsv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
cblas_ztpsv(CblasColMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = FALSE;
|
||||
cblas_ztpsv(CblasColMajor, CblasUpper, INVALID,
|
||||
cblas_ztpsv(CblasColMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = FALSE;
|
||||
cblas_ztpsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztpsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = FALSE;
|
||||
cblas_ztpsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztpsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 8; RowMajorStrg = FALSE;
|
||||
cblas_ztpsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztpsv(CblasColMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, X, 0 );
|
||||
chkxer();
|
||||
cblas_info = 2; RowMajorStrg = TRUE;
|
||||
cblas_ztpsv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
cblas_ztpsv(CblasRowMajor, INVALID, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 3; RowMajorStrg = TRUE;
|
||||
cblas_ztpsv(CblasRowMajor, CblasUpper, INVALID,
|
||||
cblas_ztpsv(CblasRowMajor, CblasUpper, INVALID,
|
||||
CblasNonUnit, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 4; RowMajorStrg = TRUE;
|
||||
cblas_ztpsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztpsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
INVALID, 0, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 5; RowMajorStrg = TRUE;
|
||||
cblas_ztpsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztpsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, INVALID, A, X, 1 );
|
||||
chkxer();
|
||||
cblas_info = 8; RowMajorStrg = TRUE;
|
||||
cblas_ztpsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
cblas_ztpsv(CblasRowMajor, CblasUpper, CblasNoTrans,
|
||||
CblasNonUnit, 0, A, X, 0 );
|
||||
chkxer();
|
||||
} else if (strncmp( sf,"cblas_zgeru",10)==0) {
|
||||
@@ -818,7 +818,7 @@ void F77_z2chke(char *rout) {
|
||||
cblas_info = 6; RowMajorStrg = FALSE;
|
||||
cblas_zhpr(CblasColMajor, CblasUpper, 0, RALPHA, X, 0, A );
|
||||
chkxer();
|
||||
}
|
||||
}
|
||||
if (cblas_ok == TRUE)
|
||||
printf(" %-12s PASSED THE TESTS OF ERROR-EXITS\n", cblas_rout);
|
||||
else
|
||||
|
||||
+6
-6
@@ -30,7 +30,7 @@ void F77_z3chke(char * rout) {
|
||||
B[4] = {0.0,0.0,0.0,0.0},
|
||||
C[4] = {0.0,0.0,0.0,0.0},
|
||||
ALPHA[2] = {0.0,0.0},
|
||||
BETA[2] = {0.0,0.0},
|
||||
BETA[2] = {0.0,0.0},
|
||||
RALPHA = 0.0, RBETA = 0.0;
|
||||
extern int cblas_info, cblas_lerr, cblas_ok;
|
||||
extern int RowMajorStrg;
|
||||
@@ -49,15 +49,15 @@ void F77_z3chke(char * rout) {
|
||||
cblas_rout = "cblas_zgemm" ;
|
||||
|
||||
cblas_info = 1;
|
||||
cblas_zgemm( INVALID, CblasNoTrans, CblasNoTrans, 0, 0, 0,
|
||||
cblas_zgemm( INVALID, CblasNoTrans, CblasNoTrans, 0, 0, 0,
|
||||
ALPHA, A, 1, B, 1, BETA, C, 1 );
|
||||
chkxer();
|
||||
cblas_info = 1;
|
||||
cblas_zgemm( INVALID, CblasNoTrans, CblasTrans, 0, 0, 0,
|
||||
cblas_zgemm( INVALID, CblasNoTrans, CblasTrans, 0, 0, 0,
|
||||
ALPHA, A, 1, B, 1, BETA, C, 1 );
|
||||
chkxer();
|
||||
cblas_info = 1;
|
||||
cblas_zgemm( INVALID, CblasTrans, CblasNoTrans, 0, 0, 0,
|
||||
cblas_zgemm( INVALID, CblasTrans, CblasNoTrans, 0, 0, 0,
|
||||
ALPHA, A, 1, B, 1, BETA, C, 1 );
|
||||
chkxer();
|
||||
cblas_info = 1;
|
||||
@@ -272,7 +272,7 @@ void F77_z3chke(char * rout) {
|
||||
cblas_zgemm( CblasRowMajor, CblasTrans, CblasTrans, 0, 2, 0,
|
||||
ALPHA, A, 1, B, 1, BETA, C, 1 );
|
||||
chkxer();
|
||||
|
||||
|
||||
} else if (strncmp( sf,"cblas_zhemm" ,11)==0) {
|
||||
cblas_rout = "cblas_zhemm" ;
|
||||
|
||||
@@ -1696,7 +1696,7 @@ void F77_z3chke(char * rout) {
|
||||
cblas_zsyr2k(CblasColMajor, CblasLower, CblasTrans, 2, 0,
|
||||
ALPHA, A, 1, B, 1, BETA, C, 1 );
|
||||
chkxer();
|
||||
|
||||
|
||||
}
|
||||
|
||||
if (cblas_ok == 1 )
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user